IyAtKi0gdGV4dCAtKi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5wcmU1IC0+IFY1LjcuMy5yYzEKCmNvbW1pdCA4ZmM3NTE0YjU5ZGM0NmI4ZjNlMzZjODFhOTJhZjAwOGRjOGRjMTg4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAxIDA5OjU5OjI2IDIwMTQgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjMucmMxCgpjb21taXQgM2VhNTE0NDIzZDkzNzNhZjc3Y2JjNGI4MzM2YjE3MDE0Mzg2NDM4OQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMjM6MTI6NDAgMjAxNCAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCBhYmI3ZjJlZWMxNzNjOGQyNjJiZjZlZjFiN2RlYjViNzA4MzlkMTVmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAyMzoxMjozOSAyMDE0IC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5yYzEKCmNvbW1pdCBiY2FhYjQ4ZDlkNDk4MzYxZmRkNDUxNjUyNzczYjNiOTU2YzdmMTBjCkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgpEYXRlOiAgIFRodSBTZXAgMjUgMDk6MzY6MDAgMjAxNCAtMDQwMAoKICAgIHJlbW92ZSBiYWQgYXNzZXJ0IGNoZWNrCgpjb21taXQgNWQxZWNmNmQxNTkxYTUzZTcxMWM1ZmVlYTE1OGQxMGRkOTBmYWIzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMSAxNDo0Njo1MCAyMDE0ICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IFBvcnQgVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmMgdG8gTWluR1cKCmNvbW1pdCBhZjhjMTdlNjQ4MmNiNTUyMDZjNTAyNzA5ODM2NmY2MGFkOGY3Y2M3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAxIDEzOjI0OjE4IDIwMTQgKzAyMDAKCiAgICBDSEFOR0VTOiBCVUc6IDI1Njg6IEF2b2lkIHRoYXQgZmlsZSBkZXNjcmlwdG9ycyBhYm92ZSBGRF9TRVRTSVpFIHRyaWdnZXIgYWJvcnQoKQoKY29tbWl0IDQyMjRjYWJjYjExMmQwZDQzN2Y5Y2E5ZjRkMzQzMDUwMWQxYzg3NTAKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVsIDIyIDA2OjQ5OjI4IDIwMTQgLTA3MDAKCiAgICBXaGVuIGVubGFyZ2luZyBhIGxhcmdlX2ZkX3NldCwgdXNlIEZEX1pFUk8gaWYgcG9zc2libGUKICAgIAogICAgVGhlIG1vc3QgY29tbW9uIGNhc2Ugb2YgY3JlYXRpbmcgYSBsYXJnZV9mZF9zZXQgb24gVU5JWAogICAgaXMgdG8gY3JlYXRlIGl0IHdpdGggc2l6ZSB6ZXJvLCBhbmQgdGhlbiBpbW1lZGlhdGVseSBlbmxhcmdlCiAgICBpdCB0byBzaXplIEZEX1NFVFNJWkUuICBJbnN0ZWFkIG9mIGxvb3BpbmcgYW5kIGNhbGxpbmcKICAgIEZEX0NMUigpLCB3ZSBjYW4gb3B0aW1pemUgdGhpcyBjb21tb24gY2FzZSB3aXRoIHRoZSBPUydzCiAgICBGRF9aRVJPLgoKY29tbWl0IDM1MjRhOTJmMjI3ZWIzZTczNjkwOGIxZjFmNTI1ZGEyZGM5NDlkMjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSmFuIDIzIDE3OjQyOjQxIDIwMTAgKzAwMDAKCiAgICBGaXhlZCBhIFNvbGFyaXMtc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTU0ZWE0ZDcwODQwYWE1Zjc1M2EwNmU1ZGY3NjUyYjI1OGQ5MjA0MgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAyMSAwODowMTo0MyAyMDEwICswMDAwCgogICAgRW5zdXJlIHRoYXQgZmRzZXQgc3RydWN0dXJlIGlzIHJlc2l6ZWQgc3VmZmljaWVudGx5CiAgICB0byBhY2NvbW9kYXRlIHRoZSBzcGVjaWZpZWQgc29ja2V0IElELgogICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTkwNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RhMGMzNzhiNWNiMWJiZjM1ZDA1YTYyMTJhNDgzYWJkYTg0YTIwMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMSAwODo1OTowNCAyMDE0ICswMjAwCgogICAgRml4IGNvbW1pdCA3ZjRhN2I4OTEzMzI4OTljZWEyNmU5NWJlMDMzN2FhZTAxNjQ4NzQyOiBkb250IG1peCBjb2RlIGFuZCBkZWNsYXJhdGlvbnMuCgpjb21taXQgMDgzN2IyMWU3OThhOTg1NmMwYTlmNDM4ZWM0NGE4M2JlZDFmODUzNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBdWcgMjkgMDg6MTg6MjAgMjAxNCArMDIwMAoKICAgIEVtcHR5IGluaXRpYWxpemVycyBhcmUgKHNhZGx5KSBub3QgcGFydCBvZiBDLgogICAgU3RvcCB1c2luZyB0aGVtLgoKY29tbWl0IDVlNGY2ZTNmNDMwMzVhNjg5YzlmYTI4OTAyN2VlZDYwYTIyZGJmYWYKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgQXVnIDI4IDEyOjEyOjIxIDIwMTQgLTA0MDAKCiAgICBBZGQgYSBkZWJ1ZyBtZXNzYWdlIHdoZW4gc2tpcHBpbmcgYSBrZXkKCmNvbW1pdCBlNTcwNjE1MGM0NTMyZDdmYzE4MzI3MTg1NjhiYjUwYmIwZmZjMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMzEgMTU6NDQ6MzEgMjAxNCArMDIwMAoKICAgIEFkZGVkIHRlc3QgZm9yIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIHdpdGggLU9RIGNtZGxpbmUgYXJndW1lbnQuCgpjb21taXQgN2Y0YTdiODkxMzMyODk5Y2VhMjZlOTViZTAzMzdhYWUwMTY0ODc0MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDMxIDEzOjQ2OjQ5IDIwMTQgKzAyMDAKCiAgICBBZGRlZCBjaGVja3MgZm9yIHByaW50aW5nIHZhcmlhYmxlcyB3aXRoIHdyb25nIHR5cGVzLgogICAgCiAgICBXaGVuIC1PUSBjb21tYW5kIGxpbmUgYXJndW1lbnQgaXMgdXNlZCwgdmFyaWFibGUgZm9ybWF0dGVyIHByZWZmZXJzIHRoZSB0eXBlCiAgICBvZiB0aGUgdmFyaWJsZSBwYXJzZWQgZnJvbSBhIE1JQiBmaWxlIGluc3RlYWQgb2YgY2hlY2tpbmcgdHlwZSBvZiB0aGUgdmFyaWFibGUKICAgIGFzIHBhcnNlZCBmcm9tIFNOTVAgbWVzc2FnZS4KICAgIAogICAgVGhpcyBjYW4gbGVhZCB0byBjcmFzaGVzIHdoZW4gaW5jb21pbmcgcGFja2V0cyBjb250YWlucyBhIHZhcmlhYmxlIHdpdGgKICAgIE5VTEwgdHlwZSwgd2hpbGUgdGhlIE1JQiBzYXlzIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgbm9uLU5VTEwsIGxpa2UgSW50ZWdlci4KICAgIFRoZSBmb3JtYXR0ZXIgdGhlbiB0cmllcyB0byBpbnRlcnByZXQgdGhlIE5VTEwgKGZyb20gcGFja2V0KSBhcyBJbnRlZ2VyIChmcm9tCiAgICBNSUIgZmlsZSkuCgpjb21taXQgOWM0ZGRjYTk2MDgyYzEzOWNmY2U5MjhlZWEzY2ZlNzkzZDM0ZjVjMgpBdXRob3I6IEplZmYgR2VobGJhY2ggPGplZmZnQG9wZW5ubXMub3JnPgpEYXRlOiAgIFRodSBKdWwgMzEgMTE6NTI6MTggMjAxNCAtMDQwMAoKICAgIEFkZCBhIHNjYWxhciBvYmplY3QgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvcnMgc2VlbiBieSB0aGUgYWdlbnQuIFBsYWNlZCB0aGlzIGluIHRoZSBzeXN0ZW1TdGF0cyBncm91cCBmb3IgbGFjayBvZiBhbiBvYnZpb3VzbHkgYmV0dGVyIGxvY2F0aW9uLiBVcGRhdGVkIFVDRC1TTk1QLU1JQiBhY2NvcmRpbmdseS4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjY0ZWQ5NDNmNjNkZmU5MzkzZTk1OTg0MGVjZDIzYzMxYzlkOGY4OQpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFdlZCBBdWcgMjcgMTY6MDI6NTcgMjAxNCAtMDQwMAoKICAgIEhhbmRsZSBkdXBsaWNhdGVzIGluIGEgYmluYXJ5X2FycmF5IGNvbnRhaW5lcgogICAgCiAgICBUaGUgQ09OVEFJTkVSX0tFWV9BTExPV19EVVBMSUNBVEVTIHNldHRpbmcgaXMgZnVuZGFtZW50YWxseSBmbGF3ZWQ7CiAgICBpdCByZWFsbHkgZWZmZWN0aXZlbHkgbWVhbnQgIkkgcHJvbWlzZSBJIHdvbid0IGluc2VydCBkdXBsaWNhdGVzCiAgICBzbyBkb24ndCBjaGVjayBhdCBpbnNlcnQgdGltZSIuICBIb3dldmVyLCB0aGUgaXAtZm9yd2FyZC1taWIKICAgIHNldHMgdGhpcyBmbGFnIGJ1dCByZWxpZXMgb24gdGhlIGR1cGxpY2F0ZSBwcmV2ZW50aW9uIGF0IGluc2VydAogICAgdGltZSB1bmRlciBjZXJ0YWluIHNjZW5hcmlvcyAoZS5nLiwgbXVsdGlwbGUgYXR0YWNobWVudHMgdG8gdGhlCiAgICBzYW1lIHN1Ym5ldCBvbiBNYWNPUyksIHJlc3VsdGluZyBpbiBhIGxvb3AgaW4gaXAtZm9yd2FyZC1taWIKICAgIGluIHRoZXNlIHNjZW5hcmlvcy4gIFNvLCBub3cgaXQgbWVhbnMgImNoZWNrIGZvciBkdXBsaWNhdGVzIGF0CiAgICBnZXRuZXh0IHRpbWUiIC0gdGhlIGJpbmFyeSBzZWFyY2ggd2lsbCBmaW5kIGFuIGFyYml0cmFyeSBvbmUKICAgIG9mIHRoZSBlbnRyaWVzIHdpdGggdGhlIHNhbWUga2V5LCBhbmQgd2hlbiB3ZSd2ZSBpbmNyZW1lbnRlZAogICAgd2UgaGF2ZSB0byBjaGVjayB3aGV0aGVyIG9yIG5vdCB3ZSd2ZSBhY3R1YWxseSBpbmNyZW1lbnRlZCBwYXN0CiAgICBhbnkgZHVwbGljYXRlcy4gIFRoaXMgY29zdHMgYW4gZXh0cmEga2V5IGNvbXBhcmUgcGVyIGdldG5leHQuCiAgICAKICAgIElmIHRoZXJlJ3MgYSBzY2VuYXJpbyBpbiB0aGUgZnV0dXJlIHdoZXJlIGEgTUlCIGltcGxlbWVudGF0aW9uCiAgICBjYW4gcmVhbGx5IGd1YXJhbnRlZSB0aGF0IGl0IGlzbid0IGluc2VydGluZyBkdXBsaWNhdGVzLCB3ZQogICAgbWlnaHQgd2FudCB0byBhZGQgYSAiQ09OVEFJTkVSX0tFWV9JX1BST01JU0VfSV9XT05UX0lOU0VSVF9EVVBMSUNBVEVTIiwKICAgIHRoYXQgZGlzYWJsZXMgdGhlIGluc2VydGlvbiBjaGVjayBidXQgZG9lc24ndCBwZXJmb3JtIHRoZSBnZXRuZXh0CiAgICBjaGVjay4KCmNvbW1pdCBmODJkMmQ2MzQ5M2Y0MDc5YzE2N2JhMzZiMjAzZTQ5Y2RhM2JkZThkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxOCAyMTo1NTowNCAyMDE0ICswMjAwCgogICAgRml4IGZvciBGcmVlQlNEOSBsb3NpbmcgbWliLW1vZHVsZXMgbGlzdCBiZWNhdXNlIG9mIG1pc3NpbmcgTkwgaW4gc2VkIGlucHV0LgoKY29tbWl0IDUyYjA3MmJjZmYzMmUzNTEyZmJmOTU2YjcyZDFhMzUzZTUwYTk2MmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE4IDIxOjUzOjM4IDIwMTQgKzAyMDAKCiAgICBVcGRhdGVzIGZvciBCRkQgbWlicy4KCmNvbW1pdCAwM2RiNjdiMzIyZDc2ZDcxN2JlMTdhODdlNzc3YzkxZGQwZmRkM2FjCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEF1ZyAxMiAyMzo1NTowNyAyMDE0IC0wNDAwCgogICAgSWYgc2RsX2FsZW4gaXMgdG9vIGxvbmcgZm9yIHRoZSBzdGF0aWMgYnVmZmVyLCBjYWxsIGl0IGluY29tcGxldGUgaW5zdGVhZCBvZiBvdmVycnVubmluZyB0aGUgYnVmZmVyCgpjb21taXQgOGFlNzhkYTM5MWQ1YjZiNjFjYzI1MTZlYjFhNjUyMGIwZGFiYjZiZgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBBdWcgMTIgMjI6NTU6NDUgMjAxNCAtMDQwMAoKICAgIFVzZSB2bV9yZWdpb25fNjQgb24gNjQtYml0IGFyY2g7IGNhY2hlIG1lbW9yeSBmb3IgbG9uZ2VyCiAgICAKICAgIFRoaXMgaXMgYSBwb3J0IG9mIHRoZSBBcHBsZSBwYXRjaGVzIGF0CiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2UuYXBwbGUuY29tL3NvdXJjZS9uZXRfc25tcC9uZXRfc25tcC0xNDAuMS9wYXRjaGVzL2RhcndpbjY0LnBhdGNoCiAgICAxLiBVc2Ugdm1fcmVnaW9uXzY0IGluc3RlYWQgb2Ygdm1fcmVnaW9uIG9uIF9fcHBjNjRfXyBvciBfX3g4Nl82NF9fCiAgICAyLiBVc2UgMzAwIHNlY29uZCB0aW1lb3V0IGZvciB0aGUgY2FjaGUuCiAgICAKICAgIFRoaXMgY29tbWVudCBhYm91dCB0aGUgY29kZSBiZWluZyBpbmNyZWRpYmx5IGV4cGVuc2l2ZSBpcwogICAgdmVyeSB0cnVlOiBvbiBhIDEuNyBHSHogaTcgd2l0aCA4IEdCIG9mIFJBTSAoYWRtaXR0ZWRseSBhCiAgICBzbWFsbCBtYWNoaW5lKSBpdCB0b29rIDE3IHNlY29uZHMgdG8gY2FsY3VsYXRlIGFuZAogICAgcmV0dXJuIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJNZW1vcnlTaXplLjAuICBNb3N0IFNOTVAKICAgIGNsaWVudHMgd291bGQgZ2l2ZSB1cCBsb25nIGJlZm9yZSBnZXR0aW5nIHRoaXMgYW5zd2VyLgoKY29tbWl0IDYxM2U5MzcwNGJhOTVmM2M2NDQwMTE0ZWI3M2JmMDlmNzc3NTU2MGUKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgQXVnIDEyIDIyOjM0OjA2IDIwMTQgLTA0MDAKCiAgICBkYXJ3aW4xMyBhbHNvIHVzZXMga2VybmVsX3N5c2N0bAoKY29tbWl0IGMxM2RkOTdkN2JkZGU3MzAyZDAwMjc4N2VlZjAzZDc3MmYyOWJjZDQKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgQXVnIDEyIDEyOjMwOjIzIDIwMTQgLTA3MDAKCiAgICBVc2UgdGhlIHJpZ2h0IGhlYWRlciBndWFyZC4KICAgIAogICAgQmVsaWV2ZSBpdCBvciBub3QsIGNsYW5nIGZvdW5kIHRoaXMgZGV0YWlsIHdpdGggLVdoZWFkZXItZ3VhcmQuCgpjb21taXQgZDVkNDAzMDJiMGFiMzQwZTIxMWFkNzZkN2YxOTViODA3ZjM4N2VmMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTEgMTI6MzM6NTAgMjAxNCAtMDcwMAoKICAgIHVwZGF0ZSB0byBuZXcga2V5IElECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjMucHJlNCAtPiBWNS43LjMucHJlNQoKY29tbWl0IGYzZjM3MWIyNzZkMjY1YjQ1NWZjNDkwZmNlMTk0N2RhZGY4OWU5YzIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDggMTk6NDk6MDYgMjAxNCAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmU1Cgpjb21taXQgNDE4MTMyZjQzY2M0MzIzMTk2NmE4Yjk2NzJjNjI2ZjYwYjk5MTAzOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgOCAxNDoyNDo1MiAyMDE0IC0wNzAwCgogICAgZml4IHRoZSBydW4tYXV0b2NvbmYgcHJvZ3JhbQoKY29tbWl0IDdkYjc5NTk0OTA3NWVmYjQ4OTM3M2Y1MWY3MDY2MzZmZTU0YTk4MzUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDggMTQ6MjQ6NTIgMjAxNCAtMDcwMAoKICAgIGZpeCB0aGUgcnVuLWF1dG9jb25mIHByb2dyYW0KCmNvbW1pdCA3OGYxZWY4MTZkZGFkMDhlN2Q3YzllMWIxMWU0YjRhYjI2ZjZlNGIwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyA4IDEzOjI4OjQ3IDIwMTQgLTA3MDAKCiAgICB1c2VkIHRoZSByaWdodCBhdXRvY29uZgoKY29tbWl0IDFlYWVhYzgwMWEzNjI1YjcyYjA5YzdkYTU4MDM4NDA5Y2Q4ZGM2ODEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDggMTM6MjY6MTEgMjAxNCAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucHJlNQoKY29tbWl0IDdlY2ZkM2VkZTE5ZTljMjIxOGM5YmY1OTU5YzA5NWNlOWZhNmM4YWIKQXV0aG9yOiBCcmlhbiBTaXBvcyA8YnNpcG9zcmtmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDYgMTA6MzA6NTQgMjAxNCAtMDcwMAoKICAgIEZpeCBkZXRlY3Rpb24gb2Ygc2hhMjI0IGFuZCBzaGEzODQsIHBhdGNoIGZyb20gQnJpYW4gU2lwb3MKICAgIAogICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9idWdzLzI1NjQvCiAgICAKICAgIEx1Y2tpbHkgbm9ib2R5J3MgbmVlZGVkIHRvIGJ1aWxkIHVzaW5nIGFuIE9wZW5TU0wgdmVyc2lvbgogICAgdGhhdCBkb2Vzbid0IHN1cHBvcnQgc2hhMjI0IG9yIHNoYTM4NCwgc2luY2UgdGhlIGludmVyc2lvbgogICAgb2YgdGhlIHRlc3QgaGVyZSB3b3VsZCB0cnkgdG8gdXNlIHNoYTIyNC9zaGEzODQgc3VwcG9ydCBvbmx5CiAgICBvbiBPcGVuU1NMIHZlcnNpb25zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtIQoKY29tbWl0IGE5Mzk5MWVhZjUzYjE5OWIxOWM1ODJiNjMwZGEyNTE1ODMwMGE5ZDEKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CkRhdGU6ICAgRnJpIEF1ZyAxIDEwOjA3OjQ1IDIwMTQgLTA0MDAKCiAgICBmaXggIzI0ODIgc25tcCByZXNwb25zZTogVG9vIGxvbmcKCmNvbW1pdCA5ZjQxZDMwYjA5ZTdjODViODI2ODEwM2NhMzIwYWM2Y2MzMmQ1YjA0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1bCAyNiAwODoyODo0MyAyMDE0ICswMjAwCgogICAgRml4IGJ1ZyAyNTQ2OiBuZXRzbm1wX3Rkb21haW5fdHJhbnNwb3J0X2Z1bGwgdXNlcyB3cm9uZyBwb3J0IGZvciBzbm1wdHJhcCArIHVkcDYKCmNvbW1pdCBkYjFmMjE3NTQxZTAwYjUzODEzZDk0ZjZiZWZiOWE0MmQ0ODM4ZTk1CkF1dGhvcjogSmVmZiBHZWhsYmFjaCA8amVmZmdAb3Blbm5tcy5vcmc+CkRhdGU6ICAgRnJpIEp1bCAyNSAxNjoxMToyMyAyMDE0IC0wNDAwCgogICAgRml4IGJ1ZyAyNTYyOiBXaW5kb3dzIHg2NCBidWlsZCBicm9rZW4gb24gNS43LjMucHJlNAoKY29tbWl0IDk3NDFmMDhlNzViNDE2MmJiM2M4YjQ0OTI3OWYxODJkOTQ5ZGEzNzMKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgSnVsIDI0IDA4OjEwOjQwIDIwMTQgLTA0MDAKCiAgICBVc2UgdGhlIHN0YW5kYXJkIGV4cHIgIjoiIHN5bnRheAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4zLnByZTMgLT4gVjUuNy4zLnByZTQKCmNvbW1pdCA4NjRhYmI1YmExZWIzMjRlNDIzMTU3ZGI1ZmIxNzIzZjg1NTk3M2IyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAyMyAxNTowNzo0MSAyMDE0IC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTQKCmNvbW1pdCA1ZmM4Zjk5YzlmNzdkZGFkZWVhY2VkYWU3ZjA2ZmVhMTc2N2Q0YTlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAyMyAxNTowMjoxOSAyMDE0IC0wNzAwCgogICAgZml4IEMrKyBzdHlsZSBjb21tZW50Cgpjb21taXQgNTRhNGE5MGE1NTI5ZWE1OGFkZDllNmFmNmE3ZThhZDA2NTQ0MDgyOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMjMgMTQ6NDk6NDEgMjAxNCAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucHJlNAoKY29tbWl0IGMwZDY2ODI2YjcxZjA1NDAzZjM2YzdmODIzNGZmOGY3ZWNiZDE1OTAKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVsIDIyIDA2OjQ5OjI4IDIwMTQgLTA3MDAKCiAgICBXaGVuIGVubGFyZ2luZyBhIGxhcmdlX2ZkX3NldCwgdXNlIEZEX1pFUk8gaWYgcG9zc2libGUKICAgIAogICAgVGhlIG1vc3QgY29tbW9uIGNhc2Ugb2YgY3JlYXRpbmcgYSBsYXJnZV9mZF9zZXQgb24gVU5JWAogICAgaXMgdG8gY3JlYXRlIGl0IHdpdGggc2l6ZSB6ZXJvLCBhbmQgdGhlbiBpbW1lZGlhdGVseSBlbmxhcmdlCiAgICBpdCB0byBzaXplIEZEX1NFVFNJWkUuICBJbnN0ZWFkIG9mIGxvb3BpbmcgYW5kIGNhbGxpbmcKICAgIEZEX0NMUigpLCB3ZSBjYW4gb3B0aW1pemUgdGhpcyBjb21tb24gY2FzZSB3aXRoIHRoZSBPUydzCiAgICBGRF9aRVJPLgoKY29tbWl0IGRjYWQzMWFlYjQ0MjM2OWE2ZmI1MmY0ZGM3ZDRmNzgxYmM1NjAwNmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDE3IDIzOjQwOjEzIDIwMTQgKzAyMDAKCiAgICBTb2xhcmlzIGRvZXMgbm90IGxpa2UgImdyZXAgLUUiIG9yICJpZiAhIi4KICAgIFByb3BhZ2F0ZSBjb25maWd1cmVzIEVHUkVQIHRvIG1hbi9NYWtlZmlsZS5pbiBhbmQgYWxzbyB1c2VkIGNvbmZpZ3VyZWQgU0VELgoKY29tbWl0IGE1MWNiZWRmN2QxZDQyNDM0MmFiNWNhM2E0YjY3MjE3YTM2NDQwOWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDE1IDIxOjQ1OjU0IDIwMTQgKzAyMDAKCiAgICBzbm1wbmV0c3RhdC9pZi5jOiBwcm9wZXJseSBkZXRlY3Qgc25tcCBleGNlcHRpb25zCgpjb21taXQgZWVlOTI1MTlmMzhlOTM3ZjIyN2JlYTc3MDFkZGIxMTU3YzhiY2NjYwpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMTUgMDc6Mjc6MTggMjAxNCAtMDcwMAoKICAgIENsb3NlIHBpcGVzIHdoZW4gZnJlZWluZyBjb25maWcgYW5kIGtpbGwgY2hpbGQgcHJvY2VzcyBvbiBlcnJvcgogICAgCiAgICBXaGVuIGZyZWVpbmcgdGhlIGNvbmZpZywgY2xvc2UgdGhlIHBpcGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhhdAogICAgY29uZmlnLCBzbyB0aGV5IGRvbid0IGdldCBsZWFrZWQuICBBbHNvLCBpZiB3ZSBoYXZlIGFuIGVycm9yLAogICAgc2VuZCBhIFNJR0tJTEwgdG8gdGhlIGNoaWxkIHByb2Nlc3MgaW4gY2FzZSBpdCBpcyBibG9ja2VkIGFuZAogICAgd29uJ3QgZGllIGp1c3QgYmVjYXVzZSB3ZSBjbG9zZWQgdGhlIHBpcGVzIHRvIGl0LgoKY29tbWl0IDg0MzFmOTEzNTU0ZTBjY2NjNDhiZWRjZTFmZDRhOGEyODhiNmMyN2QKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVsIDE1IDA3OjE5OjMzIDIwMTQgLTA3MDAKCiAgICBJZiB0aGUgYXNwIGxvb2t1cCByZXR1cm5zIE5VTEwsIGRvbid0IHRyeSB0byB1c2UgaXQKICAgIAogICAgSWYgdGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBhc3AsIHdlIHNldCB0aGUgcmVzdWx0IHByb3Blcmx5CiAgICBidXQgc3RpbGwgZmFsbCB0aHJvdWdoIGFuZCBhdHRlbXB0IHRvIHVzZSBpdC4gIEluc3RlYWQsIGp1c3QKICAgIGNvbnRpbnVlLgoKY29tbWl0IDE0NmZhMzg0ZDhiMDVlMWU1YTJjNjdmODhkMGVjYTBhMzA0ZmExZjAKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBNb24gSnVsIDE0IDE1OjI2OjE0IDIwMTQgLTA3MDAKCiAgICBGaXggZGVwZW5kZW5jaWVzIGZvciBhdXRvLWdlbmVyYXRlZCBtYW4gcGFnZXMKICAgIAogICAgQWxzbyBtYWtlIHN1cmUgdGhhdCB0aGUgYXV0by1nZW5lcmF0ZWQgLnNvIGZpbGVzIGFyZSBsaXN0ZWQKICAgIGluIHRoZSByaWdodCBNYWtlZmlsZSB2YXJpYWJsZXMsIGFuZCB1cGRhdGUgdGhlIHZhcmlhYmxlcwogICAgdG8gaW5jbHVkZSB0aGUgb25lcyB0aGF0IGhhZCBiZWVuIGxlZnQgb3V0IGFscmVhZHkuCgpjb21taXQgNDQzMTcyOGNmN2EwOTUwYWVkMjkzZDQ4YzAyZTY5MDAwZjViODNlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMTMgMDM6MDc6MjEgMjAxNCAtMDcwMAoKICAgIEFJWDogRml4IG1vcmUgY29tcGlsZXIgd2FybmluZ3MKICAgIAogICAgQXZvaWQgdGhhdCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdCwgYWJvdXQKICAgIHVudXNlZCB2YXJpYWJsZXMgb3IgZnVuY3Rpb25zLCBhYm91dCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgIGFuZCBhbHNvIGF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyB0aGF0IHRoZSB0eXBlIG9mIHRoZQogICAgdGhpcmQgYXJndW1lbnQgb2YgbW50Y3RsKCkgaXMgd3JvbmcuCgpjb21taXQgNDJhNjVmMTFlM2VkNTY5NjNmNzhhNWMxNTYxZWRkNjc2NThjY2QwMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMTMgMDk6NDc6MjYgMjAxNCArMDIwMAoKICAgIFJlbW92ZSBDOTkgbGVuZ3RoIHNwZWNpZmllciAneicgYW5kIHVzZSBhIGNhc3QgaW5zdGVhZAogICAgCiAgICBTZWUgYWxzbyBjb21taXQgYjRlYWIxMTEzOWViMTIyYzlhZDNjMTNhYjhiOTQ1M2UwNGU0Njg0Mi4KCmNvbW1pdCAzNWQwZjU5Y2RkODg5NGI4ZmJiYWQ2NTM3MGI1ZTMwMWUzNzdhMzdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1bCAxMSAyMToyNjozMyAyMDE0ICswMjAwCgogICAgVXBkYXRlZCBET0NTLUlGLU1JQiByZWZlcmVuY2UKCmNvbW1pdCA3YTRkMmVhMmIzZTE2M2ZkZDk4ZjA2N2FlNDQwZmFhMzE1MmM4MGM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1bCAxMSAyMToyNToyNyAyMDE0ICswMjAwCgogICAgVXBkYXRlZCBJQU5BIG1pYnMKCmNvbW1pdCAwMWIzYjY2NDY0MTNjMTRhMDUwNzQyNzI2Yjk3Y2YzMDhiOGZlMDliCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCA5IDIzOjUxOjI3IDIwMTQgKzAyMDAKCiAgICBBZGQgUkZDIDcyNTcgdnBscyBtaWJzCgpjb21taXQgYjBiZTFkOGFkMmNjYmNhYTI5ZmZjN2NmODg0ZDAyNDM4YzRjMTY2NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgOSAyMzo1MDoyMSAyMDE0ICswMjAwCgogICAgYWRqdXN0IGRlYnVnIHRva2VuIGZvciBuZXRzbm1wX3NvY2thZGRyX2luNl8yCgpjb21taXQgOTkyMGU5ZTc2N2IxMGYwMjlhYjRiMDIwZTgyNTk2NzZkMWEzMmIyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKdWwgOCAxMDoyNToyMiAyMDE0ICswMjAwCgogICAgQUlYOiBTdXBwcmVzcyBhIGNvbmZpZ3VyZSB3YXJuaW5nCiAgICAKICAgIEF2b2lkIHRoYXQgdGhlICdzb3J0JyBjb21tYW5kIGNvbXBsYWlucyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzCiAgICB0aGF0IGl0cyBpbnB1dCBpcyBub3QgdGVybWluYXRlZCBieSBhIG5ld2xpbmUuIFNlZSBhbHNvIGNvbW1pdAogICAgYTYzZTM4MWQ5YzFjOWM4NzIxMGJmMmIwMjJlM2Q2YWM3MWQyN2E3ZS4KCmNvbW1pdCBiNGVhYjExMTM5ZWIxMjJjOWFkM2MxM2FiOGI5NDUzZTA0ZTQ2ODQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEp1bCA3IDE0OjA0OjQ1IDIwMTQgLTA3MDAKCiAgICBBSVg6IEZpeCBhIGZldyBjb21waWxlciB3YXJuaW5ncwogICAgCiAgICBBdm9pZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29tcGlsZXIgd2FybmluZ3MgYXJlIHJlcG9ydGVkOgogICAgLSBBc3NpZ25tZW50IGRpc2NhcmRzIGNvbnN0LgogICAgLSBVbnVzZWQgbG9jYWwgdmFyaWFibGUuCiAgICAtIE1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHN0cmluZyBhbmQgYXJndW1lbnQgbGlzdC4KICAgIAogICAgQWxzbyBjb3JyZWN0IHRoZSBpbmRlbnRhdGlvbiBvZiB0d28gU29sYXJpcy1zcGVjaWZpYyBjb2RlIHN0YXRlbWVudHMuCgpjb21taXQgMGRkMjc4M2I3NDdmYjk2ZDc0OTc4ZTExYzgyYTUwNGMwZGYxZDU1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgNiAxMToxMjozMCAyMDE0ICswMjAwCgogICAgSFAgVVgsIENQVSBzdGF0aXN0aWNzOiBGaXggYW4gaW52YWxpZCBwb2ludGVyIGRlcmVmZXJlbmNlCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAwMDM0NTgxZGViM2U2NzZkMzI4ODI0Yzg3NjM3YWFjYTMxODUwYzZhLgoKY29tbWl0IGRiZDU5MzEzMmY3MTljYzNkOWJiNTAxN2VjOGJjNWM4Y2JiMDYzYjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDMgMjM6MjM6MjkgMjAxNCArMDIwMAoKICAgIFQwNzFjb20yc2VjNl9zaW1wbGU6IHVzZSBwcml2YXRlIGhvc3QgdG8gY2hlY2sgaXB2NiBhZGRyZXNzIHJlc29sdXRpb24gdG8gbWFrZSBzdXJlIHdlIGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0Cgpjb21taXQgMDAzNDU4MWRlYjNlNjc2ZDMyODgyNGM4NzYzN2FhY2EzMTg1MGM2YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMzAgMjI6MDg6MzQgMjAxNCArMDIwMAoKICAgIEJVRyAjYTI1NTE6IGZpeCBub24tc2VxdWVudGlhbCBjcHUgbnVtYmVycyBvbiBIUC1VWC4KICAgIFRoYW5rcyB0byBEYXZlIE9sa2VyLgoKY29tbWl0IGIwZjQ5YmEyMWZiODEwZWZjYjA5OTJmMDFjNGZjNWZkMzBjZjY5YWYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVuIDI2IDIxOjQyOjQ4IDIwMTQgKzAyMDAKCiAgICBjcHVfcHN0YXQuYzogZml4IG1pc3NpbmcgYnJlYWsocykgaW4gc3dpdGNoIHN0YXRlbWVudAoKY29tbWl0IGE2M2UzODFkOWMxYzljODcyMTBiZjJiMDIyZTNkNmFjNzFkMjdhN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDIwIDEwOjU3OjM5IDIwMTQgKzAyMDAKCiAgICBSZWNlbnQgcGF0Y2ggZnJvbSBCYXJ0IChEaXNwbGF5IG1vZHVsZSBuYW1lcyBzb3J0ZWQpIG1ha2UgY29uZmlndXJlIGxvc2UgYWxsIG1vZHVsZSBuYW1lcyBvbiBTb2xhcmlzIDggYW5kIDEwLgogICAgVGhpcyBjaGFuZ2VzIHRoZSB3YXkgdGhlIHNvcnRpbmcgaXMgZG9uZS4KCmNvbW1pdCA2MGNmNmEwNmZmNzNhZTdkNGYyNDU0ZjJlZjQwYzU2ZmNkMzk0YmZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxOCAyMjoxOTozMiAyMDE0ICswMjAwCgogICAgbWFrZSB0ZXN0OiBiYWlsIG91dCBpZiBuZXRzdGF0IG5vdCBmb3VuZC4KCmNvbW1pdCBjMTBmMmFjYmZjYzM4MzRjZDkzODY0MWRjMWEyYzcyYWNhN2Y3ODQ1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1biAxMCAxNjowNjo1OSAyMDE0ICswMjAwCgogICAgRml4IHN0dXBpZCBidWcgaW4gcGtnLW5nIHBhdGNoCgpjb21taXQgZTJkYTU0ODljM2JiODI5NzYyNjA0YzlkNDFmMDhjYjNhZWRmZDhhNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMiAxNTo0MTo1NiAyMDE0ICswMjAwCgogICAgUEFUQ0ggI2ExMjgzOiBSZWNvZ25pemUgT3JhY2xlIEFDRlMgZmlsZSBzeXN0ZW0gKFRoYW5rcyBKb2huIEhheGJ5KQoKY29tbWl0IDU0YzJjYzI2NTVjMWI2YzU0ODVkOTk0NDFhZWQyYWMxNjllZWU1ZjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDIgMTU6MjY6MDAgMjAxNCArMDIwMAoKICAgIEluc3RhbGwgU05NUC1UU00tTUlCIGFuZCBTTk1QLVRMUy1UTS1NSUIKCmNvbW1pdCBjZTMwOTFjYmM0OGJjNDA1YzZlYjFhZjdkZGFlYjM3MGVkNzg2NDcxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAyIDE1OjIzOjI0IDIwMTQgKzAyMDAKCiAgICBCVUcgI2EyNTM3OiBTdXBwb3J0ICpCU0QgcGtnLW5nCgpjb21taXQgNDllNGU0OWIxMmFhZTBkOGY3NTcyODM5MzY1ZDQ2Y2Y5MzJiZmVjOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMiAxNToxODo0NiAyMDE0ICswMjAwCgogICAgRml4IEZyZWVCU0Qgc3lzdGVtIGRlZmluZSBjaGFpbgoKY29tbWl0IDNjNWU3MTI0YjM1ZmQ2YWNhNDI4NGVhYzM2NWQ3NGI2OTgxMDc4NWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVuIDEgMTE6Mjc6MjUgMjAxNCArMDIwMAoKICAgIENIQU5HRVM6IEJVRzogMTI2NyBzbm1wbGliOiByZWdpc3Rlcl9taWJfY29udGV4dCgpIGZpeCBmb3IgcmVhZC1vbmx5IHZhcmlhYmxlcwogICAgCiAgICBUaGlzIGlzIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBhIHBhdGNoIGZyb20gSGFyc2hhIFNoaXZhbm5hLgoKY29tbWl0IDU2ZWNjNDMzYjA5ZTk4NWYxZmRkNzg2YWFlNjBiMDYxZmZhYzAzODIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVuIDEgMTE6MTI6NDcgMjAxNCArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBjOWNmOGZkODY5ZjM3OTFhNThhNzFiOGE2M2Y1ZDYxZDY3MjkxZmFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1biAxIDEwOjA5OjI4IDIwMTQgKzAyMDAKCiAgICBjb25maWd1cmU6IERpc3BsYXkgbW9kdWxlcyBuYW1lcyBzb3J0ZWQKCmNvbW1pdCAyN2ExNjA1NGQ2NTZlYjEwYWJkMDMyZGJhYzY4ZWJiYzI2Yzc2MDA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1biAxIDA5OjIyOjUyIDIwMTQgKzAyMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eDogUmV3b3JrIG5ldGxpbmsgYnVmZmVyIGFsaWdubWVudAogICAgCiAgICBCYXNlZCBvbiBhIHBhdGNoIGZyb20gSm9zaHVhIEhva2UuIFNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL2J1Z3MvMjU0Ny8uCgpjb21taXQgYmQxM2YwMDRmNmRjMTZkYmU1NmVhNTM4MTY2MjQ5NTc0NWQ5MzdlMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBNYXkgMzEgMjA6MTY6MjAgMjAxNCArMDIwMAoKICAgIFdpbmRvd3M6IDY0LWJpdCBmaXggZm9yIGJ1aWxkLWJpbmFyeS5wbAoKY29tbWl0IDFmYTRkYTFjNmNmOTY3NjA2MzMzZjdlNzdlNDA4YjdmNTFlZjYyNTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWF5IDMwIDE3OjQyOjA3IDIwMTQgKzAyMDAKCiAgICBXaW5kb3dzOiBTdXBwcmVzcyBWaXN1YWwgU3R1ZGlvIDIwMTMgd2FybmluZ3MgYWJvdXQgc3RydG91bGwoKQoKY29tbWl0IGIzMWFlZGU5YzhiNjM0NjFiNTA5MmUxNmQ2MjZhNjc2YjE3MmY4YWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIyIDIzOjA1OjE5IDIwMTQgKzAyMDAKCiAgICBQQVRDSCAjMTI3NzogRml4IGlmc3BlZWQgZm9yIFNvbGFyaXMgem9uZXMuIFRoYW5rcyB0byBsaWpvCgpjb21taXQgODY5Zjc4NTU0MWExZWEzYjQyNzgxNDU4NjdiMTUyYmVjNTBkM2ViMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBcHIgMzAgMTQ6NTI6MzEgMjAxNCArMDIwMAoKICAgIHdpbkV4dERMTDogVHJhbnNsYXRlIFNubXBFeHRlbnNpb25RdWVyeSgpIFBEVSB0eXBlIGNvcnJlY3RseQoKY29tbWl0IGUwMTA3YzI2YjNhMGUzMGFlODMyMzViYjIyNWZlYjc4YTFhMTU2MzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXByIDMwIDE1OjM4OjU1IDIwMTQgKzAyMDAKCiAgICBXaW5kb3dzOiBTaWxlbmNlIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhOWY4NzU0MjNjY2FhOGJhZWU3ZTE2NGJiOGE3NWRkOGUwYjczNDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDYgMDY6Mjc6MTAgMjAxNCArMDIwMAoKICAgIFBBVENIICMxMjc5OiBNb2RpZmllZCBwYXRjaCBmcm9tIE1vaGFuIGZvciBjb3JlZHVtcCBhZnRlciBjYWxsaW5nCiAgICBmcmVlIHdpdGggYSBiYWQgcmVnZXguCgpjb21taXQgNTEzMDJiYTU3Mjg1ZDRkNDc5OTJlZDE1YTQ2MDU4MDExMmEzZTkyNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgNiAwNjoyMToyNCAyMDE0ICswMjAwCgogICAgQlVHICMyNTIxOiBBSVg6IGRvbnQgZGllIHdoZW4gQ1BVIGlzIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHN5c3RlbS4KCmNvbW1pdCAxMzFjOTNiYTkyZTQ2ZGRkZWM0ZWIzYTgyMDhhYjVhM2MxMDI2NTA4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSA2IDA2OjIwOjI4IDIwMTQgKzAyMDAKCiAgICBDb21wbGFpbiBhYm91dCAtRCBvcHRpb24gaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkLgoKY29tbWl0IDk2YTdhNmE4Njg5NWZkYmY4OTE3OTllMzc2OWIyN2E3ZTU0YWYwODQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDYgMDY6MTk6NDIgMjAxNCArMDIwMAoKICAgIHNubXB0cmFwZC44OiBhZGQgc29tZSBtaXNzaW5nIGZvcm1hdCB0b2tlbnMgdG8gbWFuIHBhZ2UuCgpjb21taXQgODBiZTkwN2JlOWY0ZjFkZjZhMTQ3MGZlYWZhYTkxNmI5YzljNDk5MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBcHIgMjcgMTU6MjU6MzAgMjAxNCArMDIwMAoKICAgIEZpeCBidWcgMjMxMyBmb3IgY3Jvc3MgY29tcGlsYXRpb24uCgpjb21taXQgOWFlNTk4MTUzMGZkMmJkZDlmMmE1Yzg2YjdkNjk5NGI4NzMwMzNkNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgMjYgMjI6MzY6MjYgMjAxNCArMDIwMAoKICAgIFByZXBhcmUgZm9yIEZyZWVCU0QgMTEgYW5kIDEyCgpjb21taXQgZTMyZjcwYjEyZjU3ZDI2ZDY5ZDQ5MWYxYzc0MmIwMTMyYWNhNzY2MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgMjYgMjE6NDI6MjEgMjAxNCArMDIwMAoKICAgIEZpeCBhIGNvdXBsZSBvZiBzdHJ1Y3Qgc2l6ZXMgdG8gYmV0dGVyIG1hdGNoIGRlY2xhcmF0aW9uLgoKY29tbWl0IDdjYzJkZWI1ZDkxNWQyNTcyMzI4MzE3ZDM3MDFkMzVkODYxZDNkOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDI2IDIxOjM0OjI2IDIwMTQgKzAyMDAKCiAgICBVc2UgaW5ldF9wdG9uIG9ucGxhY2Ugb2YgaW5ldF9hdG9uIHRvIGhlbHAgcG9ydGFiaWxpdHkuCgpjb21taXQgYTA4N2ZjOWYxNjQwMjNkZTQxNGIwOWJmZDM3NDdjNzJmMWJjYTA3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgMjYgMjE6MzA6NTQgMjAxNCArMDIwMAoKICAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIgYW5kIGN1cnJlbnQgUkZDcy4KCmNvbW1pdCA4NTcwMzdhOGQyNDU3YWM5YWEyYTUyNTEwOTU3NjQ3OTcxYTQ2NjM0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciAyNiAyMToyODowMCAyMDE0ICswMjAwCgogICAgUHJlcGFyZSBmb3IgRnJlZUJTRCAxMSBhbmQgMTIuCgpjb21taXQgYjk5MzA4NDE3ZDRiZTdlMTM5ZjYxMDNkNDRmMTFiNTU0MzNhNmJmMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgMTYgMDg6MDQ6MTUgMjAxNCArMDEwMAoKICAgIEJldHRlciBkb2N1bWVudGF0aW9uIGZvciB0cmFwIGxvZ2dpbmcgZm9ybWF0cy4KCmNvbW1pdCBhNmU0ZWIyNmY1YzA0ZDE1NzYxY2VhZjkyNDU4MGUwYzQwZjcyZGZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciA5IDA4OjQ2OjU3IDIwMTQgKzAxMDAKCiAgICBzd3J1bl8qOiBTaW1wbGlmeSBjb21taXQgZGEwMGJhMQoKY29tbWl0IDM3YWY3OTIzYjgzMmYyZWM4MDgzN2ZhMjhlZGNhYzhlYjBjN2U4ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWFyIDkgMDg6MzQ6MTIgMjAxNCArMDEwMAoKICAgIHN3cnVuXyo6IFJlc3RvcmUgYnVmZmVyIG92ZXJmbG93IHByZXZlbnRpb24gY29kZSB0aGF0IHdhcyByZW1vdmVkIGluIGRhMDBiYTEKCmNvbW1pdCBmNDM2Y2UyOGZkYTNlZGM3MDEwY2Q4NmVjZjNjMzg2YzVhZjUyMTk2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciA4IDE0OjA3OjU3IDIwMTQgKzAxMDAKCiAgICB1dGlsX2Z1bmM6IGZpeCBza2lwcGluZyBvZiBkaWdpdHMgd2hpY2ggd291bGQgcnVuIG9uZSB0b28gZmFyCgpjb21taXQgZGEwMGJhMTQyZDZiNTA0MjU1ODg5ZjA5ZWI5ZjdkMjIyZWY0MGFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgOCAxNDowNDoxOSAyMDE0ICswMTAwCgogICAgc3dydW5fKjogc25wcmludCBtYXkgaGF2ZSBzZXQgYSB0b28gbG9uZyBzdHJpbmcgbGVuZ3RoLiBGaXggaXQgaWYgbmVlZGVkLgoKY29tbWl0IDNiMjAyZWIwNWVjNGU1ZjZmOGY1NGJjOGFjYjQzNzM3M2U2YjVkMDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDggMTQ6MDI6MTggMjAxNCArMDEwMAoKICAgIHN3aW5zdF9hcHQ6IGVuc3VyZSByb29tIGZvciBzdHJpbmcgdGVybWluYXRvcgoKY29tbWl0IDhhNjY4MTRlZGFkNWEyOGZkYmM4NjQ1ZmIwZTE0NDU5YmY5MTVkYTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDggMTQ6MDA6MjggMjAxNCArMDEwMAoKICAgIG10YV9zZW5kbWFpbDogaXNzcGFjZSBjYW5ub3QgdGFrZSBhIGNoYXIgYXJndW1lbnQKCmNvbW1pdCAzZTczNGZiM2JkZGYxMWI5OWI2YmE3ZGRjYjMwYWU5MzJkOGJhM2IxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciA4IDEzOjU4OjA3IDIwMTQgKzAxMDAKCiAgICBleHBFeHByZXNzaW9uQ29uZiwgZXhwVmFsdWU6IGlzc3BhY2UgY2Fubm90IHRha2UgYSBjaGFyIGFyZ3VtZW50LgoKY29tbWl0IDc2ZThkNmQxMDAzMjA2MjlkOGEyM2JlNGIwMTI4NjE5NjAwYzkxOWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA2IDA5OjIxOjUxIDIwMTQgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDEyNzU6IGZyb20gVmlsaWFtIFDDusSNaWs6IGZpeGVkIFBlcmwgdHJhcCBoYW5kbGVyIHdoZW4gcHJvY2Vzc2luZyB0cmFwIHdpdGggZW1wdHkgY29tbXVuaXR5IHN0cmluZy4KCmNvbW1pdCA1ZDA2YTVmYmI1ZWQzY2EyYjU4MjBlOGVmMmQ1YjViODhiOWQ3ZGY4CkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgTW9uIEZlYiAzIDExOjU4OjAzIDIwMTQgLTA4MDAKCiAgICBBbGxvdyB0aGUgbm9kZW1hcCB0byBjb250YWluIG11bHRpcGxlIG5vZGVzIGZvciBtaWJzIGxpa2UgSUYtTUlCCiAgICAKICAgIEluIHRoZSBJRi1NSUIsICJpbnRlcmZhY2VzIiBhbmQgImlmTUlCT2JqZWN0cyIgYm90aCBjb250YWluCiAgICBzaWduaWZpY2FudCBzdWJ0cmVlcy4gIEFsbG93IG5vZGVtYXAgdG8gY29udGFpbiBhIGNvbW1hLXNlcGFyYXRlZAogICAgbGlzdCBvZiBub2RlcywgdG8gaGFuZGxlIE1JQnMgbGlrZSB0aGlzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4zLnByZTIgLT4gVjUuNy4zLnByZTMKCmNvbW1pdCA1NDE2NmNmNmM3YTk4YmY4ZTVkMGRiYWJmOWI1ZTVhMjU1YzRjNDIxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyNSAxMjo0NToxNCAyMDE0IC0wODAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTMKCmNvbW1pdCAzZDRlM2E2NmJkMDk3ZTM3MjBmZTVkZTJmMmUwNTc0MWIzMzA2MzA1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyNSAxMTo0MjoxNSAyMDE0IC0wODAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmUzCgpjb21taXQgYTFmZDY0NzE2ZjY3OTRjNTVjMzRkNzdlNjE4MjEwMjM4YTczYmZhMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTkgMTU6MjE6NTcgMjAxNCAtMDgwMAoKICAgIGJ1ZyBmaXggZnJvbSBmZW5uZXI6IGZpeCBJQ01QIG1pYiB0YWJsZSBoYW5kbGluZyBvbiBsaW51eAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5wcmUxIC0+IFY1LjcuMy5wcmUyCgpjb21taXQgYmYwYTFjMzdkOGI4YzY0NGU4MzcwNDFkMDkwYWFiZThmZDgxMzFlOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMjUgMDc6NDk6MDQgMjAxNCAtMDgwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmUyCgpjb21taXQgZGVjZmQ4ZDc5YjU0ZDI5OGRlZDk3NDM5ZWZiNzEwZThmNmJhNTI0YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMjUgMDc6MzM6NTIgMjAxNCAtMDgwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucHJlMgoKY29tbWl0IDhhZWNjZWYzOWJiYWViOGI4MDI1YTY4ZWM0NzYxYmM4MmVjOWFlYWEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDI1IDA3OjI3OjQ3IDIwMTQgLTA4MDAKCiAgICBORVdTOiBzbm1wZDogcGF0Y2ggMjUyNTogZnJvbSBSeWFuIFN0ZWlubWV0ejogRml4IGFyZ3VtZW50IGxlbmd0aCBwYXJzaW5nIG9mIHRoZSBob3N0IHJlc291cmNlcyBtaWIKCmNvbW1pdCBiMjIyZTdhM2VlZjU5Y2JiNjhhNDUzNDc2Y2IzNjQzNDJjNzRlNjQwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAxOSAyMjoyNjowOCAyMDE0ICswMTAwCgogICAgRml4IHNwZWxpbmcgZXJyb3IKCmNvbW1pdCBmOGZjYjNiYzM4MTg4Y2NiZTliYWNlZTU4ZDZmZDJiOTgzZDA5OTI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAxOSAyMjoyNDoyNiAyMDE0ICswMTAwCgogICAgRml4IHNwZWxpbmcgZXJyb3IKCmNvbW1pdCBkMjE0ZDcwYzQ1MjRlNjJmY2NhZjEwODNhYmM1YmExYTQzOWE0NjNlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAxOSAyMjoyMTo1NSAyMDE0ICswMTAwCgogICAgc25tcHN0YXR1czogZGV0ZWN0IFNOTVAgZXhjZXB0aW9uIHJlc3BvbnNlcy4KCmNvbW1pdCBiZjc1ZWM2Njk2NWQxNTdjYjA0NDJmN2RmZjU2NTZmOTljZDcwNjM1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAxOSAyMjoyMDowNSAyMDE0ICswMTAwCgogICAgRml4IHRlc3QgZm9yIGNvbTJzZWM2IGFjY2Vzcy4KCmNvbW1pdCA2NTY3YTM3ZmEzMDFiOGZhMWI2ODAwOWQ1YTBiM2EzY2JmYjllOGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxNyAyMTo0OToxMyAyMDE0ICswMTAwCgogICAgdGVzdGluZy9NYWtlZmlsZS5pbjogbWFrZSBzdXJlICckJyBzdXJ2aXZlcyBmb3IgcGVybCB0ZXN0LgoKY29tbWl0IDA1YjU1MWJjMzMxMTg1ZWRhMWMwODFkMzEzOGQwYWM2MjViMDdkNmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDE3IDIxOjM2OjQ4IDIwMTQgKzAxMDAKCiAgICBGaXggc29tZSBtYW4gcGFnZSBzcGVsbGluZ3MuCgpjb21taXQgOGIwNTU1ZDk1Y2JjMjM4Y2JlOTgzNjQzOWI4ODA3MGM4MGE5Y2E1ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMTcgMjE6MzU6MjggMjAxNCArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmaXggY2FsbCBvZiBtZW1jcHkgd2l0aCBvdmVybGFwcGluZyBhcmVhcy4KCmNvbW1pdCAzYzZhN2E2Yzk0NzQyNDgyNGU3MjRlMjk0NDgzYTdlY2Q3MGQ5ZDQxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxNyAyMTozMzo0NyAyMDE0ICswMTAwCgogICAgcm91dGVfaW9jdGwuYzogc2V0IHByb3BlciBtYXNrIGJlZm9yZSBTSU9DREVMUlQuCgpjb21taXQgZjk5ZWY1Y2VmMjAzZWEzNzg1NTNhMmFiNDkyNWZjZDg2OWU3ZjVhMwpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBGZWIgMTEgMDg6NDc6NTEgMjAxNCAtMDgwMAoKICAgIERhdmlkIEphcnZpZSdzIHBhdGNoIGZvciBidWcgMjUwNwoKY29tbWl0IGQ3MGYyZTkxZTJjNzI1OGU3NjhlMzJiNjgzZDgxNGE5NDE1NjRhYzEKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBNb24gRmViIDMgMTE6NTg6MDMgMjAxNCAtMDgwMAoKICAgIEFsbG93IHRoZSBub2RlbWFwIHRvIGNvbnRhaW4gbXVsdGlwbGUgbm9kZXMgZm9yIG1pYnMgbGlrZSBJRi1NSUIKICAgIAogICAgSW4gdGhlIElGLU1JQiwgImludGVyZmFjZXMiIGFuZCAiaWZNSUJPYmplY3RzIiBib3RoIGNvbnRhaW4KICAgIHNpZ25pZmljYW50IHN1YnRyZWVzLiAgQWxsb3cgbm9kZW1hcCB0byBjb250YWluIGEgY29tbWEtc2VwYXJhdGVkCiAgICBsaXN0IG9mIG5vZGVzLCB0byBoYW5kbGUgTUlCcyBsaWtlIHRoaXMuCgpjb21taXQgOTg3ODFhZTNkYTQzYjdiMTU4M2VjZGUzZTIxYmI2NTI1YTJjMGI4MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMjcgMjI6MjQ6MTggMjAxNCArMDEwMAoKICAgIHJvdXRlX2lvY3RsLmM6IEZpeCBzZXR0aW5nIHRoZSBuZXRtYXNrIHdoZW4gY3JlYXRpbmcgcm91dGUgdGhyb3VnaAogICAgaW5ldENpZHJSb3V0ZVRhYmxlIGFuZCBpcENpZHJSb3V0ZVRhYmxlLgoKY29tbWl0IDJlOTQ3Nzc2OTNmMTg1MzQ3OWRlZDY3MGJlMzA3ZWNlNzEzOGZlYjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDI3IDIyOjEzOjA1IDIwMTQgKzAxMDAKCiAgICBGaXggY29tcGlsZSBmb3IgU29sYXJpcyB3aXRob3V0IElQdjYuCgpjb21taXQgOGY2OTkxYTIxMTRmZDIxYmE1NTE5ZWU5NTc2YmViMDgyZjYwM2RlYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMjMgMTY6MzA6NDYgMjAxNCArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBzZWFyY2ggaWZOYW1lIGFuZCBpZkFsaWFzIHdoZW4gbG9va2luZyBmb3IgaW50ZXJmYWNlCiAgICBuYW1lIGZyb20gLUNJIG9wdGlvbi4KCmNvbW1pdCA0YTM2MDEwNDY1OWMxNjljZTIzMjI1NmUxMzhkOTM4ZDk0ZTQzNWY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAyMyAxNjoyODozMiAyMDE0ICswMTAwCgogICAgbG9nbWF0Y2g6IGZpeCBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gVGhhbmtzIHRvIGdjYyBvciBjbGFuZwogICAgd2l0aCAtZnNhbml0aXplPWFkZHJlc3MgKHJlY29tbWVuZGVkISkKCmNvbW1pdCBlZWYyZjY0YjQ2MzU3YjM1M2M3OTUwNGJjNTkzNTM1ZWJlNzQyMWU3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAyMyAxNjoyNzowNyAyMDE0ICswMTAwCgogICAgY3B1X2xpbnV4OiBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gMTAwIGNwdXMuCgpjb21taXQgM2JkNjgzYzk2ZDZhODg2NGZiZDgwNzg1NzRhZWU4Y2Q0MzFjZTMwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTUgMTg6MzY6MDEgMjAxNCArMDEwMAoKICAgIFVwZGF0ZSBvcHRpb25zIGxpc3RzIGluIG1hbnVhbCBwYWdlcyBhbmQgY29tbWFuZHMgaGVscC4KCmNvbW1pdCBhNWVmZThkZjE3ZGRjNGY2NjkzYzdkYTlhNTJjNDAxZjRkYjJiZTYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxNSAxODoyODoyNCAyMDE0ICswMTAwCgogICAgdGVzdCBUMDI3OiBtYWtlIHN1cmUgaXQgd29ya3MgYWxzbyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtZGVmYXVsdC1zbm1wLXZlcnNpb24gIT0gMy4KCmNvbW1pdCA1N2QxMDgyOTAwZjlhYzkzMTQ0NDMxNmE2Zjk1ZjE5ZWRhMDY5MDc0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxNSAxODoyNjoyNCAyMDE0ICswMTAwCgogICAgY3B1X2xpbnV4OiByZW1vdmUgcmVkdW5kYW50IGNhc3RzLgoKY29tbWl0IDlmNGM1NzI2MTQwOTE0MDRkZWNiYTBkNGVmMWE0Y2JhZjlmYzViZDIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA5IDEzOjM1OjI3IDIwMTQgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbW9uaXRvcmluZyBiYXNlZCBvbiBub24tZGVsdGEgdHJpZ2dlci4KICAgIAogICAgc25tcGQgY3Jhc2hlZCB3aXQgZm9sbG93aW5nIHNubXBkLmNvbmY6CiAgICAgICAgbW9uaXRvciAtcyAtRCAtciAxMCAtZSBMT0dNQVRDSCAtbyBsb2dNYXRjaEN1cnJlbnRDb3VudCAiTG9nIE1hdGNoIiAhPSBsb2dNYXRjaEN1cnJlbnRDb3VudAogICAgICAgIGxvZ21hdGNoIExvZ2luRmFpbHVyZTEgL3Zhci9sb2cvc2VjdXJlIDEwIHN1OiAuKmZhaWwuKgogICAgCiAgICBUaGUgcmVhc29uIHdhcyB1bml0aWFsaXplZCB2YXJpYWJsZSBzeXNVVF92YXIgaW4gbXRlVHJpZ2dlcl9ydW4oKSwgaXQgd2FzCiAgICBmaWxsZWQgb25seSBpZiB0aGUgdHJpZ2dlciB3YXMgZGVsdGEtdmFsdWVkLCB3aGlsZSBpdHMgdmFsdWUgd2FzIHVzZWQgZm9yIGFsbAogICAgdHJpZ2dlcnMuCiAgICAKICAgIFdpdGggdGhpcyBwYXRjaCwgc3lzVVRfdmFyIGlzIGZpbGxlZCBmb3IgYWxsIGNvZGUgYnJhbmNoZXMgd2hlcmUgaXQgaXMgbmVlZGVkLgoKY29tbWl0IGM3NTEyYWZlNTY0M2VjYWFlOTc0NWFjMTk5YjgzOWMzYWFkODQ1N2IKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDE3OjM0OjUxIDIwMTMgKzAxMDAKCiAgICBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcwoKY29tbWl0IGM5MWY4NDBkODM5ODFmNjYwYjc1Mjc0ZGJjYzM4N2NiNWM1Zjk5YWYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDE3OjI5OjI2IDIwMTMgKzAxMDAKCiAgICBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcwoKY29tbWl0IDJkZDdkYmE3NmQxZDBiNGY4NjY4MzRlMGZkNjAxNDhjMjgxYTE1M2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDE3OjI1OjA1IDIwMTMgKzAxMDAKCiAgICBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcwoKY29tbWl0IDU5MTQzMWY3OTkxZjgzZDIzODVhZGJjNWEyMmM0YTg5NTc2YmMzMTMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDE3OjIxOjU2IDIwMTMgKzAxMDAKCiAgICBSZWdlbmVyYXRlIGNvbmZpZ3VyZSB1c2luZyB0aGUgcmlnaHQgYXV0b2NvbmYgdmVyc2lvbgoKY29tbWl0IDg1YmI0YjVjOWY0ODk2ODc2NzE1Y2IxZjE0ZjRmMWI1ODJkMjIzYmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDE3OjEyOjAzIDIwMTMgKzAxMDAKCiAgICBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcwoKY29tbWl0IGQyNTVjYTQyNmQxZTNkNGJjNDhiOGYzZGI5Mzc0MzU3ODg5MzRjNDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI5IDEyOjM1OjMwIDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQXZvaWQgZHVwbGljYXRlIGFuZCB0cmFpbGluZyBzcGFjZXMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZXMuCgpjb21taXQgZDE1Y2QyYjk3NDNjY2NiNTAyZGVhZmQxNDNhZGUwYWE5MGNmMzFlNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMDk6MDU6MTMgMjAxMyArMDIwMAoKICAgIE1pbkdXOiBCdWlsZCBmaXgKICAgIAogICAgQXBwYXJlbnRseSB3aXRoIHJlY2VudCBNaW5HVyBoZWFkZXIgZmlsZXMgPHdpbnNvY2syLmg+IHNob3VsZCBiZQogICAgaW5jbHVkZWQgaW5zdGVhZCBvZiA8d2luc29jay5oPi4gTW9kaWZ5IDxuZXQtc25tcC90eXBlcy5oPiBhY2NvcmRpbmdseS4KCmNvbW1pdCA3YmEyM2U1NzA3NjQ5OWVmOGVlYjIzODg1MzgzNDczY2NmNDQ3MzY1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAxNSAxMDo1ODoyNSAyMDEzICswMTAwCgogICAgV2luMzI6IGJhdGNoIGJ1aWxkOiBDaGVjayB3aGV0aGVyIFBlcmwgYXJjaGl0ZWN0dXJlIG1hdGNoZXMgdGFyZ2V0IGFyY2hpdGVjdHVyZQogICAgCiAgICBCdWlsZGluZyB0aGUgUGVybCBtb2R1bGVzIGZhaWxzIGluIGEgc3VidGxlIHdheSBpZiBlLmcuIGEgMzItYml0IFBlcmwKICAgIGludGVycHJldGVyIGlzIHByZXNlbnQgaW4gJVBBVEglIGFuZCBhIDY0LWJpdCBDIGNvbXBpbGVyIG9yIHZpY2UgdmVyc2EuCiAgICBIZW5jZSBjaGVjayB3aGV0aGVyIFBlcmwgaW50ZXJwcmV0ZXIgYW5kIEMgY29tcGlsZXIgdGFyZ2V0IGFyY2hpdGVjdHVyZQogICAgbWF0Y2ggYmVmb3JlIHN0YXJ0aW5nIGEgYnVpbGQuCgpjb21taXQgNmI3MDZjNTNkNGNmNzUxZTQ5NWFhYjY2ZmUzOWZkNTFjMzJjZTkzMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMTUgMTA6MDY6MjEgMjAxMyArMDEwMAoKICAgIFdpbjMyOiBWaXN1YWwgU3R1ZGlvIDIwMTMgYnVpbGQgZml4CiAgICAKICAgIEFwcGFyZW50bHkgVmlzdWFsIFN0dWRpbyAyMDEzIGRvZXMgbm90IHN1cHBvcnQgZ290byA8dHlwZWRlZiBuYW1lPi4KICAgIEhlbmNlIHJlbmFtZSB0aGUgVUlOVCBsYWJlbC4gRm9yIGNvbnNpc3RlbmN5IHJlYXNvbnMsIGFsc28gcmVuYW1lCiAgICB0aGUgT0NUIGxhYmVsLgoKY29tbWl0IDEzYzg1OTBlMzgyNjlhOTI2NWVhZDVjODVmMDVjODg5NGU4NmQ4NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDE1IDA5OjMxOjQ0IDIwMTMgKzAxMDAKCiAgICBSZW1vdmUgdGhlIE5FVFNOTVBfRE9OVFdBSVQgLyBORVRTTk1QX05PU0lHTkFMIGFsaWFzZXMgZm9yIHNlbmR0by9zZW5kbXNnIGZsYWdzCiAgICAKICAgIE5vdGU6IHRoaXMgcGF0Y2ggaXMgYSBtb3JlIGVsYWJvcmF0ZSB2ZXJzaW9uIG9mIHRoZSBWNS03LXBhdGNoZXMgY29tbWl0CiAgICA4OWE1MDRmZTMzMWUwOWE1NGY2YjAxYzI4NzdjZjAyMjkwMDcwNWE4ICgyMDExLTEyLTE5KS4KCmNvbW1pdCBlMGVhZDJkNTRlYmY0MzUzM2U1NjJjMzQwMmUxMjE4OGNmZGMwNzllCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IERlYyAxNCAxODo1NDowMSAyMDEzICswMTAwCgogICAgd2luMzIvYnVpbGQucGw6IEFkZCBzdXBwb3J0IGZvciB0aGUgVmlzdWFsIFN0dWRpbyAyMDEzIGNvbW1hbmQtbGluZSBlbnZpcm9ubWVudAoKY29tbWl0IDg4ODYwOTVhOTkwOTAyOTNiMDZhMDcxOWU3Yjg2OGYxZWRjMTQ5MzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRGVjIDE0IDE4OjI5OjAxIDIwMTMgKzAxMDAKCiAgICBsaWJhZ2VudDogV2luMzIgYnVpbGQgZml4IChzZWUgYWxzbyBjb21taXQgMDE3MjNjNikKCmNvbW1pdCA1ZjMyYjRhYWE4YmNkMjJlYmE5YzY0OTIyM2ZlMDgwZDU0NzliYzhlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IERlYyAxNCAxNzoxNzozMCAyMDEzICswMTAwCgogICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg6IEFkZCBhIG1pc3NpbmcgZGVjbGFyYXRpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMiAtPiBWNS43LjMucHJlMQoKY29tbWl0IGQwMTE3YWRlZTg0ZWZjYjU4YTVlNDE4M2Y3ZDdjYzZlNzAwZjAyNjQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDUgMjM6MzM6NTEgMjAxMyAtMDgwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmUxCgpjb21taXQgYjFkYmRhOGJiY2NhODIzNzc2NjRkY2E5Y2I2YmIwNmY5Y2U2MzdhMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgNSAyMzozMzozNyAyMDEzIC0wODAwCgogICAgUmVwbGFjZSAvLyBjb21tZW50cyB3aXRoIC8qIGNvbW1lbnRzCgpjb21taXQgOWVlMzk2Y2VjMTgxMTUxMmZiY2IyNDQ5MGIzYmUwYjk3MGY2OWZmYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgNSAyMzowNjoxMyAyMDEzIC0wODAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmUxCgpjb21taXQgNmMzOTJmZWQ2Y2Q1ZDdhMzJlZDEwYzgxNzBhZWQ4NTFjZWU3Nzk4NQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgNSAyMzowNDoyNSAyMDEzIC0wODAwCgogICAgaW5jcmVtZW50IHRoZSByZXZpc2lvbgoKY29tbWl0IGY1NDAzZTc1NjdlYjA3MWJlZDhkYWRiYTM4YTJjZGE2MDMzMmI4ZmMKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBTdW4gRGVjIDEgMTg6MjQ6MTIgMjAxMyAtMDgwMAoKICAgIERvbid0IHNldCB0aGUgaWZpbmRleCB3aGVuIHNlbmRpbmcgYSBub3JtYWwgcmVwbHkuCiAgICAKICAgIFNldHRpbmcgdGhlIGlmaW5kZXggaW4gdGhlIElQX1BLVElORk8gcmVzdWx0cyBpbiBzZXR0aW5nCiAgICB0aGUgc291cmNlIGFkZHJlc3MgdG9vIChpZ25vcmluZyB0aGUgc291cmNlIGFkZHJlc3MgdGhhdAogICAgd2UgYWxzbyBzdXBwbHkpLiAgVGhlIHNlcXVlbmNlIGhlcmUgaXMgdGhhdCB3ZSBzZW5kIHdpdGgKICAgIG5vIGludGVyZmFjZSBzcGVjaWZpZWQgYnV0IHRoZSByZXF1ZXN0J3MgZGVzdGluYXRpb24KICAgIHNwZWNpZmllZCBhcyBvdXIgc291cmNlLiAgSWYgd2UgZ2V0IEVJTlZBTCwgaXQncyBiZWNhdXNlCiAgICB0aGUgcmVxdWVzdCdzIGRlc3RpbmF0aW9uIHdhcyBhIGJyb2FkY2FzdCBhZGRyZXNzIHdoaWNoCiAgICBpcyBhbiBpbnZhbGlkIHNvdXJjZSBhZGRyZXNzLCBzbyB3ZSB0cnkgYWdhaW4gd2l0aCB0aGUKICAgIGluY29taW5nIGludGVyZmFjZSdzIGlmX2luZGV4IGFuZCBzcGVjaWZ5IHRoZSBzb3VyY2UKICAgIGFzIElOQUREUl9BTlkuCiAgICAKICAgIElmIHdlIHN1cHBseSB0aGUgaWZpbmRleCBpbiB0aGUgZmlyc3QgY2FsbCwgYSByZXBseSBmcm9tCiAgICBhIG11bHRpLWhvbWVkIGFnZW50IG1heSBjb21lIGZyb20gYSBkaWZmZXJlbnQgc291cmNlIGFkZHJlc3MKICAgIHRoYW4gdGhlIHJlcXVlc3Qgd2FzIHNlbnQgdG8sIHBvdGVudGlhbGx5IGNvbmZ1c2luZyBhIG1hbmFnZXIuCiAgICBUaGlzIGJ1ZyB3YXMgZmlyc3QgaW50cm9kdWNlZCBpbiBTVk4gcjE3ODU1IGFuZCB3YXMgZml4ZWQKICAgIGluIFNWTiByMTk3Njc7IGFsc28gc2VlIHRoZSBtYWlsaW5nIGxpc3QgdGhyZWFkCiAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD90aHJlYWRfbmFtZT1BQU5Ma1RpbTM3SDdNN0JhMDEwTG1kazFZR1lLd1BUa0R5UktvRHI3NnVxRFQlNDBtYWlsLmdtYWlsLmNvbSZmb3J1bV9uYW1lPW5ldC1zbm1wLWNvZGVycwoKY29tbWl0IDE0NGExMzIwOGI0ZmE2ZjBhMWNkOTcxZjQxYTcyNzk3MTZiMjdlZWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDI5IDA4OjA3OjI4IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZml4aW5nIHRoZSBzdGF0cyBvdXRwdXQgYnJva2UgdGhlIGNvbm4gb3V0cHV0IDotKC4gRml4ZWQuCgpjb21taXQgZjRlNWVlNmYzOTYzMGI3M2Y4YWQ5OTQ2Yzk5MGU5NjkwNTgwZDdjZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBOb3YgMjcgMDE6MTI6MDAgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB0ZXN0cyBmb3IgYXNuX3JlYWxsb2NfcmJ1aWxkXyppbnQqIGFuZCB0ZXN0cyBmb3Igb3BhcXVlIHVuc2lnbmVkIDY0LWJpdCB0eXBlcy4KCmNvbW1pdCAyMGU0YjM3OTMyYTllOWNjNTZiMzYwYTIzNmU5ZDgxODA3OTNhMjk3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE5vdiAyNyAwMDo1NDo1OCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgdHlwZSBjaGVjayBmb3Igb3BhcXVlIHZhcmlhYmxlcyB3aGVuIGRlY29kaW5nIGNvdW50ZXI2NCB2YWx1ZXMuCiAgICAKICAgIFRoYW5rcyB0byBya2pAc29mdGhvbWUubmV0IGZvciByZXBvcnRpbmcgdGhpcyBpc3N1ZS4KCmNvbW1pdCA2ZTc2Y2JiYjJhMDc4M2YyMmY1OGZiN2QzMjNlOWY3MjE3Y2M2MDRhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE5vdiAyNyAwMTowMTowNCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgZmFpbHVyZSB0byB0cmlnZ2VyIHNpZ24gZXh0ZW5zaW9uIGR1ZSB0byBvdmVybG9uZyB0eXBlcwogICAgCiAgICBJbiBhc25fcmVhbGxvY19yYnVpbGRfc2lnbmVkX2ludDY0IHRoZSBhbGdvcml0aG0gYXNzdW1lcyB0aGF0IHNoaWZ0aW5nCiAgICB2YWx1ZXMgZ3JlYXRlciB0aGFuIDB4N2ZmZmZmZmYgcmlnaHQgaXMgYW4gYXJpdGhtZXRpYyBzaGlmdCB0aGF0IHdpbGwKICAgIHNoaWZ0IGluIDEncy4gT24gaG9zdHMgd2hlcmUgbG9uZyBpcyBtb3JlIHRoYW4gMzIgYml0cyB0aGUgdXNlIG9mIGxvbmcKICAgIGZvciAnbG93JyBhbmQgJ2hpZ2gnIG1ha2VzIHRoaXMgYXNzdW1wdGlvbiBmYWxzZS4KICAgIAogICAgVGhhbmtzIHRvIHJrakBzb2Z0aG9tZS5uZXQgZm9yIHJlcG9ydGluZyB0aGlzIGlzc3VlLgoKY29tbWl0IDRhNGI3OGU2M2RkNjg4ODkyYjczOTliNTg0ZTI2ZTA0N2QzNjc1MDEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDI3IDIyOjE2OjQ0IDIwMTMgKzAxMDAKCiAgICBBZGRpdGlvbmFsIGZpeCBmb3IgZGFyd2luMTMKCmNvbW1pdCA5MWJkNWQ0YzVmNDFiNTRjNDYyNDI4ODNkYjkyYWE0ZTQ5NDU1Mjk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyNyAyMjoxMzowMyAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZpeCB0cnVuY2F0ZWQgc3RhdGlzdGljcyB3aGVuIHVzaW5nIC12MQoKY29tbWl0IDBjYjE0ZDRlNWMzOWEwN2M3ODQ3NDg4MWU2YzczZmE2MTc1MDdiZGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDI3IDIyOjA2OjU4IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZml4IHN0YXRpc3RpY3MgZm9yIGlwdjYKCmNvbW1pdCAyZDRkZWZlNzdiZGViYmJjMWE3NzNlYjhkNDg0OThiNmYyNTU4ZjIzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiA1IDA2OjQ5OjM1IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVXNlIDAgZm9yIHRoZSBpZ25vcmVkIG51bXZhcnMgYXJndW1lbnQgdG8gbmV0c25tcF9yZWdpc3Rlcl9taWIKICAgIAogICAgVGhlIG51bXZhcnMgYXJndW1lbnQgb2YgbmV0c25tcF9yZWdpc3Rlcl9taWIgaXMgaWdub3JlZCBpZiB0aGUgdmFyCiAgICBhcmd1bWVudCBpcyBOVUxMLiBJbiBvcmRlciB0byB1bmlmeSB0aGlzIHVzZSBvZiBpdCB3aXRoIGFsbCBvdGhlciBvbmVzLAogICAgY2hhbmdlIGl0IGZyb20gMSB0byAwCgpjb21taXQgYjk5MzNlNjE4M2IxNzE1YzkwZDdjZjZkZmFjMTg5MTAwMDc5NmJjZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBOb3YgMjIgMjM6MDQ6MDggMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMKCmNvbW1pdCBhNzgzMDcwMzhiZjBiNDg1OWUxMWJkODZjYTMwNDljMzM5YWJlMTI2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyMyAwOTo0OTowMSAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBhIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24KCmNvbW1pdCBkOGQ2MDc4YjNlNjViNWJhMTMxZGY4NDJkOTJjNzc0MzczN2ZmOTU1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiAxOSAwODowNjozNCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFyayByZWdpc3Rlcl9zaWduYWwgYW5kIHVucmVnaXN0ZXJfc2lnbmFsIGFzIHVudXNlZC4KCmNvbW1pdCBiZjA4M2Y1YjY5Y2NiOTVmZjcwZTJhMjhhN2M2NGZlYzdkN2U0MjJlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxOCAyMjo0MToyOCAyMDEzICswMTAwCgogICAgUGF0Y2ggYTEyNzA6IG1hbiBwYWdlIGZpeHVwcyAodGhua3MgQWxla3NhbmRycyBTYXZlbGpldnMpCgpjb21taXQgNjJhNjM0Y2U2NzFjMzhhZGU5NzkxNzA3NzAzOWUzNGFlM2Q5MjczNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBOb3YgMyAxNjowMjozOSAyMDEzIC0wODAwCgogICAgV2luMzI6IFVuYnJlYWsgdGhlIGJ1aWxkIChzZWUgYWxzbyBjb21taXQgMjUzZjkwNzQzKQoKY29tbWl0IGE4MTNiNTExMTI1NWY3NWZlZjY5NDRjZWRkNjQ4ZGJmOGMzNGE5YWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDExIDE3OjU0OjQ0IDIwMTMgKzAxMDAKCiAgICBXaW4zMjogcGVybDogQXZvaWQgdHJhbnNwb3J0IGluaXRpYWxpemF0aW9uIGZhaWx1cmUgaW4gUGVybCBTTk1QIGFnZW50cwogICAgCiAgICBBdm9pZCB0aGF0IHRoZSBmb2xsb3dpbmduIG1lc3NhZ2UgaXMgcHJpbnRlZCBkdXJpbmcgc3RhcnR1cCBvZiBhIFBlcmwgU05NUAogICAgYWdlbnQ6CiAgICAKICAgIG5ldHNubXBfYXNzZXJ0IHMgIT0gKC0xKSBmYWlsZWQgLi5cLi5cc25tcGxpYlx0cmFuc3BvcnRzXHNubXBVRFBCYXNlRG9tYWluLmM6NDg0CiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNmE3ZGU3MjMwZmJiYmI1MmNjMzdjYmJlZDI4MWViNTU5NDA0YmU5LgoKY29tbWl0IGEyYTNhMWFhNjdmZjM4ZGFhOGYxMzk1MThhYmIzNTQ4NDc1ZWQ1OTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDggMjI6MzI6MjkgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmaXggdXNhZ2UgbWVzc2FnZSB0byBiZSBjbG9zZXIgdG8gcmVhbGl0eS4gRml4IGhhbmRsaW5nIG9mIC1DcCBhbmQgLUNmIG9wdGlvbnMgd2l0aCBuZXcgdGFibGVzLgoKY29tbWl0IDcyNzc0MDAxMDJkZmNhOTIxZWFjMGJkOWNlZjg2YjMyZjU5ODAwM2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDggMjI6MzA6MTQgMjAxMyArMDEwMAoKICAgIENsZWFuIHVwIHNubXBuZXRzdGF0IG1hbiBwYWdlLCByZW1vdmluZyBzb21lIGxlZnQgb3ZlciBjcnVmdCBtYW4KICAgIG9yaWdpbmFsIGJzZCBuZXRzdGF0IHBhZ2UuCgpjb21taXQgZWIwMzc5ZGIzODUzZmFkMTM4ZjkyZjQ3OTJhODAzNDE3N2Q5NjI5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNCAyMjowOTo1NSAyMDEzICswMTAwCgogICAgRml4IGxlbmd0aCBvZiBkZWZhdWx0IHJvdXRlciBhZGRkcmVzcyB1c2luZyBzeXNjdGwuCgpjb21taXQgOGZhNDZmMjk2MTNjMTc5MmM0YTE0NDMyOTQ0MjczYjZkNzRlM2YzYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNCAyMjowNzo1NiAyMDEzICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGNvbW1hbmQgbmFtZXMgd2l0aCBibGFua3Mgb24gTGludXguCgpjb21taXQgNmZjYjM4MWRjZDQ2MGI3OTU1NjMzOWViMzZmYmU1NzliZjQ5ZGMwMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNCAyMjowNTo1NiAyMDEzICswMTAwCgogICAgQWRkIExJU1AtTUlCIHRvIHJmY2xpc3QuCgpjb21taXQgMWM1MTA0NzQxMDcwMjE5ZjEzODAwZDc2YWZkNTdhMGQ2MzZjMjQzYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNCAyMTo1NDozNiAyMDEzICswMTAwCgogICAgRml4IHBhZ2luZyBzdGF0aXN0aWNzIGZvciBPcGVuQlNEIDUuNAoKY29tbWl0IDJmNTdiODA0ZTgzYjhmODliODk2OTYzN2Y4M2Q4ODg2MDEwODM4ZmYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDMwIDIxOjM1OjMzIDIwMTMgKzAxMDAKCiAgICBBZGQgZGFyd2luMTMgc3VwcG9ydCBmaWxlCgpjb21taXQgODIzZDUxZjc5Yjg0ZTEzNTkzZTViMWFjOWI0MDc2MzRjNTQzNDZmNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjEgMjA6NDk6NTMgMjAxMyArMDIwMAoKICAgIEZpeCBtYWtlIGluc3RhbGwgaW4gbWFuIGRpcmVjdG9yeSBmb3IgU29sYXJpcyBjYXVzZWQgYnkgVlBBVEggb2RkaXR5LgoKY29tbWl0IGM1NzUyMDRhMDIwNTkxOTk0MjhjZTEzNWJjMTJlY2IzODVlMzY3NjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIxIDIwOjQ3OjMxIDIwMTMgKzAyMDAKCiAgICBDaGFuZ2UgYW4gb2NjdXJyZW5jZW9mIHNwcmludGYgdG8gc25wcmludGYuCgpjb21taXQgYTJiZGE5OTQwMTkyODAyNzhiZWRlZDc5MTdjODc3ZmNiNDQ4ODczZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjEgMjA6NDY6MzAgMjAxMyArMDIwMAoKICAgIEJldHRlciB3b3JkaW5nIGZvciBzdGF0aXN0aWMgZW50cnkuCgpjb21taXQgNjY0NGIwNWQzY2YzNDEyM2NlZGE3NGI3Yjg0ZjE2OTQ0MzU5ZTdjYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjEgMjA6NDU6MTUgMjAxMyArMDIwMAoKICAgIEZpeCB3YXJuaW5ncyBmb3IgbGlibmwxLgoKY29tbWl0IDk0MDgxNmUwMTkxNzFhMDQxNGVlMDBhNDZjZGE0Y2U2MGJjMDFmNzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDUgMTE6MDU6MTIgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxMjY1OiBGaXggYSBidWZmZXIgb3ZlcmZsb3cgaW4gZHVtcF9yZWFsbG9jX29pZF90b19pbmV0YWRkcmVzcygpCgpjb21taXQgMDk5MmVjZjhmYzVkODc4MzcwMDZkNGJjM2E4NjgxZTU3MzZlMzU3MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBPY3QgMTcgMDc6MTY6MjMgMjAxMyArMDIwMAoKICAgIHBhc3NfcGVyc2lzdDogemFwIHBvc3NpYmxlIENSIGF0IGVuZCBvZiBsaW5lLgoKY29tbWl0IGViODhlMDI0YjRjMjY3OTk0ZGU0MDQwMWU4YjdkNzdlMzJkZWM2Y2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDE1IDIxOjMzOjU2IDIwMTMgKzAyMDAKCiAgICBNYWludGFpbiBieXRlIG9yZGVyIGZvciBJUHY2IHBvcnQgbnVtYmVycyBpbiB0cmFuc3BvcnQgZGF0YSAocHJvYmxlbSBzdXJmYWNlZCBpbiBzbm1wVGFyZ2V0QWRkckVudHJ5KQoKY29tbWl0IGYyZTU3YjhlNjM4YTFmY2RjODVmZDBmZDJmNjU1MmEzM2ZjYWIzZjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDE1IDIxOjE3OjIxIDIwMTMgKzAyMDAKCiAgICBzbm1wbmV0c3RhdDogYmV0dGVyIGhhbmRsaW5nIG9mIHNubXAgZXhjZXB0aW9ucy4KCmNvbW1pdCBlMDI4MDI5NGU3ZTZiZWJkNjJmYmFiOTkyOGIxYjVmMDFiNzM1ZTcyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAxNSAyMToxNTozOSAyMDEzICswMjAwCgogICAgRml4IERJU1BMQVktSElOVCBmb3IgbmVnYXRpdmUgdmFsdWVzIGFuZCBoaW50ICJkLW4iLgoKY29tbWl0IDFhYmI1YTA5NGQyNzUxNGI4MTQ3YjExMjhkYjJjZGRjYjE3MDNiYjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTm92IDIgMTQ6NDU6NDIgMjAxMiArMDEwMAoKICAgIFVzZSBORVRTTk1QX1BSSXogdG8gcHJpbnQgc2l6ZV90IHZhbHVlcyBpbiBfc2Vzc19yZWFkCgpjb21taXQgYWNiNzI1ODlhY2IzMDE4ZTQ0M2Y1ZTNmNjU0ZGQwM2Y3YzI2MzE2YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMSAxODo0MTo1MSAyMDEzICswMjAwCgogICAgQWRkIGZvcmdvdHRlbiBpY21wT3V0RWNob3MgdG8gaWNtcE1zZ1RhYmxlLgoKY29tbWl0IDI1M2Y5MDc0MzkxNTEwMjNhOTJhM2FjNDNhOWYzMTdlM2E0ZTE3ZmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDMwIDIyOjEzOjQzIDIwMTMgKzAyMDAKCiAgICBTb2xhcmlzOiBzdXBwb3J0IGljbXBNc2dTdGF0c1RhYmxlCgpjb21taXQgNmVlOTFmMDZiNWJkMGUwY2JkMmI2OWYzZGFlMGJmNjE0MWNjOTU1NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMzAgMDY6NTk6MTAgMjAxMyArMDIwMAoKICAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgSVAtRk9SV0FSRC1NSUIKCmNvbW1pdCA0ZWJkZjNmYjA0NDVmOTA2N2VjYjM4Mzk0YzJkZjJiZDNiNzM4MTgyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAzMCAwNjo1NDoyOCAyMDEzICswMjAwCgogICAgUHJvcGVybHkgaGFuZGxlIHRoZSAnYicgZGlzcGxheSBoaW50LgoKY29tbWl0IDdmMmVkYmY2ODM0OGNhYmVhZjk5NWFhYmExYjJhNzg5M2QxOGM1ZTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgQXVnIDMwIDA4OjUwOjA5IDIwMTMgKzAyMDAKCiAgICBSZW1vdmUgc29tZSBjb21tZW50ZWQgb3V0IGRlZmluZXMKCmNvbW1pdCA0MzVlZTFmNDAyM2NiMDAyMjQ1YzNhNTZkYmVhYmEzN2EzZDNlZGJlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAyOCAxNDoyNjoxMCAyMDEzICswMjAwCgogICAgUGF0Y2ggYTEyNTkgKGJ1ZyBhMjQ1Nik6IHByb2JsZW1zIHdpdGggaXBDaWRyUm91dGVUYWJsZSBvbiA2NC1iaXQgYmlnZW5kaWFuIG1hY2hpbmVzLiBUaGFua3MgdG8gQ2hyaXN0b3BoZXIgV3UuCgpjb21taXQgOWE2ZjU2NjM5MmEzY2YxMmRhYjQ4OGE3NmQ2OWZjODczZGJlYzJhYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBBdWcgMjUgMTA6MTg6NTMgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlbmFtZSBtZW1kdXAoKSBpbnRvIG5ldHNubXBfbWVtZHVwKCkKICAgIAogICAgUmVuYW1lIHRoZSBmdW5jdGlvbiBtZW1kdXAoKSBkZWZpbmVkIGluIGxpYm5ldHNubXAuc28gaW50bwogICAgbmV0c25tcF9tZW1kdXAoKS4gVGhpcyBhdm9pZHMgY29uZmxpY3RzIHdpdGggbWVtZHVwKCkgZnVuY3Rpb25zCiAgICBkZWZpbmVkIGluIG90aGVyIGxpYnJhcmllcyB0aGF0IGRlZmluZSBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUKICAgIG5hbWUuIEFzIGFuIGV4YW1wbGUsIGlmIFdJTlMgbmFtZSByZXNvbHV0aW9uIGhhcyBiZWVuIGVuYWJsZWQgdmlhCiAgICAvZXRjL25zc3dpdGNoLmNvbmYgdGhlbiBwZXJmb3JtaW5nIGEgaG9zdCBuYW1lIGxvb2t1cCBjYW4gdHJpZ2dlcgogICAgYSBjcmFzaCBpbiB0aGUgU0FNQkEgV0lOUyBuYW1lIGxvb2t1cCBsaWJyYXJ5IGJlY2F1c2UgY2FsbHMgdG8KICAgIG1lbWR1cCgpIGZyb20gdGhhdCBsaWJyYXJ5IGdldCByZWRpcmVjdGVkIHRvIHRoZSBpbmNvbXBhdGlibGUKICAgIE5ldC1TTk1QIG1lbWR1cCgpIGZ1bmN0aW9uLiBTZWUgYWxzbwogICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDAwNzgwIGZvciB0aGUgZGV0YWlscy4KICAgIFRoaXMgcGF0Y2ggaW50ZW50aW9uYWxseSBjaGFuZ2VzIHRoZSBOZXQtU05NUCBBQkkuCgpjb21taXQgM2RkZTQxOTk4NjI1ZmUwZTI0MTE5YTJlMWY0NTA5YmEzYmEyZmQ5YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgNSAyMDoyNzoyMiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogTGludXg6IEJVRzogMjIzODogQWRkIGxpYm5sMyBzdXBwb3J0Cgpjb21taXQgYTM3OTU3YmVlOWY3OWRiMTliYmE5M2YxMWZhYTAzNzkyMWQ2ZTU4NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMjMgMjI6MjQ6MTUgMjAxMyArMDIwMAoKICAgIHJvdXRlX3N5c2N0bC5jOiBGaXggZm9yIGxpbmtsb2NhbCByb3V0ZXMgb24gRnJlZUJTRCAxMAoKY29tbWl0IGQ5YTdmOWZjNjc5NDU1YjBmYTMyOGZiYWU2N2VjMmVlMjkwNmI5NGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE5OjQyOjUxIDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogQXV0b21hdGUgYnVpbGRpbmcgdGhlIGluc3RhbGxlcgoKY29tbWl0IGViMWExNjQxNTAwZDZiY2YzOWY5Yjg0N2EyYzA2YzllZGEwYzg4YzQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE5OjMyOjMxIDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgYW4gaW5zdGFsbGVyIHdpdGhvdXQgYWRtaW5pc3RyYXRpdmUgcHJpdmlsZWdlcwoKY29tbWl0IGE5Nzc3ZWM5YWZiMzdjYTY0NDIxNjYwNzliZDViMmUwMzQ5YmUzZTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE4OjM1OjU1IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBPcGVuU1NMIHZlcnNpb24gY2hlY2sKCmNvbW1pdCA1Y2IyY2M3YWIyMGIyOTBhNmM3NDU4NWY5ODVmOWM5MTJjZGVjOGNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxMDoyNTowMCAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBSZW1vdmUgTVNWQyByZWRpc3RyaWJ1dGFibGUgZmlsZXMgZnJvbSB0aGUgaW5zdGFsbGVyCgpjb21taXQgMTc4MTIwMDYxZWNlNDhjY2Q5N2EzYWUzNmI4ODBkYTZiMTA5NTIwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMDk6NTA6MTggMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdDogR2VuZXJhbGl6ZQoKY29tbWl0IDg1YTFjNTAyNmYxMGZmMTQzZjQzN2YwMDM4OTRhNmM0YWExODdhOTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE4OjQzOjA1IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogRml4IHg2NCBkZXRlY3Rpb24KCmNvbW1pdCBhMGMyYTdhYjQyOTk3NDMzZTcwN2MxMGY4YWNmNjFmOTEyNDQyZjcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxNzoyODo1NCAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEV4YW1pbmUgdHdvIGxvY2F0aW9ucyBmb3IgTWluR1cgYmluIGRpcgoKY29tbWl0IGNmMTAwNmU2N2Y5Yzc3ZmJkYTk0ZDQ1MjFlNzhmMDA5OGM4YTBlMTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDEwOjExOjEzIDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogRml4IFNTTCBidWlsZAoKY29tbWl0IGI0N2YxMzZiZWE4ZWY1NDY4YTIwZDk0NTJiMTIzMThkYjZjMzQ5ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE3OjA1OjM3IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogQWRkIFdTREsgc3VwcG9ydAoKY29tbWl0IDBlMThhMjA2YWFhNDkwZmRlYjJjNzBhMGU2ZTUyYzkxZWI1ZjNlZDkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDA5OjQ4OjA2IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCmNvbW1pdCA4NWRmMDJiODM2MzIwY2M0NWU1ZDJkYjQ1NDgzYmM1MDg2MzE0NDZjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxMDowMjoyMSAyMDEzICswMjAwCgogICAgd2luMzIvQ29uZmlndXJlOiBGaXggYnVpbGQgd2l0aG91dCBPcGVuU1NMCgpjb21taXQgM2Y5YWRiOTg3YjViZjVkMmQwOTVjZmQ2ZWEyZGE5Y2Q4MWQxYmVjNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMDk6MTU6NDEgMjAxMyArMDIwMAoKICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBXaW4zMiBidWlsZCBmaXgKCmNvbW1pdCBhNmUxODUxZmJlNzQ3Y2YxNWVkMDc1ODA3NzgxY2U4OWEzNGU5NmMyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAxOTo1NTowMiAyMDEzICswMjAwCgogICAgUmVzdG9yZSAiQ0hBTkdFUzogV2luMzI6IHBlcmw6IEJVRzogMjQ4ODogQXZvaWQgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3IiCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjI3MjU5NjRiZGU5MjFiNjI4NWUzYTU5YTUxMjU1MmNhZTBhMGNhNS4KCmNvbW1pdCBiMjcyNTk2NGJkZTkyMWI2Mjg1ZTNhNTlhNTEyNTUyY2FlMGEwY2E1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAxOTo0OTo1OCAyMDEzICswMjAwCgogICAgUmV2ZXJ0ICJDSEFOR0VTOiBXaW4zMjogcGVybDogQlVHOiAyNDg4OiBBdm9pZCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvciIKICAgIAogICAgVGhpcyBwYXRjaCBpcyBub3QgYXBwcm9wcmlhdGUgZm9yIHRoZSB2NS40IGJyYW5jaC4KCmNvbW1pdCA2NDUzNzE3ZjZhYzY2NWJmNTMyNzQ0YTg2Y2RiODk4YWFmODNkNmJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAxOTozNDoyNSAyMDEzICswMjAwCgogICAgQWRkIHJlcHJvZHVjZXIgZm9yIGJ1ZyAyNDg4Cgpjb21taXQgMGQwYTQ2Mjk3MDJlYjlmOWZlOTk1NmMxYmFjNGI0NDU2MTBmZjNjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMzEgMTc6MjE6MjIgMjAxMyArMDIwMAoKICAgIFNpbXBsaWZ5IHNubXBUYXJnZXRBZGRyX3Jvd1N0YXR1c0NoZWNrKCkKCmNvbW1pdCA0Yjg3ZTNjYjRkMzY3OWFiNjBjMzUzYmE0ZmYzMDFmNjg0MmI4NGJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAxNjozNzowOSAyMDEzICswMjAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY4ZXhlY2ZpeF9zaW1wbGU6IFNpbXBsaWZ5Cgpjb21taXQgNjVjODhlMmVjZjVkZTkzNjVjODNjNDZlZjNiYjRjZDg5Y2RjNDRlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMTUgMTE6MTE6NDMgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBwZXJsOiBCVUc6IDI0ODg6IEF2b2lkICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9yCgpjb21taXQgMWE0ODU1ZGE0YjFkZDY5M2EyYjAzNzdiOTFlOWMzM2UzYzdmMmE0ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMTc6MTE6NDUgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMjQwMjogQWRkIHN1cHBvcnQgZm9yIFNOTVB2MyB0cmFwcwoKY29tbWl0IDNkMDUxNTY5M2Y2YTBkMjlkMzlkZDBjODY4ZDM3OGM3NGJjNGY4N2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDA5OjE2OjMzIDIwMTMgKzAyMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjhleGVjZml4X3NpbXBsZTogUG9ydCB0byBNaW5HVyBhbmQgRnJlZUJTRAoKY29tbWl0IDViNmU0MzFkOWY2NjNhM2MzMjdkNzFkYWM5NTM5MmNmZDg2YjMyOTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDA5OjAzOjU5IDIwMTMgKzAyMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDlmMmU4ZmM4ZDlhMjZmNTdhYjA4OWFiYTNkMWFlMjZiM2U4ZjJkNTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDE3IDIyOjMwOjM4IDIwMTMgKzAyMDAKCiAgICBGaXggZGVwZW5kZW5jeSBmb3IgRnJlZUJTRDEwCgpjb21taXQgYTUwNmVmZGQxZGI4MjRhOWVlZWUwM2QwMDIxYzkwZmFmM2I2MjkyNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMTcgMjI6Mjk6MzQgMjAxMyArMDIwMAoKICAgIHNubXBkZiBtYW4gcGFnZTogZml4IGZvcm1hdHRpbmcgb2YgLUNoLy1DSCBvcHRpb25zCgpjb21taXQgYTJlOTdiZWJmYzUyMTcwZjllYzEwMzZkMjRhYTg0ZjU5Y2YyZTUwOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMTcgMjI6Mjc6NDkgMjAxMyArMDIwMAoKICAgIFVwZGF0ZSB0aGUgQlNEIG11bHRpLWNwdSBjb3VudGVycyBjb2RlIHRvIHdvcmsgd2l0aG91dCBjb25maWd1cmUgaGVscC4KCmNvbW1pdCBjODVkNjRkNTRiMDY4NzlhM2E2OTFkYWRmZmMwM2JmYjFmNTkwOTZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIFNlcCAxNyAwNjozNzoxOCAyMDEzICswMjAwCgogICAgT25seSB0ZXN0IHRoZSBleGVjZml4IGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGlmIGl0IGlzIGVuYWJsZWQKCmNvbW1pdCBlZDhiNjk3Y2VhMDY3OWRlN2JlNWIzZjVkNDY5MTM0ZTFjZGFlZDU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCA3IDEwOjI3OjAyIDIwMTMgKzAyMDAKCiAgICBtNC9hY19hZGRfc2VhcmNoX3BhdGgubTQ6IEZpeCBhIGNvbW1lbnQKCmNvbW1pdCBmNzc5YzVlOTQ2Nzg4NTg1MmYxNmM1NTQxYTM4MDExMWY5ZWFkMDYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCA3IDIwOjI4OjI5IDIwMTMgKzAyMDAKCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9hcHQuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgICAKICAgIFJlbW92ZSB0aGUgdW51c2VkIHZhcmlhYmxlICdyYycgYW5kIGZpeCBhIGZvcm1hdCBzdHJpbmcuCgpjb21taXQgYzY0Mzk2MjdkMDlmNTAzZmRjOGNmYTMyZDg4NGU4MzQ3MzgzMTc1NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXIgOCAwMDoxMzowNSAyMDExICswMDAwCgogICAgYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydCB0ZXN0aW5nCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDVjYmQ1NDM0MWEyYTc5YmY4NTM3Mzc3ZDExMzcyNDgzZjA4NjQ3YWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDE0IDE0OjI4OjIxIDIwMTMgKzAyMDAKCiAgICByZWdyZXNzaW9uIHRlc3RzOiBBZGQgYSB0ZXN0IGZvciB0aGUgZXhlY2ZpeCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZQoKY29tbWl0IDFjNzU2MzQ5ZTRkMzFkMzllYzJmYzUzYzY0NDBhZTUzYjNiMDNkZjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDcgMjA6Mjg6NTYgMjAxMyArMDIwMAoKICAgIHNubXBkOiB1Y2Qtc25tcDogRml4IGEgcG90ZW50aWFsIGNyYXNoIGluIGZpeEV4ZWNFcnJvcigpCiAgICAKICAgIERvIG5vdCBpbnRlcnByZXQgYSBjb21tYW5kIHNwZWNpZmllZCB2aWEgdGhlIGV4ZWNmaXggY29uZmlndXJhdGlvbgogICAgZGlyZWN0aXZlIGFzIGEgcHJpbnRmKCkgZm9ybWF0IHN0cmluZy4KCmNvbW1pdCA4YjE0MGQwOTY1ZTExZjU5MjE3NjhiZjA1ZDBjMmIxOTQxYzBkMzM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAzMSAxNzoxMDo1NSAyMDEzICswMjAwCgogICAgU05NUC1UQVJHRVQtTUlCOiBEZWNsYXJlIGxvY2FsIHZhcmlhYmxlcyBhdCBmaWxlIHNjb3BlIHN0YXRpYwogICAgCiAgICBBbHNvLCBkZWNsYXJlIHRob3NlIHZhcmlhYmxlcyBjb25zdCB0aGF0IGFyZSBub3QgbW9kaWZpZWQuCgpjb21taXQgN2I4MmM2MWU3NTNlMTU3YzRiODY5ODIxOTAwNmYyZjgzZGY1MjgwMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMzEgMTY6NTE6MTUgMjAxMyArMDIwMAoKICAgIFNOTVAtVEFSR0VULU1JQjogRWxpbWluYXRlIHR3byBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IGRiY2Y0N2RkNGZlNTI2MmFkMGZhZDdjOTc3NDUyMDk1ODk1NDBjNDAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAxMSAxMDoyMTozMiAyMDEzICswMjAwCgogICAgUmV3b3JkIHRoZSBpbmNsdWRlRmlsZSBzZWFyY2ggcHJvY2VzcyB0byBmaXQgdGhlIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IDg1MDczMDg1ZDY3ZWQ2NmFiNzQ2MTFjOGU1ZjgxMDE5MjQ5MWJhNjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDkgMjI6MjY6MjMgMjAxMyArMDIwMAoKICAgIFBhdGNoIGExMjYzOiBNYWtlIGRhdGFiYXNlIG5hbWUgY29uZmlndXJhYmxlIGZvciB0cmFwZCBzcWwgbG9nZ2luZy4KICAgIFRoYW5rcyB0byBSb2JpbiBTb25lZm9ycy4KCmNvbW1pdCA3ZTcyNThlZjhiMzJmOTc0MDQ4ZjNmZDA5OGE5ZGE1MjZkYTJlNjEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCA5IDIyOjE3OjE1IDIwMTMgKzAyMDAKCiAgICBQYXRjaCBhMTI2MjogRml4IG1lbW9yeSBlcnJvciBjYXVzZWQgYnkgY29uZnVzaW5nIHNpemUgb2YgcG9pbnRlcgogICAgd2l0aCBzaXV6ZSBvZiBwb2ludGVkIGFyZWEuIFRoYW5rcyB0byBSb2JpbiBTb25lZm9ycy4KCmNvbW1pdCA1ODZlMDdiOGRlNTFiMDU0MDBkNTgyZmFjZDkxZDQ0MTBkZDM3NzAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAzMSAxNzowOTo1OSAyMDEzICswMjAwCgogICAgc25tcGQ6IENvbnN0aWZ5IGEgZmV3IGFyZ3VtZW50cyBvZiBNSUIgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucwogICAgCiAgICBOb3RlOiB0aGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSB0aGUgQUJJLgoKY29tbWl0IDQ0YzM2NzFkZDkzZmUwZjA4Mjk5ZTYxZDBhNDIyZmQwNzJiNDkwZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDggMDc6MzU6NDYgMjAxMyArMDIwMAoKICAgIFJ1biBhdXRvcmVjb25mCgpjb21taXQgNjJkYWRlZmExYjI2ODhjMDI3OTJlOWZkMmQzZmMzMWM3OWVkMTFjMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBTZXAgNiAxMTo1NDoxMyAyMDEzICswMjAwCgogICAgc3dydW5fZGFyd2luOiBGaXggYnVmZmVyIG92ZXJydW4gd2hlbiBjb2xsZWN0aW5nIGhyU1dSdW5QYXJhbWV0ZXJzCgpjb21taXQgMWUwNTI2Zjg1ZWQ2MTU2N2NhNmVhNTNiNTY2Yzc3Mjk5MjExMWM5ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgNCAyMjozMDo0MCAyMDEzICswMjAwCgogICAgQWRkIGEgY291cGxlIG9mIGNvbnRyaWJ1dG9ycyB0byBSRUFETUUKCmNvbW1pdCBlZGM2MDhlYmQ1ZDAyMTk4NjNiYzVmNjU2ZDE3N2IxZDU2MTA0OGMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCA0IDIxOjU5OjE4IDIwMTMgKzAyMDAKCiAgICBGaXggYSBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgpjb21taXQgZmIyNGY3MzNjYjMxNmMzNWNjZmRjNTlmNDg3YjY1ZTBjZDk3NGM2OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgNCAyMTo1NDoyNyAyMDEzICswMjAwCgogICAgc25tcG5ldHN0YXQ6IEluZGVudCBJQ01QIGhpc3RvZ3JhbSBmb3IgcmVhZGFiaWxpdHkuCgpjb21taXQgZjc5NDNhNWQ1OGE2Zjk1M2M3OWZiNTVhYjg5N2M4NDkyMjhlZGI4YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgNCAyMTo0NToxOSAyMDEzICswMjAwCgogICAgUmVjb2duaXplIHpmcyBmaWxlIHN5c3RlbXMKCmNvbW1pdCBhYjQzNzBiYWY1Y2NjMTQ2ZjhkMWM4MzliYjBmNDE5ZWUzN2U3MWMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAyIDIxOjIxOjI1IDIwMTMgKzAyMDAKCiAgICBQYXRjaCBhMTI2MSAoQmlsbCBGZW5uZXIpOiBGaXggY3Jhc2ggd2hlbiBtaWItaW5kZXhlcyBhcmUgbm90IGFsbCByZWFkYWJsZQoKY29tbWl0IGM2Y2FhMzAwN2Y2MGY2Y2RlYWExMzQxNTI3NTg2NDVhNzNhN2ZlNjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDIgMTk6Mzk6MTQgMjAxMyArMDIwMAoKICAgIHNubXBuZXRzdGF0OiBQcm9wZXIgdGVzdHMgZm9yIHYyL3YzIGV4Y2VwdGlvbiByZXN1bHRzIChCdWcgYTI0NzcpCgpjb21taXQgMzk0MjBiZDQwYjdhMWJhNzIwYTljYmI5MjI2NGQzZjljYzBhN2UyZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMjEgMjI6MDg6NDEgMjAxMyArMDIwMAoKICAgIFBBVENIIGExMjYwOiBTdXBwb3J0IG11bHRpLWNwdSB1c2FnZSBmb3IgRnJlZS9OZXQvT3Blbi1CU0QuCiAgICBUaGFua3MgdG8gUGFibG8gQ2FyYm9uaSBmb3IgZmlyc3Qgc3RhYiBhdCB0aGlzLgoKY29tbWl0IDYyMzA1Y2QwMjhkOGFiZjQzMDEyMWU5MDA4YWNjOGYwZDE4NzFlMWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDIxIDIyOjA4OjQxIDIwMTMgKzAyMDAKCiAgICBQQVRDSCBhMTI2MDogU3VwcG9ydCBtdWx0aS1jcHUgdXNhZ2UgZm9yIEZyZWUvTmV0L09wZW4tQlNELgogICAgVGhhbmtzIHRvIFBhYmxvIENhcmJvbmkgZm9yIGZpcnN0IHN0YWIgYXQgdGhpcy4KCmNvbW1pdCBjYzJmZTZiZGU2YTNjMjhiM2MxYWQxNjVjOWJhM2ZjMWQ1ODNjMjUzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyAyNSAwODoyMzo0MyAyMDEzICswMjAwCgogICAgSVAtTUlCOiBGaXggRG94eWdlbiBoZWFkZXIgb2YgbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuKCkKCmNvbW1pdCA5NjMwMmFmN2ZjMzEwOGMyMDgyMjc0MzJmMGYwYjc1ZjNlN2I5MDZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEF1ZyAyOCAxMDo1OTowNSAyMDEzICswMjAwCgogICAgQ29ycmVjdCBjb252ZXJzaW9uIGZhY3RvciBmcm9tIG1pY3Jvc2Vjb25kcyB0byBjZW50aXNlY29uZHMuCgpjb21taXQgZThjZjc2NmUwODM4MzRhZjdmZGZlZDg3N2RiZTg4MTBiZjAwYTRlYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTkgMjI6MTc6MTEgMjAxMyArMDIwMAoKICAgIEZpeCBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4gdG8gdGFrZSBhbiBhcmd1bWVudCBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgYXMgZG9rdW1lbnRldAoKY29tbWl0IGEwYzU5YTNiNDU4ZThhOGRmYjA1OWE2Mjc5MmQyNWE0YzVjOWZjOWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE5IDIyOjE0OjE1IDIwMTMgKzAyMDAKCiAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKCmNvbW1pdCA2NmI5YmZiYTRlYWU4NDk0NGFiZjRlNmQwNzQ4OTRhY2QwNTEzYzZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxMjo1NyAyMDEzICswMjAwCgogICAgRml4IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbiB0byB0YWtlIGFuIGFyZ3VtZW50IGluIG5ldHdvcmsgYnl0ZSBvcmRlciBhcyBkb2t1bWVudGV0Cgpjb21taXQgZWM5NmIzNWQ1MDYwYzA5YjlmNTNkNGRlYzczZmI3OTY1YzJhYzE0NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTkgMjI6MTE6MzYgMjAxMyArMDIwMAoKICAgIEZpeCBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4gdG8gdGFrZSBhbiBhcmd1bWVudCBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgYXMgZG9rdW1lbnRldAoKY29tbWl0IGIyN2I0N2I1Nzk4NDY5ZTlhYjViZDRiNTFhYzM5ZDQzZmNkOTU2MDgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXVnIDE3IDEwOjEyOjE0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHN1cmUgVGVzdDo6SGFybmVzcyBpcyBvZiBhdCBsZWFzdCB2ZXJzaW9uIDEuMjEKICAgIAogICAgVGVzdDo6SGFybmVzcyAxLjIxIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIHRoYXQgaW1wbGVtZW50cyBUQVAgdjEyIHdoaWNoIGFsbG93cwogICAgcHV0dGluZyB0aGUgaGVhZGVyICgxLi5OKSBhZnRlciB0aGUgdGVzdHMgYW5kIHNpbmNlIG91ciB0ZXN0cyB1dGlsaXplIHRoYXQKICAgIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgdGVzdCBydW5uZXIgc3VwcG9ydHMgaXQuCgpjb21taXQgMTRmOGQ0YWQ2ZjA2ZDA5ZDg3MDk2ZGQ2ODEzN2ExMjVhMDM5YzU2MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjkgMTc6NDI6NTQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IEFJWDogTWFrZSB1ZHAtbWliIGJ1aWxkCgpjb21taXQgMzhkNzdjN2MyMGEzZTc5NzljMDljNTE0NGY4NjkzNGVkNDY1NDBkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjkgMTc6Mzk6MzggMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IEFJWDogTWFrZSB0Y3AtbWliIGJ1aWxkCgpjb21taXQgNThmZDIzYjcxMTBjOTNlZTQ5NmZmYWZlODY4NTM5YzJhZjg1NDNiZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgMTYgMTA6Mzk6MDMgMjAxMyArMDIwMAoKICAgIFdpbjMyOiBCdWlsZCBmaXg6IEV4cG9ydCBza2lwX3doaXRlX2NvbnN0KCksIHNraXBfbm90X3doaXRlX2NvbnN0KCkgYW5kIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkKCmNvbW1pdCAwYWI5Y2QxNjU1ZDQ2Zjk2OGRjMTJiZDY3MTRhYzE3YjliY2U1ZTcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAxNiAwODoyODowOCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcC11c20tZGgtb2JqZWN0cy1taWI6IEF2b2lkIHRyaWdnZXJpbmcgYW4gYXNzZXJ0IHN0YXRlbWVudCBpbiBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpCiAgICAKICAgIFRoZSBjYWNoZSB0aW1lb3V0IGZvciBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYiBpcyAtMS4gQW55IGNhY2hlIHRpbWVvdXQKICAgIHZhbHVlIDwgMCBkaXNhYmxlcyBjYWNoaW5nLiBIb3dldmVyLCBzdHJpY3RseSBuZWdhdGl2ZSB2YWx1ZXMgdHJpZ2dlcgogICAgdGhlIGFzc2VydCBzdGF0ZW1lbnQgaW4gbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKS4gQXZvaWQgdHJpZ2dlcmluZyB0aGF0CiAgICBhc3NlcnQgc3RhdGVtZW50LgoKY29tbWl0IDFmYTU4NGIyMjJjNTY3MjQzNzhmNWM4NTk5M2VlZWU2NTE1MjYwYWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDE2IDEwOjAyOjQ3IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXggTkVUU05NUF9GRF9TRVRfQllURVMoKQogICAgCiAgICBUaGlzIHBhdGNoIGF2b2lkcyB0aGF0IHVuaXQgdGVzdCBUMDA5bGFyZ2VfZmRfc2V0X2NsaWIgY3Jhc2hlcyBvbiBBSVguCgpjb21taXQgOTVhYzE5MGI1MjZkYmE1MjA1NjM3NDExYTg5MmI1MmI5ZWQ2Yjk0YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMjEgMTc6MTY6NDIgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IEJVRzogMjQ3Njogc25tcGQgZmFpbHMgdG8gc3RhcnQgb24gQUlYCiAgICAKICAgIE9uIGFuIEFJWCBzeXN0ZW0gdGhlcmUgaXMgbm8gPGt2bS5oPiBoZWFkZXIgZmlsZSBub3IgZG8gdGhlIC9kZXYvZG1lbQogICAgb3IgL2Rldi9kcnVtIGRldmljZXMgZXhpc3QgYW5kIGhlbmNlIERNRU1fTE9DIGlzIG5vdCBkZWZpbmVkLiBBdm9pZAogICAgdGhhdCBpbml0X2ttZW0oKSBmYWlscyBpbiB0aGF0IGNhc2UuCgpjb21taXQgNTA0ODFiNzY5ZTI5ZmM1Y2U2YjFlNDBjZTU2ODE4NWJiMDg5ODQ1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgMTYgMDc6MjI6MDIgMjAxMyArMDIwMAoKICAgIHNubXBkOiBSZWZhY3RvciBpbml0X2ttZW0oKQogICAgCiAgICBUaGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBhbnkgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCBjZDdlZjdiZTM5MTAzNWQ5ZGYwNWVkYzZhYzllNmYzNTE5YjQ2ZjhiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEF1ZyAxNCAyMzozODoyMSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQmUgbW9yZSByb2J1c3QgaWYgY2xvY2tfZ2V0dGltZSBmYWlscy4KICAgIAogICAgT24gUkhFTDMgaXQgc2VlbXMgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICkgYWx3YXlzIHJldHVybnMgRUlOVkFMIGJ1dAogICAgaXQgd29ya3MgZm9yIHRoZSBvdGhlciBjbG9ja3MuCiAgICAKICAgIEZ1cnRoZXIsIHRoZSBvbGQgY29kZSB3aGljaCByZXR1cm5lZCBhIGNvbnN0YW50IHsgMCwgMCB9IGNhdXNlZCB0aGUgdGVzdCBzdWl0ZQogICAgdG8gZ2V0IHN0dWNrIGluIGEgbG9vcCBpZiBubyByZXNwb25zZSBhcnJpdmVkIC0gdGh1cyB0aGlzIGNvZGUgaGF2ZSB0aGUKICAgIGFkdmFudGFnZSBvZiB3b3JraW5nIGxlc3MgYmFkLgoKY29tbWl0IDlkNzFmZWVhMjcxZjkxY2M5YjdhZGVlNjYxM2FmMTllYmE3ZWM2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAxNCAxNTo1Njo1NiAyMDEzICswMjAwCgogICAgRml4ZWQgcmV0dXJuIHZhbHVlIG9uIGVycm9yLgoKY29tbWl0IDk2MjFmNGNkYzVhMTljZWU0ZTExYmYyNzA5NGFiZjMzMzlkZGMzMGUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAxNCAxNTo0ODozOSAyMDEzICswMjAwCgogICAgUmVtb3ZpbmcgdXNlbGVzcyBjaGVjaywgZW50cnktPmRfbmFtZSBpcyBhcnJheSBhbmQgY2FuJ3QgYmUgTlVMTC4KCmNvbW1pdCBlNDFjMmY1NzRjMjVkOGRkMjczZjI0MDZlZWVhYzE5YmMyYWUxNmRiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTIgMTQ6MzA6NTEgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIHBhcnNpbmcgb2Ygc2VxdWVuY2VzLgogICAgCiAgICBEb24ndCBvdmVyd3JpdGUgJ2RhdGEnIHZhcmlhYmxlLCBpdCdzIHVzZWQgd2hlbiBwYXJzaW5nIGJ1bGsgcmVzcG9uc2VzLgoKY29tbWl0IDM5MDMwMzA1OWZiZDk4YjFlZTc2MjFkZGQ0YWQ0YzExZDEwMGZmZjkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSnVsIDI4IDIxOjI4OjE0IDIwMTMgKzAyMDAKCiAgICBSZXZlcnQgNzhkYWM2ZTM3OTQzZDFhZDk5ODQxODk4ODA2ZWE2MGIwZWVkZTYzNiBhbmQgcmVzb2x2ZSBhMjQ3OCBpbiBhIHdheSB0aGF0IGF2b2lkcyB0cnVuY2F0aW5nIHNubXBUYXJnZXRBZGRyVGltZW91dC4KCmNvbW1pdCBlNTlkNWRiNmQ2ZTcyZDEzNDU5MWJiYWFhNmZhYTU5YjI5MzM4MTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEp1bCAyOCAyMToxNzo1OCAyMDEzICswMjAwCgogICAgQ2hlY2sgdGhhdCB0aGUgdGltZW91dCB2YWx1ZSBpcyBpbiByYW5nZS4KCmNvbW1pdCA0ZWNiMzZhN2FiYTNhYjBlZmE4OTM1MTY1MGNlMDUzZWJjZjQ4YjZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEp1bCAyOSAyMTo1NDoyNSAyMDEzICswMjAwCgogICAgQ2hlY2sgdGhhdCBzbm1wVGFyZ2V0QWRkclRpbWVvdXQgaGFuZGxlcyBzZXR0aW5nIHByb3Blcmx5Cgpjb21taXQgMWFlODViNjcyZWIwN2QwYzAxYTU0ZTA2ZDNkZGQ0ZjRkYzU4ZmYyZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKdWwgMjggMTA6NDM6MTcgMjAxMyArMDIwMAoKICAgIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2ZTEzZWJiODVlNDQwNDk4NDZlYWU3ZjYwZTA1MDM3NWY5YWNmNThlKQogICAgU2FuaXRpemVkCgpjb21taXQgNmE1YTA0N2NiYzExZDYyZGYwNGE5NjY2OTA4Zjc2NTJiMjE3YzFhYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBBdWcgMSAyMzoxOTozNCAyMDEzICswMjAwCgogICAgUmVpbnN0YXRlIHRoZSBjaGVjayBmb3IgY3JlYXRpb24gb2YgZW50cmllcyB3aXRoIGVtYmVkZGVkIE5VTCdzIGluIHRoZSBuYW1lCgpjb21taXQgNTMzYmI4MGE1YTQzMDViMzVkYmI3OTc0NDRiZDU5NmQ3ZDU5OTUxYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBBdWcgMSAyMjo1NTo0NSAyMDEzICswMjAwCgogICAgU2FuaXRpemUuCiAgICAKICAgIENoYW5nZSB0byB1c2UgU05NUHYzIHNpbmNlIHRoYXQgaXMgd3JpdGVhYmxlIGluIFY1LTYtcGF0Y2hlcy4KICAgIENoYW5nZSB0byBjaGVjayB2YWx1ZXMgb24gaW5kZXggJ0EnCiAgICBSZW1vdmUgdGhlIGNoZWNrIGZvciBlbWJlZGRlZCBOVUwgaW4gaW5kaWNlcy4KCmNvbW1pdCBiMjRiZjQ2MjIwYWFhZjU3OTRlOTQwZjVkNDY3M2RiNzEzMzlmOWMwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEp1bCAyMCAxMjozOTo1OSAyMDEzICswMjAwCgogICAgQWRkIHRlc3RzIGZvciBzbm1wVGFyZ2V0QWRkcgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNzFmMzE5Y2QyMzQ0NWM2ZTIyYTYwYTFhODVmMzFjMmI2OTA0YjNmYikKCmNvbW1pdCA2ZTEzZWJiODVlNDQwNDk4NDZlYWU3ZjYwZTA1MDM3NWY5YWNmNThlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEp1bCAyOCAxMDo0MzoxNyAyMDEzICswMjAwCgogICAgQWRkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igc25tcFRhcmdldEFkZHIKCmNvbW1pdCAwNzY5ZjQyMGQ4ZjQyNzk5M2IxMzQwZmRiN2VjYjNiYzA0OWQzZjZjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCAyNSAwODoxNTozMiAyMDEzICswMjAwCgogICAgRmlyc3Qgc2hvdCBvbiBoYW5kbGluZyBjZXJ0aWZpY2F0ZXMgd2l0aCBlbWJlZGRlZCBudWwgY2hhcmFjdGVycwoKY29tbWl0IGQ4MzNiMGM4YmU1MDliZmEzYjgwMDFhZTZmNTUyMjg5Y2U5NTY3ZDAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgSnVsIDIwIDEyOjQxOjQwIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgTlVMIGNoYXJhY3RlcnMgaW4gdGhlIGluZGljZXMgZm9yIHNubXBUYXJnZXRBZGRyVGFibGUKCmNvbW1pdCA3MWYzMTljZDIzNDQ1YzZlMjJhNjBhMWE4NWYzMWMyYjY5MDRiM2ZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEp1bCAyMCAxMjozOTo1OSAyMDEzICswMjAwCgogICAgQWRkIHRlc3RzIGZvciBzbm1wVGFyZ2V0QWRkcgoKY29tbWl0IGVhMzllMzY3NjY2NWI3ZThjYzVkZmViNWJiYmNkMGFkNDM0YWQ5MTIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDE4IDAxOjM2OjI2IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBkYXRhIGFyZ3VtZW50IHRvIHJlYWRfY29uZmlnX3NhdmVfb2N0ZXRfc3RyaW5nIGFjY2VwdCBjb25zdGFudCB2YWx1ZXMKCmNvbW1pdCA3OGRhYzZlMzc5NDNkMWFkOTk4NDE4OTg4MDZlYTYwYjBlZWRlNjM2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyMiAxMjozOTowMCAyMDEzIC0wNzAwCgogICAgZml4IGJ1ZyBudW1iZXIgI2EyNDc4OiBmaXggbWliIHJlcHJlc2VudGF0aW9uIG9mIHRpbWVvdXQgdmFsdWVzCgpjb21taXQgYTdlM2JjOGRkYmUzODdlYmY2ZjNmNmIwNTBlMjk5Mjk1NmJkMmU2MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MTQ6NDcgMjAxMyArMDIwMAoKICAgIEZpeGVzIGZvciBtZW1vcnkgc3RhdGlzdGljcyBmcm9tICpCU0QKCmNvbW1pdCA5ZGJlMTI0MDNjZWFhZmU2MTdmN2Q0OTk5MzMxNmEyNDlmY2JiOTlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDoxMzozNiAyMDEzICswMjAwCgogICAgRml4IGEgbWlzc2luZyBuZXdmaWxlIGluIGEgZGVidWcgbWVzc2FnZQoKY29tbWl0IDA0MWRlZWRmODE1MzdiYzYxNjkyOTg3NTNmOWRjYTNmNmNkNjFhMzUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjEyOjEyIDIwMTMgKzAyMDAKCiAgICBNYWtlIHN1cmUgd2UgZG9uJ3QgbWFrZSBJUHY2IG1hc2sgbG9uZ2VyIHRoZW4gMTI4Cgpjb21taXQgYzY3Yzc4OTQwMzM5ZmFlYWI0MmIxYjFhMGE2YmU2Y2Q2ZGZlMmUyMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MDY6MzEgMjAxMyArMDIwMAoKICAgIEltcGxhbWVudCBpcEFkZHJlc3NUYWJsZSBmb3IgKkJTRAoKY29tbWl0IGIxODFlNDNhNmQxZjU2N2JmZDEwNzE3YTc3ZGYxODQ4ZTNiYjBmNDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjA1OjA4IDIwMTMgKzAyMDAKCiAgICBNYXJrIE9TIHRocmVhZHMgYXMgc3VjaC4KCmNvbW1pdCBlMzZhNWNjNWYyMDI3MmFmZmY0MjI4ZTdlNDM5MWRkNWU2YzA2M2IzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDowMzozNiAyMDEzICswMjAwCgogICAgRmljIHNvbWUgbWFuIHBhZ2UgY3Jvc3MgcmVmZXJlbmNlcwoKY29tbWl0IGVjZjg2ODJkODY0ZDJmMDg1MjUwNzg1NDM4NThkMzYxYjNhZGNhNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMCAxMDo0NzozMyAyMDEzICswMjAwCgogICAgTG93ZXIgaW1wb3J0YW5jZSBvZiBkZWJ1Z2dpbmcgbWVzc2FnZXMsIHRoZXkgc3BhbSBzeXNsb2cuCgpjb21taXQgZWY5NjMwNjNkZTQ5NDg1YmQ5MWMxMjllMDUzZjA2ZDA3NDQ0ODNlMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDQgMTE6MzQ6MjUgMjAxMyArMDIwMAoKICAgIEZpeGVkIHNpemUgb2YgbmV0bGluayBtZXNzYWdlLgogICAgCiAgICBQcmV2ZW50aW5nIGtlcm5lbCB0byBsb2cgJ25ldGxpbms6IDEyIGJ5dGVzIGxlZnRvdmVyIGFmdGVyIHBhcnNpbmcgYXR0cmlidXRlcy4nIG1lc3NhZ2UuCgpjb21taXQgMmUwZDEwODczMTNiMGZhMDgzZTJiMWNhNDg5NWZiZjI0OGQ2M2NhOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgNCAyMjowNDoxMiAyMDEzICswMjAwCgogICAgUnVuIGF1dG9yZWNvbmYKCmNvbW1pdCBjN2ZiYTc4ZTEyMjUyNTRhMGY2NTYwNWYzODFhZWRkN2Q4YTIxMmNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCA0IDIxOjQ3OjA5IDIwMTMgKzAyMDAKCiAgICBSdW4gYXV0b3JlY29uZgoKY29tbWl0IDU3MWJkNDA3ZjhiZTljOTRjYzU1MmQ0ZDNiN2Y1YjZiMDk4NGQyMzcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDQgMjE6Mzk6NTkgMjAxMyArMDIwMAoKICAgIFJ1biBhdXRvcmVjb25mCgpjb21taXQgOGFhNTBlZGJhN2EyZDk2NmQ4ZGZjN2ZmNGQ3Yzc4ZWZkZGU4YzViZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgNCAwODo1Mzo1NiAyMDEzICswMjAwCgogICAgVXNlIEFDX0xJTktfSUZFTFNFIGluc3RlYWQgb2YgQUNfVFJZX0xJTksgYXMgdGhlIGxhdHRlciBpcyBkZXByZWNhdGVkCgpjb21taXQgNTljNmFlMzQ2MjVlZTA0YWNlMzgyNGVjNDA0NjEzZTBiNTFkYzFiMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBKdWwgMiAxNzo0MDo1NCAyMDEzICswMjAwCgogICAgVXNlIHRoZSBjcHAgYW5kIGxpbmtlciBmbGFncyBmcm9tIG15c3FsX2NvbmZpZyB3aGVuIGNoZWNraW5nIGZvciBteXNxbCBoZWFkZXJzLgoKY29tbWl0IGY4OWNmY2FmZGFlMjFmYWI1MGE3MGJkZGYxNThmZmQ5ZTRlMDAxZDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgSnVsIDIgMTc6Mzk6MjUgMjAxMyArMDIwMAoKICAgIFVzZSB0aGUgb3V0cHV0IG9mIG15c3FsX2NvbmZpZyAtLWluY2x1ZGUgaW5zdHJlYWQgb2YgdGhlIG91dHB1dCBvZiBteXNxbF9jb25maWcgLS1jZmxhZ3MgaXRvIGZpbmQgaW5jbHVkZSBmaWxlcy4KICAgIAogICAgQWNjb3JkaW5nIHRvIHRoZSBteXNxbF9jb25maWcgbWFuIHBhZ2UsIC0taW5jbHVkZSBpcyByZWNvbW1lbmRlZCBmb3IgZ3JlYXRlcgogICAgcG9ydGFiaWxpdHkgc2luY2UgLS1jZmxhZ3MgbWlnaHQgY29udGFpbiBjb21waWxlciBmbGFncyBmb3IgdGhlIGNvbXBpbGVyIHRoYXQKICAgIHdhcyB1c2VkIHRvIGJ1aWxkIGxpYm15c3FsY2xpZW50IHdoaWNoIG1pZ2h0IGNsYXNoIHdpdGggdGhlIG9uZXMgdXNlZCB0bwogICAgYnVpbGQgdGhlIGFwcGxpY2F0aW9uLgoKY29tbWl0IDY4YTZhMWNhNmRjNGNhODkwMWJhY2FiNTk4MzI2YWY3M2I0NDQ2NTQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgSnVsIDIgMTc6MzA6MjkgMjAxMyArMDIwMAoKICAgIE9ubHkgY2hlY2sgZm9yIG15c3FsL215c3FsLmggb25jZS4gUmVtb3ZlIEhBVkVfTVlTUUxfTVlTUUxfSCBzaW5jZSBub3RoaW5nIHVzZXMgaXQuCgpjb21taXQgYWQ4N2JiNjA4YjMwNTU2N2EzYzVlYWYwNDZiN2M5OGVhM2U0YmRkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDQgMTE6MzA6MDQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAyNDcyOiBmcm9tIFN1bmlsOiBkb24ndCB1c2UgSEJLVCBhcyBoZWFydGJlYXQgaW50ZXJ2YWwgaW4gU0NUUC1NSUI6OnNjdHBBc3NvY1RhYmxlLgoKY29tbWl0IDRjNGE0MjgxZmQ1YjJjNjE1NmM1MTIwZjlhMmU4YjcwOGY0NjZjY2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCA0IDExOjA4OjQ4IDIwMTMgKzAyMDAKCiAgICBpbmNsdWRlRGlyIGlzIG5vdCBwcmVkaWN0YWJsZSB3aXRoIHJlbGF0aXZlIHBhdGhzCgpjb21taXQgNzllOGRkMmEzNzJhMjBlZTk3ZGUxYzcxMDdiNTlhZDRhYWY4OWEzNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDQgMTA6NDc6MjkgMjAxMyArMDIwMAoKICAgIFVwZGF0ZSBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24gd2l0aCBpbmNsdWRlRmlsZSBhbmQgaW5jbHVkZURpci4KCmNvbW1pdCBlMGU4MDQ0ODJiZWM3MGY0YzQxNmEzNWZjYjMyM2E0MTY5OTY1YzVmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEp1bCAzIDE1OjA4OjE0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBCVUc6IDI0NzA6IEFjY2VwdCA2NTUzNSBhcyBhIHZhbGlkIElQdjYgcG9ydCBudW1iZXIKCmNvbW1pdCBkZDMzMmEwMzVlODUzYzcyYTgzMjc0ODQ2OWJhYjdiODgyZTI3YjdjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAyIDA3OjAwOjUxIDIwMTMgKzAyMDAKCiAgICBCVUcgYSMyNDYzOiBGaXggY29uZmlndXJlIHRvIHJlc3BlY3QgZGF0YSBmcm9tIG15c3FsX2NvbmZpZy4KCmNvbW1pdCA0MDhjYzk3MzJjMzQ2MTExZmMxZmRhMjNlMTM2ZDYwODgzY2RiN2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMSAxNDoyNTo0MSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBjb3JyZWN0bHkgcmVwb3J0IGVycm9yIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgT0lELgoKY29tbWl0IDlhMmJmYzhmOTVkNmU5MjZkY2JmMTZmZjQ0YjUzYjI3ZTM4Yzg0MzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAxIDEzOjU0OjM4IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBweXRob246IEZpeGVkIHJldHVybmluZyBvZiBlbXB0eSBzdHJpbmdzLgogICAgCiAgICBWYXJiaW5kIHR5cGUgKFNOTVBfTk9TVUNIT0JKRUNUIGV0Yy4pIHNob3VsZCBiZSB1c2VkIHRvIGRldGVjdCBlcnJvcnMgaW5zdGVhZCBvZiBsZW5ndGggb2YgdGhlIHZhcmlhYmxlIC0gaXQgY2FuIGJlIGVtcHR5IHN0cmluZy4KCmNvbW1pdCAxYTBmMDc1NzRhODBkMWQ2YTY3ODhjYWViMzkxYTFkMmZlZjk1NzEwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdW4gMjggMTA6Mzc6NDYgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBzaG93IExpbnV4IGtlcm5lbCB0aHJlYWRzIGluIGhyU1dSdW5UYWJsZS4KCmNvbW1pdCAyNjU5YzBmNmJkODZmMDE3MTg2OWQzNGZmOGE3ZDQ4MTk0ZWE0YjMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMjEgMDk6MTM6NDEgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGRlZCBidHJmcyBzdXBwb3J0IHRvIGhyRlNUYWJsZQoKY29tbWl0IGE4NDAzOWQwYTFkNmY1NTBiNDczZDI5NTkyMTAxMGQ4MGUxOGQ4M2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVuIDI1IDE0OjU1OjI2IDIwMTMgKzAyMDAKCiAgICBzbm1wX3N0cmNhdDogZG9udCB0ZXN0ICpidWYgYmVmb3JlIHdlIGhhdmUgdHJpZWQgcmVhbGxvYwoKY29tbWl0IDU1NTNlZjQzNjJkNTI0YTA4OGI1MTllMTM1NTYxNThlNWQ2MjVlYzQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSnVuIDMgMDI6NDg6MDYgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBwcmludGYoIiVzIiwgTlVMTCkgYXMgdGhhdCBpcyB1bmRlZmluZWQgYmVoYXZpb3VyLgoKY29tbWl0IDg5NDE2ZTc5ZjVjNTA1NjhlOTljMDdmYWIwNmE5YWU5Zjk3NmJiZWYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gSnVuIDI0IDIyOjIyOjAzIDIwMTMgKzAyMDAKCiAgICBCVUc6IEEyNDQxOiBDb3JyZWN0IGNvbW1lbnQKCmNvbW1pdCAxYTNhZTY0NzdiODE2M2ExYjQzYjgzNGFiYjMwYjFmMDMxNDVhYjYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAyMDoyNzozNCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogSE9TVC1SRVNPVVJDRVMtTUlCLCBoclNXUnVuIHRhYmxlOiBQYXJzZSAvcHJvYy88cGlkPi9zdGF0IGNvcnJlY3RseSBvbiBMaW51eAogICAgCiAgICBUaGlzIGlzc3VlIHdhcyByZXBvcnRlZCBieSBWaW5jZW50IEJlcm5hdCA8dmluY2VudC5iZXJuYXRAZGFpbHltb3Rpb24uY29tPi4KICAgIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTcvLgoKY29tbWl0IGY5MmZmZTkxN2EzMDBjNDFlYmUwN2UyNGM2NDE4ODU1ZTc1OWY5MzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE5OjM3OjAzIDIwMTMgKzAyMDAKCiAgICBzbm1wdHJhcGQ6IEZpeCBhIGRvdWJsZSBmcmVlIGluIGFuIGVycm9yIHBhdGgKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IGM1ZjNhMWQ4YmI1ODA0Nzk5YjYwMmQyNzY5YjAzMWQ2ZmFmNWYwZWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE3OjUxOjQzIDIwMTMgKzAyMDAKCiAgICBzbm1wbGliOiBoZXhfdG9fYmluYXJ5MigpOiBSZXR1cm4gLTEgaWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMKCmNvbW1pdCBmOGYwOGUxZDZkM2VjODE5NGZhYmQ2YWIwMDJhYjkxN2FmYmE5MWEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNzoxMzowMSAyMDEzICswMjAwCgogICAgc25tcGxpYjogU2ltcGxpZnkgdGhlIGNvZGUgZm9yIGRlbGV0aW5nIGEgcmVxdWVzdCBmcm9tIHRoZSByZXF1ZXN0IGxpc3QKICAgIAogICAgVGhlIGdvYWwgaXMgKGhvcGVmdWxseSkgdGhhdCB0aGUgbmV3IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGNvbmZ1c2UKICAgIENvdmVyaXR5IGFueW1vcmUuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IGVmNmQ1YzdhMDMxMzI0N2E2Yzk0NzMyNjE3NzdlOTYzZjdhNDk1MjkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjQ4OjIyIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBzbm1wX3N0cmNhdCgpOiBDaGVjayAqYnVmIGJlZm9yZSB1c2luZyBpdAogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgMjU2NmI4M2ViZWIwZTM0ZWVhOTA3OTI4YzU0YzJiNGU3NGZmMzdmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjM6MzMgMjAxMyArMDIwMAoKICAgIGhyU1dJbnN0YWxsZWQgdGFibGU6IENoZWNrIHN0YXQoKSByZXR1cm4gdmFsdWUgKDIvMikKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IDQ5Y2ZlNGQ4NDBjNThlMTIwMmZhMjcxZmJlNzYwYmQ3NTI2YTgzYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjIzOjAzIDIwMTMgKzAyMDAKCiAgICBoclNXSW5zdGFsbGVkIHRhYmxlOiBDaGVjayBzdGF0KCkgcmV0dXJuIHZhbHVlICgxLzIpCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCA1ZGY1NDYyNjM5ZjI0M2Q1OTI5ZmE5YmExNGQyMGIzNzExZjdjYWNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDoyMToxOCAyMDEzICswMjAwCgogICAgdWNkLXNubXA6IGZpbmRfZGV2aWNlKCk6IFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvCgpjb21taXQgMTNjZTE5OTZhODJlMGI0NThiMjZhZTM5YWJmMjAxMmRiNTljOGE1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjA6MTUgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IF9pbnNlcnRfbnNmaWxlKCk6IENoZWNrIHN0YXQoKSByZXR1cm4gdmFsdWUKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IDgxYTBkODU5MTYzZjhkNTQ5MDg1MjViNTIyNDMyOTVkN2I0MTQ1NTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjA3OjM3IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBiYWQgZnJlZSgpCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCBkMzRjODNlOTM0MjQxOWFlZWNmZjVmZmQ3ZGVhYjgzOTg3ZGJlYmNhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDowMDozOSAyMDEzICswMjAwCgogICAgZXRoZXJsaWtlLW1pYiwgcm1vbi1taWI6IEZpeCBtYWxsb2MoLi4uKSA8IDAgdGVzdHMKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IDQzYzQ0MDE3NmIzZTRmOWNlOTk1ZTQ4MmVjNjk3NWJhMGM4NTliZjMKQXV0aG9yOiBNaWNoYWVsIFNoY3dhcmN6IDxNaWNoYWVsLlNoY3dhcmN6QGNvbXBhc3MtZW9zLmNvbT4KRGF0ZTogICBTYXQgSnVuIDIyIDEyOjQ2OjA0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZpeCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQKICAgIAogICAgQSBxdW90ZSBmcm9tIGEgbWVzc2FnZSBmcm9tIE1pY2hhZWwgU2hjd2FyY3o6CiAgICAKICAgIEkgYW0gcnVubmluZyBuZXQtc25tcCA1LjcuMiBhbmQgaXQgbG9va3MgbGlrZSB0aGVyZSBpcyBhIGRvdWJsZQogICAgZnJlZSBwcm9ibGVtIGluIHNubXB0cmFwZCwgaW4gZnJlZV90cmFwZF9hZGRyZXNzKCkgYW5kCiAgICBwYXJzZV90cmFwZF9hZGRyZXNzKCkuIEkgZ2V0IGEgU0lHQUJPUlQgb24gdGhlIHNlY29uZCBTSUdIVVAKICAgIChsb29rcyBsaWtlIGl0IGRvZXMgYSBkb3VibGUgZnJlZSBvbiB0aGUgZmlyc3QgU0lHSFVQIGFuZCBvbgogICAgdGhlIHNlY29uZCBpdCBjcmFzaGVzKS4KICAgIAogICAgSSBoYXZlIHRoaXMgc25tcHRyYXBkLmNvbmYgY29uZmlndXJhdGlvbjoKICAgICAgc25tcFRyYXBkQWRkciB1ZHA6MTYyLHVkcDY6MTYyCiAgICAgIGF1dGhDb21tdW5pdHkgbG9nLGV4ZWN1dGUsbmV0IHB1YmxpYwogICAgCiAgICBBbmQgdGhpcyBpcyB0aGUgYmFjay10cmFjZSBmcm9tIGdkYjoKICAgICoqKiBnbGliYyBkZXRlY3RlZCAqKiogL29wdC9jb21wYXNzL2Jpbi9zbm1wdHJhcGQ6IGZyZWUoKTogaW52YWxpZCBuZXh0IHNpemUgKGZhc3QpOiAweDA4MGMxN2E4ICoqKgogICAgPT09PT09PSBCYWNrdHJhY2U6ID09PT09PT09PQogICAgL2xpYi9saWJjLnNvLjZbMHhmNzIwNDg0NV0KICAgIC9saWIvbGliYy5zby42KGNmcmVlKzB4OWMpWzB4ZjcyMDY2ZWNdCiAgICAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZChmcmVlX3RyYXBkX2FkZHJlc3MrMHgyYSlbMHg4MDRhNmJhXQogICAgL3Vzci9saWIvbGlibmV0c25tcC5zby4zMChmcmVlX2NvbmZpZysweDMyKVsweGY3NGFlNGMyXQogICAgL29wdC9jb21wYXNzL2Jpbi9zbm1wdHJhcGRbMHg4MDRhNTU3XQogICAgL29wdC9jb21wYXNzL2Jpbi9zbm1wdHJhcGRbMHg4MDRiZmE5XQogICAgL2xpYi9saWJjLnNvLjYoX19saWJjX3N0YXJ0X21haW4rMHhlNSlbMHhmNzFiMDQ1NV0KICAgIAogICAgSSBoYXZlIGEgcGF0Y2ggdGhhdCBmaXhlcyB0aGlzIGlzc3VlLCBoZXJlIGlzIHRoZSBkaWZmOgogICAgQEAgLTQ0Niw2ICs0NDYsNyBAQCBmcmVlX3RyYXBkX2FkZHJlc3Modm9pZCkKICAgIHsKICAgICAgICAgaWYgKGRlZmF1bHRfcG9ydCAhPSBkZGVmYXVsdF9wb3J0KSB7CiAgICAgICAgICAgIGZyZWUoZGVmYXVsdF9wb3J0KTsKICAgICsgICAgICAgZGVmYXVsdF9wb3J0ID0gZGRlZmF1bHRfcG9ydDsKICAgICAgICAgfQogICAgfQoKY29tbWl0IDJkYjU0ODVmYzFjY2NlMzllZmE2OWEzNzdiYjhkNmY2MjMxZWIwYjIKQXV0aG9yOiBFcmljIFMuIFJheW1vbmQgPGVzckB0aHlyc3VzLmNvbT4KRGF0ZTogICBGcmkgSnVuIDIxIDEwOjQ3OjMyIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBmcm9tICJFcmljIFMuIFJheW1vbmQiOiBDb3JyZWN0IG1hbiBwYWdlIG1hcmt1cCBwcm9ibGVtCiAgICBBbWJpZ3VvdXMgb3IgaW52YWxpZCBiYWNrc2xhc2guICBUaGlzIGRvZXNuJ3QgY2F1c2UgZ3JvZmYgYSBwcm9ibGVtLgogICAgYnV0IGl0IGNvbmZ1c2VzIGRvY2xpZnRlciBhbmQgbWF5IGNvbmZ1c2Ugb2xkZXIgdHJvZmYgaW1wbGVtZW50YXRpb25zLgoKY29tbWl0IGQ2NzcxNDY0ZjE2ZGM2ZmU2NGRkMjRjMDhhZjRiZTcyNTg4NWFkYWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgSnVuIDE4IDIzOjQ1OjI4IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBhcHBzOiBTdG9wIGFnZW50eHRyYXAgZnJvbSBhY2Nlc3NpbmcgdGhlIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbgogICAgVGhpcyBpcyBuZWVkZWQgdG8gcHJldmVudCBtb2FuaW5nIGFib3V0IG5vdCBiZWVpbmcgYWxsb3dlZCB0byB3cml0ZSB0aG9zZQogICAgZmlsZXMgZHVlIHRvIGJhZCBwZXJtaXNzaW9ucy4KCmNvbW1pdCAxNGFjNWQ1ZDJjNGQ5ZjNhNzk5ZDQwMWNjMWU0MDNhOGEyOTJkNDI1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxMiAyMjozNzoyMyAyMDEzICswMjAwCgogICAgRGFyd2luIGZpeGVzOiBVRFAgYW5kIFRDUCB0YWJsZXMsIG1lbW9yeSBkYXRhLCBhbmQgc29tZSBlcnJvciBjaGVja2luZy4KCmNvbW1pdCBiYWJkMzFkMTA0OWUyMzNjNDU0ZjFjYmQ4OGJiYTc1ZjJmNDA3ODFlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxMiAyMjoyNToxOSAyMDEzICswMjAwCgogICAgRml4IHNvbWUgbWFuIHBhZ2VzIHJlZmVyZW5jZXMgdG8gb3RoZXIgcGFnZXMKCmNvbW1pdCBiZGVmY2UwNmExZWExYzE0MzA4MDI3MTRmYzgzN2I1NThlMWE2NzVhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxMiAyMjoyMzo1NyAyMDEzICswMjAwCgogICAgVXBkYXRlZCBFTlRJVFktTUlCIGluIHJmYyA2OTMzCgpjb21taXQgZGY4NjNhNTM0OGFhYmY3MWJiY2E3YmZlZmNmOGJlYjhiYjllNzc2MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMTIgMjI6MTc6NDYgMjAxMyArMDIwMAoKICAgIEZpeCBCdWcgIzI0Mjc6IENhbm5vdCByZXNvbHZlIElQdjYgb25seSBob3N0bmFtZXMsIGJ5IGFjY2VwdGluZyBhIGxpc3QKICAgIG9mIHRyYW5zcG9ydCBkb21haW5zLgoKY29tbWl0IGRhMWZlZjM4MjU5MWZmNDVkYzkyZWIzYjk1YTZiZmVmZjllY2ZhNGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAyMSAwOToxMzo0MSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZGVkIGJ0cmZzIHN1cHBvcnQgdG8gaHJGU1RhYmxlCgpjb21taXQgOTMxYzg3YTA1ZjVmNjYyODk2MTNmZWQ3N2FjNzg4NDRiNjFjYjc5ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMTUgMjA6MTg6MTQgMjAxMyArMDIwMAoKICAgIEJVRyAyNDU4OiBGaXggbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBhdXRvX25saXN0IHN0cnVjdHVyZSAoVGhhbmtzIFJ5YW4gU3RlaW5tZXR6KQoKY29tbWl0IDkxMDRlMmEzZjE5NTUwNmE0NzczMzk4M2Q4Y2JhMzhlZDU5MmE5ODgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDE1IDIwOjEzOjA1IDIwMTMgKzAyMDAKCiAgICBQQVRDSCAxMjUzOiBGaXggcGFyc2luZyBvZiBERUZWQUwgQklUUyAoVGhhbmtzIE1pa2UpCgpjb21taXQgODU1ZTU0ZTM0NWM1NWVhMjJiN2U3YWMxMmEyNDlkNzQwOWZiYjMwOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMTUgMjA6MTE6MjkgMjAxMyArMDIwMAoKICAgIHJmY2xpc3Q6IGFkZCBSRkMgNjk0NQoKY29tbWl0IDM2NTI3Y2Q4Y2NhNjUwNzEzYzg1ZTAzMjhjMGMyYTFjZDA5NWMzNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWF5IDEyIDEwOjA0OjA4IDIwMTMgKzAyMDAKCiAgICBXaW5kb3dzLCBWaXN1YWwgU3R1ZGlvOiBVbmJyZWFrIGNvbXBpbGF0aW9uIHdpdGggdGhlIFdpbmRvd3MgWFAgUGxhdGZvcm0gU0RLCiAgICAKICAgIFRoaXMgd2FzIHJlcG9ydGVkIGJ5IFdpbSBEZXZvcwoKY29tbWl0IDUxN2E1NTEyMTAyZDMzOTQ4OWM5YTcwZWE4ZDA4N2EwZTEwMDM1YTkKQXV0aG9yOiBXaW0gRGV2b3MgPFdpbS5EZXZvc0BtZXVjY2ktc29sdXRpb25zLmNvbT4KRGF0ZTogICBTdW4gTWF5IDEyIDA5OjQwOjUzIDIwMTMgKzAyMDAKCiAgICBXaW5kb3dzOiBVbmJyZWFrIHRoZSBWaXN1YWwgU3R1ZGlvIGJ1aWxkCiAgICAKICAgICJzdGF0aWMgTkVUU05NUF9JTkxJTkUiIHRyaWdnZXJzIHRoZSBlcnJvciBtZXNzYWdlICJlcnJvciBDMjE1OTogbW9yZQogICAgdGhhbiBvbmUgc3RvcmFnZSBjbGFzcyBzcGVjaWZpZWQiLCBzbyB1c2UgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGluc3RlYWQuCgpjb21taXQgNGRmMDJmOTY3ZDBiOWQxNmNhMTJiNTgyMTVlOTgzNWJjOWYzOTFjYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBNYXkgNCAxNDo1NDo0OCAyMDEzICswMjAwCgogICAgUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgbWlzc2luZyBwcm90b3R5cGUKCmNvbW1pdCAxOGRhZmE1OGQ4MTIxOTYxYjA1OGQ2ZDQxNjcwN2RmMWQ2YTA0MmFjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE1heSA0IDE0OjUzOjEwIDIwMTMgKzAyMDAKCiAgICBSZW1vdmUgb25lIGNvcHkgb2YgdGhlIGxpbnV4X3N0YXRlcyBhcnJheS4gTWFrZSB0aGUgd2hvbGUgdGhpbmcgY29uc3QuCgpjb21taXQgMDJhZDgxZWEyZGUyZDQ2ODc3OTQwNTdlMmU4MTA0YTY1MjM5MjU0ZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXkgMyAwODowODowMSAyMDEzICswMjAwCgogICAgUmV2ZXJ0IHRoZSBmdW5jdGlvbmFsIGNoYW5nZXMgZnJvbSAnRml4IG1peGluZyBvZiBjb2RlIGFuZCBkZWNsYXJhdGlvbnMnWzFdCiAgICBpbiBvcmRlciB0byBub3QgdXNlIHZhcmlhYmxlcyBiZWZvcmUgdGhleSBhcmUgc2V0IGFuZCBub3QgaW5jcmVhc2UgdGhlCiAgICBwcm9iYWJpbGl0eSBmb3IgbWVtb3J5IGxlYWtzLgogICAgCiAgICAxKSByZXYgZWVmYzI1Y2E2NzA1YTJkMWE4ZjUyMTYwNzZmNDM5ZTBkM2UzZWY3NgoKY29tbWl0IDRmZDA1MjVkNmE2NWFjZmVhM2Q3YjQzMWM5Nzg5M2RjNDc5MjdkYTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIgMjI6NDU6NTEgMjAxMyArMDIwMAoKICAgIGF1dG9jb25mCgpjb21taXQgNTVkZGQ4Mjk1YWU2NWU0N2YyMjBmNDgwNzc5NGZiYWM5YjY5ZjBmYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMiAyMjoyMDo0NiAyMDEzICswMjAwCgogICAgdGVzdGluZzogRG9jdW1lbnQgd2h5IHdlIHNraXAgdGVzdHMKCmNvbW1pdCBlZWZjMjVjYTY3MDVhMmQxYThmNTIxNjA3NmY0MzllMGQzZTNlZjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyIDIyOjEzOjQyIDIwMTMgKzAyMDAKCiAgICBGaXggbWl4aW5nIG9mIGNvZGUgYW5kIGRlY2xhcmF0aW9ucy4KCmNvbW1pdCBiOTRiNzM0ZGQzNTNiY2Y3OTNjOGI2NWEyNzNhMTM4N2JmZDI1NmVhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyIDIyOjEyOjExIDIwMTMgKzAyMDAKCiAgICBEYXJ3aW46IHN1cHBvcnQgNjQtYml0IGNvdW50ZXJzIGZvciBkaXNraW8gdGFibGUKCmNvbW1pdCA4ZDg0MWMxZDliMWI0ZWVjMjY0ZDY4MmFjMTI2MDMyYWEwOGYyZTgyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyIDIyOjA5OjE3IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBTdXBwb3J0IG5ldyBNSUIgc3RydWN0dXJlcyBhbmQgTUZEIHJld3JpdGVzIHVuZGVyIERhcndpbgoKY29tbWl0IDI3NjQwZmNmYjIwNTI2YmVmMmY2ZWI0MGMyYTU0NTY2ZGZjNmM0YzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDI3IDEwOjU4OjI5IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ29ycmVjdCB0aGUgc2l6ZSBvZiBvZiB0aGUgRVhBTVBMRUlQQUREUkVTUyB2YWx1ZSBvbiBMNjQgaG9zdHMKCmNvbW1pdCBlYmJlMmEzOTkwZWY2ZGNiZGNiOTlhMzlhZGQ0NjUzOTgzNTRjMzRjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEFwciAyMyAwNzoyNToyMSAyMDEzICswMjAwCgogICAgYnVpbGRpbmc6IE1ha2UgLS1lbmFibGUtbWluaW1hbGlzdCBjb21waWxhdGlvbiB3b3JrIGFnYWluCgpjb21taXQgNGJkN2Q3M2IxZmU2MGJiNTM2YmYzOWViNGEzODU5NmU4OTY1YzNmMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MjU6MzggMjAxMyArMDIwMAoKICAgIHR5cGVjYXN0IHRvIHNpbGVuY2Ugd2FybmluZyBmb3IgZm9ybWF0Cgpjb21taXQgZGIwNzFkMGE2ZjQ4NzQyMTc2OWI2OWYyMmNjZjA5Y2MyNDJkOTQ1NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MjM6NTIgMjAxMyArMDIwMAoKICAgIE9ubHkgZGVjbGFyZSBIUlBfbWF4bmFtZXMgd2hlbiBuZWVkZWQKCmNvbW1pdCBmYWYwMGNlM2IwZmViNGQzN2ZhYmVmNmQ0MTM1ZTM2ODAzYjAwMzc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAyMjoyMjoyNCAyMDEzICswMjAwCgogICAgaXAuYzogZml4IGluY29uc2lzdGVucyBkZWNsYXJhdGlvbnMgb2YgaXBfbW9kdWxlX29pZF9sZW4KCmNvbW1pdCA3ZjZiNTk1MzNjZGZhMDY0NTBhZWU0MTU3MDIyM2IxY2RkMmNhNmI4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAyMjoxOTo0NCAyMDEzICswMjAwCgogICAgUmVjb3ZlciBmcm9tIGZhaWx1cmVzIGluIGxpYnBjaQoKY29tbWl0IDQwOTM4YTYyNjE5NTkwYjRlYTA3MWFlODViYWEyZjQyYTBiN2ZjYjIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAxNTowMDowMCAyMDEzICswMjAwCgogICAgQ2hlY2sgaWYgJ2Fzbl9wYXJzZV8qICcgYWN0dWFsbHkgc3VjY2VlZGVkLgogICAgCiAgICBJZiBub3QsIGRpc2NhcmQgdGhlIHBhY2tldCBpbnN0ZWFkIG9mIHVzaW5nIHdyb25nIGRhdGEuCgpjb21taXQgYWE0ZmI5NDkwMTJkN2MwMjJhNDM2OTkyYWMyMDNjMDY1ZmQ3NDIwYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDE0OjU4OjQxIDIwMTMgKzAyMDAKCiAgICBJbnRlZ2VyIHZhbHVlcyBlbmNvZGVkIGluIEJFUiBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGNoYXJhY3Rlci4KICAgIAogICAgSWYgYXNuX2xlbmd0aCA9PSAwLCB3ZSB3b3VsZCByZWFkIHRoZSBmaXJzdCBieXRlIG9mIHRoZSBuZXh0IHZhcmJpbmQgb24gbmV4dCBsaW5lOgogICAgICAgIGlmICgqYnVmcCAmIDB4ODApCiAgICAtPiByZWFkaW5nIHBhc3QgdGhlIGJ1ZmZlciBpZiB0aGVyZSBpcyBubyBzdWNoIHZhcmlhYmxlIC0+IHNpZ3NlZ3YuCgpjb21taXQgZjZlZWQ2ZTIzODRjYmY4NTc3NjhmMGVlOGM2NjAyZWI3Y2QyZjAzYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBBcHIgMjIgMDg6MTg6NTQgMjAxMyArMDIwMAoKICAgIFJlZ2VuZXJhdGUgY29uZmlndXJlCgpjb21taXQgYTU4N2QxMWZiNjdmYWQzYWYyNDUxN2E0MDhhYmMzNzAwNTY1ZWRmNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBBcHIgMjIgMDg6MTg6MzUgMjAxMyArMDIwMAoKICAgIFJlZ2VuZXJhdGUgY29uZmlndXJlCgpjb21taXQgY2UzYzkyMTQxMjhiMWNkYmViZDI5NzVkYTBmMzZhNTVlMjU4NGZhMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBBcHIgMjIgMDg6MTY6MDIgMjAxMyArMDIwMAoKICAgIFJlcG9ydCB0aGUgcmVzdWx0IG9mIHRoZSBQT1NJWCBzaGVsbCB0ZXN0LCBub3QgYSBjb25zdGFudCB5ZXMKCmNvbW1pdCAwYzg3MGY3NGIyZTQzMzdiNGJmM2I3ZjExZjU1YjEyZTgwZGY0OWZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEFwciAyMiAwODowMDozMiAyMDEzICswMjAwCgogICAgQ2hhbmdlIHRoZSBjaGVjayBvZiBwZXJsIHNoZWxsIGRldGVjdGlvbiB0byB3b3JrIHdpdGggQUlYIHNoIGFzIHdlbGwKCmNvbW1pdCA1ZjA4MTlmMTAyZDFjZGUzODk5ZDA4NzA4YzljMTI2MjY4ODk5MzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEFwciAxIDA3OjM4OjA5IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB1cGRhdGUtY29udHJvbGxlZCBjaGFuZ2VzIHRyaWdnZXIgcGVyaW9kaWMgc2F2ZXMuIFRoYW5rcyB0byBDbGF1cyBLbGVpbiBmb3Igbm90aWNpbmcgdGhhdCB0aGlzIHdhcyBtaXNzaW5nLgoKY29tbWl0IGE4ZmYyNjg4M2Q2Mzg2MWQ4NzY5ODVkZGU4OWYzODkxNTc3ZDYwMjYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDMxIDEzOjMzOjAyIDIwMTMgKzAyMDAKCiAgICBzbm1wZDogTWFrZSB0aGUgdXBkYXRlIGhhbmRsZXIgY2FsbCBhbnkgY2hpbGQgaGFuZGxlcnMKCmNvbW1pdCAyYmM2MmI5NzJhMmJkMGI5MWRkZDRmN2MxMWQ0N2RiZTViZjZmZjAzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAzMSAxMzozMjoyOSAyMDEzICswMjAwCgogICAgc25tcGQ6IERvIG5vdCBsZWFrIG1lbW9yeSBpZiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KCmNvbW1pdCBhZTkxNDhiNTFiOWIwMjI3MGZkZGJiNzQxMTFiYTJjMDJhOGVhNjdjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAxNiAyMjowMzowMCAyMDEzICswMjAwCgogICAgZXh0ZW5kLmM6IGZpeCBtaXNzaW5nIHNlbWljb2xvbiBhbmQgd2FybmluZwoKY29tbWl0IDQ2NDIyZDE3ZGZkYjQxNmViMjRhZDdkYjc0NTNlYzQ3M2RiMjA4MjAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAxNiAxMzo0ODoyNiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyYXNoIGluIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUKICAgIAogICAgc25tcGQgY3Jhc2hlZCB3aGVuIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUgaGFkIG5vIGFyZ3VtZW50cywgaS5lLiBleHRlbmQtPmFyZ3Mgd2FzIE5VTEwuCgpjb21taXQgOGI1N2JkYjBhMDk0NzJhMTZkM2FmNjlmZDJiMTM3NGMwOWU2YTNhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgOCAyMDozNjozNSAyMDEzICswMjAwCgogICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgoKY29tbWl0IDlhOWVhMjU3ZTZlYjQ3ODAwZDM0ZjFhODZlYzBhMmE2ZTkwODVmMzEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDggMjA6MzU6MjQgMjAxMyArMDIwMAoKICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKCmNvbW1pdCA1OWEzMjE0Mzk4YmNlYjIyYzQ4ZDU4YzBmZTljNTUyYjJlMWVjYjhjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciA4IDIwOjMxOjQ5IDIwMTMgKzAyMDAKCiAgICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCgpjb21taXQgZTRkNzJkYjExZDNmYjdhNDQ0MjUwOTdiNWVjMjZiOWY5MTdhOWM4MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgOCAxOToxNDowNCAyMDEzICswMjAwCgogICAgc25tcGtzbTogaGFuZGxlIGRlcHJlY2F0ZWQga3JiNV9hdXRoX2Nvbl9nZXR7bG9jYWwscmVtb3RlfXN1YmtleQoKY29tbWl0IDk5ZmY5NTM2NzNmNzM2MTQ0NjNhY2UxMjEwYzRhYzA3M2ExZjJhODEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDggMTk6MDU6NDcgMjAxMyArMDIwMAoKICAgIHNubXBrc206IGZpeCBzb21lIGNvbnN0IGNhc3Qgd2FybmluZ3MKCmNvbW1pdCBjZjBkNGVmMjI0YmFkMDAwOTk1MzcwNDgzYTVjOThkYzE3ODM5YTQxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciA1IDIyOjA1OjMzIDIwMTMgKzAyMDAKCiAgICBJbml0aWFsaXplIGEgY291cGxlIG9mIHZhcmlhYmxlcyB0byBwbGVhc2UgY2xhbmcKCmNvbW1pdCA3MWY1OWU5ZTZjOThlOGRiZmFiMWZmYjBkMWU0NjhjMTJlM2Q5MmNlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciA1IDIxOjM4OjQ0IDIwMTMgKzAyMDAKCiAgICBNYWtlIHN1cmUgc25tcGtzbSBpbmNsdWRlcyBjb21fZXJyLmggKHdoZXJldmVyIGl0IGlzKSB0byBkZWNsYXJlIGVycm9yX21lc3NhZ2UKCmNvbW1pdCA4YzAxZjY0NzI4YTQzNjU2ZGMzYWM1ZmJlZmRmOGVjZWM4ZGExNTA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciA1IDIxOjEzOjMwIDIwMTMgKzAyMDAKCiAgICBNaW5vciBmaXggdG8gaW5saW5lIHRvIGFsbG93IGNvbXBpbGF0aW9uIHdpdGggY2xhbmcKCmNvbW1pdCAyZGIxMmY2ODhlMWYyZWVlYmI1ODllYzczZGE4MmViODk3ZjM0YmQxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE1hciAxOCAwODo1NDo0OSAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGxvY2FsIHRydXRodmFsdWUgaGFuZGxlciBjYWxsIGFueSBzdWJoYW5kbGVycyBpdCBtaWdodCBoYXZlLiBUaGFua3MgdG8gQ2xhdXMgS2xlaW4gZm9yIG5vdGljaW5nIHRoaXMgcHJvYmxlbS4KCmNvbW1pdCA5MDUxMmEzMmJkMWMyYmU1ZDE3YjIzZjEwOTU2Mjc4Mzk1ZGUzNzU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1hciAxOSAyMjoyODozNCAyMDEzICswMTAwCgogICAgUGF0Y2ggMTI1MCBmcm9tIHN0aGVuOiBpbmNsdWRlIDxzeXMvcHJvYy5oPiBpbiBzd3J1bl9raW5mby5jIGZvciBPcGVuQlNEIDUuMwoKY29tbWl0IDM5MTkzNjAwZWMzOGRlYjUxMzc5YTEwOTY0OGQ2OWU3ZTkwMDE3MDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6NDQ6NTkgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBwcm90b3R5cGUgcm91dGU2cHIKCmNvbW1pdCBhY2NlODI5NmRjNWI2OGQyMTJmNzQwNGVkYzJhZmRiOGIwMjgxN2MwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjM5OjE2IDIwMTMgKzAxMDAKCiAgICBjbGVhbiB0YWJzIHRwIHNwYWNlcwoKY29tbWl0IDQwMmJkYWU5NmE2ZDc5YjNiNjNiNjcyNjFiMzdhODQ3YWI0ODE3ZTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6Mzc6NDMgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmYWxsIGJhY2sgdG8gaXB2NFJvdXRlVGFibGUgKFRoYW5rcyB0byBmZW5uZXIpCgpjb21taXQgZTY5MTdlMzcyYTA2ZGRkNzc2MWIzMTAzYjMyOWJjZjY5NmU5M2ExZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMToyOTo0NCAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IHNob3cgQVMgaW4gcm91dGluZyB0YWJsZSBpZiBhdmFpbGFibGUgKFRoYW5rcyB0byBmZW5uZXIpCgpjb21taXQgOWViOGQwZjkwN2VkOGQ3OGRlOTBkY2Y2NjIzYzMzMDYwOTkzZjJhMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMToyODoyNiAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGVhcmx5IGRldGVjdCBpZiB3ZSB3YW50IGlwdjQgcm91dGUgdGFibGUgKFRoYW5rcyB0byBmZW5uZXIpCgpjb21taXQgNDA4MzczNGVmN2Y0YmVhZjFiOWExMzI1NzM4YmExODVlYjdjYzcxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMToyNTo1MyAyMDEzICswMTAwCgogICAgRml4IG1pc3BsYWNlZCBuZXdsaW5lcyBpbiBlcnJvciBtZXNzYWdlcwoKY29tbWl0IDViMGVkM2I3NmY2ZTQ2NjlmMjM4YjVjODJjZDNjYzZjYjZjYWE1Y2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDUgMTc6MTY6MjYgMjAxMyArMDEwMAoKICAgIFVuaXQgdGVzdCBUMDE0OiBGaXggYSBDeWd3aW4gYnVpbGQgd2FybmluZwoKY29tbWl0IDEwNmFkMjQ1MGYyYjc4ODQ4ZjI5MmFkMDM0NDVhOTdjN2Y4N2U2ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDUgMTc6MTc6MDUgMjAxMyArMDEwMAoKICAgIFVuaXQgdGVzdCBUMDE0OiBJbml0aWFsaXplIHZhcmlhYmxlcyBwcm9wZXJseQoKY29tbWl0IGE3ZGVhNTczNDg1OTMxNTYxMDUxYTIwMTkwMjdkN2VkMDlkMTU1NjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDQgMjI6MzU6MDYgMjAxMyArMDEwMAoKICAgIHJmY2xpc3Q6IGFkZCBHOTk4eCBtaWJzCgpjb21taXQgNDYwNGNmNjFlN2NmNmVhNjRlNzgyZjRhM2Q3MmQ0ZmIwMjRjMWY5YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNCAyMjoyMzoyMyAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQgLUNzOiBjb25zaXN0ZW50IGZpZWxkIHdpZHRocyBmb3Igc3RhdGlzdGljcy4gRG9jdW1lbnQKICAgIHNubXBuZXRzdGF0IC1Dc3MgdmFyaWFudC4KCmNvbW1pdCA0YWE5MjE1N2NlNTVkMWU1MjhkN2RlNTI0OTFkM2ViNzAyMDg2OWU3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA0IDIyOjE3OjE5IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdC4xOiByZW1vdmUgaW52YWxpZCByZWZlcmVuY2VzIHRvIHJvdXRpbmcgc3RhdGlzdGljcyBvdXRwdXQuCgpjb21taXQgNzUxZjRhNmM3ZmM4OWE1Y2YyYjI4NzlmNmY5MTViMzE0NjZhMDRiNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNCAyMjoxNDoyOSAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZhbGwgYmFjayBmaXJzdCB0byBpcENpZHJSb3V0ZVRhYmxlLiBUaGFua3MgdG8KICAgIEJpbGwgRmVubmVyIGZvciBpbml0aWFsIHBhdGNoIGZvciB0aGlzLgoKY29tbWl0IDkzYzg2ZTZlMWNmMzAxYmQyNjlmZGZmYjVlOWFhYWNlOGFhMTkzZjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgSmFuIDMgMDc6MjE6MDMgMjAxMiArMDEwMAoKICAgIERvIG5vdCBsZWFrIG1lbW9yeSBvbiBlcnJvcgogICAgCiAgICBJZiBhbGxvY2F0aW9uIG9mIGlpbmZvIGZhaWxzIHRoZW4gdGFibGVfaW5mbyBpcyBsZWFrZWQuCiAgICBEZWFsbG9jYXRlIHRhYmxlX2luZm8gaW4gdGhpcyBjYXNlLgoKY29tbWl0IDM2YTdkZTcyMzBmYmJiYjUyY2MzN2NiYmVkMjgxZWI1NTk0MDRiZTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDI1IDIwOjQwOjA5IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBBZGQgbXVsdGlob21pbmcgc3VwcG9ydAogICAgCiAgICBPbiBXaW5kb3dzIFZpc3RhIC8gV2luZG93cyBTZXJ2ZXIgMjAwOCBhbmQgbGF0ZXIgaXQgaXMgcG9zc2libGUgdG8gYWRkCiAgICBtdWx0aWhvbWluZyBzdXBwb3J0IGJ5IHVzaW5nIHRoZSBJUF9QS1RJTkZPIHNvY2tldCBvcHRpb24uCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYwoKY29tbWl0IDdiYmFiYWIyMzYyZGFhNmQ3NmFkNzMwMzNiM2YzMmIyY2JhNzI1M2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDIyIDE4OjU1OjQ3IDIwMTMgKzAxMDAKCiAgICBSZXdvcmsgSVBfUEtUSU5GTyAvIElQX1JFQ1ZEU1RBRERSIGRldGVjdGlvbgogICAgCiAgICBEZXRlY3QgSVBfUEtUSU5GTyAvIElQX1JFQ1ZEU1RBRERSIHN1cHBvcnQgZHVyaW5nIHRoZSBjb25maWd1cmUKICAgIHBoYXNlIGluc3RlYWQgb2YgcmVwZWF0aW5nIHRoZSBmb2xsb3dpbmcgdGVzdCBpbiBlaWdodCBkaWZmZXJlbnQKICAgIHBsYWNlczoKICAgIAogICAgICNpZiAoZGVmaW5lZChsaW51eCkgJiYgZGVmaW5lZChJUF9QS1RJTkZPKSkgXAogICAgICAgICB8fCBkZWZpbmVkKElQX1JFQ1ZEU1RBRERSKSAmJiBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0ZMQUdTCiAgICAgLi4uCiAgICAgI2VuZGlmCiAgICAKICAgIFR3byBzaWRlLWVmZmVjdHMgb2YgdGhpcyBwYXRjaCBhcmU6CiAgICAqIElQX1BLVElORk8gc3VwcG9ydCBpcyBlbmFibGVkIG9uIEN5Z3dpbi4KICAgICogc2V0c29ja29wdChJUF9SRUNWRFNUQUREUikgaXMgbm8gbG9uZ2VyIGludm9rZWQgb24gV2luZG93cyB3aGVuCiAgICAgIGJ1aWx0IHdpdGggVmlzdWFsIFN0dWRpbyBvciBNaW5HVy1nY2MuCgpjb21taXQgMWExOTZhZDlmMTUxNzg2OGI5M2E2YmVjOTNhMGNmZTFkMjllMjgzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBGZWIgMjMgMTQ6MDM6MjkgMjAxMyArMDEwMAoKICAgIFRlc3Rpbmc6IE1ha2UgdW5pdCB0ZXN0IFQwMTQgbW9yZSByb2J1c3QKCmNvbW1pdCA5YmUyMmFhYWY4MzkzNzEzZmJjMzkwMjVmNzAyMTExZjUwZjFlNGVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEZlYiAyMyAxMTowMzoyMCAyMDEzICswMTAwCgogICAgV2luZG93czogQXZvaWQgY29sbGlzaW9ucyB3aXRoIHRoZSBXaW5kb3dzIFZpc3RhIG9yIGxhdGVyIFNESwoKY29tbWl0IDBiNmJmZWYyY2E5YWU5ZTFjMmJlYWZlNzAwMTAwZmFlNWY2ZjRjMWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRmViIDIzIDExOjIwOjIzIDIwMTMgKzAxMDAKCiAgICBpbmV0X250b3AoKSAvIGluZXRfcHRvbigpOiBDb252ZXJ0IHByb3RvdHlwZXMgZnJvbSBLJlIgdG8gQU5TSSBDCgpjb21taXQgMmJiNTFkNzFlZWM0ZTc4OTk4MmMyYTc0MTE4NmRjZTZkZjIzODU0MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMjA6NTk6MjUgMjAxMyArMDEwMAoKICAgIFJlZHVjZSB0aGUgdGltZSBuZWVkZWQgdG8gcnVuIHRoZSByZWdyZXNzaW9uIHRlc3RzICh3YXMgZW5sYXJnZWQgYnkgY29tbWl0IGIzZDVlZDg3KQoKY29tbWl0IGNmNjQwY2NkNjhlOTYzNjgwNWI3NTA3OTkyOGM3Mjc3ZmEyNjA4M2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDExOjU1OjAzIDIwMTMgKzAwMDAKCiAgICBVbml0IHRlc3QgVDAxNDogQWNjZXB0ICJsb2NhbGhvc3QubG9jYWxkb21haW4iIHRvbwoKY29tbWl0IGJkYTQzNTczNzVhZDI5OWNmMTg0NzU3OWUxYTFiYzNjNjExODk1YzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDE2OjA3OjQxIDIwMTMgKzAxMDAKCiAgICBSZWdyZXNzaW9uIHRlc3QgVDA2MDogRXNjYXBlIGJhY2tzbGFzaGVzIHBhc3NlZCB0byBDT05GSUdUUkFQRAoKY29tbWl0IDZiNWQ3ODRmNGQ2ZDAwMDM5MDAxNGQxMjBmMTViOTM3MzYyZjhjMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDIwOjMzOjAyIDIwMTMgKzAxMDAKCiAgICBQeXRob24gYmluZGluZ3M6IEZpeCBhIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDZkMjU4ZWZhMmFjY2FkZmNjYzUwZDg2YmQ0NjM3OTc0NTQ0OWNhNGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDE1OjI3OjE5IDIwMTMgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCAyYzJlMWY0MTYzOTNkNDg1ZjlhYzkwYzg3ZjcyMDY1YzY2OGI3MzIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAxNTo0ODozNCAyMDEzICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDFiYzc5OWRlNmNhYjAxMGIyNWMwYzRkM2Y1MTU1YjVmYmFmNTI3ZjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDIwOjA1OjE0IDIwMTMgKzAxMDAKCiAgICBQeXRob24gYmluZGluZ3M6IEZpeCB0aGUgb3V0LW9mLWJvdW5kcyB3cml0ZQogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMjM0MTU4YjhlODRjYzIwNGNiYWM5NmU2ZTliZTY5NTk2MzU0MDRiOAoKY29tbWl0IDRmNGVhZWI5MjBhZDE1YzkyOWM2Njc4MmNjMGE2NDI5MTJjYWJkMDYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxNyAxMjoyNDoyNiAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBmaXhlZCBJUEFERFJFU1Mgc2l6ZSBvbiA2NGJpdCBzeXN0ZW1zLgoKY29tbWl0IDQ4NmYxMWRkZWU5ZjFjMmRkODA1NjQ0OWU5MDMxZTI0Yjg2NDY4NzIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAyMSAxMDowNjoxMiAyMDEzICswMTAwCgogICAgQWRkZWQgSUVURiBCU0QgbGljZW5zZSBmb3IgTUlCIGZpbGVzLgogICAgCiAgICBNSUJzIGluY2x1ZGVkIGluIE5ldC1TTk1QIHRha2VuIGZyb20gSUVURiBEb2N1bWVudHMgYXJlIGNvbnNpZGVyZWQKICAgIENvZGUgQ29tcG9uZW50cyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIElFVEYgVHJ1c3QgTGljZW5zZSBQb2xpY3ksIGFzIGZvdW5kCiAgICBoZXJlOgogICAgCiAgICBodHRwOi8vdHJ1c3RlZS5pZXRmLm9yZy9saWNlbnNlLWluZm8vCgpjb21taXQgZDI0ZWZiMDQ3NzhkODcwZWZhMjczOTQ5Mzk0OWRiNjVmM2ZkZDRmMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTIgMjA6NDQ6NDYgMjAxMyArMDEwMAoKICAgIFNvbGFyaXM6IEZpeCBmZXRjaGluZyBvZiBsYXJnZSBjaHVua3Mgb2YgZGF0YSAobGFyZ2VyIHRoYW4gb25lIGJ1ZmZlcikKICAgIFRoaXMgZml4ZXMgcHJvYmxlbSB3aXRoIG1hbnkgaW50ZXJmYWNlcywgYnV0IGNvdWxkIGFsc28gZml4IG90aGVyIGxhcmdlIHRhYmxlcy4KCmNvbW1pdCA0NTAwMWZkOThjNzI5ZGY5ZmYwNTM2MjdjNDE2YWI1ZjJlNGM2MGYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxMiAyMDozOTo1MCAyMDEzICswMTAwCgogICAgRml4IGJ1ZyAyMjg2LDI0Mzk6IEJvdW5kIGJ1ZmZlcnNpemUgZm9yIHN3cnVuIGRhdGEgb24gRnJlZUJTRAoKY29tbWl0IDliZDA0MTNiZmJkY2Q4NDU0MTNjMTM1YmJmZjg3NzFmYTcxMzA4MDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxMSAxMTo1NzowMSAyMDEzICswMTAwCgogICAgRXhwbGljaXRseSBlbnVtZXJhdGUgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgIAogICAgVGhlIGdlbmVyaWMgY29uZiBhbmQgbG9jYWwuY29uZiBleHRlbnNpb25zIHdlcmUgaW50ZXJwcmV0ZWQgYXMgbXkuc25tcC5jb25mIGFuZCBteS5vdGhlci5zbm1wLmxvY2FsLmNvbmYgYnkgc29tZSBjdXN0b21lcnMuCgpjb21taXQgMGJkZDA5ODg5ZDA4MTFmODY0ZGYxMzFiODQ0ZjIwYjAwMzkyMDYyYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBGZWIgNyAwMDowNTowMyAyMDEzICswMTAwCgogICAgc25tcF9jbGllbnQuYzo6bmV0c25tcF9xdWVyeV93YWxrOiBoYW5kbGUgU05NUHYyIGV4Y2VwdGlvbiByZXN1bHRzCgpjb21taXQgODY0YjRhY2E4ZGZhNDgwYTc4Yjc0NWZhZTIwOTFlZGM1MzczYTBjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgNiAxNjowMDo1NCAyMDEzICswMTAwCgogICAgc25tcHRyYXBkOiBBZGQgLVggb3B0aW9uIHRvIGRpc2FibGUgQWdlbnRYCgpjb21taXQgMTEyZjNkNGZhNTM2YjJjNTMxZDA3ODA2NzYxOTg5MTVhMWY1ODE3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgNiAxNTo1OTo1MyAyMDEzICswMTAwCgogICAgcmZjbGlzdDogQWRkIFJCUklER0UtTUlCCgpjb21taXQgYzBhNjU0OTU5Nzk0N2YyOWMzNmVmYWRiMDQ5MjdmZjY5MDE4OWViYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMzAgMTU6NTM6MTUgMjAxMyArMDEwMAoKICAgIFJVTlRFU1RTOiBkb24ndCB0cmFwIG9uIFNJR0NITEQuIEl0IGNvbmZ1c2VzIGRhc2gsIG1rc2ggYW5kIG1heWJlIG90aGVyIHNoZWxscy4KICAgIChkYXNoIGlzIC9iaW4vc2ggb24gVWJ1bnR1KQoKY29tbWl0IGI5NWFjMzg2ZTZjMjM1NmExZWMyOWYxYzQwOWIyZWMzZTkwMTU5YzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDI5IDA4OjU5OjAxIDIwMTMgKzAxMDAKCiAgICByZmNsaXN0OiBhZGQgVEVELU1JQgoKY29tbWl0IDIzYmRmNmQyNmY0MzM3ZDA3ZWE2ZTk5MDFhNzczOGQxMTg2ZDE2ZDQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDI5IDA4OjU4OjA3IDIwMTMgKzAxMDAKCiAgICBzbm1wZGY6IGFkZCAtQ0ggYXMgYWx0ZXJuYXRpdmUgdG8gLUNoCgpjb21taXQgNDAyNThlOWMwNjBhZWNhYzY1NTVhZWRmZjNlNzBiZGU3ZDJhYjg0NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMjggMTc6MDU6MDggMjAxMyArMDEwMAoKICAgIFQwNzJjb20yc2VjdW5peF9zaW1wbGU6IGF3ayBzdHJpbmcgaW5kaWNlcyBzdGFydCBhdCAxIQogICAgRml4IHRlc3QgdG8gd29yayB3aXRoIG1hd2sgKGRlZmF1bHQgZm9yIERlYmlhbi9VYnVudHUpCgpjb21taXQgZTM3ZjJiNmJkZmZhN2FmYWExZGMwYjhhZWU1NjVhNGRhODJkNmZlNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjUgMTY6MjQ6MTAgMjAxMyArMDEwMAoKICAgIHNubXBkZjogQWRkIC1DaCAoaHVtYW4gdW5pdHMpIG9wdGlvbgoKY29tbWl0IDdhNDA3YWQzNDUwNWVkNGRiYWEyZTg0ZTA2YTFkYmY0OGMzYzc3ZTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDI1IDE1OjI4OjQzIDIwMTMgKzAxMDAKCiAgICBzbm1wZGY6IEhhbmRsZSBTTk1QICh2MmMvdjMpIGV4Y2VwdGlvbnMKCmNvbW1pdCBjNzM5Y2IzODc1ZmI1ZDRjYWQ0MTM4NjYxY2MwYTQxNzEzODRjMzQxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyNSAxMDoxNDowMiAyMDEzICswMTAwCgogICAgQXBwbHkgcGF0Y2gjMTI0NjogRml4IHBhc3NpbmcgYSBTRVQgb2YgYSBzdHJpbmcgdG8gbm90IGN1dCBpdCBhdAogICAgZm91ciBjaGFyYWN0ZXJzIHRvIGEgcGFzcy9wYXNzX3BlcnNpc3QgaGVscGVyLgoKY29tbWl0IDIzNDE1OGI4ZTg0Y2MyMDRjYmFjOTZlNmU5YmU2OTU5NjM1NDA0YjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxNyAxMjoyNDoyNiAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBmaXhlZCBJUEFERFJFU1Mgc2l6ZSBvbiA2NGJpdCBzeXN0ZW1zLgoKY29tbWl0IDllMGEwZTM1ZDhkMWIzNmZhNDdjZWM5MzhkNmM4NzRkZTAwNzFiYjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEphbiA5IDIyOjM3OjQ3IDIwMTMgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDEyMzk6IEZpeCBtZW1vcnkgbGVhawoKY29tbWl0IDU1NjA1ZWUzNDUyYWVmNWFhYmU0ZWQxNWE4MzM3NGE5NzcyOGU2NGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA5IDA5OjI2OjU2IDIwMTMgKzAxMDAKCiAgICBGaXhlZCBtZW1vcnkgbGVhayBvbiBmYWlsZWQgcmVhbGxvYy4KCmNvbW1pdCBhMzJjYTkzYTliOTE2NzRhOGMxZTg5ZTFhMzgzYTc2MTM2YjhhYzM4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBKYW4gOCAxNjo0Mjo1NCAyMDEzICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDEyNDA6IEZpeCBkZWFsbG9jYXRpb24gb2YgaW50ZWdlciBpbmRleGVzCgpjb21taXQgODc2ODFmMGZiMjg1YTAyMTYzNmUwNmE2ZjIzNTFkNzY0MDllZWJjOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKYW4gNSAxNTowNjoxMiAyMDEzICswMTAwCgogICAgQXZvaWQgdXNpbmcgImxvY2FsIiBzaW5jZSBTb2xhcmlzJyAvYmluL3NoIGRvZXMgbm90IHVuZGVyc3RhbmQgaXQKCmNvbW1pdCA1OWI0ZDQwZjM5NzBiYTgyZjNkZjJhMzk5OTcxMjU0YjA0ODI3NDQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA0IDE4OjAwOjUzIDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIHdpbkV4dERMTCB3b3JrIG9uIDY0LWJpdCBXaW5kb3dzIHN5c3RlbXMKCmNvbW1pdCAzOTU5NzEwNjAzOGY2ZTFjNWVkNDliM2ZjZTAwMjFhNmM1OWVjMWZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA0IDE4OjA1OjM4IDIwMTMgKzAxMDAKCiAgICB3aW5FeHRETEw6IEFkZCBtb3JlIGRlYnVnZ2luZwoKY29tbWl0IDg1Y2U5MDYyOTExZDMxYjQyZTBjMWUxMzVhYmQzYmRhODEzZTMwMDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDQgMTg6MDI6MzAgMjAxMyArMDEwMAoKICAgIHdpbkV4dERMTDogSW52b2tlIFNubXBFeHRlbnNpb25DbG9zZSgpIGJlZm9yZSB1bmxvYWRpbmcgYW4gZXh0ZW5zaW9uIGFnZW50Cgpjb21taXQgN2UwMzEyMjk1NDM1NzlkMzdiMDA2Mjk2ZTJmNDQ1NDgyZDA1MTJjYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKYW4gNSAxMzowNDowMiAyMDEzICswMTAwCgogICAgd2luRXh0RExMOiBSZW1vdmUgc291cmNlIGZpbGUgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaAoKY29tbWl0IDJlODk2MjRlNTVlNzM1NTc4NjI1OTRmMWY1MjVmOWRmZmM4Mjc5ODYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDQgMjI6MjY6NDcgMjAxMyArMDEwMAoKICAgIFNvbGFyaXMgL2Jpbi9zaCBkb2VzIG5vdCB1bmRlcnN0YW5kICdsb2NhbCcgYnVpbHRpbi4KCmNvbW1pdCA2MjU3ZGVhNDgyN2U4NWM3YWY4NDVhZTljZGVkNDhkNDRhYTdiYjNkCkF1dGhvcjogSmFuIFBva29ybu++g++9vSA8anBva29ybnlAcmVkaGF0LmNvbT4KRGF0ZTogICBUaHUgRGVjIDIwIDE0OjQ1OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXggY29tbWVudCB0eXBvcyBpbiBleGFtcGxlLmMKICAgIAogICAgUGF0Y2ggZnJvbSBQb2tvcm7vvoPvvb0gPGpwb2tvcm55IGF0IHJlZGhhdC5jb20+Cgpjb21taXQgOWRmYzQ0YzkxZDdhMjlhNGM0M2Y3NzkwODVkZGUzNGM1ZmU2ZDVhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gMyAxMDozMDoyNyAyMDEzICswMTAwCgogICAgTWluR1csIHRlc3QgaGFybmVzczogRml4IGEgbG9nIG1lc3NhZ2UKCmNvbW1pdCAxZDA5OWM3YjkxOWVmMjVlZmEwM2MxNGFhNzdjY2JlYzhlNWJiMDA5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiAzIDEwOjI0OjQ4IDIwMTMgKzAxMDAKCiAgICBhcHBzL2FnZW50eHRyYXAuYywgV2luZG93czogRml4IHVzYWdlIHRleHQKCmNvbW1pdCBmMDIxZTZmZDRiYzJhY2I2ZmZhYzMzOWQzZjM4ZTRjMTViYjViZDdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxIDE3OjUzOjE2IDIwMTMgKzAxMDAKCiAgICBNaW5HVzogVXBkYXRlIHRlc3QgaGFybmVzcy4gSW5zdGFsbGF0aW9uIG9mIHBzbGlzdC5leGUgaXMgbm93IHJlcXVpcmVkLgoKY29tbWl0IDRiYzNjMDU0N2UwYjMzZWVhNzFmM2MxYTA5ZWZkZDU5NjlkN2UyNzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRGVjIDMxIDE3OjI0OjMzIDIwMTIgKzAxMDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogRW5hYmxlIGluIE1TVkMgYmF0Y2ggYnVpbGQKCmNvbW1pdCBlOWVmYjIwMDk1NDY4ZTY0MTU3Yjg0ZjE4YjZjY2Q5OTFlMTA4MmUzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxIDE1OjA0OjM3IDIwMTMgKzAxMDAKCiAgICBXaW5kb3dzOiBMaW5rIHdpdGggc25tcGFwaS5saWIgYW5kIG1nbXRhcGkubGliIGV2ZW4gaWYgbm90IHVzaW5nIHRoZSBwbGF0Zm9ybSBTREsKCmNvbW1pdCA5MDBhYWU4ZWE2OTNmYjg0MGQ1NzUyNmZiNjcxZDIxNWY4NjViZWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxIDAxOjMzOjAxIDIwMTMgLTA4MDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogRml4IGFuIE1TVkMgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDM2M2UzZmExYTQzY2E2MjIzZmUzYjA4MDhlNjYyOTViM2Q5Mzg2YjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEgMDE6Mjc6NDIgMjAxMyAtMDgwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBBZGQgZGxtb2QuYyB0byBNU1ZDIHByb2plY3QKCmNvbW1pdCBlMzU0MmMwNGE4NDYxNzg1NzY4OGFiOGU4NzE4Y2RjNGM2YTY4Y2Y1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxIDA5OjE0OjMzIDIwMTMgKzAxMDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogUmVtb3ZlIG1vcmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCAxZTNiMGFlMmIwMmNmMWZhY2NhZDQ4OTZiYzNiZGJlYTFkYjRhNjhmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIERlYyAzMSAxMzoxOTozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogV2luZG93czogUG9ydGVkIHVjZC1zbm1wL2RsbW9kIHRvIE1pbkdXIC8gTVNWQwoKY29tbWl0IDk4NmZiOWI4NWUxMzgzYjgxZWFlYTQwZDJjYjdjMTQ0OTJkZGJkYWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRGVjIDMxIDEyOjMyOjU2IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogQXZvaWQgY29uZnVzaW9uIGJldHdlZW4gTWluR1cncyBraWxsLmV4ZSBhbmQgdGhlIFN5c0ludGVybmFscyBwc2tpbGwuZXhlIChiYWNrcG9ydCBjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMCkKCmNvbW1pdCA3OThiNzNjZjU5ZTM2ODdmNjViZDU0YTdhOGFjMjlmZTI0OThjNjlmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAxNyAxMzowNTo1MyAyMDA5ICswMDAwCgogICAgVW5icmVhayB0aGUgTWluR1cgYnVpbGQgZm9yIHRoZSA1LjQgYnJhbmNoIC0gdGltZXJhZGQoKSBpcyBub3QgQU5TSSBDCiAgICAKICAgIFJlbW92ZSBESUZGVElNRVZBTCgpIGJlY2F1c2UgaXQncyBidWdneTogaW4gImRpZmYudHZfdXNlYyA+IDEwMDAwMDBMIiB0aGUgIj4iCiAgICBzaG91bGQgaGF2ZSBiZWVuICI+PSIgaW5zdGVhZC4KICAgIAogICAgVGhpcyBpcyBhIHBhcnRpYWwgYmFja3BvcnQgb2YgY29tbWl0IDg1ODUwOWM5ZTE5OThmNmQyNmU5MGNiNjIyZTRiMTdlYjI0ODhhNGYuCgpjb21taXQgMWU1NTZjYzc3NDBjMDYzNjdmZjMzNjFhYTk2YmY0NTMzOWMyZThhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMzAgMTc6NTk6NDQgMjAxMiArMDEwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCA1MWRmYTZlNjdmZDg0ODdiODg4MmMxNjMyZTgxMTE5NWQ5NDk2ZTQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAzMCAxMDo0MjoxNiAyMDEyICswMTAwCgogICAgdWNkLXNubXAvZGxtb2Q6IE1lbnRpb24gbGlicmFyeSBwYXRoIGluIGVycm9yIG1lc3NhZ2VzCgpjb21taXQgMDJhMzU3ZDZiOTUzOGE0ODg5NjM2ODkwMGJiYjU5M2RiYjRkYzM3NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMzAgMTA6NDA6NTUgMjAxMiArMDEwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBSZW1vdmUgYSBzdXBlcmZsdW91cyBpbml0aWFsaXplcgoKY29tbWl0IGVmNzQ4ODQ1YjE0YzA5NTA0OWVkNTQ4MDNlYTc0Y2Y0NTdlZmQxODkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDMwIDA5OjU3OjM4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBGaXggZW52aXJvbm1lbnQgc2VwYXJhdG9yIGluIHNubXBkL3NubXB0cmFwZC9zbm1wdHJhbnNsYXRlIGhlbHAgdGV4dC4gUmVwb3J0ZWQgYnkgSmFzb24gTWNDb2xsdW0gPGptY2NvbGx1bUBjb210ZWNoZWZkYXRhLmNvbT4uCgpjb21taXQgYmMwYWJhZTU1ZGQ4NjdkYmJmNGU0MmU2N2EzNjIzNDA4OGM5Mzc3MQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMiAwOToyNTozMyAyMDEzIC0wODAwCgogICAgY29weXJpZ2h0IHVwZGF0ZQoKY29tbWl0IDQwODZhZjk1YjI5OGYxY2YxMzBkMDhkZWI3ZTA5MDA1OGIzMjFhZjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIwIDA3OjM3OjE0IDIwMTIgKzAxMDAKCiAgICBGaXggdGhlIE1JQiBuYW1lcyB0byBhY3R1YWxseSB3b3JrCgpjb21taXQgNzk1Mjc0ZmMyMWUxYmEwM2VmYmU5YjYwNDJjNmEzNTEzZDg5ZGViZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjAgMDc6MjQ6NDcgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIGFuZCB2YWx1ZSBjaGVja2luZyBmb3IgaXBEZWZhdWx0VFRMLCBpcHY2SXBEZWZhdWx0SG9wTGltaXQKCmNvbW1pdCA0MzlkNTBjNjc5ZTlmMDliMTA2YmZkZjY0ZjhjYzc2NjQxOWUxMzQ0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMCAwNzoyNDoxNiAyMDEyICswMTAwCgogICAgRml4IGljbXBNc2dTdGF0c1RhYmxlIGZvciBTb2xhcmlzCgpjb21taXQgMDA3YTdkMjRiYzVmMjc5MzkyZmQwZWM0MzYxNDc3Y2Q4ZjE0ZTVhZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMTkgMjI6MTQ6MDYgMjAxMiArMDEwMAoKICAgIGdpdCBpZ25vcmUgdGlsZGUgZmlsZXMKCmNvbW1pdCBhZmYwMmYyNGUxOThhMjkyMzEyNzNkNDk0ODIwZGQ2ZTM1NDE1NWNhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIERlYyAxNyAyMjo0NDoxOCAyMDEyICswMTAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyL2F1dG9jb25mCgpjb21taXQgOWNmZDY4MGYyZjJmNDVjZjc2Y2Q0MjE2NjkzYjg2MmZhYTI3Y2JjMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBEZWMgMTcgMjI6NDI6MDAgMjAxMiArMDEwMAoKICAgIENvbmZpZyBjaGVjayBmb3IgQlNEIHVkcHN0YXQudWRwc19pcGFja2V0cwoKY29tbWl0IDUzYzJmZGQ1YjY2MDIxMTQ0YWQyNjUzOWI1M2JlOWMxNTkzYjQ4ODQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRGVjIDE3IDIyOjI3OjAzIDIwMTIgKzAxMDAKCiAgICBBZGQgU0Qgc3VwcG9ydCBmb3IgaXAtZm9yd2FyZC1taWIKCmNvbW1pdCBjYTdiMTdhNDFkNGQxNmJkMjdhYWNmOTIxMTZiZWEzNTYyZWVlYTM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBEZWMgMTcgMTI6NDA6MzIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiB1c2UgY2FjaGUgZm9yIGRza1RhYmxlIHRvIHNwZWVkIGl0IHVwLgogICAgCiAgICBVQ0QtU05NUDo6ZHNrVGFibGUgd2FzIHNsb3cgb24gTkZTIG1vdW50cy4gTm93IGl0IHVzZXMgZnN5cyBjYWNoZQogICAgdG8gcmVsb2FkIG1vdW50cyBldmVyeSA1IHNlY29uZHMuCgpjb21taXQgMGI3MTgxODRlMDcwZDI1NzRjMDliMThmNTY4OTUwYThjOWZmNzY1OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTYgMjA6NTc6MjkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFwcHM6IFN0b3AgdXNpbmcgc25tcF9wZXJyb3Igd2hlbiBsb2dnaW5nIGFmdGVyIGZ1bmN0aW9ucyB0aGF0IGRvbid0IHNldCBzbm1wX2Vycm5vLgoKY29tbWl0IDdlZGNlMGMzMTFhN2RkNTQyOGUwZWRiNzAxZGFiZTlkYzc5ZDA5NjcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDE1IDEyOjQwOjEwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSB0aGUgLXdpdGhvdXQgb3B0aW9ucyB0byBycG1idWlsZCB3b3JrCgpjb21taXQgYzYwMzc1NDhmYjRiNDc5OTYzMzBmZTFiYzFlODI2NWFjZWE1ZGQ1NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBEZWMgMTAgMDA6NDE6NDIgMjAxMiArMDEwMAoKICAgIFRoZSBwcm9wZXIgcm91dGVyIGZpbGVzIGZvciBCU0QKCmNvbW1pdCAyYjM1OWU0NTA5ODZiYjg3NDRiYmZmMjFlMGNhYjQ5M2FjYWNlYTk4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIzOjAyOjAyIDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGZvciBpcFN5c3RlbVN0YXRzVGFibGUgZm9yICpCU0QuIE1vc3Qgb2YgdGhlIGNvZGUgYnkgR2FycmV0dAogICAgQ29vcGVyLiBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgoKY29tbWl0IDlhMDQ0MTI4ZThiMzMxNzk2MjIxMTY2MzU4NzY5ZWIwNTM1ZGZjMWYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjI6MzY6MjEgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgZm9yIGlwTmV0VG9NZWRpYVRhYmxlIGZvciAqQlNELiBNb3N0IG9mIHRoZSBjb2RlIGJ5IEdhcnJldHQgQ29vcGVyLgogICAgUGFydGlhbGx5IGZ1bmRlZCBieSBDaXNjbyBJcm9ucG9ydC4KCmNvbW1pdCBmOWNiMjk4ZGQyMGVmNmQ0YmM2ODNjZTA2N2YyMzMwNzM3YmU0ZTA5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIyOjE3OjIyIDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGZvciBpcERlZmF1bHRSb3V0ZXJUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0CiAgICBDb29wZXIuIFBhcnRpYWxseSBmdW5kZWQgYnkgQ2lzY28gSXJvbnBvcnQuCgpjb21taXQgMWRlZTQxNTYyYzU0ZTBiNTRiMzAxYTM3ODM4YjNiYTY1MDlkY2MzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMTo1NDoxNCAyMDEyICswMTAwCgogICAgU3VwcG9ydCBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGZvciAqQlNELiBNb3N0IG9mIHRoZSBjb2RlIGJ5IEdhcnJldHQgQ29vcGVyLgogICAgUGFydGlhbGx5IGZ1bmRlZCBieSBDaXNjbyBJcm9ucG9ydC4KCmNvbW1pdCAzZGJhYmM5NzA2OGI2YzY5MGIzZmRmOTdiNWFiM2FlMGQ5ZWFiMjhjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIxOjQ3OjQ1IDIwMTIgKzAxMDAKCiAgICBDaGFuZ2Ugc29tZSBkZWJ1ZyBvdXRwdXQgaW50byBlcnJvciBsb2dnaW5nLiBGYWlsdXJlIHRvIGV4cGFuZCAzMiB0byA2NAogICAgSVMgYW4gZXJyb3IuCgpjb21taXQgOTA3MzYwZTA5ZmZmMzM5MGQ2MjY5ZjhjYjQ3NDBiZGJjZDk1ODE2NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMTo0NTo0NCAyMDEyICswMTAwCgogICAgRml4IHNvbWUgbGFiZWxzIGZvciBuZXRzdGF0IGljbXAgb3V0cHV0LgoKY29tbWl0IDlmMmYwNTQwNWM3YmI0OTllYmUwODM5YjBkNzliYTI1YzYxYzBmNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6NDk6NTEgMjAxMiArMDEwMAoKICAgIFJ1bm5pbmcgYXV0b2NvbmYKCmNvbW1pdCBkMjdmMzY0NTI1ODNkMjkxZjI1NWVmMDkwZTJhZWFlYWYzOWE5ZTBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjQ5OjAyIDIwMTIgKzAxMDAKCiAgICBSdW5uaW5nIGF1dG9jb25mCgpjb21taXQgNTYzNTJjMmViZTk1NDFmNmFiZjlkMmI5ZWJjNDcwNWQ4MThkODliOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOTo0ODoyMSAyMDEyICswMTAwCgogICAgUnVubmluZyBhdXRvY29uZgoKY29tbWl0IDM5NzkyM2UwYWFlMTM4NWEwYWYzYTgwM2U2MGViZTgxMjRmOTYxZDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6MjY6MjEgMjAxMiArMDEwMAoKICAgIEZpeGVzIGZvciBjb25maWd1cmUgb2Yga3NtIG1vZHVsZS4gUHJldmlvdXNseSBrc20gaGFkIHRvIGJlIHRoZQogICAgZmlyc3Qgc2VjdXJpdHkgbW9kdWxlIGluIGxpc3QgdG8gYmUgaW5jbHVkZWQuCgpjb21taXQgNDMwZDEwZDI5NmI4ZDhjOThhM2FhZmQyN2E4YzZmZjRmNjQwODExNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOToyNDozOSAyMDEyICswMTAwCgogICAgRml4IHNwZWxpbmcgd2hpY2ggaGFzIHByZXZlbnRlZCBrc20gbW9kdWxlIGZyb20gY29tcGlsaW5nIGZvciBtYW55IHllYXJzIDotKAogICAgQWxzbyBzb21lIGZpeGVzIHRvIHN1cHBvcnQgSGVpbWRhbCBLZXJiZXJvcy4gVGhpcyBzdXBwb3J0cyBGcmVlL05ldEJTRC4KCmNvbW1pdCBiZmY4MzJhYjI0OGUwODYyOGJlNDZlYmY3NjExMTkxMWU3ZjM5ZTUyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjE3OjIyIDIwMTIgKzAxMDAKCiAgICBBZGFwdCBmb3IgbG9uZ2VyIGxpbmVzIGZyb20gL3Byb2MvbmV0L3RjcDYuIEFuZCBpc3N1ZSBhbiBlcnJvciBpZgogICAgaXQgaGFwcGVucyB0byBmYWlsIGFnYWluLiBQYXRjaCBmcm9tIGJ1ZyAjMjQyNSAoVGhhbmtzIFpoaXh1IExpdSkKCmNvbW1pdCA5Njg3ZTRkNTA3ODFiYTAxNjg0MTZmMTVjNGYyZDlmYzgzNzEwNTBhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjE1OjQ4IDIwMTIgKzAxMDAKCiAgICBpY21wIHN1cHBvcnQgZmlsZXMgZm9yICpCU0QgKGV4Y2VwdE5ldEJTRCkKCmNvbW1pdCBmMjE1YmExZTM3YThjM2UwNzY5NThlZmQ4M2MwZjVkMzkzYTE0YzIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjEzOjI0IDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGZvciBpY21wU3RhdHNUYWJsZS9pY21wTXNnU3RhdHNUYWJsZSBmb3IgKkJTRCBhbmQgU29sYXJpcwoKY29tbWl0IGE3YjdjM2MwYzNiZTNmNmNmMmQwOWY2NDcwZDNmYTA4NjE1M2QwMzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDMwIDE1OjM1OjMzIDIwMTIgKzAxMDAKCiAgICBTaHVmZmxlIGluIHByZXBhcmF0aW9uIGZvciBicm9hZGVyIHN1cHBvcnQgZm9yIGljbXBTdGF0cy9pY21wTXNnU3RhdHMKCmNvbW1pdCBiZDI5NmFjMTg0MjM1MDNlZGE4ZWZmZWI4NmFmYjE5ZTAwMTQzODg5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAzMCAxNTozNDo1MiAyMDEyICswMTAwCgogICAgU2h1ZmZsZSBpbiBwcmVwYXJhdGlvbiBmb3IgYnJvYWRlciBzdXBwb3J0IGZvciBpY21wU3RhdHMvaWNtcE1zZ1N0YXRzCgpjb21taXQgMmUyM2VhMGYyOTNiYjhlOWNlYWY1NjM2ZGI3YjdkMDdmNmQ2MmM3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgMjAgMjM6MzM6NTggMjAxMiArMDEwMAoKICAgIEFkZCBtaXNzaW5nIHNzSU9SYXdTZW50L3JlY2VpdmVkIGZvciBTb2xhcmlzLgoKY29tbWl0IDU5ZWViYzQxYTk0MzU4MTEwNzNmZWM1MGQ3NmRkNmFlZjlkZDU4YTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDIwIDIzOjMyOjUzIDIwMTIgKzAxMDAKCiAgICBBZGQgc29tZSBlcnJvciBjaGVja2luZyB0byBnaXR0b29scwoKY29tbWl0IDgwYjE4Mzc1ODI2NjUzNjI2YzJkNzA0NTFjMmI1NGExYzUwYTNjZTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDEzIDEzOjU1OjQ3IDIwMTIgKzAxMDAKCiAgICBSZW1lbWJlciB0byBpbml0IHRoZSBzeXN0ZW1zdGF0cyBwcm92aWRlcgoKY29tbWl0IDc0M2NiNjY3MTg5MDQ5NzlmNTU4OTU0NzI1MDE1ODRjMzBjNjZmMTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0OToxNSAyMDEyICswMTAwCgogICAgRml4ZWQgY3Jhc2ggd2hlbiBNRDUgYW5kL29yIFNIQS0xIGhhc2ggaXMgbm90IHN1cHBvcnRlZCBieSBPcGVuU1NMLgoKY29tbWl0IDE4OThjZmM3MWJkYjNmNGExNjg1YzZkMjFiNTRkZDFhMzQ4MjU5MWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ4OjE1IDIwMTIgKzAxMDAKCiAgICBPcGVuQlNEIDUuMiBzdXBwb3J0LgoKY29tbWl0IGRkNTNmZmJhZmViMzFjZGU2MTZhODk5NDllNzBlM2Q1ZmUwY2MxYjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0Njo0MyAyMDEyICswMTAwCgogICAgRmFsbCBiYWNrIHRvIFNIQS0xIGlmIE1ENSBpcyBub3QgYXZhaWxhYmxlLgogICAgCiAgICBPbiBwYXJhbm9pZCBzeXN0ZW1zIHdoZXJlIE1ENSBpcyBkaXNhYmxlZCB1c2UgU0hBLTEgaW5zdGVhZCBvZiBNRDUgYW5kIGRvbid0IGNyYXNoLgoKY29tbWl0IGVhOGY3NGM4MWY4MmMxMDViOWZjMDE5NjVhZGNlMTRiMGQ4MTg2ZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ2OjM0IDIwMTIgKzAxMDAKCiAgICBGaXggTmV0QlNEIG1lbW9yeSBkYXRhIHR5cGluZwoKY29tbWl0IGRkZTNhMzViYWFlYjY4M2NmMTQ0MWExNmExNTQ0MWY4YjQ1NmM1MjAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0NToyNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgY3Jhc2ggd2hlbiBNRDUgaGFzaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IE9wZW5TU0wuCgpjb21taXQgYjc3YjY3ZDhkNjI5Zjc4NTYzOWU0MDJmYTRmYmVlNmNjZmUxOGZhNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDQ6NDkgMjAxMiArMDEwMAoKICAgIEtlcm5lbCBwcm9jZXNzZXMgaW4gRHJhZ29uRmx5LCBhbmQgZml4ZWQgY3B1IHVzYWdlIGRhdGEKCmNvbW1pdCBkNmM2MjAxMmM4MDgyZmM4ODZmNzQ3ZTBlMmM5YmI4YTZjNjZjNjYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0MTo1NSAyMDEyICswMTAwCgogICAgRGlza2lvIGZvciBPcGVuQlNELCBhbmQgc29tZSBjbGVhbi11cCBmb3IgRnJlZUJTRC9EcmFnb25GbHkKCmNvbW1pdCA0YTVlMGY0Yzk1ZmI2Y2QxMjNhNDkwMTc4NzM3NmU0NDdkMzMyYzAyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNDoyMzo0OCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogYWRkZWQgc2ltZnMgKE9wZW5WWiBmaWxlc3lzdGVtKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlLgoKY29tbWl0IDJhMGNkMzVhY2YzMzI1YTZmZGMwYTEwNDIzZjU0Y2I4YjVjZTUyMmIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAxMyAxNToyNTo1MiAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGluZmluaXRlIGxvb3Agd2hlbiBTSUdURU0gYXJyaXZlcyBpbiBtaWRkbGUgb2YgaW50ZXJuYWwgcXVlcnkgcHJvY2Vzc2luZy4KICAgIAogICAgV2hlbiBzbm1wZCBzdGFydHMgaW50ZXJuYWwgcXVlcnksIGUuZy4gZm9yICdtb25pdG9yJyBjb25maWcgb3B0aW9ucywgaXQgY2FsbHMKICAgIG5ldHNubXBfcXVlcnlfd2FsaygpLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIGVpdGhlciBlcnJvciBvY2N1cnMgb3IgdGhlCiAgICBpbnRlcm5hbCByZXF1ZXN0IGlzIHByb2Nlc3NlZC4gQW5kIGlmIFNJR1RFUk0gY29tZXMgdG8gdGhpcyBsb29wLCB0aGUgcmVxdWVzdAogICAgaXMgbm90IG1hcmtlZCBhcyBmYWlsZWQuCiAgICAKICAgIFBhdGNoIG9yaWdpbmFsbHkgZnJvbSBNYXNhaGlybyBNYXRzdXlhLCBtbWF0c3V5YSBbYXRdIHJlZGhhdC5jb20KCmNvbW1pdCBiYzQ0OWMwZjg1YWU5ZmEwOGFjNGZjZTY3MjgyZjQ4ZWI3YWIxOTg0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTAgMTM6MjU6MzggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBVQ0QtU05NUC1NSUI6OmV4dENvbW1hbmQgdG8gY29udGFpbiBmdWxsIGNvbW1hbmQgbGluZS4KICAgIAogICAgTUlCIGRlc2NyaXB0aW9uIG9mIFVDRC1TTk1QLU1JQjo6ZXh0Q29tbWFuZCBzdWdnZXN0cyBpdCBzaG91bGQgY29udGFpbCBmdWxsIGNvbW1hbmQgbGluZS4KICAgIEFsc28gaW4gTmV0LVNOTVAgNS4zLjIuMiwgd2hvbGUgY29tbWFuZCBsaW5lIHdhcyBzaG93bi4KCmNvbW1pdCBhMzk3OGYyY2MyMDU2Yzk3YTRjM2YzMzhmNzA5YTIwMjkxYWVkNDcyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAwNjo0ODozNyAyMDEyICswMTAwCgogICAgUHJvcGVyIGhhbmRsaW5nIG9mIGNvbmZpZ3VyZS1nZW5lcmF0ZWQgc25tcGNvbmYKCmNvbW1pdCAwZjQ2OTkyOTI0ZGU1YTRhYjA3NjNhOGQ0NGExY2VjZTRhOTkxZDgwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA1IDIxOjE2OjM3IDIwMTIgKzAxMDAKCiAgICBQYXRjaCBmb3IgT3BlbkJTRCA1LjIgKFBhdGNoIDM1NTk0MjApCgpjb21taXQgOWVkMGIyZTBhYzBjOGU1NDliOGY5YTU4NDVlOWQxZmFhY2FiNzNjNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNSAyMDowODo0MSAyMDEyICswMTAwCgogICAgcmZjNjc3OQoKY29tbWl0IGFlZjc2Y2EwY2JhMmNhNTZmNmFhMWRiNWM1YjU4YTU0OTM5ZjM4OWIKQXV0aG9yOiBxcXNoa2EgPHFxc2hrYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAzMSAyMDowMDowNCAyMDEyICswMTAwCgogICAgQWdlbnRYLCBJUFg6IFJlc3RvcmUgZGVmYXVsdCBwb3J0IChidWcgIzM1ODIyODMpLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMuCgpjb21taXQgZDdkOThlNWFhOWVlOGNhNzkxOGI3Njc1MDQzZDQ3OWNmNzdiODNjNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMSAxMDozMzowNiAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogQWRkIGxvY2FsL3NubXBjb25mCgpjb21taXQgNzFkODNiYTQxMTdhMmNmYjc4NzRlOTE4MzJlNDU5NzNkYTQyZWU5OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMSAxMDozNDozMCAyMDExICswMjAwCgogICAgV2luMzIsIE1TVkM6IE1ha2UgYnVpbGQuYmF0IHdvcmsgYWdhaW4gbm93IHRoYXQgRU5WX1NFUEFSQVRPUiBpcyBjb25maWd1cmFibGUKCmNvbW1pdCA1ZTUwMDA4MjcyOGY0NTM1OTVmNTAyNGQyNDEyMDhjNTFmMDhkMjJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAyOSAxODoxMjo0MSAyMDEyICswMTAwCgogICAgUkVBRE1FLndpbjMyOiBSZW1vdmUgcmVmZXJlbmNlIHRvIHRoZSBubyBsb25nZXIgc3VwcG9ydGVkIEN5Z3dpbiBjb21waWxlciBvcHRpb24gLS1tbm8tY3lnd2luCgpjb21taXQgMWEzNmRlZTE2NWI4YmQ3ZGYzZWY2OTRiN2MzZjI2MjFhNTQ0OWRhYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBBdWcgMzAgMjA6NTQ6MDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkLCBzbm1wdHJhcGQgYW5kIGFwcHM6IE1ha2UgRU5WX1NFUEFSQVRPUl9DSEFSIGNvbmZpZ3VyYWJsZQoKY29tbWl0IDBlMWNhNDVhNmY4ZDhhY2Y0NGFhMjFhMDA5YTllNTExOTJlODQ3ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gT2N0IDI4IDEwOjExOjIyIDIwMTIgLTA3MDAKCiAgICBzbm1wbmV0c3RhdDogRml4IE1TVkMgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA0YTZkMDM3OGEzOTE2NTcxY2U3NjA0YzRhM2Q1NGE4Yzk2YThmODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE9jdCAyOCAwOTo1NDoxMiAyMDEyIC0wNzAwCgogICAgV2luZG93czogVmlzdWFsIFN0dWRpbyA2IGJ1aWxkIGZpeCBmb3Igc3RybGNhdCgpCgpjb21taXQgNDFiNDhhNjM3MDk1MmJmNGIxMmQzNGZiMDVlYzU1ZmIwNzAyZThjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBPY3QgMjggMTQ6Mzc6NTIgMjAxMiArMDEwMAoKICAgIFdpbmRvd3M6IE1ha2Ugc25tcG5ldHN0YXQgYnVpbGQgYWdhaW4KCmNvbW1pdCAyNDUxZjgyNjQ3OTg4MWE0OTI2ZmNmODg4NTVmNTgyNTg1ZWI4MTNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE9jdCAyOCAxMDoyMzoxNyAyMDEyICswMTAwCgogICAgd2luMzIvYnVpbGQucGw6IFJlZHVjZSBjb2RlIHJlZHVuZGFuY3kKCmNvbW1pdCA2ZTk5Mzg4NjgzYTZjODU0MDM1ZjA0MmE5ZDA3YzA3MjMxMTdlOGE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE9jdCAyOCAwOTo0MToyMCAyMDEyICswMTAwCgogICAgV2luZG93cywgYmF0Y2ggYnVpbGQ6IFJlbW92ZSB0aGUgb2Jzb2xldGUgdmFyaWFibGUgIlNTTCIKCmNvbW1pdCA3NTQ0YWRjNWExYzc2ODg5ZTRhOWVkNTFlOTZkMjJkMDJmZDU2OTVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAyMiAxNTozNTowNCAyMDEyICswMDAwCgogICAgTkVXUzogV2luZG93czogUG9ydCBiYXRjaCBidWlsZCBpbmZyYXN0cnVjdHVyZSB0byBWaXN1YWwgU3R1ZGlvIDIwMTAgYW5kIGxhdGVyCiAgICAKICAgIEZyb20gVmlzdWFsIFN0dWRpbyAyMDEwIG9uIGl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBzcGVjaWZ5CiAgICBpbmNsdWRlIG9yIGxpYnJhcnkgZGlyZWN0b3JpZXMgZ2xvYmFsbHkgLSB0aGVzZSBoYXZlIHRvIGJlIHNwZWNpZmllZAogICAgcGVyIHByb2plY3QuIEhlbmNlIHR3byBhZGRpdGlvbmFsIG1lbnUgZW50cmllcyBpbiBidWlsZC5iYXQgdGhhdAogICAgYWxsb3cgdG8gc3BlY2lmeSB0aGVzZSBkaXJlY3Rvcmllcy4KCmNvbW1pdCAxYjhhNzljMWMyZWIxM2Y4YjIwN2MxMmFhNmU3MWEyOWZmMDAzOTZmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAyMiAxOToxMDowNyAyMDEyICswMDAwCgogICAgd2luMzIvQ29uZmlndXJlOiBGYWN0b3Igb3V0IGNvbW1vbiBjb2RlCgpjb21taXQgMmFmN2E3M2IwY2E4Y2RiZDM2YTdmMTlkZDhlNTU3NjRjODQ5ODU1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBPY3QgMjcgMTg6Mjc6NDIgMjAxMiArMDIwMAoKICAgIFdpbmRvd3M6IE1ha2Ugc25tcG5ldHN0YXQgYnVpbGQgYWdhaW4gKHNlZSBhbHNvIGNvbW1pdCBhYTU5MTJiODk4NmNkZTc0MDkwYmExNWJlMTk2NDI2MzA5YTFlMWYwKQoKY29tbWl0IGZhOThiNGNiZDZkYzE1YWE5MjYxNjZlZWYwNGQ1YmM4ZGZiYWFhZDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDI2IDA3OjU2OjA2IDIwMTIgKzAyMDAKCiAgICBDb3BlIHdpdGggYWRkaXRpb25hbCBzdGF0aXN0aWNzIGluIC9wcm9jL25ldC9zY3RwL3NubXAgaW4gUkg2Cgpjb21taXQgNTQyOTBiZWRlMzM4MTY0Y2E2NWEzZWVkMjI0ZmE1MDQwZDdkZDg1NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBPY3QgMjYgMDc6NTA6MTEgMjAxMiArMDIwMAoKICAgIEJldHRlciBjbGVhbnVwIG9mICJleGVjIiBjb25maWcgdG8gYXZvaWQgY3Jhc2ggZHVyaW5nIHJlbG9hZCBvZiBjb25maWcKCmNvbW1pdCA4MmFhMjQ2NjcxMTk0ZjA0YmU1MmM2MjFlOWY4M2QwZmFiZDI0ZmE1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNCAxNTozMDoxMSAyMDEyICswMjAwCgogICAgRG9uJ3QgbWl4IGNvZGUgYW5kIGRlY2xhcmF0aW9ucyEKCmNvbW1pdCA0ZTllYTg0NTU5MmZmZjhiMmFhZTVkMzE4ZGNhYmY0MWY5NTcwNjMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNCAxNToyNTozNSAyMDEyICswMjAwCgogICAgRG9uJ3QgbWl4IGNvZGUgYW5kIGRlY2xhcmF0aW9ucyEKCmNvbW1pdCAyMWQ1YzY3ODVlOTE2YjUxMDE0NDBlZDFhNGY3MWI0MWJhMmViODA5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNCAwOToyNzoyMyAyMDEyICswMjAwCgogICAgUmVtZW1iZXIgdG8gZnJlZSB0aGUgZGVzY3JpcHRpb24gKGlmIHNhdmVkKSBkdXJpbmcgdW5sb2FkX2FsbF9taWJzCiAgICAocGF0Y2ggMzU2NTkyMikKCmNvbW1pdCAyYjk5NDBjYTU2ZmM4ZDNkNjEwZWZkMmViYTlhZTRlYmI3NDFlNjcxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNCAwNjo0MTo0NiAyMDEyICswMjAwCgogICAgQ2xlYW4gdXAgZGlza2lvIGNvbmZpZyBiZWZvcmUgcmVsb2FkaW5nLgoKY29tbWl0IGY3NzY4ZmI2NDNiZTI4MmQ2MzUyODliNTdmODhhMDdkMDcwNDg3YjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgT2N0IDIzIDExOjQ4OjMxIDIwMTIgKzAyMDAKCiAgICBhcHBzL3NubXBuZXRzdGF0L2luZXR4LmM6IEVsaW1pbmF0ZSBkZWFkIGNvZGUgKHNlZSBhbHNvIGNvbW1pdCBhYTU5MTJiOCkKCmNvbW1pdCA2NGM1NmYyN2M1ZWQ0MzJjZThkZTQ0ZTI1NzljYTBjODA2YTUxN2VhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAyMiAxNzo0NToxOSAyMDEyICswMDAwCgogICAgYnVpbGQucGw6IEVsaW1pbmF0ZSBhIHRlbXBvcmFyeSB2YXJpYWJsZQoKY29tbWl0IDMwYTVkMDEzYTgwZTlmZDUwYjhmZDBmNzBmZmQ5NmZmMjZiNmU0NTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDIwOjI5OjA5IDIwMTIgKzAyMDAKCiAgICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KCmNvbW1pdCBmNDBkNDQwNjg5MDY3ZWY2YzRkYTdkZGFkZmIzNzNhNDUyMTk3ZmJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAyMiAxOTo0NzowNiAyMDEyICswMjAwCgogICAgd2luMzIvQ29uZmlndXJlOiBTdHJpcCB0cmFpbGluZyB3aGl0ZXNwYWNlCgpjb21taXQgZDM0ZTA1Nzc3OWNiMzJlOTQzMjQwODlkYzQ2MjU2MzgzMDljZmU4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMjIgMTg6MzY6NTkgMjAxMiArMDIwMAoKICAgIHdpbjMyL2J1aWxkLnBsOiBTdHJpcCB0cmFpbGluZyB3aGl0ZXNwYWNlCgpjb21taXQgMzBkYWVmMTg2MDM5N2YwNDVjNDA1NWNkNjFkNjYzZDI5MGRkNDdmMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTg6MzI6MzggMjAxMiArMDIwMAoKICAgIEZpeCBNU1lTIGtpbGwvcHNraWxsIGNvbmZ1c2lvbgoKY29tbWl0IDE0YmU5MTMyYjkxMTU4YjA1MTIwNzEwYjFmZjZhNGIyYWNjYzUzMWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE4OjEwOjQ0IDIwMTIgKzAyMDAKCiAgICBGaXggbmV0MC9uZXR4IGNvbmZ1c2lvbgoKY29tbWl0IDgxMDdhNjM1MmRmMjQ3ODY2MDk5NGVmMTAzZDUyODAxYTY2MDdjYzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE3OjAzOjQ3IDIwMTIgKzAyMDAKCiAgICBGaXggc3BlbGluZyBlcnJvcnMKCmNvbW1pdCBhYTU5MTJiODk4NmNkZTc0MDkwYmExNWJlMTk2NDI2MzA5YTFlMWYwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxNjo1ODo1MCAyMDEyICswMjAwCgogICAgSW1wbGVtZW50IHRoZSBtb2Rlcm4gSVAgdmVyc2lvbiBhZ25vc3RpYyB0YWJsZSBpbiBzbm1wbmV0c3RhdC4KICAgIElmIHRoZSBtb2Rlcm4gdGFibGUgaXMgbm90IGF2YWlsYWJsZSAob3IgdGhlIC1DTCBvcHRpb24gaXMgdXNlZCkKICAgIGZhbGwgYmFjayB0byB0aGUgbGVnYWN5IHRhYmxlcy4KCmNvbW1pdCAxYTM0ZDIyNDllZjBkMjIxNWU1ODg2ZjliM2M5N2VjZmE3ZWI1MTkwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxNjozOTo0MSAyMDEyICswMjAwCgogICAgUGljayB1cCBpZkRlc2NyIGZyb20gaWZYVGFibGUgd2hlbiBhdmFpbGFibGUsIGFuZCB1c2UgdGhhdCBhcyB0aGUgbmFtZS4KICAgIFZlcnkgdXNlZnVsIGlmIHBjaS11dGlscyB3ZXJlIGF2YWxhYmxlIHdoZW4gY29tcGlsaW5nIHRoZSBhZ2VudCBhcyB0aGUKICAgIG5hbWUgb3RoZXJ3aXNlIHdpbGwgYmUgdGhlIHZlcnkgb2JzY3VyZSBjaGlwIG5hbWUKCmNvbW1pdCBiNGNhZjU0M2NmZjdkYmE4ZjlhY2NhMmI5ZWE4OGM5Yjc5ZGMzOWVlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxNjozMjoxMiAyMDEyICswMjAwCgogICAgUGljayB1cCBIQyBvY3RldHMgYW5kIE1jYXN0T2N0ZXRzIGZyb20gL3Byb2MvbmV0L25ldHN0YXQgb2YgY3VycmVudCBSSEVMNgogICAgYW5kIEZlZG9yYSBrZXJuZWxzLgoKY29tbWl0IGM2NTVmY2U3ODQ1MzJhNTIzZjdkYjU4MmQwY2QwN2RlZTRhZDdhYzUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE2OjI1OjU5IDIwMTIgKzAyMDAKCiAgICBUcnkgdG8gYmV0dGVyIGNsYXNzaWZ5IExpbnV4IGtlcm5lbCB0aHJlYWRzIGFzIGhyU1dSdW5UeXBlPU9zCgpjb21taXQgZTFhOGM5NWNhNTVmNTY5NTg1Yzg4ZTE3NGE0M2Y2ZDQxMjljNDM5ZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMjAgMDk6NTk6NDEgMjAxMiArMDIwMAoKICAgIENvcnJlY3QgdGhlIG5lc3Rpbmcgb3JkZXIgb2YgdGhlIGRveHlnZW4gZW5kIHNlY3Rpb24gY29tbWVudCBhbmQgdGhlIGZlYXR1cmUgcmVtb3ZhbCBlbmRpZi4KCmNvbW1pdCBmNjdhZGYyYTM3YThjMTgyZWFjYmNmZTUyZDViNzg5MTkxYTY1OTI5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDE2OjMyOjQ3IDIwMTIgLTA3MDAKCiAgICByZW1vdmUgcmVsZWFzZSByZXF1aXJlbWVudHMKCmNvbW1pdCAzZTU0MzMwMzkzY2NjODY1MjVlZDZmYjlhMGZjMTljMDY4MzA2NjEwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZUByZWRoYXQuY29tPgpEYXRlOiAgIFR1ZSBPY3QgOSAwNjozNDoxMCAyMDEyIC0wNzAwCgogICAgZml4IGRvdWJsZS1uZWdhdGl2ZSB0eXBvCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnJjMyAtPiBWNS43LjIKCmNvbW1pdCA1MDU0YjU3MDYxOWRmMGE4MTk1OGEwNDViZWYxMzViMjAyMDVmMDM2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDE1OjI2OjA1IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIKCmNvbW1pdCA1NmE3OTdmZjNlNzFkYzg4NjQ2N2QxN2NlMDI1YjAyMzdjOGMxY2MzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDE0OjQyOjIzIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yCgpjb21taXQgMDgxM2Y4YjYyZGYwZTg0NDBmZmVmMTYxY2UxMzRmZjk0NTVlN2RlOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVAcmVkaGF0LmNvbT4KRGF0ZTogICBUdWUgT2N0IDkgMDY6MzM6NTggMjAxMiAtMDcwMAoKICAgIGZpeCBkb3VibGUtbmVnYXRpdmUgdHlwbwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBhNmE4ODkyNzUzNDY4NGUyNzVjY2YwZTc4MDUxMzA5NGE3M2ZjNmJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDA2OjMxOjIxIDIwMTIgLTA3MDAKCiAgICBBSVggbmV0LXNubXA1LjcuMSBoclNXUnVuUGF0aCBub3QgY29tcGxldGUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNThhNGQ4ODM5MDIxZjc3MmMzNWE3MzJiZDA5NmQxZTI5MGRjMGE2MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMDo1NyAyMDEyIC0wNzAwCgogICAgQUlYIG5ldC1zbm1wNS43LjEgaHJTV1J1blBhdGggbm90IGNvbXBsZXRlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDYyNmVhYmVjNGVhOThlNTM1OTA4OTc5MDg1ODQ3OWE1OWEyNmNkY2IKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDMwIDIzOjMwOjI4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNb3ZlIHRoZSBjaGVjayB0aGF0IHRoZSBwZHUgdmFyaWFibGUgaXMgbm9uLU5VTEwgdG8gYmVmb3JlIHRoZSBmaXJzdCBkZXJlZmVyZW5jZSBvZiBpdC4KCmNvbW1pdCA2OGFhYjU3MmMyZDI3NDZiNTFhOTVlYmExMTA1NjhjMzhiMDUwODA4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNSAxOTowNzo0MiAyMDEyIC0wNzAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTctcGF0Y2hlcwoKY29tbWl0IDBhNDE1MzNiMWI0OWYwMGQ3MzU3YTNkMmJlYTVkZmE3NWU4ZWRjZDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gU2VwIDI0IDAwOjA3OjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdCBjYXNlcyBmb3Igc25tcF9zZXJ2aWNlCgpjb21taXQgYTYxYjQ4ZDc4ZTExZDk0NWRlZjQ2ZmRlMGY3ZDU1Zjc5MTljMzM1YQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgMjMgMDc6NTM6MDkgMjAxMiArMDIwMAoKICAgIFByZWZlciBjb3B5X253b3JkX2NvbnN0IG92ZXIgY29weV9ud29yZChORVRTTk1QX1JFTU9WRV9DT05TVAoKY29tbWl0IDliZmZjNTQxM2QwZDg4MjM5OGIwNmY0MTA5YWM4MDdhZjJmNzgzNDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDIzIDAwOjI5OjQ0IDIwMTIgKzAyMDAKCiAgICBTaW1wbGlmeSBsb2dnaW5nIHRocm91Z2ggdGhlIHVzZSBvZiBuZXRzbm1wX2NvbmZpZ19lcnJvcgoKY29tbWl0IGQwOWQ1M2EwZmE2ZGY2M2IyMWU2ZjEyNzMxYmVlNTFhMzYyNGU4NWUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgU2VwIDIyIDIxOjMwOjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY3Jhc2ggb24gaW5jb21wbGV0ZSBjb25maWd1cmF0aW9uIHRva2Vucy4KCmNvbW1pdCAwMmRjZTZmNDNiOTlmODU5NDE2Mjc5MjhjMWE1MDIyZDY3MjVkMTI0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAyMToyODo1MSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IHRydW5jYXRlIHNpbmdsZSBkZWZhdWx0IHRyYW5zcG9ydCBkb21haW5zCgpjb21taXQgMjExZTNjNzA2MjU5NjU0NDFiMmEwMjlhNjExMzgwMjk3NDY3M2M0MwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBTZXAgMjIgMTE6MjM6MTkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBjcmFzaCBmcm9tIGVtcHR5IHZhbHVlcyBpbiAtLXRva2VuPXZhbHVlIGFyZ3VtZW50cwoKY29tbWl0IGFmM2QyZDk3M2IxZThlMjlkMjA1ZDhhMDdhY2Q4MmIxZjg1NDgxOWUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgU2VwIDIyIDEwOjMwOjE2IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgdGhlIHN5bWJvbCBORVRTTk1QX1BSSW8gdG8gaGVscCBpbiBwcmludGluZyBvaWQgdmFsdWVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnJjMiAtPiBWNS43LjIucmMzCgpjb21taXQgOGI0NTI5MjMwMWYwMzQ5ZmZiNjlkNGZkODU5NWYyZDViMTk5ZTZiNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MzU6MzkgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5yYzMKCmNvbW1pdCAwY2JmZmI1NjVlNjJhZWY5MzdmYzcwMGQ4ZDNjM2I4YzY1ZGRmYTY1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNSAxOTowNzo0MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzMKCmNvbW1pdCA0MDUwNTk3MWFkZDZhM2I2ZjU5NTRjZmJkZTUzMjc0OWJmYmNiMTZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzozNDozNyAyMDEyIC0wNzAwCgogICAgZml4IGZvciBoaWRkZW4gQ01TR194eHggbWFjcm9zIG9uIEFJWAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2MGYwYTllOTgzYWI4MjdjODI0ZTM5N2Q2MmFlZmY0OGE2MGYwMTMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzozMToxMiAyMDEyIC0wNzAwCgogICAgRml4IHBzdGF0IG1lbW9yeSBsZWFrIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDEzYmQ0ZDU2YmFhOTg4NjAxOGEwMDQ3N2UzMjE0ZWJlMDI3MDVmZmUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjMxOjA0IDIwMTIgLTA3MDAKCiAgICBGaXggcHN0YXQgbWVtb3J5IGxlYWsgb24gaHB1eCAxMWkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMDgwNTQyMDgxM2RlMTU2YzdmYzUxNDI1MzRmYjQyMGEwZmNjMzU3MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6Mjg6NTkgMjAxMiAtMDcwMAoKICAgIGZpeGVzIEFUIGNvZGUgb24gaHB1eCAxMWkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYmRiM2IxNDYzODBkYjEzMTZjYWJkNThiNzA0NDM2ZTdlZWNkZDlmNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6Mjg6NTAgMjAxMiAtMDcwMAoKICAgIGZpeGVzIEFUIGNvZGUgb24gaHB1eCAxMWkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTkzNmNmODEwYTQ3Mzc5MTU2ZDkxM2E3MTRlMzgxNjE4MWEwZDNkYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MjU6MjAgMjAxMiAtMDcwMAoKICAgIGZpeGVzIGRpc0F2YWlsIG9uIEZyZWVCU0QgdWZzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDYwOGFiNTc4ODdlNTU2NmU2MzUwOWEzZjdlNWQwYTNlMjg5MmY0YTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI1OjAyIDIwMTIgLTA3MDAKCiAgICBmaXhlcyBkaXNBdmFpbCBvbiBGcmVlQlNEIHVmcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5yYzEgLT4gVjUuNy4yLnJjMgoKY29tbWl0IDA3ZjkxNDU2NGUwOTcyMjRkNjc3NTE1YzJmNWZkMWYzYzBjOWViNDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgU2VwIDEgMDk6NTQ6NDIgMjAxMiAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCBhZWUyMTdjMDdlYTlmMzRhMzIyNjhlOTY2YzdlY2VmMDM2ZWM0YTk2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjU0OjM4IDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnJjMgoKY29tbWl0IDExOWIwZDNjZjEyYzk3Y2EzYzc0ZDZkMWU3MjMxOTY3MGE4Mzc4YWEKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgU2VwIDEgMDk6NTE6MDggMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1NjA0NzM6IGZyb20gZmVubmVyOiBIYW5kbGUgVGltZVRpY2tzIHdoZW4gcHJldHR5LXByaW50aW5nIE9JRAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBjOTRjNjJlYTBlZGNlYmJmYmI3M2ZhYjZlY2RkYzY3OWY3Njk0ZGFiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjUxOjA4IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTYwNDczOiBmcm9tIGZlbm5lcjogSGFuZGxlIFRpbWVUaWNrcyB3aGVuIHByZXR0eS1wcmludGluZyBPSUQKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNmQ3ZjllYjBkZWNkYjk2ODI4MzZmZmQwM2YxOTc0MjE5N2FkODdkYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMjkgMjE6MTQ6NDYgMjAxMiArMDIwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgb3ZlcnJ1biBpbiBmc3lzX2dldGZzc3RhdHMuYyAocGF0Y2ggMzU1OTQxNykKCmNvbW1pdCBmMjM1ZWU4YjMyZWVkMWRlM2YxZTQyMDJlZjQ1YjYzNzdmYmNlMTYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAyOSAyMTowNzoxNCAyMDEyICswMjAwCgogICAgRml4IGZvciBoclN0b3JhZ2VUYWJsZSBvbiBBSVggKGJ1ZyAzNTU3MTU5KQoKY29tbWl0IDc4Y2M5ZDVjY2Q4NmIxNzA2MjJhYWM1NDNjMzQ1YzAyMDc1NWM3OGEKQXV0aG9yOiBzdGhlbiA8c3RoZW4yMzkzNEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxODowOSAyMDEyIC0wNzAwCgogICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA0ZWY5ZGNkODBiMGJkYTFlMThiN2UzNDlhMDhiYzBmMjJhN2U3NTVlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNjozNyAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogT3BlbkJTRDogUEFUQ0ggMzU1OTQxNDogZnJvbSBuYmE6IHN1cHBvcnQgT3BlbkJTRCBmb3IgaHJfc3dpbnN0CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDBiNTY5ZmNjZWE5NDE0YzUwY2ZkNmIwZTgzZTE4MzFiYTEyOTFjZTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE3OjE0OjQ1IDIwMTIgLTA3MDAKCiAgICBhZGQgbWlzc2luZyBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgdW5kZXIgbmV0L29wZW4tYnNkCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDFkM2M3YmU3ZmE3YTM4ZmQzZmMzOTcyMGJiNWNiNzBmOGJkNzExNjAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE3OjE0OjIyIDIwMTIgLTA3MDAKCiAgICBhZGQgbWlzc2luZyBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgdW5kZXIgbmV0L29wZW4tYnNkCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGZmNDM4NDMzYWNhMDk2YmJiZWEyOWRkMzBkZmQ1YzU1MjM3NjFhNzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE2OjUwOjQ2IDIwMTIgLTA3MDAKCiAgICBGaXggcmVhbCBtZW1vcnkgcmVwb3J0aW5nIG9uIEJTRCBzeXN0ZW1zCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGM0MjlhNGYzOTg0ZGFlNzkxZTMwN2RmNzAyMjUxZjk2ZWYwNDdkODgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE2OjQ5OjEwIDIwMTIgLTA3MDAKCiAgICBGaXggcmVhbCBtZW1vcnkgcmVwb3J0aW5nIG9uIEJTRCBzeXN0ZW1zCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDQxZDk4MGMwMTU1NjRkYjdmMjJmNzYzMTkwZjYxYWMwZDU2YmEzYjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDI0IDE0OjM1OjUzIDIwMTIgKzAwMDAKCiAgICBXaW5kb3dzOiBVbmJyZWFrIERMTCBidWlsZAoKY29tbWl0IDI3OTM5MjNiZmUyYjAyNmZjYWVhZjUzOGFlNTAzZjEwNWNiMzE1YmMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDMgMjI6MjY6MjAgMjAxMSArMDAwMAoKICAgIGFkZGVkIG1pc3NpbmcgVExTVENQIG1lbnRpb24gaW4gdGhlIGhlbHAgb3V0cHV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucHJlMyAtPiBWNS43LjIucmMxCgpjb21taXQgOWVjNWM1OTk3ODAyNTFkY2QzMTU1ZjlhYzk4MDZlY2U3ZWQ2YmEyMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBdWcgMTEgMTI6MDA6MzcgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5yYzEKCmNvbW1pdCAzMzU4YjY1YjExZTJjMGVlNzEyZjYwOWYwMjA3MTI2MGY3NWY5YmIzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEF1ZyAxMSAxMTozOTozOCAyMDEyIC0wNzAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTctcGF0Y2hlcwoKY29tbWl0IDQ4NDlhNDMwZGFhZmI5MWM3YTYxYmZiYmMxN2Y5Mjk5ZTU4ZmNmNjQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXVnIDExIDExOjM5OjM1IDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnJjMQoKY29tbWl0IDFiYzI2ODQyOGU4Mjk4NTJjOWVmMGE3OTU1MmNhNDA0NWFkZDI4YTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMjI6NDI6NTIgMjAxMiArMDIwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGluaXRpYWxpemVkIGt2bSBzdHJ1Y3R1cmUgd2hlbiBxdWVyeWluZyBwcm9jIHRhYmxlIG9uIEJTRC4KCmNvbW1pdCA3ZTY3YzUwMzhiNmFhYmZkYTE5MzllYTgxZDk0MGIyNDAwMGNmYjUxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxNDoyNzowOCAyMDEyICswMjAwCgogICAgUmVtb3ZlZCBlcnJvciBtZXNzYWdlIHdoZW4gZmlsZSBjYW5ub3QgYmUgb3BlbmVkLgogICAgCiAgICBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IGNhbGxlciwgbm90IGluIHRoZSBmdW5jdGlvbi4gVGhlcmUgaXMgb25seSBvbmUgY2FsbGVyIG5vdywgdWRwX2VuZHBvaW50X2xpbnV4LmMuCgpjb21taXQgNTliMGRlMGI4ZmE3M2ViNDAzMDA2Y2VlNzVmZjg2NTFlMTU4NWUyOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTQ6MjM6MTQgMjAxMiArMDIwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvcnMgaW50cm9kdWNlZCBieSBjb21taXQgZjk1ZGY2MzQxYjFkMDYyNDk0NDNlNTE2YjU5YTQzY2RmYTNkNDc3Ny4KICAgIAogICAgVGhpcyBpcyBlbWJhcmFzc2luZywgSSBjb21waWxlZCB0aGUgc291cmNlcyB3aXRob3V0IC0tZW5hYmxlLWlwdjYuIFNvcnJ5IGZvciBpbmNvbnZlbmllbmNlLgoKY29tbWl0IDVkN2VkYWRkNDc2MTY4MGI2NmQxZGYzYmZkZTdjYTViMTZjYTVhMTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDEyOjQ2OjM1IDIwMTIgKzAyMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgaW50cm9kdWNlZCBieSBjb21taXQgZjk1ZGY2MzQxYjFkMDYyNDk0NDNlNTE2YjU5YTQzY2RmYTNkNDc3Ny4KCmNvbW1pdCA0M2M5N2JiYWFmMjExZjRjN2Y3YzcwNGNmY2I5MDFkZmJmODM0ODc0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMjozMDowOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ0Vycm9yIGV4cGFuZGluZyBYWFggdG8gNjRiaXRzJyBtZXNzYWdlcy4KCmNvbW1pdCA4ZTVjZjJhNzJhNDZjZDQ4M2QyMmU2MjkwYTZjOGM0YzI2YWY2YWQyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMjoyNTo0OCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogcmVtb3ZlZCBjb3VudGVyLTY0IGVycm9yIG1lc3NhZ2VzLgogICAgCiAgICBUaGVzZSBtZXNzYWdlcyBkbyBub3Qgc2F5IGVueXRoaW5nIHVzZWZ1bCwgY2FsbGVyIHNob3VsZCBjaGVjayB0aGVpciByZXR1cm4gdmFsdWUgYW5kIHJlcG9ydCBpdC4KCmNvbW1pdCBmOTVkZjYzNDFiMWQwNjI0OTQ0M2U1MTZiNTlhNDNjZGZhM2Q0Nzc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMjowMToyNSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHJlbW92ZWQgZXJyb3IgbG9nIG1lc3NhZ2VzIHdoZW4gSVB2NiBpcyBkaXNhYmxlZC4KCmNvbW1pdCAxOGRhY2U4ZTRhMzZiMDgzZDZlZjcxNzczNWM2M2U3ZjQwMjI0ZGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMDo0MTo0NSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogYWRkZWQgQ1ZGUyAoQ2VudHJhVmlzaW9uIEZpbGUgU3lzdGVtKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlLgoKY29tbWl0IDkwZjQzMWI0NWQyMTUwNjQyN2JjMGJkMWQ0ZWU2OWUwYjhlYTMwYmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjM6MTA6NTAgMjAxMiArMDIwMAoKICAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQiB2ZXJzaW9ucwoKY29tbWl0IDllN2EwYjllNTgwZDNiMWVhNjE5OGE3NDE0YzgxNmMyM2IxMjNiMTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjI6Mjc6MTYgMjAxMiArMDIwMAoKICAgIFVzZSBhIHdya2luZyBhd2sgZm9yIFNvbGFyaXMKCmNvbW1pdCAwZTM5MjJhZTIxZTRiN2VjNTM4ODY3YWZkMjJjZTc0ZDc0MWUwZjFjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIyOjE3OjM0IDIwMTIgKzAyMDAKCiAgICBmaXggcHJvdG90eXBlIGZvciBrbG9va3VwCgpjb21taXQgYTIyMTA5NzExYTZkMWVjMTRiNmEzZjFjYWMyMjFkNzAyNjNmMTA0YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjowODoxMyAyMDEyICswMjAwCgogICAgZml4IHByb3RvdHlwZXMgZm9yIGtsb29rdXAKCmNvbW1pdCBhYzA2Mjk3MmM1ODUxNzRmOTVkN2JhODdhYTVlYzU0YzQyZmRlYzU1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIyOjAwOjI2IDIwMTIgKzAyMDAKCiAgICBmaXggcHJvdG90eXBlcyBmb3Iga2xvb2t1cAoKY29tbWl0IDdjZGQ4ZWJlZjk1MDdmZTc2NjEwN2NhOWZlZTA1NGM0NGNjMGJhYzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDUgMDg6MTM6NTkgMjAxMiArMDAwMAoKICAgIE1ha2Ugc25tcF9hbGFybV9yZXNldCgpIHVzZSB0aGUgbW9ub3RvbmljIGNsb2NrLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCAzN2JhN2UyLgoKY29tbWl0IDAyM2Y2MWVhNzgzYmZjYzUzZmU5MGFhNjY1NDVjNWFlYTJkYjgwNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDggMTY6MjY6NTQgMjAxMiArMDAwMAoKICAgIEZpeCBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgY29tbWl0IDAyODYxNGVjZjJkNjczOTg2OTlkYzNiZDc4NDAyOWYzMzYwZjJlMTMKCmNvbW1pdCBjZDgyMDk0OWExNDkxYWYxMDNhODU1NWY2YmRhZTA0ODUxZjNkMjg1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyA4IDE2OjE2OjQzIDIwMTIgKzAwMDAKCiAgICBVbmRvIGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBjb21taXQgMzdiYTdlMjBhNTIxZmJmMDQ1OGEwYzc3ZWVhMmU1ZTM2YmQ3ZWMwYQoKY29tbWl0IGYxNDMwMDhjY2M1N2VhMTBjYmI4OGFiMzU1NDgyMmIxN2I2MjcwYWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDUgMDg6NDU6NDIgMjAxMiArMDAwMAoKICAgIE1ha2UgZ2V0X2V4ZWNfb3V0cHV0KCkgd29yayBvbiBiaWcgZW5kaWFuIHN5c3RlbXMuCiAgICAKICAgIFVuZG8gQVBJIGJyZWFrYWdlIGludHJvZHVjZWQgYnkgY29tbWl0IDczNzRiODRmZTRjMmVmODQ5N2ZkZTNkYWU4MGE2OWFhODllYmExOWMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucHJlMiAtPiBWNS43LjIucHJlMwoKY29tbWl0IDg0MzIyZTBkYzJhODk3NDY0NjU0MmQ5ODgxYmMwMWI0M2RjM2ExMmQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDE2OjI0OjA3IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMwoKY29tbWl0IDhmZWM3YTgxZDYxMzNhNWYwNWVkMzRhNWFmOTgwNmFmNWQxMjgyMjMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDE1OjU3OjU2IDIwMTIgLTA3MDAKCiAgICBmaXggdGhlIGFzc2VydCBjaGVjayB0byBhbGxvdyBmb3Igc29tZSBrbm93biBhc3NlcnRzCgpjb21taXQgZGZkZTZkMmRkZDUxOWM4YzJhZTE3ODg3NzRmZGY5MGQ4YmVhMDJiMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MDg6MjQgMjAxMiAtMDcwMAoKICAgIGluY2x1ZGUgZXJybm8uaCBhbmQgZG9uJ3QgdXNlIGNvbnRpbnVlIG91dHNpZGUgYSBsb29wCgpjb21taXQgN2NmZmUwMjIyY2Q5OGEyMWUzMGY0NGMzZGY5ZjBkOTBiZjA5NmZlOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTQ6MTM6NTAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMwoKY29tbWl0IDIyYWY3ZmQ0Njc3NmE4ZGIyMzYyZTg4YWNiMWI2OWIxNjVjMDM0YjYKQXV0aG9yOiBibGVudHogPGJsZW50ekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzo1Mjo0MCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWl4OiBQQVRDSCAzNDAzNDMzOiBmcm9tIGJsZW50ejogSXNzdWVzIHdpdGggaHJTV1J1bk5hbWUgYW5kIFBhcmFtZXRlcnMgb24gQUlYCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDUxNmI5ZjgyNzViOGRiMDNjZGM0MTA3OGU2NWMyMTcwMzA5YTNmOGIKQXV0aG9yOiBKdWxpZW4gUGlub24gPGpwaW5vbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzoyNTozMSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogcGVybDogUEFUQ0ggMzQxMjkzOTogZnJvbSBqcGlub246IFJlcGFpciB0a21pYgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA4ZjIzMGY0MDFjNjRkODIyODgzYWM0NDQ2MjRhMmMyZmQ3MTI4ZDhlCkF1dGhvcjogSGFyc2hhIFNoaXZhbm5hIDxuYWFudWhzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEzOjIyOjExIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTUyNzQ1OiBmcm9tIG5hYW51aHM6IGZpeCB0byBzdXBwb3J0IDMyIGNoYXJzIGZvciBWQUNNIG5hbWVzIGFzIHBlciBSRkMtMjU3NQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAzNDAwOGQzMmFlZjQzZDhiYmUxMDAwZmI5YmY5NDY0MmMwNTE0ZjZmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzoyMDozMSAyMDEyIC0wNzAwCgogICAgZml4IHRoZSBhZ2VudHggcGluZyBwYXRjaCBzbyBpdCB3b3JrcyB3aXRoIHRoZSBuZXdlciBhbGFybSBzdHJ1Y3R1cmUgbmFtZXMKCmNvbW1pdCA5NjI2NzYzOTRkM2ZlNTU3ZWFkOTEwNTdiNGQ3ODAyMjZkYzBkNmIzCkF1dGhvcjogTWlqbyBTYWZyYWRpbiA8bWlqb3NAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTI6NDg6MDEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDE0MDUxOiBmcm9tIG1pam9zOiBzbm1wLWJyaWRnZS1taWI6IGZpeCBmb3IgZG90MWRCYXNlVGFibGUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMzdiYTdlMjBhNTIxZmJmMDQ1OGEwYzc3ZWVhMmU1ZTM2YmQ3ZWMwYQpBdXRob3I6IFZpbmNlbnQgQmVybmF0IDx2YmVybmF0QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEyOjI3OjI4IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQ4MTY4NjogZnJvbSB2YmVybmF0OiBEb250IHBpbmcgbWFzdGVyIGFnZW50IHVubGVzcyB0aGVyZSBpcyBubyBpbmNvbWluZyB0cmFmZmljCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDJiZTVmZWFkYjA1NDA4NDZlMGUzYWRhMjdlZmI5Nzg5NGE0Y2JkNTIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDA3OjI5OjE3IDIwMTIgLTA3MDAKCiAgICBhZGRlZCBhIGRhcndpbiAxMiB2ZXJzaW9uCgpjb21taXQgMWY5YmNkMjFlN2MyZDVlZmZiNjJhYTAxYjdiODdlNDNkYzg2MjE0YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDE0OjQzOjI3IDIwMTIgKzAyMDAKCiAgICBGaXhlZCBTQ1RQLU1JQjo6c2N0cEFzc29jUHJpbVByb2Nlc3MsIHRoZSBsaXN0IG9mIHByb2Nlc3NlcyB3YXMgbm90IGluaXRpYWxpemVkLgoKY29tbWl0IDQ4YmU1ZTg5YWEwNGFkYjBkZjdlMDk0YjJmZTQ2MzAxNTQyOWZjOTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzo0ODozMSAyMDEyICswMjAwCgogICAgQWRkZWQgbG9nIG1lc3NhZ2Ugd2hlbiBpcFRhYmxlIG1pc3NlcyBzb21lIGludGVyZmFjZXMuCgpjb21taXQgNzUyM2YwZjAxYmE0ZGI2NWFjMTY0N2EyMzIyOGNmMDZjMGI3MmEwMwpBdXRob3I6IE1hcml1c3ogQ2VpZXIgPG1jZWllckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAxMDoxOTozMyAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzUzNjY5MjogZnJvbSBtY2VpZXI6IGNyZWF0ZSBhIHVuaXQgdGVzdCBmb3IgcmVhZF9jb25maWcgQVBJcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBjMDdiOGQ5YjM3NzBiNjE1YzhlMTYyZGJkZjc2NDM4MDVmMzcyZDc1CkF1dGhvcjogTWFyaXVzeiBDZWllciA8bWNlaWVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDEwOjE4OjQyIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTM2NjkyOiBmcm9tIG1jZWllcjogRml4IGZvciBjYWxsYmFjayBjYWxsaW5nIHdoZW4gdW5yZWdpc3RlcmluZyBjb25maWcgaGFuZGxlcgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA1YzI0MjRmMDdkODVjMGM0Zjc5ZDZjNWZhZjY0ZDdmM2VlODYxNzI2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAxMDowODo0MiAyMDEyIC0wNzAwCgogICAgZG9uJ3QgZHVwbGljYXRlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgZGVmCgpjb21taXQgNzM3NGI4NGZlNGMyZWY4NDk3ZmRlM2RhZTgwYTY5YWE4OWViYTE5YwpBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAwOTo0MToxNyAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM4Mzk3MDogZnJvbSB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGUgZXJyb3Igb24gRnJlZUJTRCA5LngvUE9TSVhpZnkgYXV0b19ubGlzdCwgZXRjCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDY3MGQ5NmU3ODY1OTBmZGQzMGExNmEzMzAwYzBlZDViZDZlNTMyMTQKQXV0aG9yOiBNYXJrIFJ1c2sgPHVzZXJfaWQ9MzQ5ODk1QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjM5OjIyIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQyNDkzMzogZnJvbSB1c2VyX2lkPTM0OTg5NTogVXNlIE5FVFNOTVBfRFNfQUdFTlRfQUdFTlRYX1RJTUVPVVQgZm9yIHRoZSBkZWZhdWx0IHRpbWVvdXQKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZjFlYWVjMTVlZjYwM2I4Y2U1NDI5MzJmZmRiZDg3ODhjM2QxYWNjNQpBdXRob3I6IERhbmllbCBIb2JpIDxob2JpZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMzoyODowMSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM1MzA3OTQ6IGZyb20gaG9iaWQ6IHBhc3MvcGFzc19wZXJzaXN0OiB1bnJlZ2lzdGVyIE1JQiB3aXRoIGNvcnJlY3QgcHJpb3JpdHkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZDc4M2FkOTkwZTkxNGMwZWUxYzk4ZDBhOTNhNDI5ZWIyYjJmNDk5NwpBdXRob3I6IERvdWcgTWFubGV5IDx0ZWtrYW1hbmVuZGxlc3NAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjM6MjU6NDAgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1MjY1OTk6IGZyb20gdGVra2FtYW5lbmRsZXNzOiBBIGJ1Z2d5IFNOTVB2MyBhZ2VudCBjYW4gY2F1c2UgYSBuZXQtc25tcCBjbGllbnQgdG8gaGFuZwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlOTg1MTUyMGMxOGQ3ZWQxNzI0MDRhMzdkYzBkYzdhMTM2YmZhZWRkCkF1dGhvcjogRGFuaWVsIEV2ZXJzIDxkYW5pZWwtZXZlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjM6MTQ6MTkgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1NDgyNTc6IGZyb20gZGFuaWVsLWV2ZXJzOiBmaXggZm9yIHJlY3Vyc2l2ZSBwdGhyZWFkIG11dGV4ZXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTdhMzc2NzhjMmI3MzU5YWZkNDRhMzA3ZTgyNGMxZjdkN2EwYzg3ZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjE6MzU6MzUgMjAxMiAtMDcwMAoKICAgIE5FV1M6IG9zeDogcGF0Y2g6IDM1MTQwNDkgZnJvbSB0d29iaXRzLWdpdGh1YjogZml4IGNvbXBpbGF0aW9uIG9uIGRhcndpbjExCgpjb21taXQgMTIyMTQyNmFiYWQxNWI5YjJmY2VlOGYxZTMyYWI1MmVmMjY5Mjk1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDE0OjE4OjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBQQVRDSEVTOiAzNTI5NTQxOiBEb24ndCByZWZlciB0byBpbnRlcm5hbCAnbXknIHZhcmlhYmxlcyBmcm9tIGV4dGVybmFsIHNjcmlwdHMKICAgIAogICAgRml4IHByb3ZpZGVkIGJ5IExlenogR2lsZXMKCmNvbW1pdCA5YzA2YzIyMDJkYzA1NjcwM2M4MDk1OWEwZWNhOWE3MTY4NGMyOGRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTM6Mjk6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSEVTOiAzNTM2NDIwOiBFbnN1cmUgc25kL3JjdiBtZW1vcnkgYnVmZmVycyBhcmUgc3VpdGFibHkgYWxpZ25lZAogICAgCiAgICBQYXRjaCBwcm92aWRlZCBieSBUeWxlciBPbG1zdGVhZAoKY29tbWl0IDg5YjgyYzU1ZjllZmQyZThhYjhjNmQ2NWZhNTY3YzViMWZhYzE4NDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMzoxNDowNyAyMDEyICswMTAwCgogICAgIklkbGUiIHByb2Nlc3NlcyAoaS5lLiBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBjcmVhdGVkKSBhcmUgcHJvYmFibHkKICAgIGJlc3QgcmVnYXJkZWQgYXMgIndhaXRpbmcgZm9yIGFuIGV2ZW50IiB0byBiZWNvbWUgcnVubmFibGUgLSBpLmUuICdub3RSdW5uYWJsZSgzKScKICAgIFRoYXQgZXZlbnQgYmVpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGNyZWF0aW9uIHByb2Nlc3MuCiAgICAgICBJdCdzIGFyZ3VhYmxlIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIHN0cmljdGx5ICJsb2FkZWQiLCBidXQKICAgIHRoaXMgZmVlbHMgbGVzcyBtaXNsZWFkaW5nIHRoYW4gcmVwb3J0aW5nIHRoZW0gYXMgJ2ludmFsaWQoNCknCgpjb21taXQgNmU3ODBhNWJmMGQ2NGJmNDdkZmJmNDc5YWU3ZjU2YzEwZmY4MTY2ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEyOjU3OjU0IDIwMTIgKzAxMDAKCiAgICBDbGFyaWZ5IG1lYW5pbmcgb2YgaHJTV1J1blN0YXR1cyAnaW52YWxpZCg0KScKICAgIEVuc3VyZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYWx0ZXJuYXRpdmVzIGRvbid0IGNvbmZ1c2UgY29kZSBzeW50YXgKCmNvbW1pdCA5OWIzNTNmNzI1M2E1YmIzOGI4NmYzMWMyNzA4ZTE2YjM0YTQ2Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTI6NTA6NTEgMjAxMiArMDEwMAoKICAgIEFkZGl0aW9uYWwgcGF0Y2ggZnJvbSBQYXRjaCBJRCAjMzU0MzAwMAoKY29tbWl0IGQwZTAzZmU0YTIzNjk0NWRhZjQyYWY3YTQ3MDk0ZTY4NmY5YmRiOWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMjo0MTowMiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM1NDMwMDA6IFZhcmlvdXMgZml4ZXMgdG8gUm1vbiBjb2RlCiAgICBTdXBwbGllZCBieSBQYXRyaWNrIFJpdHRlcgoKY29tbWl0IDY2MzJhMmI5YjlmYWQxYTBiMGQ2YmFlZGYyYTJiMzkxZjVkNGU5MTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxNDozOTo0MiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogQlVHOiAzNTE3MDMwOiBFbnN1cmUgbGFyZ2UgdGFibGVzIGFyZSB3YWxrZWQgcHJvcGVybHkKCmNvbW1pdCBiOGQxNjYwNGRiYjJmODBlYmUyODUyMzIyYWE4MzM2MWEwMzIzNzk2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTQ6MTk6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFwcHM6IEJVRzogMzUyOTc2ODogQmUgbW9yZSBjYXJlZnVsIHdoZW4gc3RyaXBwaW5nIG9mZiBudW1lcmljIHN1ZmZpeGVzCgpjb21taXQgMGIzYWQ0NGVjNGMxYjlmNDFkYzNlZjcwZTZhMzhhNTNlZjI2OGFkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEzOjM0OjEwIDIwMTIgKzAxMDAKCiAgICBGaXggY29tbWVudHMgZGVzY3JpYmluZyBGcmVlQlNEIHJlbGF0aW9uc2hpcHMKCmNvbW1pdCA4Y2Y3YTg5MTg3YTk5NmZhZmYwNDA0MTQ5ODZmZmE1ZDc4ZDU2ODNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTM6MjE6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDM1MzIyMzQ6IEZpeCB0eXBvIGluIGxpYnRvb2wgc2NyaXB0CiAgICAoYWRkcmVzc2VkIHByb3Blcmx5IGluIGxpYnRvb2wgMi40LjIpCgpjb21taXQgNDI1OGQ4NTJjYTdiNmFlYWU5M2FkNzMwNjRkNDNhYTgwN2ViNjEwNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEzOjE2OjIwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBkb2M6IEJVRzogMzUzNTI2OTogRG9jdW1lbnQgdXNlIG9mIFtzbm1wXSBmb3IgY2xpZW50LXNpZGUgdG9vbHMuCgpjb21taXQgMjZlZDQwY2JkMDdjZjI3MWE5Y2ZjNDUxN2Q5NjQ3NzQ3MTJhZDc3YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEyOjU3OjU2IDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGxvY2FsIHJvbGx1cCBvZiBwYXRjaGVzIHdpdGhvdXQgZmlyc3Qgc3luY2hyb25pc2luZyB3aXRoIGV4dGVuYWwgcmVwby4KCmNvbW1pdCA5MDRjNDQyZDYwYzViOTlhYWNkN2Y2MDMwN2MyODY4NGVmYWU4NTRjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTI6NTM6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAzNTM1OTY3OiBGaXggbWVtb3J5IGxlYWsgLSBzbm1wX3tzZXNzX31lcnJvciBhbGxvY2F0ZXMgdGhlIG91dHB1dCBidWZmZXIKCmNvbW1pdCA1OTdlY2RhNjhlZTJiNTgwYjY2NjI4ODk3N2IwNGFhMTMzMjA3NTE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTI6MTc6MTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzU0MDYyMTogZGlzdDogQWRkIG1pc3NpbmcgUHJvdmlkZXM6IHRvIG5ldC1zbm1wLXBlcmxtb2RzIFJQTSBzcGVjCgpjb21taXQgNDNkNWJhMjI0YzNmMjlmZDhlN2ZkMWQwNjBhMTcwNDVhYWQ3ZWZmMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDExOjI1OjQzIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDM1NDEwMTI6IEZpeCBoYW5kbGluZyBvZiBnZXR0YWJsZSBjb2x1bW5zCgpjb21taXQgYmMyOTNhY2FkOGQzNDg3Y2RkZWYzYzcwY2VhNzQzNjhmMzRkOTM1NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDExOjIwOjIwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNTQzODY0OiBSZW1vdmUgZXh0cmFuZW91cyBmdW5jdGlvbiB0eXBlCiAgICAoYW5kIGZpeCBhIHJlbGF0ZWQgdHlwbykKCmNvbW1pdCAwMjg2MTRlY2YyZDY3Mzk4Njk5ZGMzYmQ3ODQwMjlmMzM2MGYyZTEzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMjQgMTU6Mzc6MTYgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBzbm1wZCBleGl0aW5nIHNob3J0bHkgYWZ0ZXIgc3RhcnQgZHVlIHRvIGluY29taW5nIHNpZ25hbC4KCmNvbW1pdCA0ZDM4ODk1ZjQ1OWExZGYyNGY2OGM0YTYwZTRjYWY2YTc3OGQ4YzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjcgMDk6MzU6NDQgMjAxMiAtMDQwMAoKICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGxpbWl0IG9mICdleGVjJyBhbmQgJ3NoJyBlbnRyaWVzIGluIHNubXBkLmNvbmYKICAgIAogICAgVXNlIGR5bmFtaWMgKHJlKWFsbG9jYXRpb24gaW5zdGVhZC4KCmNvbW1pdCBkY2VlYWNjOTk4ZmUyMzIyODgyZTdlZWRlYzBhNzFhNzlkYzQ5NGFiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBKdWwgMjQgMDk6MDA6MjMgMjAxMiArMDEwMAoKICAgIERvbid0IGJlIHN1cnByaXNlZCBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcyB0byB2YXJpb3VzIGZpbGVzCgpjb21taXQgNTZjM2MwNzgzMzZjYmYxYmYwOWZkMWIwMTA3OGE5MDMwNzE3NjEzZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKdWwgMTEgMDg6NDc6MTMgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjMwNzogQ29ycmVjdCBzeXNPUklEIGZvciBzbm1wTVBEU3RhdHMuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCgpjb21taXQgNjFlY2VkYzA4M2Y4ODFkYjhhOWE1MGQ1MGJkZWVkMzY2MjRlZDMwNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKdWwgMTEgMDA6MjE6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjE4ODogQ29ycmVjdCBzeXNPUkRlc2NyIGZvciBzbm1wVXNtTUlCLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgoKY29tbWl0IDJmOWVkZTQxOWY0MGU4NDhhMjQyNTM4OTI4OGNhYzBlMjMzMWI5OTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAxOSAxNzoxMDo1MiAyMDEyICswMTAwCgogICAgRml4IGV4YW1wbGUgJ3JzeW5jJyBjb21tYW5kIGZvciBmdWxsIHJlbGVhc2VzCgpjb21taXQgNmRkNzg4NGQ5OWU3NTZlMmYyMmI2ODg4MjNjZTFiMWQ1MjZhZDE2NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDE1OjU5OjU5IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIKCmNvbW1pdCA5NzY2OTZhMTI4ZTU3YjUxMmJmN2FkNDAwZDAwMjM2OGI0YTlhODcxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTQ6MzQ6MzEgMjAxMiArMDEwMAoKICAgIFY1LTYtcGF0Y2hlcyBvdXQgb2YgUmVsZWFzZSBDYW5kaWRhdGUKCmNvbW1pdCA1N2M1NjhkM2QzOTgxNzJjNTU0MWZiMzFiYjc1ZDE4ZmNjZTJlMjZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTQ6MzQ6MTUgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIKCmNvbW1pdCA3M2Q5MDZiYzdjOTg1MDZmYTJiNGQ2ZDI5MGY3YjNiZWJhMmU0YTBkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTE6MTI6NTggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMgoKY29tbWl0IDQyYjVhZmIzY2Q2ZDA2YWRiNDI2ZjFkYmFhOTgzNThmMmIyZThhNTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxMDo0Njo0NyAyMDEyICswMTAwCgogICAgVjUtNS1wYXRjaGVzIG91dCBvZiBSZWxlYXNlIENhbmRpZGF0ZQoKY29tbWl0IDhiZDQ0MGM0M2UzNjVhMGI3N2Q0N2Y1ODJjYWRlOWY5N2M3YmZjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxMDo0NjoyOCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMgoKY29tbWl0IDZlMDg1NWEzMTU3MTk4NDk5NDExYWM1MmI0NmQ1ZjMyYWFkNWI5ZmEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAwOTo1MTozMiAyMDEyICswMTAwCgogICAgQWRkIG1pc3NpbmcgcmV0dXJuIHR5cGUgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb24KCmNvbW1pdCAwN2Q4MjVlOGJiMzVlZWE5YWM2YjFjYjgyY2JiMjM0ZmU2NmIxYWI2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMDk6NTE6MzIgMjAxMiArMDEwMAoKICAgIEFkZCBtaXNzaW5nIHJldHVybiB0eXBlIGluIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgpjb21taXQgNWRiNzAwMzZlZjY3NTYzNTY0N2U1YjdjNzI1MzQ1NjgzODgzNjY0NwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTQ6NTU6MzggMjAxMiAtMDcwMAoKICAgIGRvbid0IHVzZSAtLXJlYmFzZQoKY29tbWl0IGQ0YzE1NDk1OTNjZTJjMmNhZWI5OGU1ZjhhYmZkN2E1YWU1YTAyNzMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyNyAwOTozNTo0NCAyMDEyIC0wNDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHJlbW92ZWQgbGltaXQgb2YgJ2V4ZWMnIGFuZCAnc2gnIGVudHJpZXMgaW4gc25tcGQuY29uZgogICAgCiAgICBVc2UgZHluYW1pYyAocmUpYWxsb2NhdGlvbiBpbnN0ZWFkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnByZTEgLT4gVjUuNy4yLnByZTIKCmNvbW1pdCBmZmNlNDlmYjFhYjRhNzhkNGYyOTQ3YmUwNmQ2MjBmMTQyNDUyOGZkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNzoxMjozMSAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUyCgpjb21taXQgYmQ3YzcyOTcxODc4MThlNWVlZjczMjc2NjdlNGE4MWY2YzlmYzg5YgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTQ6NTU6MzggMjAxMiAtMDcwMAoKICAgIGRvbid0IHVzZSAtLXJlYmFzZQoKY29tbWl0IGE3MTUzMTJlMmNlNDlkNGRhOTNmYzE0MGNjMzlmYzEwMGIwYjc5NzgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE1OjQ3OjIyIDIwMTIgLTA3MDAKCiAgICB1cGRhdGVkIGZvciB0aGUgcHJldmlvdXMgNS43LjIucHJlMSByZWxlYXNlCgpjb21taXQgMTcyNzc2ODliNjI5ZjQ1ODZkNWQ3MTRkODdjZTZiYzExZjg4NzY2OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTQ6NTU6MzggMjAxMiAtMDcwMAoKICAgIGRvbid0IHVzZSAtLXJlYmFzZQoKY29tbWl0IDY3ODZmZmM3NmZhY2Y3NDZhZmI2YWYyNTE1OGY3OTQwNjU2YWIzOWMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDA4OjQ3OjEzIDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIzMDc6IENvcnJlY3Qgc3lzT1JJRCBmb3Igc25tcE1QRFN0YXRzLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgoKY29tbWl0IGYwZTM1ZDYxZjkyNThkYzYwOGRhOWJmNzE4YWYxNDU3YTg1OWZhMTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDAwOjIxOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIxODg6IENvcnJlY3Qgc3lzT1JEZXNjciBmb3Igc25tcFVzbU1JQi4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCA1MjA2ZDI1ZDRjYjk0ZDRiMGRkMzMxYTVhNDExM2Q0ZDg3NzgyYzQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyIDEyOjE0OjM5IDIwMTIgLTA3MDAKCiAgICBiZXR0ZXIgZGVzY3JpcHRpb24gb2YgLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgZjkyODUzMjgxNDc3ZWU3MjRhNTFhOTk2N2YzN2QzZjFkZDFiMGY3ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMiAxMjowOTo1MCAyMDEyIC0wNzAwCgogICAgcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBjYXVzaW5nIGEgcHJvYmxlbQoKY29tbWl0IDViZTI3MzY4NzUxNjkxZmMxYWI1NWZlNjJiNDEwNmQ4ZDk5Yjg3MDQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIgMTI6MDY6NTggMjAxMiAtMDcwMAoKICAgIGFmdGVyIHB1bGxpbmcgYWxsIHRoZSBicmFuY2hlcywgc3dpdGNoIGJhY2sgdG8gdGhlIGluaXRpYWwgb25lCgpjb21taXQgODI1OTZhNjlmNWNlNTNkNWE2ZjBhZjQyMTVjOThkNjE4NGRhYjRkNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjA0OjUwIDIwMTIgKzAxMDAKCiAgICBVbnBpY2sgbWVyZ2UgY29uZmxpY3QuCiAgICAoTm90IHN1cmUgd2h5IHRoaXMgd2Fzbid0IGZsYWdnZWQgdXAgZWFybGllciAtIG9yIG1heWJlIEkganVzdCBtaXNzZWQgaXQhKQogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjA1YmQ3OGY5ZjIzNGJiNTdhMDBiNTRjNWJmYjFkZTMyYTA5ZjRhNCkKCmNvbW1pdCA2YTA3NWFlNDk0Yzc2YjgyZWVhOTYzMjdjZjUyNDJkZjA0ODc0M2RiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MjE6MDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzMKCmNvbW1pdCBhMzdlN2UwMjk0NTE0N2JmZTZjYWRiOTU3MTcwNmM2YjJlYzc0M2JmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MTc6NDIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzMKCmNvbW1pdCBiMDViZDc4ZjlmMjM0YmI1N2EwMGI1NGM1YmZiMWRlMzJhMDlmNGE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MDQ6NTAgMjAxMiArMDEwMAoKICAgIFVucGljayBtZXJnZSBjb25mbGljdC4KICAgIChOb3Qgc3VyZSB3aHkgdGhpcyB3YXNuJ3QgZmxhZ2dlZCB1cCBlYXJsaWVyIC0gb3IgbWF5YmUgSSBqdXN0IG1pc3NlZCBpdCEpCgpjb21taXQgNGQxNTc0MmM3NTBhOTZhNGRiYjNkYTg3NDc0MWFlMTUyNDg5ZjhkNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjU4OjA3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgZjZiNWUzMzc2ZWQzYThlOWVhZjc0YjdkNjgyMmIzYTc2NTc3MmVlOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjU3OjU2IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMwoKY29tbWl0IDVjZmIwODExMTI3YTY1M2RmZjBmNGU1M2FkNjAyOWUyMjk4YTZjNjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzoyODozNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGU3MmUyMDVmZGNlZjc4N2VmODQwYzhjOTI4ZWQyNzM1MWE2OTU0NGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1ODowNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGY3OWE1NGYyNDcyNTA4YjE2N2Q5NzdmMzY3YzM4NjRiNTYyMWU4OWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo0Mjo1MyAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMwoKY29tbWl0IDU2ZWY1ZjBkYjUxY2ZkNTUyMjZmODJmOTRmM2YzZDI0NTBlNGZlYjUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzozOTozMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMwoKY29tbWl0IGFmMWQwMGFiMDI0NjI3NWRhZGI1ZjBjZDNhMjNhNzdkNWY1NTk4Y2QKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzoyODozNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGYxODc3NmQ2M2E1MTYwMjAzMTdlNTg4NzVhYjI0MzUyZDVkYjg2NTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzoyODoyNiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzMKCmNvbW1pdCBmZTEwNzc5NGU3NDAwZDIzOWU4YWYzZGE4YjRhM2ZiZWYwNmI1ZGE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCAwZjg0ZmJjZjcxOTk1YmRkYWZhYjUwMGQ4N2M5YzVhNmY0NjFhNzM0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTI6Mjk6MzQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDc5NzQwOiBGaXggaHJTV1J1blBlcmYgc3RhdGlzdGljcwoKY29tbWl0IDFlM2JiNjA2MGJlNjE1NmQzZmYzMTZjNWE3ZTRmZDdmMDVlMzdjZmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMjoxMTo1NiAyMDEyICswMTAwCgogICAgTkVXUzogc25tcGQ6IEJVRzogMzUzMjA5MDogRml4IGhpZ2ggaWZJbmRleCB2YWx1ZXMgY3Jhc2hpbmcgaHJEZXZpY2VEZXNjcgoKY29tbWl0IGU4NjYzZmFjOGI4ODY2MzI4MjY2OTcyNmEwOGYxNmRiMTZiNWY0ZGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAxOCAxMzozMDoyNSAyMDEyICswMjAwCgogICAgUmV2ZXJ0ICJDSE5BR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGIxMWE0ZTkzZjUwZDhhNTQ0ZjgzNWYzNzZjM2E0YjhjMDY0MWEzMWEsCiAgICB3ZSdyZSBpbiBSQy1waGFzZSBhbmQgY29kZSBpcyBmcm96ZW4KICAgIAogICAgKHNvcnJ5IGZvciBub2lzZSkKCmNvbW1pdCBiMTFhNGU5M2Y1MGQ4YTU0NGY4MzVmMzc2YzNhNGI4YzA2NDFhMzFhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMTEgMTY6MjY6MDkgMjAxMiArMDIwMAoKICAgIENITkFHRVM6IHNubXBkOiBmaXhlZCBzbm1wZCBleGl0aW5nIHNob3J0bHkgYWZ0ZXIgc3RhcnQgZHVlIHRvIGluY29taW5nIHNpZ25hbC4KCmNvbW1pdCBhNTcwMjM4ZDU4ZWI1YTk5NmI1NmYwMWEyN2ExOGRmNmYzN2QwZjYwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMTEgMTQ6MjA6MjUgMjAxMiArMDIwMAoKICAgIE1vcmUgcHJlY2lzZWx5IGRlc2NyaWJlIC1jIG9wdGlvbi4KCmNvbW1pdCA0OGNjMzlmMWFhMGZhNmNlOTU1ZWY3NmIyNWRiOGY5ZGNhMDZiODBkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI3OjEwIDIwMTIgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjIucHJlMQoKY29tbWl0IDgxMDE4NWFlMGIwY2QyYWQ0ZDQyNGExYmE3NzVlZjVjZWFmNTBmMDMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDk6MjQ6MTkgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5wcmUxCgpjb21taXQgNjI3MTQ3MWUwMTI4MmYzNjc1NzI0ZWFmMTM1OGNlYjBlOTVkZGQ0ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjo0MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUxCgpjb21taXQgZmNiNzgyYWE4ODkzMTM0Yzc0MTRhOTI2ZDkyNjg1OTRmNzI1YjkxNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjoxOCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCBlM2JjZDg3YzcyZmNlYTc3MDZlODY4YjVhY2U3NTI5NjA5M2Y3NDk3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDk6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZDgxM2NlMmVlZWZjNjgyMjljZmNhZjIwNjAzMjQ0Y2RkNmQwOWQzYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA3OjUyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGZhN2JkNTgxZTM3ODM2ODVkYjM5YzliNGVhZjg0N2JlNWFjODZmZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MzoxMCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IDA3MzllMjM4MmQzMTE0NmFjYTMyMDUyNDRjZjcwNzg4YjQwYTQyOGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MTo0NSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MDoxMiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzIKCmNvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYzgxMTBiMzNiODEwNWNhNjE5MDk0NWEzNWZlN2FlOTAzMjUyZDY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMAoKICAgIEF2b2lkIHBlcmwgdmVyc2lvbmluZyBwcm9ibGVtcyB3aGVuIHNldHRpbmcgdXAgdGhlIGJ1aWxkIGVudmlyb25tZW50Cgpjb21taXQgNTA4ZWNlMTZlNmY2ZjQ5NTYyZGEyMDQ3OTJhZTA2NDQyNjk5OTRkMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIwOjU4IDIwMTIgKzAxMDAKCiAgICBGaXggaGFuZGxpbmcgb2YgZGlzdC9yZWxlYXNlIG1lcmdlCgpjb21taXQgNWI4YTg1NDdiMWE0N2QyZjViMjA3ZjQ4ZjI0OTZlNDI0MWQ5MDJjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjEwOjQ4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgNmMzMjkxNGJmMjhkNjk1ZGYzNDlkY2EyNjllNDg4YjUwMTcwMDMxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA3OjIyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgOWY1YTgyYTVhZmRiYjNkYWViMmZkNDM3YTMwOWYwYjhkMzU3Y2Y0YgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA1OjM5IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMyCgpjb21taXQgMzkyMDNmMjk0NzdhM2JlZGYwMTJkNDExMzVkOGFiZDZiY2FkMDhiMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjU0OjI3IDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgMTdlNzllZjBmYWQ3OTYwOWM1YmEyZmViNGU4YjllYjVkN2RiNjg4NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgNTgyMWJlNWJiYjQwMThkZWQyODJmYmJiZDQ4MzBjZjJlZWFkZDllMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ1OjU5IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMgoKY29tbWl0IDNmMjExMWRlNjczM2EwNGUxMmQ5MTBkMzA2YTM0ZDY3MWUwMDg3NjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGNjZjhmZjJjNGRiNjAxMjJkNDEzMDJlNGFlYjcwMGUwYjg2ODEwNWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSAyOCAxMDoxODo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzUyNjU5OTogRG9uJ3QgaGFuZyBvbiByZXRyaWVkIGZhaWxpbmcgU05NUHYzIHJlc3BvbnNlcwoKY29tbWl0IGM4MWM4NDgzOTkwOTExZjQ3NDM1ZDMwMDUyNTVkOTFjMzdhYjkyYjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjA5OjI2IDIwMTIgKzAyMDAKCiAgICBGaXggQlNEIHRoYXQgZG93bm5vdCBhbHdheXMgbGlrZSBJUF9TRU5EU1JDQUREUiAtIHNvIHJldHJ5IHdpdGhvdXQKCmNvbW1pdCBmZmNlMWYyZGMyZjhiMzFhYmQwMWY5M2IyNmRhNzhmNDcyNmExZTY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowMzo1OCAyMDEyICswMjAwCgogICAgRml4IE9TIG1pc3NpbmcgTVNHX0RPTlRXQUlUIChBSVgpLiBCYWNrcG9ydCBmcm9tIDUuNwoKY29tbWl0IGM1NzUyMTY4NTAxODViNTY0NTRkYWQwMjUzZTMxNjQ5NzllMTM1MTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDEzOjU2OjAxIDIwMTIgKzAyMDAKCiAgICBGaXggbWlzc2luZyBpbmNsdWRlLiBGaXhlcyBTSUdTRUdWIG9uIEZyZWVCU0Q5IHg2NAoKY29tbWl0IDU4MDU4Nzg3NDljMDgwNjJkZWJmMGE5ZDc5OGQwOGZiOTE2Y2FhMmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZGVidWcgdGFnCgpjb21taXQgZDFhNDJiYmNjN2IxNDczMGM5YTZkOTljNGYwNDcwOTc4NDNhNTQ5YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSdW4gbGlidG9vbCAtLW1vZGU9ZmluaXNoIG9uIHRoZSByaWdodCBkaXJlY3RvcnkKCmNvbW1pdCAxZmJmMzM3MTFhMTllYWM5NzM5YWQyM2Y2ZjYyNTFlYWNjNDFmMWM0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMzUyNTk5ODogRG9uJ3QgdXNlIGFuIHVuaW5pdGlhbGlzZWQgdmFsdWUgaW4gZXJyb3IgbWVzc2FnZQoKY29tbWl0IDMyYzE2ODZiNjdkYzg1YzRhMTg5NTc2MzYzMDY1NjA5ZGZlZDVlNjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1Mjo1NiAyMDEyICswMTAwCgogICAgQXR0ZW1wdCB0byBtYXJrIHJlbGVhc2UtY2FuZGlkYXRlIGJyYW5jaGVzIGFzIHN1Y2guCiAgICBPbWl0IGZpbmFsLXJlbGVhc2Utb25seSBzdGVwcyB3aGVuIHByZXBhcmluZyBwcmVOL3JjTiByZWxlYXNlcwogICAgKFJlbGllcyBvbiBhIHR3ZWFrIHRvIHRoZSBNYWtlcmVsZWFzZSBwZXJsIG1vZHVsZXMpCgpjb21taXQgNGM1NjMzZjE2MDNlNGJkMDNlZDA1YzM3ZDc4MmVjODkxMTc1OWM0NwpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGZyZWVzbm1wLmNvbT4KRGF0ZTogICBNb24gTWF5IDE0IDExOjQwOjA2IDIwMTIgLTA0MDAKCiAgICBORVdTOiBzbm1wOiBCVUc6IDM1MjY1NDk6IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAoKY29tbWl0IDY1ZGQ4M2MyMjU1ZWU1OGVkYmYwZTI1ODYzZTU1YjU4YTQxMTM2NzkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjMwOjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMxCgpjb21taXQgYWM0YmM2NWUyOTA5ZjNiZDg1ZjMyZjA0YjUwNGZhNjVkMmY2NDU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6Mjg6MDYgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBiNzQ5OTQ4NjQxOTUxMTllZGI2ZTE5Yzg1MTQ3ZmFjMDBiY2I5M2UzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoxMzo0NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzEKCmNvbW1pdCA5MTM1MDA5MmM0NmU2NmQwNmQ3NDE0M2Y0ODE2NDczZGI0ZDI1MTYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxOTo1NjozMyAyMDEyICswMTAwCgogICAgTWFyayB2ZXJzaW9uLXNwZWNpZmljIGNoYW5nZXMgX2JlZm9yZV8gcHVzaGluZyB0byBjZW50cmFsIHJlcG9zaXRvcnkKCmNvbW1pdCA3MjQxYWNjZDcwYjgyZDBmY2Q0NGQ1YTUyMzhiMmVlOTQ0NTkwMGRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MzoxNyAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDdjNzk2YTE1YTFkMWJiODVmZWVhOTQwYmQ0ZTM1MTY4Nzc5MjA5MTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUwOjQ5IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgMDdlMjY4YmZiNjRiMGVjNjQ1YjNmN2U4NzI2Njk4NGY5MjE3Y2YxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NDQ6MzcgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAxNmVhYWY2YzNiYTE0NTk2Y2E5ZWZhZjRiMTE0ZjFiNzA5ZjQyYjY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyOTowMyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IGM3Mjk0NjllZjEyMTU0OTMwY2Y5ZDE1OTY3ZTE2MTg2ZmI0NDVmMzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI3OjIwIDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMQoKY29tbWl0IDE0MjU3MWQzY2VhMDhmMGMwNzJkMjRjMWQzOWE0M2M3NDQ2ZjhjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IGViYTg2YjZmN2FmZjI2MWVlMGU2MTMzNGRmNzBkZTcxNTZlNWMzY2IKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IDVjMGY2NGQ2ZGIyYjU5M2Y3Y2MwZWQyZDRmNTViN2M1OTJiNzc0YTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjI1OjE1IDIwMTIgKzAyMDAKCiAgICBPbmx5IG91dHB1dCBjcHUgd2FybmluZ3Mgb25jZS4KCmNvbW1pdCBlZTU4ZTQ4MjdiOWZhMTZlNjYzNWNhMDAzZThhNGYxMWRjYjVmYjdhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxNzo0MiAyMDEyICswMjAwCgogICAgRml4IHNwZWxpbmcgaW4gZXJyb3JtZXNzYWdlLgoKY29tbWl0IDAzZjQ4NWRmMjJmMjBlMTQ5Y2ZhZTk0YzU3Y2I4MmZlZWNiNWQ3NGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEyOjExIDIwMTIgKzAyMDAKCiAgICBOb3QgYWxsIExpbnV4ZXMgdXNlIHJwbSAoZGViaWFuL3VidW50dSBjb21lcyB0byBtaW5kKQoKY29tbWl0IDkzMDgzODIyNGY3ODE2OTZiZDM1MjI1ZjIyNTY5MzQ3NDE2ZjFiMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEwOjE1IDIwMTIgKzAyMDAKCiAgICBDaGVjayBuZWVkIGZvciAtbG0gdG8gdXNlIHJvdW5kL2V4cAoKY29tbWl0IGEwNjA5Y2YxZjNhNjkxN2QyNjM3MjU3MzIyNDhjZDkzN2E0NWFkOTQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDg6NDA6NDQgMjAxMiArMDIwMAoKICAgIFJlbW92ZSBsaW1pdGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbGluZSBsZW5ndGguCgpjb21taXQgMzA1OTczMzM4YTYzYWU1NGM1ZTAyYTg2MjZmYmU5YTgwNjRkY2I3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDozMjoxOSAyMDEyICswMjAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCmNvbW1pdCBjY2FiNGU5ZDNlZDQyNGMzOWQwZGMyN2JlNjNmYTc2Yzc0NjFlYTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjE1OjIyIDIwMTIgKzAyMDAKCiAgICBJbnRlcm5hbGl6ZSB0aGUgbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJldCBjb25maWd1cmF0aW9uIGZpbGUKCmNvbW1pdCBjZjg3NGFkN2I5ZGFmNGZjYzBkNDZjZGQwMzQ0NzRiNDc4MDA1MzQxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEFwciA2IDIxOjQ3OjI4IDIwMTIgKzAyMDAKCiAgICBSZXBsYWNlICNpZiAoQSkgQiAjZWxzZSBCICNlbmRpZiB3aXRoIEIuCgpjb21taXQgZWY5ZWE2NDFiYzI5MGVlYzUwNjg1YjYwNTE5YjMxYmVlOGIxNGE2OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDQ6MDYgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgMzVhYmExOTU5ZGUxMTlmMWZiODkyMDNjMzcxMDlhYTZmMGUyMWM1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDA6NDAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgZTQxZmJhZmYxOGFjOTA5NWNmNGE3MzlhMDZlYzM5YTFhNmNjZmRjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjA6MzU6MzUgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMgoKY29tbWl0IDEzN2ZlNTgyZDZjYzU2MTE0MzBkYWI0NmVmMTQ0ZWZkODRjZmM4MDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEFwciA2IDIwOjQ2OjU2IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKICAgIChzbm1wX3N0b3JlX25lZWRlZCgpIEFQSSBpcyBub3QgYXZhaWxhYmxlIGluIDUuWzQ1XS54KQoKY29tbWl0IDJiN2U2NDI4OGMwMWE4YTA2MjAyNmM1MjFjYTMxYTVlODg1ZjMwY2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjEyOjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDdlOTVkODBiNjk4MDUxMjU5NjQ1YzA3NGE1M2ZmZDI2NGE2ZmE5MTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjA2OjU2IDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFhOWI3YjdjMDJlMmRlZWZlOTk0ZDU5NWE3Y2MxZGQyZmZiZWVlMWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE1OjUxOjIwIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCAncmVjZW50JyBoZWFkZXIgc2h1ZmZsaW5nCiAgICBCYWNrcG9ydCBvZiBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2IGZyb20gVjUtNS1wYXRjaGVzCiAgICAoUGF0Y2ggIzMzNjMzMDggLSBvbWl0dGluZyB0d2Vha3MgdG8gY29uZmlndXJlKQoKY29tbWl0IDNkOWRkYjQxZTI2M2JjMWE3OGY5Zjk0NDBiOGQ0YWQ0Zjg2YzgyZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjM2OjE4IDIwMTIgKzAxMDAKCiAgICBGaXggdHlwbwogICAgQmFja3BvcnQgb2YgNWI3MDJiMDI0YjYwMTc2ZDdmNTY5OWI5MmU1NWRhNTBhOGRlYWU3MSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDBkMzVjNjA5NTY0YjY2YTFmZmU4MTU1NmQzN2FkZjA1MDNjMzg5Y2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjE1OjA4IDIwMTIgKzAxMDAKCiAgICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiBORVRTTk1QX1BSSW8KICAgICh1c2VkIGluIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYykKCmNvbW1pdCBhNzkxNDFhNDE5OTUzZDAxMGE2OTg5ZThiODhmNGRmMTI3Mzk0ZDM4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwOToxOToyNiAyMDEyICswMTAwCgogICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CiAgICBCYWNrcG9ydCBvZiBmN2IwZGUxNTE4MDAyYzZlOGY5Yjk0ZWYzZGViODg4MmUxZTkzMzhlIGZyb20gVjUtNy1wYXRjaGVzCgpjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDg6MjA6NDYgMjAxMiArMDEwMAoKICAgIEZpeCBJUHY2IFRDUCAmIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydCAoaW5jbHVkaW5nIE9wZW5CU0QpCiAgICBCYWNrcG9ydCBvZiBjb21taXRzIDVjZDE1NzM2MjU0NzFjMDU4M2U5MDg3YWVjNjgwMmI3NzE1N2Q1YTIKICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCBkOTU1NWFjYjlmNDdjM2FhOGZkZTRiYzIwYTQ0ZDdjYTYxODFhOGE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciAyNSAxODo0ODoxMiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCgpjb21taXQgODJhOGI0N2VlOTZlNWQyOWEyYjdhYzNjYTAwNzIyZDczN2Q1YjQ3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzE6NTYgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgOWNhOGQ5MzlhYjM5MzMwNmExZDBmMTQ2YzljYjcwZWEwY2IxOWQ0OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzA6MzggMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgY2VjZDQ4NjlkZWI2OGYzZDRjNzFlNzY4ZDViNDBkZDU3NjQ0NjkyNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6Mjk6MzEgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgYTFhNDUxM2JkM2U0ZTYxNDIwMGY2ZGI1YTAyZjYxZDZjOGVlZmIzMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjQ3OjQ1IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCA5YmRiY2NhMTIyYzM3ZGEzMDRmYzZhYTY5Mzk3Mjk0NzVmOTBmNWZkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6MzA6NDkgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFjay1wb3J0IG9mIEdJVCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6NDE6MjQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDk1Njk3OiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcwoKY29tbWl0IDFmNzVmMzc3ZDBkYjAxNzU0YzBjMTYxZGM0NDM3MzA4MWJlZWY1MjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMToxNDowNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUEFUQ0hFUzogMzQ4OTM4NzogSW5zdGFsbCBGcmVlQlNEIDEwIGhlYWRlciBmaWxlIChwbHVzIG90aGVyIG1pc3NpbmcgdmVyc2lvbnMpCgpjb21taXQgM2Q3MmM5ZTc4ZjJhZDgxN2M5ZDFkODI5NzczMjdiYmIyMGQ2M2FiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjA2OjMxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCgpjb21taXQgMTI5MDY1NzhhYjMwY2Y3NzZkMDgwYzBlZjMwMjViMzAzMzRkNzY1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTY6MTc6NDUgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjY2ZkNWNhNmZlMTAzMTNkNjE4MWQyNGJiYjE3OTc4MjVhOTdkYTEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo1MToxNiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKCmNvbW1pdCA5ZmRhMjY2ODcyMmYwOGRkYmZkZDY3YTIyMzlkOGIwMjFkYjY0YTgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo0ODo0NiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCgpjb21taXQgY2JjMThlYjc2M2JhNmRmNjllZjcwNjY4YTU0ZDc1YmYzNWU3OTUwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6MjQ6MDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGM3NzI1MTkyNDc4YWVjMDE4ZmI0YWVmYTYwOTQ2ZTA0YTQwNmMwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQzOjI0IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQoKY29tbWl0IGE2YmU3Mzk1NjZmMzEwZDc0NDFmZDdmNTQ5ODllMzk0NDZmN2ExNDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQyOjI4IDIwMTIgKzAyMDAKCiAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKCmNvbW1pdCA4YTliNTcyOTE0NTNjYjhhZWMyOGU3NjZjNTk0NzAxZWQxOWM0ZmM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMTowMzo0MSAyMDEyICswMjAwCgogICAgRml4IGZvciBEcmFnb25GbHkgMwoKY29tbWl0IGU1YzlhMzJmNzllYWMyZTg1NTI3YzljZjA1MDg3Y2RhZTliMzVhNmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIwOjU5OjUzIDIwMTIgKzAyMDAKCiAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCgpjb21taXQgY2Q0M2JjMDlhMzliZDk3ZmY1ZTcxOWEyY2UyMzJjZTQyNDYwMGE2NQpBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTo0NzoxNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKCmNvbW1pdCBlMmZjMTVmOWU1YTZlM2UzNmJlNWY0ODk2MDFjYmY2YmY3MzE5MTdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToyMTozOCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDQzMmZlM2RkZjU0ZjJjOThmOTM2OTU5NDY5Y2I5YjAxNGQ1OTlmMDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjEwOjUyIDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKCmNvbW1pdCAzN2QyNzcwY2Y1MGM5ODAyM2VlYmE5MGUyNWQzNzJiZmY3MzE2YWRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjA2OjQwIDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgODZhOTQ4ZDg2OTFlODgxZDU1NTkxZGNhYmRkYzI3MzljZTcyYjMwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowMTozNyAyMDEyICswMTAwCgogICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCgpjb21taXQgZmUyNmEzYzRmMjlmMDQ2YmY2NWVkNTJlOWQ5NDA1NGI2NzVmYmM0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6MDQ6NDIgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucwoKY29tbWl0IDc0NWJhZmNkY2M5YzhlODQ2MTZkNGUyNzRkYjJhMzg0YmYyMzRkYTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA4OjU1OjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcwoKY29tbWl0IGRhNjkyNWU2NzYzY2FkYmUwMmY0YThiYmZlNjhhMzYyZTUzNWFkNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjM4OjM2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKCmNvbW1pdCBmYTYwNmRkN2NhNmFmZjkzMDhkNGU4YjAxYmJjZGUxNDhmNDQxMjcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjo0OToyMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yawoKY29tbWl0IDYxN2E4M2JhNzk5NTc1Yzg0YzY2ZjZiMWM0ODBlZjYzMzE2MWE2NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI4OjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0Cgpjb21taXQgNjI1ZjU1YzI3MmVjNjI4MWUzOGQ4ZTMwZWI1M2ZkNTE1MTZiMDBhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6NTQ6NTUgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKCmNvbW1pdCBiNDhmMTlhZDRiNGFhNjhjM2UxNmUyYTcyZGYzN2I5YzBjZDM2YzRhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyNDowNyAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKY29tbWl0IGQ3NGNiMzk2NjE3NTg5MjU2MmY1ZTNhOWIxNjgzYWNiYTJjMjJlMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQ1OjE4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKCmNvbW1pdCAwYjFhNzc2NzQ2NzhjYzlhMTViZTNlNzcwMGQzY2VmNjUwZWQwMmM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMjowMDozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCgpjb21taXQgMTM5MDIzY2QzYWI1MTYzMWNjMTBlMjg2NmQ3MWFiY2Y5OWFlNGMxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTY6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQoKY29tbWl0IDE2OWI2YWFhN2I2MTgyN2NjMWFkMGIzYWVlYWUzYTcyMjlkZDI1ZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUzOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocwoKY29tbWl0IGEwYmUzMmFkMDUzYTcxZmE5NjEzNGQ1NWU1NDJiYjA3ZDRmMDI5N2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQzOjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKCmNvbW1pdCBiZjliZmY2NDU1Njc4N2Q3NjZlZTJlZjJkNTc4YWZiOTIwNzE5ZjNhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MTo1NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgoKY29tbWl0IDVkNzRjMDEyNDU1MjNhOWQ4ZGIxZWRhMjdkMWVmYWUyZWJjMTA0ZmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCgpjb21taXQgNWIzOGYwNjJiOTliNmVmMzY3MDhlMmM3ZGU0OTY1YTMxOTI2MTJlOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzQ6NDggMjAxMiArMDEwMAoKICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5Cgpjb21taXQgZTVmODI3ODJkYTA1ZWZhN2MwZTZkYzJiZjVhNDFlZTExODY4ZjQ2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzM6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECgpjb21taXQgODMyNzU2NWU4MjMyNzBkMTBhNDUwNDU2OGVkYmU1YjVhZTMyM2E1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzE6NTQgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKCmNvbW1pdCAxNzBmNmYwMjdiZjRmOTE3NGI3MDczNTMwZGE0ZDA3ZjQwMGJiYTU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyODo1OCAyMDEyICswMTAwCgogICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cwoKY29tbWl0IGRiYjQ1NzNiNjlmYWU4NWNkYzkzMWIyODkyYjVjZTRlNWIxNmIzMjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjIzOjM2IDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKCmNvbW1pdCBmMTE2ODFmMTVhYWQ3ZDlhNTJmYTI5ODEyZWNiYjUwN2YxYjdmZTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzY6MzggMjAxMiArMDAwMAoKICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCiAgICBUaGVzZSBjYW4gY29uZnVzZSBzdGVwcyBzdWNoIGFzICJtYWtlIGRlcGVuZGNoZWNrIiwgdGhhdCBkbyBhICdmaW5kJwogICAgb24gdGhlIGN1cnJlbnQgdHJlZSwgYW5kIHdvdWxkIGRlc2NlbmQgaW50byBzdWNoIHVucGFja2VkIHNvdXJjZSB0cmVlcy4KCmNvbW1pdCA0NzBkY2Q0YjZjM2ZmMTFmZjBhMzUzMmE3MzQwYTU2Y2ZmZDY5MDk4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAoKICAgIERvbid0IHJ1biAibWFrZSBkb2NzOyBtYWtlIG1hbmNwIiBpZiB0aGVyZSdzIG5vIE1ha2VmaWxlIHByZXNlbnQKCmNvbW1pdCBjOWFjNDIwMzQzZTE2ZGYyYjcwNjVmNWJmMjc5MGRmNDRlMjQ3ZmJhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAoKICAgIEFsbG93IGRpc3RyaWJ1dGlvbiBhcyBwYXJ0IG9mIG5vcm1hbCBOZXQtU05NUCBwYWNrYWdlcy4KCmNvbW1pdCA1OTk5ZjYwYzU3NzIzZjIzZjNjMjU0YWY1N2ZkYjEwYWYzMDFhOGViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCgogICAgUmVnZW5lcmF0ZQoKY29tbWl0IDI3NWQyMDQwMzZhNjA3ZTNkZjUwZTg0NDdkNGJjNzU1ZTlkYjAyZmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucy8tLWRpc2FibGUtYWdlbnQgdG9nZXRoZXIgd2l0aCAtLWVuYWJsZS1taW5pbWFsaXN0Cgpjb21taXQgYmRjY2M4NzU3MTAyOTVhYWNmNTBmNzFlYjFjMWQyZWU5N2YzMzZmZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAoKICAgIERvIG5vdCBkZWNsYXJlIHRoZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG9wYXF1ZV9zcGVjaWFsX3R5cGVzIHVubGVzcyB0aGF0IG9wdGlvbiBpcyBzZXQuCgpjb21taXQgYjgwYTY3ZGEwNTJhZGNhMWI1YTY0NGRiODNhNzgyZTE1YzIyMzdjMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAoKICAgIENoZWNrIHRoYXQgdGhlIGRhdGEgZXhpc3QgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0Cgpjb21taXQgZWZhZTg2YmJhNTk2MjQ5MWQ0MmI3N2I5MzUxOTFhM2ViMjVkZDkzOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAoKICAgIFBhcnRpYWxseSByZXZlcnQgIk1lcmdlIHJlbW90ZSBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8gVjUtNy1wYXRjaGVzIgogICAgCiAgICBDb21taXQgZDM1YTE4NjAyMTdlNzIzZTRmODY2ZGQ5OGVmNjYyMTY2NTkzNGM0YSBhY2NpZGVudGFsbHkgcmV2ZXJ0ZWQKICAgIAogICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCiAgICAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyIChDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MpCiAgICA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjIChSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSkKICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQogICAgCiAgICBhbmQgcGFydCBvZgogICAgCiAgICA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiIChBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzKQogICAgCiAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KCmNvbW1pdCBhYWVkZDU5Y2MyZGE3MDE1MjdkYzJkMjYxZDRlOWY4NWYxNmU3NTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxMSAyMDo1NzozOCAyMDEyICswMTAwCgogICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCgpjb21taXQgNGI5NGQ3OTY5MThhNGVlYWU2OGFiMjFhYTUzZDQ0NGE4YjVjMjkyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBNYXIgOSAwODowNDo1OSAyMDEyICswMTAwCgogICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKCmNvbW1pdCAxMGZlNmI4MzMyNGFkMzdkMThiOTM3Y2M4YzZkZTk0ZGU1MzRkMDM1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMzowNDowNyAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBlMTEyMmVkYzFhNWZlNzk3NmIwNjUwNDQxMzRkMzllN2RiNTk4NWVhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjo0MzoxOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBhNjEzZDNhODM0OTEyMjA2ZDFiYTU5NzFlNDQxYTNlYTZiMzZhZjIzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjozMzowMyAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAwZWYzNGU2NTE5ZGZjYjgyYzk3ZGY4NDI3NTQ3YzA4ZGNmODFlNjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgOCAxMDoxMTozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgogICAgCiAgICBOb3cgaXQgZHVtcHMgcGFja2V0cyBhZ2Fpbi4KCmNvbW1pdCA4ZTY5NzQyZjE0M2U0ZmMxMTE5NmU1YjJlZDY2YzhmN2Y1M2ZkMDJmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUxCgpjb21taXQgYzRlMDBiOGMzZTEwMTBjZGNhYjVlNmMwMmQ2MGQ3NWRmOWM2ZGNmMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMzk0OTAxMDRhM2FiNTgyMzVhYWNlMmY5ZDg3MWMyNjZkYzQ0ODVlZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTk6MzggMjAxMiArMDEwMAoKICAgIGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlCgpjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1Njo0MCAyMDEyICswMTAwCgogICAgTW9yZSBmaXhlcyBmb3IgU29sYXJpcyBzaAoKY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTU6MDg6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcyBpbnN0ZWFkIG9mIDAuMC4wLjAuIE1ha2VzIHRlc3QgVDE2MHNubXBuZXRzdGF0IHBhc3MgYWdhaW4uIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCgpjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNDowNDo1NCAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IDI2NTE5MDljY2NlYWJmY2ZhZGFmOTQyYzAyNDUwZTI4ZmU4MzdkYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDkgMTI6MDQ6MDQgMjAxMCArMDAwMAoKICAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlNDFmMTE1ZTQwMzA0Yzk0MWJhMTdkNjdlMjQ3MTA3MjJkOTA3NDFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEzOjM5OjE3IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgoKY29tbWl0IDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgoKY29tbWl0IDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMDk6MjI6MzEgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgoKY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MzkgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNDRhYTI2NTg5MWNkNTYzZjdmNDExNGVmMjVkY2Y3YWFmM2IxNGU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IGRhZTRlMTZiZTg2MTE3ODYxZjYzZDFhMmY5ODFhZDM2MTQxOGY1YzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCAyOGY2MjI2ZjJlMjI4YjhjYTI0ODQ4OTczNWY4NjUwMmIyY2NlMGExCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNCAxMDozNzo0MSAyMDEyICswMTAwCgogICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgoKY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTc6MTk6MzAgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKCmNvbW1pdCBlZTcxMDQ5YzNlMjFjMWQwZTM0MjQyOTcxMzY2NTJiYmUwZTM5ZDg1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE2OjQ5OjQxIDIwMTIgKzAxMDAKCiAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCgpjb21taXQgY2U5NjAwMzYxZTY2NWRkZTE3YWY5ZDhhYjE2ZDdjZTg1ZGMwNTY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCgogICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCgpjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozODoxMCAyMDEyICswMTAwCgogICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCgpjb21taXQgODcyNjk5NWM3YThhZWY2NzRjNGYxNjRiMTg3MWMzN2JiZGNkYWQ1MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCgogICAgZ3JlcCAtdyBmYWlscyB3aXRoIE9wZW5CU0QgYW5kIFNvbGFyaXMgMTAtNjQKCmNvbW1pdCAxZWI0NzQ1YjIzY2MzYTgzOTg2NGU3ZjZlYTI4MzU1YjA1NjZlYjY3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM1OjQ5IDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzIC91c3IveHBnNC9iaW4vZ3JlcCB0byB1bmRlcnN0YW5kIC1xCgpjb21taXQgOTk1NGI0Yjc0MWZkOGM2M2Q2MTI4YmQwNTI3Mjk4YzhlNGU5ODlmYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNDo0NSAyMDEyICswMTAwCgogICAgTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHByb3BlciBzcmNkaXIgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgpjb21taXQgNzgzNjkwMDJiZTI3MTFmMGFhODc2YjY0YTRlMTBiMDkwY2MyNDFjZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozMzozMSAyMDEyICswMTAwCgogICAgTm90IGFsbCBtYWtlIHZlcnNpb25zIGRlZmluZSAkKFJNKQoKY29tbWl0IDk0MjQ1YjI5YTNjZGE4OTQ3NWM2ZWFiNWQ5NDkzYzY2NTdmZjM4ZTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAoKICAgIE1ha2UgYXV0b2NvbmYgMi42OCBoYXBweQoKY29tbWl0IDQ0YWNkNmMyODVmYjU2MTRiNGM5NjExYjFhYmRlY2E5ZGQyOGU0YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cwoKY29tbWl0IDFmYTFmZWUzNjkzZjY3YjgyMDIyMzgwNmIzZDczYWZkNGM1MGVjMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDIgMDE6Mzc6MjAgMjAxMiArMDEwMAoKICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEzOjM3OjIwIDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDVhMTc1NDI4Yjk3M2QyZWE4NTUzZTI5ZmVjZjk0Y2YxNTY2YWE4NTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDM2NDI3NmExYzVhYTY2Y2FhMjNlYjViN2YxMTFmZGViNWFmNzFmYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQoKY29tbWl0IDczNTk4MzQwMTcyZWZmNzU3MjlhNmQ1NzE5MmI4MTcxZDViYmYwMGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKCmNvbW1pdCBmMzIxNDQwMjY3MmNhMTk5ZmQ1MzFlNjYxMjJiZjk2YzRkOWE0ZWI3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0MjozOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA5OjE4OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogRG8gbm90IGluc3RhbGwgdGhlIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyB0aGF0IHdlcmUgcmVtb3ZlZCBpbiA1LjcKCmNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKCmNvbW1pdCA0MzJjYmI3YTU1MDFhYjkwZDY2ZDBhODNlNzMxZTczNDNiYzA0YjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEZlYiAyNSAxMDoxMzoxNSAyMDEyICswMTAwCgogICAgQ29ycmVjdCB0eXBvcwoKY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgRmViIDI5IDA4OjU1OjM1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKCmNvbW1pdCBkNTE1ZTJhNmU0YzJhMWM0ZDg0NzM0Y2M3YjJkMGIyZmM1YTg5NGFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCgpjb21taXQgYWY4MzY4ZWQ4ODk4YTc4ZDA4NjhiNDdhZjQ2YmM5ZGIwN2QxYzc2NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjUwOjU2IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgoKY29tbWl0IDE5ZTI3MTU4MDdmZTA2ZmQwYmFlZGY4ODE2NTAxMWFlZTkzM2U3NTUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNDowNTozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKCmNvbW1pdCA2NWY3OTYyZjkzMmM5Yjc1YzViYmJiMDQ3ZDFlMjZhZTYwOTc4ZTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTI6MjM6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKCmNvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTE6NTc6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKCmNvbW1pdCA4NzliZjcwNzlkMzRmYTQ2ZjZmY2Y1NGEwMWM4NTAwYmVhZWNlNTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6NDQ6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCgpjb21taXQgMDM0ZjFjNTcyZjY4M2VhNDI4NTgzMDc0NDcxZTVkNWQxM2I1MTgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjIyOjIwIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgMzY0MjNlMjEwYmZiNjVlZjEyMWM2YTY2YWVjNDM4YzdjMjM3ZDNkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjAzOjI1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgZWVkMGJjYmM0M2ZlYTE4MjU5ZjBmNjNiMjA4MWI2ZDEwNTM1YTA1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDA5OjI3OjExIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCiAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKCmNvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyNyAxODo0Mjo1OCAyMDEyICswMDAwCgogICAgQWRkIC1scnQgdG8gTkVUU05NUExJQlMgc3VjaCB0aGF0IGNsb2NrX2dldHRpbWUoKSBjYW4gYmUgZm91bmQKCmNvbW1pdCBmMTMzMjA1MDAyOTRiYjI0MGY2M2M2ZGQ3ZDJlOWEyMjA4ZWI3NDBkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTY6NTI6NTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgYzQyNzZiNjIzMmMyOTE0NWMwMzk4ODRlNmI1YTZiNmRhNGI5MzgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjU0OjQ1IDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDAxYzkzMGVkY2MyNTcwMGQ2YjVmYjAzNzZmNTVhMjY0MjVlMTNmYjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNToxNzoyMiAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CiAgICAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgOTQ4NGQ4MzIwM2M0ZTJkODIwNDE2YmU2NjVmYTgzM2FhNzA0NDRkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAoKICAgIFJld29yayBjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMy4KCmNvbW1pdCAyYjdmMTM0OTUyMjg2MzVkODE2ZTU4YjIxNzRkYzEyNGRkMGNmMzlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCgogICAgc2V0IE1FUkdFX0FVVE9FRElUIGJlZm9yZSBtZXJnaW5nIHRvIGF2b2lkIHRoZSBmdXR1cmUgZ2l0IDEuNy4xMCBmb3JjZWQgbXNnCgpjb21taXQgZTFiOTEwYjBiZTkzNDM1ODZhZTllZGJhNmY0NjA0MGFmMzE1ZmNkZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBpbml0X2FnZW50KCkgKyBpbml0X2ttZW0oKTogUmV0dXJuIGFuIGVycm9yIHZhbHVlIGluc3RlYWQgb2YgaW52b2tpbmcgZXhpdCgpIGlmIGFjY2VzcyB0byBrZXJuZWwgdmlydHVhbCBtZW1vcnkgaXMgZGVuaWVkCgpjb21taXQgNDYzZWVkMjEyMGY5ZDE5MWJjMjI2NzM0OTZhNDllODE3NDY2NGU0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBzeW1ib2wgTkVUU05NUF9FWElUX09OX0JBRF9LTFJFQUQKCmNvbW1pdCBjMzZhYjcxYTRlMDk2ZjE2Y2M1YTU1NTMzZjA4MGM5YTk0MDA5OTE0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogc25tcGQgKyBhcHBzOiBTZW5kaW5nIFVEUCBwYWNrZXRzIHdvcmtzIGFnYWluIGZvciBub24tcm9vdCB1c2VycwoKY29tbWl0IGVkZWJkZGJhOTMwZjhiMTQ3MmZhMGJkMjBmYzQxM2VmOGNmNDY0YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL1JVTlRFU1RTOiBGaXggYSBiYXNoaXNtCgpjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCAlbGQgdmVyc3VzIHRpbWVfdCBvbiBzeXN0ZW1zIHdoZXJlIHRpbWVfdCBpcyBhIHN5bm9ueW0gZm9yIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGxvbmcuCgpjb21taXQgZDg5NzhlY2M4MjExYmU3YzFlNzkwNWYxZTIxNWJiMDZkZWQyNjZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMAoKICAgIEZpeCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYyBmaWxlIGhlYWRlcgoKY29tbWl0IGFhNzY2ZDE5NmU1Mjg3ZjZjYTc5YjU4YTM0NWIwMjQyNjBhYmEzNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE3OjA3OjEzIDIwMTIgKzAxMDAKCiAgICBJRi1NSUI6IGRvIG5vdCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvciAoPj4gMzIgb2YgYSAzMi1iaXQgdmFyaWFibGUpIHdoZW4gdXBkYXRpbmcgYSBjb3VudGVyIGFuZCBpZmlfaXBhY2tldHMgaXMgYSAzMi1iaXQgdmFyaWFibGUKCmNvbW1pdCBjM2ZiNmRkOWU2Yjk5ZTk1NDI0OTMxODg5ODc4NzFmYzUwMTdjYjNjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwOTo0NTo0NSAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBvbiBzeXN0ZW1zIHdoZXJlIG1vZGVfdCBpcyB1bnNpZ25lZAoKY29tbWl0IGY4YTNlZjBkM2Q0ZTUzMDI3OTkwMDEwMTA0OWI4ZGU5OGE0NGE2ZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDg6NTIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWIgKyBzbm1wZCArIHNubXB3YWxrOiBBdm9pZCB0aGF0IHN5c3RlbSBjbG9jayBjaGFuZ2VzIChlLmcuIGJ5IG50cGQpIGFmZmVjdCBjb2RlIHRoYXQgbmVlZHMgcmVsYXRpdmUgdGltZQogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IHRoZSByYW5nZSBvZiB0aGUgU05NUHYzIHZhcmlhYmxlIHNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YgMC4uNDI5NDk2NzIgb24gc29tZSBzeXN0ZW1zIChpLmUuIHdyYXBhcm91bmQgYWZ0ZXIgNDk3IGRheXMpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSwgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZXByZWNhdGUgYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksIG1hcmtlcl90dGlja3MoKSwgbmV0c25tcF9tYXJrZXJfdXB0aW1lKCksIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSwgdGltZXZhbF90dGlja3MoKSwgdWF0aW1lX2RpZmYoKSwgdWF0aW1lX2hkaWZmKCkgYW5kIHVhdGltZV9yZWFkeSgpLgogICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgc3RydWN0IHRpbWV2YWwgbWVtYmVycyBvZiBkYXRhIHN0cnVjdHVyZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgYSB3YWxsIGNsb2NrIHRpbWUgYnV0IHRoYXQgZG8gbm93IGNvbnRhaW4gYSBtb25vdG9uaWMgY2xvY2sgdmFsdWUKCmNvbW1pdCBjMTk3NjBmMzMzM2M5MmZhYzVkNTBlOTc2OGNkZjkzOTIxOGJjNDg3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxNSAwOTo0NTowMyAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wdjMuYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAoKY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NDM6MDQgMjAxMiArMDEwMAoKICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCgpjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NTQ6MzIgMjAxMiArMDEwMAoKICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKCmNvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAxNjo0ODowOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCgpjb21taXQgZmFmYzk5Y2Q4OWU3M2VjN2UwMGJmNzM2MGQwYjRmYTYxOTQ0YTRmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxODozNCAyMDEyICswMTAwCgogICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKCmNvbW1pdCA3YWYyMDEzZGU4YmYxYjM3OWMwNzZkYjRlMTA0NTA4ZTE3ODc0ZDNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjU1OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKCmNvbW1pdCBiYmQ2N2Y2MzUzMGY1ZWYwYmZjOTQ4ZmM1OGRmZTZhOTNmOGY4Njc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDJhNjZhZWZmMjViOWU5ZWY2MzVhNDA0YWQyZjUyMTJmOWU4Y2YwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0Nzo1NCAyMDEyICswMTAwCgogICAgUmVuYW1lIHR3byBmdW5jdGlvbiBhcmd1bWVudHMKCmNvbW1pdCAzZmU3MmIzYjk5YjdlNGIyYjk4MjM2M2RmYzRmMmQ4ZDEzZjQwNTkyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDEzOjQ5OjIyIDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHNubXBfc2VsZWN0X2luZm8oKSBkb2N1bWVudGF0aW9uIHRvIERveHlnZW4gZm9ybWF0Cgpjb21taXQgZTlkYjI2NmFlNDhkMDVhN2E2Y2I1ZDcxYjRiZGVhN2FkODA4ZWY1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxNzo1NyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9uZXh0X2FsYXJtX3RpbWUoKQoKY29tbWl0IGQwODA0NGNiOWU1NzAyZmJmNTQ5ZTE0NDI1ZjQyNzk0MjU5ZDhhMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMDk6Mzg6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCgpjb21taXQgYTA1YzI3YzI3MTFjYjQxNTgyYTNiNGMzMWUzOGIwZTkzNTMwYjYyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1MTozMyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIGluIGEgc291cmNlIGNvZGUgY29tbWVudAoKY29tbWl0IDkxMGQ3YjBkOTkxODM2MDliOTUyOWIwNGMzZjI5MzMwZWI2NjEwMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6Mzg6MTIgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpIGJ5IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpCgpjb21taXQgNDNhODNmNmM2YTk2Y2MyMzE2YjcwZWVjYWNmMTI3ZWI2OTEzYzdhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxOToxNSAyMDEyICswMTAwCgogICAgVXNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGluc3RlYWQgb2YgbWVtY3B5KCkgZm9yIGNvcHlpbmcgc3RydWN0IHRpbWV2YWwKCmNvbW1pdCAyZmU1NzllZmIxY2IzYTc0ZjgyODAzY2EzMjM5MjhmNmI4ZTRiNWMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDE0OjA0OjAyIDIwMTIgKzAxMDAKCiAgICBNYWtlIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyBidWlsZCBhZ2FpbiBvbiBub24tTGludXggc3lzdGVtcy4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUuCgpjb21taXQgODgxZGU2YWI3MzU1Mjc3YTVjMTE2YTAwOGZiZTUxMzI5M2IwNTAzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxMDowODoyMSAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgUm1vbiBNSUIgaW1wbGVtZW50YXRpb24KCmNvbW1pdCA0NjI5OTMzYzBkM2IzZjlmNGJhNTgzNTM0Zjc5YTM3ZmI5NjMzODE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDIwOjA1OjMxIDIwMTIgKzAwMDAKCiAgICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBlOWI1YTNkZWU2ZjlhZmFiOGI5MGEyOTM5MjA0MDYzMmIwNzVhZDdhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE2OjU2OjU1IDIwMTIgKzAxMDAKCiAgICBVc2UgU05NUF9NSU4oKSBpbnN0ZWFkIG9mIG1pbigpCgpjb21taXQgYWU0NTJjNzdiNDExMTM5ZDZiNTgwMGZmY2Y4OGQ0OGU5YjQ3OTJhOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToyMzozOCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCBjN2QxMWZhMDBmOTk5NWRkYjlmZTNkNDk5NGEzZTk3OTBkYTJlMTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjE4OjQwIDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3IHBhcnRpYWxseS4KCmNvbW1pdCAwMGZkNjI3MjBlYzQ1NGY1YTY5MGRlNGZlYmEwODIyM2NmYjJjM2Y4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ4OjQ0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQoKY29tbWl0IGQ5ZTIyOWQ4MWFiZWFmMTkxZWYyY2NiMDc3ODQyODg1YzIzMGQ2MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDc6NDEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIGRlY2xhcmF0aW9uCgpjb21taXQgMWUyZTJhZjZjYWU4MzBmMzgxZTg3YTI0NGQwMjllYjg2YmYzZmNjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMzoyMDozNyAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGw6IEFkZCBlcnJvciBjaGVja2luZwoKY29tbWl0IDI0MWExNDFlMzFmMTY4NGZjNmNmNzBjYzRhMDBjY2U2MzZmZDM1MjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6Mjg6MzcgMjAxMiArMDEwMAoKICAgIE1ha2UgY29uZmlndXJlLXRpbWUgRVZQX01EX0NUWF9jcmVhdGUoKSBkZXRlY3Rpb24gd29yayBvbiB0aGUgNS40IGJyYW5jaC4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAuCgpjb21taXQgNmQ5ZDE0ZmVhYWEyZDBmZWM2OGI0ZDE1ODk0NGQzMmNiMDRmZjFiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToxMjowMCAyMDEyICswMTAwCgogICAgUmV2ZXJ0IHRoZSBjaGFuZ2VzIHRoYXQgYnJlYWsgdGhlIGJ1aWxkIG9uIHRoZSA1LjQgYnJhbmNoIGZyb20gY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgOGFiZTQ5ZTMwYzk3Yzg5ODNlODNiNDVhMzVjNzE2ZmU5MWY2NmJlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMSAxMTo1Njo1OCAyMDEyICswMTAwCgogICAgRml4IHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gdGhlIERJU01BTiBNSUIgaW1wbGVtZW50YXRpb25zLgoKY29tbWl0IGY5ZmIwYTUzMzM3NWUxNGRjMzcwMDI1YTBiMmZiYzc2MWJmMjdiZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMDk6NTY6MDIgMjAxMiArMDEwMAoKICAgIFJldmVydCAiSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nIiBiZWNhdXNlIGl0J3Mgd3JvbmcuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMy4KCmNvbW1pdCBjYTRhNGZlMjVlZmQyNzE0ZjhmMTk2MWI5Nzg1NjYxNjU2M2Y0MmM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEwOjIxOjQ5IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgcHl0aG9uL2J1aWxkCgpjb21taXQgMTNhZGE1NjU1OGI0NGUyOGQxMzU1YzBkY2UxZDkyMWYzNzQ2ZDU0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjUzOjQ5IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIlJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiIgLSB0aGVyZSAqaXMqIE5FVFNOTVBfUFJJbyBpbiBWNS02KyBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQuCgpjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCAyZmI5OWJlOWFhODZhNmNhMzQ5Yjg2ZDRlZjhiYzcyNmVkOWYyYTgyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTg6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGU1YzM1NTg5ZTBiZjQxNmJmZDAzNmJkNDY4ZjQyYWFlYWIyNWU3ODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1NTo1NiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjUxOjI2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBpbml0X2ljbXAoKS4KCmNvbW1pdCBjMzAzNTQ5YTU5ZmE4YzJmMjBhOWQ4YmYxZTk4NWZiYzhhYmRlNmE4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAoKICAgIFJld29ya2VkIF9yZWdpc3Rlcl9leHRlbmQoKSBlcnJvciBoYW5kbGluZy4KCmNvbW1pdCA5YzIwZTI3YTcwMjZmYzAzMGRhM2IzMjhiOWEyZTFiNGYzNjY3MGNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDIyZmQwYmZjMmRmMGUxZjYwMjBkYzNjNTBhNzUzZGRmMjhhNDU5OWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNWQ2MWU1N2JhZjU4MGM3ODI1MmMwYWJiMDA5OGMwN2JiMDVhZjE3YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzYzNlZWFlODBkNzk2ZjI3NTk3YzkwMWU3ZmYyMDQ2Yzc2OWVmNGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMAoKICAgIE1hcmsgcm93cmVxX2N0eCBhcyBmcmVlZCBzbyBuZXh0IGl0ZXJhdGlvbiBhbGxvY2F0ZXMgbmV3IG9uZSBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIGZyZWVkIG9uZS4KCmNvbW1pdCBhZjlhYmQ1M2MyMzM3YzkwYTY5MWE3YjA0NGZmM2Y5N2MxMDAzMTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDU6MTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGNmOTQ2NWY1NDE4MWU2MmUyMWE5YjEwMjE5MTMxMTA3YTNkMmViZjYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNDowNiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNzg3MWYyYjA5YjhiNTJmMzRhOWU1Nzc4NDI2NjQ1OTA1MzE2NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAyOjUwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3YTM3ZjMzZDMxMGM5NTk4NjA3YmMzMjNkOWJkYmY5MWFhZjcyYzk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDA6NTEgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNlNDVmNzAyNjI0OWU0NTM1MGVkYWFjODUzMzc0MjNhYTBlOTVkOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgNjE5MzY3NjJlNjQxYzE4ZGI3NWFhNTEyNWEzM2U3NzZjNjc3YWRjNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjEzOjM5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBmcmVlaW5nIHJlZ2luZm8gdHdpY2Ugb24gZXJyb3IgaW4gYSB0ZW1wbGF0ZSBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCgpjb21taXQgNDk2NDM3NDMwNDE1ZmJhZmViMWNjZDQ3NzRmMWNhMDBkNjI3ZWExZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MDQ6MTMgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbnRyb2R1Y2VkIG9uIFY1LjYgYnJhbmNoCgpjb21taXQgNWI0YTI0Y2RjZWUxYmMzZDgyNjMzY2NhZmViOTZmY2U5NTM0OWM1OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjI6MjcgMjAxMiArMDEwMAoKICAgIHVuaXQgdGVzdHM6IGZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgY2JmMWM5MWJhZjcxOTFiZTVmYTI3ZDgxYmNmODcxNDMzMWEyYzEyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6NDIgMjAxMiArMDEwMAoKICAgIFVzZSBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9kaXNwb3NlKCkgdG8gZnJlZSBhIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdC4KICAgIAogICAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZi4KCmNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDozMSAyMDEyICswMTAwCgogICAgSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgM2E3NmI0M2UxMWZmZmFkYTYzMmZjY2I4NDhhYjUwMGU4NzZhZDQ4YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTY6MjE6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogQXZvaWQgdGhhdCBhbiBTTk1QIHNldCB3aXRoIFVzZUVudW1zIGVuYWJsZWQgY2F1c2VzIGEgc2VnbWVudGF0aW9uIGZhdWx0Cgpjb21taXQgODRkZWM5ZmE5MmIwYWEyZDU4ZWI3MDIwMzMwZjRmOThlNTE1NDMyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6Mzg6MjEgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgMzhjZjIxOGMzZjFhNzI3Nzg2ZTIyN2E1ZDNmYjE4NmZkMGYxYTE1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjUwOjEzIDIwMTIgKzAxMDAKCiAgICBGaXggYSB0eXBvCgpjb21taXQgNDU0MTIyMjQ0MTIyYmZkYjZmNjdjYWIzMTI1NmQ3YjQ2MzcyZTllMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjMwOjE4IDIwMTIgKzAxMDAKCiAgICBGcmVlIHRtU3RhdGVSZWYgb24gZXJyb3JzLgoKY29tbWl0IDAxMTkwMjJkYWE1OWM3M2JmZWMwZGEyMzg2ZDA2MjhmMTRlNmRhYjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDowOToxMiAyMDEyICswMTAwCgogICAgRnJlZSBmaW5nZXJwcmludCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCmNvbW1pdCAwZTg0Y2QzMDNhMDgyNjdkZWM3OGY2ZDgxYzliYjA3ZTNkODNhMTFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDg6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2M2RjODQ2YTc5NDljZTY5N2IzZTI4YzU0M2RjMTEwNWU2M2EyMjUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDg6MjggMjAxMiArMDEwMAoKICAgIEZyZWUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQuCgpjb21taXQgY2UxZjI4NGE2M2ViODE2NDRiM2UzMjYwNmNiZTM5YjY3ZTFkZmYyYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjM3OjA5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgN2UyMTQxM2NhNmYyZWZkN2EzYWZiNjJjNjJiNjQ0ODgxYjhiZDFlNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ2OjMwIDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBhbGxvY2F0ZSBhbmQgZnJlZSBlbmdpbmVJRC4KCmNvbW1pdCAzNGM5NjI4ODI2MDdjMzYzOGEyZmEyNWEyYWM1MzE0OTJkNzFjNzg3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6Mzc6MjUgMjAxMiArMDEwMAoKICAgIEZyZWUgbG9jYWxseSBhbGxvY2F0ZWQgdG1TdGF0ZVJlZi4KCmNvbW1pdCBmNTdhZTUzMWRjNTY1OGFiY2Q2NWIxNjI3NjE1NTI1MjM4ZDE2ZDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MjA6MjQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1MzZiYzU3NTU2YzMxNDE1NjFlYTRhMTk0ODEwYjE2MjkwYTY5MWVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MTU6NDcgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBhY3R1YWxseSBkb2VzIHNvbWV0aGluZy4KCmNvbW1pdCBhMDc3N2QzMDdkYmNhZjIxOWVlMDE4NGEwZmJhYjlkNGU1ZDZhYTBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDE6NDUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA4Yjk3YTcxYzhlNzk1OTQyOGViNGQ0ZThkOTBlOTA5NmQ0M2ZmMDlmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTc6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYzE1MDdjMjIwMzA1NDlhZTY2MGMwZTIxMWZiZGM1Yzc1ZWM1YzU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTM6NDcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2NWYyYjdiY2Q0ZmUwMzkwNmFhMWExMTVhYjYwYTg5YjhhZTkzM2Q1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTE6MzYgMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZXMgb24gZXJyb3IuCgpjb21taXQgMGU1MmU0ZjY2ZDQ0NzY2YmVhMzc0NzM1NTZjNzhlNTIxOWI5NTQ2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQ1OjMzIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQyOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNzQ4ZGE4NGIxZmQ2NTRlMzM4YmM3MDFlOGY5ZTVkYTIyOTE4N2YxYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjMyOjA0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZWIyMTcxNDZmZDU0MDM2ZWE0MjAyYmZlZjc4YmJmNzc0ZDdlMzgyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjIzOjEwIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOWJhMzhlZWM2NjEzOGVjMWY2MTNlYThkMDRlMTU4MTMwYzcxMjFiYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE4OjU1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZDlkOTM4ZDMwMThjMjdmNTMyNzdiYzVlNTk1Nzg1MDA0OTBjMWQwOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE2OjM4IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGUgb24gZXJyb3IuCgpjb21taXQgZDVlODE3ZDViZDUxOGQ5YWM2YTBkNjBlMGUxNDFkZDY0ZjI3YWQxOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE0OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmFlNjhmMDU5ZGY5ZDc0YjA3NGQxMmY1OWMxODQ3NDY2ZWQ1NzZjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjAzOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgYTAwZjNkNDYxMTIxYjU0NWFlZDcyYWMxMmIyNDM4NzkxZGNmYzRiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjU4OjM5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTk4ODRiYjRkMzVhZDEzNzQ3ZmZhNjcyMzQzNmRjYTU4N2E5YWI3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KCmNvbW1pdCBiYTVkNTI5MmIwNDM5M2IwYzdkN2Q3ZWQ5NjEyNDE5Mjk0MThjNmU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDU6MTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBkYTJkNmE3MDI4YTEzYjllZGYzYTVjODQzMTRkMGYxZmVlZjc2NzE0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6NDQ6NTYgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGY4ODA1NGE5YjY5YjZkZTI3NGY3YTE0YTU5YjQ3MzIzZTVlNGU0YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozNzozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgY29udGV4dCBpZiBpdCdzIE5VTEwuCgpjb21taXQgN2M0ZDQ1OWU4ZjFmNjUyY2MyMDk4YzNkNGM4MWRlOTBhODRlZDcxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjMwOjA5IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZWZlcmVuY2UgTlVMTC4KCmNvbW1pdCBmYzE5YjdmMzNiNTg3OTI3ZDJhMDFlNzJkMjNkMjFiOWIxNjk2YWIzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MjU6MjYgMjAxMiArMDEwMAoKICAgIERvbid0IGNsb3NlIE5VTEwgZmlsZS4KCmNvbW1pdCA1ZTk1Y2E2NzkwMDc2Yjc4ODA3MmE4MDFlZTdjODI5NjlkOTk1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTc6MDkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMIHdoZW4gYSB0cmFuc3BvcnQgZG9lcyBub3QgaGF2ZSBmX2ZtdGFkZHIuCgpjb21taXQgZWVkNmY1ZjliOWFlNTRkMmNlYWI2N2FkODVhZGRlMWY2YThhMjFkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEzOjEzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCA0MWNkZTY4YjVmYTRiMzhkODE0NTBjZjkxZTA4MmNkZmE4MjVlN2NmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTA6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGlmIGEgcmVnaXN0cmF0aW9uIHdhcyByZWFsbHkgZm91bmQuCgpjb21taXQgNWI3MmE0MDg1Mzg3NmExODZlZmNjMDA5MGE0ZTMyYzIzNWI5YzA1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjAzOjU4IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHdoZW4gZGlmZmxlbiBpcyBTTVVYX01BWF9QUklPUklUWSAod2hpY2ggaXMgaGlnaGx5IHVubGlrZWx5LCBidXQuLi4pCgpjb21taXQgZmE2YTkxMmU0MWM1ZDBmZDJhNjM2ODk0ZTg2YjY0MjZjMDczNzVhYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjM3OjQ0IDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2YWx1ZSBpbiBzZXRFdmVudC4KCmNvbW1pdCA0MTBiNzFkYTQyNTM4OWZlY2MyNWQxNGY0OWYyMzc1MzU4MTU3NmFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mjg6NDEgMjAxMiArMDEwMAoKICAgIERlcmVmZXJlbmNlIGVyZWcgb25seSBpZiBpdCBpcyBub3QgTlVMTC4KCmNvbW1pdCAxODUyNzJkMWEwYjkxMzc3NDE4NmYxYjkxMzVhZWFmNjM3ZWJlZDUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6MTc6MjEgMjAxMiArMDEwMAoKICAgIEFzIHBlciBhYm92ZSBjb2RlLCB0ZW1wbGF0ZV92MnBkdSBjYW4gYmUgTlVMTCwgc28gY2hlY2sgaXQgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgpjb21taXQgNDhlNWVhZDNmZDJjMmIzODVkZjY5NzJjNjc1MjZmZjZiZGMzMDc2OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjQyOjIyIDIwMTIgKzAxMDAKCiAgICBVcGRhdGVkIGxhc3QgZml4IHRvIG5ldyBlcnJvciByZXBvcnRpbmcgc3R5bGUuCgpjb21taXQgZjMzZDMzNjE1ZDZkODVkMDA3MzcyNjQ3M2M0MTQ2Y2JjZGYxMWNlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjMwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBzaWdzZWd2IHdoZW4gZW1wdHkgY29uZmlnIGxpbmUgaXMgcGFyc2VkLgoKY29tbWl0IGI1ZGYxZWViNDdlZDM1NTliNmY0ZDllY2NjZGIyNDIxMjZlNmM5OTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDoxMTo1OCAyMDEyICswMTAwCgogICAgRml4ZWQgKGhpZ2hseSB0aGVvcmV0aWNhbCkgc2lnc2VndiB3aGVuIHNwLT5zZWN1cml0eUVuZ2luZUlEIGlzIE5VTEwuCgpjb21taXQgNmZlZWQ2MjlhNzE4OTljMTEzMDk2OTU5ZDg1NDlkYzEyMDFlOGY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjQzOjM3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBOVUxMIGFuZCBsZW4gY2hlY2sganVzdCBpbiBjYXNlIHNvbWVvbmUgcHJvdmlkZXMgdmFsdWUgPSBOVUxMIGFuZCBub3plcm8gbGVuICgtPiBOVUxMIGlzIHRoZW4gZGVyZWZlcmVuY2VkKS4KCmNvbW1pdCAzNTVjNWFiMjY0YWYyYTYwMjBhMWQ4YTkyM2Y4MGYxMWI5NDIyOTVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6MzY6NDEgMjAxMiArMDEwMAoKICAgIEV4dGVuZCB0aGUgTlVMTCBjaGVjaywgaS5lLiByZXR1cm4gaWYgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUuCgpjb21taXQgZGRkNzk0OGFjYWQ5MzhjZDQyOTc0NTA1ZGRjYTRmMDM3MjExNjcwOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTE6MTE6MjkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSBzcGFydGEncyBjb3B5cmlnaHQKCmNvbW1pdCA0MTI1NjA4NmE3YTUwNDE0NTM0MTljZmQ2ZTU2MmM3YjU1YzU2YjBhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDozMjowNCAyMDEyIC0wODAwCgogICAgcHVsbGVkIGZ1bGwgY29weSBvZiBleHRyYWN0bmV3cyBmcm9tIG1hc3RlcgoKY29tbWl0IDYyNWE3MGRiZGZkOTkwMmRhNzllZmEyOTNmZTZkMmFjOGNjZjJiMmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjI0OjE5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgdG8gY2hhbmdlIHRvIHRoZSBuZXdlciBsb2cgZ2VuZXJhdGluZy9wYXJzaW5nCgpjb21taXQgNjJlMzJiMTMwODliMjllZGNmMjc2ZjYxNWRhNjdlNDUwOGZlN2JiNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMDk6Mjk6NDIgMjAxMiAtMDgwMAoKICAgIGNvbmZsaWN0aW5nIG1lcmdlIGZyb20gbWFzdGVyIGZvciBleHRyYWN0bmV3cwoKY29tbWl0IDcwMDg0ZGE2MWQyYmNiZDJjZjFlZDgxYmRjM2JmNjc5NGMyYWZmYjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDEzIDExOjQ5OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMgY29ycmVjdGx5LgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZC4KCmNvbW1pdCAwNGJmM2UyODgxNThlZTg4MGVkZjIzN2U0MDA3ZmVlMzdkMjA0NGRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6Mzk6MzcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVuZGxlc3MgbG9vcCB3aGVuIFNTTF9yZWFkIHJldHVybnMgZXJyb3IuCgpjb21taXQgYzE1MjZmY2NjMDQ3NGMxZGIxOGNhYTlkYmI4MzM4NTNjZGRkZTNjYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjEzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgYTI3YWExOWRmMjgzMTU2YzAzMmM4MWVhZWU1ZTExNTg1OWQzOGMxNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjExOjMyIDIwMTIgKzAxMDAKCiAgICBEb24ndCByZXBsYWNlICdyYycgdmFyaWFibGUsIGl0J3MgdmFsdWUgaXMgbmVlZGVkIG91dHNpZGUgdGhlIGxvb3AuCgpjb21taXQgOTg1ZGZmMmIwODc2ZDk0ODNjNDE0ZmNjZWEzZWY2YmM2M2UxNDU2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAxOjMyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJmZDc4MTgzMThlN2E1ZGZlOThmNTJjY2Y3NTBjMmE2M2U4MjVkZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMDoyMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAxNWYyMTEzMGJhMzNkYzlhZmQxNjRlNTJkZmQ3NGM5Y2VjMGU5MjMyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6NTg6MTQgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmE4YThmMmFiN2NkNzU4MjZjNWQ0MWVjM2NmZDVjZTNlOTYzNGNmMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjM5OjI4IDIwMTIgKzAxMDAKCiAgICByZW1vdmUgZGVhZCBjb2RlLCAnY3AnIGlzIGFsd2F5cyAhPSBOVUxMIGhlcmUuCgpjb21taXQgMzhmZDYzNzhjYzMyNzUxODBmNjNiOGQ5YjlhNDA3MmIzZGFiZjhlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjI1OjA2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgZWJkOTJlMTliMTBjMGEzOGUxN2NkZTQwNzg2NGI0NWMyNmUxNzMyNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjA3OjQzIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGlmICh2YWx1ZSkgY2hlY2sgLSB2YWx1ZSBpcyBjaGVja2VkIGZldyBsaW5lcyBiZWZvcmUuCgpjb21taXQgYzVjYWNmNWNhZjk3OWQwMThlYTZjYWUxYzAzYjhmZGYwYjExOGRmZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQ0OjQzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRvdWJsZSBmcmVlKCksICdkaXJuYW1lJyBpcyBhbHJlYWR5IGZyZWVkIGluc2lkZSBzZV9hZGRfcGFpcl90b19saXN0KCkgaWYgaXQgZmFpbHMuCgpjb21taXQgYWNkY2ViNTBlYTY2ZDZiMzIzYzc0ZWUwMjFmYjc3ZTgxMGU0ZTdhZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQzOjE5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gbWFsbG9jIGZhaWxzLgoKY29tbWl0IDE3MDUzZTM0Y2ZlOWE4YWIzOTVmYjUwZjVjM2YxZGFmYzcyNDdhZWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzozMjo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZG91YmxlIGZjbG9zZSgpLgogICAgTGludXggbWFuIHBhZ2UgZm9yIGZjbG9zZSgzKSBzYXlzOiBJbiBlaXRoZXIgY2FzZSBhbnkgZnVydGhlciBhY2Nlc3MgKGluY2x1ZGluZyBhbm90aGVyIGNhbGwgdG8gZmNsb3NlKCkpIHRvIHRoZSBzdHJlYW0gcmVzdWx0cyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgpjb21taXQgYTY2NDFlZGI5Y2I3NGZjMjIzNmI0MmNlNTU1NGZjMzMyOTk1NjU1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MjI6MzQgMjAxMiArMDEwMAoKICAgIE1pbkdXOiBTa2lwIHRlc3QgVDA2NSBpZiBub3Qgc3RhcnRlZCBmcm9tIGluc2lkZSBhbiBNU1lTIHNoZWxsCgpjb21taXQgYTg4M2VmMTk4MmYzMDFiMTQ4NWQyMjczMDE2NzQ5MjczMzBmNWI2NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjE0OjUzIDIwMTIgKzAxMDAKCiAgICBNb3ZlZCBkZWJ1ZyBvcHV0cHV0IGJlZm9yZSByZXR1cm4uCgpjb21taXQgNDU3NTE5NjcyODdkOTc2NDBlZmRjZGY4ZTc3ZThkNDkwOTM5ZDhlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTQ6MTc6MTggMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RydG91bGwoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDJjMmZhNDgzMzZhNGYxZjE3N2MyOTkxZDY1MTVkMjlmMzk1MzNjNDQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjUwOjQ0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAwN2M2NjZmNmNlYTI3ZjJiMmFiOWJjMDhhZWQwY2I2MTMzZmUzNzU4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6MTc6NDUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxOgogICAgRmlkZXggZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAzYjY4NjU2NjI5NmRkODdiYzQyYjdmMTE2OWRhYWNkYjNjNDVjYzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAxOCAwNjoyNTo1NiAyMDEwICswMDAwCgogICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjNhN2QxYjA5NjA5ZGFkNjQ5ZjU4YmJkYjViN2UxMGQzOWIzOThjMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMTE6MDQ6MDYgMjAxMCArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZGU3M2JkMzY1YTM4MWI5YzM1M2NhNTIzMDc2OWVlZmIxYWM3MWVkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMTo0Mjo0MiAyMDEyICswMTAwCgogICAgbG9jYWwvcGFzc3Rlc3Q6IFJlbW92ZSBhbiBpbmNvcnJlY3QgUEFUSD0gc3RhdGVtZW50Cgpjb21taXQgNjk5NTEzZjEyMzhlMGFkY2UxZjFjZWM5OGUwZDE0NzI5M2ZjNTA0NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMDk6MjU6NTEgMjAxMCArMDAwMAoKICAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjM1OGRlZTcyZmIzNDdlMjYwMGEwYTdiZDIxZjIzMjcwZDNhMDBmNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6NTg6MTUgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6IEFkZCBhIGNvbW1lbnQKCmNvbW1pdCA1Mzk2YmZlMDMyYzhjYmM3M2M4ZmY1ZDRiMDg1ZWJhZGE5ZjU5ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDozMDoxNiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBmZWIzYWYyOGRjYWUyMjAxNWFlODY1YTJlNWRkOGM0MTZlOTk5MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDowMjowOCAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBiN2UxYWEyNTViYWU0YTM0NTNmOWVjYTY0NGE4NzY2MzQzNTFmMTFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyMCAxOTozNjoyOCAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2ggdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdCBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAgCWFwcHMvc25tcHRyYXBkLmMKICAgIAlzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jCiAgICAJc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICAJc25tcGxpYi9zeXN0ZW0uYwoKY29tbWl0IGY0N2EzNzUyODQ5ZGIwNzVlNmYyMDUzYjg1OTViN2I3OTJmYjY0NjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDE1IDEwOjU2OjA5IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDAyYjYwNTZkZjk1ZGE4YjY3MzAzNGUzOWMyYzdjMzg2ZWQwZjM2OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDExOjQ0OjUzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IGExOTg2NTgzMmZjNzdmNGMwNDgxNDRkOTFhNDMxYjFlOTRkMzI5ZjIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAxNCAyMzoxMjowNSAyMDA5ICswMDAwCgogICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzc5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2N2EzZTJlY2NiOTVmOWM5ZDA4MDllZmNiZGRjZDg2NmVlMzA2MmQ1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDE0OjI3OjE1IDIwMTAgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGNkZTJlOGE1OTVhNTI3ZjA2MTQyYzNiODUyZGU4NDMzYTFjZjI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gMjQgMTQ6Mjc6NTUgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMmUxNTI1YTg1YmRhNTI5OWEzYjlmMjQxNjE0ZjdlNjUwOWFlZWJhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDEzOjM1OjExIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgMjk1ZjQ3M2M4MzU0NjIyMWIyYTcxZDgxNWM2MWUzM2E2N2Y5OGFlMzogcmVmaW5lIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgaW1wbGVtZW50YXRpb24uCgpjb21taXQgY2I0MjNiMGFlOWVkMDA1OWFhMTAwZGM0ZTJmZDkzYWQxYjk3ZmFmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMTo1Nzo1MSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGUyZmIwOWUwMDkzZTJmNjQ4ZmUyNjM4ZGEyZjNhZjE4ZmRiMzJiZjAgLSBpbnRyb2R1Y2UgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L3NubXBfcGVybC5jCiAgICAJc25tcGxpYi9zbm1wX3NlcnZpY2UuYwoKY29tbWl0IGFmYzM5NmFiMTYxOGE4NTk1YTI1MTlmYmMyNWY3YTQ5OGUxNzQ0MTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjQ5OjM0IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIG5ldHNubXBfbWt0ZW1wKCkgYW5kIG1ha2VfdGVtcCgpLgogICAgCiAgICBUaGVzZSB3ZXJlIGJyb2tlbiBieSBjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OS4KICAgIEFsc28gcmVwbGFjZSBhIHN0cm5jcHkoKSBjYWxsIGJ5IGEgY2FsbCB0byBzdHJsY3B5KCkgYW5kIHJlcGxhY2UgdGhlCiAgICBtYWtlX3RlbXBmaWxlKCkgaW1wbGVtZW50YXRpb24gYnkgYSBjYWxsIHRvIG5ldHNubXBfbWt0ZW1wKCkuCgpjb21taXQgMjEwMTg1YzE1ZDBkNjVmMGVhOThiNWUzYzJlMDc3NmY2MjIyZDE3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6Mjc6NDMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNyYXNoIGR1cmluZyBzdGFydHVwIG9mIHNubXBkIGludHJvZHVjZWQgYnkgY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQuCiAgICAKICAgIEFsc28sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvcHkgb2YgdGhlIGNsZWFudXAgY29kZSBpbiBmdW5jdGlvbgogICAgbWtkaXJoaWVyKCkuCgpjb21taXQgOGJiNGU4NmFiY2Y5OGZmMjg3NDhhZjBhZjg5Yzk4ZTY0ZDVjZDk2MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDc6NDc6MTIgMjAxMiArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIG9sZG1hc2sgdmFyaWFibGUuCgpjb21taXQgNjY4MDE0N2IxMzhlYzExNGY4MWM1ZDEyOGFjOTM1MGM4NDUwZDA4MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTg6NDQ6MzEgMjAxMiArMDAwMAoKICAgIE1ha2UgdGVzdCBUMDE1aW50NjRfY2xpYiBwYXNzIG9uIDY0LWJpdCBzeXN0ZW1zCgpjb21taXQgM2FhZDE1YWU1NjBhYzg1N2U3M2M5MDc2NGU5MDNlN2NhMDJiMzI5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjQwOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgZm9yIGxhcmdlIE9JRCBuYW1lcwoKY29tbWl0IGZiYTE4OGVlODIwMTBiMmYyZDhjYTJlNDI2YmE2NTQ0OTlhYjNkMGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTozMTozMyAyMDEyICswMTAwCgogICAgZml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIF9fY29uY2F0X29pZF9zdHIKCmNvbW1pdCAyMWQyNWQ4NmI4ZTQ5MDRkNzk4ZGM4Yzk2ZGFkZTllNTA0ODQ1N2E4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MjY6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgcG9ydCBudW1iZXJzLgoKY29tbWl0IGQzNjkzMTg0MWIyZmMyY2ViYzYzNjRiMjk0OTEyOWEwYWQ0MmFkMWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowNTo1MSAyMDEyICswMTAwCgogICAgRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSBTdW1GaWxlIGlzIHVzZWQuCgpjb21taXQgMGVmZGQwMjJkYTA5YWYxYjVlMTYxNzFmYTdhMmI1MjNjNWQ2ZWM1OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNTYwYmM2YzA5Yjc1MTU1NmVmZDZiNGM0NDk1NzUxYjEwOWE5M2Y5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU5OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3csIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCA4MjkxZDdjNWI5MmEzMWRkNGY1ODJiNDk3ZDRiMmEwODUzMzY3YTU2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTU6MTYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KCmNvbW1pdCA4OGUxZjM0ZGU3MzAwNTc1ZmE2ZGFiODU3ZWNkZGIyNDJhODdkZTgwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDg6NTUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBiZTEzNzVhOTkyNmViZTBjZDViNzhhNDA0NWMzYmQxMWM4MzY2NGIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDY6NDkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgc2Vuc29yIG5hbWUgaXMgdG9vIGxvbmcuCgpjb21taXQgMWNiMjQ2MjUzNzIwNjJiMTRjNzFkN2RkNTFlMjBmZWY3NzNlMjc0MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQxOjAwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIENQVSBoYXMgdG9vIGxvbmcgbmFtZS4KCmNvbW1pdCA4NGM4MDdlZTAzMjUxZTU0ODU2ZTgzZDYyZDA2ZWEwOGI4ZGY1MjdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MzY6NTAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBjMzEwZTM5MGI1ZGQwNWYyNGJlN2ViMTkwNGM3NGU0MTI1OWM5M2RiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MjQ6NTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA0NjAwZDExNDM0ZTgzYjg2NTNjZjlmODEzYTNkOGI2MzA0NTViNDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTc6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIHBsYXVzaWJsZSBzdHJpbmcgb3ZlcmZsb3cgYmVmb3JlIHBhcnNpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgpjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjExOjAyIDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIChpbnNlY3VyZSkgU05NUF9NQVhQQVRIIGluIG1rZGlyaGllcigpCgpjb21taXQgODAxNjg5MGE0NDVmNmE3ZTJhODczYTA0ODczZDRlMjdiNmVlNjRlMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjQ4OjM0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBpbnRlZ2VyIHNpemUgb24gNjQgYml0IHBsYXRmb3JtLgoKY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzozMTozNiAyMDEyICswMTAwCgogICAgU2VjdXJlIG1rc3RlbXAoKSB3aXRoIHVtYXNrKCkgLSBvbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCBkb2VzIG5vdCBzZXQgMDYwMCBwZXJtaXNzaW9ucyBhdXRvbWF0aWNhbGx5LgoKY29tbWl0IDIwMjUyM2NhNzA0YmQ3MjJkYzFhYzBlMWU2YjBlNGI0ZTU0MjQ0OTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzoxMTo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyAnYycgYmVmb3JlIE5VTEwgY2hlY2suCgpjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjA4OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDJmNGU2YWNkNzE0MTgzZjAxNWI3NjM2NTdmOGYwODQ1OTMzNTdlMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDEwOjM4OjE2IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBJZ25vcmUgcGVybC8qLnltbCBmaWxlcwoKY29tbWl0IGMzNjVkODBjMTZjMmQxN2IxNjAwMTFlOGMxZjljYjk1ODk1NGU5ZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDA4OjM0OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IERvIG5vdCBpbnZva2Ugc2h1dGRvd25fcGVybCgpIGZyb20gaW5zaWRlIHRoZSBTSUdURVJNIGhhbmRsZXIgc2luY2UgdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4gQmFzZWQgb24gYSBwYXRjaCBwb3N0ZWQgYnkgSm9lbCBBdm5pIDxqYXZuaUBhcnViYW5ldHdvcmtzLmNvbT4KCmNvbW1pdCBkMDU5ZmI4NzhiMTQzNjU5OTk1M2NlYTVhMDc3NDk5ZGRjZGNiY2I1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE3OjAzOjU1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDA3NTI6IElGLU1JQjogUmVwb3J0IGludGVyZmFjZSBzcGVlZCBjb3JyZWN0bHkgZm9yIEV0aGVybmV0IGludGVyZmFjZXMgaWYgb3RoZXIgdGhhbiAxMCBNYnBzLCAxMDAgTWJwcywgMSBHYnBzLCAyLjUgR2JwcyBvciAxMCBHYnBzLiBBZGQgc3VwcG9ydCBmb3IgTklDcyBmYXN0ZXIgdGhhbiA2NSBHYnBzLgoKY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjY6MTcgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcwoKY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjU6MTAgMjAxMiArMDEwMAoKICAgIFN1cHByZXNzIHVuaW50ZXJlc3RpbmcgRG94eWdlbiB3YXJuaW5ncwoKY29tbWl0IGJlOTE2MWQzYTU4OThlODYzNzY3ZjkyNjYxMzQ4NjEyNmMyY2JmNjcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6MzU6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCgpjb21taXQgODZlNGMyYmUwODUyYTBhMTNiMDYwMzA3NTcyMGIzMjY0ZWM3MGRkZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjoyOToxMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAoKY29tbWl0IDM3ZTI3MmQ4ZjdiNzE4MGJhMTQwZmEzODZhNWZmMDU4OTY4YTA4YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTg6MjE6NDggMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgoKY29tbWl0IDI2OTkzMmZhMzJjN2NkNDc5NTc0ODk2OThlMDliZWUzMWY2M2I3YWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzQ6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAwZDFjMjFmOTk5MWQxMzA5ZDA1N2UzZTQwNTZkNTQ3ZGY3ZDQwZWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE2OjA2OjMxIDIwMTIgKzAxMDAKCiAgICBNYWtlIGRlY2xhcmF0aW9uIGFuZCBkZWZpbml0aW9uIG9mIHN0cmxjYXQoKSBjb25zaXN0ZW50LgoKY29tbWl0IDBjM2Q0ZGJiMGE5Y2Y1YjM1OWY3MGIyZjE5OTE1NDk1NTU0Zjg0MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MjM6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBzbm1wZDogUmVtb3ZlIGRsbW9kCgpjb21taXQgODkzZWNjOTdiNTg3NjYxMDQ1YmVjYmUwOWEzMjBjMWJjYmM3MWM3YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNjo1OSAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQoKSB0byB0aGUgTVNWQyBidWlsZCBpbmZyYXN0cnVjdHVyZS4KCmNvbW1pdCAzZDEyNjQyMmU2MjU3MDJiOWQzZmEwNjc2YTk3ZWM1Y2IyMGQ5ZDEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjAxOjA2IDIwMTIgKzAxMDAKCiAgICBNYWtlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGNvbnNpc3RlbnQgd2l0aCBpdHMgLmluIGZpbGUKCmNvbW1pdCBhZjUzYjc2YzJmZmE3NTFlMzk1OGQwZmM1ZDgyNzlmNzhjMmMxYzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjQzOjU1IDIwMTIgKzAxMDAKCiAgICBTa2lwIFQwNjZwYXNzX3NpbXBsZSBhbmQgVDA2N3Bhc3NwZXJzaXN0X3NpbXBsZSBvbiBNaW5HVwoKY29tbWl0IDM1YTkyZTY5M2QxMzNhNWIxMWU5ZTliNTk5ZGJmNDdlZGVmNDkzM2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMDg6MTY6MzYgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMgYWdhaW4sIHdoaWNoIHdhcyBhZGRlZCBhY2NpZGVudGFsbHkgd2hpbGUgcmVzb2x2aW5nIG1lcmdlIGNvbmZsaWN0cyAoY29tbWl0IDFkNzhmN2Q1YjU4YWVkMmI1MmM0ZDM4NmE3YmE4MGE0NDcxMWJhY2EpCgpjb21taXQgYTliMDczZWEzYjZjZWRmNzEzZTMwNWU3YjE1ZjI4YWU1N2JmZGYxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNzo0NzoxMSAyMDEyICswMDAwCgogICAgRml4IDY0LWJpdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDdlODkwZGFkOTVmNTY2MDY5ZWUyODAyMTVhNGZlYTNmMGUyZTM5ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTY6Mzg6NTAgMjAxMiArMDEwMAoKICAgIEF2b2lkIGEgU0lHU0VHViBpZiBjcCA9PSBOVUxMLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OC4KCmNvbW1pdCAxZjYyMDBjZmUxYjBiMjdlYmIwOTNhMTYwNmI1OTJmOWU5Njg0YmU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjUzOjM0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjYKCmNvbW1pdCBjMzEyNmIxNDM5MjFmYWJlYWM0NDIxNjZlY2E1YjViNzQyZmQ0MmMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjAyOjM5IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG1vc3Qgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNQoKY29tbWl0IGIyNGVlN2M5MDk2NTdkYjQzYmQ4YzVkOGMwMTA1NWNhMDg4M2M5Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDg6NDA6MzkgMjAxMiArMDEwMAoKICAgIEVsaW1pbmF0ZSBtb3N0IHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGNhbGxzCiAgICAKICAgIFVzaW5nIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGlzIGVycm9yIHByb25lIC0tIHNlZSBhbHNvCiAgICBodHRwOi8vd3d3LmdyYXRpc29mdC51cy90b2RkL3BhcGVycy9zdHJsY3B5Lmh0bWwuIEhlbmNlIHJlcGxhY2UKICAgIGFsbCBpbnZvY2F0aW9ucyBvZiBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKS4gUmVwbGFjZQogICAgc3RybmNweShkc3QsIHNyYywgbikgY2FsbHMgYnk6CiAgICAqIHN0cmxjcHkoZHN0LCBzcmMsIG4pIGlmIHRoZSBnb2FsIHdhcyB0byBhdm9pZCBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgogICAgKiBzcHJpbnRmKGRzdCwgIiUuKnMiLCBuLCBzcmMpIHRvIGNvcHkgYSBwcmVmaXggb2Ygc3JjIHRvIGRzdCBvciBpZiBzcmMgaXMKICAgICAgICBub3QgJ1wwJy10ZXJtaW5hdGVkLgogICAgKiBtZW1jcHkoZHN0LCBzcmMsIG4pIGlmIHN0cmxlbihzcmMpID49IG4gYW5kIG4gPCBzaXplIG9mIGRzdC4KICAgICogc3RyY3B5KGRzdCwgc3JjKSBpZiBuID4gc3RybGVuKHNyYykgYW5kIG4gPCBzaXplIG9mIGRzdC4KCmNvbW1pdCA2ZDk1YmM0MTQ5NDcyOTMxMDA1NDc1YzMwYTU0MWZlZDU1MzRkYTM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDExOjE5OjE2IDIwMTIgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgdHJpZ2dlcmVkIGR1cmluZyBjb21waWxhdGlvbiBvZiB0aGUgUGVybCB4cyBzb3VyY2UgZmlsZXMKCmNvbW1pdCBiYWQwNjAwZjZlYzk0NGVmODQ1NWUzMjdjZTc4NGI5YjA3ZDI0N2M5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjEzIDIwMTIgKzAxMDAKCiAgICBBZGQgY29uZmlndXJlIHRlc3QgZm9yIHNvY2thZGRyX3VuLnN1bl9wYXRoIHN1Y2ggdGhhdCB0aGUgY29tMnNlYyB0ZXN0IGlzIHJ1bgoKY29tbWl0IDkyYTMyYWM0ODY2YTVlZGM3ZjM0N2QzNzk0MmJmMDI4ZGUwMjc2MmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MjkgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgODNlNGMwZTMwNGY2MTdjY2FjNjYxMGVkZDc0ZDE3MDY3OTdiYmY1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNTozNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIGEgdGVzdCBmb3Igc2Vfc3RvcmVfbGlzdCgpCgpjb21taXQgNGZhZTU4NTIxMDNlYzM4OTNhZDQ4OGJjMGQ5MDVjYTY5MTQ1OTVlZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNzoxNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgdGhlIHNlX3N0b3JlX2VudW1fbGlzdCgpIGltcGxlbWVudGF0aW9uCgpjb21taXQgYjMyMjJiYjI3NWYyZjIzNDZlMGZkMDQ3OGFmYTJlZmI2MDA3NzNlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNjo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRGVjbGFyZSAidHlwZSIgYXJndW1lbnQgb2Ygc2Vfc3RvcmVfbGlzdCgpIC8gc2Vfc3RvcmVfc2xpc3QoKSAvIHNlX3N0b3JlX2VudW1fbGlzdCgpIGNvbnN0Cgpjb21taXQgMDIyZjg0MGZiZmNiMGUyNmIwOGYwZTU1NzI4MjMxZjYxMTQ5NTgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxOTo1NTo1NiAyMDEyICswMDAwCgogICAgQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQgc2VuZGluZyBVRFAgZGF0YQoKY29tbWl0IDY3MmE4MDljMjI4ZTk1NTBiOTliODkxMGJlNzVkMGIxNjE5ODU0MDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MzM6MDkgMjAxMiArMDAwMAoKICAgIEZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMjRmZjI2MGFkODljZTJhYTM2MWE1NWM3YzcyZTkxNjAzMWRlZmUzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzoxMToyNCAyMDEyICswMTAwCgogICAgQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc25tcF9zZXRfdmFyX3ZhbHVlKCkgYW5kIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZSgpIGZyb20gdV9jaGFyKiB0byB2b2lkKiwgbGlrZSBvbiBtb3JlIHJlY2VudCBicmFuY2hlcwoKY29tbWl0IGM2Y2E3MzdmYjQ2ZjkwYTRiZGE1ZDQzNzM0YWFjMzRlODM3YTA1ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDEzIDE5OjA3OjM3IDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZjUwNGNlMmQ3NGE0YmM4OGY2OGNjOTUxNWZhNzA1MzM3M2NiMTViNS4KICAgIChGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlIHBlcmwgc3ViZGlyZWN0b3J5LiBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuKQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlwZXJsL0FTTi9BU04ueHMKICAgIAlwZXJsL09JRC9PSUQueHMKICAgIAlwZXJsL1NOTVAvU05NUC54cwogICAgCXBlcmwvYWdlbnQvYWdlbnQueHMKCmNvbW1pdCBkMjEyZGM5ODRlYzM0ZTRkMjMwNjI1ZTQ2ZTU4YjBjNjI4YTUwZGY1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBTTk1QLnhzIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBiYWNlZWJiMTBkOGNhZjVkYjYzY2MzNjkzNWZlZDY1ZWU5MzEwMjlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjIyOjQ0IDIwMTIgKzAxMDAKCiAgICBBZGQgZGVjbGFyYXRpb24gZm9yIHNodXRkb3duX3NubXBOb3RpZnlUYWJsZSgpCgpjb21taXQgZjdmOTY2YWJkNmQyODQ5YjEzMzEyNTJhZmU1YzQ3M2U1YzQwYjMyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNDoyNDozMyAyMDEyICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoZXMuCgpjb21taXQgMzAzYzAxNWJjZmU5YWYwYjE1NGU5ODgxYzdiNGY0NDllMDhmMzBiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMjowNjoyMyAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGQzZWIyYjVjZWQyMmE4NDgwMDUzY2U0M2FjZjk3Mzk3MjkwNTU0MDQKICAgIChTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQgLyBmaXggZm9ybWF0IHN0cmluZyBtaXNtYXRjaGVzLAogICAgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKICAgIAlhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCgpjb21taXQgZDk1YjQwNDA2OTE2YmRhNWI0OGI1YTYxMzFiZWMyN2I4NjZiMGE3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMTo1OToyMCAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgYTJhNzMxNmMzMTBmMGZjYzM3Mjg2NzNmYTA0NzA1MWMyM2I3MTk2MAogICAgKFRyaXZpYWwgd2FybmluZyBmaXhlcywgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYwogICAgCWFnZW50L3NubXBkLmMKICAgIAlzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYwoKY29tbWl0IGQ4NmM0N2YwMDNmZGMxOTJiY2U3YjQ2YWM0ZjA2YjA5ZTM4N2MxMmIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjI5OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8KCmNvbW1pdCBiZWU0ZDc5Y2Y0ZWI3ZTBhNDUzOTdmNTliNTI5OGRhNjMzYThlMWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCgpjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlICd0b2tlbicgaXMgdXNlZC4KCmNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgb2ZmLWJ5LW9uZSBtZW1zZXQuCgpjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYXBwcy9zbm1wdGxzLmMKICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYwogICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKICAgIAlzbm1wbGliL3NubXBfY2xpZW50LmMKICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwoKY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDg6NDEgMjAxMiArMDEwMAoKICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZwoKY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAyOCAwNTo1MToxMyAyMDA5ICswMDAwCgogICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFlYWFmMzAyMzY5ZmQ0NTUyZThmZWU3YjZhODA1MDkxZWMwYTliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6Mzg6NTEgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCBhZWU0ZTg5NWZlM2JkNWY0YTYxZTM0Mjc1YmZjYTAzNjhiNTYwNTU1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozMToyMiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCA1ZDFkMGE3NDRhYjMwYzhlNjQ1YzNiODUwNmNiYmQyY2NlYjNkMjc1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTowNDo0OCAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgbmV0c25tcF9leHRyYWN0X2l0ZXJhdG9yX2NvbnRleHQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgMjk5ZWE5YTg5YzNmMTc1OGE3NzQ4YmI5YjM0MTFmNjJmMmM3MGY4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTQ6NTUgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZvcGVuKCkgcmV0dXJuIHZhbHVlLCBqdXN0IGluIGNhc2Ugb2Ygc29tZSByYWNlLgoKY29tbWl0IDkwZjFhZTY3NTc5MTc0ODE2MzZlZWY3NzEwMGNhZWViNTNlZGZlMDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDMgMTA6MDY6NTYgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0LmMuIFNvdXJjZTogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvY3Zzd2ViLmNnaS9zcmMvbGliL2xpYmMvc3RyaW5nL3N0cmxjYXQuYy4KCmNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1MDo1NiAyMDEyICswMTAwCgogICAgQWRkZWQgc3RycmNociByZXR1cm4gdmFsdWUgY2hlY2ssIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCAxOTlhMDUxMWY2ZWIwZWYzZmYxZDlmOTIyYjc5MGFiNjdkZmRlMDFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjMxOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogc211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCgpjb21taXQgZDg4MzU3M2FhNzNlMGY1ZmMxODhhY2VkZWU2NDUxZjk1ZGFlOTAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDoyMzowNiAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDdiN2EzZWIyNTAwNTI3ZWFhMTY5OTI4N2E2Y2E2ZmNjNGNjMmUwOGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDA6MDIgMjAxMiArMDEwMAoKICAgIEZpeCBhIGJ1aWxkIGVycm9yIGNhdXNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCAyYjZjMTE5ZmVkNDg0OGRhNjY2M2MxMWYwYzJjYmRjMjk5MjFiNWM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo1MToxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG5ldHNubXBfZHNfZ2V0X2ludCgpIGVycm9ycy4KCmNvbW1pdCA2Y2U1MzYwY2FhNGM5ZGU1MWFkZTU3ODc5ZTgzZjk2YmQwNGI0YzVhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo0MjoyMyAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3Npbmcgdmlldy4KCmNvbW1pdCBiM2JjNTRiZWQzMTY5MGE4NWRmMmFjZmJmMzI5NmRhOTNhOWU4OWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToyMzoxNyAyMDEyICswMTAwCgogICAgQ2hlY2sgc29ja2V0KCkgcmVzdWx0LgogICAgQWxzbyBjbG9zZSB0aGUgc29ja2V0IG9uIGVycm9yLgoKY29tbWl0IDkyMDc1ZjUxY2Q0NWEzOGNhMzg3NjBiM2ZmZTgyZTE2NTU5ZTljMmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjE4OjI2IDIwMTIgKzAxMDAKCiAgICBDaGVjayBvcGVuKCkgcmVzdWx0LgoKY29tbWl0IDY2NjVkNWZlMmZjNTY5ZDZmYTg1NGQxZDc4ZTM0N2JiYWM2OWUwNzAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIyOjIyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGE2NjQ4YzU0NTNlMWVmOGRhYzU3YTM4ZWZjYzAwY2NlNTNiZjllNGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIwOjI3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGQ2OGRjYWUwZjE4ZDU1NDU3MWFlZjMyMTk0NGE1MjkwNTQ4ZGRlODYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE2OjExIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGZiNmY4MGMwZmUzYmEzNmU1NmY1YjkxMWE0N2UzZjZmMzJiYTI2NmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE0OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBleGl0IGNvZGUgb2YgZW5jb2RlX2tleWNoYW5nZSB3aXRoIHdyb25nIGFyZ3VtZW50cy4KICAgIEFsc28gYWRkZWQgYSBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCAzMTMwZTI0ZmRjMjMyNDY0ZGQ3YmIyMTZmNDZjYWZhMmUwZTc3NWE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowOTo1NCAyMDEyICswMTAwCgogICAgQWRkZWQgbWlzc2luZyBicmVhawoKY29tbWl0IDE4YzEyNmE5NTY1Y2I0ZDY5ZDc1MTNiOTQ0YTIxMDU1ODgwNDVkMzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA3OjI5IDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDZkMzFjODIwNzBhMmM2OGZlM2M1MTllOWQ1NmZhMjc3OTU1NGQwMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGRjNmYwZTJlNTQ5YjRjZDA2MWViYzE5MDA4NGIxZmM3N2E1NWY0MGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMyOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGRhYjMyODY3ZWQwYjk5MzAxZWZkN2I4ZDg1MmFkMTI4OGExODRiZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMwOjMzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBRVUlURlVOIHVzYWdlLgoKY29tbWl0IGIxYTJiY2Y2NDYxNWViNjZiYzI0ZDViZTQ5NTBlNDUwMTI5NjIwNDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE4OjAzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGIyYjFjODUxYjk0ZmVkMzdjMzg2ZWFhMWJmZWFkNWM3NzY5NmUzZWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE0OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjU4OjQ2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBmb3IgZmFpbGVkIHJlZ2lzdGVyX21pYi4KCmNvbW1pdCA1OTQ5ZjA1NWMxNmFlNjUwNjE1YWFlN2ExZmVlM2YyZDdiMTZkOTQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDoyOTo1OSAyMDEyICswMTAwCgogICAgTWFrZSBNSUIgZmlsZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gbW9yZSBzdHJpY3QgLSBMQUJFTCBpcyByZXF1aXJlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIE1JQiBmaWxlcy4KCmNvbW1pdCBlNGI2NzM2ODNjNjhiYThiM2FiYzA0MGI5MTI1ZWMzMDQ2NDNjYzdjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIzOjAwOjI0IDIwMTIgKzAxMDAKCiAgICBBc3N1bWUgdGhhdCBsaWJkbCBtaWdodCBiZSBpbiBBR0VOVExJQlMgb3IgU05NUExJQlMgc28gcHJlYWRkIHRoZW0uCgpjb21taXQgYjEzYzFlNTdiZWRiYTc5YjgwNjEwM2M3NGYxOTIxZDUzYTcwNmIzOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMjo1NTowNiAyMDEyICswMTAwCgogICAgRG8gbm90IHJlcXVpcmUgdWNkLXNubXAvZGxtb2QgdW5sZXNzIGl0IHdpbGwgd29yay4KCmNvbW1pdCAyN2RjZWEwZDVmODAxZGY0OTRhYjJjYjVjNWMwZWJlNTRlYjBkY2QzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDo0ODoyOSAyMDExICswMTAwCgogICAgQWRqdXN0IHBhdGhzIGZvciB0ZXN0IHJlc3RydWN0dXJlCgpjb21taXQgMTRiNjBlODVhMWI1NzAwZTkzZDEyNmUyZjI5MWQ1YzQ4NWYzNGUzNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6MTQ6MjkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbiBnZW5lcmF0ZSBhIGR1bW15IG1vZHVsZSBpZiB0aGUgZGxvcGVuIGZ1bmN0aW9uIGlzbid0IGF2YWlsYWJsZS4KCmNvbW1pdCA5OGE5NzUzOGZjMWU5ZmY0NmI2MGQ1ZDk2OTM0NzQ0NDU3ODM3OGMwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMzozNToxMyAyMDExICswMTAwCgogICAgQWRqdXN0IHRoZSBwYXRocyB0byBzdXBwb3J0IHRlc3RpbmcgZXZlbiBpZiBidWlsZGRpciAhPSBzcmNkaXIKCmNvbW1pdCA4OGYwYWYzY2ZiOTE2YWU1ODYzY2MyOTg2MDcxZDQzNWYyMGMzMDY0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMTozNzo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGVzICdwJyBhbmQgJ2xlbicuCgpjb21taXQgMDgxNWE3NTM2Yzc2ZjdlNDg0MjYzODY4M2Y2NzQ4OTRhMWE4Y2UxNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjQyOjU0IDIwMTEgKzAwMDAKCiAgICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBTZXRVbmRvIHByb2Nlc3NpbmcKICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ1NDQwCgpjb21taXQgZWIyYWIyMzc0MmNhODZjMGI4OWNjZmU5MWViNmVhMzc0YmYzYWNjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjM3OjMxIDIwMTEgKzAwMDAKCiAgICBDaGVjayBmb3IgdGhlIGV4cGVjdGVkIGVycm9yIChFUElQRSkgb24gY2xvc3VyZS4KICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ3NDQ0Cgpjb21taXQgYWFjMTBiYzRmMDUzYzAxNGYzODJkNjU5M2ZjMzJhYjk1ZTBiMWE1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDEyOjU5OjUyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDYzNzY3OiBIYW5kbGUgcGFyc2luZyBzdWJpZGVudGlmaWVycyA+IDJeMzEKCmNvbW1pdCBiYmMwMmUzNmU5MGMxYWFiNzg5ODU2MmY5NjNmNWNhZGIyNmUxMGJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTc6MTU6MTYgMjAxMSArMDAwMAoKICAgIE1vdmUgcGFzcy9wYXNzX3BlcnNpc3QgdGVzdHMgdG8gdGhlIG5ldyBsb2NhdGlvbgoKY29tbWl0IDM4OThjMDRmZDZmODk4NjcwNjJmZGZlYmYzNjg1N2FiNjE5YzA0NTAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNjo1MzoyNCAyMDExICswMDAwCgogICAgQWRkIHRlc3RzIGZvciBwYXNzL3Bhc3NfcGVyc2lzdCwgc3VwcGxpZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBkNWVlM2YwYTFhNjNiYjE3NTJjNzRjYmNhNTVhYTNkNDBiZjliZjEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NTg6NTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NDQ0OiBGaXggU0lHX1BJUEUgaGFuZGxpbmcKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMmExN2IzNzQzMGMxODUyOTk4YzM1ODhlNTQ3ZDdlYjYxYzA2ZGE3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjQ1OjM4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0NDA6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIEFnZW50WCBlcnJvcnMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZmU1OGEwZTVmNGQ0ZTJlMmVjYmNiNDczODJiMDhjYjFlNGRmMzUyYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjE2OjIzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDU2NzcwOiBIYW5kbGUgKG9ic29sZXRlKSBVSW50ZWdlciB0eXBlIHByb3Blcmx5CiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDFiZThjZjA4YTY3YTkxODU1ZmVlMWVjNGEyZDhlMDg3Yzc4MTI0NTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODowNDoxMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDM3OiBMb2cgQWdlbnRYIGRpc2Nvbm5lY3Rpb25zCiAgICAoaW4gbGluZSB3aXRoIGNvbm5lY3Rpb25zKSBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDA2ODAzNzI4OTEwN2ZhYTJiYTNmNWNkMmZiMDBjMTk0OTRiYjlhMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzoyNzo0NiAyMDExICswMDAwCgogICAgSGFuZGxlIGFueSBHRVRORVhUIHJlcXVlc3QgT0lELCBub3QganVzdCBhIHNpbXBsZSB3YWxrLgoKY29tbWl0IGE3NGZhNTI4OTgzMTIzZDM1NWE4Y2RjYWE3N2RkNGViNGI4YzY5NTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzowMDoxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGFzczogUEFUQ0hFUzogMzQ5Mzk0OiBCcmluZyBwYXNzX3BlcnNpc3R0ZXN0IHNjcmlwdCBpbnRvIGxpbmUgd2l0aCBwYXNzdGVzdCoKICAgIChpLmUuIHVzaW5nIHRoZSBsZWdpdGltYXRlIHN0cnVjdHVyZSBvZiBORVQtU05NUC1QQVNTLU1JQikKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgYmJlNjQ5ZWJmYTYxZWEyMjM5OTE3MGIzNmI5OWRiMzBhMWRlODAxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE2OjU0OjM4IDIwMTEgKzAwMDAKCiAgICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMKICAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIHN0cnVjdHVyZSBmb3Igb3V0cHV0LiAgQmFja3BvcnQgb2YgU1ZOCiAgICByZXZpc2lvbiAxNzYzMiAod2hpY2ggdXBkYXRlZCAncGFzc3Rlc3QucGwnIGJ1dCBtaXNzZWQgJ3Bhc3N0ZXN0JykKICAgIENvcnJlY3QgaW4gYnJhbmNoZXMgNS41IGFuZCBhYm92ZQoKY29tbWl0IDgyZDA2YzcyNDdiMjJjOGIwMWQ0NWJmNTUwNDFkMmYxZTY0MjdkNDkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzo0NToxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc2NzE6IEZpeCBvdmVycmlkZSBoYW5kbGluZyBvZiBPSUQgdmFsdWVzCiAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAoKY29tbWl0IGJhNGE5Y2U1MWM5NjAwZjlmZGExNjhmMWU2ZWZmMzJhMWRiNjNjYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzoyNDoyNiAyMDExICswMDAwCgogICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKCmNvbW1pdCA4MjdjOGIyODgzMDE3MWZhYTljNjFkNTNlZmNhOWViNjYwMDU2MWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40Cgpjb21taXQgZjk4YTU0YTk5Y2FmN2I0NmIxMDBhOTIwZGI5NDJjYmNhOWM0MzkyNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCAyMzBkZjE0Zjk0YzM3MzZmZjM0Mzc5YTRlMjgxZWVhMzUzYjQ3ZjgwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIERlYyAyNiAyMzozNDoyMyAyMDExICswMTAwCgogICAgRG8gbm90IGFzc2lnbiB0bVN0YXRlUmVmIHR3aWNlCgpjb21taXQgYzk2YjNiNGQ4NTMwYWQ1ZTBlZmIwM2YyNGRhYjVlNWYxYTQ2MDAzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTg6MjEgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgdXNlLWFmdGVyLWZyZWUuCgpjb21taXQgYzU5NzhjODljZGUyNDQwZjRkMjBkYWRiYzlkMWRkOGRiNTYyZDU2ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTU6NDQgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgZG91YmxlLWZyZWUuCiAgICAKICAgIG5ldHNubXBfdGxzdG1BZGRyX2FkZCB0YWtlcyBvd25lcnNoaXAgb2YgaXQncyBhcmd1bWVudCBzbyBjYWxsaW5nIGZyZWUgb24gdGhlCiAgICBhcmd1bWVudCBvbiBmYWlsdXJlIGlzIGluY29ycmVjdC4KCmNvbW1pdCBjMTM5Y2ExMjNiNDRiYjNiOWI2YmY5MjFlMTYwOWNjNDVmNjNhNjYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6NTU6MzAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTk6IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM0YWUwMjFiMmU2Mzg0NDM3MDgxYzU2MjNmMzYwYzg4OTYzOTAxODgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyOTo1NCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBCYXNlZCBvbiBtaWIyYyBwYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM2YWNjZjhjNjYyNTRmYThjNDg3NjdlZDdkZWM3OTVkZGFmYzUyMmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyNzoxMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGE2MTgyNmFkOGNhNTQ2NjFkMWQ5MDk3MTI1MDNiZDNhOGIzMmVlZDAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDIyIDE4OjM1OjQ2IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAgCiAgICBteU1hdGNoIGlzIHVudXNlZCBhcyBubWF0Y2ggaXMgemVybyBhbmQgYWxzbyBzaW5jZSByZWdleEJ1ZmZlciBpcyBjcmVhdGVkCiAgICB3aXRoIFJFR19OT1NVQiBzZXQuCgpjb21taXQgYmE0ZmM4MGZlMmNmZDVhNWQ4OTIzMGQ4ZjM3MDNlNGZlMDFlNjAxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDIyIDE5OjI0OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQwMjM3NjogZnJvbSBMZW9uYXJkbyBDaGlxdWl0dG86IFJlY29nbmlzZSBSZWlzZXJGUwogICAgQWxzbyBtb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKCmNvbW1pdCBiNWFjNGEwNGRjZDU0NzBkMDhkMDMzMjFhYmNkMWU5ODI2MjFlNmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAyYjM3ZTRlOGYyNTBhMGQ4ODIxMTk5YTc0YWMzZjRlNWI3YjdiYWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzE6NTEgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAzZDA4MzQ1MTU2YzQxOTMzM2RlOTY5ZjEzZDIxZmNlYzdlMThlOTRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzI6MjkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCBjZDg1OWFkNTFjNGYxOGQ1YjBmYzY5ZGQ2NjlmY2IwNTFjNzk4OTY5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIG1lbW1vdmUgc2l6ZQoKY29tbWl0IDMwZmY1OGQwOWQ0YzlkNTQzOGJiNjIxMDU0ZmQ3YWQ3YTJhNTk3ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDowNzoxOSAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbGVuZ3RoIG9mIGJ1ZmZlciB3aGVuIHByaW50aW5nIEFTTl9CSVRfU1RSCgpjb21taXQgNmMxNDg3ZTFkMzYwZDNkMjYwYTM5Y2IxZjViMTVkYTk3ODM5NTA1MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ3OjM0IDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwb3RlbnRpYWwgZnJlZSBvZiB1bmluaXRpYWxpemVkIHBvaW50ZXIgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDQ6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVuaXRpYWxpemVkIHZhbHVlcyBpbiB1ZHBUYWJsZQoKY29tbWl0IGM0NDYwODY3OWI4OTc1MTE3NmYyOGEyZTU0ZDUyODJiNDZlMmEwNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo1NjoxMyAyMDExICswMTAwCgogICAgVXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyBhbmQgbWFudWFsIGNsZWFyaW5nCgpjb21taXQgYTA1YzVmOTUxMzQ2MTgyNGU3OTAzYWU5YWU5YTZjMzM4NmUzMzg3OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjQwOjUwIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwcmludGluZyBvZiB1bml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHNlbnNvcnNfZ2V0X2xhYmVsKCkgZmFpbHMKCmNvbW1pdCBlNGE1ZWRjNzIzOTNiZDNkZTliZjEyYmNlYmE5ZDgzYmJmN2RlNzBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6MzE6MjUgMjAxMSArMDEwMAoKICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZmFlMmU1YjgzNWI4ZGYxZWFlNDdlNGNlYmI0ZWI0MDRkNzI4MjM3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMxOjIxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaXRpYWxpemVkIGlpZCBpbiBlcnJvciBjYXNlcyBhbmQgd2l0aCBkZWJ1ZyBpbmZvIGVuYWJsZWQuCgpjb21taXQgOWQ1OGY4MWE5MjM5Y2ZiY2ZjOGViY2UzNjdkMjFlOWIzZGNiMDI4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMzOjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluIGVycm9yIGNhc2VzCgpjb21taXQgMGJjOGMwOGVkZWFlN2FlMDk1ZjExNjI1OGMyMGFlNTc2N2Q2MDY1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjIwOjUyIDIwMTEgKzAxMDAKCiAgICBGaXhlZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZSAnc3RhdHVzJyB3aGVuIHNzID09IE5VTEwKCmNvbW1pdCA3MzA0YzUzY2Y4YWRlZThlY2NlZjFhOGYyNjc1NmZjMDdmMDk4NzIxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxOCAyMzozMTo1MyAyMDExICswMTAwCgogICAgT24gc29sYXJpcyAxMCB0ZXN0IGluIC9iaW4vc2ggZG9lc24ndCBzdXBwb3J0IHRoZSAtZSB0ZXN0LiBSZXBsYWNlIGl0IHdpdGggLWYKCmNvbW1pdCA4Y2QzYmU2MGQ2OTNjOWMzNmZmYjk3ZDNkOWJjYjQ5YzFiNGFiZTM1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAxNyAwODo1MjoyNCAyMDExICswMTAwCgogICAgQXZvaWQgcmVwZXRpdGlvbiBvZiB0aGUgY29tcGxleCBleHByZXNzaW9uIGRldGVybWluaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KICAgIAogICAgVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIHBsYXRmb3JtcyBsaWtlIFNvbGFyaXMgMTAgdGhhdCBkZWZpbmUKICAgIElQX1JFQ1ZEU1RBRERSIGJ1dCBsYWNrIGVpdGhlciBvZiBtc2doZHIubXNnX2NvbnRyb2wgYW5kIG1zZ2hkci5tc2dfZmxhZ3MuCgpjb21taXQgOTUzZjJlM2Q0MjVlZGUzYjg2M2EyZTdjY2IwYjRiYzg2MjkyOGI1NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgNSAyMjoxMzowNyAyMDExICswMTAwCgogICAgTW92ZSB0aGUgdXNlIG9mIF9zZW5kdG8gYW5kIF9yZWN2ZnJvbSBiZWxvdyB0aGVpciBkZWZpbml0aW9ucy4KCmNvbW1pdCA2OGExMTczYzQ2Y2Y3NzYwMTQyNmNmMzkxZDlhODUyNzk0ZjIwNTdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyMCAyMDowNToxOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgb3V0IHRoZSBjbWVzZyBidWZmZXIgc2l6ZQoKY29tbWl0IDQ2MWRkMTZmM2IyNjQ3MzIyY2RjZTYzNjMwODFjYzQ0YmE1YTQ5YjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDI2IDIxOjUxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNZXJnZSB0b2dldGhlciB0aGUgTGludXggYW5kICpCU0QgdmVyc2lvbiBvZiBzcmMgcG9ydCBzZW5kaW5nLgoKY29tbWl0IDdhY2NiNjliYWExZmMwYjZhMzQzOWQyZTU0OWM4NmRhMzQ1M2JhZDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjMwOjMxIDIwMTEgKzAxMDAKCiAgICBVc2UgYSBiYXJlIHN0cnVjdCBpb3ZlYyBpbiBpbnN0ZWFkIG9mIGEgb25lIGVsZW1lbnQgYXJyYXkuCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlzIHRvIG1ha2UgX3JlY3Zmcm9tIG1vcmUgc2ltaWxhciB0byBfc2VuZHRvLgoKY29tbWl0IDM5ODUyY2Q0Yzg1ZWYyYmZjNzVjZGVhMjgyNTI2MWVlOTNlNzY4YzIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI5OjIwIDIwMTEgKzAxMDAKCiAgICBBZGQgY29tbWVudCBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBjYWxsIHRvIGdldHNvY2tuYW1lIGFmdGVyIGFsbW9zdCByZW1vdmluZyBpdC4KCmNvbW1pdCAxYjI5MmNhMjdlYWI1Y2FhNzNmZWFhYTgzZGM5YzEyYWJjMGYyZTcwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNzo1OSAyMDExICswMTAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlLgoKY29tbWl0IGJjODc5NTcxZWNhOTUyMGJjMTMyZjg0MGMzZTY1OWQzNzkzMTQ0ZDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI1OjM2IDIwMTEgKzAxMDAKCiAgICBJbnRyb2R1Y2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0byBlYXNlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBzZXJ2ZXIgYWRkcmVzcy4KCmNvbW1pdCBiN2VlYTZjZmZiZDg3MjkzMmNlMmMwNGZlZmI2ZjQzZGUzMzlmMzc0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxODozMyAyMDExICswMTAwCgogICAgUmVuYW1lIHRoZSBjbWVzZ3B0ciB2YXJpYWJsZSB0byBjbS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBpbmNyZWFzZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCgpjb21taXQgMGE3NDYxZTcyODgwNWM2MmExY2FiOWQ4N2JmYzc0Yzc5MjdhOWZjYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTU6MjIgMjAxMSArMDEwMAoKICAgIEZhY3RvciBvdXQgYSBjb21tb24gbG9vcCBpbiByZWN2bXNnIG9wdGlvbiBwcm9jZXNzaW5nLgoKY29tbWl0IGIzYzYyNDhkMDIwMWFiMTYxMDg0MGQ2ZDBlNzQ5YjNiNmM0YWQ3OTIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjEzOjQzIDIwMTEgKzAxMDAKCiAgICBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIExpbnV4IGFuZCBCU0QgcmVjdm1zZyBvcHRpb24gcGFyc2luZyBzb21ld2hhdC4KCmNvbW1pdCAzNTY0MDBkNjI5MGE0MjNiNTJlYmVlYTVhNWU5NzZmYjE1YmI3M2I0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTowNDo1NiAyMDExICswMTAwCgogICAgVXNlIENNU0dfREFUQSBvbiB0aGUgcmVzdWx0IG9mIENNU0dfRklSU1QvTkVYVEhEUiwgbm90IG9uIHRoZSBidWZmZXIuCgpjb21taXQgM2IzNTE3MDhjNjJkZTQ2YWExYjkwZWQyMzJjZmQ4YzdjNWIwMjIzMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMjowMDozMiAyMDExICswMTAwCgogICAgUmVtb3ZlIGEgY2FzdAoKY29tbWl0IGRlOTI1MGQ5ZGFlOTcyN2E2Y2M3ZjY0NzY4OGRkZGYxYjg1OTcxMjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTE6NTg6MDQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHNwcmludF9taWJfb2lkKCkgdHJlYXQgT0lEIGNvbXBvbmVudHMgYXMgdW5zaWduZWQgaW5zdGVhZCBvZiBzaWduZWQgaW50ZWdlcnMKCmNvbW1pdCAwZTMzYjNiNmQ1ODU0YTRiYWMxNWQ0ZWE1ZTAxNmM1M2QxNjFkMGNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEwOjAyOjI4IDIwMTEgKzAxMDAKCiAgICBGaXggcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IGI3ZTUwZDVmOWE2NzU1OTgyZDJhZjMxOTE0NzNjYjM0NjQzYmMwM2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlZHVjZSBvdmVyaGVhZCBvZiBjb25maWcgZmlsZSBwYXJzaW5nCgpjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbiBjb2RlIGludG8gcGFzc19jb21tb24KICAgIAogICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CiAgICBpbnRvIHBhc3NfY29tbW9uLgoKY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKQXV0aG9yOiBjY2NoaXUgPGNjY2hpdUBzb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTIwNjk6IEZpeCBzbm1wdHJhcF9vaWQgZGVjbGFyYXRpb24gaW4gbWliMmMgZ2VuZXJhdGVkIGNvZGUKICAgIAogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKICAgIHRpbWUgdGhlIDUuNiBicmFuY2ggd2FzIGNyZWF0ZWQgKHNlZSBhbHNvIGNvbW1pdAogICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCgpjb21taXQgZDQ5NGRiNjRjMjA4YjRkYzYyODEzMTMyZjg4NjNiZDVjMWEzOWQ3NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCgpjb21taXQgMjhmMjU2MWJjMjkzNWQ4ZTFjYmY0NmQyODIwMTU4MTczZTdhNGNmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBNb3ZlIHRoZSBtYWluIGxvb3AgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uCgpjb21taXQgMzk2ZTEyMmRkYzQyYTkxNmYwNmEwMjg4NGMwZThhMjU4ZWRiZTIzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1hdGNoIGVhY2ggZ2V0cHduYW0oKS9nZXRwd3VpZCgpIGNhbGwgd2l0aCBhbiBlbmRwd2VudCgpIGNhbGwgYW5kIGVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgoKY29tbWl0IDNlZmVmYmMwMDI0Mzk5Nzg2ZjhiNjhiMWU5M2IwYThmZGRkZGM3ZGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgN2YwNWRhYThlMGUwZjUzM2IwZjEyYTNlMWNmMDc2NDE1MTk5MDlkNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMTo1ODozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQ0OTM5OiBCVUc6IDE3OTY4ODY6IHNubXBsaWI6IEF2b2lkIHRoYXQgc3ByaW50X3JlYWxsb2Nfb2N0ZXRfc3RyaW5nKCkgZW1iZWRzIHVucHJpbnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkIG91dHB1dCBpbiBzbm1wdHJhcGQuCgpjb21taXQgZGI4ZjU1OGZkMmYzYjdjMTA5ZWEzYTFjMjEzM2I3NWI2ZjhjYjJhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDowNDo0MSAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXg6IHBhc3MgdW5zaWduZWQgY2hhcnMgdG8gaXNwcmludCgpIGluc3RlYWQgb2Ygc2lnbmVkIGNoYXJzLgoKY29tbWl0IDgwMGRjMTAyOGU3ZTBjZDhjYzE0ZDg0ZGQzMTcyM2Q0N2FjMDczZGIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MTg6NTggMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIGhpbnQgdmFyaWFibGUKCmNvbW1pdCA4M2VhNGEwODBjOTBhNzRiOTc0M2QzZjI0Y2YwZDRiOGExZThjODQ5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyNyAyMToxNjo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgcW9zCgpjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDQ6MDEgMjAxMSArMDEwMAoKICAgIFJlbW92ZSAjZGVmaW5lIHZhbCh4KSBfX1NUUklORyh4KSBhbmQgY2hhbmdlIHZhbCh4KSBpbnRvIF9fU1RSSU5HKHgpLgoKY29tbWl0IDJmMzc5YjBlNGVjYWRmYTRlNTQxZTMwMDVjOGZjODI4MTg4MmI3NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE1OjU4OjQ3IDIwMTEgKzAxMDAKCiAgICBGb2xsb3ctdXAgZm9yIGNvbW1pdCAxYWE3MDRlOiB1bmJyZWFrIHRoZSBNU1ZDIGJ1aWxkCgpjb21taXQgNjRlZjBmNzExMjc2MTc4MzcwMjdmYjJjZmFmMTc0Yjk1YmE3OWUwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MTk6NTAgMjAxMSArMDEwMAoKICAgIEFkZCBTTk1QOjpyZWdpc3Rlcl9kZWJ1Z190b2tlbnMoKQoKY29tbWl0IDdiZWFkOWNhOTE3YzY3NTY2ZDVlZDk4YWI1MDdiYmMwMjgxNjIxN2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA4OjA4IDIwMTEgKzAxMDAKCiAgICBBZ2VudFggc3ViYWdlbnQ6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCgpjb21taXQgMGVkNzE1NDFmODdlN2Q3OGJjOTk4ZWViZGEzMjE3YzU5ZTFkZjgzMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDM6MTkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IgbmV0c25tcF9yZWdpc3Rlcl9kZWZhdWx0X3RhcmdldCgpIGFuZCBuZXRzbm1wX2NsZWFyX2RlZmF1bHRfdGFyZ2V0KCkuCgpjb21taXQgOGMyOTcyYjYxZTQwMTY5YjQ3YzUwOTg4YjZhZTllOGMyODVmODRmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDI6NTQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEZpeCBzcGVsbGluZyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgU05NUCBtb2R1bGUKCmNvbW1pdCA1ZGYyYmFjNmJkNzE3Nzk5MzExZjAwMWFjN2I3M2RiODhmMTFiZGRhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODo1OTo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCgpjb21taXQgMTcxZThkNDhkNGFmMDQwMTNjZmY4ZmQyOGY1MzQxYTJhZWYyMWQ4OApBdXRob3I6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDE2OjQ5OjQ2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wLWJyaWRnZS1taWI6IEZpeCBpbmRleCBpbnRlcnByZXRhdGlvbi4KICAgIAogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBhIHdyb25nIGRhdGEgaW50ZXJwcmV0YXRpb24uCiAgICBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tIHRoZSBzeXNmcwogICAgYXR0cmlidXRlICdpZmluZGV4JyBUaGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN5c2ZzIGF0dHJpYnV0ZQogICAgaXMgYW4gaW50ZWdlciwgd2hpY2ggaXMgaGFuZGxlZCBhcyBoZXggYW5kIGxlYWRzIHRvCiAgICBpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCiAgICAKICAgIGUuZy4KICAgICAgICAkID4gc25tcHdhbGsgbG9jYWxob3N0IEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKICAgICAgICBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQKICAgIAogICAgYWNjb3JkaW5nIHRvIHRoZSBzeXNmcyBhdHRyaWJ1dGUgdGhlIHZhbHVlIGlzIDM2CiAgICAKICAgICAgICAkID4gY2F0IC9zeXMvY2xhc3MvbmV0LzxkZXZpY2U+L2lmaW5kZXgKICAgICAgICAzNgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+Cgpjb21taXQgODJlMzlmYjY3MDZkZjkwZWNmMmZjOWUxMGFkYTJiOTYyZWUxOTZmMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDI5IDEyOjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBGaXggbXVsdGktbGluZSBjYXNlIHRlc3Rpbmcgb2YgaW5jb21pbmcgT0lECgpjb21taXQgYjE1ZGExYTQ1MTYwNjExMDVhMWVhYzc0NTBjZjY1MGVjNDQyNjZiMgpBdXRob3I6IE5pa29sYXkgRGVuZXYgPG5kZW5ldkBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODoyOTo0OSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUmVzdG9yZSBJUF9SRUNWRFNUQUREUiBmdW5jdGlvbmFsaXR5LgoKY29tbWl0IDdmNDdmNTJlNDgxYmFhOWFhZmI1Nzg0MjQ0YjBkZDI2NTNlN2RjZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgU05NUF9BTExPQ19UWVBFREVGIHRvIGFsbG9jYXRlIHRyYW5zcG9ydHMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIHNlcGFyYXRlIGNhbGwgdG8gbWVtc2V0LgoKY29tbWl0IGNmODYwMzllMzA4NjIyNWMzMDg1YmI5YWRmMDg4YjhiYTViYTY5NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYiBwYXNzLgoKY29tbWl0IDFhODdlNzZlMDBlZTNkNWNkMzdhMDdiZmMzZDg0NDkwZDNjMmE0ZWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIgcGFzcwoKY29tbWl0IDg4NjdmZDFkY2ZlNzJiNTlkMDczMjJmZjM4YTY5OWI2NmVjNGYzMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHJvYnVzdCBhZ2FpbnN0IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLgogICAgCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBzdXJlIHRoYXQgb24gVW5peCBzeXN0ZW1zIG5ldHNubXBfbGFyZ2VfZmRfY2xyKCkgZG9lc24ndCB0cnkgdG8gcmVhZCBtZW1vcnkgaXQgaXNuJ3QgYWxsb3dlZCB0byByZWFkIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX2lzX3NldCgpIHJldHVybiBmYWxzZSBvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgoKY29tbWl0IDIzZGIwY2YwOWI4YjBlYWIzN2I3NDllZjBjM2MzZjMwNjkwMDI0NWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggY2FzdGluZyB0dl91c2VjIHRvIGludCB3aGljaCBtYXkgYmUgdG9vIHNob3J0Cgpjb21taXQgODBlZTQwMjJlNTM0ZTY0YWFkNWE1ZjI3MTkyODQzYjQyYWNiODVlMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KCmNvbW1pdCAwYmFhOTI5NmMwNzJiYjM3MzU3NjBiMGRkOTkyZjJkMWQzY2EyN2ZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAoKY29tbWl0IDFhYTcwNGU0YTI5NDQzMGIyOGUzOWI2ZjllNDY4M2I4YTQ4YmNlMDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQoKY29tbWl0IGNkYThmZTkxMDEzZjEyY2JmNjRhMDc3NWFiYjU1NzIwMDM1YWY5MzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKCmNvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CkF1dGhvcjogTmlraSBEZW5ldiA8bmlraV9kQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDE3IDIyOjQyOjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQogICAgCiAgICBUaGlzIGh1bmsgZmVsbCBvZiB3aGVuIHRoZSByZXN0IG9mIHRoZSBwYXRjaCB3YXMgbWVyZ2VkLgoKY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKCmNvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IGNkMzJjMmRmZjA2YjliNDUyY2MxOGQ1NTJkMmYyMjM0MDkyYzgyOWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE3OjA5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHdhcm5pbmcKCmNvbW1pdCA4ODMxMzZjMmIyZmEwNzM5ZjQzN2E4Y2ZiNjYxNGFjY2M3NmUyNjhlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNTo1OCAyMDExICswMTAwCgogICAgTW9yZSBuZWVkcyBmb3IgTkVUU05NUF9QUklvIGZvcm1hdCBzcGVjaWZpZXIKCmNvbW1pdCBiODA4NGE3Y2NjOTA5YjZkNmRiN2MwZThlNTk2ZDc4NjcxZjU2NzhiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNDoyNiAyMDExICswMTAwCgogICAgRml4IHVzaW5nIGNoYXIgYXMgYXJyYXkgaW5kZXggKGN0eXBlLmgpCgpjb21taXQgODQ1MjllNjMyMGE4OWQ5N2YxMzE0YWViYWQ4MDYyNTVkMmExYjE4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MDA6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0Cgpjb21taXQgNGJkMDM1Mjk1NWEyNTUxYmZlMDIzMDhkZDEzNGI5MTI4Yzk4YjllOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMAoKICAgIEZpeCBwYXJhbnRoZXNpcyBwcm9ibGVtCgpjb21taXQgZmU2MjY5YjE5MDBjZjQ0ZGMyN2ExOTlhNzYxZDE1YTAxYzNmMzA5MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTg6MzQgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzo0MzozNCAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzozNzo0OSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzCgpjb21taXQgMjVjZmMxOTYyYWU1NzZjY2IxNTU4ZGExZTNlZjhiNmMxN2Y2M2MxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTE6Mjc6NTMgMjAxMSArMDEwMAoKICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKCmNvbW1pdCAwZTg2Yzc4MWYzOTg5YmYwMjJjODk5M2ExMTg2MTdiNzRhNzU0MjBjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNzoxOSAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCgpjb21taXQgYmYyNjRkMTVkZWQ3YWNiYmYyZTM4NzFiOThmZDFmY2VmNDNkOWVjMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTY6MTYgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgNTdmZjhhNDBiYWU1ZDliY2FkMTYwODkxNDJhOWNmMzI4YzlmYTFmNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTQ6NTcgMjAxMSArMDEwMAoKICAgIGRpc21hbi9waW5nLCBkaXNtYW4vdHJhY2Vyb3V0ZTogQ2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgOGEyNTAyYTE1YzMyMTdiOTU5MzlhM2M4MzYxNjdkMjMwYWMzNWYwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTM6NTMgMjAxMSArMDEwMAoKICAgIFVwLXRvLWRhdGUgbGlzdCBvZiBSRkNzIHdpdCBtaWJzCgpjb21taXQgZGNkZDcwMjExMWQ4ZGE1ZjUzODA0Y2ZjZjBkZmRhZDczMTQ2OGJkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDE1IDEwOjU3OjM0IDIwMTEgKzAwMDAKCiAgICBEb24ndCB0cnkgdG8gaW5zdGFsbCBhbiBlbXB0eSBsaXN0IG9mIG1hbiBwYWdlcyAoTUFOMykKCmNvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMzozNDoyMCAyMDExICswMTAwCgogICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KCmNvbW1pdCA5MjNlZWNjNTA3Zjc1MDQzYjYwYzVlNjgwNTNhNGYzOTZhYjBiMGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMjozNjozOCAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXggZm9yIHN5c3RlbXMgd2hlcmUgdWludDY0X3QgPSB1bnNpZ25lZCBsb25nIChlLmcuIFJIRUwgNi4xL3g4Nl82NCkKCmNvbW1pdCA0MzRiZmMxZjc0NTc1NTBiNmY4N2Q1YmNkNTExMjc2YjI3MGI1OTY0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTQgMTE6MjI6NTMgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KICAgIAogICAgT24gMzItYml0IHN5c3RlbXMsIHNubXBkIGRpZXMgd2l0aCBhZm9yZW1lbnRpb25lZCBtZXNzYWdlIHdoZW4gdXNpbmcgZmlsZSBkZXNjcmlwdGlvbnMgPiAzMiwgZS5nLiB3aGVuIGhhdmluZyA+MzIgQWdlbnRYIHN1YmFnZW50cy4KCmNvbW1pdCBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMToyMSAyMDExICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yIGNvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwoKY29tbWl0IGVhY2E3OTgzZTM2NTVhYjY5NmZjYzQ0NjFjYTBjZWRiYWM2Y2U2OWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAwOjEyIDIwMTEgKzAxMDAKCiAgICBOZXRCU0QtNjogT25lIG1vcmUgaW5zdGFuY2Ugb2YgdGltZXNwZWMgcmVwbGFjaW5nIHRpbWV2YWwKCmNvbW1pdCA4YWQ2YzUzZmRlYzVhZGVhZTRlNTJmMTc1MWVjZWM0YTM0NWJhYjA1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCgogICAgRml4IGJ1aWcgIzM0MzY1Mjc6IGFycF9uZXRsaW5rOiBmaXggZHlpbmcgcmVsb2FkIG9mIGNhY2hlCgpjb21taXQgMzc4ZmZlZDAzYmE3OWE4MzQ2ZDZjNjI3ODFlMmRkZjVjZTkyYTQ3OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzY1Mjg6IHN3aW5zdF9wa2dpbmZvOiByZWNvdmVyIGZyb20gTlVMTCByZXR1cm4gZnJvbSBvcGVuZGlyCgpjb21taXQgZDdhZDhmNWY5ZjNmNjdmMTZmNjVjMjUxNWQxMWUxOTRkMmNkZDEyYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEN5Z3dpbjogTWFrZSBkYXRlX25fdGltZSgpIHByb2R1Y2UgdGltZSB6b25lIGluZm9ybWF0aW9uCgpjb21taXQgYmEzNWM1MGIyZjQ1OWJkOWMxMWVkNTljYzdkMWIxNjIxNTY0NGZhMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MTc6MDQgMjAxMSArMDEwMAoKICAgIFJlcGxhY2UgQUNfVFJZX0xJTksoKSBieSBBQ19MSU5LX0lGRUxTRSgpCiAgICAKICAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCgpjb21taXQgZjYxNWJmMjRmNWQwZjIzY2U5MzAxZGE1NTYxODRkNjQ2MDc0MDQ1NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMjo0OSAyMDExICswMTAwCgogICAgRmlzIEJ1ZyAjMzQzNDgyNDogU0lHU0VHViB3aGVuIHJlYWRpbmcgZGlzayBkaXJlY3RpdmUgYWZ0ZXIgU0lHSFVQCgpjb21taXQgYTk0YTE3OWQ5MzQwZjUxZmE3YzIzNDMxNjMwYmMwZmZkNmQ3NTllOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMDo1MSAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzMzYxNjogZG9udCB0cmVhdCBEYXRlQW5kVGltZSBhcyBhIHN0cmluZwoKY29tbWl0IGIyOWU0MTY0NTMxZDI1OGZlMzRhNmZlMmI5ZTFlYzYwYzU2Zjk1NDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDcgMDE6MjU6NTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDE1OjA1OjAwIDIwMTEgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgYWJvdXQgY29udmVydGluZyBzb2NrYWRkcl9pbiAqIGludG8gc29ja2FkZHIgKi4KICAgIAogICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCgpjb21taXQgMmU3ZTllZGEwYjBkNjJhNzY0NWE5YThmNzBlZjNmYjZmM2RkNjk0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCgogICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCgpjb21taXQgMzQ2MmViY2RkMGI3YzI5OGNiMTVjMzA5OTczNmY0Zjk1MjI1Nzg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAoKICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDNlNWZlZGQzZTdkMWVmMzE2ODM2MDRiZjczZGM1NmU5NDRjYWQzNDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAzIDA5OjQ1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgIAogICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KCmNvbW1pdCAwZmM4MjIxYjI0OTg4YzRhZTYxODBlZDQyYjg2Yjk4NTJmZDU4NmFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKCiAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQoKY29tbWl0IGE1YjI4ODI5ZTY0ZDVmM2I4N2U0YjliMWVmOGNjMjA0ZjMzYTYxYjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjE6MjU6MDcgMjAxMSArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgJEFXSyB0byBnZXQgYSB1c2FibGUgbmF3awoKY29tbWl0IDI4MDFhMjEzOWYyNzAyMWUxYWIxNWUzNjJlMmQzZDYyNGZmYWE0OTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKCiAgICBQYXRjaCAjMzQwNjM2NDogRml4IHVuc3RhYmxlIGRhdGEgZm9yIE5ldEJTRC4KCmNvbW1pdCA4MjFhNThkMTEyZDdhYzQ5NTE0OWUyNjJkNzA0NDEyYmEyODAwNDM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCgogICAgRml4IGlwdjYgc3RhdGlzdGljcyBsb29waW5nIHRvbyBmYXIgd2hlbiBzY2FubmluZyBpbnRlcmZhY2VzLgogICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KCmNvbW1pdCAzNDk1OTFkMDNlMTdhNTViNDNlYWNjNmE2ODdiMDJmZDhkNGU5NTI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE9jdCAzMSAwODo1OTozNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCgpjb21taXQgMWVjNzExMGU3MmJjZTE1NjFmNzQ2NTE3NDU5ZDZmMDQzMDE2YjYwZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMzAgMTk6MDU6MzAgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgoKY29tbWl0IDZkMjY5MThhZjU1YWEzNjYyYTcyMDU0MmRlNzdiYmYzOWIwYTNlOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDI5IDA4OjM0OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KCmNvbW1pdCAyOWJmNjlkNzA0MjRmMzU5ZDljODdmMDdhOTY0YTA5OTQxNTY0OWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgogICAgCiAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCgpjb21taXQgMmNjOTUwNGI5YmI4NjI1Yjk0YmU2Y2RhN2U2MDk5M2QwNTljZDkyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyODUwNjogRml4IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigpCiAgICAKICAgIFRoaXMgcGF0Y2ggc2hvdWxkIGZpeCB0aGUgcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieSBjb21taXQgODVkOTZjNCAoTWF5IDEzLCAyMDExKS4KCmNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyNyAwODoyMDowMCAyMDExICswMjAwCgogICAgTWluR1c6IEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIE1pbkdXJ3Mga2lsbC5leGUgYW5kIHRoZSBTeXNJbnRlcm5hbHMgcHNraWxsLmV4ZQoKY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDEwOjQyOjI5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcGFzc2luZyBhIGNvbnN0IHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBhY2NlcHRpbmcgYSBub24tY29uc3QgcG9pbnRlci4KCmNvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMzowOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNldC1idXQtbm90LXVzZWQgdmFyaWFibGVzCgpjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzI6NDYgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjYgMTQ6MDU6MTYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gU2lkZGhlc2ggUG95YXJla2FyOiBwcm9wZXJseSBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgaW4gYSBzdWJhZ2VudCB3aGVuIHdlIHJlY29ubmVjdCB0byBtYXN0ZXIuCiAgICAKICAgIEFuIHNubXAgc3ViYWdlbnQgbGlua2VkIGFnYWluc3QgbmV0LXNubXAtbGlicyBtYXkgY3Jhc2ggaWYgaXQgaGFuZGxlcyBhCiAgICByZXNwb25zZSB3aGljaCBoYXMgbWFnaWMgcmVmZXJyaW5nIHRvIGFuIG9sZGVyIGRpc2Nvbm5lY3RlZCBtYWluIHNlc3Npb24uIFRoaXMKICAgIG1heSBoYXBwZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgIGF0dGVtcHRzIHRvIGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBvbiByZWNvbm5lY3Rpb24gb2YgdGhlIGRpc2Nvbm5lY3RlZCBtYXN0ZXIKICAgIHNlc3Npb24uCgpjb21taXQgYWUwNTI0NzJiMjI3MjBkMDgzNjllODUxMjdkYjIxNDI0NWRmMmUzZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDI1IDE2OjE1OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgIAogICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgoKY29tbWl0IGMxOTliZjkxYjYyMzlmMjZiMmFhYjM0ZTg1NzVlMGYwZGY5Y2RlOWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyNCAxNDoyNToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHhmcywgamZzIGFuZCB2eGZzIGZpbGVzeXN0ZW1zIGFyZSBub3cgcmVjb2duaXplZCBpbiBoclN0b3JhZ2VUYWJsZQoKY29tbWl0IDc0N2ZkYzcxZTY0ZDA5ZTA4MDkyOGViYmI0ZDA0Y2JkZTM5MDY3OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDE1OjU3OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KICAgIAogICAgVGhlIG1lc3NhZ2UgaXMgc2hvd3MgdXAgd2hlbiBzbm1wZCBpcyBzdGFydGVkIGFuZCB0aGVyZSBpcyBkaWZmZXJlbnQgc2V0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0aGFuIGl0IHdhcyB3aGVuIHNubXBkIHdhc3QgbGFzdCBzdG9wcGVkLiBUaGlzIGlzIGNvbW1vbiBvbiBwcHAtc2VydmVycyBvciB2aXJ0dWFsIGhvc3RzLgoKY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIzIDA4OjUxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSB0aGUgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZSB3b3JrIGFnYWluCiAgICAKICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKICAgIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyBzZXQuIEluIHRoaXMgbW9kZSB0aGUgZmlsZSBuZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaAogICAgaXMgcmVxdWllcmVkLiBUaGF0IGZpbGUgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zCiAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgogICAgQ2hhbmdlIHRoaXMgdG8gdW5kZWZpbmUgTkVUU05NUF9NSU5JTUFMX0NPREUsIGVmZmVjdGl2ZWx5IHR1cm5pbmcgb2ZmIGZlYXR1cmUKICAgIHN1cHBvcnQgZHVyaW5nIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgd29yayBhdCBhbGwuCgpjb21taXQgNmVmNjkwNzY0MjI0N2M2NjNiOWI4OTY0YjlmZDQ0YTIxMWRiY2FhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MDgzOTg6IEZpeCBhIG1lbW9yeSBsZWFrIGluIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuCiAgICAKICAgIFRoaXMgbWVtb3J5IGxlYWsgd2FzIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgOWJmM2Q5NmQ5NmE4ZWNkNGE1ZmMzNWMzMjZkYzkzNzQ2NzAwMmI2YzogSW5pdGlhbCBIQUwKICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgoKY29tbWl0IGNmODJiODk0YjIyMTdjMjZlZGM2ZjEzNTYzNTFjOTMyNDE1NjA0ZTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDE1IDE0OjQ1OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIHZpYSBjb21taXQgNmNhYzA1MCAoTWF5IDUsIDIwMTEsCiAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCiAgICBzbm1wZC5jb25mKS4KCmNvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgY29tcGlsaW5nIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IHdpdGggdGhlIE1pbkdXIGdjYyBjb21waWxlciB0cmlnZ2VycyB3YXJuaW5ncyBhYm91dCAicHJhZ21hIGNvbW1lbnQiLgoKY29tbWl0IGIxN2E3MmE3OTM0ODNhZWU0YTViYjJmMmUyYzdmNGZkODY5ODE3ZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjIyOjIwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCB0aGUgUEFDS0FHRV8qIG1hY3JvcyBkZWZpbmVkIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2F1c2UgdHJvdWJsZSB3aGVuIGluY2x1ZGluZyB0aGlzIGhlYWRlciBpbiBhIHBhY2thZ2UgdGhhdCB1c2VzIHRoZSBHTlUgYXV0b3Rvb2xzLgoKY29tbWl0IDY2NGQzYWUxMDdkNzU0MDUxYjhjNDIyNzlkNDU5YWE1N2ExYmUxYzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKCiAgICBNaW5HVywgaHdfZnN5czogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVycyBpbiBhIGRlYnVnIHN0YXRlbWVudC4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCA3NmZmMjVkLgoKY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE1OjUyOjQzIDIwMTEgKzAyMDAKCiAgICBBdm9pZCB0aGF0IGdjYyA0LjYgY29tcGxhaW5zIGFib3V0IHNldCBidXQgbm90IHVzZWQgdmFyaWFibGVzCgpjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KCmNvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE1OjU4OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXQgdGhlIHJwYXRoIGZvciBsaWJwZXJsLnNvIGluIGxpYm5ldHNubXBtaWJzLnNvIHN1Y2ggdGhhdCB0aGUgZHluYW1pYyBsaW5rZXIgY2FuIGZpbmQgbGlicGVybC5zbyB3aXRob3V0IHJlcXVpcmluZyB0aGUgdXNlciB0byBtb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLgogICAgCiAgICBUaGlzIGNoYW5nZSBpbiBhZ2VudC9NYWtlZmlsZS5pbiBpcyBuZWNlc3Nhcnkgb24gdGhlIDUuNSBicmFuY2ggYW5kCiAgICBsYXRlciBidXQgbm90IG9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcwogICAgYW4gb2xkZXIgdmVyc2lvbiBvZiBsaWJ0b29sIHRoYXQgcHJvcGFnYXRlcyB0aGUgcnBhdGggb2YgZGVwZW5kZW50CiAgICBsaWJyYXJpZXMuIFRoaXMgaXMgY2FsbGVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jeSB0cmFja2luZyBpbiB0aGUKICAgIGxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQogICAgYnV0IG5vdCBpbiBsaWJ0b29sIHZlcnNpb24gMi4gRm9yIG1vcmUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBhYm91dAogICAgZHluYW1pYyBsaWJyYXJpZXMgYW5kIHJwYXRocywgc2VlIGFsc28gdGhlIGRvY3VtZW50IHdpdGggdGhlIHRpdGxlCiAgICAiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpIChodHRwOi8vd2lraS5kZWJpYW4ub3JnL1JwYXRoSXNzdWUpLgoKY29tbWl0IDg5MjVjOTEyZDI2Mzk3NTJhODRiY2ZmZWVmMWI3MGE4MTAyNjQ0OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MjE6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBIT1NULVJFU09VUkNFUy1NSUI6IEFkZCBtaXNzaW5nIGJyYWNlIGluIGEgZGVidWcgc3RhdGVtZW50Cgpjb21taXQgNzZmZjI1ZDliZjk3NTc5ZTcyMTMxMDIwNjVmZDUwOTZmMDQ5YTRjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoxMzoxOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTdG9yYWdlVGFibGU6IGZpeCBidWcgaW4gaGFuZGxpbmcgbGFyZ2UgZmlsZXN5c3RlbXMsIHdoZXJlIGxhcmdlIG1lYW5zIGFib3ZlIDggVEIgKD0gMioqMzEgKiA0MDk2IGJ5dGVzKS4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgNzFkODI5M2YzODdhNmNkNjZiYjBkYmIxM2MwZjUwMTc0ZDJlNjc4Yi4KICAgIEZvciB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCwgc2VlIGFsc28KICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2Z1bmM9ZGV0YWlsJmF0aWQ9MTEyNjk0JmFpZD0zNDE5ODI1Jmdyb3VwX2lkPTEyNjk0LgoKY29tbWl0IDg2NjAzM2RiOTkwNGZmYjEyMDNmMjgzZjgzODA5MmU0Y2Y2OGRlNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDc6MzM6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc3B1cmlvdXMgI2VuZGlmIHRoYXQgc2VlbXMgdG8gYmUgdGhlIHJlc3VsdCBvZiBhIG1pc21lcmdlLgoKY29tbWl0IDIwZjRmMzI2N2VlMjBkNTU3MDViN2E0Mzc4OTg3OWMxMDNmOTY2MjAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDA6MDg6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbWlzc2luZyBlbmQgY29tbWVudHMgdG8gZmVhdHVyZSBpZm5kZWZzLgoKY29tbWl0IGU1ZGUyY2M1N2JmMzA0ZjMzMjBjYWQwMDM0ZDJlYTJkOGFlZGM0MzYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDk6MTU6MTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBMb2cgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2UgaWYgZW1iZWRkZWQgcGVybCBpbml0aWFsaXphdGlvbiBmYWlscwoKY29tbWl0IDVlZWY5OTkwZGUyOGY2MzExMWU2YzA5M2JlMGYzYzdhZTJkNTEzYTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDU6NDkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEFkZCBhZ2VudDo6dXB0aW1lKCkKCmNvbW1pdCA2ODEwZWQ0MmY5YmM1NjA3NTBkNmRiZmI3ZTUwYjZlMmFjMTE4OTljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogQ3l3aW46IGFnZW50OiBJbXBsZW1lbnQgZ2V0X3VwdGltZSgpIHN1Y2ggdGhhdCBxdWVyeWluZyBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3lzdGVtVXB0aW1lIHJldHVybnMgYSBub24temVybyB2YWx1ZS4KCmNvbW1pdCA5NzE3MmIzMTFkMjBmNDQ0MWM3YTdlOTAwOTJiNTljMWUwZGE5OWY3CkF1dGhvcjogVGhvbWFzIEphcm9zY2ggPHRqYXJvc2NoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDY6MzkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFBBVENIOiAzNDE4NjQ5OiBIT1NULVJFU09VUkNFUy1NSUI6IFVzZSBwY2xvc2UoKSBpbnN0ZWFkIG9mIGZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KCmNvbW1pdCA2NTkxOTM3YWRiODUwMDBjMjcwNjljNGJlODRjZjQ2ODg4MzhlYmNkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGRlcGVuZGVuY2llcyBvbiBARkVBVFVSRVRBUkdTQCB0byBtYWtlIHRoZSBzdWJ0YXJnZXQgd29yayBhcyB3ZWxsLgoKY29tbWl0IGI5YzgwMTJlYzAzNWJjMDg0ZjE3NTg3NmZlY2MzNzUxOTVmOWJlODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgdGFyZ2V0IHRvIGJ1aWxkIGFnZW50eHRyYXAgZnJvbSB0aGUgdG9wbGV2ZWwKCmNvbW1pdCA5OTU2NDdjMGNmZTAwNDEyMjYyY2M1Nzk3YmRmYWU5ZDAwYjcwYzc2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE1OjQ0OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIHRoZSB1c2Ugb2YgLUwgZmxhZ3MgZm9yIGludGVybmFsIGxpYnJhcmllcyBhcyBpdCBjb25mdXNlcyBsaWJ0b29sLgoKY29tbWl0IDkzZGMxMjM1YTBkYjU4ZmZkMjk2MTdjZmYwMGRjMTEyNjM3ODAyMDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6MzE6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIG1ha2UgYXBwcyB3b3JrIGFnYWluCiAgICAKICAgIGFwcHMgaW5jbHVkZSBzbm1wdHJhcGQgYW5kIHRoYXQgcmVxdWlyZSB0aGUgYWdlbnQgbGlicmFyaWVzIGFzIHdlbGwuCgpjb21taXQgYmE0MTQ4OGVkNDRjZDIzYzI1OTYzZDRmYzU2YzQ3Njg1M2IyYWI1OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMToyOTozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdoZW4geW91IHNheSBtYWtlIGxpYnMgeW91IGV4cGVjdCBhbGwgdGhlIGxpYnMgdG8gYmUgYnVpbHQuCiAgICAKICAgIFRoaXMgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBzbm1wdHJhcGQgdGFyZ2V0IGF0IHRoZSB0b3AgbGV2ZWwgd2hpY2ggb2J2aW91c2x5CiAgICBleHBlY3RlZCBib3RoIGxpYnMgdG8gYmUgYnVpbHQgYW5kIHNvIGZhaWxlZCB0byBjb21waWxlIGJlZm9yZSB0aGlzIHBhdGNoLgoKY29tbWl0IDMwNTdjNzNlMDkzNDczYmU0NjI1NGJjZGZiNGNhNzg4ZTQzMmQxYjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCgogICAgTkVXUzogYnVpbGRpbmc6IFBBVENIOiAyMDkxMTU2OiBjb3JyZWN0bHkgZGVjbGFyZSBkZXBlbmRlbmNpZXMgaW4gTWFrZWZpbGUuCiAgICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KICAgIAogICAgQmFja3BvcnQgdGhpcyB0byBWNS00IGFzIGl0IGlzIG5lZWRlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gaW4gdGhlIHNpbmdsZQogICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgoKY29tbWl0IDZlYWUzNDBmYTJhNjQwODY1OTI5ODJjYzUyNzM1YmMwMTQ4N2Q5NzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDEgMTk6MzM6NTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCiAgICAKICAgIElmIHlvdSBoYXZlIGxpYmJzZCAwLjMuMCBpbnN0YWxsZWQgdGhlbiB0aGVpciB2ZXJzaW9uIG9mIG5saXN0Lmggd2FybnMgYW5kCiAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKICAgIG5lZWQgdGhhdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgYXMgd2Uga25vdyBob3cgdG8gZG8gaXQgb3Vyc2VsZiBzbyBpdCBiZWNvbWVzCiAgICBwdXJlIG5hZ2dpbmcuIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmluZSB0aGF0IGNoYW5nZXMgdGhlIHdhcm5pbmcgaW50byBhbgogICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAogICAgZm9yIHRoZSBmdXR1cmUuCgpjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTk6MDM6MDIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEVuYWJsZSBzZW5kaW5nIFNOTVB2MiB0cmFwcyB3aXRoIGFuIGVtcHR5IHZhcmJpbmQgbGlzdAoKY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIFNlcCAzMCAwMzoyOTozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUHJvdGVjdCB0aGUgdXNlIG9mICRPU1RZUEUgdG8gZW5zdXJlIHRoYXQgJ3Rlc3QnIGdldCBlbm91Z2ggcGFyYW1ldGVycy4KCmNvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMjowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cwoKY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDA4OjU2OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQoKY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDI4IDE3OjQ5OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmYWlsdXJlIHRyaWdnZXJzIGEgZG91YmxlIGZyZWUuCiAgICAKICAgIEZpeGVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIGFhNGQ0N2MyNjA5ZTUyODE4YzljZGYxYThlMjIwNWRlOWEzMzVhMGEgKHN2biByMTk1MTUpLgoKY29tbWl0IGQyMjUyZDAxNjY5MzgwNzMyNmY3MmI2NjEyMzY0OWRlYTAwYWY5MTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKICAgIAogICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKICAgIHByb2R1Y2VzIGlzIHZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KCmNvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyMSAyMjoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KCmNvbW1pdCA1ZjI3ZjRmNzRhZTJiZDViYWY1MDNjZjMwNmI0ZjlhMjg0MWE1N2NmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjMyOjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgcnVubmVyCgpjb21taXQgMDk3MDM5NThjYzVlYTg0NTkyOWFlMTllZjllMDgwNGFlY2FhNTEyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTI6NDI6NDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZSB0ZXN0IHJlc3VsdCBiZWluZyBwcmVzZW50IGluIHRoZSBoZXggZHVtcCAoIm1vc3RseV9oYXJtbGVzcyIpCgpjb21taXQgNDM5MzAwMjc5ZjZmMzE0Mzg2MzhkMmYyMjJjMjRjM2M4NDFmYTZhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTE6MTY6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNaWNyby1vcHRpbWl6ZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcwogICAgCiAgICBUaGlzIG1ha2VzIHRoZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcyBjYXJyaWVkIG91dCBieSB0aGUKICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKICAgIGZvcmsoKSBpcyBleHBlbnNpdmUgKEN5Z3dpbikuCgpjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMTA6MTQ6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKCmNvbW1pdCA3MGIwNmNmNzg5MjA4ZWFhODkwYmZiY2Q2MzhiZGI3NzVmODE3MDU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTo1MDo1NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luZG93czogdGVzdGluZzogcGVybDogRml4IGFuIGluY29ycmVjdCBtZXNzYWdlIHByaW50ZWQgd2hpbGUgcnVubmluZyB0aGUgUGVybCBtb2R1bGUgcmVncmVzc2lvbiB0ZXN0cwoKY29tbWl0IDcwYmNjOGRlMmQwZmM5MmJiYjg0ODE4MjM2MzBmYWI5YmM4N2FmNzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogT2J0YWluIHRoZSBNU1lTIHBhdGggZnJvbSB0aGUgZW52aXJvbm1lbnQKCmNvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAxNCAxMzoxNDoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCgpjb21taXQgMzhmYzNjYWE5ZWViMzgwMDI1NGI0ZjZhZDZmOGY0NzY0YzBmODNkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6MzQ6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9jYWxsYmFja19hY2NlcHQoKSByZXR1cm4gLTEgKGZhaWx1cmUpIGluc3RlYWQgb2YgMCAoU1RESU5fRklMRU5PKQoKY29tbWl0IDZjOGM3ZThhY2E4ZmMyZWViNTIwMTBhZTNlOWZlZTZkZDgzZWY3ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDEzIDA5OjU4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgoKY29tbWl0IDA4NjBkMTFmZDhmYzVkYmRhYWFlMjI2MWZhZTJjMDdmYjljMmM4MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6NTQ6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IEF2b2lkIHRoYXQgdGhlIHR5cGVkZWZzIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAoKY29tbWl0IGY4YTAzNmY2M2ZmNjhmMDgzNDM2MTIwZTBhYmQ0NzhiNjkyYTJmNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6MjE6MDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IFdoZW4gbGlua2luZyB3aXRoIE9wZW5TU0wsIGxpbmsgd2l0aCB1c2VyMzIubGliIHRvbwoKY29tbWl0IDgzNmEyM2UxMGNhODEwYzM4OTk5MDJkMzI1ODc2MTZhOWQxMjAzZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBMaW5rIHdpdGggcHJvcGVyIGxpYmVheTMyIGxpYnJhcnkKCmNvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDExOjEwOjM4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgYW4gaW5jb3JyZWN0IGNvbW1lbnQgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaAoKY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6NDk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgSVNERUZJTkVEKCkgY2hlY2sgZm9yIGFuIGV4YWN0IG1hdGNoIGluc3RlYWQgb2YgYSBwcmVmaXggbWF0Y2gKCmNvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0aG9zZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MgZm9yIHdoaWNoIFNOTVBDT05GUEFUSCBhbmQvb3IgU05NUF9QRVJTSVNURU5UX0RJUiBtYXR0ZXIKCmNvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgZnJhbWV3b3JrCgpjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IFN1cHBvcnQgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgcmVjZW50IFNoaW5pbmcgTGlnaHQgT3BlblNTTCBiaW5hcnkgZGlzdHJpYnV0aW9ucwoKY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCBhYzJhZWQzYzk0YmIyZWJiNDczYWYwYTFlMjBmMDU2MWFkNjI5OTU2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxMSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgNDAwNzkyMDU5NjdiOGU1YWVlZGIxOWZhM2NiMmU3YjJmNzk4ODU3NwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6NTM6NDcgMjAxMSAtMDcwMAoKICAgIG1ha2UgZGVwZW5kCgpjb21taXQgY2YxNGEyMjg1ODNhZmYzYzVhYjJmMGQ0NGMyZjRjMGZhNWJkNjZhZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6NTM6MTggMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMQoKY29tbWl0IDEwMTRkZDhkZmI0OGE1YmQwNTNmMDQ1NDFlYjk3MjhmMGJlMDdmNDcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjQ1OjA0IDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEKCmNvbW1pdCAxOGQxMTZiYTM4OGMxZGM5NDk1Mjg4ODRiYjAwNjk4ZjFiYWNhYTk0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNyAyMToxMTo1MiAyMDExIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMQoKY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDIxOjQ5OjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQXZvaWQgdGhhdCBzbm1wZCBjcmFzaGVzIGlmIHN0YXJ0ZWQgb24gYSBzeXN0ZW0gd2l0aCBhbm90aGVyIE9wZW5TU0wgbGlicmFyeSB2ZXJzaW9uIHRoYW4gdGhlIG9uZSBpdCBoYXMgYmVlbiBidWlsdCB3aXRoLgoKY29tbWl0IGE1ZjA2NGRkODI5OTZlMmJlM2YxZTk2MTY3MDNhZDAzOTVmYjVhYmEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDA3OjMzOjAxIDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucmMzCgpjb21taXQgNTY5Nzk0ZmNlYjk5ZWVkN2JlODE3YzY0Zjg1Y2Q5NDVjYWY5OTU5MgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBTZXAgMjIgMDc6MjA6MDcgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMzCgpjb21taXQgYzU1ZjYwOGYxNmYxNjBmNWU3OWRjMDU3Zjg4NzhkZWY0NjI5NzNlMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgU2VwIDIyIDEwOjM1OjI0IDIwMTEgKzAxMDAKCiAgICBGaXggdGhlIGNvZGUgZm9yIHBvcHVsYXRpbmcgdGhlIHRhYmxlX3RkYXRhIGNhY2hlLAogICAgYW5kIGNsYXJpZnkgYXJlYXMgbmVlZGluZyBNSUItc3BlY2lmaWMgYWRkaXRpb25zLgoKY29tbWl0IDEzNzYzY2YyYzcxYmY5M2ZlYzA5NmVlZTAwNDg1N2MxNWIyY2ZmZmYKQXV0aG9yOiBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgpEYXRlOiAgIFRodSBTZXAgMjIgMTA6MDY6NDUgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOiBDYWxjdWxhdGUgZGlzayBwZXJjZW50YWdlIHVzYWdlIHZpYSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljCiAgICB0byBhdm9pZCBpbnRlZ2VyIGFyaXRobWV0aWMgZXJyb3JzLgogICAgKENvZGUgYmFzZWQgb24gcGF0Y2gsIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCgpjb21taXQgZWUwZDNhZGIwNzgyOTFiNzQzYzllY2I3NmQyMGI1OTFiN2IxNTk3MgpBdXRob3I6IFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAwOTo1ODozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6IENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMKICAgIHRvIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLgogICAgKENvZGUgYmFzZWQgb24gdGhlIHN1Ym1pdHRlZCBwYXRjaCwgcmF0aGVyIHRoYW4gYXBwbGllZCB2ZXJiYXRpbSkKCmNvbW1pdCAzNjdkYTE0ZmNkYjE0NjU5MmRlNjdjMWQ2OTk3YTA5Nzc0MjU5NjczCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyMiAwODowOToxNyAyMDExICswMjAwCgogICAgVGhlIG9ubHkgY2hhbmdlIGJldHdlZW4gVjUuNy5yYzEgYW5kIFY1LjcuMS5yYzIgaXMgdGhlIHZlcnNpb24gbnVtYmVyLiBNYWtlIHRoaXMgY2xlYXIgaW4gdGhlIENoYW5nZUxvZyBmaWxlLgoKY29tbWl0IGMyNzZlZWI4ZjA0NTVhMDg3MGM0YjQ3OGRkZTY0OGU4NjUyOWFkZDMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDIxIDEzOjUxOjU4IDIwMTEgLTA3MDAKCiAgICBjaGFuZ2Vsb2cgdXBkYXRlCgpjb21taXQgNjMwNTA4Mzg2NjZmNjQ1ZmMzMDZkYzJlZTRmNzNmNWVmY2U2M2ZlZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjEgMTM6Mzg6MTggMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMyCgpjb21taXQgYmJlMmMxOWEwMWVjZWMwMjRmNzQxZTJlNTQ3MDFhZTYyMTJmNGMzZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgNCAxNDo0NDozOCAyMDExICswMjAwCgogICAgVGhpcyBzaG91bGQgaGF2ZSBnb25lIG9ubHkgdG8gbWFzdGVyLgogICAgCiAgICBSZXZlcnQgIkNIQU5HRVM6IGJ1aWxkaW5nOiBDb3JyZWN0IGRlcGVuZGVuY2llcyAtIHNpbmNlIGJmNzRmZWE2OWYyNGRjNmU4NWY5MDhmM2Y0MWQxNDI2YjJlMDk2ODggc25tcGNvbmYgaXMgbG9jYXRlZCBpbiBidWlsZGRpciwgbm90IHNyY2RpciIKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA5ZWZhNDY3YTk3MmJiNmUxYzdmYmRhZjJlMjc0MjlkMjlmNGFiODllLgoKY29tbWl0IDllZmE0NjdhOTcyYmI2ZTFjN2ZiZGFmMmUyNzQyOWQyOWY0YWI4OWUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDQgMTQ6MDA6MTIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDb3JyZWN0IGRlcGVuZGVuY2llcyAtIHNpbmNlIGJmNzRmZWE2OWYyNGRjNmU4NWY5MDhmM2Y0MWQxNDI2YjJlMDk2ODggc25tcGNvbmYgaXMgbG9jYXRlZCBpbiBidWlsZGRpciwgbm90IHNyY2RpcgoKY29tbWl0IDc4MzU5NjRkMzU5M2U1YzZhMWFlN2RlMGI0MTE0YjdkZjFhZTBmZTEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjIxOjUxIDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucmMxCgpjb21taXQgY2I2YTBjMGJkNmY4YzJjN2NkNWZkODYwODBkYzYzMjRlN2Y3Mzg1OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MjA6MzUgMjAxMSAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMS5yYzEKCmNvbW1pdCBlNWZmMmViODNiYmJlZDkyZGFjNzUxYzVhNjY0M2Q3OGY4MzdjZjljCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOToxOTo0NiAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50Cgpjb21taXQgY2IxZjVjZmZjNmZiNTJjMmE2YzBmN2I0MDhhZmViNDdmY2ZlNTVlNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MDk6NTYgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMxCgpjb21taXQgNDIyYjA4MmE5NTkzY2E5YzY1YWFjNDQ5ZTZkMTI4YTllOTdlOTRmYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MDY6NTYgMjAxMSAtMDcwMAoKICAgIGFkZGVkIDcgYXMgYSByYyBzZXJpZXMgYnJhbmNoCgpjb21taXQgNzFjMGQ3NjUwNDkzNzEwNjMxZmEwOGQ1ZGM0ZGFkNTAxYTlhYTc3MQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTY6Mzc6NDEgMjAxMSAtMDcwMAoKICAgIGRlYWwgcHJvcGVybHkgd2l0aCBpbnZlcnRlZCBlcnJvciBjYXNlcwoKY29tbWl0IGNmNGNmN2YzMmFkNThmMzI2ZmZlZDUwNDk0NTgzMjMxNjQ4ZDc5ZDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjA4OjA5IDIwMTEgLTA3MDAKCiAgICBhZGRlZCAuZnQgYW5kIC5mdC4xIGZvciBmZWF0dXJlIGZpbGVzCgpjb21taXQgNDFiMmNkZTE5ZDIyMjA5YjQ4MzIwNzYxNGUwMjc0ODNjMzcwNjg3NwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTE6MDM6MTUgMjAxMSAtMDcwMAoKICAgIGF1dG8tZGV0ZXJtaW5lIHBhdGNoIGFyZ3VtZW50cyBpZiBwb3NzaWJsZSBmb3IgbnNwYXRjaHRyeQoKY29tbWl0IDk2YmI1ODljMmU1MDU0ODkwZTk4NzA1YWI1ZjQzMDhhZTZhMTMwYmIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDEwOjEzOjA2IDIwMTEgLTA3MDAKCiAgICBtYWtlIGl0IHNvIHRoZSBnaXQgY29tbWl0IGxpbmUgY2FuIGJlIGN1dC9wYXN0ZSB3aXRob3V0IGxpbmVicmVha3MKCmNvbW1pdCAzZmUzNmY3YWQ3MWMwOGUxMjg2Y2U4ZTQ4N2U5MzUyZTI3Y2Q5NmNjCkF1dGhvcjogUm9uYWxkIFdhaGwgPHJ3YS1jb0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDoxMjoxMSAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM5NDU4NjogZnJvbSByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnICgrZml4KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2ZTU0YzQxMzFhZjczMWZmOTA0NjdhNzViY2M4MTdjOTU3ZjhmNzJhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAwOTo1NToxNCAyMDExIC0wNzAwCgogICAgZGVzY3JpYmUgdGhhdCBuc3JvbGx1cCBuZWVkcyB0byBiZSBydW4gbm93LgoKY29tbWl0IDg2ZWZlZTIzNDMyY2NiMGQyZTBjNzM2ZDM0ZGMxMDUxMTMwY2RjMGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDo1MjozMCAyMDExICswMTAwCgogICAgQXBwYXJlbnRseSBJUklYIGhhcyBhIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcwoKY29tbWl0IGY3ZTIxZjI2MzMzOTBiN2EyN2M1MDIyN2JlZTZkODY5NmFlM2ZiY2YKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDI5IDE2OjAxOjMxIDIwMTEgLTA3MDAKCiAgICBkb24ndCBwcm92aWRlIGEgZmVhdHVyZSB3aGVuIHlvdXIgYSBjaGlsZCBvZiBhbm90aGVyIGZlYXR1cmUKCmNvbW1pdCBjYWMyM2MwYjI1NzRlNzI4MGJkMTI4YzYyMjY4NzVhZDBmNmI0YmZjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAwOTozODoxNCAyMDExICswMjAwCgogICAgTWFrZSBzdXJlIHRoYXQgZmVhdHVyZS1kZXRhaWxzLmggZXhpc3RzIGJlZm9yZSB0cnlpbmcgdG8gaW5jbHVkZSBpdAoKY29tbWl0IDc4MWY0Y2UyYWNiMzcxNTYwNzk3ZDhiMjlhODllZDA2NzRlOTM1ZjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDA5OjM2OjM2IDIwMTEgKzAyMDAKCiAgICBVc2UgdGhlIGZlYXR1cmUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIHRhcmdldCB3aGVuIGJ1aWxkaW5nIHRoZSBmZWF0dXJlIHNldAoKY29tbWl0IDExYmZmNDcyY2E3YjFmY2ZmMGMxNjE4N2ExYjhhMTMwOTNiYzkxYzQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDI5IDAwOjMzOjU1IDIwMTEgKzAyMDAKCiAgICB0aGUgaXJpeDYgYnVpbGQgb25seSBkZWZpbmVzIGlyaXg2LCBub3QgaXJpeAoKY29tbWl0IDNjNzNhMTQwN2EwODFkNDJlYmRkOTFkZmJjYjFlNGYxNTJiN2RmNGEKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDI5IDAwOjA1OjEzIDIwMTEgKzAyMDAKCiAgICByZS1hZGQgc29ja2FkZHJfdW4uc3VuX3BhdGggY29uZmlndXJlIGNoZWNrIChsb3N0IGluIHByZXZpb3VzIGNvbW1pdCkKCmNvbW1pdCAyZTNmMDJlMDNhZWQxMjUzODRiYTRmZTNkODM0OTRkNDNmM2EyOWU5CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMzo1MzozMCAyMDExICswMjAwCgogICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jIGRvZXNuJ3QgYnVpbGQgb24gSVJJWCB5ZXQKCmNvbW1pdCBmOTVhYTMxMzc3ZDU3MmIwNDliMGIzMTZkYmIxNjNiZjdhY2E5M2Q1CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMzoyNTo0MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkcyBtc2dfY29udHJvbC9tc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkciAoYmFja3BvcnQpCgpjb21taXQgN2Y0N2Q5Mzc2NWFhMzVhNTg2ODdlYjliNGY5ZjcwMGU0MzQzZTEzYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MTE6MzUgMjAxMSAtMDcwMAoKICAgIGFkZGVkIHJlcXVpcmVkIGZlYXR1cmVzIGZvciBtZmQgaGFuZGxpbmcKCmNvbW1pdCA5YjJlNDJhNmUwNTUwZmI3ODljNjA3YzM1MjA4ODBkNGRiYzBjZjI0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMTowODowOSAyMDExIC0wNzAwCgogICAgYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcwoKY29tbWl0IDMzZGNiZjU2ZmMwNjI2YTNlNGYxMzU5MDk1YmQyMTdkMWE1Njc3OTQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjA3OjU4IDIwMTEgLTA3MDAKCiAgICBub193cml0ZV9zdXBwb3J0IHN1cHBvcnRlZAoKY29tbWl0IDk3ZDQyZWZkNzY5MzdjZTdlNGJjNDhhNzJlZDVhMTEwZTQyMzEwMmQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDEwOjA4OjUxIDIwMTEgLTA3MDAKCiAgICBoYW5kbGUgbm8td3JpdGUtc3VwcG9ydCB3aXRoIGlmZGVmcwoKY29tbWl0IGVhOGJlZDc5ZTgxYzQyZTMzY2JmMzdjYTZmM2MwM2M1NDk5ODdiMjIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDI1IDA2OjU2OjIyIDIwMTEgLTA3MDAKCiAgICBpbXBvcnQgc3RkZXJyCgpjb21taXQgZmQ2ZDgwNGRjM2U3MDNjNDA1OWRiZTc3NTAwMWEzYmU5YjkzMzA5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMjUgMDY6NTU6MzggMjAxMSAtMDcwMAoKICAgIHVzZSA+PiB0byBwcmludCB0byBzdGRlcnIKCmNvbW1pdCBjZWUwMzU5YzZmYWUyYjg1ZDdiOTMxODU5ZTUxN2Q4OWNlMDcyMmJiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6NDM6MTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgZ2VuZXJhdGUgYW4gb3V0cHV0IGZpbGUgb24gZmFpbHVyZQogICAgCiAgICBtYWtlIHN1cHBvc2VzIHRoYXQgbm8gb3V0cHV0IGlzIGdlbmVyYXRlZCBpZiB0aGUgY29tbWFuZCBmYWlsZWQuIENoYW5nZQogICAgZmVhdHVyZS1yZW1vdmUgdG8gZm9sbG93IHRoYXQgcHJlc3VtcHRpb24uCgpjb21taXQgZmUzOWU3Mjg4Y2E5MzBkMmM5YWFhODMwMWNjOWQ5NWYwYzM4ZjM2YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDIxOjQ4OjE3IDIwMTEgKzAyMDAKCiAgICBDb3JyZWN0IHR5cG8KCmNvbW1pdCAxZjA4MmEzMWNkMTM4ZjFmNWUyN2JlNmQ5MGExZDU3OTBkYzBmZmU0CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyMyAyMzozNTo0MiAyMDExICswMjAwCgogICAgbWFrZSBzdXJlIHRoYXQgX0tFUk5FTCBpcyBkZWZpbmVkIHRvIDEgc28gdGhhdCAiI2lmIF9LRVJORUwiIHdvcmtzIG9uIHN5c3RlbXMgdGhhdCBuZWVkIGl0IChlLmcuIElSSVgpCgpjb21taXQgMjZiYjI0NzBjMTA2ZjgzNDQ0MmEyYWRiYzc2MTFiZjE2NjU3ZmJkZgpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MjI6NDQgMjAxMSArMDIwMAoKICAgIG1ha2Ugc3VyZSB0aGF0IF9LRVJORUwgaXMgZGVmaW5lZCB0byAxIHNvIHRoYXQgIiNpZiBfS0VSTkVMIiB3b3JrcyBvbiBzeXN0ZW1zIHRoYXQgbmVlZCBpdCAoZS5nLiBJUklYKQoKY29tbWl0IGZjNTU2MGMwNWY4NDgzMjFkYTBjYTBjMmU4NzAwMWQ1ZjIyOTUxNjcKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDIyIDE4OjU0OjMwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGQgbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIgKGUuZy4gSVJJWCkKCmNvbW1pdCA5NmVhMmQxYThlYmZmYjM0ODY3M2E4NjVkNDg2ZjMxZTYzNWU2MmJkCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMTo1MTo0OSAyMDExICswMjAwCgogICAgYXV0b3JlY29uZgoKY29tbWl0IDFhMjY0OGVhZjcxY2IwMTg5NTE1OTY2ODljNTE1ODhkY2E4MDYzYzUKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAxOjQ4OjU3IDIwMTEgKzAyMDAKCiAgICBhdXRvcmVjb25mCgpjb21taXQgM2YyZjYxYjBlNjEzZDYxMDVlY2YyY2ViMzk1ZGUwYmRlMzdmM2NlMwpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDE6NDc6MTMgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCBiNjJjYjA4NjRmNTc3YmE4NTU3M2QwZDI1MGQxMmEzOTM4N2MwN2I0CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMDo1NTozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWl4OiBlbGltaW5hdGUgY29uZmlndXJlIHdhcm5pbmcgcmVnYXJkaW5nIGxpYnBlcmZzdGF0Lmggb24gQUlYIDYuMSBhbmQgdXAKCmNvbW1pdCA3MWI5MGI2ZjIxNzk0NGI0ZmZjMTgzNmU1MTYwZDQwZTMzYjQ0MjNkCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMDo0MDoyOCAyMDExICswMjAwCgogICAgZml4IGJyb2tlbiBsaW5lIHdyYXAKCmNvbW1pdCA1YjU5MDBhNGY3ZGZlZTZlMWVjODY5ZTMyMzEwYjgwY2E2ZmIyM2ZlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAxMjoyODowNyAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTIKCmNvbW1pdCAzYjdlMmUzOTk0OWY4OGQ5YzU2ZWQ1Zjk5NDAyOGI5NDgxNmFiNzVjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAxMjoyMzoyOCAyMDExIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4xLnByZTIKCmNvbW1pdCBlY2U2M2JmZTQ5OWM2MzBiZGFhZTYyMDA2NDhkMjkxODBjZTNhMTc5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAxMjowMzoxNyAyMDExIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5wcmUyCgpjb21taXQgMjhiNTQwNzA1MTQ3NTNlOGQ4YWJiNzE4YjIyNGQ2NTdhYjdhOGFiOApBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAxMTo0OTo1NiAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogQlNEOiBQQVRDSCAzMzgzOTY1OiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggaWYtbWliIGFnZW50IGNvbXBpbGUgd2FybmluZ3Mgb24gKkJTRAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmNzNlNjM2NGJiMzQwNzA2MjJlOWY0NDg4Y2QwNDg3ZDJmYjc0MDJhCkF1dGhvcjogVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTE6NDU6MjkgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzg5MjI4OiBmcm9tIHd1bGYyMDAxOiBpbmNvbXBsZXRlIGNvbW1pdCAocGF0Y2ggMzM4NjYzMzogZml4IGludGVnZXIgb3ZlcmZsb3cpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU2Y2Y4MjA2ZjBjNjc2NTAwMDFlMzRiNTI2YjM3ZjY0ZTRhNTkyOWMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDA5OjQ2OjMzIDIwMTEgLTA3MDAKCiAgICBQYXRjaCBmcm9tIENsYXVzIEtsZWluIG9uIC1jb2RlcnMgZm9yIGZpeGluZyBtYW4gcGFnZSB0eXBvcwoKY29tbWl0IDZhODQxZDU2NTE4YTcyNzE5NmU2NmI1OWU3ZTViMzMwNGY1NGIwYTEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDA4OjMxOjA2IDIwMTEgLTA3MDAKCiAgICBjaGFuZ2VkIGNsaWVudGFkZHIgc28gaXQgcmVnaXN0ZXJzIGFzIHByZS1taWIgdG8gYmUgcGlja2VkIHVwIGJlZm9yZSB0aGUgdHJhbnNwb3J0cyBnZXQgY3JlYXRlZAoKY29tbWl0IGMwMjEzMWU1YjM1ZDI5Njc1NWJhZWM5OWJkMzYzMjA1YTg2MzA3ZGQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDE3IDA5OjM0OjAwIDIwMTEgLTA3MDAKCiAgICBkZXRlY3QgcmVhbGx5IG9sZCB2ZXJzaW9ucyBvZiBMb25nLnBtCgpjb21taXQgNTAwZDZkZTA2YWE0ZmYzMzBhZWU0ZDc0OWE0Y2MzNzdiZWM4OWUwOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTcgMTg6MTE6NDcgMjAxMSArMDIwMAoKICAgIEZpeCB0aGUgbG9nIG1lc3NhZ2UgdGhhdCByZXBvcnRzIHRoYXQgZ2V0aG9zdGJ5YWRkcigpIGlzIG1pc3NpbmcKCmNvbW1pdCA2NTgwNTU2Y2M3YmQ4MzNhZjczMWI2MmNlMWVkMjAxNzU2NGZlN2ViCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAxNyAxODowODowMSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogc25tcHRyYXBkOiBNYWtlIHRoZSBJUCBhZGRyZXNzIHRvIGhvc3RuYW1lIGNvbnZlcnNpb24gd29yawoKY29tbWl0IDNjYjNmMWVkZTM4OGQ4NGUzOTJlMWQ4MTVkNTk5NGE0YmYwZjEwZjkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDE0IDA3OjU5OjI1IDIwMTEgKzAyMDAKCiAgICBXaW5kb3dzLCBidWlsZC5iYXQ6IFJlc3RvcmUgb3JpZ2luYWwgYnVpbGQgYW5kIGluc3RhbGwgb3JkZXIuIEFwcGFyZW50bHkgdGhlIGNvcnJlY3QgbmV0c25tcC5kbGwgaXMgdXNlZCBkdXJpbmcgdGhlIFBlcmwgdGVzdHMgYnkgc2V0dGluZyBQQVRIIHByb3Blcmx5LgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGMxYjVhMDMwZDhmMDQ4NzZjZDViOWFmMDA4Yzg3OWNjNDY4YjIxMmYuCgpjb21taXQgZGFmZjQ5ZDliMzM2OWVmY2M4N2YwNWRjODU5MTM2MmU4MWE0NWZkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTg6NDM6NDggMjAxMSArMDIwMAoKICAgIFdpbmRvd3M6IE1ha2UgdGhlIFBlcmwgYWdlbnQgbW9kdWxlIHdvcmsgYWdhaW4gd2l0aCB0aGUgb3JpZ2luYWwgU05NUF9GUkVFKCkgZGVmaW5pdGlvbi4KCmNvbW1pdCAzYzczYjQ4MzhlNjA1YjE1MGJjMzE3MzEzZjE0ZWIzMzQ0NDcyOWY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAxNzozODoyNyAyMDExICswMjAwCgogICAgUmV2ZXJ0IHRoZSB0d28gbW9zdCByZWNlbnQgU05NUF9GUkVFKCkgY2hhbmdlcyAoY29tbWl0cyA0N2M4ZWYxYjg5YzZjY2I0MjQ3ZDk2MzM0Nzc5MjU5MDhjNjhjMWE1IGFuZCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwKS4KCmNvbW1pdCAzZTUwYzNlMDBlOWYzMjFmYjcwOGJjNTc5ZWI0ZGMxYTBmMWU3YzRkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAxMTozMTo0MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHBhc3NfcGVyc2lzdDogIEZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW50cm9kdWNlZCBpbiBjb21taXQgMzFmYTA3Y2Q5ZmZkZTQ2ZDQxZDJiNTgzOGMzZmM0ZDAxNTQ4YmZiNS4KICAgIAogICAgVGhlIGZvbGxvd2luZyByYWNlIGNvbmRpdGlvbiBjb3VsZCBoYXBwZW46CiAgICAtIEEgc3lzdGVtIGNhbGwgZmFpbHMgYW5kIGVycm5vIGlzIHNldCBhY2NvcmRpbmdseSBieSB0aGUgQyBsaWJyYXJ5LgogICAgLSBTSUdDSExEIGhhbmRsZXIgaW52b2tlcyBhIHN5c3RlbSBjYWxsIHRoYXQgZmFpbHMgYW5kIGhlbmNlIG92ZXJ3cml0ZXMgZXJybm8uCiAgICAtIFNJR0NITEQgaGFuZGxlciBsZWF2ZXMuCiAgICAtIG9yaWdpbmFsIGNvbnRleHQgY2hlY2tzIGVycm5vIGFuZCBmaW5kcyB0aGUgdmFsdWUgZnJvbSB0aGUgc3lzdGVtIGNhbGwgaW52b2tlZAogICAgICBieSB0aGUgU0lHQ0hMRCBoYW5kbGVyIGluc3RlYWQgb2YgdGhlIHN5c3RlbSBjYWxsIHRoYXQgZmFpbGVkIG9yaWdpbmFsbHkuCiAgICAKICAgIE90aGVyIGZpeGVzIGluY2x1ZGVkIGluIHRoaXMgcGF0Y2g6CiAgICAtIFJlbmFtZWQgZGVpbml0X3Bhc3NfcGVyc2lzdCgpIGludG8gc2h1dGRvd25fcGFzc19wZXJzaXN0KCkgc3VjaCB0aGF0IHRoaXMKICAgICAgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgZHVyaW5nIGFnZW50IHNodXRkb3duLgogICAgLSBNYWRlIHN1cmUgdGhhdCBzaHV0ZG93bl9wYXNzX3BlcnNpc3QoKSBpcyBjYWxsZWQgYnkgdGhlIFdpbmRvd3Mgc25tcGQuZXhlIHRvby4KICAgIC0gV2luZG93czogYXZvaWQgY2FsbGluZyBDbG9zZUhhbmRsZShJTlZBTElEX0hBTkRMRV9WQUxVRSkuCiAgICAtIFdpbmRvd3M6IGF2b2lkIHRoYXQgY2xvc2luZyBhIHBhc3NfcGVyc2lzdCBwaXBlIHRyaWdnZXJzIGEgY3Jhc2guCiAgICAtIFdpbmRvd3M6IHBhc3NfcGVyc2lzdDogY2xvc2UgaGFuZGxlcyBvZiBmaW5pc2hlZCBwcm9jZXNzZXMuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICAJd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oCgpjb21taXQgZTE0N2U0Yjk2NzU1MjA3ZGUxY2UzMDk5MGQ2N2I0YjdjNzZkZDQ4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6Mzk6MTQgMjAxMSArMDIwMAoKICAgIFVuYnJlYWsgdGhlIFdpbmRvd3MgYnVpbGQuIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCAxZTEwMDBhODgxNTkyMWI1ZWMyZTc5OTdiNTM1OTJhNTQ0YjNkZmMyLgoKY29tbWl0IGMxYjVhMDMwZDhmMDQ4NzZjZDViOWFmMDA4Yzg3OWNjNDY4YjIxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBidWlsZGluZyAoYnVpbGQuYmF0KTogSW5zdGFsbCBuZXRzbm1wLmRsbCBiZWZvcmUgcnVubmluZyB0aGUgUGVybCByZWdyZXNzaW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuIHdpdGggdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBuZXRzbm1wLmRsbC4KCmNvbW1pdCAxZTlkMjAwM2JhZWQyMjdmNjhiNjg1MjhmMWU5N2U2ZjVlYTg2YzFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogcGVybCAoYnVpbGQuYmF0KTogV2hlbiBpbnN0YWxsaW5nIGRldmVsb3BtZW50IGZpbGVzLCBpbnN0YWxsIHRoZSBQREIgZmlsZXMgdG9vLgoKY29tbWl0IGE4ZDk0MDA3ZTMyZDAzNzEwNjkyYzhmMWI0MTdkNWJkZmUzNjUwZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBGaXggUGVybCByZWdyZXNzaW9uIHRlc3QgZmFpbHVyZXMKICAgIAogICAgQWxsIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIG5vdyBvbiBMaW51eCBhbmQgb24gV2luZG93cyAoTVNWQykuCgpjb21taXQgYjZkMGI0OTAxODFjNmRmOGMxMWVjZjE1NWYxZTZlYWYxMWIxZWM1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFBlcmwgcmVncmVzc2lvbiB0ZXN0czogRG9uJ3QgZmFpbCBza2lwcGVkIHRlc3RzLgoKY29tbWl0IGNhM2FjZjJiMDcwMzlkOTZhMTE3ZjA5MGY3ZWM3NmI2ZThiNTQxZTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgU05NUDo6Z2V0ZW52KCkgYW5kIFNOTVA6OnNldGVudigpLgoKY29tbWl0IDU2NzU5ZTVhZDUzN2YwMWI0YTUxZTdmZjk5OTRlYzRiNTVjMzIxMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjE0OjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9zZXRlbnYoKS4KCmNvbW1pdCA5ODQzZTViY2Y0NzI4NzdlODViMDMxYjVlNWRhZmFhOWQ1ZmM2M2M1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogZG9jdW1lbnQgaG93IHRvIHVzZSBvbiBXaW5kb3dzCgpjb21taXQgNjA1Nzg2NmI3M2EwMjI3NzFlOTBlOTk2N2RkMjViZGM3MTkyZmJkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIFNldCBleGVjdXRlIGZsYWcgb24gbG9jYWwvcGFzc19wZXJzaXN0dGVzdCBzdWNoIHRoYXQgdGhlIGluc3RydWN0aW9ucyBpbiB0aGF0IGZpbGUgd29yawoKY29tbWl0IGMyZGFmNTk0MGYyMWExM2U4OTg5ZGQwNTViMTdmMzE4MTExMmY4NTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICAuZ2l0aWdub3JlOiBGaXggYSBzdXBwcmVzc2lvbiBwYXR0ZXJuCgpjb21taXQgMWYwYTkyOGEyOTEzY2ZhN2Y1Y2VhYWY0Njk2YzY5ZmJkYzY4NzYyMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMTIgMDk6MDk6MTEgMjAxMSAtMDcwMAoKICAgIGFkZGVkIHRoZSBtaXNzaW5nIC1lIG9wdGlvbiB0byB0aGUgY3JlYXRlVXNlciBkb2NzCgpjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBBdWcgMTEgMTU6NDY6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBOZXQtU05NUCBQZXJsIG1vZHVsZXMgYnVpbGQgYWdhaW4uCgpjb21taXQgOTdkNjQzMmY5NWUxY2RjZjZmZDg1ZTdjYTFkMGM1NTU3ZWI2ZDkxOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBBdWcgMTEgMTg6MTY6NDQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHBlcmw6IE1ha2Ugc3VyZSB0aGF0IHRoZSBjb25zdGFudCBTTk1QX0RFRkFVTFRfUkVUUklFUyBpcyByZWNvZ25pemVkLgogICAgCiAgICBDSEFOR0VTOiBwZXJsOiBTTk1QIG1vZHVsZTogQWRkIGNvbnN0YW50cyBORVRTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UgYW5kIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfVElNRURfT1VULgogICAgCiAgICBXaGVuIHRoZSBOZXQtU05NUCBQZXJsIG1vZHVsZXMgYXJlIGJ1aWx0IG9uIFdpbmRvd3Mgd2l0aCBNU1ZDIG9yIE1pbkdXIGl0CiAgICBpcyBwb3NzaWJsZSB0aGF0IGVhY2ggdGhlc2UgYXJlIGxpbmtlZCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgTVNWQwogICAgcnVudGltZSBsaWJyYXJ5IHRoYW4gdGhlIFBlcmwgaW50ZXJwcmV0ZXIgaXRzZWxmLiBJbiB0aGF0IGNhc2UgdGhlICJlcnJubyIKICAgIHZhcmlhYmxlIHVzZWQgaW5zaWRlIC54cyBzb3VyY2UgZmlsZXMgaXMgYW5vdGhlciB2YXJpYWJsZSB0aGFuIHRoZSAkISB2YXJpYWJsZQogICAgaW4gLnBtIGZpbGVzLiBPcjogYXNzaWdubWVudHMgdG8gImVycm5vIiBpbiBhIC54cyBmaWxlIGRvIG5vdCBtb2RpZnkgdGhlICIkISIKICAgIFBlcmwgdmFyaWFibGUgVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgImVycm5vIiBieSBtb2RpZnlpbmcgdGhlIGRpZmZlcmVudAogICAgY29uc3RhbnQoKSBmdW5jdGlvbnMgc3VjaCB0aGF0IHRoZXNlIHJldHVybiBhIHR3by1lbGVtZW50IGFycmF5IGluc3RlYWQgb2YKICAgIHJldHVybmluZyBhIHNjYWxhciBhbmQgc2V0dGluZyBlcnJuby4KCmNvbW1pdCA3NjkwODk0YjdiODQ2NGYwNWM3YzkwMmJkN2NmNzUxY2MyNjk5NzdhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAxMCAwOToyNjozNyAyMDExIC0wNzAwCgogICAgZG9uJ3QgYXNzZXJ0IG9uIGEgZG91YmxlIGluaXQ7IGp1c3QgZG9uJ3QgZG8gaXQgdHdpY2UKCmNvbW1pdCA0N2M4ZWYxYjg5YzZjY2I0MjQ3ZDk2MzM0Nzc5MjU5MDhjNjhjMWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAxMCAxNjo0NDozNiAyMDExICswMjAwCgogICAgU05NUF9GUkVFKCk6IGNhc3QgYXJndW1lbnQgdG8gKHZvaWQgKikgYmVmb3JlIHBhc3NpbmcgaXQgdG8gbmV0c25tcF9mcmVlKCkKCmNvbW1pdCAwMjIwMzkyZDg5OWE5Y2FiNzAxZjc0YWYxMjAzMGJiMWQ0Y2M1ZTJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEp1bCAxIDEzOjAyOjE1IDIwMTEgKzAyMDAKCiAgICAuZ2l0aWdub3JlOiBJZ25vcmUgKi5leGUgZmlsZXMgZ2VuZXJhdGVkIGJ5IHRoZSBXaW4zMiBidWlsZAoKY29tbWl0IDAzNDRkZjkyZTQ2MmYzYmVjOTk0NjA4YzMzODFmY2E1MzQ4YWJjZGIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTU6MTI6NTUgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudHMKCmNvbW1pdCAwOWE2NjFkNWRjNjBjNzMwZmUwMzg0YjAyZWQ2NzI4MzBlZjc0ZTMwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDE1OjEyOjU1IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnRzCgpjb21taXQgNjljYjQyYTRlYTA1ODNjZTZmNWZmOGY4MzgzNTE2ZDM0YmM0YzM0NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxNToxMjo1NSAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50cwoKY29tbWl0IDQ0N2RkYzY2ZDkwZGQ5ZTVjMzEwNWIyNjhiNmE2M2JmYzU4MGI5MjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEF1ZyA4IDIyOjAzOjU4IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbgogICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCgpjb21taXQgYjBhNjJlYjE5NzYzYWI0ZjBiNzc2NDMwMjQyYTYxMTdjY2FlNWRkMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXVnIDggMjE6NTk6MTcgMjAxMSArMDEwMAoKICAgIERlZmluZSBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuCiAgICAoYXMgcGVyIEFsZXgnIGJ1aWxkIGluc3RydWN0aW9ucykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMSAtPiBWNS43LjIucHJlMQoKY29tbWl0IDgxMDE4NWFlMGIwY2QyYWQ0ZDQyNGExYmE3NzVlZjVjZWFmNTBmMDMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDk6MjQ6MTkgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5wcmUxCgpjb21taXQgNjI3MTQ3MWUwMTI4MmYzNjc1NzI0ZWFmMTM1OGNlYjBlOTVkZGQ0ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjo0MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUxCgpjb21taXQgZmNiNzgyYWE4ODkzMTM0Yzc0MTRhOTI2ZDkyNjg1OTRmNzI1YjkxNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjoxOCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCBlM2JjZDg3YzcyZmNlYTc3MDZlODY4YjVhY2U3NTI5NjA5M2Y3NDk3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDk6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZDgxM2NlMmVlZWZjNjgyMjljZmNhZjIwNjAzMjQ0Y2RkNmQwOWQzYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA3OjUyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGZhN2JkNTgxZTM3ODM2ODVkYjM5YzliNGVhZjg0N2JlNWFjODZmZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MzoxMCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IDA3MzllMjM4MmQzMTE0NmFjYTMyMDUyNDRjZjcwNzg4YjQwYTQyOGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MTo0NSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MDoxMiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzIKCmNvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYzgxMTBiMzNiODEwNWNhNjE5MDk0NWEzNWZlN2FlOTAzMjUyZDY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMAoKICAgIEF2b2lkIHBlcmwgdmVyc2lvbmluZyBwcm9ibGVtcyB3aGVuIHNldHRpbmcgdXAgdGhlIGJ1aWxkIGVudmlyb25tZW50Cgpjb21taXQgNTA4ZWNlMTZlNmY2ZjQ5NTYyZGEyMDQ3OTJhZTA2NDQyNjk5OTRkMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIwOjU4IDIwMTIgKzAxMDAKCiAgICBGaXggaGFuZGxpbmcgb2YgZGlzdC9yZWxlYXNlIG1lcmdlCgpjb21taXQgNWI4YTg1NDdiMWE0N2QyZjViMjA3ZjQ4ZjI0OTZlNDI0MWQ5MDJjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjEwOjQ4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgNmMzMjkxNGJmMjhkNjk1ZGYzNDlkY2EyNjllNDg4YjUwMTcwMDMxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA3OjIyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgOWY1YTgyYTVhZmRiYjNkYWViMmZkNDM3YTMwOWYwYjhkMzU3Y2Y0YgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA1OjM5IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMyCgpjb21taXQgMzkyMDNmMjk0NzdhM2JlZGYwMTJkNDExMzVkOGFiZDZiY2FkMDhiMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjU0OjI3IDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgMTdlNzllZjBmYWQ3OTYwOWM1YmEyZmViNGU4YjllYjVkN2RiNjg4NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgNTgyMWJlNWJiYjQwMThkZWQyODJmYmJiZDQ4MzBjZjJlZWFkZDllMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ1OjU5IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMgoKY29tbWl0IDNmMjExMWRlNjczM2EwNGUxMmQ5MTBkMzA2YTM0ZDY3MWUwMDg3NjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGNjZjhmZjJjNGRiNjAxMjJkNDEzMDJlNGFlYjcwMGUwYjg2ODEwNWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSAyOCAxMDoxODo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzUyNjU5OTogRG9uJ3QgaGFuZyBvbiByZXRyaWVkIGZhaWxpbmcgU05NUHYzIHJlc3BvbnNlcwoKY29tbWl0IGM4MWM4NDgzOTkwOTExZjQ3NDM1ZDMwMDUyNTVkOTFjMzdhYjkyYjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjA5OjI2IDIwMTIgKzAyMDAKCiAgICBGaXggQlNEIHRoYXQgZG93bm5vdCBhbHdheXMgbGlrZSBJUF9TRU5EU1JDQUREUiAtIHNvIHJldHJ5IHdpdGhvdXQKCmNvbW1pdCBmZmNlMWYyZGMyZjhiMzFhYmQwMWY5M2IyNmRhNzhmNDcyNmExZTY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowMzo1OCAyMDEyICswMjAwCgogICAgRml4IE9TIG1pc3NpbmcgTVNHX0RPTlRXQUlUIChBSVgpLiBCYWNrcG9ydCBmcm9tIDUuNwoKY29tbWl0IGM1NzUyMTY4NTAxODViNTY0NTRkYWQwMjUzZTMxNjQ5NzllMTM1MTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDEzOjU2OjAxIDIwMTIgKzAyMDAKCiAgICBGaXggbWlzc2luZyBpbmNsdWRlLiBGaXhlcyBTSUdTRUdWIG9uIEZyZWVCU0Q5IHg2NAoKY29tbWl0IDU4MDU4Nzg3NDljMDgwNjJkZWJmMGE5ZDc5OGQwOGZiOTE2Y2FhMmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZGVidWcgdGFnCgpjb21taXQgZDFhNDJiYmNjN2IxNDczMGM5YTZkOTljNGYwNDcwOTc4NDNhNTQ5YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSdW4gbGlidG9vbCAtLW1vZGU9ZmluaXNoIG9uIHRoZSByaWdodCBkaXJlY3RvcnkKCmNvbW1pdCAxZmJmMzM3MTFhMTllYWM5NzM5YWQyM2Y2ZjYyNTFlYWNjNDFmMWM0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMzUyNTk5ODogRG9uJ3QgdXNlIGFuIHVuaW5pdGlhbGlzZWQgdmFsdWUgaW4gZXJyb3IgbWVzc2FnZQoKY29tbWl0IDMyYzE2ODZiNjdkYzg1YzRhMTg5NTc2MzYzMDY1NjA5ZGZlZDVlNjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1Mjo1NiAyMDEyICswMTAwCgogICAgQXR0ZW1wdCB0byBtYXJrIHJlbGVhc2UtY2FuZGlkYXRlIGJyYW5jaGVzIGFzIHN1Y2guCiAgICBPbWl0IGZpbmFsLXJlbGVhc2Utb25seSBzdGVwcyB3aGVuIHByZXBhcmluZyBwcmVOL3JjTiByZWxlYXNlcwogICAgKFJlbGllcyBvbiBhIHR3ZWFrIHRvIHRoZSBNYWtlcmVsZWFzZSBwZXJsIG1vZHVsZXMpCgpjb21taXQgNGM1NjMzZjE2MDNlNGJkMDNlZDA1YzM3ZDc4MmVjODkxMTc1OWM0NwpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGZyZWVzbm1wLmNvbT4KRGF0ZTogICBNb24gTWF5IDE0IDExOjQwOjA2IDIwMTIgLTA0MDAKCiAgICBORVdTOiBzbm1wOiBCVUc6IDM1MjY1NDk6IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAoKY29tbWl0IDY1ZGQ4M2MyMjU1ZWU1OGVkYmYwZTI1ODYzZTU1YjU4YTQxMTM2NzkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjMwOjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMxCgpjb21taXQgYWM0YmM2NWUyOTA5ZjNiZDg1ZjMyZjA0YjUwNGZhNjVkMmY2NDU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6Mjg6MDYgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBiNzQ5OTQ4NjQxOTUxMTllZGI2ZTE5Yzg1MTQ3ZmFjMDBiY2I5M2UzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoxMzo0NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzEKCmNvbW1pdCA5MTM1MDA5MmM0NmU2NmQwNmQ3NDE0M2Y0ODE2NDczZGI0ZDI1MTYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxOTo1NjozMyAyMDEyICswMTAwCgogICAgTWFyayB2ZXJzaW9uLXNwZWNpZmljIGNoYW5nZXMgX2JlZm9yZV8gcHVzaGluZyB0byBjZW50cmFsIHJlcG9zaXRvcnkKCmNvbW1pdCA3MjQxYWNjZDcwYjgyZDBmY2Q0NGQ1YTUyMzhiMmVlOTQ0NTkwMGRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MzoxNyAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDdjNzk2YTE1YTFkMWJiODVmZWVhOTQwYmQ0ZTM1MTY4Nzc5MjA5MTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUwOjQ5IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgMDdlMjY4YmZiNjRiMGVjNjQ1YjNmN2U4NzI2Njk4NGY5MjE3Y2YxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NDQ6MzcgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAxNmVhYWY2YzNiYTE0NTk2Y2E5ZWZhZjRiMTE0ZjFiNzA5ZjQyYjY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyOTowMyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IGM3Mjk0NjllZjEyMTU0OTMwY2Y5ZDE1OTY3ZTE2MTg2ZmI0NDVmMzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI3OjIwIDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMQoKY29tbWl0IDE0MjU3MWQzY2VhMDhmMGMwNzJkMjRjMWQzOWE0M2M3NDQ2ZjhjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IGViYTg2YjZmN2FmZjI2MWVlMGU2MTMzNGRmNzBkZTcxNTZlNWMzY2IKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IDVjMGY2NGQ2ZGIyYjU5M2Y3Y2MwZWQyZDRmNTViN2M1OTJiNzc0YTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjI1OjE1IDIwMTIgKzAyMDAKCiAgICBPbmx5IG91dHB1dCBjcHUgd2FybmluZ3Mgb25jZS4KCmNvbW1pdCBlZTU4ZTQ4MjdiOWZhMTZlNjYzNWNhMDAzZThhNGYxMWRjYjVmYjdhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxNzo0MiAyMDEyICswMjAwCgogICAgRml4IHNwZWxpbmcgaW4gZXJyb3JtZXNzYWdlLgoKY29tbWl0IDAzZjQ4NWRmMjJmMjBlMTQ5Y2ZhZTk0YzU3Y2I4MmZlZWNiNWQ3NGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEyOjExIDIwMTIgKzAyMDAKCiAgICBOb3QgYWxsIExpbnV4ZXMgdXNlIHJwbSAoZGViaWFuL3VidW50dSBjb21lcyB0byBtaW5kKQoKY29tbWl0IDkzMDgzODIyNGY3ODE2OTZiZDM1MjI1ZjIyNTY5MzQ3NDE2ZjFiMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEwOjE1IDIwMTIgKzAyMDAKCiAgICBDaGVjayBuZWVkIGZvciAtbG0gdG8gdXNlIHJvdW5kL2V4cAoKY29tbWl0IGEwNjA5Y2YxZjNhNjkxN2QyNjM3MjU3MzIyNDhjZDkzN2E0NWFkOTQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDg6NDA6NDQgMjAxMiArMDIwMAoKICAgIFJlbW92ZSBsaW1pdGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbGluZSBsZW5ndGguCgpjb21taXQgMzA1OTczMzM4YTYzYWU1NGM1ZTAyYTg2MjZmYmU5YTgwNjRkY2I3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDozMjoxOSAyMDEyICswMjAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCmNvbW1pdCBjY2FiNGU5ZDNlZDQyNGMzOWQwZGMyN2JlNjNmYTc2Yzc0NjFlYTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjE1OjIyIDIwMTIgKzAyMDAKCiAgICBJbnRlcm5hbGl6ZSB0aGUgbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJldCBjb25maWd1cmF0aW9uIGZpbGUKCmNvbW1pdCBjZjg3NGFkN2I5ZGFmNGZjYzBkNDZjZGQwMzQ0NzRiNDc4MDA1MzQxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEFwciA2IDIxOjQ3OjI4IDIwMTIgKzAyMDAKCiAgICBSZXBsYWNlICNpZiAoQSkgQiAjZWxzZSBCICNlbmRpZiB3aXRoIEIuCgpjb21taXQgZWY5ZWE2NDFiYzI5MGVlYzUwNjg1YjYwNTE5YjMxYmVlOGIxNGE2OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDQ6MDYgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgMzVhYmExOTU5ZGUxMTlmMWZiODkyMDNjMzcxMDlhYTZmMGUyMWM1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDA6NDAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgZTQxZmJhZmYxOGFjOTA5NWNmNGE3MzlhMDZlYzM5YTFhNmNjZmRjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjA6MzU6MzUgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMgoKY29tbWl0IDEzN2ZlNTgyZDZjYzU2MTE0MzBkYWI0NmVmMTQ0ZWZkODRjZmM4MDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEFwciA2IDIwOjQ2OjU2IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKICAgIChzbm1wX3N0b3JlX25lZWRlZCgpIEFQSSBpcyBub3QgYXZhaWxhYmxlIGluIDUuWzQ1XS54KQoKY29tbWl0IDJiN2U2NDI4OGMwMWE4YTA2MjAyNmM1MjFjYTMxYTVlODg1ZjMwY2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjEyOjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDdlOTVkODBiNjk4MDUxMjU5NjQ1YzA3NGE1M2ZmZDI2NGE2ZmE5MTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjA2OjU2IDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFhOWI3YjdjMDJlMmRlZWZlOTk0ZDU5NWE3Y2MxZGQyZmZiZWVlMWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE1OjUxOjIwIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCAncmVjZW50JyBoZWFkZXIgc2h1ZmZsaW5nCiAgICBCYWNrcG9ydCBvZiBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2IGZyb20gVjUtNS1wYXRjaGVzCiAgICAoUGF0Y2ggIzMzNjMzMDggLSBvbWl0dGluZyB0d2Vha3MgdG8gY29uZmlndXJlKQoKY29tbWl0IDNkOWRkYjQxZTI2M2JjMWE3OGY5Zjk0NDBiOGQ0YWQ0Zjg2YzgyZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjM2OjE4IDIwMTIgKzAxMDAKCiAgICBGaXggdHlwbwogICAgQmFja3BvcnQgb2YgNWI3MDJiMDI0YjYwMTc2ZDdmNTY5OWI5MmU1NWRhNTBhOGRlYWU3MSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDBkMzVjNjA5NTY0YjY2YTFmZmU4MTU1NmQzN2FkZjA1MDNjMzg5Y2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjE1OjA4IDIwMTIgKzAxMDAKCiAgICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiBORVRTTk1QX1BSSW8KICAgICh1c2VkIGluIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYykKCmNvbW1pdCBhNzkxNDFhNDE5OTUzZDAxMGE2OTg5ZThiODhmNGRmMTI3Mzk0ZDM4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwOToxOToyNiAyMDEyICswMTAwCgogICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CiAgICBCYWNrcG9ydCBvZiBmN2IwZGUxNTE4MDAyYzZlOGY5Yjk0ZWYzZGViODg4MmUxZTkzMzhlIGZyb20gVjUtNy1wYXRjaGVzCgpjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDg6MjA6NDYgMjAxMiArMDEwMAoKICAgIEZpeCBJUHY2IFRDUCAmIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydCAoaW5jbHVkaW5nIE9wZW5CU0QpCiAgICBCYWNrcG9ydCBvZiBjb21taXRzIDVjZDE1NzM2MjU0NzFjMDU4M2U5MDg3YWVjNjgwMmI3NzE1N2Q1YTIKICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCBkOTU1NWFjYjlmNDdjM2FhOGZkZTRiYzIwYTQ0ZDdjYTYxODFhOGE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciAyNSAxODo0ODoxMiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCgpjb21taXQgODJhOGI0N2VlOTZlNWQyOWEyYjdhYzNjYTAwNzIyZDczN2Q1YjQ3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzE6NTYgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgOWNhOGQ5MzlhYjM5MzMwNmExZDBmMTQ2YzljYjcwZWEwY2IxOWQ0OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzA6MzggMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgY2VjZDQ4NjlkZWI2OGYzZDRjNzFlNzY4ZDViNDBkZDU3NjQ0NjkyNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6Mjk6MzEgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgYTFhNDUxM2JkM2U0ZTYxNDIwMGY2ZGI1YTAyZjYxZDZjOGVlZmIzMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjQ3OjQ1IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCA5YmRiY2NhMTIyYzM3ZGEzMDRmYzZhYTY5Mzk3Mjk0NzVmOTBmNWZkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6MzA6NDkgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFjay1wb3J0IG9mIEdJVCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6NDE6MjQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDk1Njk3OiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcwoKY29tbWl0IDFmNzVmMzc3ZDBkYjAxNzU0YzBjMTYxZGM0NDM3MzA4MWJlZWY1MjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMToxNDowNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUEFUQ0hFUzogMzQ4OTM4NzogSW5zdGFsbCBGcmVlQlNEIDEwIGhlYWRlciBmaWxlIChwbHVzIG90aGVyIG1pc3NpbmcgdmVyc2lvbnMpCgpjb21taXQgM2Q3MmM5ZTc4ZjJhZDgxN2M5ZDFkODI5NzczMjdiYmIyMGQ2M2FiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjA2OjMxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCgpjb21taXQgMTI5MDY1NzhhYjMwY2Y3NzZkMDgwYzBlZjMwMjViMzAzMzRkNzY1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTY6MTc6NDUgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjY2ZkNWNhNmZlMTAzMTNkNjE4MWQyNGJiYjE3OTc4MjVhOTdkYTEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo1MToxNiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKCmNvbW1pdCA5ZmRhMjY2ODcyMmYwOGRkYmZkZDY3YTIyMzlkOGIwMjFkYjY0YTgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo0ODo0NiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCgpjb21taXQgY2JjMThlYjc2M2JhNmRmNjllZjcwNjY4YTU0ZDc1YmYzNWU3OTUwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6MjQ6MDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGM3NzI1MTkyNDc4YWVjMDE4ZmI0YWVmYTYwOTQ2ZTA0YTQwNmMwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQzOjI0IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQoKY29tbWl0IGE2YmU3Mzk1NjZmMzEwZDc0NDFmZDdmNTQ5ODllMzk0NDZmN2ExNDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQyOjI4IDIwMTIgKzAyMDAKCiAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKCmNvbW1pdCA4YTliNTcyOTE0NTNjYjhhZWMyOGU3NjZjNTk0NzAxZWQxOWM0ZmM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMTowMzo0MSAyMDEyICswMjAwCgogICAgRml4IGZvciBEcmFnb25GbHkgMwoKY29tbWl0IGU1YzlhMzJmNzllYWMyZTg1NTI3YzljZjA1MDg3Y2RhZTliMzVhNmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIwOjU5OjUzIDIwMTIgKzAyMDAKCiAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCgpjb21taXQgY2Q0M2JjMDlhMzliZDk3ZmY1ZTcxOWEyY2UyMzJjZTQyNDYwMGE2NQpBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTo0NzoxNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKCmNvbW1pdCBlMmZjMTVmOWU1YTZlM2UzNmJlNWY0ODk2MDFjYmY2YmY3MzE5MTdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToyMTozOCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDQzMmZlM2RkZjU0ZjJjOThmOTM2OTU5NDY5Y2I5YjAxNGQ1OTlmMDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjEwOjUyIDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKCmNvbW1pdCAzN2QyNzcwY2Y1MGM5ODAyM2VlYmE5MGUyNWQzNzJiZmY3MzE2YWRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjA2OjQwIDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgODZhOTQ4ZDg2OTFlODgxZDU1NTkxZGNhYmRkYzI3MzljZTcyYjMwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowMTozNyAyMDEyICswMTAwCgogICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCgpjb21taXQgZmUyNmEzYzRmMjlmMDQ2YmY2NWVkNTJlOWQ5NDA1NGI2NzVmYmM0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6MDQ6NDIgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucwoKY29tbWl0IDc0NWJhZmNkY2M5YzhlODQ2MTZkNGUyNzRkYjJhMzg0YmYyMzRkYTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA4OjU1OjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcwoKY29tbWl0IGRhNjkyNWU2NzYzY2FkYmUwMmY0YThiYmZlNjhhMzYyZTUzNWFkNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjM4OjM2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKCmNvbW1pdCBmYTYwNmRkN2NhNmFmZjkzMDhkNGU4YjAxYmJjZGUxNDhmNDQxMjcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjo0OToyMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yawoKY29tbWl0IDYxN2E4M2JhNzk5NTc1Yzg0YzY2ZjZiMWM0ODBlZjYzMzE2MWE2NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI4OjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0Cgpjb21taXQgNjI1ZjU1YzI3MmVjNjI4MWUzOGQ4ZTMwZWI1M2ZkNTE1MTZiMDBhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6NTQ6NTUgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKCmNvbW1pdCBiNDhmMTlhZDRiNGFhNjhjM2UxNmUyYTcyZGYzN2I5YzBjZDM2YzRhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyNDowNyAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKY29tbWl0IGQ3NGNiMzk2NjE3NTg5MjU2MmY1ZTNhOWIxNjgzYWNiYTJjMjJlMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQ1OjE4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKCmNvbW1pdCAwYjFhNzc2NzQ2NzhjYzlhMTViZTNlNzcwMGQzY2VmNjUwZWQwMmM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMjowMDozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCgpjb21taXQgMTM5MDIzY2QzYWI1MTYzMWNjMTBlMjg2NmQ3MWFiY2Y5OWFlNGMxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTY6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQoKY29tbWl0IDE2OWI2YWFhN2I2MTgyN2NjMWFkMGIzYWVlYWUzYTcyMjlkZDI1ZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUzOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocwoKY29tbWl0IGEwYmUzMmFkMDUzYTcxZmE5NjEzNGQ1NWU1NDJiYjA3ZDRmMDI5N2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQzOjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKCmNvbW1pdCBiZjliZmY2NDU1Njc4N2Q3NjZlZTJlZjJkNTc4YWZiOTIwNzE5ZjNhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MTo1NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgoKY29tbWl0IDVkNzRjMDEyNDU1MjNhOWQ4ZGIxZWRhMjdkMWVmYWUyZWJjMTA0ZmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCgpjb21taXQgNWIzOGYwNjJiOTliNmVmMzY3MDhlMmM3ZGU0OTY1YTMxOTI2MTJlOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzQ6NDggMjAxMiArMDEwMAoKICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5Cgpjb21taXQgZTVmODI3ODJkYTA1ZWZhN2MwZTZkYzJiZjVhNDFlZTExODY4ZjQ2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzM6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECgpjb21taXQgODMyNzU2NWU4MjMyNzBkMTBhNDUwNDU2OGVkYmU1YjVhZTMyM2E1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzE6NTQgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKCmNvbW1pdCAxNzBmNmYwMjdiZjRmOTE3NGI3MDczNTMwZGE0ZDA3ZjQwMGJiYTU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyODo1OCAyMDEyICswMTAwCgogICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cwoKY29tbWl0IGRiYjQ1NzNiNjlmYWU4NWNkYzkzMWIyODkyYjVjZTRlNWIxNmIzMjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjIzOjM2IDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKCmNvbW1pdCBmMTE2ODFmMTVhYWQ3ZDlhNTJmYTI5ODEyZWNiYjUwN2YxYjdmZTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzY6MzggMjAxMiArMDAwMAoKICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCiAgICBUaGVzZSBjYW4gY29uZnVzZSBzdGVwcyBzdWNoIGFzICJtYWtlIGRlcGVuZGNoZWNrIiwgdGhhdCBkbyBhICdmaW5kJwogICAgb24gdGhlIGN1cnJlbnQgdHJlZSwgYW5kIHdvdWxkIGRlc2NlbmQgaW50byBzdWNoIHVucGFja2VkIHNvdXJjZSB0cmVlcy4KCmNvbW1pdCA0NzBkY2Q0YjZjM2ZmMTFmZjBhMzUzMmE3MzQwYTU2Y2ZmZDY5MDk4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAoKICAgIERvbid0IHJ1biAibWFrZSBkb2NzOyBtYWtlIG1hbmNwIiBpZiB0aGVyZSdzIG5vIE1ha2VmaWxlIHByZXNlbnQKCmNvbW1pdCBjOWFjNDIwMzQzZTE2ZGYyYjcwNjVmNWJmMjc5MGRmNDRlMjQ3ZmJhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAoKICAgIEFsbG93IGRpc3RyaWJ1dGlvbiBhcyBwYXJ0IG9mIG5vcm1hbCBOZXQtU05NUCBwYWNrYWdlcy4KCmNvbW1pdCA1OTk5ZjYwYzU3NzIzZjIzZjNjMjU0YWY1N2ZkYjEwYWYzMDFhOGViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCgogICAgUmVnZW5lcmF0ZQoKY29tbWl0IDI3NWQyMDQwMzZhNjA3ZTNkZjUwZTg0NDdkNGJjNzU1ZTlkYjAyZmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucy8tLWRpc2FibGUtYWdlbnQgdG9nZXRoZXIgd2l0aCAtLWVuYWJsZS1taW5pbWFsaXN0Cgpjb21taXQgYmRjY2M4NzU3MTAyOTVhYWNmNTBmNzFlYjFjMWQyZWU5N2YzMzZmZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAoKICAgIERvIG5vdCBkZWNsYXJlIHRoZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG9wYXF1ZV9zcGVjaWFsX3R5cGVzIHVubGVzcyB0aGF0IG9wdGlvbiBpcyBzZXQuCgpjb21taXQgYjgwYTY3ZGEwNTJhZGNhMWI1YTY0NGRiODNhNzgyZTE1YzIyMzdjMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAoKICAgIENoZWNrIHRoYXQgdGhlIGRhdGEgZXhpc3QgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0Cgpjb21taXQgZWZhZTg2YmJhNTk2MjQ5MWQ0MmI3N2I5MzUxOTFhM2ViMjVkZDkzOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAoKICAgIFBhcnRpYWxseSByZXZlcnQgIk1lcmdlIHJlbW90ZSBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8gVjUtNy1wYXRjaGVzIgogICAgCiAgICBDb21taXQgZDM1YTE4NjAyMTdlNzIzZTRmODY2ZGQ5OGVmNjYyMTY2NTkzNGM0YSBhY2NpZGVudGFsbHkgcmV2ZXJ0ZWQKICAgIAogICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCiAgICAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyIChDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MpCiAgICA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjIChSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSkKICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQogICAgCiAgICBhbmQgcGFydCBvZgogICAgCiAgICA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiIChBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzKQogICAgCiAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KCmNvbW1pdCBhYWVkZDU5Y2MyZGE3MDE1MjdkYzJkMjYxZDRlOWY4NWYxNmU3NTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxMSAyMDo1NzozOCAyMDEyICswMTAwCgogICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCgpjb21taXQgNGI5NGQ3OTY5MThhNGVlYWU2OGFiMjFhYTUzZDQ0NGE4YjVjMjkyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBNYXIgOSAwODowNDo1OSAyMDEyICswMTAwCgogICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKCmNvbW1pdCAxMGZlNmI4MzMyNGFkMzdkMThiOTM3Y2M4YzZkZTk0ZGU1MzRkMDM1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMzowNDowNyAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBlMTEyMmVkYzFhNWZlNzk3NmIwNjUwNDQxMzRkMzllN2RiNTk4NWVhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjo0MzoxOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBhNjEzZDNhODM0OTEyMjA2ZDFiYTU5NzFlNDQxYTNlYTZiMzZhZjIzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjozMzowMyAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAwZWYzNGU2NTE5ZGZjYjgyYzk3ZGY4NDI3NTQ3YzA4ZGNmODFlNjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgOCAxMDoxMTozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgogICAgCiAgICBOb3cgaXQgZHVtcHMgcGFja2V0cyBhZ2Fpbi4KCmNvbW1pdCA4ZTY5NzQyZjE0M2U0ZmMxMTE5NmU1YjJlZDY2YzhmN2Y1M2ZkMDJmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUxCgpjb21taXQgYzRlMDBiOGMzZTEwMTBjZGNhYjVlNmMwMmQ2MGQ3NWRmOWM2ZGNmMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMzk0OTAxMDRhM2FiNTgyMzVhYWNlMmY5ZDg3MWMyNjZkYzQ0ODVlZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTk6MzggMjAxMiArMDEwMAoKICAgIGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlCgpjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1Njo0MCAyMDEyICswMTAwCgogICAgTW9yZSBmaXhlcyBmb3IgU29sYXJpcyBzaAoKY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTU6MDg6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcyBpbnN0ZWFkIG9mIDAuMC4wLjAuIE1ha2VzIHRlc3QgVDE2MHNubXBuZXRzdGF0IHBhc3MgYWdhaW4uIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCgpjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNDowNDo1NCAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IDI2NTE5MDljY2NlYWJmY2ZhZGFmOTQyYzAyNDUwZTI4ZmU4MzdkYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDkgMTI6MDQ6MDQgMjAxMCArMDAwMAoKICAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlNDFmMTE1ZTQwMzA0Yzk0MWJhMTdkNjdlMjQ3MTA3MjJkOTA3NDFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEzOjM5OjE3IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgoKY29tbWl0IDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgoKY29tbWl0IDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMDk6MjI6MzEgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgoKY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MzkgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNDRhYTI2NTg5MWNkNTYzZjdmNDExNGVmMjVkY2Y3YWFmM2IxNGU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IGRhZTRlMTZiZTg2MTE3ODYxZjYzZDFhMmY5ODFhZDM2MTQxOGY1YzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCAyOGY2MjI2ZjJlMjI4YjhjYTI0ODQ4OTczNWY4NjUwMmIyY2NlMGExCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNCAxMDozNzo0MSAyMDEyICswMTAwCgogICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgoKY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTc6MTk6MzAgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKCmNvbW1pdCBlZTcxMDQ5YzNlMjFjMWQwZTM0MjQyOTcxMzY2NTJiYmUwZTM5ZDg1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE2OjQ5OjQxIDIwMTIgKzAxMDAKCiAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCgpjb21taXQgY2U5NjAwMzYxZTY2NWRkZTE3YWY5ZDhhYjE2ZDdjZTg1ZGMwNTY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCgogICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCgpjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozODoxMCAyMDEyICswMTAwCgogICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCgpjb21taXQgODcyNjk5NWM3YThhZWY2NzRjNGYxNjRiMTg3MWMzN2JiZGNkYWQ1MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCgogICAgZ3JlcCAtdyBmYWlscyB3aXRoIE9wZW5CU0QgYW5kIFNvbGFyaXMgMTAtNjQKCmNvbW1pdCAxZWI0NzQ1YjIzY2MzYTgzOTg2NGU3ZjZlYTI4MzU1YjA1NjZlYjY3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM1OjQ5IDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzIC91c3IveHBnNC9iaW4vZ3JlcCB0byB1bmRlcnN0YW5kIC1xCgpjb21taXQgOTk1NGI0Yjc0MWZkOGM2M2Q2MTI4YmQwNTI3Mjk4YzhlNGU5ODlmYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNDo0NSAyMDEyICswMTAwCgogICAgTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHByb3BlciBzcmNkaXIgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgpjb21taXQgNzgzNjkwMDJiZTI3MTFmMGFhODc2YjY0YTRlMTBiMDkwY2MyNDFjZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozMzozMSAyMDEyICswMTAwCgogICAgTm90IGFsbCBtYWtlIHZlcnNpb25zIGRlZmluZSAkKFJNKQoKY29tbWl0IDk0MjQ1YjI5YTNjZGE4OTQ3NWM2ZWFiNWQ5NDkzYzY2NTdmZjM4ZTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAoKICAgIE1ha2UgYXV0b2NvbmYgMi42OCBoYXBweQoKY29tbWl0IDQ0YWNkNmMyODVmYjU2MTRiNGM5NjExYjFhYmRlY2E5ZGQyOGU0YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cwoKY29tbWl0IDFmYTFmZWUzNjkzZjY3YjgyMDIyMzgwNmIzZDczYWZkNGM1MGVjMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDIgMDE6Mzc6MjAgMjAxMiArMDEwMAoKICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEzOjM3OjIwIDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDVhMTc1NDI4Yjk3M2QyZWE4NTUzZTI5ZmVjZjk0Y2YxNTY2YWE4NTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDM2NDI3NmExYzVhYTY2Y2FhMjNlYjViN2YxMTFmZGViNWFmNzFmYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQoKY29tbWl0IDczNTk4MzQwMTcyZWZmNzU3MjlhNmQ1NzE5MmI4MTcxZDViYmYwMGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKCmNvbW1pdCBmMzIxNDQwMjY3MmNhMTk5ZmQ1MzFlNjYxMjJiZjk2YzRkOWE0ZWI3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0MjozOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA5OjE4OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogRG8gbm90IGluc3RhbGwgdGhlIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyB0aGF0IHdlcmUgcmVtb3ZlZCBpbiA1LjcKCmNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKCmNvbW1pdCA0MzJjYmI3YTU1MDFhYjkwZDY2ZDBhODNlNzMxZTczNDNiYzA0YjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEZlYiAyNSAxMDoxMzoxNSAyMDEyICswMTAwCgogICAgQ29ycmVjdCB0eXBvcwoKY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgRmViIDI5IDA4OjU1OjM1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKCmNvbW1pdCBkNTE1ZTJhNmU0YzJhMWM0ZDg0NzM0Y2M3YjJkMGIyZmM1YTg5NGFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCgpjb21taXQgYWY4MzY4ZWQ4ODk4YTc4ZDA4NjhiNDdhZjQ2YmM5ZGIwN2QxYzc2NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjUwOjU2IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgoKY29tbWl0IDE5ZTI3MTU4MDdmZTA2ZmQwYmFlZGY4ODE2NTAxMWFlZTkzM2U3NTUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNDowNTozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKCmNvbW1pdCA2NWY3OTYyZjkzMmM5Yjc1YzViYmJiMDQ3ZDFlMjZhZTYwOTc4ZTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTI6MjM6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKCmNvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTE6NTc6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKCmNvbW1pdCA4NzliZjcwNzlkMzRmYTQ2ZjZmY2Y1NGEwMWM4NTAwYmVhZWNlNTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6NDQ6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCgpjb21taXQgMDM0ZjFjNTcyZjY4M2VhNDI4NTgzMDc0NDcxZTVkNWQxM2I1MTgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjIyOjIwIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgMzY0MjNlMjEwYmZiNjVlZjEyMWM2YTY2YWVjNDM4YzdjMjM3ZDNkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjAzOjI1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgZWVkMGJjYmM0M2ZlYTE4MjU5ZjBmNjNiMjA4MWI2ZDEwNTM1YTA1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDA5OjI3OjExIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCiAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKCmNvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyNyAxODo0Mjo1OCAyMDEyICswMDAwCgogICAgQWRkIC1scnQgdG8gTkVUU05NUExJQlMgc3VjaCB0aGF0IGNsb2NrX2dldHRpbWUoKSBjYW4gYmUgZm91bmQKCmNvbW1pdCBmMTMzMjA1MDAyOTRiYjI0MGY2M2M2ZGQ3ZDJlOWEyMjA4ZWI3NDBkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTY6NTI6NTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgYzQyNzZiNjIzMmMyOTE0NWMwMzk4ODRlNmI1YTZiNmRhNGI5MzgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjU0OjQ1IDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDAxYzkzMGVkY2MyNTcwMGQ2YjVmYjAzNzZmNTVhMjY0MjVlMTNmYjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNToxNzoyMiAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CiAgICAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgOTQ4NGQ4MzIwM2M0ZTJkODIwNDE2YmU2NjVmYTgzM2FhNzA0NDRkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAoKICAgIFJld29yayBjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMy4KCmNvbW1pdCAyYjdmMTM0OTUyMjg2MzVkODE2ZTU4YjIxNzRkYzEyNGRkMGNmMzlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCgogICAgc2V0IE1FUkdFX0FVVE9FRElUIGJlZm9yZSBtZXJnaW5nIHRvIGF2b2lkIHRoZSBmdXR1cmUgZ2l0IDEuNy4xMCBmb3JjZWQgbXNnCgpjb21taXQgZTFiOTEwYjBiZTkzNDM1ODZhZTllZGJhNmY0NjA0MGFmMzE1ZmNkZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBpbml0X2FnZW50KCkgKyBpbml0X2ttZW0oKTogUmV0dXJuIGFuIGVycm9yIHZhbHVlIGluc3RlYWQgb2YgaW52b2tpbmcgZXhpdCgpIGlmIGFjY2VzcyB0byBrZXJuZWwgdmlydHVhbCBtZW1vcnkgaXMgZGVuaWVkCgpjb21taXQgNDYzZWVkMjEyMGY5ZDE5MWJjMjI2NzM0OTZhNDllODE3NDY2NGU0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBzeW1ib2wgTkVUU05NUF9FWElUX09OX0JBRF9LTFJFQUQKCmNvbW1pdCBjMzZhYjcxYTRlMDk2ZjE2Y2M1YTU1NTMzZjA4MGM5YTk0MDA5OTE0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogc25tcGQgKyBhcHBzOiBTZW5kaW5nIFVEUCBwYWNrZXRzIHdvcmtzIGFnYWluIGZvciBub24tcm9vdCB1c2VycwoKY29tbWl0IGVkZWJkZGJhOTMwZjhiMTQ3MmZhMGJkMjBmYzQxM2VmOGNmNDY0YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL1JVTlRFU1RTOiBGaXggYSBiYXNoaXNtCgpjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCAlbGQgdmVyc3VzIHRpbWVfdCBvbiBzeXN0ZW1zIHdoZXJlIHRpbWVfdCBpcyBhIHN5bm9ueW0gZm9yIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGxvbmcuCgpjb21taXQgZDg5NzhlY2M4MjExYmU3YzFlNzkwNWYxZTIxNWJiMDZkZWQyNjZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMAoKICAgIEZpeCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYyBmaWxlIGhlYWRlcgoKY29tbWl0IGFhNzY2ZDE5NmU1Mjg3ZjZjYTc5YjU4YTM0NWIwMjQyNjBhYmEzNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE3OjA3OjEzIDIwMTIgKzAxMDAKCiAgICBJRi1NSUI6IGRvIG5vdCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvciAoPj4gMzIgb2YgYSAzMi1iaXQgdmFyaWFibGUpIHdoZW4gdXBkYXRpbmcgYSBjb3VudGVyIGFuZCBpZmlfaXBhY2tldHMgaXMgYSAzMi1iaXQgdmFyaWFibGUKCmNvbW1pdCBjM2ZiNmRkOWU2Yjk5ZTk1NDI0OTMxODg5ODc4NzFmYzUwMTdjYjNjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwOTo0NTo0NSAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBvbiBzeXN0ZW1zIHdoZXJlIG1vZGVfdCBpcyB1bnNpZ25lZAoKY29tbWl0IGY4YTNlZjBkM2Q0ZTUzMDI3OTkwMDEwMTA0OWI4ZGU5OGE0NGE2ZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDg6NTIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWIgKyBzbm1wZCArIHNubXB3YWxrOiBBdm9pZCB0aGF0IHN5c3RlbSBjbG9jayBjaGFuZ2VzIChlLmcuIGJ5IG50cGQpIGFmZmVjdCBjb2RlIHRoYXQgbmVlZHMgcmVsYXRpdmUgdGltZQogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IHRoZSByYW5nZSBvZiB0aGUgU05NUHYzIHZhcmlhYmxlIHNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YgMC4uNDI5NDk2NzIgb24gc29tZSBzeXN0ZW1zIChpLmUuIHdyYXBhcm91bmQgYWZ0ZXIgNDk3IGRheXMpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSwgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZXByZWNhdGUgYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksIG1hcmtlcl90dGlja3MoKSwgbmV0c25tcF9tYXJrZXJfdXB0aW1lKCksIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSwgdGltZXZhbF90dGlja3MoKSwgdWF0aW1lX2RpZmYoKSwgdWF0aW1lX2hkaWZmKCkgYW5kIHVhdGltZV9yZWFkeSgpLgogICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgc3RydWN0IHRpbWV2YWwgbWVtYmVycyBvZiBkYXRhIHN0cnVjdHVyZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgYSB3YWxsIGNsb2NrIHRpbWUgYnV0IHRoYXQgZG8gbm93IGNvbnRhaW4gYSBtb25vdG9uaWMgY2xvY2sgdmFsdWUKCmNvbW1pdCBjMTk3NjBmMzMzM2M5MmZhYzVkNTBlOTc2OGNkZjkzOTIxOGJjNDg3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxNSAwOTo0NTowMyAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wdjMuYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAoKY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NDM6MDQgMjAxMiArMDEwMAoKICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCgpjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NTQ6MzIgMjAxMiArMDEwMAoKICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKCmNvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAxNjo0ODowOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCgpjb21taXQgZmFmYzk5Y2Q4OWU3M2VjN2UwMGJmNzM2MGQwYjRmYTYxOTQ0YTRmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxODozNCAyMDEyICswMTAwCgogICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKCmNvbW1pdCA3YWYyMDEzZGU4YmYxYjM3OWMwNzZkYjRlMTA0NTA4ZTE3ODc0ZDNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjU1OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKCmNvbW1pdCBiYmQ2N2Y2MzUzMGY1ZWYwYmZjOTQ4ZmM1OGRmZTZhOTNmOGY4Njc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDJhNjZhZWZmMjViOWU5ZWY2MzVhNDA0YWQyZjUyMTJmOWU4Y2YwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0Nzo1NCAyMDEyICswMTAwCgogICAgUmVuYW1lIHR3byBmdW5jdGlvbiBhcmd1bWVudHMKCmNvbW1pdCAzZmU3MmIzYjk5YjdlNGIyYjk4MjM2M2RmYzRmMmQ4ZDEzZjQwNTkyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDEzOjQ5OjIyIDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHNubXBfc2VsZWN0X2luZm8oKSBkb2N1bWVudGF0aW9uIHRvIERveHlnZW4gZm9ybWF0Cgpjb21taXQgZTlkYjI2NmFlNDhkMDVhN2E2Y2I1ZDcxYjRiZGVhN2FkODA4ZWY1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxNzo1NyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9uZXh0X2FsYXJtX3RpbWUoKQoKY29tbWl0IGQwODA0NGNiOWU1NzAyZmJmNTQ5ZTE0NDI1ZjQyNzk0MjU5ZDhhMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMDk6Mzg6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCgpjb21taXQgYTA1YzI3YzI3MTFjYjQxNTgyYTNiNGMzMWUzOGIwZTkzNTMwYjYyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1MTozMyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIGluIGEgc291cmNlIGNvZGUgY29tbWVudAoKY29tbWl0IDkxMGQ3YjBkOTkxODM2MDliOTUyOWIwNGMzZjI5MzMwZWI2NjEwMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6Mzg6MTIgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpIGJ5IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpCgpjb21taXQgNDNhODNmNmM2YTk2Y2MyMzE2YjcwZWVjYWNmMTI3ZWI2OTEzYzdhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxOToxNSAyMDEyICswMTAwCgogICAgVXNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGluc3RlYWQgb2YgbWVtY3B5KCkgZm9yIGNvcHlpbmcgc3RydWN0IHRpbWV2YWwKCmNvbW1pdCAyZmU1NzllZmIxY2IzYTc0ZjgyODAzY2EzMjM5MjhmNmI4ZTRiNWMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDE0OjA0OjAyIDIwMTIgKzAxMDAKCiAgICBNYWtlIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyBidWlsZCBhZ2FpbiBvbiBub24tTGludXggc3lzdGVtcy4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUuCgpjb21taXQgODgxZGU2YWI3MzU1Mjc3YTVjMTE2YTAwOGZiZTUxMzI5M2IwNTAzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxMDowODoyMSAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgUm1vbiBNSUIgaW1wbGVtZW50YXRpb24KCmNvbW1pdCA0NjI5OTMzYzBkM2IzZjlmNGJhNTgzNTM0Zjc5YTM3ZmI5NjMzODE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDIwOjA1OjMxIDIwMTIgKzAwMDAKCiAgICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBlOWI1YTNkZWU2ZjlhZmFiOGI5MGEyOTM5MjA0MDYzMmIwNzVhZDdhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE2OjU2OjU1IDIwMTIgKzAxMDAKCiAgICBVc2UgU05NUF9NSU4oKSBpbnN0ZWFkIG9mIG1pbigpCgpjb21taXQgYWU0NTJjNzdiNDExMTM5ZDZiNTgwMGZmY2Y4OGQ0OGU5YjQ3OTJhOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToyMzozOCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCBjN2QxMWZhMDBmOTk5NWRkYjlmZTNkNDk5NGEzZTk3OTBkYTJlMTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjE4OjQwIDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3IHBhcnRpYWxseS4KCmNvbW1pdCAwMGZkNjI3MjBlYzQ1NGY1YTY5MGRlNGZlYmEwODIyM2NmYjJjM2Y4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ4OjQ0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQoKY29tbWl0IGQ5ZTIyOWQ4MWFiZWFmMTkxZWYyY2NiMDc3ODQyODg1YzIzMGQ2MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDc6NDEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIGRlY2xhcmF0aW9uCgpjb21taXQgMWUyZTJhZjZjYWU4MzBmMzgxZTg3YTI0NGQwMjllYjg2YmYzZmNjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMzoyMDozNyAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGw6IEFkZCBlcnJvciBjaGVja2luZwoKY29tbWl0IDI0MWExNDFlMzFmMTY4NGZjNmNmNzBjYzRhMDBjY2U2MzZmZDM1MjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6Mjg6MzcgMjAxMiArMDEwMAoKICAgIE1ha2UgY29uZmlndXJlLXRpbWUgRVZQX01EX0NUWF9jcmVhdGUoKSBkZXRlY3Rpb24gd29yayBvbiB0aGUgNS40IGJyYW5jaC4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAuCgpjb21taXQgNmQ5ZDE0ZmVhYWEyZDBmZWM2OGI0ZDE1ODk0NGQzMmNiMDRmZjFiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToxMjowMCAyMDEyICswMTAwCgogICAgUmV2ZXJ0IHRoZSBjaGFuZ2VzIHRoYXQgYnJlYWsgdGhlIGJ1aWxkIG9uIHRoZSA1LjQgYnJhbmNoIGZyb20gY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgOGFiZTQ5ZTMwYzk3Yzg5ODNlODNiNDVhMzVjNzE2ZmU5MWY2NmJlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMSAxMTo1Njo1OCAyMDEyICswMTAwCgogICAgRml4IHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gdGhlIERJU01BTiBNSUIgaW1wbGVtZW50YXRpb25zLgoKY29tbWl0IGY5ZmIwYTUzMzM3NWUxNGRjMzcwMDI1YTBiMmZiYzc2MWJmMjdiZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMDk6NTY6MDIgMjAxMiArMDEwMAoKICAgIFJldmVydCAiSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nIiBiZWNhdXNlIGl0J3Mgd3JvbmcuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMy4KCmNvbW1pdCBjYTRhNGZlMjVlZmQyNzE0ZjhmMTk2MWI5Nzg1NjYxNjU2M2Y0MmM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEwOjIxOjQ5IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgcHl0aG9uL2J1aWxkCgpjb21taXQgMTNhZGE1NjU1OGI0NGUyOGQxMzU1YzBkY2UxZDkyMWYzNzQ2ZDU0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjUzOjQ5IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIlJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiIgLSB0aGVyZSAqaXMqIE5FVFNOTVBfUFJJbyBpbiBWNS02KyBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQuCgpjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCAyZmI5OWJlOWFhODZhNmNhMzQ5Yjg2ZDRlZjhiYzcyNmVkOWYyYTgyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTg6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGU1YzM1NTg5ZTBiZjQxNmJmZDAzNmJkNDY4ZjQyYWFlYWIyNWU3ODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1NTo1NiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjUxOjI2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBpbml0X2ljbXAoKS4KCmNvbW1pdCBjMzAzNTQ5YTU5ZmE4YzJmMjBhOWQ4YmYxZTk4NWZiYzhhYmRlNmE4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAoKICAgIFJld29ya2VkIF9yZWdpc3Rlcl9leHRlbmQoKSBlcnJvciBoYW5kbGluZy4KCmNvbW1pdCA5YzIwZTI3YTcwMjZmYzAzMGRhM2IzMjhiOWEyZTFiNGYzNjY3MGNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDIyZmQwYmZjMmRmMGUxZjYwMjBkYzNjNTBhNzUzZGRmMjhhNDU5OWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNWQ2MWU1N2JhZjU4MGM3ODI1MmMwYWJiMDA5OGMwN2JiMDVhZjE3YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzYzNlZWFlODBkNzk2ZjI3NTk3YzkwMWU3ZmYyMDQ2Yzc2OWVmNGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMAoKICAgIE1hcmsgcm93cmVxX2N0eCBhcyBmcmVlZCBzbyBuZXh0IGl0ZXJhdGlvbiBhbGxvY2F0ZXMgbmV3IG9uZSBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIGZyZWVkIG9uZS4KCmNvbW1pdCBhZjlhYmQ1M2MyMzM3YzkwYTY5MWE3YjA0NGZmM2Y5N2MxMDAzMTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDU6MTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGNmOTQ2NWY1NDE4MWU2MmUyMWE5YjEwMjE5MTMxMTA3YTNkMmViZjYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNDowNiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNzg3MWYyYjA5YjhiNTJmMzRhOWU1Nzc4NDI2NjQ1OTA1MzE2NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAyOjUwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3YTM3ZjMzZDMxMGM5NTk4NjA3YmMzMjNkOWJkYmY5MWFhZjcyYzk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDA6NTEgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNlNDVmNzAyNjI0OWU0NTM1MGVkYWFjODUzMzc0MjNhYTBlOTVkOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgNjE5MzY3NjJlNjQxYzE4ZGI3NWFhNTEyNWEzM2U3NzZjNjc3YWRjNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjEzOjM5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBmcmVlaW5nIHJlZ2luZm8gdHdpY2Ugb24gZXJyb3IgaW4gYSB0ZW1wbGF0ZSBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCgpjb21taXQgNDk2NDM3NDMwNDE1ZmJhZmViMWNjZDQ3NzRmMWNhMDBkNjI3ZWExZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MDQ6MTMgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbnRyb2R1Y2VkIG9uIFY1LjYgYnJhbmNoCgpjb21taXQgNWI0YTI0Y2RjZWUxYmMzZDgyNjMzY2NhZmViOTZmY2U5NTM0OWM1OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjI6MjcgMjAxMiArMDEwMAoKICAgIHVuaXQgdGVzdHM6IGZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgY2JmMWM5MWJhZjcxOTFiZTVmYTI3ZDgxYmNmODcxNDMzMWEyYzEyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6NDIgMjAxMiArMDEwMAoKICAgIFVzZSBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9kaXNwb3NlKCkgdG8gZnJlZSBhIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdC4KICAgIAogICAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZi4KCmNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDozMSAyMDEyICswMTAwCgogICAgSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgM2E3NmI0M2UxMWZmZmFkYTYzMmZjY2I4NDhhYjUwMGU4NzZhZDQ4YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTY6MjE6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogQXZvaWQgdGhhdCBhbiBTTk1QIHNldCB3aXRoIFVzZUVudW1zIGVuYWJsZWQgY2F1c2VzIGEgc2VnbWVudGF0aW9uIGZhdWx0Cgpjb21taXQgODRkZWM5ZmE5MmIwYWEyZDU4ZWI3MDIwMzMwZjRmOThlNTE1NDMyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6Mzg6MjEgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgMzhjZjIxOGMzZjFhNzI3Nzg2ZTIyN2E1ZDNmYjE4NmZkMGYxYTE1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjUwOjEzIDIwMTIgKzAxMDAKCiAgICBGaXggYSB0eXBvCgpjb21taXQgNDU0MTIyMjQ0MTIyYmZkYjZmNjdjYWIzMTI1NmQ3YjQ2MzcyZTllMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjMwOjE4IDIwMTIgKzAxMDAKCiAgICBGcmVlIHRtU3RhdGVSZWYgb24gZXJyb3JzLgoKY29tbWl0IDAxMTkwMjJkYWE1OWM3M2JmZWMwZGEyMzg2ZDA2MjhmMTRlNmRhYjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDowOToxMiAyMDEyICswMTAwCgogICAgRnJlZSBmaW5nZXJwcmludCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCmNvbW1pdCAwZTg0Y2QzMDNhMDgyNjdkZWM3OGY2ZDgxYzliYjA3ZTNkODNhMTFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDg6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2M2RjODQ2YTc5NDljZTY5N2IzZTI4YzU0M2RjMTEwNWU2M2EyMjUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDg6MjggMjAxMiArMDEwMAoKICAgIEZyZWUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQuCgpjb21taXQgY2UxZjI4NGE2M2ViODE2NDRiM2UzMjYwNmNiZTM5YjY3ZTFkZmYyYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjM3OjA5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgN2UyMTQxM2NhNmYyZWZkN2EzYWZiNjJjNjJiNjQ0ODgxYjhiZDFlNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ2OjMwIDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBhbGxvY2F0ZSBhbmQgZnJlZSBlbmdpbmVJRC4KCmNvbW1pdCAzNGM5NjI4ODI2MDdjMzYzOGEyZmEyNWEyYWM1MzE0OTJkNzFjNzg3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6Mzc6MjUgMjAxMiArMDEwMAoKICAgIEZyZWUgbG9jYWxseSBhbGxvY2F0ZWQgdG1TdGF0ZVJlZi4KCmNvbW1pdCBmNTdhZTUzMWRjNTY1OGFiY2Q2NWIxNjI3NjE1NTI1MjM4ZDE2ZDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MjA6MjQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1MzZiYzU3NTU2YzMxNDE1NjFlYTRhMTk0ODEwYjE2MjkwYTY5MWVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MTU6NDcgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBhY3R1YWxseSBkb2VzIHNvbWV0aGluZy4KCmNvbW1pdCBhMDc3N2QzMDdkYmNhZjIxOWVlMDE4NGEwZmJhYjlkNGU1ZDZhYTBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDE6NDUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA4Yjk3YTcxYzhlNzk1OTQyOGViNGQ0ZThkOTBlOTA5NmQ0M2ZmMDlmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTc6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYzE1MDdjMjIwMzA1NDlhZTY2MGMwZTIxMWZiZGM1Yzc1ZWM1YzU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTM6NDcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2NWYyYjdiY2Q0ZmUwMzkwNmFhMWExMTVhYjYwYTg5YjhhZTkzM2Q1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTE6MzYgMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZXMgb24gZXJyb3IuCgpjb21taXQgMGU1MmU0ZjY2ZDQ0NzY2YmVhMzc0NzM1NTZjNzhlNTIxOWI5NTQ2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQ1OjMzIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQyOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNzQ4ZGE4NGIxZmQ2NTRlMzM4YmM3MDFlOGY5ZTVkYTIyOTE4N2YxYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjMyOjA0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZWIyMTcxNDZmZDU0MDM2ZWE0MjAyYmZlZjc4YmJmNzc0ZDdlMzgyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjIzOjEwIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOWJhMzhlZWM2NjEzOGVjMWY2MTNlYThkMDRlMTU4MTMwYzcxMjFiYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE4OjU1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZDlkOTM4ZDMwMThjMjdmNTMyNzdiYzVlNTk1Nzg1MDA0OTBjMWQwOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE2OjM4IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGUgb24gZXJyb3IuCgpjb21taXQgZDVlODE3ZDViZDUxOGQ5YWM2YTBkNjBlMGUxNDFkZDY0ZjI3YWQxOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE0OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmFlNjhmMDU5ZGY5ZDc0YjA3NGQxMmY1OWMxODQ3NDY2ZWQ1NzZjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjAzOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgYTAwZjNkNDYxMTIxYjU0NWFlZDcyYWMxMmIyNDM4NzkxZGNmYzRiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjU4OjM5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTk4ODRiYjRkMzVhZDEzNzQ3ZmZhNjcyMzQzNmRjYTU4N2E5YWI3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KCmNvbW1pdCBiYTVkNTI5MmIwNDM5M2IwYzdkN2Q3ZWQ5NjEyNDE5Mjk0MThjNmU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDU6MTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBkYTJkNmE3MDI4YTEzYjllZGYzYTVjODQzMTRkMGYxZmVlZjc2NzE0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6NDQ6NTYgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGY4ODA1NGE5YjY5YjZkZTI3NGY3YTE0YTU5YjQ3MzIzZTVlNGU0YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozNzozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgY29udGV4dCBpZiBpdCdzIE5VTEwuCgpjb21taXQgN2M0ZDQ1OWU4ZjFmNjUyY2MyMDk4YzNkNGM4MWRlOTBhODRlZDcxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjMwOjA5IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZWZlcmVuY2UgTlVMTC4KCmNvbW1pdCBmYzE5YjdmMzNiNTg3OTI3ZDJhMDFlNzJkMjNkMjFiOWIxNjk2YWIzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MjU6MjYgMjAxMiArMDEwMAoKICAgIERvbid0IGNsb3NlIE5VTEwgZmlsZS4KCmNvbW1pdCA1ZTk1Y2E2NzkwMDc2Yjc4ODA3MmE4MDFlZTdjODI5NjlkOTk1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTc6MDkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMIHdoZW4gYSB0cmFuc3BvcnQgZG9lcyBub3QgaGF2ZSBmX2ZtdGFkZHIuCgpjb21taXQgZWVkNmY1ZjliOWFlNTRkMmNlYWI2N2FkODVhZGRlMWY2YThhMjFkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEzOjEzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCA0MWNkZTY4YjVmYTRiMzhkODE0NTBjZjkxZTA4MmNkZmE4MjVlN2NmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTA6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGlmIGEgcmVnaXN0cmF0aW9uIHdhcyByZWFsbHkgZm91bmQuCgpjb21taXQgNWI3MmE0MDg1Mzg3NmExODZlZmNjMDA5MGE0ZTMyYzIzNWI5YzA1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjAzOjU4IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHdoZW4gZGlmZmxlbiBpcyBTTVVYX01BWF9QUklPUklUWSAod2hpY2ggaXMgaGlnaGx5IHVubGlrZWx5LCBidXQuLi4pCgpjb21taXQgZmE2YTkxMmU0MWM1ZDBmZDJhNjM2ODk0ZTg2YjY0MjZjMDczNzVhYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjM3OjQ0IDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2YWx1ZSBpbiBzZXRFdmVudC4KCmNvbW1pdCA0MTBiNzFkYTQyNTM4OWZlY2MyNWQxNGY0OWYyMzc1MzU4MTU3NmFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mjg6NDEgMjAxMiArMDEwMAoKICAgIERlcmVmZXJlbmNlIGVyZWcgb25seSBpZiBpdCBpcyBub3QgTlVMTC4KCmNvbW1pdCAxODUyNzJkMWEwYjkxMzc3NDE4NmYxYjkxMzVhZWFmNjM3ZWJlZDUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6MTc6MjEgMjAxMiArMDEwMAoKICAgIEFzIHBlciBhYm92ZSBjb2RlLCB0ZW1wbGF0ZV92MnBkdSBjYW4gYmUgTlVMTCwgc28gY2hlY2sgaXQgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgpjb21taXQgNDhlNWVhZDNmZDJjMmIzODVkZjY5NzJjNjc1MjZmZjZiZGMzMDc2OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjQyOjIyIDIwMTIgKzAxMDAKCiAgICBVcGRhdGVkIGxhc3QgZml4IHRvIG5ldyBlcnJvciByZXBvcnRpbmcgc3R5bGUuCgpjb21taXQgZjMzZDMzNjE1ZDZkODVkMDA3MzcyNjQ3M2M0MTQ2Y2JjZGYxMWNlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjMwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBzaWdzZWd2IHdoZW4gZW1wdHkgY29uZmlnIGxpbmUgaXMgcGFyc2VkLgoKY29tbWl0IGI1ZGYxZWViNDdlZDM1NTliNmY0ZDllY2NjZGIyNDIxMjZlNmM5OTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDoxMTo1OCAyMDEyICswMTAwCgogICAgRml4ZWQgKGhpZ2hseSB0aGVvcmV0aWNhbCkgc2lnc2VndiB3aGVuIHNwLT5zZWN1cml0eUVuZ2luZUlEIGlzIE5VTEwuCgpjb21taXQgNmZlZWQ2MjlhNzE4OTljMTEzMDk2OTU5ZDg1NDlkYzEyMDFlOGY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjQzOjM3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBOVUxMIGFuZCBsZW4gY2hlY2sganVzdCBpbiBjYXNlIHNvbWVvbmUgcHJvdmlkZXMgdmFsdWUgPSBOVUxMIGFuZCBub3plcm8gbGVuICgtPiBOVUxMIGlzIHRoZW4gZGVyZWZlcmVuY2VkKS4KCmNvbW1pdCAzNTVjNWFiMjY0YWYyYTYwMjBhMWQ4YTkyM2Y4MGYxMWI5NDIyOTVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6MzY6NDEgMjAxMiArMDEwMAoKICAgIEV4dGVuZCB0aGUgTlVMTCBjaGVjaywgaS5lLiByZXR1cm4gaWYgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUuCgpjb21taXQgZGRkNzk0OGFjYWQ5MzhjZDQyOTc0NTA1ZGRjYTRmMDM3MjExNjcwOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTE6MTE6MjkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSBzcGFydGEncyBjb3B5cmlnaHQKCmNvbW1pdCA0MTI1NjA4NmE3YTUwNDE0NTM0MTljZmQ2ZTU2MmM3YjU1YzU2YjBhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDozMjowNCAyMDEyIC0wODAwCgogICAgcHVsbGVkIGZ1bGwgY29weSBvZiBleHRyYWN0bmV3cyBmcm9tIG1hc3RlcgoKY29tbWl0IDYyNWE3MGRiZGZkOTkwMmRhNzllZmEyOTNmZTZkMmFjOGNjZjJiMmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjI0OjE5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgdG8gY2hhbmdlIHRvIHRoZSBuZXdlciBsb2cgZ2VuZXJhdGluZy9wYXJzaW5nCgpjb21taXQgNjJlMzJiMTMwODliMjllZGNmMjc2ZjYxNWRhNjdlNDUwOGZlN2JiNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMDk6Mjk6NDIgMjAxMiAtMDgwMAoKICAgIGNvbmZsaWN0aW5nIG1lcmdlIGZyb20gbWFzdGVyIGZvciBleHRyYWN0bmV3cwoKY29tbWl0IDcwMDg0ZGE2MWQyYmNiZDJjZjFlZDgxYmRjM2JmNjc5NGMyYWZmYjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDEzIDExOjQ5OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMgY29ycmVjdGx5LgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZC4KCmNvbW1pdCAwNGJmM2UyODgxNThlZTg4MGVkZjIzN2U0MDA3ZmVlMzdkMjA0NGRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6Mzk6MzcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVuZGxlc3MgbG9vcCB3aGVuIFNTTF9yZWFkIHJldHVybnMgZXJyb3IuCgpjb21taXQgYzE1MjZmY2NjMDQ3NGMxZGIxOGNhYTlkYmI4MzM4NTNjZGRkZTNjYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjEzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgYTI3YWExOWRmMjgzMTU2YzAzMmM4MWVhZWU1ZTExNTg1OWQzOGMxNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjExOjMyIDIwMTIgKzAxMDAKCiAgICBEb24ndCByZXBsYWNlICdyYycgdmFyaWFibGUsIGl0J3MgdmFsdWUgaXMgbmVlZGVkIG91dHNpZGUgdGhlIGxvb3AuCgpjb21taXQgOTg1ZGZmMmIwODc2ZDk0ODNjNDE0ZmNjZWEzZWY2YmM2M2UxNDU2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAxOjMyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJmZDc4MTgzMThlN2E1ZGZlOThmNTJjY2Y3NTBjMmE2M2U4MjVkZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMDoyMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAxNWYyMTEzMGJhMzNkYzlhZmQxNjRlNTJkZmQ3NGM5Y2VjMGU5MjMyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6NTg6MTQgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmE4YThmMmFiN2NkNzU4MjZjNWQ0MWVjM2NmZDVjZTNlOTYzNGNmMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjM5OjI4IDIwMTIgKzAxMDAKCiAgICByZW1vdmUgZGVhZCBjb2RlLCAnY3AnIGlzIGFsd2F5cyAhPSBOVUxMIGhlcmUuCgpjb21taXQgMzhmZDYzNzhjYzMyNzUxODBmNjNiOGQ5YjlhNDA3MmIzZGFiZjhlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjI1OjA2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgZWJkOTJlMTliMTBjMGEzOGUxN2NkZTQwNzg2NGI0NWMyNmUxNzMyNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjA3OjQzIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGlmICh2YWx1ZSkgY2hlY2sgLSB2YWx1ZSBpcyBjaGVja2VkIGZldyBsaW5lcyBiZWZvcmUuCgpjb21taXQgYzVjYWNmNWNhZjk3OWQwMThlYTZjYWUxYzAzYjhmZGYwYjExOGRmZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQ0OjQzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRvdWJsZSBmcmVlKCksICdkaXJuYW1lJyBpcyBhbHJlYWR5IGZyZWVkIGluc2lkZSBzZV9hZGRfcGFpcl90b19saXN0KCkgaWYgaXQgZmFpbHMuCgpjb21taXQgYWNkY2ViNTBlYTY2ZDZiMzIzYzc0ZWUwMjFmYjc3ZTgxMGU0ZTdhZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQzOjE5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gbWFsbG9jIGZhaWxzLgoKY29tbWl0IDE3MDUzZTM0Y2ZlOWE4YWIzOTVmYjUwZjVjM2YxZGFmYzcyNDdhZWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzozMjo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZG91YmxlIGZjbG9zZSgpLgogICAgTGludXggbWFuIHBhZ2UgZm9yIGZjbG9zZSgzKSBzYXlzOiBJbiBlaXRoZXIgY2FzZSBhbnkgZnVydGhlciBhY2Nlc3MgKGluY2x1ZGluZyBhbm90aGVyIGNhbGwgdG8gZmNsb3NlKCkpIHRvIHRoZSBzdHJlYW0gcmVzdWx0cyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgpjb21taXQgYTY2NDFlZGI5Y2I3NGZjMjIzNmI0MmNlNTU1NGZjMzMyOTk1NjU1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MjI6MzQgMjAxMiArMDEwMAoKICAgIE1pbkdXOiBTa2lwIHRlc3QgVDA2NSBpZiBub3Qgc3RhcnRlZCBmcm9tIGluc2lkZSBhbiBNU1lTIHNoZWxsCgpjb21taXQgYTg4M2VmMTk4MmYzMDFiMTQ4NWQyMjczMDE2NzQ5MjczMzBmNWI2NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjE0OjUzIDIwMTIgKzAxMDAKCiAgICBNb3ZlZCBkZWJ1ZyBvcHV0cHV0IGJlZm9yZSByZXR1cm4uCgpjb21taXQgNDU3NTE5NjcyODdkOTc2NDBlZmRjZGY4ZTc3ZThkNDkwOTM5ZDhlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTQ6MTc6MTggMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RydG91bGwoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDJjMmZhNDgzMzZhNGYxZjE3N2MyOTkxZDY1MTVkMjlmMzk1MzNjNDQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjUwOjQ0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAwN2M2NjZmNmNlYTI3ZjJiMmFiOWJjMDhhZWQwY2I2MTMzZmUzNzU4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6MTc6NDUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxOgogICAgRmlkZXggZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAzYjY4NjU2NjI5NmRkODdiYzQyYjdmMTE2OWRhYWNkYjNjNDVjYzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAxOCAwNjoyNTo1NiAyMDEwICswMDAwCgogICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjNhN2QxYjA5NjA5ZGFkNjQ5ZjU4YmJkYjViN2UxMGQzOWIzOThjMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMTE6MDQ6MDYgMjAxMCArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZGU3M2JkMzY1YTM4MWI5YzM1M2NhNTIzMDc2OWVlZmIxYWM3MWVkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMTo0Mjo0MiAyMDEyICswMTAwCgogICAgbG9jYWwvcGFzc3Rlc3Q6IFJlbW92ZSBhbiBpbmNvcnJlY3QgUEFUSD0gc3RhdGVtZW50Cgpjb21taXQgNjk5NTEzZjEyMzhlMGFkY2UxZjFjZWM5OGUwZDE0NzI5M2ZjNTA0NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMDk6MjU6NTEgMjAxMCArMDAwMAoKICAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjM1OGRlZTcyZmIzNDdlMjYwMGEwYTdiZDIxZjIzMjcwZDNhMDBmNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6NTg6MTUgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6IEFkZCBhIGNvbW1lbnQKCmNvbW1pdCA1Mzk2YmZlMDMyYzhjYmM3M2M4ZmY1ZDRiMDg1ZWJhZGE5ZjU5ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDozMDoxNiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBmZWIzYWYyOGRjYWUyMjAxNWFlODY1YTJlNWRkOGM0MTZlOTk5MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDowMjowOCAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBiN2UxYWEyNTViYWU0YTM0NTNmOWVjYTY0NGE4NzY2MzQzNTFmMTFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyMCAxOTozNjoyOCAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2ggdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdCBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAgCWFwcHMvc25tcHRyYXBkLmMKICAgIAlzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jCiAgICAJc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICAJc25tcGxpYi9zeXN0ZW0uYwoKY29tbWl0IGY0N2EzNzUyODQ5ZGIwNzVlNmYyMDUzYjg1OTViN2I3OTJmYjY0NjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDE1IDEwOjU2OjA5IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDAyYjYwNTZkZjk1ZGE4YjY3MzAzNGUzOWMyYzdjMzg2ZWQwZjM2OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDExOjQ0OjUzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IGExOTg2NTgzMmZjNzdmNGMwNDgxNDRkOTFhNDMxYjFlOTRkMzI5ZjIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAxNCAyMzoxMjowNSAyMDA5ICswMDAwCgogICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzc5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2N2EzZTJlY2NiOTVmOWM5ZDA4MDllZmNiZGRjZDg2NmVlMzA2MmQ1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDE0OjI3OjE1IDIwMTAgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGNkZTJlOGE1OTVhNTI3ZjA2MTQyYzNiODUyZGU4NDMzYTFjZjI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gMjQgMTQ6Mjc6NTUgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMmUxNTI1YTg1YmRhNTI5OWEzYjlmMjQxNjE0ZjdlNjUwOWFlZWJhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDEzOjM1OjExIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgMjk1ZjQ3M2M4MzU0NjIyMWIyYTcxZDgxNWM2MWUzM2E2N2Y5OGFlMzogcmVmaW5lIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgaW1wbGVtZW50YXRpb24uCgpjb21taXQgY2I0MjNiMGFlOWVkMDA1OWFhMTAwZGM0ZTJmZDkzYWQxYjk3ZmFmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMTo1Nzo1MSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGUyZmIwOWUwMDkzZTJmNjQ4ZmUyNjM4ZGEyZjNhZjE4ZmRiMzJiZjAgLSBpbnRyb2R1Y2UgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L3NubXBfcGVybC5jCiAgICAJc25tcGxpYi9zbm1wX3NlcnZpY2UuYwoKY29tbWl0IGFmYzM5NmFiMTYxOGE4NTk1YTI1MTlmYmMyNWY3YTQ5OGUxNzQ0MTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjQ5OjM0IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIG5ldHNubXBfbWt0ZW1wKCkgYW5kIG1ha2VfdGVtcCgpLgogICAgCiAgICBUaGVzZSB3ZXJlIGJyb2tlbiBieSBjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OS4KICAgIEFsc28gcmVwbGFjZSBhIHN0cm5jcHkoKSBjYWxsIGJ5IGEgY2FsbCB0byBzdHJsY3B5KCkgYW5kIHJlcGxhY2UgdGhlCiAgICBtYWtlX3RlbXBmaWxlKCkgaW1wbGVtZW50YXRpb24gYnkgYSBjYWxsIHRvIG5ldHNubXBfbWt0ZW1wKCkuCgpjb21taXQgMjEwMTg1YzE1ZDBkNjVmMGVhOThiNWUzYzJlMDc3NmY2MjIyZDE3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6Mjc6NDMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNyYXNoIGR1cmluZyBzdGFydHVwIG9mIHNubXBkIGludHJvZHVjZWQgYnkgY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQuCiAgICAKICAgIEFsc28sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvcHkgb2YgdGhlIGNsZWFudXAgY29kZSBpbiBmdW5jdGlvbgogICAgbWtkaXJoaWVyKCkuCgpjb21taXQgOGJiNGU4NmFiY2Y5OGZmMjg3NDhhZjBhZjg5Yzk4ZTY0ZDVjZDk2MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDc6NDc6MTIgMjAxMiArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIG9sZG1hc2sgdmFyaWFibGUuCgpjb21taXQgNjY4MDE0N2IxMzhlYzExNGY4MWM1ZDEyOGFjOTM1MGM4NDUwZDA4MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTg6NDQ6MzEgMjAxMiArMDAwMAoKICAgIE1ha2UgdGVzdCBUMDE1aW50NjRfY2xpYiBwYXNzIG9uIDY0LWJpdCBzeXN0ZW1zCgpjb21taXQgM2FhZDE1YWU1NjBhYzg1N2U3M2M5MDc2NGU5MDNlN2NhMDJiMzI5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjQwOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgZm9yIGxhcmdlIE9JRCBuYW1lcwoKY29tbWl0IGZiYTE4OGVlODIwMTBiMmYyZDhjYTJlNDI2YmE2NTQ0OTlhYjNkMGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTozMTozMyAyMDEyICswMTAwCgogICAgZml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIF9fY29uY2F0X29pZF9zdHIKCmNvbW1pdCAyMWQyNWQ4NmI4ZTQ5MDRkNzk4ZGM4Yzk2ZGFkZTllNTA0ODQ1N2E4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MjY6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgcG9ydCBudW1iZXJzLgoKY29tbWl0IGQzNjkzMTg0MWIyZmMyY2ViYzYzNjRiMjk0OTEyOWEwYWQ0MmFkMWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowNTo1MSAyMDEyICswMTAwCgogICAgRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSBTdW1GaWxlIGlzIHVzZWQuCgpjb21taXQgMGVmZGQwMjJkYTA5YWYxYjVlMTYxNzFmYTdhMmI1MjNjNWQ2ZWM1OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNTYwYmM2YzA5Yjc1MTU1NmVmZDZiNGM0NDk1NzUxYjEwOWE5M2Y5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU5OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3csIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCA4MjkxZDdjNWI5MmEzMWRkNGY1ODJiNDk3ZDRiMmEwODUzMzY3YTU2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTU6MTYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KCmNvbW1pdCA4OGUxZjM0ZGU3MzAwNTc1ZmE2ZGFiODU3ZWNkZGIyNDJhODdkZTgwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDg6NTUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBiZTEzNzVhOTkyNmViZTBjZDViNzhhNDA0NWMzYmQxMWM4MzY2NGIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDY6NDkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgc2Vuc29yIG5hbWUgaXMgdG9vIGxvbmcuCgpjb21taXQgMWNiMjQ2MjUzNzIwNjJiMTRjNzFkN2RkNTFlMjBmZWY3NzNlMjc0MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQxOjAwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIENQVSBoYXMgdG9vIGxvbmcgbmFtZS4KCmNvbW1pdCA4NGM4MDdlZTAzMjUxZTU0ODU2ZTgzZDYyZDA2ZWEwOGI4ZGY1MjdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MzY6NTAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBjMzEwZTM5MGI1ZGQwNWYyNGJlN2ViMTkwNGM3NGU0MTI1OWM5M2RiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MjQ6NTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA0NjAwZDExNDM0ZTgzYjg2NTNjZjlmODEzYTNkOGI2MzA0NTViNDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTc6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIHBsYXVzaWJsZSBzdHJpbmcgb3ZlcmZsb3cgYmVmb3JlIHBhcnNpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgpjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjExOjAyIDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIChpbnNlY3VyZSkgU05NUF9NQVhQQVRIIGluIG1rZGlyaGllcigpCgpjb21taXQgODAxNjg5MGE0NDVmNmE3ZTJhODczYTA0ODczZDRlMjdiNmVlNjRlMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjQ4OjM0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBpbnRlZ2VyIHNpemUgb24gNjQgYml0IHBsYXRmb3JtLgoKY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzozMTozNiAyMDEyICswMTAwCgogICAgU2VjdXJlIG1rc3RlbXAoKSB3aXRoIHVtYXNrKCkgLSBvbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCBkb2VzIG5vdCBzZXQgMDYwMCBwZXJtaXNzaW9ucyBhdXRvbWF0aWNhbGx5LgoKY29tbWl0IDIwMjUyM2NhNzA0YmQ3MjJkYzFhYzBlMWU2YjBlNGI0ZTU0MjQ0OTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzoxMTo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyAnYycgYmVmb3JlIE5VTEwgY2hlY2suCgpjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjA4OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDJmNGU2YWNkNzE0MTgzZjAxNWI3NjM2NTdmOGYwODQ1OTMzNTdlMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDEwOjM4OjE2IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBJZ25vcmUgcGVybC8qLnltbCBmaWxlcwoKY29tbWl0IGMzNjVkODBjMTZjMmQxN2IxNjAwMTFlOGMxZjljYjk1ODk1NGU5ZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDA4OjM0OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IERvIG5vdCBpbnZva2Ugc2h1dGRvd25fcGVybCgpIGZyb20gaW5zaWRlIHRoZSBTSUdURVJNIGhhbmRsZXIgc2luY2UgdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4gQmFzZWQgb24gYSBwYXRjaCBwb3N0ZWQgYnkgSm9lbCBBdm5pIDxqYXZuaUBhcnViYW5ldHdvcmtzLmNvbT4KCmNvbW1pdCBkMDU5ZmI4NzhiMTQzNjU5OTk1M2NlYTVhMDc3NDk5ZGRjZGNiY2I1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE3OjAzOjU1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDA3NTI6IElGLU1JQjogUmVwb3J0IGludGVyZmFjZSBzcGVlZCBjb3JyZWN0bHkgZm9yIEV0aGVybmV0IGludGVyZmFjZXMgaWYgb3RoZXIgdGhhbiAxMCBNYnBzLCAxMDAgTWJwcywgMSBHYnBzLCAyLjUgR2JwcyBvciAxMCBHYnBzLiBBZGQgc3VwcG9ydCBmb3IgTklDcyBmYXN0ZXIgdGhhbiA2NSBHYnBzLgoKY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjY6MTcgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcwoKY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjU6MTAgMjAxMiArMDEwMAoKICAgIFN1cHByZXNzIHVuaW50ZXJlc3RpbmcgRG94eWdlbiB3YXJuaW5ncwoKY29tbWl0IGJlOTE2MWQzYTU4OThlODYzNzY3ZjkyNjYxMzQ4NjEyNmMyY2JmNjcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6MzU6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCgpjb21taXQgODZlNGMyYmUwODUyYTBhMTNiMDYwMzA3NTcyMGIzMjY0ZWM3MGRkZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjoyOToxMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAoKY29tbWl0IDM3ZTI3MmQ4ZjdiNzE4MGJhMTQwZmEzODZhNWZmMDU4OTY4YTA4YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTg6MjE6NDggMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgoKY29tbWl0IDI2OTkzMmZhMzJjN2NkNDc5NTc0ODk2OThlMDliZWUzMWY2M2I3YWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzQ6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAwZDFjMjFmOTk5MWQxMzA5ZDA1N2UzZTQwNTZkNTQ3ZGY3ZDQwZWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE2OjA2OjMxIDIwMTIgKzAxMDAKCiAgICBNYWtlIGRlY2xhcmF0aW9uIGFuZCBkZWZpbml0aW9uIG9mIHN0cmxjYXQoKSBjb25zaXN0ZW50LgoKY29tbWl0IDBjM2Q0ZGJiMGE5Y2Y1YjM1OWY3MGIyZjE5OTE1NDk1NTU0Zjg0MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MjM6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBzbm1wZDogUmVtb3ZlIGRsbW9kCgpjb21taXQgODkzZWNjOTdiNTg3NjYxMDQ1YmVjYmUwOWEzMjBjMWJjYmM3MWM3YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNjo1OSAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQoKSB0byB0aGUgTVNWQyBidWlsZCBpbmZyYXN0cnVjdHVyZS4KCmNvbW1pdCAzZDEyNjQyMmU2MjU3MDJiOWQzZmEwNjc2YTk3ZWM1Y2IyMGQ5ZDEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjAxOjA2IDIwMTIgKzAxMDAKCiAgICBNYWtlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGNvbnNpc3RlbnQgd2l0aCBpdHMgLmluIGZpbGUKCmNvbW1pdCBhZjUzYjc2YzJmZmE3NTFlMzk1OGQwZmM1ZDgyNzlmNzhjMmMxYzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjQzOjU1IDIwMTIgKzAxMDAKCiAgICBTa2lwIFQwNjZwYXNzX3NpbXBsZSBhbmQgVDA2N3Bhc3NwZXJzaXN0X3NpbXBsZSBvbiBNaW5HVwoKY29tbWl0IDM1YTkyZTY5M2QxMzNhNWIxMWU5ZTliNTk5ZGJmNDdlZGVmNDkzM2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMDg6MTY6MzYgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMgYWdhaW4sIHdoaWNoIHdhcyBhZGRlZCBhY2NpZGVudGFsbHkgd2hpbGUgcmVzb2x2aW5nIG1lcmdlIGNvbmZsaWN0cyAoY29tbWl0IDFkNzhmN2Q1YjU4YWVkMmI1MmM0ZDM4NmE3YmE4MGE0NDcxMWJhY2EpCgpjb21taXQgYTliMDczZWEzYjZjZWRmNzEzZTMwNWU3YjE1ZjI4YWU1N2JmZGYxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNzo0NzoxMSAyMDEyICswMDAwCgogICAgRml4IDY0LWJpdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDdlODkwZGFkOTVmNTY2MDY5ZWUyODAyMTVhNGZlYTNmMGUyZTM5ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTY6Mzg6NTAgMjAxMiArMDEwMAoKICAgIEF2b2lkIGEgU0lHU0VHViBpZiBjcCA9PSBOVUxMLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OC4KCmNvbW1pdCAxZjYyMDBjZmUxYjBiMjdlYmIwOTNhMTYwNmI1OTJmOWU5Njg0YmU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjUzOjM0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjYKCmNvbW1pdCBjMzEyNmIxNDM5MjFmYWJlYWM0NDIxNjZlY2E1YjViNzQyZmQ0MmMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjAyOjM5IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG1vc3Qgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNQoKY29tbWl0IGIyNGVlN2M5MDk2NTdkYjQzYmQ4YzVkOGMwMTA1NWNhMDg4M2M5Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDg6NDA6MzkgMjAxMiArMDEwMAoKICAgIEVsaW1pbmF0ZSBtb3N0IHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGNhbGxzCiAgICAKICAgIFVzaW5nIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGlzIGVycm9yIHByb25lIC0tIHNlZSBhbHNvCiAgICBodHRwOi8vd3d3LmdyYXRpc29mdC51cy90b2RkL3BhcGVycy9zdHJsY3B5Lmh0bWwuIEhlbmNlIHJlcGxhY2UKICAgIGFsbCBpbnZvY2F0aW9ucyBvZiBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKS4gUmVwbGFjZQogICAgc3RybmNweShkc3QsIHNyYywgbikgY2FsbHMgYnk6CiAgICAqIHN0cmxjcHkoZHN0LCBzcmMsIG4pIGlmIHRoZSBnb2FsIHdhcyB0byBhdm9pZCBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgogICAgKiBzcHJpbnRmKGRzdCwgIiUuKnMiLCBuLCBzcmMpIHRvIGNvcHkgYSBwcmVmaXggb2Ygc3JjIHRvIGRzdCBvciBpZiBzcmMgaXMKICAgICAgICBub3QgJ1wwJy10ZXJtaW5hdGVkLgogICAgKiBtZW1jcHkoZHN0LCBzcmMsIG4pIGlmIHN0cmxlbihzcmMpID49IG4gYW5kIG4gPCBzaXplIG9mIGRzdC4KICAgICogc3RyY3B5KGRzdCwgc3JjKSBpZiBuID4gc3RybGVuKHNyYykgYW5kIG4gPCBzaXplIG9mIGRzdC4KCmNvbW1pdCA2ZDk1YmM0MTQ5NDcyOTMxMDA1NDc1YzMwYTU0MWZlZDU1MzRkYTM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDExOjE5OjE2IDIwMTIgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgdHJpZ2dlcmVkIGR1cmluZyBjb21waWxhdGlvbiBvZiB0aGUgUGVybCB4cyBzb3VyY2UgZmlsZXMKCmNvbW1pdCBiYWQwNjAwZjZlYzk0NGVmODQ1NWUzMjdjZTc4NGI5YjA3ZDI0N2M5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjEzIDIwMTIgKzAxMDAKCiAgICBBZGQgY29uZmlndXJlIHRlc3QgZm9yIHNvY2thZGRyX3VuLnN1bl9wYXRoIHN1Y2ggdGhhdCB0aGUgY29tMnNlYyB0ZXN0IGlzIHJ1bgoKY29tbWl0IDkyYTMyYWM0ODY2YTVlZGM3ZjM0N2QzNzk0MmJmMDI4ZGUwMjc2MmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MjkgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgODNlNGMwZTMwNGY2MTdjY2FjNjYxMGVkZDc0ZDE3MDY3OTdiYmY1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNTozNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIGEgdGVzdCBmb3Igc2Vfc3RvcmVfbGlzdCgpCgpjb21taXQgNGZhZTU4NTIxMDNlYzM4OTNhZDQ4OGJjMGQ5MDVjYTY5MTQ1OTVlZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNzoxNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgdGhlIHNlX3N0b3JlX2VudW1fbGlzdCgpIGltcGxlbWVudGF0aW9uCgpjb21taXQgYjMyMjJiYjI3NWYyZjIzNDZlMGZkMDQ3OGFmYTJlZmI2MDA3NzNlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNjo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRGVjbGFyZSAidHlwZSIgYXJndW1lbnQgb2Ygc2Vfc3RvcmVfbGlzdCgpIC8gc2Vfc3RvcmVfc2xpc3QoKSAvIHNlX3N0b3JlX2VudW1fbGlzdCgpIGNvbnN0Cgpjb21taXQgMDIyZjg0MGZiZmNiMGUyNmIwOGYwZTU1NzI4MjMxZjYxMTQ5NTgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxOTo1NTo1NiAyMDEyICswMDAwCgogICAgQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQgc2VuZGluZyBVRFAgZGF0YQoKY29tbWl0IDY3MmE4MDljMjI4ZTk1NTBiOTliODkxMGJlNzVkMGIxNjE5ODU0MDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MzM6MDkgMjAxMiArMDAwMAoKICAgIEZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMjRmZjI2MGFkODljZTJhYTM2MWE1NWM3YzcyZTkxNjAzMWRlZmUzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzoxMToyNCAyMDEyICswMTAwCgogICAgQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc25tcF9zZXRfdmFyX3ZhbHVlKCkgYW5kIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZSgpIGZyb20gdV9jaGFyKiB0byB2b2lkKiwgbGlrZSBvbiBtb3JlIHJlY2VudCBicmFuY2hlcwoKY29tbWl0IGM2Y2E3MzdmYjQ2ZjkwYTRiZGE1ZDQzNzM0YWFjMzRlODM3YTA1ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDEzIDE5OjA3OjM3IDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZjUwNGNlMmQ3NGE0YmM4OGY2OGNjOTUxNWZhNzA1MzM3M2NiMTViNS4KICAgIChGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlIHBlcmwgc3ViZGlyZWN0b3J5LiBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuKQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlwZXJsL0FTTi9BU04ueHMKICAgIAlwZXJsL09JRC9PSUQueHMKICAgIAlwZXJsL1NOTVAvU05NUC54cwogICAgCXBlcmwvYWdlbnQvYWdlbnQueHMKCmNvbW1pdCBkMjEyZGM5ODRlYzM0ZTRkMjMwNjI1ZTQ2ZTU4YjBjNjI4YTUwZGY1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBTTk1QLnhzIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBiYWNlZWJiMTBkOGNhZjVkYjYzY2MzNjkzNWZlZDY1ZWU5MzEwMjlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjIyOjQ0IDIwMTIgKzAxMDAKCiAgICBBZGQgZGVjbGFyYXRpb24gZm9yIHNodXRkb3duX3NubXBOb3RpZnlUYWJsZSgpCgpjb21taXQgZjdmOTY2YWJkNmQyODQ5YjEzMzEyNTJhZmU1YzQ3M2U1YzQwYjMyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNDoyNDozMyAyMDEyICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoZXMuCgpjb21taXQgMzAzYzAxNWJjZmU5YWYwYjE1NGU5ODgxYzdiNGY0NDllMDhmMzBiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMjowNjoyMyAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGQzZWIyYjVjZWQyMmE4NDgwMDUzY2U0M2FjZjk3Mzk3MjkwNTU0MDQKICAgIChTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQgLyBmaXggZm9ybWF0IHN0cmluZyBtaXNtYXRjaGVzLAogICAgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKICAgIAlhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCgpjb21taXQgZDk1YjQwNDA2OTE2YmRhNWI0OGI1YTYxMzFiZWMyN2I4NjZiMGE3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMTo1OToyMCAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgYTJhNzMxNmMzMTBmMGZjYzM3Mjg2NzNmYTA0NzA1MWMyM2I3MTk2MAogICAgKFRyaXZpYWwgd2FybmluZyBmaXhlcywgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYwogICAgCWFnZW50L3NubXBkLmMKICAgIAlzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYwoKY29tbWl0IGQ4NmM0N2YwMDNmZGMxOTJiY2U3YjQ2YWM0ZjA2YjA5ZTM4N2MxMmIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjI5OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8KCmNvbW1pdCBiZWU0ZDc5Y2Y0ZWI3ZTBhNDUzOTdmNTliNTI5OGRhNjMzYThlMWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCgpjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlICd0b2tlbicgaXMgdXNlZC4KCmNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgb2ZmLWJ5LW9uZSBtZW1zZXQuCgpjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYXBwcy9zbm1wdGxzLmMKICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYwogICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKICAgIAlzbm1wbGliL3NubXBfY2xpZW50LmMKICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwoKY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDg6NDEgMjAxMiArMDEwMAoKICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZwoKY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAyOCAwNTo1MToxMyAyMDA5ICswMDAwCgogICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFlYWFmMzAyMzY5ZmQ0NTUyZThmZWU3YjZhODA1MDkxZWMwYTliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6Mzg6NTEgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCBhZWU0ZTg5NWZlM2JkNWY0YTYxZTM0Mjc1YmZjYTAzNjhiNTYwNTU1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozMToyMiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCA1ZDFkMGE3NDRhYjMwYzhlNjQ1YzNiODUwNmNiYmQyY2NlYjNkMjc1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTowNDo0OCAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgbmV0c25tcF9leHRyYWN0X2l0ZXJhdG9yX2NvbnRleHQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgMjk5ZWE5YTg5YzNmMTc1OGE3NzQ4YmI5YjM0MTFmNjJmMmM3MGY4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTQ6NTUgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZvcGVuKCkgcmV0dXJuIHZhbHVlLCBqdXN0IGluIGNhc2Ugb2Ygc29tZSByYWNlLgoKY29tbWl0IDkwZjFhZTY3NTc5MTc0ODE2MzZlZWY3NzEwMGNhZWViNTNlZGZlMDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDMgMTA6MDY6NTYgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0LmMuIFNvdXJjZTogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvY3Zzd2ViLmNnaS9zcmMvbGliL2xpYmMvc3RyaW5nL3N0cmxjYXQuYy4KCmNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1MDo1NiAyMDEyICswMTAwCgogICAgQWRkZWQgc3RycmNociByZXR1cm4gdmFsdWUgY2hlY2ssIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCAxOTlhMDUxMWY2ZWIwZWYzZmYxZDlmOTIyYjc5MGFiNjdkZmRlMDFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjMxOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogc211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCgpjb21taXQgZDg4MzU3M2FhNzNlMGY1ZmMxODhhY2VkZWU2NDUxZjk1ZGFlOTAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDoyMzowNiAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDdiN2EzZWIyNTAwNTI3ZWFhMTY5OTI4N2E2Y2E2ZmNjNGNjMmUwOGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDA6MDIgMjAxMiArMDEwMAoKICAgIEZpeCBhIGJ1aWxkIGVycm9yIGNhdXNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCAyYjZjMTE5ZmVkNDg0OGRhNjY2M2MxMWYwYzJjYmRjMjk5MjFiNWM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo1MToxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG5ldHNubXBfZHNfZ2V0X2ludCgpIGVycm9ycy4KCmNvbW1pdCA2Y2U1MzYwY2FhNGM5ZGU1MWFkZTU3ODc5ZTgzZjk2YmQwNGI0YzVhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo0MjoyMyAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3Npbmcgdmlldy4KCmNvbW1pdCBiM2JjNTRiZWQzMTY5MGE4NWRmMmFjZmJmMzI5NmRhOTNhOWU4OWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToyMzoxNyAyMDEyICswMTAwCgogICAgQ2hlY2sgc29ja2V0KCkgcmVzdWx0LgogICAgQWxzbyBjbG9zZSB0aGUgc29ja2V0IG9uIGVycm9yLgoKY29tbWl0IDkyMDc1ZjUxY2Q0NWEzOGNhMzg3NjBiM2ZmZTgyZTE2NTU5ZTljMmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjE4OjI2IDIwMTIgKzAxMDAKCiAgICBDaGVjayBvcGVuKCkgcmVzdWx0LgoKY29tbWl0IDY2NjVkNWZlMmZjNTY5ZDZmYTg1NGQxZDc4ZTM0N2JiYWM2OWUwNzAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIyOjIyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGE2NjQ4YzU0NTNlMWVmOGRhYzU3YTM4ZWZjYzAwY2NlNTNiZjllNGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIwOjI3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGQ2OGRjYWUwZjE4ZDU1NDU3MWFlZjMyMTk0NGE1MjkwNTQ4ZGRlODYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE2OjExIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGZiNmY4MGMwZmUzYmEzNmU1NmY1YjkxMWE0N2UzZjZmMzJiYTI2NmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE0OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBleGl0IGNvZGUgb2YgZW5jb2RlX2tleWNoYW5nZSB3aXRoIHdyb25nIGFyZ3VtZW50cy4KICAgIEFsc28gYWRkZWQgYSBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCAzMTMwZTI0ZmRjMjMyNDY0ZGQ3YmIyMTZmNDZjYWZhMmUwZTc3NWE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowOTo1NCAyMDEyICswMTAwCgogICAgQWRkZWQgbWlzc2luZyBicmVhawoKY29tbWl0IDE4YzEyNmE5NTY1Y2I0ZDY5ZDc1MTNiOTQ0YTIxMDU1ODgwNDVkMzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA3OjI5IDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDZkMzFjODIwNzBhMmM2OGZlM2M1MTllOWQ1NmZhMjc3OTU1NGQwMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGRjNmYwZTJlNTQ5YjRjZDA2MWViYzE5MDA4NGIxZmM3N2E1NWY0MGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMyOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGRhYjMyODY3ZWQwYjk5MzAxZWZkN2I4ZDg1MmFkMTI4OGExODRiZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMwOjMzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBRVUlURlVOIHVzYWdlLgoKY29tbWl0IGIxYTJiY2Y2NDYxNWViNjZiYzI0ZDViZTQ5NTBlNDUwMTI5NjIwNDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE4OjAzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGIyYjFjODUxYjk0ZmVkMzdjMzg2ZWFhMWJmZWFkNWM3NzY5NmUzZWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE0OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjU4OjQ2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBmb3IgZmFpbGVkIHJlZ2lzdGVyX21pYi4KCmNvbW1pdCA1OTQ5ZjA1NWMxNmFlNjUwNjE1YWFlN2ExZmVlM2YyZDdiMTZkOTQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDoyOTo1OSAyMDEyICswMTAwCgogICAgTWFrZSBNSUIgZmlsZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gbW9yZSBzdHJpY3QgLSBMQUJFTCBpcyByZXF1aXJlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIE1JQiBmaWxlcy4KCmNvbW1pdCBlNGI2NzM2ODNjNjhiYThiM2FiYzA0MGI5MTI1ZWMzMDQ2NDNjYzdjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIzOjAwOjI0IDIwMTIgKzAxMDAKCiAgICBBc3N1bWUgdGhhdCBsaWJkbCBtaWdodCBiZSBpbiBBR0VOVExJQlMgb3IgU05NUExJQlMgc28gcHJlYWRkIHRoZW0uCgpjb21taXQgYjEzYzFlNTdiZWRiYTc5YjgwNjEwM2M3NGYxOTIxZDUzYTcwNmIzOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMjo1NTowNiAyMDEyICswMTAwCgogICAgRG8gbm90IHJlcXVpcmUgdWNkLXNubXAvZGxtb2QgdW5sZXNzIGl0IHdpbGwgd29yay4KCmNvbW1pdCAyN2RjZWEwZDVmODAxZGY0OTRhYjJjYjVjNWMwZWJlNTRlYjBkY2QzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDo0ODoyOSAyMDExICswMTAwCgogICAgQWRqdXN0IHBhdGhzIGZvciB0ZXN0IHJlc3RydWN0dXJlCgpjb21taXQgMTRiNjBlODVhMWI1NzAwZTkzZDEyNmUyZjI5MWQ1YzQ4NWYzNGUzNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6MTQ6MjkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbiBnZW5lcmF0ZSBhIGR1bW15IG1vZHVsZSBpZiB0aGUgZGxvcGVuIGZ1bmN0aW9uIGlzbid0IGF2YWlsYWJsZS4KCmNvbW1pdCA5OGE5NzUzOGZjMWU5ZmY0NmI2MGQ1ZDk2OTM0NzQ0NDU3ODM3OGMwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMzozNToxMyAyMDExICswMTAwCgogICAgQWRqdXN0IHRoZSBwYXRocyB0byBzdXBwb3J0IHRlc3RpbmcgZXZlbiBpZiBidWlsZGRpciAhPSBzcmNkaXIKCmNvbW1pdCA4OGYwYWYzY2ZiOTE2YWU1ODYzY2MyOTg2MDcxZDQzNWYyMGMzMDY0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMTozNzo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGVzICdwJyBhbmQgJ2xlbicuCgpjb21taXQgMDgxNWE3NTM2Yzc2ZjdlNDg0MjYzODY4M2Y2NzQ4OTRhMWE4Y2UxNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjQyOjU0IDIwMTEgKzAwMDAKCiAgICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBTZXRVbmRvIHByb2Nlc3NpbmcKICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ1NDQwCgpjb21taXQgZWIyYWIyMzc0MmNhODZjMGI4OWNjZmU5MWViNmVhMzc0YmYzYWNjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjM3OjMxIDIwMTEgKzAwMDAKCiAgICBDaGVjayBmb3IgdGhlIGV4cGVjdGVkIGVycm9yIChFUElQRSkgb24gY2xvc3VyZS4KICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ3NDQ0Cgpjb21taXQgYWFjMTBiYzRmMDUzYzAxNGYzODJkNjU5M2ZjMzJhYjk1ZTBiMWE1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDEyOjU5OjUyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDYzNzY3OiBIYW5kbGUgcGFyc2luZyBzdWJpZGVudGlmaWVycyA+IDJeMzEKCmNvbW1pdCBiYmMwMmUzNmU5MGMxYWFiNzg5ODU2MmY5NjNmNWNhZGIyNmUxMGJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTc6MTU6MTYgMjAxMSArMDAwMAoKICAgIE1vdmUgcGFzcy9wYXNzX3BlcnNpc3QgdGVzdHMgdG8gdGhlIG5ldyBsb2NhdGlvbgoKY29tbWl0IDM4OThjMDRmZDZmODk4NjcwNjJmZGZlYmYzNjg1N2FiNjE5YzA0NTAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNjo1MzoyNCAyMDExICswMDAwCgogICAgQWRkIHRlc3RzIGZvciBwYXNzL3Bhc3NfcGVyc2lzdCwgc3VwcGxpZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBkNWVlM2YwYTFhNjNiYjE3NTJjNzRjYmNhNTVhYTNkNDBiZjliZjEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NTg6NTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NDQ0OiBGaXggU0lHX1BJUEUgaGFuZGxpbmcKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMmExN2IzNzQzMGMxODUyOTk4YzM1ODhlNTQ3ZDdlYjYxYzA2ZGE3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjQ1OjM4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0NDA6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIEFnZW50WCBlcnJvcnMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZmU1OGEwZTVmNGQ0ZTJlMmVjYmNiNDczODJiMDhjYjFlNGRmMzUyYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjE2OjIzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDU2NzcwOiBIYW5kbGUgKG9ic29sZXRlKSBVSW50ZWdlciB0eXBlIHByb3Blcmx5CiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDFiZThjZjA4YTY3YTkxODU1ZmVlMWVjNGEyZDhlMDg3Yzc4MTI0NTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODowNDoxMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDM3OiBMb2cgQWdlbnRYIGRpc2Nvbm5lY3Rpb25zCiAgICAoaW4gbGluZSB3aXRoIGNvbm5lY3Rpb25zKSBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDA2ODAzNzI4OTEwN2ZhYTJiYTNmNWNkMmZiMDBjMTk0OTRiYjlhMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzoyNzo0NiAyMDExICswMDAwCgogICAgSGFuZGxlIGFueSBHRVRORVhUIHJlcXVlc3QgT0lELCBub3QganVzdCBhIHNpbXBsZSB3YWxrLgoKY29tbWl0IGE3NGZhNTI4OTgzMTIzZDM1NWE4Y2RjYWE3N2RkNGViNGI4YzY5NTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzowMDoxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGFzczogUEFUQ0hFUzogMzQ5Mzk0OiBCcmluZyBwYXNzX3BlcnNpc3R0ZXN0IHNjcmlwdCBpbnRvIGxpbmUgd2l0aCBwYXNzdGVzdCoKICAgIChpLmUuIHVzaW5nIHRoZSBsZWdpdGltYXRlIHN0cnVjdHVyZSBvZiBORVQtU05NUC1QQVNTLU1JQikKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgYmJlNjQ5ZWJmYTYxZWEyMjM5OTE3MGIzNmI5OWRiMzBhMWRlODAxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE2OjU0OjM4IDIwMTEgKzAwMDAKCiAgICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMKICAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIHN0cnVjdHVyZSBmb3Igb3V0cHV0LiAgQmFja3BvcnQgb2YgU1ZOCiAgICByZXZpc2lvbiAxNzYzMiAod2hpY2ggdXBkYXRlZCAncGFzc3Rlc3QucGwnIGJ1dCBtaXNzZWQgJ3Bhc3N0ZXN0JykKICAgIENvcnJlY3QgaW4gYnJhbmNoZXMgNS41IGFuZCBhYm92ZQoKY29tbWl0IDgyZDA2YzcyNDdiMjJjOGIwMWQ0NWJmNTUwNDFkMmYxZTY0MjdkNDkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzo0NToxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc2NzE6IEZpeCBvdmVycmlkZSBoYW5kbGluZyBvZiBPSUQgdmFsdWVzCiAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAoKY29tbWl0IGJhNGE5Y2U1MWM5NjAwZjlmZGExNjhmMWU2ZWZmMzJhMWRiNjNjYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzoyNDoyNiAyMDExICswMDAwCgogICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKCmNvbW1pdCA4MjdjOGIyODgzMDE3MWZhYTljNjFkNTNlZmNhOWViNjYwMDU2MWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40Cgpjb21taXQgZjk4YTU0YTk5Y2FmN2I0NmIxMDBhOTIwZGI5NDJjYmNhOWM0MzkyNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCAyMzBkZjE0Zjk0YzM3MzZmZjM0Mzc5YTRlMjgxZWVhMzUzYjQ3ZjgwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIERlYyAyNiAyMzozNDoyMyAyMDExICswMTAwCgogICAgRG8gbm90IGFzc2lnbiB0bVN0YXRlUmVmIHR3aWNlCgpjb21taXQgYzk2YjNiNGQ4NTMwYWQ1ZTBlZmIwM2YyNGRhYjVlNWYxYTQ2MDAzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTg6MjEgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgdXNlLWFmdGVyLWZyZWUuCgpjb21taXQgYzU5NzhjODljZGUyNDQwZjRkMjBkYWRiYzlkMWRkOGRiNTYyZDU2ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTU6NDQgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgZG91YmxlLWZyZWUuCiAgICAKICAgIG5ldHNubXBfdGxzdG1BZGRyX2FkZCB0YWtlcyBvd25lcnNoaXAgb2YgaXQncyBhcmd1bWVudCBzbyBjYWxsaW5nIGZyZWUgb24gdGhlCiAgICBhcmd1bWVudCBvbiBmYWlsdXJlIGlzIGluY29ycmVjdC4KCmNvbW1pdCBjMTM5Y2ExMjNiNDRiYjNiOWI2YmY5MjFlMTYwOWNjNDVmNjNhNjYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6NTU6MzAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTk6IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM0YWUwMjFiMmU2Mzg0NDM3MDgxYzU2MjNmMzYwYzg4OTYzOTAxODgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyOTo1NCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBCYXNlZCBvbiBtaWIyYyBwYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM2YWNjZjhjNjYyNTRmYThjNDg3NjdlZDdkZWM3OTVkZGFmYzUyMmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyNzoxMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGE2MTgyNmFkOGNhNTQ2NjFkMWQ5MDk3MTI1MDNiZDNhOGIzMmVlZDAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDIyIDE4OjM1OjQ2IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAgCiAgICBteU1hdGNoIGlzIHVudXNlZCBhcyBubWF0Y2ggaXMgemVybyBhbmQgYWxzbyBzaW5jZSByZWdleEJ1ZmZlciBpcyBjcmVhdGVkCiAgICB3aXRoIFJFR19OT1NVQiBzZXQuCgpjb21taXQgYmE0ZmM4MGZlMmNmZDVhNWQ4OTIzMGQ4ZjM3MDNlNGZlMDFlNjAxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDIyIDE5OjI0OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQwMjM3NjogZnJvbSBMZW9uYXJkbyBDaGlxdWl0dG86IFJlY29nbmlzZSBSZWlzZXJGUwogICAgQWxzbyBtb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKCmNvbW1pdCBiNWFjNGEwNGRjZDU0NzBkMDhkMDMzMjFhYmNkMWU5ODI2MjFlNmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAyYjM3ZTRlOGYyNTBhMGQ4ODIxMTk5YTc0YWMzZjRlNWI3YjdiYWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzE6NTEgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAzZDA4MzQ1MTU2YzQxOTMzM2RlOTY5ZjEzZDIxZmNlYzdlMThlOTRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzI6MjkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCBjZDg1OWFkNTFjNGYxOGQ1YjBmYzY5ZGQ2NjlmY2IwNTFjNzk4OTY5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIG1lbW1vdmUgc2l6ZQoKY29tbWl0IDMwZmY1OGQwOWQ0YzlkNTQzOGJiNjIxMDU0ZmQ3YWQ3YTJhNTk3ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDowNzoxOSAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbGVuZ3RoIG9mIGJ1ZmZlciB3aGVuIHByaW50aW5nIEFTTl9CSVRfU1RSCgpjb21taXQgNmMxNDg3ZTFkMzYwZDNkMjYwYTM5Y2IxZjViMTVkYTk3ODM5NTA1MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ3OjM0IDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwb3RlbnRpYWwgZnJlZSBvZiB1bmluaXRpYWxpemVkIHBvaW50ZXIgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDQ6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVuaXRpYWxpemVkIHZhbHVlcyBpbiB1ZHBUYWJsZQoKY29tbWl0IGM0NDYwODY3OWI4OTc1MTE3NmYyOGEyZTU0ZDUyODJiNDZlMmEwNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo1NjoxMyAyMDExICswMTAwCgogICAgVXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyBhbmQgbWFudWFsIGNsZWFyaW5nCgpjb21taXQgYTA1YzVmOTUxMzQ2MTgyNGU3OTAzYWU5YWU5YTZjMzM4NmUzMzg3OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjQwOjUwIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwcmludGluZyBvZiB1bml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHNlbnNvcnNfZ2V0X2xhYmVsKCkgZmFpbHMKCmNvbW1pdCBlNGE1ZWRjNzIzOTNiZDNkZTliZjEyYmNlYmE5ZDgzYmJmN2RlNzBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6MzE6MjUgMjAxMSArMDEwMAoKICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZmFlMmU1YjgzNWI4ZGYxZWFlNDdlNGNlYmI0ZWI0MDRkNzI4MjM3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMxOjIxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaXRpYWxpemVkIGlpZCBpbiBlcnJvciBjYXNlcyBhbmQgd2l0aCBkZWJ1ZyBpbmZvIGVuYWJsZWQuCgpjb21taXQgOWQ1OGY4MWE5MjM5Y2ZiY2ZjOGViY2UzNjdkMjFlOWIzZGNiMDI4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMzOjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluIGVycm9yIGNhc2VzCgpjb21taXQgMGJjOGMwOGVkZWFlN2FlMDk1ZjExNjI1OGMyMGFlNTc2N2Q2MDY1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjIwOjUyIDIwMTEgKzAxMDAKCiAgICBGaXhlZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZSAnc3RhdHVzJyB3aGVuIHNzID09IE5VTEwKCmNvbW1pdCA3MzA0YzUzY2Y4YWRlZThlY2NlZjFhOGYyNjc1NmZjMDdmMDk4NzIxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxOCAyMzozMTo1MyAyMDExICswMTAwCgogICAgT24gc29sYXJpcyAxMCB0ZXN0IGluIC9iaW4vc2ggZG9lc24ndCBzdXBwb3J0IHRoZSAtZSB0ZXN0LiBSZXBsYWNlIGl0IHdpdGggLWYKCmNvbW1pdCA4Y2QzYmU2MGQ2OTNjOWMzNmZmYjk3ZDNkOWJjYjQ5YzFiNGFiZTM1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAxNyAwODo1MjoyNCAyMDExICswMTAwCgogICAgQXZvaWQgcmVwZXRpdGlvbiBvZiB0aGUgY29tcGxleCBleHByZXNzaW9uIGRldGVybWluaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KICAgIAogICAgVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIHBsYXRmb3JtcyBsaWtlIFNvbGFyaXMgMTAgdGhhdCBkZWZpbmUKICAgIElQX1JFQ1ZEU1RBRERSIGJ1dCBsYWNrIGVpdGhlciBvZiBtc2doZHIubXNnX2NvbnRyb2wgYW5kIG1zZ2hkci5tc2dfZmxhZ3MuCgpjb21taXQgOTUzZjJlM2Q0MjVlZGUzYjg2M2EyZTdjY2IwYjRiYzg2MjkyOGI1NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgNSAyMjoxMzowNyAyMDExICswMTAwCgogICAgTW92ZSB0aGUgdXNlIG9mIF9zZW5kdG8gYW5kIF9yZWN2ZnJvbSBiZWxvdyB0aGVpciBkZWZpbml0aW9ucy4KCmNvbW1pdCA2OGExMTczYzQ2Y2Y3NzYwMTQyNmNmMzkxZDlhODUyNzk0ZjIwNTdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyMCAyMDowNToxOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgb3V0IHRoZSBjbWVzZyBidWZmZXIgc2l6ZQoKY29tbWl0IDQ2MWRkMTZmM2IyNjQ3MzIyY2RjZTYzNjMwODFjYzQ0YmE1YTQ5YjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDI2IDIxOjUxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNZXJnZSB0b2dldGhlciB0aGUgTGludXggYW5kICpCU0QgdmVyc2lvbiBvZiBzcmMgcG9ydCBzZW5kaW5nLgoKY29tbWl0IDdhY2NiNjliYWExZmMwYjZhMzQzOWQyZTU0OWM4NmRhMzQ1M2JhZDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjMwOjMxIDIwMTEgKzAxMDAKCiAgICBVc2UgYSBiYXJlIHN0cnVjdCBpb3ZlYyBpbiBpbnN0ZWFkIG9mIGEgb25lIGVsZW1lbnQgYXJyYXkuCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlzIHRvIG1ha2UgX3JlY3Zmcm9tIG1vcmUgc2ltaWxhciB0byBfc2VuZHRvLgoKY29tbWl0IDM5ODUyY2Q0Yzg1ZWYyYmZjNzVjZGVhMjgyNTI2MWVlOTNlNzY4YzIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI5OjIwIDIwMTEgKzAxMDAKCiAgICBBZGQgY29tbWVudCBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBjYWxsIHRvIGdldHNvY2tuYW1lIGFmdGVyIGFsbW9zdCByZW1vdmluZyBpdC4KCmNvbW1pdCAxYjI5MmNhMjdlYWI1Y2FhNzNmZWFhYTgzZGM5YzEyYWJjMGYyZTcwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNzo1OSAyMDExICswMTAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlLgoKY29tbWl0IGJjODc5NTcxZWNhOTUyMGJjMTMyZjg0MGMzZTY1OWQzNzkzMTQ0ZDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI1OjM2IDIwMTEgKzAxMDAKCiAgICBJbnRyb2R1Y2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0byBlYXNlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBzZXJ2ZXIgYWRkcmVzcy4KCmNvbW1pdCBiN2VlYTZjZmZiZDg3MjkzMmNlMmMwNGZlZmI2ZjQzZGUzMzlmMzc0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxODozMyAyMDExICswMTAwCgogICAgUmVuYW1lIHRoZSBjbWVzZ3B0ciB2YXJpYWJsZSB0byBjbS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBpbmNyZWFzZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCgpjb21taXQgMGE3NDYxZTcyODgwNWM2MmExY2FiOWQ4N2JmYzc0Yzc5MjdhOWZjYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTU6MjIgMjAxMSArMDEwMAoKICAgIEZhY3RvciBvdXQgYSBjb21tb24gbG9vcCBpbiByZWN2bXNnIG9wdGlvbiBwcm9jZXNzaW5nLgoKY29tbWl0IGIzYzYyNDhkMDIwMWFiMTYxMDg0MGQ2ZDBlNzQ5YjNiNmM0YWQ3OTIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjEzOjQzIDIwMTEgKzAxMDAKCiAgICBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIExpbnV4IGFuZCBCU0QgcmVjdm1zZyBvcHRpb24gcGFyc2luZyBzb21ld2hhdC4KCmNvbW1pdCAzNTY0MDBkNjI5MGE0MjNiNTJlYmVlYTVhNWU5NzZmYjE1YmI3M2I0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTowNDo1NiAyMDExICswMTAwCgogICAgVXNlIENNU0dfREFUQSBvbiB0aGUgcmVzdWx0IG9mIENNU0dfRklSU1QvTkVYVEhEUiwgbm90IG9uIHRoZSBidWZmZXIuCgpjb21taXQgM2IzNTE3MDhjNjJkZTQ2YWExYjkwZWQyMzJjZmQ4YzdjNWIwMjIzMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMjowMDozMiAyMDExICswMTAwCgogICAgUmVtb3ZlIGEgY2FzdAoKY29tbWl0IGRlOTI1MGQ5ZGFlOTcyN2E2Y2M3ZjY0NzY4OGRkZGYxYjg1OTcxMjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTE6NTg6MDQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHNwcmludF9taWJfb2lkKCkgdHJlYXQgT0lEIGNvbXBvbmVudHMgYXMgdW5zaWduZWQgaW5zdGVhZCBvZiBzaWduZWQgaW50ZWdlcnMKCmNvbW1pdCAwZTMzYjNiNmQ1ODU0YTRiYWMxNWQ0ZWE1ZTAxNmM1M2QxNjFkMGNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEwOjAyOjI4IDIwMTEgKzAxMDAKCiAgICBGaXggcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IGI3ZTUwZDVmOWE2NzU1OTgyZDJhZjMxOTE0NzNjYjM0NjQzYmMwM2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlZHVjZSBvdmVyaGVhZCBvZiBjb25maWcgZmlsZSBwYXJzaW5nCgpjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbiBjb2RlIGludG8gcGFzc19jb21tb24KICAgIAogICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CiAgICBpbnRvIHBhc3NfY29tbW9uLgoKY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKQXV0aG9yOiBjY2NoaXUgPGNjY2hpdUBzb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTIwNjk6IEZpeCBzbm1wdHJhcF9vaWQgZGVjbGFyYXRpb24gaW4gbWliMmMgZ2VuZXJhdGVkIGNvZGUKICAgIAogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKICAgIHRpbWUgdGhlIDUuNiBicmFuY2ggd2FzIGNyZWF0ZWQgKHNlZSBhbHNvIGNvbW1pdAogICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCgpjb21taXQgZDQ5NGRiNjRjMjA4YjRkYzYyODEzMTMyZjg4NjNiZDVjMWEzOWQ3NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCgpjb21taXQgMjhmMjU2MWJjMjkzNWQ4ZTFjYmY0NmQyODIwMTU4MTczZTdhNGNmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBNb3ZlIHRoZSBtYWluIGxvb3AgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uCgpjb21taXQgMzk2ZTEyMmRkYzQyYTkxNmYwNmEwMjg4NGMwZThhMjU4ZWRiZTIzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1hdGNoIGVhY2ggZ2V0cHduYW0oKS9nZXRwd3VpZCgpIGNhbGwgd2l0aCBhbiBlbmRwd2VudCgpIGNhbGwgYW5kIGVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgoKY29tbWl0IDNlZmVmYmMwMDI0Mzk5Nzg2ZjhiNjhiMWU5M2IwYThmZGRkZGM3ZGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgN2YwNWRhYThlMGUwZjUzM2IwZjEyYTNlMWNmMDc2NDE1MTk5MDlkNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMTo1ODozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQ0OTM5OiBCVUc6IDE3OTY4ODY6IHNubXBsaWI6IEF2b2lkIHRoYXQgc3ByaW50X3JlYWxsb2Nfb2N0ZXRfc3RyaW5nKCkgZW1iZWRzIHVucHJpbnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkIG91dHB1dCBpbiBzbm1wdHJhcGQuCgpjb21taXQgZGI4ZjU1OGZkMmYzYjdjMTA5ZWEzYTFjMjEzM2I3NWI2ZjhjYjJhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDowNDo0MSAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXg6IHBhc3MgdW5zaWduZWQgY2hhcnMgdG8gaXNwcmludCgpIGluc3RlYWQgb2Ygc2lnbmVkIGNoYXJzLgoKY29tbWl0IDgwMGRjMTAyOGU3ZTBjZDhjYzE0ZDg0ZGQzMTcyM2Q0N2FjMDczZGIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MTg6NTggMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIGhpbnQgdmFyaWFibGUKCmNvbW1pdCA4M2VhNGEwODBjOTBhNzRiOTc0M2QzZjI0Y2YwZDRiOGExZThjODQ5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyNyAyMToxNjo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgcW9zCgpjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDQ6MDEgMjAxMSArMDEwMAoKICAgIFJlbW92ZSAjZGVmaW5lIHZhbCh4KSBfX1NUUklORyh4KSBhbmQgY2hhbmdlIHZhbCh4KSBpbnRvIF9fU1RSSU5HKHgpLgoKY29tbWl0IDJmMzc5YjBlNGVjYWRmYTRlNTQxZTMwMDVjOGZjODI4MTg4MmI3NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE1OjU4OjQ3IDIwMTEgKzAxMDAKCiAgICBGb2xsb3ctdXAgZm9yIGNvbW1pdCAxYWE3MDRlOiB1bmJyZWFrIHRoZSBNU1ZDIGJ1aWxkCgpjb21taXQgNjRlZjBmNzExMjc2MTc4MzcwMjdmYjJjZmFmMTc0Yjk1YmE3OWUwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MTk6NTAgMjAxMSArMDEwMAoKICAgIEFkZCBTTk1QOjpyZWdpc3Rlcl9kZWJ1Z190b2tlbnMoKQoKY29tbWl0IDdiZWFkOWNhOTE3YzY3NTY2ZDVlZDk4YWI1MDdiYmMwMjgxNjIxN2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA4OjA4IDIwMTEgKzAxMDAKCiAgICBBZ2VudFggc3ViYWdlbnQ6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCgpjb21taXQgMGVkNzE1NDFmODdlN2Q3OGJjOTk4ZWViZGEzMjE3YzU5ZTFkZjgzMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDM6MTkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IgbmV0c25tcF9yZWdpc3Rlcl9kZWZhdWx0X3RhcmdldCgpIGFuZCBuZXRzbm1wX2NsZWFyX2RlZmF1bHRfdGFyZ2V0KCkuCgpjb21taXQgOGMyOTcyYjYxZTQwMTY5YjQ3YzUwOTg4YjZhZTllOGMyODVmODRmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDI6NTQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEZpeCBzcGVsbGluZyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgU05NUCBtb2R1bGUKCmNvbW1pdCA1ZGYyYmFjNmJkNzE3Nzk5MzExZjAwMWFjN2I3M2RiODhmMTFiZGRhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODo1OTo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCgpjb21taXQgMTcxZThkNDhkNGFmMDQwMTNjZmY4ZmQyOGY1MzQxYTJhZWYyMWQ4OApBdXRob3I6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDE2OjQ5OjQ2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wLWJyaWRnZS1taWI6IEZpeCBpbmRleCBpbnRlcnByZXRhdGlvbi4KICAgIAogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBhIHdyb25nIGRhdGEgaW50ZXJwcmV0YXRpb24uCiAgICBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tIHRoZSBzeXNmcwogICAgYXR0cmlidXRlICdpZmluZGV4JyBUaGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN5c2ZzIGF0dHJpYnV0ZQogICAgaXMgYW4gaW50ZWdlciwgd2hpY2ggaXMgaGFuZGxlZCBhcyBoZXggYW5kIGxlYWRzIHRvCiAgICBpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCiAgICAKICAgIGUuZy4KICAgICAgICAkID4gc25tcHdhbGsgbG9jYWxob3N0IEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKICAgICAgICBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQKICAgIAogICAgYWNjb3JkaW5nIHRvIHRoZSBzeXNmcyBhdHRyaWJ1dGUgdGhlIHZhbHVlIGlzIDM2CiAgICAKICAgICAgICAkID4gY2F0IC9zeXMvY2xhc3MvbmV0LzxkZXZpY2U+L2lmaW5kZXgKICAgICAgICAzNgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+Cgpjb21taXQgODJlMzlmYjY3MDZkZjkwZWNmMmZjOWUxMGFkYTJiOTYyZWUxOTZmMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDI5IDEyOjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBGaXggbXVsdGktbGluZSBjYXNlIHRlc3Rpbmcgb2YgaW5jb21pbmcgT0lECgpjb21taXQgYjE1ZGExYTQ1MTYwNjExMDVhMWVhYzc0NTBjZjY1MGVjNDQyNjZiMgpBdXRob3I6IE5pa29sYXkgRGVuZXYgPG5kZW5ldkBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODoyOTo0OSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUmVzdG9yZSBJUF9SRUNWRFNUQUREUiBmdW5jdGlvbmFsaXR5LgoKY29tbWl0IDdmNDdmNTJlNDgxYmFhOWFhZmI1Nzg0MjQ0YjBkZDI2NTNlN2RjZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgU05NUF9BTExPQ19UWVBFREVGIHRvIGFsbG9jYXRlIHRyYW5zcG9ydHMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIHNlcGFyYXRlIGNhbGwgdG8gbWVtc2V0LgoKY29tbWl0IGNmODYwMzllMzA4NjIyNWMzMDg1YmI5YWRmMDg4YjhiYTViYTY5NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYiBwYXNzLgoKY29tbWl0IDFhODdlNzZlMDBlZTNkNWNkMzdhMDdiZmMzZDg0NDkwZDNjMmE0ZWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIgcGFzcwoKY29tbWl0IDg4NjdmZDFkY2ZlNzJiNTlkMDczMjJmZjM4YTY5OWI2NmVjNGYzMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHJvYnVzdCBhZ2FpbnN0IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLgogICAgCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBzdXJlIHRoYXQgb24gVW5peCBzeXN0ZW1zIG5ldHNubXBfbGFyZ2VfZmRfY2xyKCkgZG9lc24ndCB0cnkgdG8gcmVhZCBtZW1vcnkgaXQgaXNuJ3QgYWxsb3dlZCB0byByZWFkIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX2lzX3NldCgpIHJldHVybiBmYWxzZSBvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgoKY29tbWl0IDIzZGIwY2YwOWI4YjBlYWIzN2I3NDllZjBjM2MzZjMwNjkwMDI0NWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggY2FzdGluZyB0dl91c2VjIHRvIGludCB3aGljaCBtYXkgYmUgdG9vIHNob3J0Cgpjb21taXQgODBlZTQwMjJlNTM0ZTY0YWFkNWE1ZjI3MTkyODQzYjQyYWNiODVlMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KCmNvbW1pdCAwYmFhOTI5NmMwNzJiYjM3MzU3NjBiMGRkOTkyZjJkMWQzY2EyN2ZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAoKY29tbWl0IDFhYTcwNGU0YTI5NDQzMGIyOGUzOWI2ZjllNDY4M2I4YTQ4YmNlMDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQoKY29tbWl0IGNkYThmZTkxMDEzZjEyY2JmNjRhMDc3NWFiYjU1NzIwMDM1YWY5MzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKCmNvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CkF1dGhvcjogTmlraSBEZW5ldiA8bmlraV9kQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDE3IDIyOjQyOjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQogICAgCiAgICBUaGlzIGh1bmsgZmVsbCBvZiB3aGVuIHRoZSByZXN0IG9mIHRoZSBwYXRjaCB3YXMgbWVyZ2VkLgoKY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKCmNvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IGNkMzJjMmRmZjA2YjliNDUyY2MxOGQ1NTJkMmYyMjM0MDkyYzgyOWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE3OjA5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHdhcm5pbmcKCmNvbW1pdCA4ODMxMzZjMmIyZmEwNzM5ZjQzN2E4Y2ZiNjYxNGFjY2M3NmUyNjhlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNTo1OCAyMDExICswMTAwCgogICAgTW9yZSBuZWVkcyBmb3IgTkVUU05NUF9QUklvIGZvcm1hdCBzcGVjaWZpZXIKCmNvbW1pdCBiODA4NGE3Y2NjOTA5YjZkNmRiN2MwZThlNTk2ZDc4NjcxZjU2NzhiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNDoyNiAyMDExICswMTAwCgogICAgRml4IHVzaW5nIGNoYXIgYXMgYXJyYXkgaW5kZXggKGN0eXBlLmgpCgpjb21taXQgODQ1MjllNjMyMGE4OWQ5N2YxMzE0YWViYWQ4MDYyNTVkMmExYjE4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MDA6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0Cgpjb21taXQgNGJkMDM1Mjk1NWEyNTUxYmZlMDIzMDhkZDEzNGI5MTI4Yzk4YjllOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMAoKICAgIEZpeCBwYXJhbnRoZXNpcyBwcm9ibGVtCgpjb21taXQgZmU2MjY5YjE5MDBjZjQ0ZGMyN2ExOTlhNzYxZDE1YTAxYzNmMzA5MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTg6MzQgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzo0MzozNCAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzozNzo0OSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzCgpjb21taXQgMjVjZmMxOTYyYWU1NzZjY2IxNTU4ZGExZTNlZjhiNmMxN2Y2M2MxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTE6Mjc6NTMgMjAxMSArMDEwMAoKICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKCmNvbW1pdCAwZTg2Yzc4MWYzOTg5YmYwMjJjODk5M2ExMTg2MTdiNzRhNzU0MjBjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNzoxOSAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCgpjb21taXQgYmYyNjRkMTVkZWQ3YWNiYmYyZTM4NzFiOThmZDFmY2VmNDNkOWVjMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTY6MTYgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgNTdmZjhhNDBiYWU1ZDliY2FkMTYwODkxNDJhOWNmMzI4YzlmYTFmNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTQ6NTcgMjAxMSArMDEwMAoKICAgIGRpc21hbi9waW5nLCBkaXNtYW4vdHJhY2Vyb3V0ZTogQ2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgOGEyNTAyYTE1YzMyMTdiOTU5MzlhM2M4MzYxNjdkMjMwYWMzNWYwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTM6NTMgMjAxMSArMDEwMAoKICAgIFVwLXRvLWRhdGUgbGlzdCBvZiBSRkNzIHdpdCBtaWJzCgpjb21taXQgZGNkZDcwMjExMWQ4ZGE1ZjUzODA0Y2ZjZjBkZmRhZDczMTQ2OGJkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDE1IDEwOjU3OjM0IDIwMTEgKzAwMDAKCiAgICBEb24ndCB0cnkgdG8gaW5zdGFsbCBhbiBlbXB0eSBsaXN0IG9mIG1hbiBwYWdlcyAoTUFOMykKCmNvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMzozNDoyMCAyMDExICswMTAwCgogICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KCmNvbW1pdCA5MjNlZWNjNTA3Zjc1MDQzYjYwYzVlNjgwNTNhNGYzOTZhYjBiMGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMjozNjozOCAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXggZm9yIHN5c3RlbXMgd2hlcmUgdWludDY0X3QgPSB1bnNpZ25lZCBsb25nIChlLmcuIFJIRUwgNi4xL3g4Nl82NCkKCmNvbW1pdCA0MzRiZmMxZjc0NTc1NTBiNmY4N2Q1YmNkNTExMjc2YjI3MGI1OTY0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTQgMTE6MjI6NTMgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KICAgIAogICAgT24gMzItYml0IHN5c3RlbXMsIHNubXBkIGRpZXMgd2l0aCBhZm9yZW1lbnRpb25lZCBtZXNzYWdlIHdoZW4gdXNpbmcgZmlsZSBkZXNjcmlwdGlvbnMgPiAzMiwgZS5nLiB3aGVuIGhhdmluZyA+MzIgQWdlbnRYIHN1YmFnZW50cy4KCmNvbW1pdCBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMToyMSAyMDExICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yIGNvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwoKY29tbWl0IGVhY2E3OTgzZTM2NTVhYjY5NmZjYzQ0NjFjYTBjZWRiYWM2Y2U2OWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAwOjEyIDIwMTEgKzAxMDAKCiAgICBOZXRCU0QtNjogT25lIG1vcmUgaW5zdGFuY2Ugb2YgdGltZXNwZWMgcmVwbGFjaW5nIHRpbWV2YWwKCmNvbW1pdCA4YWQ2YzUzZmRlYzVhZGVhZTRlNTJmMTc1MWVjZWM0YTM0NWJhYjA1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCgogICAgRml4IGJ1aWcgIzM0MzY1Mjc6IGFycF9uZXRsaW5rOiBmaXggZHlpbmcgcmVsb2FkIG9mIGNhY2hlCgpjb21taXQgMzc4ZmZlZDAzYmE3OWE4MzQ2ZDZjNjI3ODFlMmRkZjVjZTkyYTQ3OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzY1Mjg6IHN3aW5zdF9wa2dpbmZvOiByZWNvdmVyIGZyb20gTlVMTCByZXR1cm4gZnJvbSBvcGVuZGlyCgpjb21taXQgZDdhZDhmNWY5ZjNmNjdmMTZmNjVjMjUxNWQxMWUxOTRkMmNkZDEyYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEN5Z3dpbjogTWFrZSBkYXRlX25fdGltZSgpIHByb2R1Y2UgdGltZSB6b25lIGluZm9ybWF0aW9uCgpjb21taXQgYmEzNWM1MGIyZjQ1OWJkOWMxMWVkNTljYzdkMWIxNjIxNTY0NGZhMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MTc6MDQgMjAxMSArMDEwMAoKICAgIFJlcGxhY2UgQUNfVFJZX0xJTksoKSBieSBBQ19MSU5LX0lGRUxTRSgpCiAgICAKICAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCgpjb21taXQgZjYxNWJmMjRmNWQwZjIzY2U5MzAxZGE1NTYxODRkNjQ2MDc0MDQ1NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMjo0OSAyMDExICswMTAwCgogICAgRmlzIEJ1ZyAjMzQzNDgyNDogU0lHU0VHViB3aGVuIHJlYWRpbmcgZGlzayBkaXJlY3RpdmUgYWZ0ZXIgU0lHSFVQCgpjb21taXQgYTk0YTE3OWQ5MzQwZjUxZmE3YzIzNDMxNjMwYmMwZmZkNmQ3NTllOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMDo1MSAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzMzYxNjogZG9udCB0cmVhdCBEYXRlQW5kVGltZSBhcyBhIHN0cmluZwoKY29tbWl0IGIyOWU0MTY0NTMxZDI1OGZlMzRhNmZlMmI5ZTFlYzYwYzU2Zjk1NDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDcgMDE6MjU6NTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDE1OjA1OjAwIDIwMTEgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgYWJvdXQgY29udmVydGluZyBzb2NrYWRkcl9pbiAqIGludG8gc29ja2FkZHIgKi4KICAgIAogICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCgpjb21taXQgMmU3ZTllZGEwYjBkNjJhNzY0NWE5YThmNzBlZjNmYjZmM2RkNjk0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCgogICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCgpjb21taXQgMzQ2MmViY2RkMGI3YzI5OGNiMTVjMzA5OTczNmY0Zjk1MjI1Nzg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAoKICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDNlNWZlZGQzZTdkMWVmMzE2ODM2MDRiZjczZGM1NmU5NDRjYWQzNDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAzIDA5OjQ1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgIAogICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KCmNvbW1pdCAwZmM4MjIxYjI0OTg4YzRhZTYxODBlZDQyYjg2Yjk4NTJmZDU4NmFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKCiAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQoKY29tbWl0IGE1YjI4ODI5ZTY0ZDVmM2I4N2U0YjliMWVmOGNjMjA0ZjMzYTYxYjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjE6MjU6MDcgMjAxMSArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgJEFXSyB0byBnZXQgYSB1c2FibGUgbmF3awoKY29tbWl0IDI4MDFhMjEzOWYyNzAyMWUxYWIxNWUzNjJlMmQzZDYyNGZmYWE0OTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKCiAgICBQYXRjaCAjMzQwNjM2NDogRml4IHVuc3RhYmxlIGRhdGEgZm9yIE5ldEJTRC4KCmNvbW1pdCA4MjFhNThkMTEyZDdhYzQ5NTE0OWUyNjJkNzA0NDEyYmEyODAwNDM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCgogICAgRml4IGlwdjYgc3RhdGlzdGljcyBsb29waW5nIHRvbyBmYXIgd2hlbiBzY2FubmluZyBpbnRlcmZhY2VzLgogICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KCmNvbW1pdCAzNDk1OTFkMDNlMTdhNTViNDNlYWNjNmE2ODdiMDJmZDhkNGU5NTI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE9jdCAzMSAwODo1OTozNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCgpjb21taXQgMWVjNzExMGU3MmJjZTE1NjFmNzQ2NTE3NDU5ZDZmMDQzMDE2YjYwZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMzAgMTk6MDU6MzAgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgoKY29tbWl0IDZkMjY5MThhZjU1YWEzNjYyYTcyMDU0MmRlNzdiYmYzOWIwYTNlOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDI5IDA4OjM0OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KCmNvbW1pdCAyOWJmNjlkNzA0MjRmMzU5ZDljODdmMDdhOTY0YTA5OTQxNTY0OWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgogICAgCiAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCgpjb21taXQgMmNjOTUwNGI5YmI4NjI1Yjk0YmU2Y2RhN2U2MDk5M2QwNTljZDkyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyODUwNjogRml4IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigpCiAgICAKICAgIFRoaXMgcGF0Y2ggc2hvdWxkIGZpeCB0aGUgcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieSBjb21taXQgODVkOTZjNCAoTWF5IDEzLCAyMDExKS4KCmNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyNyAwODoyMDowMCAyMDExICswMjAwCgogICAgTWluR1c6IEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIE1pbkdXJ3Mga2lsbC5leGUgYW5kIHRoZSBTeXNJbnRlcm5hbHMgcHNraWxsLmV4ZQoKY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDEwOjQyOjI5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcGFzc2luZyBhIGNvbnN0IHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBhY2NlcHRpbmcgYSBub24tY29uc3QgcG9pbnRlci4KCmNvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMzowOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNldC1idXQtbm90LXVzZWQgdmFyaWFibGVzCgpjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzI6NDYgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjYgMTQ6MDU6MTYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gU2lkZGhlc2ggUG95YXJla2FyOiBwcm9wZXJseSBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgaW4gYSBzdWJhZ2VudCB3aGVuIHdlIHJlY29ubmVjdCB0byBtYXN0ZXIuCiAgICAKICAgIEFuIHNubXAgc3ViYWdlbnQgbGlua2VkIGFnYWluc3QgbmV0LXNubXAtbGlicyBtYXkgY3Jhc2ggaWYgaXQgaGFuZGxlcyBhCiAgICByZXNwb25zZSB3aGljaCBoYXMgbWFnaWMgcmVmZXJyaW5nIHRvIGFuIG9sZGVyIGRpc2Nvbm5lY3RlZCBtYWluIHNlc3Npb24uIFRoaXMKICAgIG1heSBoYXBwZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgIGF0dGVtcHRzIHRvIGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBvbiByZWNvbm5lY3Rpb24gb2YgdGhlIGRpc2Nvbm5lY3RlZCBtYXN0ZXIKICAgIHNlc3Npb24uCgpjb21taXQgYWUwNTI0NzJiMjI3MjBkMDgzNjllODUxMjdkYjIxNDI0NWRmMmUzZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDI1IDE2OjE1OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgIAogICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgoKY29tbWl0IGMxOTliZjkxYjYyMzlmMjZiMmFhYjM0ZTg1NzVlMGYwZGY5Y2RlOWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyNCAxNDoyNToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHhmcywgamZzIGFuZCB2eGZzIGZpbGVzeXN0ZW1zIGFyZSBub3cgcmVjb2duaXplZCBpbiBoclN0b3JhZ2VUYWJsZQoKY29tbWl0IDc0N2ZkYzcxZTY0ZDA5ZTA4MDkyOGViYmI0ZDA0Y2JkZTM5MDY3OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDE1OjU3OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KICAgIAogICAgVGhlIG1lc3NhZ2UgaXMgc2hvd3MgdXAgd2hlbiBzbm1wZCBpcyBzdGFydGVkIGFuZCB0aGVyZSBpcyBkaWZmZXJlbnQgc2V0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0aGFuIGl0IHdhcyB3aGVuIHNubXBkIHdhc3QgbGFzdCBzdG9wcGVkLiBUaGlzIGlzIGNvbW1vbiBvbiBwcHAtc2VydmVycyBvciB2aXJ0dWFsIGhvc3RzLgoKY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIzIDA4OjUxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSB0aGUgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZSB3b3JrIGFnYWluCiAgICAKICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKICAgIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyBzZXQuIEluIHRoaXMgbW9kZSB0aGUgZmlsZSBuZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaAogICAgaXMgcmVxdWllcmVkLiBUaGF0IGZpbGUgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zCiAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgogICAgQ2hhbmdlIHRoaXMgdG8gdW5kZWZpbmUgTkVUU05NUF9NSU5JTUFMX0NPREUsIGVmZmVjdGl2ZWx5IHR1cm5pbmcgb2ZmIGZlYXR1cmUKICAgIHN1cHBvcnQgZHVyaW5nIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgd29yayBhdCBhbGwuCgpjb21taXQgNmVmNjkwNzY0MjI0N2M2NjNiOWI4OTY0YjlmZDQ0YTIxMWRiY2FhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MDgzOTg6IEZpeCBhIG1lbW9yeSBsZWFrIGluIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuCiAgICAKICAgIFRoaXMgbWVtb3J5IGxlYWsgd2FzIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgOWJmM2Q5NmQ5NmE4ZWNkNGE1ZmMzNWMzMjZkYzkzNzQ2NzAwMmI2YzogSW5pdGlhbCBIQUwKICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgoKY29tbWl0IGNmODJiODk0YjIyMTdjMjZlZGM2ZjEzNTYzNTFjOTMyNDE1NjA0ZTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDE1IDE0OjQ1OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIHZpYSBjb21taXQgNmNhYzA1MCAoTWF5IDUsIDIwMTEsCiAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCiAgICBzbm1wZC5jb25mKS4KCmNvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgY29tcGlsaW5nIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IHdpdGggdGhlIE1pbkdXIGdjYyBjb21waWxlciB0cmlnZ2VycyB3YXJuaW5ncyBhYm91dCAicHJhZ21hIGNvbW1lbnQiLgoKY29tbWl0IGIxN2E3MmE3OTM0ODNhZWU0YTViYjJmMmUyYzdmNGZkODY5ODE3ZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjIyOjIwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCB0aGUgUEFDS0FHRV8qIG1hY3JvcyBkZWZpbmVkIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2F1c2UgdHJvdWJsZSB3aGVuIGluY2x1ZGluZyB0aGlzIGhlYWRlciBpbiBhIHBhY2thZ2UgdGhhdCB1c2VzIHRoZSBHTlUgYXV0b3Rvb2xzLgoKY29tbWl0IDY2NGQzYWUxMDdkNzU0MDUxYjhjNDIyNzlkNDU5YWE1N2ExYmUxYzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKCiAgICBNaW5HVywgaHdfZnN5czogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVycyBpbiBhIGRlYnVnIHN0YXRlbWVudC4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCA3NmZmMjVkLgoKY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE1OjUyOjQzIDIwMTEgKzAyMDAKCiAgICBBdm9pZCB0aGF0IGdjYyA0LjYgY29tcGxhaW5zIGFib3V0IHNldCBidXQgbm90IHVzZWQgdmFyaWFibGVzCgpjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KCmNvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE1OjU4OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXQgdGhlIHJwYXRoIGZvciBsaWJwZXJsLnNvIGluIGxpYm5ldHNubXBtaWJzLnNvIHN1Y2ggdGhhdCB0aGUgZHluYW1pYyBsaW5rZXIgY2FuIGZpbmQgbGlicGVybC5zbyB3aXRob3V0IHJlcXVpcmluZyB0aGUgdXNlciB0byBtb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLgogICAgCiAgICBUaGlzIGNoYW5nZSBpbiBhZ2VudC9NYWtlZmlsZS5pbiBpcyBuZWNlc3Nhcnkgb24gdGhlIDUuNSBicmFuY2ggYW5kCiAgICBsYXRlciBidXQgbm90IG9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcwogICAgYW4gb2xkZXIgdmVyc2lvbiBvZiBsaWJ0b29sIHRoYXQgcHJvcGFnYXRlcyB0aGUgcnBhdGggb2YgZGVwZW5kZW50CiAgICBsaWJyYXJpZXMuIFRoaXMgaXMgY2FsbGVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jeSB0cmFja2luZyBpbiB0aGUKICAgIGxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQogICAgYnV0IG5vdCBpbiBsaWJ0b29sIHZlcnNpb24gMi4gRm9yIG1vcmUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBhYm91dAogICAgZHluYW1pYyBsaWJyYXJpZXMgYW5kIHJwYXRocywgc2VlIGFsc28gdGhlIGRvY3VtZW50IHdpdGggdGhlIHRpdGxlCiAgICAiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpIChodHRwOi8vd2lraS5kZWJpYW4ub3JnL1JwYXRoSXNzdWUpLgoKY29tbWl0IDg5MjVjOTEyZDI2Mzk3NTJhODRiY2ZmZWVmMWI3MGE4MTAyNjQ0OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MjE6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBIT1NULVJFU09VUkNFUy1NSUI6IEFkZCBtaXNzaW5nIGJyYWNlIGluIGEgZGVidWcgc3RhdGVtZW50Cgpjb21taXQgNzZmZjI1ZDliZjk3NTc5ZTcyMTMxMDIwNjVmZDUwOTZmMDQ5YTRjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoxMzoxOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTdG9yYWdlVGFibGU6IGZpeCBidWcgaW4gaGFuZGxpbmcgbGFyZ2UgZmlsZXN5c3RlbXMsIHdoZXJlIGxhcmdlIG1lYW5zIGFib3ZlIDggVEIgKD0gMioqMzEgKiA0MDk2IGJ5dGVzKS4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgNzFkODI5M2YzODdhNmNkNjZiYjBkYmIxM2MwZjUwMTc0ZDJlNjc4Yi4KICAgIEZvciB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCwgc2VlIGFsc28KICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2Z1bmM9ZGV0YWlsJmF0aWQ9MTEyNjk0JmFpZD0zNDE5ODI1Jmdyb3VwX2lkPTEyNjk0LgoKY29tbWl0IDg2NjAzM2RiOTkwNGZmYjEyMDNmMjgzZjgzODA5MmU0Y2Y2OGRlNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDc6MzM6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc3B1cmlvdXMgI2VuZGlmIHRoYXQgc2VlbXMgdG8gYmUgdGhlIHJlc3VsdCBvZiBhIG1pc21lcmdlLgoKY29tbWl0IDIwZjRmMzI2N2VlMjBkNTU3MDViN2E0Mzc4OTg3OWMxMDNmOTY2MjAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDA6MDg6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbWlzc2luZyBlbmQgY29tbWVudHMgdG8gZmVhdHVyZSBpZm5kZWZzLgoKY29tbWl0IGU1ZGUyY2M1N2JmMzA0ZjMzMjBjYWQwMDM0ZDJlYTJkOGFlZGM0MzYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDk6MTU6MTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBMb2cgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2UgaWYgZW1iZWRkZWQgcGVybCBpbml0aWFsaXphdGlvbiBmYWlscwoKY29tbWl0IDVlZWY5OTkwZGUyOGY2MzExMWU2YzA5M2JlMGYzYzdhZTJkNTEzYTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDU6NDkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEFkZCBhZ2VudDo6dXB0aW1lKCkKCmNvbW1pdCA2ODEwZWQ0MmY5YmM1NjA3NTBkNmRiZmI3ZTUwYjZlMmFjMTE4OTljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogQ3l3aW46IGFnZW50OiBJbXBsZW1lbnQgZ2V0X3VwdGltZSgpIHN1Y2ggdGhhdCBxdWVyeWluZyBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3lzdGVtVXB0aW1lIHJldHVybnMgYSBub24temVybyB2YWx1ZS4KCmNvbW1pdCA5NzE3MmIzMTFkMjBmNDQ0MWM3YTdlOTAwOTJiNTljMWUwZGE5OWY3CkF1dGhvcjogVGhvbWFzIEphcm9zY2ggPHRqYXJvc2NoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDY6MzkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFBBVENIOiAzNDE4NjQ5OiBIT1NULVJFU09VUkNFUy1NSUI6IFVzZSBwY2xvc2UoKSBpbnN0ZWFkIG9mIGZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KCmNvbW1pdCA2NTkxOTM3YWRiODUwMDBjMjcwNjljNGJlODRjZjQ2ODg4MzhlYmNkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGRlcGVuZGVuY2llcyBvbiBARkVBVFVSRVRBUkdTQCB0byBtYWtlIHRoZSBzdWJ0YXJnZXQgd29yayBhcyB3ZWxsLgoKY29tbWl0IGI5YzgwMTJlYzAzNWJjMDg0ZjE3NTg3NmZlY2MzNzUxOTVmOWJlODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgdGFyZ2V0IHRvIGJ1aWxkIGFnZW50eHRyYXAgZnJvbSB0aGUgdG9wbGV2ZWwKCmNvbW1pdCA5OTU2NDdjMGNmZTAwNDEyMjYyY2M1Nzk3YmRmYWU5ZDAwYjcwYzc2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE1OjQ0OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIHRoZSB1c2Ugb2YgLUwgZmxhZ3MgZm9yIGludGVybmFsIGxpYnJhcmllcyBhcyBpdCBjb25mdXNlcyBsaWJ0b29sLgoKY29tbWl0IDkzZGMxMjM1YTBkYjU4ZmZkMjk2MTdjZmYwMGRjMTEyNjM3ODAyMDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6MzE6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIG1ha2UgYXBwcyB3b3JrIGFnYWluCiAgICAKICAgIGFwcHMgaW5jbHVkZSBzbm1wdHJhcGQgYW5kIHRoYXQgcmVxdWlyZSB0aGUgYWdlbnQgbGlicmFyaWVzIGFzIHdlbGwuCgpjb21taXQgYmE0MTQ4OGVkNDRjZDIzYzI1OTYzZDRmYzU2YzQ3Njg1M2IyYWI1OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMToyOTozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdoZW4geW91IHNheSBtYWtlIGxpYnMgeW91IGV4cGVjdCBhbGwgdGhlIGxpYnMgdG8gYmUgYnVpbHQuCiAgICAKICAgIFRoaXMgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBzbm1wdHJhcGQgdGFyZ2V0IGF0IHRoZSB0b3AgbGV2ZWwgd2hpY2ggb2J2aW91c2x5CiAgICBleHBlY3RlZCBib3RoIGxpYnMgdG8gYmUgYnVpbHQgYW5kIHNvIGZhaWxlZCB0byBjb21waWxlIGJlZm9yZSB0aGlzIHBhdGNoLgoKY29tbWl0IDMwNTdjNzNlMDkzNDczYmU0NjI1NGJjZGZiNGNhNzg4ZTQzMmQxYjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCgogICAgTkVXUzogYnVpbGRpbmc6IFBBVENIOiAyMDkxMTU2OiBjb3JyZWN0bHkgZGVjbGFyZSBkZXBlbmRlbmNpZXMgaW4gTWFrZWZpbGUuCiAgICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KICAgIAogICAgQmFja3BvcnQgdGhpcyB0byBWNS00IGFzIGl0IGlzIG5lZWRlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gaW4gdGhlIHNpbmdsZQogICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgoKY29tbWl0IDZlYWUzNDBmYTJhNjQwODY1OTI5ODJjYzUyNzM1YmMwMTQ4N2Q5NzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDEgMTk6MzM6NTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCiAgICAKICAgIElmIHlvdSBoYXZlIGxpYmJzZCAwLjMuMCBpbnN0YWxsZWQgdGhlbiB0aGVpciB2ZXJzaW9uIG9mIG5saXN0Lmggd2FybnMgYW5kCiAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKICAgIG5lZWQgdGhhdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgYXMgd2Uga25vdyBob3cgdG8gZG8gaXQgb3Vyc2VsZiBzbyBpdCBiZWNvbWVzCiAgICBwdXJlIG5hZ2dpbmcuIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmluZSB0aGF0IGNoYW5nZXMgdGhlIHdhcm5pbmcgaW50byBhbgogICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAogICAgZm9yIHRoZSBmdXR1cmUuCgpjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTk6MDM6MDIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEVuYWJsZSBzZW5kaW5nIFNOTVB2MiB0cmFwcyB3aXRoIGFuIGVtcHR5IHZhcmJpbmQgbGlzdAoKY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIFNlcCAzMCAwMzoyOTozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUHJvdGVjdCB0aGUgdXNlIG9mICRPU1RZUEUgdG8gZW5zdXJlIHRoYXQgJ3Rlc3QnIGdldCBlbm91Z2ggcGFyYW1ldGVycy4KCmNvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMjowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cwoKY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDA4OjU2OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQoKY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDI4IDE3OjQ5OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmYWlsdXJlIHRyaWdnZXJzIGEgZG91YmxlIGZyZWUuCiAgICAKICAgIEZpeGVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIGFhNGQ0N2MyNjA5ZTUyODE4YzljZGYxYThlMjIwNWRlOWEzMzVhMGEgKHN2biByMTk1MTUpLgoKY29tbWl0IGQyMjUyZDAxNjY5MzgwNzMyNmY3MmI2NjEyMzY0OWRlYTAwYWY5MTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKICAgIAogICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKICAgIHByb2R1Y2VzIGlzIHZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KCmNvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyMSAyMjoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KCmNvbW1pdCA1ZjI3ZjRmNzRhZTJiZDViYWY1MDNjZjMwNmI0ZjlhMjg0MWE1N2NmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjMyOjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgcnVubmVyCgpjb21taXQgMDk3MDM5NThjYzVlYTg0NTkyOWFlMTllZjllMDgwNGFlY2FhNTEyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTI6NDI6NDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZSB0ZXN0IHJlc3VsdCBiZWluZyBwcmVzZW50IGluIHRoZSBoZXggZHVtcCAoIm1vc3RseV9oYXJtbGVzcyIpCgpjb21taXQgNDM5MzAwMjc5ZjZmMzE0Mzg2MzhkMmYyMjJjMjRjM2M4NDFmYTZhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTE6MTY6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNaWNyby1vcHRpbWl6ZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcwogICAgCiAgICBUaGlzIG1ha2VzIHRoZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcyBjYXJyaWVkIG91dCBieSB0aGUKICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKICAgIGZvcmsoKSBpcyBleHBlbnNpdmUgKEN5Z3dpbikuCgpjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMTA6MTQ6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKCmNvbW1pdCA3MGIwNmNmNzg5MjA4ZWFhODkwYmZiY2Q2MzhiZGI3NzVmODE3MDU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTo1MDo1NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luZG93czogdGVzdGluZzogcGVybDogRml4IGFuIGluY29ycmVjdCBtZXNzYWdlIHByaW50ZWQgd2hpbGUgcnVubmluZyB0aGUgUGVybCBtb2R1bGUgcmVncmVzc2lvbiB0ZXN0cwoKY29tbWl0IDcwYmNjOGRlMmQwZmM5MmJiYjg0ODE4MjM2MzBmYWI5YmM4N2FmNzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogT2J0YWluIHRoZSBNU1lTIHBhdGggZnJvbSB0aGUgZW52aXJvbm1lbnQKCmNvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAxNCAxMzoxNDoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCgpjb21taXQgMzhmYzNjYWE5ZWViMzgwMDI1NGI0ZjZhZDZmOGY0NzY0YzBmODNkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6MzQ6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9jYWxsYmFja19hY2NlcHQoKSByZXR1cm4gLTEgKGZhaWx1cmUpIGluc3RlYWQgb2YgMCAoU1RESU5fRklMRU5PKQoKY29tbWl0IDZjOGM3ZThhY2E4ZmMyZWViNTIwMTBhZTNlOWZlZTZkZDgzZWY3ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDEzIDA5OjU4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgoKY29tbWl0IDA4NjBkMTFmZDhmYzVkYmRhYWFlMjI2MWZhZTJjMDdmYjljMmM4MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6NTQ6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IEF2b2lkIHRoYXQgdGhlIHR5cGVkZWZzIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAoKY29tbWl0IGY4YTAzNmY2M2ZmNjhmMDgzNDM2MTIwZTBhYmQ0NzhiNjkyYTJmNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6MjE6MDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IFdoZW4gbGlua2luZyB3aXRoIE9wZW5TU0wsIGxpbmsgd2l0aCB1c2VyMzIubGliIHRvbwoKY29tbWl0IDgzNmEyM2UxMGNhODEwYzM4OTk5MDJkMzI1ODc2MTZhOWQxMjAzZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBMaW5rIHdpdGggcHJvcGVyIGxpYmVheTMyIGxpYnJhcnkKCmNvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDExOjEwOjM4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgYW4gaW5jb3JyZWN0IGNvbW1lbnQgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaAoKY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6NDk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgSVNERUZJTkVEKCkgY2hlY2sgZm9yIGFuIGV4YWN0IG1hdGNoIGluc3RlYWQgb2YgYSBwcmVmaXggbWF0Y2gKCmNvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0aG9zZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MgZm9yIHdoaWNoIFNOTVBDT05GUEFUSCBhbmQvb3IgU05NUF9QRVJTSVNURU5UX0RJUiBtYXR0ZXIKCmNvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgZnJhbWV3b3JrCgpjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IFN1cHBvcnQgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgcmVjZW50IFNoaW5pbmcgTGlnaHQgT3BlblNTTCBiaW5hcnkgZGlzdHJpYnV0aW9ucwoKY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCBhYzJhZWQzYzk0YmIyZWJiNDczYWYwYTFlMjBmMDU2MWFkNjI5OTU2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxMSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBdm9pZCB0aGF0IHNubXBkIGNyYXNoZXMgaWYgc3RhcnRlZCBvbiBhIHN5c3RlbSB3aXRoIGFub3RoZXIgT3BlblNTTCBsaWJyYXJ5IHZlcnNpb24gdGhhbiB0aGUgb25lIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGguCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4xIC0+IFY1LjcuMi5wcmUyCgpjb21taXQgODEwMTg1YWUwYjBjZDJhZDRkNDI0YTFiYTc3NWVmNWNlYWY1MGYwMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwOToyNDoxOSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCA2MjcxNDcxZTAxMjgyZjM2NzU3MjRlYWYxMzU4Y2ViMGU5NWRkZDRlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjQwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTEKCmNvbW1pdCBmY2I3ODJhYTg4OTMxMzRjNzQxNGE5MjZkOTI2ODU5NGY3MjViOTE1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjE4IDIwMTIgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjIucHJlMQoKY29tbWl0IGUzYmNkODdjNzJmY2VhNzcwNmU4NjhiNWFjZTc1Mjk2MDkzZjc0OTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowOTo0MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBkODEzY2UyZWVlZmM2ODIyOWNmY2FmMjA2MDMyNDRjZGQ2ZDA5ZDNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDc6NTIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZmE3YmQ1ODFlMzc4MzY4NWRiMzljOWI0ZWFmODQ3YmU1YWM4NmZkMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUzOjEwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgMDczOWUyMzgyZDMxMTQ2YWNhMzIwNTI0NGNmNzA3ODhiNDBhNDI4ZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUxOjQ1IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgZDlhMTU0NDVhYTc0ZjUzMTZiZmM3MTFjMTU1ODQ2Nzg3MmMyOTU4YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMyCgpjb21taXQgYmNhYmQyYzk1NDJkYmViZDFkMzE5YjQ0OTQ0MTNiZGNjYTA2NjE0ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgYjQ3Mzg5OGMwYzVhYzllYjQ3YzdjMDVhM2Y3NDVlNGZmMmE3NmFhYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgoKY29tbWl0IDEzMTQyOWU3MDYyZmJhYTY1YjgyYWZmZWQxZmI5MmRmMmMwY2M4MTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFjODExMGIzM2I4MTA1Y2E2MTkwOTQ1YTM1ZmU3YWU5MDMyNTJkNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMTozOCAyMDEyICswMTAwCgogICAgQXZvaWQgcGVybCB2ZXJzaW9uaW5nIHByb2JsZW1zIHdoZW4gc2V0dGluZyB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKCmNvbW1pdCA1MDhlY2UxNmU2ZjZmNDk1NjJkYTIwNDc5MmFlMDY0NDI2OTk5NGQxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjA6NTggMjAxMiArMDEwMAoKICAgIEZpeCBoYW5kbGluZyBvZiBkaXN0L3JlbGVhc2UgbWVyZ2UKCmNvbW1pdCA1YjhhODU0N2IxYTQ3ZDJmNWIyMDdmNDhmMjQ5NmU0MjQxZDkwMmM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MTA6NDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA2YzMyOTE0YmYyOGQ2OTVkZjM0OWRjYTI2OWU0ODhiNTAxNzAwMzE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDc6MjIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA5ZjVhODJhNWFmZGJiM2RhZWIyZmQ0MzdhMzA5ZjBiOGQzNTdjZjRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDU6MzkgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAzOTIwM2YyOTQ3N2EzYmVkZjAxMmQ0MTEzNWQ4YWJkNmJjYWQwOGIxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NTQ6MjcgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAxN2U3OWVmMGZhZDc5NjA5YzViYTJmZWI0ZThiOWViNWQ3ZGI2ODg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCA1ODIxYmU1YmJiNDAxOGRlZDI4MmZiYmJkNDgzMGNmMmVlYWRkOWUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDU6NTkgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMyCgpjb21taXQgM2YyMTExZGU2NzMzYTA0ZTEyZDkxMGQzMDZhMzRkNjcxZTAwODc2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgY2NmOGZmMmM0ZGI2MDEyMmQ0MTMwMmU0YWViNzAwZTBiODY4MTA1ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDI4IDEwOjE4OjQzIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNTI2NTk5OiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCgpjb21taXQgYzgxYzg0ODM5OTA5MTFmNDc0MzVkMzAwNTI1NWQ5MWMzN2FiOTJiMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDk6MjYgMjAxMiArMDIwMAoKICAgIEZpeCBCU0QgdGhhdCBkb3dubm90IGFsd2F5cyBsaWtlIElQX1NFTkRTUkNBRERSIC0gc28gcmV0cnkgd2l0aG91dAoKY29tbWl0IGZmY2UxZjJkYzJmOGIzMWFiZDAxZjkzYjI2ZGE3OGY0NzI2YTFlNjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjAzOjU4IDIwMTIgKzAyMDAKCiAgICBGaXggT1MgbWlzc2luZyBNU0dfRE9OVFdBSVQgKEFJWCkuIEJhY2twb3J0IGZyb20gNS43Cgpjb21taXQgYzU3NTIxNjg1MDE4NWI1NjQ1NGRhZDAyNTNlMzE2NDk3OWUxMzUxMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTM6NTY6MDEgMjAxMiArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0Cgpjb21taXQgNTgwNTg3ODc0OWMwODA2MmRlYmYwYTlkNzk4ZDA4ZmI5MTZjYWEyZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXkgMjcgMDY6MjM6MTkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBkZWJ1ZyB0YWcKCmNvbW1pdCBkMWE0MmJiY2M3YjE0NzMwYzlhNmQ5OWM0ZjA0NzA5Nzg0M2E1NDliCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1heSAyNSAwOTowMjoyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQoKY29tbWl0IDFmYmYzMzcxMWExOWVhYzk3MzlhZDIzZjZmNjI1MWVhY2M0MWYxYzQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1NDo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAzNTI1OTk4OiBEb24ndCB1c2UgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSBpbiBlcnJvciBtZXNzYWdlCgpjb21taXQgMzJjMTY4NmI2N2RjODVjNGExODk1NzYzNjMwNjU2MDlkZmVkNWU2MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjUyOjU2IDIwMTIgKzAxMDAKCiAgICBBdHRlbXB0IHRvIG1hcmsgcmVsZWFzZS1jYW5kaWRhdGUgYnJhbmNoZXMgYXMgc3VjaC4KICAgIE9taXQgZmluYWwtcmVsZWFzZS1vbmx5IHN0ZXBzIHdoZW4gcHJlcGFyaW5nIHByZU4vcmNOIHJlbGVhc2VzCiAgICAoUmVsaWVzIG9uIGEgdHdlYWsgdG8gdGhlIE1ha2VyZWxlYXNlIHBlcmwgbW9kdWxlcykKCmNvbW1pdCA0YzU2MzNmMTYwM2U0YmQwM2VkMDVjMzdkNzgyZWM4OTExNzU5YzQ3CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAZnJlZXNubXAuY29tPgpEYXRlOiAgIE1vbiBNYXkgMTQgMTE6NDA6MDYgMjAxMiAtMDQwMAoKICAgIE5FV1M6IHNubXA6IEJVRzogMzUyNjU0OTogQ1ZFLTIwMTItMjE0MSBBcnJheSBpbmRleCBlcnJvciBsZWFkaW5nIHRvIGNyYXNoCgpjb21taXQgNjVkZDgzYzIyNTVlZTU4ZWRiZjBlMjU4NjNlNTViNThhNDExMzY3OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MzA6NDIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBhYzRiYzY1ZTI5MDlmM2JkODVmMzJmMDRiNTA0ZmE2NWQyZjY0NTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoyODowNiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGI3NDk5NDg2NDE5NTExOWVkYjZlMTljODUxNDdmYWMwMGJjYjkzZTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjEzOjQ2IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMQoKY29tbWl0IDkxMzUwMDkyYzQ2ZTY2ZDA2ZDc0MTQzZjQ4MTY0NzNkYjRkMjUxNjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE5OjU2OjMzIDIwMTIgKzAxMDAKCiAgICBNYXJrIHZlcnNpb24tc3BlY2lmaWMgY2hhbmdlcyBfYmVmb3JlXyBwdXNoaW5nIHRvIGNlbnRyYWwgcmVwb3NpdG9yeQoKY29tbWl0IDcyNDFhY2NkNzBiODJkMGZjZDQ0ZDVhNTIzOGIyZWU5NDQ1OTAwZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUzOjE3IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgN2M3OTZhMTVhMWQxYmI4NWZlZWE5NDBiZDRlMzUxNjg3NzkyMDkxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTA6NDkgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAwN2UyNjhiZmI2NGIwZWM2NDViM2Y3ZTg3MjY2OTg0ZjkyMTdjZjEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo0NDozNyAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDE2ZWFhZjZjM2JhMTQ1OTZjYTllZmFmNGIxMTRmMWI3MDlmNDJiNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI5OjAzIDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgYzcyOTQ2OWVmMTIxNTQ5MzBjZjlkMTU5NjdlMTYxODZmYjQ0NWYzMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjc6MjAgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMxCgpjb21taXQgMTQyNTcxZDNjZWEwOGYwYzA3MmQyNGMxZDM5YTQzYzc0NDZmOGNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgZWJhODZiNmY3YWZmMjYxZWUwZTYxMzM0ZGY3MGRlNzE1NmU1YzNjYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgNWMwZjY0ZDZkYjJiNTkzZjdjYzBlZDJkNGY1NWI3YzU5MmI3NzRhOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MjU6MTUgMjAxMiArMDIwMAoKICAgIE9ubHkgb3V0cHV0IGNwdSB3YXJuaW5ncyBvbmNlLgoKY29tbWl0IGVlNThlNDgyN2I5ZmExNmU2NjM1Y2EwMDNlOGE0ZjExZGNiNWZiN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjE3OjQyIDIwMTIgKzAyMDAKCiAgICBGaXggc3BlbGluZyBpbiBlcnJvcm1lc3NhZ2UuCgpjb21taXQgMDNmNDg1ZGYyMmYyMGUxNDljZmFlOTRjNTdjYjgyZmVlY2I1ZDc0YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTI6MTEgMjAxMiArMDIwMAoKICAgIE5vdCBhbGwgTGludXhlcyB1c2UgcnBtIChkZWJpYW4vdWJ1bnR1IGNvbWVzIHRvIG1pbmQpCgpjb21taXQgOTMwODM4MjI0Zjc4MTY5NmJkMzUyMjVmMjI1NjkzNDc0MTZmMWIxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTA6MTUgMjAxMiArMDIwMAoKICAgIENoZWNrIG5lZWQgZm9yIC1sbSB0byB1c2Ugcm91bmQvZXhwCgpjb21taXQgYTA2MDljZjFmM2E2OTE3ZDI2MzcyNTczMjI0OGNkOTM3YTQ1YWQ5NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwODo0MDo0NCAyMDEyICswMjAwCgogICAgUmVtb3ZlIGxpbWl0YXRpb24gb24gY29uZmlndXJhdGlvbiBsaW5lIGxlbmd0aC4KCmNvbW1pdCAzMDU5NzMzMzhhNjNhZTU0YzVlMDJhODYyNmZiZTlhODA2NGRjYjdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjMyOjE5IDIwMTIgKzAyMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLgoKY29tbWl0IGNjYWI0ZTlkM2VkNDI0YzM5ZDBkYzI3YmU2M2ZhNzZjNzQ2MWVhODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MTU6MjIgMjAxMiArMDIwMAoKICAgIEludGVybmFsaXplIHRoZSBuYW1lIGFuZCBsaW5lIG51bWJlciBvZiB0aGUgY3VycmV0IGNvbmZpZ3VyYXRpb24gZmlsZQoKY29tbWl0IGNmODc0YWQ3YjlkYWY0ZmNjMGQ0NmNkZDAzNDQ3NGI0NzgwMDUzNDEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgQXByIDYgMjE6NDc6MjggMjAxMiArMDIwMAoKICAgIFJlcGxhY2UgI2lmIChBKSBCICNlbHNlIEIgI2VuZGlmIHdpdGggQi4KCmNvbW1pdCBlZjllYTY0MWJjMjkwZWVjNTA2ODViNjA1MTliMzFiZWU4YjE0YTY5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowNDowNiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCAzNWFiYTE5NTlkZTExOWYxZmI4OTIwM2MzNzEwOWFhNmYwZTIxYzU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowMDo0MCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCBlNDFmYmFmZjE4YWM5MDk1Y2Y0YTczOWEwNmVjMzlhMWE2Y2NmZGMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMDozNTozNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUyCgpjb21taXQgMTM3ZmU1ODJkNmNjNTYxMTQzMGRhYjQ2ZWYxNDRlZmQ4NGNmYzgwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgQXByIDYgMjA6NDY6NTYgMjAxMiArMDEwMAoKICAgIFJldmVydCBjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwogICAgKHNubXBfc3RvcmVfbmVlZGVkKCkgQVBJIGlzIG5vdCBhdmFpbGFibGUgaW4gNS5bNDVdLngpCgpjb21taXQgMmI3ZTY0Mjg4YzAxYThhMDYyMDI2YzUyMWNhMzFhNWU4ODVmMzBjYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MTI6MTIgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgN2U5NWQ4MGI2OTgwNTEyNTk2NDVjMDc0YTUzZmZkMjY0YTZmYTkxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MDY6NTYgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMWE5YjdiN2MwMmUyZGVlZmU5OTRkNTk1YTdjYzFkZDJmZmJlZWUxZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTU6NTE6MjAgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoICdyZWNlbnQnIGhlYWRlciBzaHVmZmxpbmcKICAgIEJhY2twb3J0IG9mIGM1M2Q4YzM1MjVmNTkwZjIyMTNkMzViMGRhOTQxMjM4NjJmM2UzNjYgZnJvbSBWNS01LXBhdGNoZXMKICAgIChQYXRjaCAjMzM2MzMwOCAtIG9taXR0aW5nIHR3ZWFrcyB0byBjb25maWd1cmUpCgpjb21taXQgM2Q5ZGRiNDFlMjYzYmMxYTc4ZjlmOTQ0MGI4ZDRhZDRmODZjODJlMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MzY6MTggMjAxMiArMDEwMAoKICAgIEZpeCB0eXBvCiAgICBCYWNrcG9ydCBvZiA1YjcwMmIwMjRiNjAxNzZkN2Y1Njk5YjkyZTU1ZGE1MGE4ZGVhZTcxIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMGQzNWM2MDk1NjRiNjZhMWZmZTgxNTU2ZDM3YWRmMDUwM2MzODljZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MTU6MDggMjAxMiArMDEwMAoKICAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mIE5FVFNOTVBfUFJJbwogICAgKHVzZWQgaW4gYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jKQoKY29tbWl0IGE3OTE0MWE0MTk5NTNkMDEwYTY5ODllOGI4OGY0ZGYxMjczOTRkMzgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA5OjE5OjI2IDIwMTIgKzAxMDAKCiAgICBIZWFkZXIgZmlkZGxpbmcgZm9yIEZyZWVCU0QsT3BlbkJTRCxEcmFnb25mbHkKICAgIEJhY2twb3J0IG9mIGY3YjBkZTE1MTgwMDJjNmU4ZjliOTRlZjNkZWI4ODgyZTFlOTMzOGUgZnJvbSBWNS03LXBhdGNoZXMKCmNvbW1pdCBhZGY3NGJmNzUzZDM5NzAzNTdhZmQ2MzM4MDMyNTYyNDFkOWM3Yjg3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwODoyMDo0NiAyMDEyICswMTAwCgogICAgRml4IElQdjYgVENQICYgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0IChpbmNsdWRpbmcgT3BlbkJTRCkKICAgIEJhY2twb3J0IG9mIGNvbW1pdHMgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgogICAgICBhbmQgNTBkNzNmMGQ1NmZlMjJjNTkwNTMwYjNlMzA1ZDQxZGNkYWMzY2UwMCBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGQ5NTU1YWNiOWY0N2MzYWE4ZmRlNGJjMjBhNDRkN2NhNjE4MWE4YTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWFyIDI1IDE4OjQ4OjEyIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCBkYW5nbGluZyBwb2ludGVycyAoYmFzZWQgb24gcGF0Y2ggMzUwMzI1OSkKCmNvbW1pdCA4MmE4YjQ3ZWU5NmU1ZDI5YTJiN2FjM2NhMDA3MjJkNzM3ZDViNDc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMTo1NiAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMDozOCAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBjZWNkNDg2OWRlYjY4ZjNkNGM3MWU3NjhkNWI0MGRkNTc2NDQ2OTI1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjoyOTozMSAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBhMWE0NTEzYmQzZTRlNjE0MjAwZjZkYjVhMDJmNjFkNmM4ZWVmYjMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6NDc6NDUgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFja3BvcnQgb2YgZ2l0IGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDliZGJjY2ExMjJjMzdkYTMwNGZjNmFhNjkzOTcyOTQ3NWY5MGY1ZmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTozMDo0OSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrLXBvcnQgb2YgR0lUIGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTo0MToyNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0OTU2OTc6IFN0b3JlIHBlcnNpc3RlbnQgc25tcFRhcmdldCB0YWJsZSBjaGFuZ2VzCgpjb21taXQgMWY3NWYzNzdkMGRiMDE3NTRjMGMxNjFkYzQ0MzczMDgxYmVlZjUyMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjE0OjA2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBQQVRDSEVTOiAzNDg5Mzg3OiBJbnN0YWxsIEZyZWVCU0QgMTAgaGVhZGVyIGZpbGUgKHBsdXMgb3RoZXIgbWlzc2luZyB2ZXJzaW9ucykKCmNvbW1pdCAzZDcyYzllNzhmMmFkODE3YzlkMWQ4Mjk3NzMyN2JiYjIwZDYzYWI5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MDY6MzEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzQ4Nzg2NzogRG9uJ3Qgc2tpcCBtaXNzaW5nIGlmWFRhYmxlIGVudHJpZXMgKGlmQ29ubmVjdG9yUHJlc2VudCBGQUxTRSkKCmNvbW1pdCAxMjkwNjU3OGFiMzBjZjc3NmQwODBjMGVmMzAyNWIzMDMzNGQ3NjU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNjoxNzo0NSAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBGaXggZXZlbiBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGNjZmQ1Y2E2ZmUxMDMxM2Q2MTgxZDI0YmJiMTc5NzgyNWE5N2RhMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjUxOjE2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEVsaW1pbmF0ZSBkdXBsaWNhdGUgY29kZQoKY29tbWl0IDlmZGEyNjY4NzIyZjA4ZGRiZmRkNjdhMjIzOWQ4YjAyMWRiNjRhODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjQ4OjQ2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IFdyaXRlIGEgbG9vcCBhcyBhIGxvb3AKCmNvbW1pdCBjYmMxOGViNzYzYmE2ZGY2OWVmNzA2NjhhNTRkNzViZjM1ZTc5NTAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNToyNDowOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDM6MjQgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHJlYWRpbmcgZnJlZWQgbWVtb3J5IHdoZW4gZGVsZXRpbmcgYSByb3cgZnJvbSBhIHRhYmxlCgpjb21taXQgYTZiZTczOTU2NmYzMTBkNzQ0MWZkN2Y1NDk4OWUzOTQ0NmY3YTE0MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDI6MjggMjAxMiArMDIwMAoKICAgIEV4dGVuZCBESVNNQU4tUElORy1NSUIgdGVzdAoKY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIxOjAzOjQxIDIwMTIgKzAyMDAKCiAgICBGaXggZm9yIERyYWdvbkZseSAzCgpjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjA6NTk6NTMgMjAxMiArMDIwMAoKICAgIERyYWdvbkZseSBuZWVkcyBfS0VSTkVMX1NUUlVDVFVSRVMgdG8gY29tcGlsZSBpcHY2IGNvZGUKCmNvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CkF1dGhvcjogRGF2aWQgSW1ob2ZmIDxkaW1ob2ZmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjQ3OjE3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzNTEwNDU0OiBBbGxvdyB0aGUgdXNlIG9mIDAuMC4wLjAvMCBhcyBhbGlhcyBmb3IgZGVmYXVsdAoKY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjIxOjM4IDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MTA6NTIgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUgcGVybCB0byBkbyBwYXNzX3BlcnNpc3QgdGVzdAoKY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXIuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDY6NDAgMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUBuYmEtbGludXguc2Iuc3RhdHNiaWJsaW90ZWtldC5kaz4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjAxOjM3IDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBmaW5kIHBhc3MgaGVscGVycyBmb3IgdGVzdGluZy4KCmNvbW1pdCBmZTI2YTNjNGYyOWYwNDZiZjY1ZWQ1MmU5ZDk0MDU0YjY3NWZiYzRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTowNDo0MiAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBMaW1pdCBzb3VyY2UgY29kZSBsaW5lcyB0byA4MCBjb2x1bW5zCgpjb21taXQgNzQ1YmFmY2RjYzljOGU4NDYxNmQ0ZTI3NGRiMmEzODRiZjIzNGRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDg6NTU6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZyBpbXBsZW1lbnRhdGlvbiBpbmRlcGVuZGVudCBvZiBudHBkIGNsb2NrIGp1bXBzCgpjb21taXQgZGE2OTI1ZTY3NjNjYWRiZTAyZjRhOGJiZmU2OGEzNjJlNTM1YWQ1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6Mzg6MzYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTRkaXNtYW5waW5nbWliX3NpbXBsZQoKY29tbWl0IGZhNjA2ZGQ3Y2E2YWZmOTMwOGQ0ZThiMDFiYmNkZTE0OGY0NDEyNzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjQ5OjIxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmdpbmcgbG9jYWwgaW50ZXJmYWNlIGFkZHJlc3NlcyB3b3JrCgpjb21taXQgNjE3YTgzYmE3OTk1NzVjODRjNjZmNmIxYzQ4MGVmNjMzMTYxYTY0YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6Mjg6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBhIHNvY2tldCBsZWFrIHRyaWdnZXJlZCBieSBwaW5naW5nIGEgcmVtb3RlIGhvc3QKCmNvbW1pdCA2MjVmNTVjMjcyZWM2MjgxZTM4ZDhlMzBlYjUzZmQ1MTUxNmIwMGFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTo1NDo1NSAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHZhcmlhYmxlIGludG8gYSBzdGFjayB2YXJpYWJsZQoKY29tbWl0IGI0OGYxOWFkNGI0YWE2OGMzZTE2ZTJhNzJkZjM3YjljMGNkMzZjNGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI0OjA3IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEFkZCBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgpjb21taXQgZDc0Y2IzOTY2MTc1ODkyNTYyZjVlM2E5YjE2ODNhY2JhMmMyMmUwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDU6MTggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBzZXZlcmFsIG1lbW9yeSBsZWFrcwoKY29tbWl0IDBiMWE3NzY3NDY3OGNjOWExNWJlM2U3NzAwZDNjZWY2NTBlZDAyYzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEyOjAwOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEbyBub3Qgc2VuZCB0aGUgY29udGVudHMgb2YgdGhlIHN0YWNrIG92ZXIgdGhlIG5ldHdvcmsKCmNvbW1pdCAxMzkwMjNjZDNhYjUxNjMxY2MxMGUyODY2ZDcxYWJjZjk5YWU0YzFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1NjowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG9uJ3QgY2FsbCBleGl0KCkgdXBvbiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgpjb21taXQgMTY5YjZhYWE3YjYxODI3Y2MxYWQwYjNhZWVhZTNhNzIyOWRkMjVkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTM6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBJUHY2IHNvY2tldCBsZWFrIGluIGVycm9yIHBhdGhzCgpjb21taXQgYTBiZTMyYWQwNTNhNzFmYTk2MTM0ZDU1ZTU0MmJiMDdkNGYwMjk3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDM6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHRoYXQgaG9zdCBuYW1lIHJlc29sdXRpb24gZmFpbHVyZSBjYXVzZXMgYSBjcmFzaAoKY29tbWl0IGJmOWJmZjY0NTU2Nzg3ZDc2NmVlMmVmMmQ1NzhhZmI5MjA3MTlmM2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUxOjU1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IHByaW50ZigpIHN0YXRlbWVudHMgaW50byBzbm1wX2xvZygpIGFuZCBERUJVR01TRygpLXN0YXRlbWVudHMuCgpjb21taXQgNWQ3NGMwMTI0NTUyM2E5ZDhkYjFlZGEyN2QxZWZhZTJlYmMxMDRmYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6NDA6MDIgMjAxMiArMDEwMAoKICAgIE5ldyBNSUI6IFZSUlBWMy1NSUIKCmNvbW1pdCA1YjM4ZjA2MmI5OWI2ZWYzNjcwOGUyYzdkZTQ5NjVhMzE5MjYxMmU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozNDo0OCAyMDEyICswMTAwCgogICAgRm9yIHNhZmV0eSwgc2l6ZW9mIHRoZSByaWdodCB2YXJpYWJsZSBpbiBtZW1jcHkKCmNvbW1pdCBlNWY4Mjc4MmRhMDVlZmE3YzBlNmRjMmJmNWE0MWVlMTE4NjhmNDY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMzoyMSAyMDEyICswMTAwCgogICAgRml4IGZvciBoclNXUnVuIGRhdGEgZm9yIEZyZWVCU0QKCmNvbW1pdCA4MzI3NTY1ZTgyMzI3MGQxMGE0NTA0NTY4ZWRiZTViNWFlMzIzYTU1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMTo1NCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgdmFyaWFibGVzIGZvciBPcGVuQlNEL05ldEJTRAoKY29tbWl0IDE3MGY2ZjAyN2JmNGY5MTc0YjcwNzM1MzBkYTRkMDdmNDAwYmJhNTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjI4OjU4IDIwMTIgKzAxMDAKCiAgICBNb3ZlIGRlY2xhcmF0aW9ucyBpbiBmcm9udCBvZiBzdGF0ZW1lbnRzCgpjb21taXQgZGJiNDU3M2I2OWZhZTg1Y2RjOTMxYjI4OTJiNWNlNGU1YjE2YjMyMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MjM6MzYgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUga2VybmVsX25ldGJzZCBmb3IgTmV0QlNENgoKY29tbWl0IGYxMTY4MWYxNWFhZDdkOWE1MmZhMjk4MTJlY2JiNTA3ZjFiN2ZlMjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozNjozOCAyMDEyICswMDAwCgogICAgQ2hlY2sgZm9yIG9sZCB0YXJiYWxscyAoYW5kIHVucGFja2VkIGRpc3RyaWJ1dGlvbnMpIGJlZm9yZSBzdGFydGluZy4KICAgIFRoZXNlIGNhbiBjb25mdXNlIHN0ZXBzIHN1Y2ggYXMgIm1ha2UgZGVwZW5kY2hlY2siLCB0aGF0IGRvIGEgJ2ZpbmQnCiAgICBvbiB0aGUgY3VycmVudCB0cmVlLCBhbmQgd291bGQgZGVzY2VuZCBpbnRvIHN1Y2ggdW5wYWNrZWQgc291cmNlIHRyZWVzLgoKY29tbWl0IDQ3MGRjZDRiNmMzZmYxMWZmMGEzNTMyYTczNDBhNTZjZmZkNjkwOTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozMjoxMyAyMDEyICswMDAwCgogICAgRG9uJ3QgcnVuICJtYWtlIGRvY3M7IG1ha2UgbWFuY3AiIGlmIHRoZXJlJ3Mgbm8gTWFrZWZpbGUgcHJlc2VudAoKY29tbWl0IGM5YWM0MjAzNDNlMTZkZjJiNzA2NWY1YmYyNzkwZGY0NGUyNDdmYmEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDoyNjoxMCAyMDEyICswMDAwCgogICAgQWxsb3cgZGlzdHJpYnV0aW9uIGFzIHBhcnQgb2Ygbm9ybWFsIE5ldC1TTk1QIHBhY2thZ2VzLgoKY29tbWl0IDU5OTlmNjBjNTc3MjNmMjNmM2MyNTRhZjU3ZmRiMTBhZjMwMWE4ZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDE4IDE5OjAzOjA4IDIwMTIgKzAxMDAKCiAgICBSZWdlbmVyYXRlCgpjb21taXQgMjc1ZDIwNDAzNmE2MDdlM2RmNTBlODQ0N2Q0YmM3NTVlOWRiMDJmZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMjE6Mjk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSAtLWRpc2FibGUtYXBwbGljYXRpb25zLy0tZGlzYWJsZS1hZ2VudCB0b2dldGhlciB3aXRoIC0tZW5hYmxlLW1pbmltYWxpc3QKCmNvbW1pdCBiZGNjYzg3NTcxMDI5NWFhY2Y1MGY3MWViMWMxZDJlZTk3ZjMzNmZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAyMDoxMDo1OCAyMDEyICswMTAwCgogICAgRG8gbm90IGRlY2xhcmUgdGhlIGxvY2FsIHZhcmlhYmxlcyBmb3Igb3BhcXVlX3NwZWNpYWxfdHlwZXMgdW5sZXNzIHRoYXQgb3B0aW9uIGlzIHNldC4KCmNvbW1pdCBiODBhNjdkYTA1MmFkY2ExYjVhNjQ0ZGI4M2E3ODJlMTVjMjIzN2MzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAxOTo1MDowMyAyMDEyICswMTAwCgogICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKCmNvbW1pdCBlZmFlODZiYmE1OTYyNDkxZDQyYjc3YjkzNTE5MWEzZWIyNWRkOTM5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE1hciAxNCAwMTowNTozMyAyMDEyICswMTAwCgogICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCiAgICAKICAgIENvbW1pdCBkMzVhMTg2MDIxN2U3MjNlNGY4NjZkZDk4ZWY2NjIxNjY1OTM0YzRhIGFjY2lkZW50YWxseSByZXZlcnRlZAogICAgCiAgICA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwIChocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZSkKICAgIDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIgKENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcykKICAgIDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMgKFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlKQogICAgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYiAocGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcpCiAgICAKICAgIGFuZCBwYXJ0IG9mCiAgICAKICAgIDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIgKEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMpCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyB0aG9zZSByZXZlcnRzLgoKY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDExIDIwOjU3OjM4IDIwMTIgKzAxMDAKCiAgICBBbGxvdyBtYWtlIHRlc3Qgd2hlcmUgdGhlIHNvdXJjZSBwYXRoIGNvbnRhaW5zIHRoZSBzdHJpbmcgTmV0LVNOTVAgdG8gc3VjY2VlZC4KCmNvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE1hciA5IDA4OjA0OjU5IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgNAoKY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEzOjA0OjA3IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjQzOjE5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjMzOjAzIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucHJlMQoKY29tbWl0IDBlZjM0ZTY1MTlkZmNiODJjOTdkZjg0Mjc1NDdjMDhkY2Y4MWU2OWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA4IDEwOjExOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgc25tcGQgJy1kJyBvcHRpb24uCiAgICAKICAgIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgoKY29tbWl0IDhlNjk3NDJmMTQzZTRmYzExMTk2ZTViMmVkNjZjOGY3ZjUzZmQwMmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjIxIDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKCmNvbW1pdCBjNGUwMGI4YzNlMTAxMGNkY2FiNWU2YzAyZDYwZDc1ZGY5YzZkY2YyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDowNSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAzOTQ5MDEwNGEzYWI1ODIzNWFhY2UyZjlkODcxYzI2NmRjNDQ4NWVlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCgogICAgaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UKCmNvbW1pdCBjZTg1ODMyOTMyY2NkOTE2YzQyMzE5MTE0YzQwODg1YTQ2NmE5ZDBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKCiAgICBNb3JlIGZpeGVzIGZvciBTb2xhcmlzIHNoCgpjb21taXQgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzIGluc3RlYWQgb2YgMC4wLjAuMC4gTWFrZXMgdGVzdCBUMTYwc25tcG5ldHN0YXQgcGFzcyBhZ2Fpbi4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YS4KCmNvbW1pdCA1MTg5MTdlOWYzOWY3YTlkM2MzYmYzYTg2NWU4YWMwZTMwMjZkNjAwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgMjY1MTkwOWNjY2VhYmZjZmFkYWY5NDJjMDI0NTBlMjhmZTgzN2RjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgOSAxMjowNDowNCAyMDEwICswMDAwCgogICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU0MWYxMTVlNDAzMDRjOTQxYmExN2Q2N2UyNDcxMDcyMmQ5MDc0MWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTM6Mzk6MTcgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtdyBhbmQgLXEgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2UuCgpjb21taXQgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzoyMCAyMDEyICswMTAwCgogICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiBSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSBpZiBpdCBpc24ndCBuZWVkZWQuCgpjb21taXQgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAwOToyMjozMSAyMDEyICswMTAwCgogICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlIG9wdGlvbnMuCgpjb21taXQgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzozOSAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA0NGFhMjY1ODkxY2Q1NjNmN2Y0MTE0ZWYyNWRjZjdhYWYzYjE0ZTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgZGFlNGUxNmJlODYxMTc4NjFmNjNkMWEyZjk4MWFkMzYxNDE4ZjVjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDI4ZjYyMjZmMmUyMjhiOGNhMjQ4NDg5NzM1Zjg2NTAyYjJjY2UwYTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0MDAyMmE2OTc5NTgyNTljY2ZiYjNmZWQ0NGViM2M0NzJmNWU4MzdlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1hciA0IDEwOjM3OjQxIDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIHNoIGRvZXMgbm90IHVuZGVyc3RhbmQgInRlc3QgLWUiCgpjb21taXQgNzczYWYwYzQyZTA3N2JlYmRhZWNmMWMwY2FmMzkzMjg1YTc2ODhmMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNzoxOTozMCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgbnNyb2xsdXAgY29tcGxpY2F0aW9ucwoKY29tbWl0IGVlNzEwNDljM2UyMWMxZDBlMzQyNDI5NzEzNjY1MmJiZTBlMzlkODUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTY6NDk6NDEgMjAxMiArMDEwMAoKICAgIG1pYmdyb3VwL2ljbXAuYzogYWRqdXN0IGlmZGVmcyB0byBtYWtlIGl0IGNvbXBpbGUgb24gQlNEJ3MKCmNvbW1pdCBjZTk2MDAzNjFlNjY1ZGRlMTdhZjlkOGFiMTZkN2NlODVkYzA1NjQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM5OjU1IDIwMTIgKzAxMDAKCiAgICBkb3QzU3RhdHNUYWJsZSBoYXMgYnVncyA6LSgKCmNvbW1pdCBkZmZhY2Y2ZmEwNzU1ZTE3MDBjYmFjMjViODQ0MTg1YWJkODA3YTBhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM4OjEwIDIwMTIgKzAxMDAKCiAgICBwYXNzcGVyc2lzdCB0ZXN0IG5lZWRzIC91c3IvYmluL3BlcmwKCmNvbW1pdCA4NzI2OTk1YzdhOGFlZjY3NGM0ZjE2NGIxODcxYzM3YmJkY2RhZDUwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM2OjU4IDIwMTIgKzAxMDAKCiAgICBncmVwIC13IGZhaWxzIHdpdGggT3BlbkJTRCBhbmQgU29sYXJpcyAxMC02NAoKY29tbWl0IDFlYjQ3NDViMjNjYzNhODM5ODY0ZTdmNmVhMjgzNTViMDU2NmViNjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzU6NDkgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgL3Vzci94cGc0L2Jpbi9ncmVwIHRvIHVuZGVyc3RhbmQgLXEKCmNvbW1pdCA5OTU0YjRiNzQxZmQ4YzYzZDYxMjhiZDA1MjcyOThjOGU0ZTk4OWZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM0OjQ1IDIwMTIgKzAxMDAKCiAgICBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcHJvcGVyIHNyY2RpciBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKCmNvbW1pdCA3ODM2OTAwMmJlMjcxMWYwYWE4NzZiNjRhNGUxMGIwOTBjYzI0MWNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjMzOjMxIDIwMTIgKzAxMDAKCiAgICBOb3QgYWxsIG1ha2UgdmVyc2lvbnMgZGVmaW5lICQoUk0pCgpjb21taXQgOTQyNDViMjlhM2NkYTg5NDc1YzZlYWI1ZDk0OTNjNjY1N2ZmMzhlMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToyNDoyNCAyMDEyICswMTAwCgogICAgTWFrZSBhdXRvY29uZiAyLjY4IGhhcHB5Cgpjb21taXQgNDRhY2Q2YzI4NWZiNTYxNGI0Yzk2MTFiMWFiZGVjYTlkZDI4ZTRiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToxMjo0NyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIG9mIG1pYiBtb2R1bGUgZnN5c19nZXRmc3N0YXRzCgpjb21taXQgMWZhMWZlZTM2OTNmNjdiODIwMjIzODA2YjNkNzNhZmQ0YzUwZWMxOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMiAwMTozNzoyMCAyMDEyICswMTAwCgogICAgU2lsZW5jZSBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgOTMyNjNiOThhNWRiMzQ0Y2YyYzRkNDg5YzQzOTcxZTdiMjljZGIwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTM6Mzc6MjAgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNWExNzU0MjhiOTczZDJlYTg1NTNlMjlmZWNmOTRjZjE1NjZhYTg1OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDg6MTggMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMzY0Mjc2YTFjNWFhNjZjYWEyM2ViNWI3ZjExMWZkZWI1YWY3MWZhNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDU6MTAgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNzM1OTgzNDAxNzJlZmY3NTcyOWE2ZDU3MTkyYjgxNzFkNWJiZjAwZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6NTYgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucHJlMQoKY29tbWl0IGYzMjE0NDAyNjcyY2ExOTlmZDUzMWU2NjEyMmJmOTZjNGQ5YTRlYjcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjM5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDJlNzRhY2I2ZjE5ZTQ3MjljZWRlMGFiNDNlOTMxOTYxY2IyM2FhZWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDk6MTg6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBEbyBub3QgaW5zdGFsbCB0aGUgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIHRoYXQgd2VyZSByZW1vdmVkIGluIDUuNwoKY29tbWl0IGI3MTA5NjQ2Yjk1YTcwNzEzZDFhZDk5MWQ0MWJjY2Q1N2MwYmIzZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDg6NDg6NDggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyBpbnRyb2R1Y2VkIGluIDUuNgoKY29tbWl0IDQzMmNiYjdhNTUwMWFiOTBkNjZkMGE4M2U3MzFlNzM0M2JjMDRiMzcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRmViIDI1IDEwOjEzOjE1IDIwMTIgKzAxMDAKCiAgICBDb3JyZWN0IHR5cG9zCgpjb21taXQgNmE2YzliYmM3NTg0ZjE5NmExMTg1Y2MxOTM1MjA0ZjEyMDY4MTFlZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBGZWIgMjkgMDg6NTU6MzUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycwoKY29tbWl0IGQ1MTVlMmE2ZTRjMmExYzRkODQ3MzRjYzdiMmQwYjJmYzVhODk0YWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1NjoyMSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0ODc5MTk6IEZpeCBjb21waWxhdGlvbiB3aGVuIGNhY2hpbmcgaXMgZGlzYWJsZWQKCmNvbW1pdCBhZjgzNjhlZDg4OThhNzhkMDg2OGI0N2FmNDZiYzlkYjA3ZDFjNzY0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTA6NTYgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0MTQ3NzM6IEVuY29kZSBpbnRlZ2VyIHZhbHVlIHVzaW5nIEFTTl9JTlRFR0VSCgpjb21taXQgMTllMjcxNTgwN2ZlMDZmZDBiYWVkZjg4MTY1MDExYWVlOTMzZTc1NQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE0OjA1OjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVR1M6IDM0OTA3MDg6IENsYXJpZnkgdXNlIG9mIGNvbW1vbiBjb21tYW5kLWxpbmUgb3B0aW9ucwoKY29tbWl0IDY1Zjc5NjJmOTMyYzliNzVjNWJiYmIwNDdkMWUyNmFlNjA5NzhlNTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMjoyMzozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0ODk2MzE6IEZpeCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIG1vbml0b3JpbmcgZmxhZwoKY29tbWl0IGFjMTY2MDUxYjZhMDkyZGQ0YTU5NDMyNmVjODVlMmY2OTliNjI1NDcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMTo1Nzo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQlVHUzogMzQ3NDU5MDogRG9uJ3QgbWF0Y2ggdW5kZXJzY29yZXMgd2l0aGluIHRoZSBzb3VyY2Ugcm9vdCBmaWxlbmFtZQoKY29tbWl0IDg3OWJmNzA3OWQzNGZhNDZmNmZjZjU0YTAxYzg1MDBiZWFlY2U1OWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDo0NDo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0NjAzNjQ6IEZpeCB1c2Ugb2YgYmxvY2sgZmFjdG9yIHdoZW4gZGV0ZWN0aW5nIGVycm9yIGNvbmRpdGlvbnMKCmNvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MjI6MjAgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB1c2luZyAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MDM6MjUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1NDE2ODogY29uZmlndXJlOiBGaXggYnVpbGRpbmcgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMDk6Mjc6MTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIGJhYnktc3RlcHMgd2hlbiBjb21waWxlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydC4KICAgIEluc3BpcmVkIGJ5IGJ1ZyAjMzQ1NDE2OAoKY29tbWl0IGVjNmEyMzAzMGU1YTIwNzJjMTljMThjMWQ5YzEyNDM4N2RhNTZiN2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDI3IDE4OjQyOjU4IDIwMTIgKzAwMDAKCiAgICBBZGQgLWxydCB0byBORVRTTk1QTElCUyBzdWNoIHRoYXQgY2xvY2tfZ2V0dGltZSgpIGNhbiBiZSBmb3VuZAoKY29tbWl0IGYxMzMyMDUwMDI5NGJiMjQwZjYzYzZkZDdkMmU5YTIyMDhlYjc0MGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNjo1Mjo1MSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb21waWxlZCB1c2luZyAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6NTQ6NDUgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydCAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgMDFjOTMwZWRjYzI1NzAwZDZiNWZiMDM3NmY1NWEyNjQyNWUxM2ZiMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjE3OjIyIDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCA5NDg0ZDgzMjAzYzRlMmQ4MjA0MTZiZTY2NWZhODMzYWE3MDQ0NGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAyNCAxNDowMDozMiAyMDEyICswMTAwCgogICAgUmV3b3JrIGNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzLgoKY29tbWl0IDJiN2YxMzQ5NTIyODYzNWQ4MTZlNThiMjE3NGRjMTI0ZGQwY2YzOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI0IDA3OjQzOjIyIDIwMTIgLTA4MDAKCiAgICBzZXQgTUVSR0VfQVVUT0VESVQgYmVmb3JlIG1lcmdpbmcgdG8gYXZvaWQgdGhlIGZ1dHVyZSBnaXQgMS43LjEwIGZvcmNlZCBtc2cKCmNvbW1pdCBlMWI5MTBiMGJlOTM0MzU4NmFlOWVkYmE2ZjQ2MDQwYWYzMTVmY2RkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDoyNzo1NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGluaXRfYWdlbnQoKSArIGluaXRfa21lbSgpOiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW5zdGVhZCBvZiBpbnZva2luZyBleGl0KCkgaWYgYWNjZXNzIHRvIGtlcm5lbCB2aXJ0dWFsIG1lbW9yeSBpcyBkZW5pZWQKCmNvbW1pdCA0NjNlZWQyMTIwZjlkMTkxYmMyMjY3MzQ5NmE0OWU4MTc0NjY0ZTRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDowMzozMSAyMDEyICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAoKY29tbWl0IGMzNmFiNzFhNGUwOTZmMTZjYzVhNTU1MzNmMDgwYzlhOTQwMDk5MTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA4OjUzOjU2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCgpjb21taXQgZWRlYmRkYmE5MzBmOGIxNDcyZmEwYmQyMGZjNDEzZWY4Y2Y0NjRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTE6MzE6NDYgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvUlVOVEVTVFM6IEZpeCBhIGJhc2hpc20KCmNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNjo1ODo0NyAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0ICVsZCB2ZXJzdXMgdGltZV90IG9uIHN5c3RlbXMgd2hlcmUgdGltZV90IGlzIGEgc3lub255bSBmb3IgbG9uZyBsb25nIGluc3RlYWQgb2YgbG9uZy4KCmNvbW1pdCBkODk3OGVjYzgyMTFiZTdjMWU3OTA1ZjFlMjE1YmIwNmRlZDI2NmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMjozMjoyNSAyMDEyICswMTAwCgogICAgRml4IHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jIGZpbGUgaGVhZGVyCgpjb21taXQgYWE3NjZkMTk2ZTUyODdmNmNhNzliNThhMzQ1YjAyNDI2MGFiYTM1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTc6MDc6MTMgMjAxMiArMDEwMAoKICAgIElGLU1JQjogZG8gbm90IHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yICg+PiAzMiBvZiBhIDMyLWJpdCB2YXJpYWJsZSkgd2hlbiB1cGRhdGluZyBhIGNvdW50ZXIgYW5kIGlmaV9pcGFja2V0cyBpcyBhIDMyLWJpdCB2YXJpYWJsZQoKY29tbWl0IGMzZmI2ZGQ5ZTZiOTllOTU0MjQ5MzE4ODk4Nzg3MWZjNTAxN2NiM2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA5OjQ1OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIG9uIHN5c3RlbXMgd2hlcmUgbW9kZV90IGlzIHVuc2lnbmVkCgpjb21taXQgZjhhM2VmMGQzZDRlNTMwMjc5OTAwMTAxMDQ5YjhkZTk4YTQ0YTZmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0ODo1MiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYiArIHNubXBkICsgc25tcHdhbGs6IEF2b2lkIHRoYXQgc3lzdGVtIGNsb2NrIGNoYW5nZXMgKGUuZy4gYnkgbnRwZCkgYWZmZWN0IGNvZGUgdGhhdCBuZWVkcyByZWxhdGl2ZSB0aW1lCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzdXJlIHRoYXQgdGhlIHJhbmdlIG9mIHRoZSBTTk1QdjMgdmFyaWFibGUgc25tcEVuZ2luZVRpbWUgaXMgMC4uMjE0NzQ4MzY0NyBvbiBhbGwgc3VwcG9ydGVkIHN5c3RlbXMgaW5zdGVhZCBvZiAwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soKSwgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigpLCBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKICAgIENIQU5HRVM6IHNubXBsaWI6IERlcHJlY2F0ZSBhdGltZV9kaWZmKCksIGF0aW1lX25ld01hcmtlcigpLCBhdGltZV9yZWFkeSgpLCBhdGltZV9zZXRNYXJrZXIoKSwgbWFya2VyX3R0aWNrcygpLCBuZXRzbm1wX21hcmtlcl91cHRpbWUoKSwgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpLCB0aW1ldmFsX3R0aWNrcygpLCB1YXRpbWVfZGlmZigpLCB1YXRpbWVfaGRpZmYoKSBhbmQgdWF0aW1lX3JlYWR5KCkuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBzdHJ1Y3QgdGltZXZhbCBtZW1iZXJzIG9mIGRhdGEgc3RydWN0dXJlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSBhIHdhbGwgY2xvY2sgdGltZSBidXQgdGhhdCBkbyBub3cgY29udGFpbiBhIG1vbm90b25pYyBjbG9jayB2YWx1ZQoKY29tbWl0IGMxOTc2MGYzMzMzYzkyZmFjNWQ1MGU5NzY4Y2RmOTM5MjE4YmM0ODcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDE1IDA5OjQ1OjAzIDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXB2My5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCBhNmRiMjM5OTQ1ZTE5NWRlNWE5MGZhMTgzNzAwYjI3YTZlY2IyOGQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiA3IDAwOjExOjE0IDIwMTIgKzAxMDAKCiAgICBGaXggcG9zc2libGUgbWVtb3J5IGxlYWsgZnJvbSByZWNlbnQgZGVjbGFyYXRpb25zIHBhdGNoCgpjb21taXQgMGZiYmI5YTllMjkwNmE3YWY5NTY5NTcwNjFkNDg1ODc0NDYyYWVhOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo0MzowNCAyMDEyICswMTAwCgogICAgRG8gbm90IG1peCBkZWNsYXJhdGlvbnMgYW5kIHN0YXRlbWVudHMKCmNvbW1pdCBmMzA4ZDViYWZiMDVkNzhlZDQwMzBjNGVjZmYzMjRiNmNiZGE2ODBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDZmMGZjMWI3ZmMyNmEyMjU3NjNiYzY1Y2NhNTIwYTFjNTlmMDI1MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo1NDozMiAyMDEyICswMTAwCgogICAgc2VuZG1zZyBkb2VzIG5vdCBsaWtlIElQX1NFTkRTUkNBRERSIGlmIGFkZHIgaXMgSU5BRERSX0FOWQoKY29tbWl0IGRlYmFjNDk4ZmU4NDEwMTEwMTA3YTJmZTY0ZjhhZmI3NDhlZGFhMDcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDE2OjQ4OjA5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhZGRlZCBPQ0ZTMiAoT3JhY2xlIENsdXN0ZXIgRlMpIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUKCmNvbW1pdCBmYWZjOTljZDg5ZTczZWM3ZTAwYmY3MzYwZDBiNGZhNjE5NDRhNGY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE4OjM0IDIwMTIgKzAxMDAKCiAgICBTaW1wbGlmeSBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQoKY29tbWl0IDdhZjIwMTNkZThiZjFiMzc5YzA3NmRiNGUxMDQ1MDhlMTc4NzRkM2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTU6NTggMjAxMiArMDEwMAoKICAgIEZpeCBvcmRlciBvZiBmZWF0dXJlICNpZm5kZWYgYW5kIERveHlnZW4gY29tbWVudCBibG9jawoKY29tbWl0IGJiZDY3ZjYzNTMwZjVlZjBiZmM5NDhmYzU4ZGZlNmE5M2Y4Zjg2NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0MmE2NmFlZmYyNWI5ZTllZjYzNWE0MDRhZDJmNTIxMmY5ZThjZjBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ3OjU0IDIwMTIgKzAxMDAKCiAgICBSZW5hbWUgdHdvIGZ1bmN0aW9uIGFyZ3VtZW50cwoKY29tbWl0IDNmZTcyYjNiOTliN2U0YjJiOTgyMzYzZGZjNGYyZDhkMTNmNDA1OTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTM6NDk6MjIgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc25tcF9zZWxlY3RfaW5mbygpIGRvY3VtZW50YXRpb24gdG8gRG94eWdlbiBmb3JtYXQKCmNvbW1pdCBlOWRiMjY2YWU0OGQwNWE3YTZjYjVkNzFiNGJkZWE3YWQ4MDhlZjVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE3OjU3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X25leHRfYWxhcm1fdGltZSgpCgpjb21taXQgZDA4MDQ0Y2I5ZTU3MDJmYmY1NDllMTQ0MjVmNDI3OTQyNTlkOGEyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAwOTozODowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKCmNvbW1pdCBhMDVjMjdjMjcxMWNiNDE1ODJhM2I0YzMxZTM4YjBlOTM1MzBiNjJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjUxOjMzIDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50Cgpjb21taXQgOTEwZDdiMGQ5OTE4MzYwOWI5NTI5YjA0YzNmMjkzMzBlYjY2MTAyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDozODoxMiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCkgYnkgbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkKCmNvbW1pdCA0M2E4M2Y2YzZhOTZjYzIzMTZiNzBlZWNhY2YxMjdlYjY5MTNjN2E3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE5OjE1IDIwMTIgKzAxMDAKCiAgICBVc2UgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaW5zdGVhZCBvZiBtZW1jcHkoKSBmb3IgY29weWluZyBzdHJ1Y3QgdGltZXZhbAoKY29tbWl0IDJmZTU3OWVmYjFjYjNhNzRmODI4MDNjYTMyMzkyOGY2YjhlNGI1YzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTQ6MDQ6MDIgMjAxMiArMDEwMAoKICAgIE1ha2UgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jIGJ1aWxkIGFnYWluIG9uIG5vbi1MaW51eCBzeXN0ZW1zLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZS4KCmNvbW1pdCA4ODFkZTZhYjczNTUyNzdhNWMxMTZhMDA4ZmJlNTEzMjkzYjA1MDM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDEwOjA4OjIxIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBSbW9uIE1JQiBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IDQ2Mjk5MzNjMGQzYjNmOWY0YmE1ODM1MzRmNzlhMzdmYjk2MzM4MTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMjA6MDU6MzEgMjAxMiArMDAwMAoKICAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGU5YjVhM2RlZTZmOWFmYWI4YjkwYTI5MzkyMDQwNjMyYjA3NWFkN2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTY6NTY6NTUgMjAxMiArMDEwMAoKICAgIFVzZSBTTk1QX01JTigpIGluc3RlYWQgb2YgbWluKCkKCmNvbW1pdCBhZTQ1MmM3N2I0MTExMzlkNmI1ODAwZmZjZjg4ZDQ4ZTliNDc5MmE4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjIzOjM4IDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IGM3ZDExZmEwMGY5OTk1ZGRiOWZlM2Q0OTk0YTNlOTc5MGRhMmUxODkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MTg6NDAgMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcgcGFydGlhbGx5LgoKY29tbWl0IDAwZmQ2MjcyMGVjNDU0ZjVhNjkwZGU0ZmViYTA4MjIzY2ZiMmMzZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDg6NDQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogQXZvaWQgY3Jhc2ggZHVyaW5nIHNodXRkb3duIGR1ZSB0byBpbnZva2luZyBwZXJsX2Rlc3RydWN0KE5VTEwpCgpjb21taXQgZDllMjI5ZDgxYWJlYWYxOTFlZjJjY2IwNzc4NDI4ODVjMjMwZDYyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0Nzo0MSAyMDEyICswMTAwCgogICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgZGVjbGFyYXRpb24KCmNvbW1pdCAxZTJlMmFmNmNhZTgzMGYzODFlODdhMjQ0ZDAyOWViODZiZjNmY2NlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEzOjIwOjM3IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbDogQWRkIGVycm9yIGNoZWNraW5nCgpjb21taXQgMjQxYTE0MWUzMWYxNjg0ZmM2Y2Y3MGNjNGEwMGNjZTYzNmZkMzUyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToyODozNyAyMDEyICswMTAwCgogICAgTWFrZSBjb25maWd1cmUtdGltZSBFVlBfTURfQ1RYX2NyZWF0ZSgpIGRldGVjdGlvbiB3b3JrIG9uIHRoZSA1LjQgYnJhbmNoLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MC4KCmNvbW1pdCA2ZDlkMTRmZWFhYTJkMGZlYzY4YjRkMTU4OTQ0ZDMyY2IwNGZmMWJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjEyOjAwIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCBicmVhayB0aGUgYnVpbGQgb24gdGhlIDUuNCBicmFuY2ggZnJvbSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCA4YWJlNDllMzBjOTdjODk4M2U4M2I0NWEzNWM3MTZmZTkxZjY2YmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxIDExOjU2OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiB0aGUgRElTTUFOIE1JQiBpbXBsZW1lbnRhdGlvbnMuCgpjb21taXQgZjlmYjBhNTMzMzc1ZTE0ZGMzNzAwMjVhMGIyZmJjNzYxYmYyN2JlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAwOTo1NjowMiAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmciIGJlY2F1c2UgaXQncyB3cm9uZy4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzLgoKY29tbWl0IGNhNGE0ZmUyNWVmZDI3MTRmOGYxOTYxYjk3ODU2NjE2NTYzZjQyYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTA6MjE6NDkgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBweXRob24vYnVpbGQKCmNvbW1pdCAxM2FkYTU2NTU4YjQ0ZTI4ZDEzNTVjMGRjZTFkOTIxZjM3NDZkNTQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NTM6NDkgMjAxMiArMDEwMAoKICAgIFJldmVydCAiUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIiAtIHRoZXJlICppcyogTkVUU05NUF9QUklvIGluIFY1LTYrIGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZC4KCmNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDJmYjk5YmU5YWE4NmE2Y2EzNDliODZkNGVmOGJjNzI2ZWQ5ZjJhODIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1ODozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgZTVjMzU1ODllMGJmNDE2YmZkMDM2YmQ0NjhmNDJhYWVhYjI1ZTc4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU1OjU2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTE6MjYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVycm9yIGhhbmRsaW5nIGluIGluaXRfaWNtcCgpLgoKY29tbWl0IGMzMDM1NDlhNTlmYThjMmYyMGE5ZDhiZjFlOTg1ZmJjOGFiZGU2YTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo0NjoyOSAyMDEyICswMTAwCgogICAgUmV3b3JrZWQgX3JlZ2lzdGVyX2V4dGVuZCgpIGVycm9yIGhhbmRsaW5nLgoKY29tbWl0IDljMjBlMjdhNzAyNmZjMDMwZGEzYjMyOGI5YTJlMWI0ZjM2NjcwY2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMToyOCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMjJmZDBiZmMyZGYwZTFmNjAyMGRjM2M1MGE3NTNkZGYyOGE0NTk5YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIwOjIyIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA1ZDYxZTU3YmFmNTgwYzc4MjUyYzBhYmIwMDk4YzA3YmIwNWFmMTdjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MTc6MDUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNjM2VlYWU4MGQ3OTZmMjc1OTdjOTAxZTdmZjIwNDZjNzY5ZWY0YjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowODowOSAyMDEyICswMTAwCgogICAgTWFyayByb3dyZXFfY3R4IGFzIGZyZWVkIHNvIG5leHQgaXRlcmF0aW9uIGFsbG9jYXRlcyBuZXcgb25lIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgZnJlZWQgb25lLgoKY29tbWl0IGFmOWFiZDUzYzIzMzdjOTBhNjkxYTdiMDQ0ZmYzZjk3YzEwMDMxNjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNToxMCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgY2Y5NDY1ZjU0MTgxZTYyZTIxYTliMTAyMTkxMzExMDdhM2QyZWJmNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA0OjA2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3ODcxZjJiMDliOGI1MmYzNGE5ZTU3Nzg0MjY2NDU5MDUzMTY1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDI6NTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDdhMzdmMzNkMzEwYzk1OTg2MDdiYzMyM2Q5YmRiZjkxYWFmNzJjOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMDo1MSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2U0NWY3MDI2MjQ5ZTQ1MzUwZWRhYWM4NTMzNzQyM2FhMGU5NWQ4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCA2MTkzNjc2MmU2NDFjMThkYjc1YWE1MTI1YTMzZTc3NmM2NzdhZGM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MTM6MzkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGZyZWVpbmcgcmVnaW5mbyB0d2ljZSBvbiBlcnJvciBpbiBhIHRlbXBsYXRlIGFuZCBhbGwgaXRzIGluc3RhbmNlcy4KCmNvbW1pdCA0OTY0Mzc0MzA0MTVmYmFmZWIxY2NkNDc3NGYxY2EwMGQ2MjdlYTFmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAxMTowNDoxMyAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzIGludHJvZHVjZWQgb24gVjUuNiBicmFuY2gKCmNvbW1pdCA1YjRhMjRjZGNlZTFiYzNkODI2MzNjY2FmZWI5NmZjZTk1MzQ5YzU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMjoyNyAyMDEyICswMTAwCgogICAgdW5pdCB0ZXN0czogZml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCBjYmYxYzkxYmFmNzE5MWJlNWZhMjdkODFiY2Y4NzE0MzMxYTJjMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDo0MiAyMDEyICswMTAwCgogICAgVXNlIHNubXBUYXJnZXRQYXJhbVRhYmxlX2Rpc3Bvc2UoKSB0byBmcmVlIGEgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0LgogICAgCiAgICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmLgoKY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjMxIDIwMTIgKzAxMDAKCiAgICBIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAzYTc2YjQzZTExZmZmYWRhNjMyZmNjYjg0OGFiNTAwZTg3NmFkNDhiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNjoyMTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBBdm9pZCB0aGF0IGFuIFNOTVAgc2V0IHdpdGggVXNlRW51bXMgZW5hYmxlZCBjYXVzZXMgYSBzZWdtZW50YXRpb24gZmF1bHQKCmNvbW1pdCA4NGRlYzlmYTkyYjBhYTJkNThlYjcwMjAzMzBmNGY5OGU1MTU0MzIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDozODoyMSAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IG1vc3QgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCAzOGNmMjE4YzNmMWE3Mjc3ODZlMjI3YTVkM2ZiMTg2ZmQwZjFhMTVmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6NTA6MTMgMjAxMiArMDEwMAoKICAgIEZpeCBhIHR5cG8KCmNvbW1pdCA0NTQxMjIyNDQxMjJiZmRiNmY2N2NhYjMxMjU2ZDdiNDYzNzJlOWUxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MzA6MTggMjAxMiArMDEwMAoKICAgIEZyZWUgdG1TdGF0ZVJlZiBvbiBlcnJvcnMuCgpjb21taXQgMDExOTAyMmRhYTU5YzczYmZlYzBkYTIzODZkMDYyOGYxNGU2ZGFiNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIGZpbmdlcnByaW50IHdoZW4gaXQncyBub3QgbmVlZGVkLgoKY29tbWl0IDBlODRjZDMwM2EwODI2N2RlYzc4ZjZkODFjOWJiMDdlM2Q4M2ExMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0ODoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDYzZGM4NDZhNzk0OWNlNjk3YjNlMjhjNTQzZGMxMTA1ZTYzYTIyNTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowODoyOCAyMDEyICswMTAwCgogICAgRnJlZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludC4KCmNvbW1pdCBjZTFmMjg0YTYzZWI4MTY0NGIzZTMyNjA2Y2JlMzliNjdlMWRmZjJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6Mzc6MDkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3ZTIxNDEzY2E2ZjJlZmQ3YTNhZmI2MmM2MmI2NDQ4ODFiOGJkMWU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDY6MzAgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGFsbG9jYXRlIGFuZCBmcmVlIGVuZ2luZUlELgoKY29tbWl0IDM0Yzk2Mjg4MjYwN2MzNjM4YTJmYTI1YTJhYzUzMTQ5MmQ3MWM3ODcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzozNzoyNSAyMDEyICswMTAwCgogICAgRnJlZSBsb2NhbGx5IGFsbG9jYXRlZCB0bVN0YXRlUmVmLgoKY29tbWl0IGY1N2FlNTMxZGM1NjU4YWJjZDY1YjE2Mjc2MTU1MjUyMzhkMTZkMmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoyMDoyNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDUzNmJjNTc1NTZjMzE0MTU2MWVhNGExOTQ4MTBiMTYyOTBhNjkxZWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoxNTo0NyAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nLgoKY29tbWl0IGEwNzc3ZDMwN2RiY2FmMjE5ZWUwMTg0YTBmYmFiOWQ0ZTVkNmFhMGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowMTo0NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDhiOTdhNzFjOGU3OTU5NDI4ZWI0ZDRlOGQ5MGU5MDk2ZDQzZmYwOWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1NzoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJjMTUwN2MyMjAzMDU0OWFlNjYwYzBlMjExZmJkYzVjNzVlYzVjNTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1Mzo0NyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDY1ZjJiN2JjZDRmZTAzOTA2YWExYTExNWFiNjBhODliOGFlOTMzZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1MTozNiAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlcyBvbiBlcnJvci4KCmNvbW1pdCAwZTUyZTRmNjZkNDQ3NjZiZWEzNzQ3MzU1NmM3OGU1MjE5Yjk1NDYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDU6MzMgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDI6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3NDhkYTg0YjFmZDY1NGUzMzhiYzcwMWU4ZjllNWRhMjI5MTg3ZjFjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MzI6MDQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBlYjIxNzE0NmZkNTQwMzZlYTQyMDJiZmVmNzhiYmY3NzRkN2UzODJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MjM6MTAgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA5YmEzOGVlYzY2MTM4ZWMxZjYxM2VhOGQwNGUxNTgxMzBjNzEyMWJjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTg6NTUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkOWQ5MzhkMzAxOGMyN2Y1MzI3N2JjNWU1OTU3ODUwMDQ5MGMxZDA5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTY6MzggMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZSBvbiBlcnJvci4KCmNvbW1pdCBkNWU4MTdkNWJkNTE4ZDlhYzZhMGQ2MGUwZTE0MWRkNjRmMjdhZDE5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTQ6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYWU2OGYwNTlkZjlkNzRiMDc0ZDEyZjU5YzE4NDc0NjZlZDU3NmNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MDM6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBhMDBmM2Q0NjExMjFiNTQ1YWVkNzJhYzEyYjI0Mzg3OTFkY2ZjNGJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6NTg6MzkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1OTg4NGJiNGQzNWFkMTM3NDdmZmE2NzIzNDM2ZGNhNTg3YTlhYjc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDk6MTIgMjAxMiArMDEwMAoKICAgIEluIGFib3ZlIGNvZGUsIG9sZW5ndGggaXMgY2hlY2tlZCwgc28gbGV0J3MgY2hlY2sgaXQgYWxzbyBoZXJlLgoKY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowNToxNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGRhMmQ2YTcwMjhhMTNiOWVkZjNhNWM4NDMxNGQwZjFmZWVmNzY3MTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjo0NDo1NiAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZjg4MDU0YTliNjliNmRlMjc0ZjdhMTRhNTliNDczMjNlNWU0ZTRjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjM3OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBjb250ZXh0IGlmIGl0J3MgTlVMTC4KCmNvbW1pdCA3YzRkNDU5ZThmMWY2NTJjYzIwOThjM2Q0YzgxZGU5MGE4NGVkNzEwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MzA6MDkgMjAxMiArMDEwMAoKICAgIERvbid0IGRlZmVyZW5jZSBOVUxMLgoKY29tbWl0IGZjMTliN2YzM2I1ODc5MjdkMmEwMWU3MmQyM2QyMWI5YjE2OTZhYjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoyNToyNiAyMDEyICswMTAwCgogICAgRG9uJ3QgY2xvc2UgTlVMTCBmaWxlLgoKY29tbWl0IDVlOTVjYTY3OTAwNzZiNzg4MDcyYTgwMWVlN2M4Mjk2OWQ5OTViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxNzowOSAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwgd2hlbiBhIHRyYW5zcG9ydCBkb2VzIG5vdCBoYXZlIGZfZm10YWRkci4KCmNvbW1pdCBlZWQ2ZjVmOWI5YWU1NGQyY2VhYjY3YWQ4NWFkZGUxZjZhOGEyMWQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTM6MTMgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IDQxY2RlNjhiNWZhNGIzOGQ4MTQ1MGNmOTFlMDgyY2RmYTgyNWU3Y2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMDoxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgaWYgYSByZWdpc3RyYXRpb24gd2FzIHJlYWxseSBmb3VuZC4KCmNvbW1pdCA1YjcyYTQwODUzODc2YTE4NmVmY2MwMDkwYTRlMzJjMjM1YjljMDVmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MDM6NTggMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgd2hlbiBkaWZmbGVuIGlzIFNNVVhfTUFYX1BSSU9SSVRZICh3aGljaCBpcyBoaWdobHkgdW5saWtlbHksIGJ1dC4uLikKCmNvbW1pdCBmYTZhOTEyZTQxYzVkMGZkMmE2MzY4OTRlODZiNjQyNmMwNzM3NWFiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mzc6NDQgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZhbHVlIGluIHNldEV2ZW50LgoKY29tbWl0IDQxMGI3MWRhNDI1Mzg5ZmVjYzI1ZDE0ZjQ5ZjIzNzUzNTgxNTc2YWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNToyODo0MSAyMDEyICswMTAwCgogICAgRGVyZWZlcmVuY2UgZXJlZyBvbmx5IGlmIGl0IGlzIG5vdCBOVUxMLgoKY29tbWl0IDE4NTI3MmQxYTBiOTEzNzc0MTg2ZjFiOTEzNWFlYWY2MzdlYmVkNTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNToxNzoyMSAyMDEyICswMTAwCgogICAgQXMgcGVyIGFib3ZlIGNvZGUsIHRlbXBsYXRlX3YycGR1IGNhbiBiZSBOVUxMLCBzbyBjaGVjayBpdCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCmNvbW1pdCA0OGU1ZWFkM2ZkMmMyYjM4NWRmNjk3MmM2NzUyNmZmNmJkYzMwNzY4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6NDI6MjIgMjAxMiArMDEwMAoKICAgIFVwZGF0ZWQgbGFzdCBmaXggdG8gbmV3IGVycm9yIHJlcG9ydGluZyBzdHlsZS4KCmNvbW1pdCBmMzNkMzM2MTVkNmQ4NWQwMDczNzI2NDczYzQxNDZjYmNkZjExY2VkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MzA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHNpZ3NlZ3Ygd2hlbiBlbXB0eSBjb25maWcgbGluZSBpcyBwYXJzZWQuCgpjb21taXQgYjVkZjFlZWI0N2VkMzU1OWI2ZjRkOWVjY2NkYjI0MjEyNmU2Yzk5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjExOjU4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCAoaGlnaGx5IHRoZW9yZXRpY2FsKSBzaWdzZWd2IHdoZW4gc3AtPnNlY3VyaXR5RW5naW5lSUQgaXMgTlVMTC4KCmNvbW1pdCA2ZmVlZDYyOWE3MTg5OWMxMTMwOTY5NTlkODU0OWRjMTIwMWU4ZjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6NDM6MzcgMjAxMiArMDEwMAoKICAgIEFkZGVkIE5VTEwgYW5kIGxlbiBjaGVjayBqdXN0IGluIGNhc2Ugc29tZW9uZSBwcm92aWRlcyB2YWx1ZSA9IE5VTEwgYW5kIG5vemVybyBsZW4gKC0+IE5VTEwgaXMgdGhlbiBkZXJlZmVyZW5jZWQpLgoKY29tbWl0IDM1NWM1YWIyNjRhZjJhNjAyMGExZDhhOTIzZjgwZjExYjk0MjI5NWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzozNjo0MSAyMDEyICswMTAwCgogICAgRXh0ZW5kIHRoZSBOVUxMIGNoZWNrLCBpLmUuIHJldHVybiBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHJlbW92ZS4KCmNvbW1pdCBkZGQ3OTQ4YWNhZDkzOGNkNDI5NzQ1MDVkZGNhNGYwMzcyMTE2NzA5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMToxMToyOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHNwYXJ0YSdzIGNvcHlyaWdodAoKY29tbWl0IDQxMjU2MDg2YTdhNTA0MTQ1MzQxOWNmZDZlNTYyYzdiNTVjNTZiMGEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjMyOjA0IDIwMTIgLTA4MDAKCiAgICBwdWxsZWQgZnVsbCBjb3B5IG9mIGV4dHJhY3RuZXdzIGZyb20gbWFzdGVyCgpjb21taXQgNjI1YTcwZGJkZmQ5OTAyZGE3OWVmYTI5M2ZlNmQyYWM4Y2NmMmIyZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MjQ6MTkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSB0byBjaGFuZ2UgdG8gdGhlIG5ld2VyIGxvZyBnZW5lcmF0aW5nL3BhcnNpbmcKCmNvbW1pdCA2MmUzMmIxMzA4OWIyOWVkY2YyNzZmNjE1ZGE2N2U0NTA4ZmU3YmI1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAwOToyOTo0MiAyMDEyIC0wODAwCgogICAgY29uZmxpY3RpbmcgbWVyZ2UgZnJvbSBtYXN0ZXIgZm9yIGV4dHJhY3RuZXdzCgpjb21taXQgNzAwODRkYTYxZDJiY2JkMmNmMWVkODFiZGMzYmY2Nzk0YzJhZmZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMTMgMTE6NDk6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tU0NIRURVTEVSLU1JQjogSGFuZGxlIDMyLWNoYXJhY3RlciBzY2hlZENvbnRleHROYW1lIHZhbHVlcyBjb3JyZWN0bHkuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkLgoKY29tbWl0IDA0YmYzZTI4ODE1OGVlODgwZWRmMjM3ZTQwMDdmZWUzN2QyMDQ0ZGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTozOTozNyAyMDEyICswMTAwCgogICAgRml4ZWQgZW5kbGVzcyBsb29wIHdoZW4gU1NMX3JlYWQgcmV0dXJucyBlcnJvci4KCmNvbW1pdCBjMTUyNmZjY2MwNDc0YzFkYjE4Y2FhOWRiYjgzMzg1M2NkZGRlM2NjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTM6MjEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwby4KCmNvbW1pdCBhMjdhYTE5ZGYyODMxNTZjMDMyYzgxZWFlZTVlMTE1ODU5ZDM4YzE3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTE6MzIgMjAxMiArMDEwMAoKICAgIERvbid0IHJlcGxhY2UgJ3JjJyB2YXJpYWJsZSwgaXQncyB2YWx1ZSBpcyBuZWVkZWQgb3V0c2lkZSB0aGUgbG9vcC4KCmNvbW1pdCA5ODVkZmYyYjA4NzZkOTQ4M2M0MTRmY2NlYTNlZjZiYzYzZTE0NTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDE6MzIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmZkNzgxODMxOGU3YTVkZmU5OGY1MmNjZjc1MGMyYTYzZTgyNWRlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAwOjIyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDE1ZjIxMTMwYmEzM2RjOWFmZDE2NGU1MmRmZDc0YzljZWMwZTkyMzIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDo1ODoxNCAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyYThhOGYyYWI3Y2Q3NTgyNmM1ZDQxZWMzY2ZkNWNlM2U5NjM0Y2YzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6Mzk6MjggMjAxMiArMDEwMAoKICAgIHJlbW92ZSBkZWFkIGNvZGUsICdjcCcgaXMgYWx3YXlzICE9IE5VTEwgaGVyZS4KCmNvbW1pdCAzOGZkNjM3OGNjMzI3NTE4MGY2M2I4ZDliOWE0MDcyYjNkYWJmOGU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MjU6MDYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwby4KCmNvbW1pdCBlYmQ5MmUxOWIxMGMwYTM4ZTE3Y2RlNDA3ODY0YjQ1YzI2ZTE3MzI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MDc6NDMgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgdW5uZWNlc3NhcnkgaWYgKHZhbHVlKSBjaGVjayAtIHZhbHVlIGlzIGNoZWNrZWQgZmV3IGxpbmVzIGJlZm9yZS4KCmNvbW1pdCBjNWNhY2Y1Y2FmOTc5ZDAxOGVhNmNhZTFjMDNiOGZkZjBiMTE4ZGZkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDQ6NDMgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZG91YmxlIGZyZWUoKSwgJ2Rpcm5hbWUnIGlzIGFscmVhZHkgZnJlZWQgaW5zaWRlIHNlX2FkZF9wYWlyX3RvX2xpc3QoKSBpZiBpdCBmYWlscy4KCmNvbW1pdCBhY2RjZWI1MGVhNjZkNmIzMjNjNzRlZTAyMWZiNzdlODEwZTRlN2FmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDM6MTkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgbWVtb3J5IGxlYWsgd2hlbiBtYWxsb2MgZmFpbHMuCgpjb21taXQgMTcwNTNlMzRjZmU5YThhYjM5NWZiNTBmNWMzZjFkYWZjNzI0N2FlYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjMyOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkb3VibGUgZmNsb3NlKCkuCiAgICBMaW51eCBtYW4gcGFnZSBmb3IgZmNsb3NlKDMpIHNheXM6IEluIGVpdGhlciBjYXNlIGFueSBmdXJ0aGVyIGFjY2VzcyAoaW5jbHVkaW5nIGFub3RoZXIgY2FsbCB0byBmY2xvc2UoKSkgdG8gdGhlIHN0cmVhbSByZXN1bHRzIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KCmNvbW1pdCBhNjY0MWVkYjljYjc0ZmMyMjM2YjQyY2U1NTU0ZmMzMzI5OTU2NTUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToyMjozNCAyMDEyICswMTAwCgogICAgTWluR1c6IFNraXAgdGVzdCBUMDY1IGlmIG5vdCBzdGFydGVkIGZyb20gaW5zaWRlIGFuIE1TWVMgc2hlbGwKCmNvbW1pdCBhODgzZWYxOTgyZjMwMWIxNDg1ZDIyNzMwMTY3NDkyNzMzMGY1YjY3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MTQ6NTMgMjAxMiArMDEwMAoKICAgIE1vdmVkIGRlYnVnIG9wdXRwdXQgYmVmb3JlIHJldHVybi4KCmNvbW1pdCA0NTc1MTk2NzI4N2Q5NzY0MGVmZGNkZjhlNzdlOGQ0OTA5MzlkOGViCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxNDoxNzoxOCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJ0b3VsbCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMmMyZmE0ODMzNmE0ZjFmMTc3YzI5OTFkNjUxNWQyOWYzOTUzM2M0NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6NTA6NDQgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDA3YzY2NmY2Y2VhMjdmMmIyYWI5YmMwOGFlZDBjYjYxMzNmZTM3NTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzoxNzo0NSAyMDEyICswMTAwCgogICAgRml4ZWQgY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjE6CiAgICBGaWRleCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDNiNjg2NTY2Mjk2ZGQ4N2JjNDJiN2YxMTY5ZGFhY2RiM2M0NWNjNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDE4IDA2OjI1OjU2IDIwMTAgKzAwMDAKCiAgICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDIDYuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmM2E3ZDFiMDk2MDlkYWQ2NDlmNThiYmRiNWI3ZTEwZDM5YjM5OGMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE9jdCAxNyAxMTowNDowNiAyMDEwICswMDAwCgogICAgRm9sbG93LXVwIGZvciByMTk0NzY6IGZpeGVkIGEgdHlwby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDJkZTczYmQzNjVhMzgxYjljMzUzY2E1MjMwNzY5ZWVmYjFhYzcxZWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDExOjQyOjQyIDIwMTIgKzAxMDAKCiAgICBsb2NhbC9wYXNzdGVzdDogUmVtb3ZlIGFuIGluY29ycmVjdCBQQVRIPSBzdGF0ZW1lbnQKCmNvbW1pdCA2OTk1MTNmMTIzOGUwYWRjZTFmMWNlYzk4ZTBkMTQ3MjkzZmM1MDQ3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE9jdCAxNyAwOToyNTo1MSAyMDEwICswMDAwCgogICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS1yZWxhdGVkIGNsZWFudXAuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2MzU4ZGVlNzJmYjM0N2UyNjAwYTBhN2JkMjFmMjMyNzBkM2EwMGY2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDo1ODoxNSAyMDEyICswMTAwCgogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzogQWRkIGEgY29tbWVudAoKY29tbWl0IDUzOTZiZmUwMzJjOGNiYzczYzhmZjVkNGIwODVlYmFkYTlmNTk4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjMwOjE2IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIHN0cm5jcHkoKS9zdHJuY2F0KCkgYnkgc3RybGNweSgpL3N0cmxjYXQoKQoKY29tbWl0IGZlYjNhZjI4ZGNhZTIyMDE1YWU4NjVhMmU1ZGQ4YzQxNmU5OTkxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjAyOjA4IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIHN0cm5jcHkoKS9zdHJuY2F0KCkgYnkgc3RybGNweSgpL3N0cmxjYXQoKQoKY29tbWl0IGI3ZTFhYTI1NWJhZTRhMzQ1M2Y5ZWNhNjQ0YTg3NjYzNDM1MWYxMWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDIwIDE5OjM2OjI4IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaCB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4gY2hhciogb3IgY29uc3QgY2hhciouCiAgICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0IGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KICAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICogbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgzNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiAgICAJYXBwcy9zbm1wdHJhcGQuYwogICAgCXNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMKICAgIAlzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKICAgIAlzbm1wbGliL3N5c3RlbS5jCgpjb21taXQgZjQ3YTM3NTI4NDlkYjA3NWU2ZjIwNTNiODU5NWI3Yjc5MmZiNjQ2MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBPY3QgMTUgMTA6NTY6MDkgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdCBjb21waWxlci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDJiNjA1NmRmOTVkYThiNjczMDM0ZTM5YzJjN2MzODZlZDBmMzY5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTE6NDQ6NTMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgYTE5ODY1ODMyZmM3N2Y0YzA0ODE0NGQ5MWE0MzFiMWU5NGQzMjlmMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDE0IDIzOjEyOjA1IDIwMDkgKzAwMDAKCiAgICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4gQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3Nzk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDY3YTNlMmVjY2I5NWY5YzlkMDgwOWVmY2JkZGNkODY2ZWUzMDYyZDUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTQ6Mjc6MTUgMjAxMCArMDAwMAoKICAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDNkY2RlMmU4YTU5NWE1MjdmMDYxNDJjM2I4NTJkZTg0MzNhMWNmMjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiAyNCAxNDoyNzo1NSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGMyZTE1MjVhODViZGE1Mjk5YTNiOWYyNDE2MTRmN2U2NTA5YWVlYmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTM6MzU6MTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCAyOTVmNDczYzgzNTQ2MjIxYjJhNzFkODE1YzYxZTMzYTY3Zjk4YWUzOiByZWZpbmUgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBpbXBsZW1lbnRhdGlvbi4KCmNvbW1pdCBjYjQyM2IwYWU5ZWQwMDU5YWExMDBkYzRlMmZkOTNhZDFiOTdmYWY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDExOjU3OjUxIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZTJmYjA5ZTAwOTNlMmY2NDhmZTI2MzhkYTJmM2FmMThmZGIzMmJmMCAtIGludHJvZHVjZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpLgogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvc25tcF9wZXJsLmMKICAgIAlzbm1wbGliL3NubXBfc2VydmljZS5jCgpjb21taXQgYWZjMzk2YWIxNjE4YTg1OTVhMjUxOWZiYzI1ZjdhNDk4ZTE3NDQxMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6NDk6MzQgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgbmV0c25tcF9ta3RlbXAoKSBhbmQgbWFrZV90ZW1wKCkuCiAgICAKICAgIFRoZXNlIHdlcmUgYnJva2VuIGJ5IGNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5LgogICAgQWxzbyByZXBsYWNlIGEgc3RybmNweSgpIGNhbGwgYnkgYSBjYWxsIHRvIHN0cmxjcHkoKSBhbmQgcmVwbGFjZSB0aGUKICAgIG1ha2VfdGVtcGZpbGUoKSBpbXBsZW1lbnRhdGlvbiBieSBhIGNhbGwgdG8gbmV0c25tcF9ta3RlbXAoKS4KCmNvbW1pdCAyMTAxODVjMTVkMGQ2NWYwZWE5OGI1ZTNjMmUwNzc2ZjYyMjJkMTcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODoyNzo0MyAyMDEyICswMTAwCgogICAgRml4IGEgY3Jhc2ggZHVyaW5nIHN0YXJ0dXAgb2Ygc25tcGQgaW50cm9kdWNlZCBieSBjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZC4KICAgIAogICAgQWxzbywgbWFrZSBzdXJlIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgY29weSBvZiB0aGUgY2xlYW51cCBjb2RlIGluIGZ1bmN0aW9uCiAgICBta2RpcmhpZXIoKS4KCmNvbW1pdCA4YmI0ZTg2YWJjZjk4ZmYyODc0OGFmMGFmODljOThlNjRkNWNkOTYxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEphbiAxMSAwNzo0NzoxMiAyMDEyICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgb2xkbWFzayB2YXJpYWJsZS4KCmNvbW1pdCA2NjgwMTQ3YjEzOGVjMTE0ZjgxYzVkMTI4YWM5MzUwYzg0NTBkMDgxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxODo0NDozMSAyMDEyICswMDAwCgogICAgTWFrZSB0ZXN0IFQwMTVpbnQ2NF9jbGliIHBhc3Mgb24gNjQtYml0IHN5c3RlbXMKCmNvbW1pdCAzYWFkMTVhZTU2MGFjODU3ZTczYzkwNzY0ZTkwM2U3Y2EwMmIzMjk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6NDA6NTkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBmb3IgbGFyZ2UgT0lEIG5hbWVzCgpjb21taXQgZmJhMTg4ZWU4MjAxMGIyZjJkOGNhMmU0MjZiYTY1NDQ5OWFiM2QwYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjMxOjMzIDIwMTIgKzAxMDAKCiAgICBmaXhlZCBidWZmZXIgb3ZlcmZsb3cgaW4gX19jb25jYXRfb2lkX3N0cgoKY29tbWl0IDIxZDI1ZDg2YjhlNDkwNGQ3OThkYzhjOTZkYWRlOWU1MDQ4NDU3YTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNToyNjowNyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gcGFyc2luZyBwb3J0IG51bWJlcnMuCgpjb21taXQgZDM2OTMxODQxYjJmYzJjZWJjNjM2NGIyOTQ5MTI5YTBhZDQyYWQxZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjA1OjUxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlIFN1bUZpbGUgaXMgdXNlZC4KCmNvbW1pdCAwZWZkZDAyMmRhMDlhZjFiNWUxNjE3MWZhN2EyYjUyM2M1ZDZlYzU5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDE6NTMgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA1NjBiYzZjMDliNzUxNTU2ZWZkNmI0YzQ0OTU3NTFiMTA5YTkzZjkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTk6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdywganVzdCB0byBiZSBzdXJlLgoKY29tbWl0IDgyOTFkN2M1YjkyYTMxZGQ0ZjU4MmI0OTdkNGIyYTA4NTMzNjdhNTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1NToxNiAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LgoKY29tbWl0IDg4ZTFmMzRkZTczMDA1NzVmYTZkYWI4NTdlY2RkYjI0MmE4N2RlODAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0ODo1NSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGxvbmcgaW50ZXJmYWNlIG5hbWVzIGFyZSB1c2VkLgoKY29tbWl0IGJlMTM3NWE5OTI2ZWJlMGNkNWI3OGE0MDQ1YzNiZDExYzgzNjY0YjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0Njo0OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBzZW5zb3IgbmFtZSBpcyB0b28gbG9uZy4KCmNvbW1pdCAxY2IyNDYyNTM3MjA2MmIxNGM3MWQ3ZGQ1MWUyMGZlZjc3M2UyNzQzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDE6MDAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgQ1BVIGhhcyB0b28gbG9uZyBuYW1lLgoKY29tbWl0IDg0YzgwN2VlMDMyNTFlNTQ4NTZlODNkNjJkMDZlYTA4YjhkZjUyN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDozNjo1MCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGxvbmcgaW50ZXJmYWNlIG5hbWVzIGFyZSB1c2VkLgoKY29tbWl0IGMzMTBlMzkwYjVkZDA1ZjI0YmU3ZWIxOTA0Yzc0ZTQxMjU5YzkzZGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoyNDo1NCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDQ2MDBkMTE0MzRlODNiODY1M2NmOWY4MTNhM2Q4YjYzMDQ1NWI0MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxNzowOCAyMDEyICswMTAwCgogICAgRml4ZWQgcGxhdXNpYmxlIHN0cmluZyBvdmVyZmxvdyBiZWZvcmUgcGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCmNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTE6MDIgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgKGluc2VjdXJlKSBTTk1QX01BWFBBVEggaW4gbWtkaXJoaWVyKCkKCmNvbW1pdCA4MDE2ODkwYTQ0NWY2YTdlMmE4NzNhMDQ4NzNkNGUyN2I2ZWU2NGUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6NDg6MzQgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIGludGVnZXIgc2l6ZSBvbiA2NCBiaXQgcGxhdGZvcm0uCgpjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjMxOjM2IDIwMTIgKzAxMDAKCiAgICBTZWN1cmUgbWtzdGVtcCgpIHdpdGggdW1hc2soKSAtIG9uIHNvbWUgaW1wbGVtZW50YXRpb25zIGl0IGRvZXMgbm90IHNldCAwNjAwIHBlcm1pc3Npb25zIGF1dG9tYXRpY2FsbHkuCgpjb21taXQgMjAyNTIzY2E3MDRiZDcyMmRjMWFjMGUxZTZiMGU0YjRlNTQyNDQ5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjExOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nICdjJyBiZWZvcmUgTlVMTCBjaGVjay4KCmNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MDg6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgMmY0ZTZhY2Q3MTQxODNmMDE1Yjc2MzY1N2Y4ZjA4NDU5MzM1N2UyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTA6Mzg6MTYgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IElnbm9yZSBwZXJsLyoueW1sIGZpbGVzCgpjb21taXQgYzM2NWQ4MGMxNmMyZDE3YjE2MDAxMWU4YzFmOWNiOTU4OTU0ZTlkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMDg6MzQ6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRG8gbm90IGludm9rZSBzaHV0ZG93bl9wZXJsKCkgZnJvbSBpbnNpZGUgdGhlIFNJR1RFUk0gaGFuZGxlciBzaW5jZSB0aGF0IGZhaWxzIGlmIFNJR1RFUk0gaXMgcmVjZWl2ZWQgd2hpbGUgYSBQZXJsIGhhbmRsZXIgaXMgYWN0aXZlLiBCYXNlZCBvbiBhIHBhdGNoIHBvc3RlZCBieSBKb2VsIEF2bmkgPGphdm5pQGFydWJhbmV0d29ya3MuY29tPgoKY29tbWl0IGQwNTlmYjg3OGIxNDM2NTk5OTUzY2VhNWEwNzc0OTlkZGNkY2JjYjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTc6MDM6NTUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0MDc1MjogSUYtTUlCOiBSZXBvcnQgaW50ZXJmYWNlIHNwZWVkIGNvcnJlY3RseSBmb3IgRXRoZXJuZXQgaW50ZXJmYWNlcyBpZiBvdGhlciB0aGFuIDEwIE1icHMsIDEwMCBNYnBzLCAxIEdicHMsIDIuNSBHYnBzIG9yIDEwIEdicHMuIEFkZCBzdXBwb3J0IGZvciBOSUNzIGZhc3RlciB0aGFuIDY1IEdicHMuCgpjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNjoxNyAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzCgpjb21taXQgZTMyNWVjYmZjZTc3ZjAwYWM1Y2Y2ZmJkOTU3Zjk1NDk1ZjYxYzU5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCgogICAgU3VwcHJlc3MgdW5pbnRlcmVzdGluZyBEb3h5Z2VuIHdhcm5pbmdzCgpjb21taXQgYmU5MTYxZDNhNTg5OGU4NjM3NjdmOTI2NjEzNDg2MTI2YzJjYmY2NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjozNTozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIG1hbmlwdWxhdGluZyA2NC1iaXQgbnVtYmVycy4KCmNvbW1pdCA4NmU0YzJiZTA4NTJhMGExM2IwNjAzMDc1NzIwYjMyNjRlYzcwZGRlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjI5OjExIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIGl0IGV4cGxpY2l0IHRoYXQgTUFYX1NVQklEIGlzIGFuIHVuc2lnbmVkIGNvbnN0YW50Cgpjb21taXQgMzdlMjcyZDhmN2I3MTgwYmExNDBmYTM4NmE1ZmYwNTg5NjhhMDhhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxODoyMTo0OCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IElGLU1JQjo6aWZUeXBlOiBSZXBvcnQgdHlwZSAiaW5maW5pYmFuZCAoMTk5KSIgZm9yIEluZmluaUJhbmQgaW50ZXJmYWNlcyBpbnN0ZWFkIG9mIHR5cGUgIm90aGVyICgxKSIuCgpjb21taXQgMjY5OTMyZmEzMmM3Y2Q0Nzk1NzQ4OTY5OGUwOWJlZTMxZjYzYjdhZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNDo0MiAyMDEyICswMTAwCgogICAgRml4IGFuIE1TVkMgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDBkMWMyMWY5OTkxZDEzMDlkMDU3ZTNlNDA1NmQ1NDdkZjdkNDBlY2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTY6MDY6MzEgMjAxMiArMDEwMAoKICAgIE1ha2UgZGVjbGFyYXRpb24gYW5kIGRlZmluaXRpb24gb2Ygc3RybGNhdCgpIGNvbnNpc3RlbnQuCgpjb21taXQgMGMzZDRkYmIwYTljZjViMzU5ZjcwYjJmMTk5MTU0OTU1NTRmODQwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNToyMzoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogV2luMzI6IHNubXBkOiBSZW1vdmUgZGxtb2QKCmNvbW1pdCA4OTNlY2M5N2I1ODc2NjEwNDViZWNiZTA5YTMyMGMxYmNiYzcxYzdjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM2OjU5IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdCgpIHRvIHRoZSBNU1ZDIGJ1aWxkIGluZnJhc3RydWN0dXJlLgoKY29tbWl0IDNkMTI2NDIyZTYyNTcwMmI5ZDNmYTA2NzZhOTdlYzVjYjIwZDlkMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MDE6MDYgMjAxMiArMDEwMAoKICAgIE1ha2Ugd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggY29uc2lzdGVudCB3aXRoIGl0cyAuaW4gZmlsZQoKY29tbWl0IGFmNTNiNzZjMmZmYTc1MWUzOTU4ZDBmYzVkODI3OWY3OGMyYzFjMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6NDM6NTUgMjAxMiArMDEwMAoKICAgIFNraXAgVDA2NnBhc3Nfc2ltcGxlIGFuZCBUMDY3cGFzc3BlcnNpc3Rfc2ltcGxlIG9uIE1pbkdXCgpjb21taXQgMzVhOTJlNjkzZDEzM2E1YjExZTllOWI1OTlkYmY0N2VkZWY0OTMzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAwODoxNjozNiAyMDEyICswMTAwCgogICAgUmVtb3ZlIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYyBhZ2Fpbiwgd2hpY2ggd2FzIGFkZGVkIGFjY2lkZW50YWxseSB3aGlsZSByZXNvbHZpbmcgbWVyZ2UgY29uZmxpY3RzIChjb21taXQgMWQ3OGY3ZDViNThhZWQyYjUyYzRkMzg2YTdiYTgwYTQ0NzExYmFjYSkKCmNvbW1pdCBhOWIwNzNlYTNiNmNlZGY3MTNlMzA1ZTdiMTVmMjhhZTU3YmZkZjFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE3OjQ3OjExIDIwMTIgKzAwMDAKCiAgICBGaXggNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgN2U4OTBkYWQ5NWY1NjYwNjllZTI4MDIxNWE0ZmVhM2YwZTJlMzk4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNjozODo1MCAyMDEyICswMTAwCgogICAgQXZvaWQgYSBTSUdTRUdWIGlmIGNwID09IE5VTEwuIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4LgoKY29tbWl0IDFmNjIwMGNmZTFiMGIyN2ViYjA5M2ExNjA2YjU5MmY5ZTk2ODRiZTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6NTM6MzQgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNgoKY29tbWl0IGMzMTI2YjE0MzkyMWZhYmVhYzQ0MjE2NmVjYTViNWI3NDJmZDQyYzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6MDI6MzkgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbW9zdCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS41Cgpjb21taXQgYjI0ZWU3YzkwOTY1N2RiNDNiZDhjNWQ4YzAxMDU1Y2EwODgzYzljZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwODo0MDozOSAyMDEyICswMTAwCgogICAgRWxpbWluYXRlIG1vc3Qgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgY2FsbHMKICAgIAogICAgVXNpbmcgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgaXMgZXJyb3IgcHJvbmUgLS0gc2VlIGFsc28KICAgIGh0dHA6Ly93d3cuZ3JhdGlzb2Z0LnVzL3RvZGQvcGFwZXJzL3N0cmxjcHkuaHRtbC4gSGVuY2UgcmVwbGFjZQogICAgYWxsIGludm9jYXRpb25zIG9mIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpLiBSZXBsYWNlCiAgICBzdHJuY3B5KGRzdCwgc3JjLCBuKSBjYWxscyBieToKICAgICogc3RybGNweShkc3QsIHNyYywgbikgaWYgdGhlIGdvYWwgd2FzIHRvIGF2b2lkIG91dHB1dCBidWZmZXIgb3ZlcmZsb3cuCiAgICAqIHNwcmludGYoZHN0LCAiJS4qcyIsIG4sIHNyYykgdG8gY29weSBhIHByZWZpeCBvZiBzcmMgdG8gZHN0IG9yIGlmIHNyYyBpcwogICAgICAgIG5vdCAnXDAnLXRlcm1pbmF0ZWQuCiAgICAqIG1lbWNweShkc3QsIHNyYywgbikgaWYgc3RybGVuKHNyYykgPj0gbiBhbmQgbiA8IHNpemUgb2YgZHN0LgogICAgKiBzdHJjcHkoZHN0LCBzcmMpIGlmIG4gPiBzdHJsZW4oc3JjKSBhbmQgbiA8IHNpemUgb2YgZHN0LgoKY29tbWl0IDZkOTViYzQxNDk0NzI5MzEwMDU0NzVjMzBhNTQxZmVkNTUzNGRhMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTE6MTk6MTYgMjAxMiArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyB0cmlnZ2VyZWQgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIHhzIHNvdXJjZSBmaWxlcwoKY29tbWl0IGJhZDA2MDBmNmVjOTQ0ZWY4NDU1ZTMyN2NlNzg0YjliMDdkMjQ3YzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MTMgMjAxMiArMDEwMAoKICAgIEFkZCBjb25maWd1cmUgdGVzdCBmb3Igc29ja2FkZHJfdW4uc3VuX3BhdGggc3VjaCB0aGF0IHRoZSBjb20yc2VjIHRlc3QgaXMgcnVuCgpjb21taXQgOTJhMzJhYzQ4NjZhNWVkYzdmMzQ3ZDM3OTQyYmYwMjhkZTAyNzYyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoyOSAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA4M2U0YzBlMzA0ZjYxN2NjYWM2NjEwZWRkNzRkMTcwNjc5N2JiZjUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE1OjM3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgYSB0ZXN0IGZvciBzZV9zdG9yZV9saXN0KCkKCmNvbW1pdCA0ZmFlNTg1MjEwM2VjMzg5M2FkNDg4YmMwZDkwNWNhNjkxNDU5NWVmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE3OjE1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSB0aGUgc2Vfc3RvcmVfZW51bV9saXN0KCkgaW1wbGVtZW50YXRpb24KCmNvbW1pdCBiMzIyMmJiMjc1ZjJmMjM0NmUwZmQwNDc4YWZhMmVmYjYwMDc3M2U1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE2OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZWNsYXJlICJ0eXBlIiBhcmd1bWVudCBvZiBzZV9zdG9yZV9saXN0KCkgLyBzZV9zdG9yZV9zbGlzdCgpIC8gc2Vfc3RvcmVfZW51bV9saXN0KCkgY29uc3QKCmNvbW1pdCAwMjJmODQwZmJmY2IwZTI2YjA4ZjBlNTU3MjgyMzFmNjExNDk1ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE5OjU1OjU2IDIwMTIgKzAwMDAKCiAgICBBdm9pZCB0aGF0IFZhbGdyaW5kIGNvbXBsYWlucyBhYm91dCBzZW5kaW5nIFVEUCBkYXRhCgpjb21taXQgNjcyYTgwOWMyMjhlOTU1MGI5OWI4OTEwYmU3NWQwYjE2MTk4NTQwMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzozMzowOSAyMDEyICswMDAwCgogICAgRml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAyNGZmMjYwYWQ4OWNlMmFhMzYxYTU1YzdjNzJlOTE2MDMxZGVmZTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjExOjI0IDIwMTIgKzAxMDAKCiAgICBDaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBzbm1wX3NldF92YXJfdmFsdWUoKSBhbmQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKCkgZnJvbSB1X2NoYXIqIHRvIHZvaWQqLCBsaWtlIG9uIG1vcmUgcmVjZW50IGJyYW5jaGVzCgpjb21taXQgYzZjYTczN2ZiNDZmOTBhNGJkYTVkNDM3MzRhYWMzNGU4MzdhMDVmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMTMgMTk6MDc6MzcgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBmNTA0Y2UyZDc0YTRiYzg4ZjY4Y2M5NTE1ZmE3MDUzMzczY2IxNWI1LgogICAgKEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUgcGVybCBzdWJkaXJlY3RvcnkuIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4pCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCXBlcmwvQVNOL0FTTi54cwogICAgCXBlcmwvT0lEL09JRC54cwogICAgCXBlcmwvU05NUC9TTk1QLnhzCiAgICAJcGVybC9hZ2VudC9hZ2VudC54cwoKY29tbWl0IGQyMTJkYzk4NGVjMzRlNGQyMzA2MjVlNDZlNThiMGM2MjhhNTBkZjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6NDY6NDkgMjAxMiArMDEwMAoKICAgIFNOTVAueHMgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGJhY2VlYmIxMGQ4Y2FmNWRiNjNjYzM2OTM1ZmVkNjVlZTkzMTAyOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6MjI6NDQgMjAxMiArMDEwMAoKICAgIEFkZCBkZWNsYXJhdGlvbiBmb3Igc2h1dGRvd25fc25tcE5vdGlmeVRhYmxlKCkKCmNvbW1pdCBmN2Y5NjZhYmQ2ZDI4NDliMTMzMTI1MmFmZTVjNDczZTVjNDBiMzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE0OjI0OjMzIDIwMTIgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2hlcy4KCmNvbW1pdCAzMDNjMDE1YmNmZTlhZjBiMTU0ZTk4ODFjN2I0ZjQ0OWUwOGYzMGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIyOjA2OjIzIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZDNlYjJiNWNlZDIyYTg0ODAwNTNjZTQzYWNmOTczOTcyOTA1NTQwNAogICAgKFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudCAvIGZpeCBmb3JtYXQgc3RyaW5nIG1pc21hdGNoZXMsCiAgICBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L2FnZW50X3N5c09SVGFibGUuYwogICAgCWFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwogICAgCWFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgKCmNvbW1pdCBkOTViNDA0MDY5MTZiZGE1YjQ4YjVhNjEzMWJlYzI3Yjg2NmIwYTc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIxOjU5OjIwIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBhMmE3MzE2YzMxMGYwZmNjMzcyODY3M2ZhMDQ3MDUxYzIzYjcxOTYwCiAgICAoVHJpdmlhbCB3YXJuaW5nIGZpeGVzLCBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgIAlhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMKICAgIAlhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jCiAgICAJYWdlbnQvc25tcGQuYwogICAgCXNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jCgpjb21taXQgZDg2YzQ3ZjAwM2ZkYzE5MmJjZTdiNDZhYzRmMDZiMDllMzg3YzEyYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6Mjk6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwbwoKY29tbWl0IGJlZTRkNzljZjRlYjdlMGE0NTM5N2Y1OWI1Mjk4ZGE2MzNhOGUxYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjE0OjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KCmNvbW1pdCAzZGMwZTAwYTJmZDhlMzRmZTFhZTMzZWNhYmYzNmUxNDY0NjBhMzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjo0MDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgJ3Rva2VuJyBpcyB1c2VkLgoKY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjI4OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBvZmYtYnktb25lIG1lbXNldC4KCmNvbW1pdCAwZjUzNjk1MDQ0ZGQzZjBjMzUwNzc1M2UzZjhjMjlkOTdlOTY4NzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAzIDIxOjM4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhcHBzL3NubXB0bHMuYwogICAgCWFwcHMvc25tcHRyYXBkX2xvZy5jCiAgICAJc25tcGxpYi9kaXJfdXRpbHMuYwogICAgCXNubXBsaWIvc25tcF9jbGllbnQuYwogICAgCXNubXBsaWIvc25tcF9vcGVuc3NsLmMKICAgIAlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jCgpjb21taXQgMDE1MzgwNWM5OWI5MTk3MzY1OTM1YzVkMTFhZTljM2Q0YmZhYTBmMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0ODo0MSAyMDEyICswMTAwCgogICAgRml4IGEgc2V0LWJ1dC1ub3QtdXNlZCB3YXJuaW5nCgpjb21taXQgM2Y4ODg1ZmJlZTk0MDc3NDhmYzJmMDU3MzcyOGExMWJhMmJjMDIzYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDI4IDA1OjUxOjEzIDIwMDkgKzAwMDAKCiAgICBSZXR1cm4gYSB2YWx1ZSBmcm9tIHNwcmludF9yZWFsbG9jX3ZhbHVlIGV2ZW4gaWYgbm8gc3VidHJlZSBpcyBsb2NhdGVkLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzU3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiMWVhYWYzMDIzNjlmZDQ1NTJlOGZlZTdiNmE4MDUwOTFlYzBhOWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozODo1MSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZmluZF9zZWNfbW9kKCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjMxOjIyIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBzbm1wX3Nlc3NfdHJhbnNwb3J0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDVkMWQwYTc0NGFiMzBjOGU2NDVjM2I4NTA2Y2JiZDJjY2ViM2QyNzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjA0OjQ4IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBuZXRzbm1wX2V4dHJhY3RfaXRlcmF0b3JfY29udGV4dCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCAyOTllYTlhODljM2YxNzU4YTc3NDhiYjliMzQxMWY2MmYyYzcwZjg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1NDo1NSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZm9wZW4oKSByZXR1cm4gdmFsdWUsIGp1c3QgaW4gY2FzZSBvZiBzb21lIHJhY2UuCgpjb21taXQgOTBmMWFlNjc1NzkxNzQ4MTYzNmVlZjc3MTAwY2FlZWI1M2VkZmUwMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDowNjo1NiAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQuYy4gU291cmNlOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9jdnN3ZWIuY2dpL3NyYy9saWIvbGliYy9zdHJpbmcvc3RybGNhdC5jLgoKY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjUwOjU2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBzdHJyY2hyIHJldHVybiB2YWx1ZSBjaGVjaywganVzdCB0byBiZSBzdXJlLgoKY29tbWl0IDE5OWEwNTExZjZlYjBlZjNmZjFkOWY5MjJiNzkwYWI2N2RmZGUwMWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MzE6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBzbXV4OiBzaW1wbGlmeSBzbXV4X2xpc3RfZGV0YWNoKCkKCmNvbW1pdCBkODgzNTczYWE3M2UwZjVmYzE4OGFjZWRlZTY0NTFmOTVkYWU5MDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjIzOjA2IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGludHJvZHVjZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgN2I3YTNlYjI1MDA1MjdlYWExNjk5Mjg3YTZjYTZmY2M0Y2MyZTA4YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0MDowMiAyMDEyICswMTAwCgogICAgRml4IGEgYnVpbGQgZXJyb3IgY2F1c2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDJiNmMxMTlmZWQ0ODQ4ZGE2NjYzYzExZjBjMmNiZGMyOTkyMWI1YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjUxOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbmV0c25tcF9kc19nZXRfaW50KCkgZXJyb3JzLgoKY29tbWl0IDZjZTUzNjBjYWE0YzlkZTUxYWRlNTc4NzllODNmOTZiZDA0YjRjNWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjQyOjIzIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2aWV3LgoKY29tbWl0IGIzYmM1NGJlZDMxNjkwYTg1ZGYyYWNmYmYzMjk2ZGE5M2E5ZTg5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjIzOjE3IDIwMTIgKzAxMDAKCiAgICBDaGVjayBzb2NrZXQoKSByZXN1bHQuCiAgICBBbHNvIGNsb3NlIHRoZSBzb2NrZXQgb24gZXJyb3IuCgpjb21taXQgOTIwNzVmNTFjZDQ1YTM4Y2EzODc2MGIzZmZlODJlMTY1NTllOWMyZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MTg6MjYgMjAxMiArMDEwMAoKICAgIENoZWNrIG9wZW4oKSByZXN1bHQuCgpjb21taXQgNjY2NWQ1ZmUyZmM1NjlkNmZhODU0ZDFkNzhlMzQ3YmJhYzY5ZTA3MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjI6MjIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgYTY2NDhjNTQ1M2UxZWY4ZGFjNTdhMzhlZmNjMDBjY2U1M2JmOWU0ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjA6MjcgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgZDY4ZGNhZTBmMThkNTU0NTcxYWVmMzIxOTQ0YTUyOTA1NDhkZGU4NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTY6MTEgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZmI2ZjgwYzBmZTNiYTM2ZTU2ZjViOTExYTQ3ZTNmNmYzMmJhMjY2ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTQ6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGV4aXQgY29kZSBvZiBlbmNvZGVfa2V5Y2hhbmdlIHdpdGggd3JvbmcgYXJndW1lbnRzLgogICAgQWxzbyBhZGRlZCBhIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDMxMzBlMjRmZGMyMzI0NjRkZDdiYjIxNmY0NmNhZmEyZTBlNzc1YTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA5OjU0IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBtaXNzaW5nIGJyZWFrCgpjb21taXQgMThjMTI2YTk1NjVjYjRkNjlkNzUxM2I5NDRhMjEwNTU4ODA0NWQzNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDc6MjkgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgNmQzMWM4MjA3MGEyYzY4ZmUzYzUxOWU5ZDU2ZmEyNzc5NTU0ZDAxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDE6NTMgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZGM2ZjBlMmU1NDliNGNkMDYxZWJjMTkwMDg0YjFmYzc3YTU1ZjQwZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzI6NTkgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgZGFiMzI4NjdlZDBiOTkzMDFlZmQ3YjhkODUyYWQxMjg4YTE4NGJlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzA6MzMgMjAxMiArMDEwMAoKICAgIEZpeGVkIFFVSVRGVU4gdXNhZ2UuCgpjb21taXQgYjFhMmJjZjY0NjE1ZWI2NmJjMjRkNWJlNDk1MGU0NTAxMjk2MjA0NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTg6MDMgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYjJiMWM4NTFiOTRmZWQzN2MzODZlYWExYmZlYWQ1Yzc3Njk2ZTNlZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTQ6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6NTg6NDYgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGZvciBmYWlsZWQgcmVnaXN0ZXJfbWliLgoKY29tbWl0IDU5NDlmMDU1YzE2YWU2NTA2MTVhYWU3YTFmZWUzZjJkN2IxNmQ5NDAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjI5OjU5IDIwMTIgKzAxMDAKCiAgICBNYWtlIE1JQiBmaWxlIHBhcnNpbmcgYW5kIGRldGVjdGlvbiBtb3JlIHN0cmljdCAtIExBQkVMIGlzIHJlcXVpcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgTUlCIGZpbGVzLgoKY29tbWl0IGU0YjY3MzY4M2M2OGJhOGIzYWJjMDQwYjkxMjVlYzMwNDY0M2NjN2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjM6MDA6MjQgMjAxMiArMDEwMAoKICAgIEFzc3VtZSB0aGF0IGxpYmRsIG1pZ2h0IGJlIGluIEFHRU5UTElCUyBvciBTTk1QTElCUyBzbyBwcmVhZGQgdGhlbS4KCmNvbW1pdCBiMTNjMWU1N2JlZGJhNzliODA2MTAzYzc0ZjE5MjFkNTNhNzA2YjM4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIyOjU1OjA2IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgcmVxdWlyZSB1Y2Qtc25tcC9kbG1vZCB1bmxlc3MgaXQgd2lsbCB3b3JrLgoKY29tbWl0IDI3ZGNlYTBkNWY4MDFkZjQ5NGFiMmNiNWM1YzBlYmU1NGViMGRjZDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjQ4OjI5IDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgcGF0aHMgZm9yIHRlc3QgcmVzdHJ1Y3R1cmUKCmNvbW1pdCAxNGI2MGU4NWExYjU3MDBlOTNkMTI2ZTJmMjkxZDVjNDg1ZjM0ZTM2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDoxNDoyOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRsbW9kIG1vZHVsZSBmYWlsIHJhdGhlciB0aGFuIGdlbmVyYXRlIGEgZHVtbXkgbW9kdWxlIGlmIHRoZSBkbG9wZW4gZnVuY3Rpb24gaXNuJ3QgYXZhaWxhYmxlLgoKY29tbWl0IDk4YTk3NTM4ZmMxZTlmZjQ2YjYwZDVkOTY5MzQ3NDQ0NTc4Mzc4YzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDEzOjM1OjEzIDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgdGhlIHBhdGhzIHRvIHN1cHBvcnQgdGVzdGluZyBldmVuIGlmIGJ1aWxkZGlyICE9IHNyY2RpcgoKY29tbWl0IDg4ZjBhZjNjZmI5MTZhZTU4NjNjYzI5ODYwNzFkNDM1ZjIwYzMwNjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDExOjM3OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZXMgJ3AnIGFuZCAnbGVuJy4KCmNvbW1pdCAwODE1YTc1MzZjNzZmN2U0ODQyNjM4NjgzZjY3NDg5NGExYThjZTE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6NDI6NTQgMjAxMSArMDAwMAoKICAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIFNldFVuZG8gcHJvY2Vzc2luZwogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDU0NDAKCmNvbW1pdCBlYjJhYjIzNzQyY2E4NmMwYjg5Y2NmZTkxZWI2ZWEzNzRiZjNhY2MxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6Mzc6MzEgMjAxMSArMDAwMAoKICAgIENoZWNrIGZvciB0aGUgZXhwZWN0ZWQgZXJyb3IgKEVQSVBFKSBvbiBjbG9zdXJlLgogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDc0NDQKCmNvbW1pdCBhYWMxMGJjNGYwNTNjMDE0ZjM4MmQ2NTkzZmMzMmFiOTVlMGIxYTU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTI6NTk6NTIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0NjM3Njc6IEhhbmRsZSBwYXJzaW5nIHN1YmlkZW50aWZpZXJzID4gMl4zMQoKY29tbWl0IGJiYzAyZTM2ZTkwYzFhYWI3ODk4NTYyZjk2M2Y1Y2FkYjI2ZTEwYmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNzoxNToxNiAyMDExICswMDAwCgogICAgTW92ZSBwYXNzL3Bhc3NfcGVyc2lzdCB0ZXN0cyB0byB0aGUgbmV3IGxvY2F0aW9uCgpjb21taXQgMzg5OGMwNGZkNmY4OTg2NzA2MmZkZmViZjM2ODU3YWI2MTljMDQ1MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE2OjUzOjI0IDIwMTEgKzAwMDAKCiAgICBBZGQgdGVzdHMgZm9yIHBhc3MvcGFzc19wZXJzaXN0LCBzdXBwbGllZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGQ1ZWUzZjBhMWE2M2JiMTc1MmM3NGNiY2E1NWFhM2Q0MGJmOWJmMTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo1ODo1MSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc0NDQ6IEZpeCBTSUdfUElQRSBoYW5kbGluZwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAyYTE3YjM3NDMwYzE4NTI5OThjMzU4OGU1NDdkN2ViNjFjMDZkYTcxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NDU6MzggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQ0MDogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgQWdlbnRYIGVycm9ycwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBmZTU4YTBlNWY0ZDRlMmUyZWNiY2I0NzM4MmIwOGNiMWU0ZGYzNTJjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MTY6MjMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0NTY3NzA6IEhhbmRsZSAob2Jzb2xldGUpIFVJbnRlZ2VyIHR5cGUgcHJvcGVybHkKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMWJlOGNmMDhhNjdhOTE4NTVmZWUxZWM0YTJkOGUwODdjNzgxMjQ1NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjA0OjEwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0Mzc6IExvZyBBZ2VudFggZGlzY29ubmVjdGlvbnMKICAgIChpbiBsaW5lIHdpdGggY29ubmVjdGlvbnMpIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMDY4MDM3Mjg5MTA3ZmFhMmJhM2Y1Y2QyZmIwMGMxOTQ5NGJiOWEwNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBIYW5kbGUgYW55IEdFVE5FWFQgcmVxdWVzdCBPSUQsIG5vdCBqdXN0IGEgc2ltcGxlIHdhbGsuCgpjb21taXQgYTc0ZmE1Mjg5ODMxMjNkMzU1YThjZGNhYTc3ZGQ0ZWI0YjhjNjk1OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjAwOjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBwYXNzOiBQQVRDSEVTOiAzNDkzOTQ6IEJyaW5nIHBhc3NfcGVyc2lzdHRlc3Qgc2NyaXB0IGludG8gbGluZSB3aXRoIHBhc3N0ZXN0KgogICAgKGkuZS4gdXNpbmcgdGhlIGxlZ2l0aW1hdGUgc3RydWN0dXJlIG9mIE5FVC1TTk1QLVBBU1MtTUlCKQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBiYmU2NDllYmZhNjFlYTIyMzk5MTcwYjM2Yjk5ZGIzMGExZGU4MDEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTY6NTQ6MzggMjAxMSArMDAwMAoKICAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGUgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cwogICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgc3RydWN0dXJlIGZvciBvdXRwdXQuICBCYWNrcG9ydCBvZiBTVk4KICAgIHJldmlzaW9uIDE3NjMyICh3aGljaCB1cGRhdGVkICdwYXNzdGVzdC5wbCcgYnV0IG1pc3NlZCAncGFzc3Rlc3QnKQogICAgQ29ycmVjdCBpbiBicmFuY2hlcyA1LjUgYW5kIGFib3ZlCgpjb21taXQgODJkMDZjNzI0N2IyMmM4YjAxZDQ1YmY1NTA0MWQyZjFlNjQyN2Q0OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjQ1OjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzY3MTogRml4IG92ZXJyaWRlIGhhbmRsaW5nIG9mIE9JRCB2YWx1ZXMKICAgIFBhdGNoIHN1cHBsaWVkIGJ5IFBoaWxsaXAgTydEb25uZWxsCgpjb21taXQgYmE0YTljZTUxYzk2MDBmOWZkYTE2OGYxZTZlZmYzMmExZGI2M2NiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjI0OjI2IDIwMTEgKzAwMDAKCiAgICBUd2VhayAtLWRpc2FibGUtc25tcC1zZXQgY2hhbmdlcwoKY29tbWl0IDgyN2M4YjI4ODMwMTcxZmFhOWM2MWQ1M2VmY2E5ZWI2NjAwNTYxYzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMToyNTo0MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzNDMzODQ2OiBGaXggZm9yIHVzZSB3aXRoIHB5dGhvbiAyLjQKCmNvbW1pdCBmOThhNTRhOTljYWY3YjQ2YjEwMGE5MjBkYjk0MmNiY2E5YzQzOTI2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTA6MTA6MzYgMjAxMSArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IDIzMGRmMTRmOTRjMzczNmZmMzQzNzlhNGUyODFlZWEzNTNiNDdmODAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gRGVjIDI2IDIzOjM0OjIzIDIwMTEgKzAxMDAKCiAgICBEbyBub3QgYXNzaWduIHRtU3RhdGVSZWYgdHdpY2UKCmNvbW1pdCBjOTZiM2I0ZDg1MzBhZDVlMGVmYjAzZjI0ZGFiNWU1ZjFhNDYwMDMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxODoyMSAyMDExICswMTAwCgogICAgQ29ycmVjdCB1c2UtYWZ0ZXItZnJlZS4KCmNvbW1pdCBjNTk3OGM4OWNkZTI0NDBmNGQyMGRhZGJjOWQxZGQ4ZGI1NjJkNTZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxNTo0NCAyMDExICswMTAwCgogICAgQ29ycmVjdCBkb3VibGUtZnJlZS4KICAgIAogICAgbmV0c25tcF90bHN0bUFkZHJfYWRkIHRha2VzIG93bmVyc2hpcCBvZiBpdCdzIGFyZ3VtZW50IHNvIGNhbGxpbmcgZnJlZSBvbiB0aGUKICAgIGFyZ3VtZW50IG9uIGZhaWx1cmUgaXMgaW5jb3JyZWN0LgoKY29tbWl0IGMxMzljYTEyM2I0NGJiM2I5YjZiZjkyMWUxNjA5Y2M0NWY2M2E2NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjo1NTozMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1OTogRml4IHNwYXJzZWx5IGF1Z21lbnRpbmcgdHJpZ2dlciB0YWJsZXMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzRhZTAyMWIyZTYzODQ0MzcwODFjNTYyM2YzNjBjODg5NjM5MDE4OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI5OjU0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIEJhc2VkIG9uIG1pYjJjIHBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzZhY2NmOGM2NjI1NGZhOGM0ODc2N2VkN2RlYzc5NWRkYWZjNTIyZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI3OjExIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYTYxODI2YWQ4Y2E1NDY2MWQxZDkwOTcxMjUwM2JkM2E4YjMyZWVkMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMjIgMTg6MzU6NDYgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgICAKICAgIG15TWF0Y2ggaXMgdW51c2VkIGFzIG5tYXRjaCBpcyB6ZXJvIGFuZCBhbHNvIHNpbmNlIHJlZ2V4QnVmZmVyIGlzIGNyZWF0ZWQKICAgIHdpdGggUkVHX05PU1VCIHNldC4KCmNvbW1pdCBiYTRmYzgwZmUyY2ZkNWE1ZDg5MjMwZDhmMzcwM2U0ZmUwMWU2MDE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjIgMTk6MjQ6NDAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTCiAgICBBbHNvIG1vdmUgdmFyaW91cyBGU1R5cGUgZGVmaW5pdGlvbnMgdG8gdGhlIGFwcHJvcHJpYXRlIGJsb2NrcwoKY29tbWl0IGI1YWM0YTA0ZGNkNTQ3MGQwOGQwMzMyMWFiY2QxZTk4MjYyMWU2ZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDJiMzdlNGU4ZjI1MGEwZDg4MjExOTlhNzRhYzNmNGU1YjdiN2JhYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMTo1MSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDNkMDgzNDUxNTZjNDE5MzMzZGU5NjlmMTNkMjFmY2VjN2UxOGU5NGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMjoyOSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IGNkODU5YWQ1MWM0ZjE4ZDViMGZjNjlkZDY2OWZjYjA1MWM3OTg5NjkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTozMyAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbWVtbW92ZSBzaXplCgpjb21taXQgMzBmZjU4ZDA5ZDRjOWQ1NDM4YmI2MjEwNTRmZDdhZDdhMmE1OTdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjA3OjE5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBsZW5ndGggb2YgYnVmZmVyIHdoZW4gcHJpbnRpbmcgQVNOX0JJVF9TVFIKCmNvbW1pdCA2YzE0ODdlMWQzNjBkM2QyNjBhMzljYjFmNWIxNWRhOTc4Mzk1MDUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDc6MzQgMjAxMSArMDEwMAoKICAgIEZpeGVkIHBvdGVudGlhbCBmcmVlIG9mIHVuaW5pdGlhbGl6ZWQgcG9pbnRlciBpbiBlcnJvciBjYXNlcwoKY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NDo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW5pdGlhbGl6ZWQgdmFsdWVzIGluIHVkcFRhYmxlCgpjb21taXQgYzQ0NjA4Njc5Yjg5NzUxMTc2ZjI4YTJlNTRkNTI4MmI0NmUyYTA1YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjU2OjEzIDIwMTEgKzAxMDAKCiAgICBVc2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIGFuZCBtYW51YWwgY2xlYXJpbmcKCmNvbW1pdCBhMDVjNWY5NTEzNDYxODI0ZTc5MDNhZTlhZTlhNmMzMzg2ZTMzODc5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NDA6NTAgMjAxMSArMDEwMAoKICAgIEZpeGVkIHByaW50aW5nIG9mIHVuaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gc2Vuc29yc19nZXRfbGFiZWwoKSBmYWlscwoKY29tbWl0IGU0YTVlZGM3MjM5M2JkM2RlOWJmMTJiY2ViYTlkODNiYmY3ZGU3MGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDozMToyNSAyMDExICswMTAwCgogICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBmYWUyZTViODM1YjhkZjFlYWU0N2U0Y2ViYjRlYjQwNGQ3MjgyMzc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzE6MjEgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pdGlhbGl6ZWQgaWlkIGluIGVycm9yIGNhc2VzIGFuZCB3aXRoIGRlYnVnIGluZm8gZW5hYmxlZC4KCmNvbW1pdCA5ZDU4ZjgxYTkyMzljZmJjZmM4ZWJjZTM2N2QyMWU5YjNkY2IwMjhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzM6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCAwYmM4YzA4ZWRlYWU3YWUwOTVmMTE2MjU4YzIwYWU1NzY3ZDYwNjUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MjA6NTIgMjAxMSArMDEwMAoKICAgIEZpeGVkIHJldHVybmluZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdzdGF0dXMnIHdoZW4gc3MgPT0gTlVMTAoKY29tbWl0IDczMDRjNTNjZjhhZGVlOGVjY2VmMWE4ZjI2NzU2ZmMwN2YwOTg3MjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDE4IDIzOjMxOjUzIDIwMTEgKzAxMDAKCiAgICBPbiBzb2xhcmlzIDEwIHRlc3QgaW4gL2Jpbi9zaCBkb2Vzbid0IHN1cHBvcnQgdGhlIC1lIHRlc3QuIFJlcGxhY2UgaXQgd2l0aCAtZgoKY29tbWl0IDhjZDNiZTYwZDY5M2M5YzM2ZmZiOTdkM2Q5YmNiNDljMWI0YWJlMzUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDE3IDA4OjUyOjI0IDIwMTEgKzAxMDAKCiAgICBBdm9pZCByZXBldGl0aW9uIG9mIHRoZSBjb21wbGV4IGV4cHJlc3Npb24gZGV0ZXJtaW5pbmcgaWYgaXQgaXMgcG9zc2libGUgdG8gZ2V0IHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLgogICAgCiAgICBUaGlzIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gcGxhdGZvcm1zIGxpa2UgU29sYXJpcyAxMCB0aGF0IGRlZmluZQogICAgSVBfUkVDVkRTVEFERFIgYnV0IGxhY2sgZWl0aGVyIG9mIG1zZ2hkci5tc2dfY29udHJvbCBhbmQgbXNnaGRyLm1zZ19mbGFncy4KCmNvbW1pdCA5NTNmMmUzZDQyNWVkZTNiODYzYTJlN2NjYjBiNGJjODYyOTI4YjU3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiA1IDIyOjEzOjA3IDIwMTEgKzAxMDAKCiAgICBNb3ZlIHRoZSB1c2Ugb2YgX3NlbmR0byBhbmQgX3JlY3Zmcm9tIGJlbG93IHRoZWlyIGRlZmluaXRpb25zLgoKY29tbWl0IDY4YTExNzNjNDZjZjc3NjAxNDI2Y2YzOTFkOWE4NTI3OTRmMjA1N2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDIwIDIwOjA1OjE4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBvdXQgdGhlIGNtZXNnIGJ1ZmZlciBzaXplCgpjb21taXQgNDYxZGQxNmYzYjI2NDczMjJjZGNlNjM2MzA4MWNjNDRiYTVhNDliNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMjYgMjE6NTE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1lcmdlIHRvZ2V0aGVyIHRoZSBMaW51eCBhbmQgKkJTRCB2ZXJzaW9uIG9mIHNyYyBwb3J0IHNlbmRpbmcuCgpjb21taXQgN2FjY2I2OWJhYTFmYzBiNmEzNDM5ZDJlNTQ5Yzg2ZGEzNDUzYmFkMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MzA6MzEgMjAxMSArMDEwMAoKICAgIFVzZSBhIGJhcmUgc3RydWN0IGlvdmVjIGluIGluc3RlYWQgb2YgYSBvbmUgZWxlbWVudCBhcnJheS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gbWFrZSBfcmVjdmZyb20gbW9yZSBzaW1pbGFyIHRvIF9zZW5kdG8uCgpjb21taXQgMzk4NTJjZDRjODVlZjJiZmM3NWNkZWEyODI1MjYxZWU5M2U3NjhjMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjk6MjAgMjAxMSArMDEwMAoKICAgIEFkZCBjb21tZW50IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGNhbGwgdG8gZ2V0c29ja25hbWUgYWZ0ZXIgYWxtb3N0IHJlbW92aW5nIGl0LgoKY29tbWl0IDFiMjkyY2EyN2VhYjVjYWE3M2ZlYWFhODNkYzljMTJhYmMwZjJlNzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI3OjU5IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUuCgpjb21taXQgYmM4Nzk1NzFlY2E5NTIwYmMxMzJmODQwYzNlNjU5ZDM3OTMxNDRkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MjU6MzYgMjAxMSArMDEwMAoKICAgIEludHJvZHVjZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvIGVhc2UgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIHNlcnZlciBhZGRyZXNzLgoKY29tbWl0IGI3ZWVhNmNmZmJkODcyOTMyY2UyYzA0ZmVmYjZmNDNkZTMzOWYzNzQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE4OjMzIDIwMTEgKzAxMDAKCiAgICBSZW5hbWUgdGhlIGNtZXNncHRyIHZhcmlhYmxlIHRvIGNtLgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGluY3JlYXNlIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29kZS4KCmNvbW1pdCAwYTc0NjFlNzI4ODA1YzYyYTFjYWI5ZDg3YmZjNzRjNzkyN2E5ZmNjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxNToyMiAyMDExICswMTAwCgogICAgRmFjdG9yIG91dCBhIGNvbW1vbiBsb29wIGluIHJlY3Ztc2cgb3B0aW9uIHByb2Nlc3NpbmcuCgpjb21taXQgYjNjNjI0OGQwMjAxYWIxNjEwODQwZDZkMGU3NDliM2I2YzRhZDc5MgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTM6NDMgMjAxMSArMDEwMAoKICAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgTGludXggYW5kIEJTRCByZWN2bXNnIG9wdGlvbiBwYXJzaW5nIHNvbWV3aGF0LgoKY29tbWl0IDM1NjQwMGQ2MjkwYTQyM2I1MmViZWVhNWE1ZTk3NmZiMTViYjczYjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjA0OjU2IDIwMTEgKzAxMDAKCiAgICBVc2UgQ01TR19EQVRBIG9uIHRoZSByZXN1bHQgb2YgQ01TR19GSVJTVC9ORVhUSERSLCBub3Qgb24gdGhlIGJ1ZmZlci4KCmNvbW1pdCAzYjM1MTcwOGM2MmRlNDZhYTFiOTBlZDIzMmNmZDhjN2M1YjAyMjMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEyOjAwOjMyIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgYSBjYXN0Cgpjb21taXQgZGU5MjUwZDlkYWU5NzI3YTZjYzdmNjQ3Njg4ZGRkZjFiODU5NzEyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMTo1ODowNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3ByaW50X21pYl9vaWQoKSB0cmVhdCBPSUQgY29tcG9uZW50cyBhcyB1bnNpZ25lZCBpbnN0ZWFkIG9mIHNpZ25lZCBpbnRlZ2VycwoKY29tbWl0IDBlMzNiM2I2ZDU4NTRhNGJhYzE1ZDRlYTVlMDE2YzUzZDE2MWQwY2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTA6MDI6MjggMjAxMSArMDEwMAoKICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgYjdlNTBkNWY5YTY3NTU5ODJkMmFmMzE5MTQ3M2NiMzQ2NDNiYzAzZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwODozNzoyMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVkdWNlIG92ZXJoZWFkIG9mIGNvbmZpZyBmaWxlIHBhcnNpbmcKCmNvbW1pdCA3M2M5ZWU0MmQyOGFmZTJlMTA3YTdkNjYxNmI2ZDAxMTg5MGMzNmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA5OjA5OjU5IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDNkYjk3OTYyYjM3ZWIxMmQyNTRkNjFlNmJlMjM0YjA2YTM5MWM4YmIKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgRGVjIDggMDc6NDM6NDUgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzNDUzODY4OiBmcm9tICJCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4iOiBGYWN0b3IgY29tbW9uIGNvZGUgaW50byBwYXNzX2NvbW1vbgogICAgCiAgICBNb3ZlIHRoZSBjb2RlIGZvciBwb3JtYXR0aW5nIGFuZCBwcmludGluZyB2YWx1ZXMgZnJvbSBwYXNzIGFuZCBwYXNzX3BlcnNpc3QKICAgIGludG8gcGFzc19jb21tb24uCgpjb21taXQgYjY1NjhjODNmMTc1NmU5YTY1NDM0ZWRlZWViNDBkMjNkZGJiYjY1MgpBdXRob3I6IGNjY2hpdSA8Y2NjaGl1QHNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDcgMTY6MjU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1MjA2OTogRml4IHNubXB0cmFwX29pZCBkZWNsYXJhdGlvbiBpbiBtaWIyYyBnZW5lcmF0ZWQgY29kZQogICAgCiAgICBUaGlzIGJ1ZyB3YXMgaW50cm9kdWNlZCBjb25zaWRlcmFibGUgdGltZSBhZ28uIEl0IGRpZCBhbHJlYWR5IGV4aXN0IGF0IHRoZQogICAgdGltZSB0aGUgNS42IGJyYW5jaCB3YXMgY3JlYXRlZCAoc2VlIGFsc28gY29tbWl0CiAgICAwZWMwODhhZmEyN2NmZGE0ZTZlYTc4YWFlN2NmYzU1MDc1NjRlZGRlKS4KCmNvbW1pdCBkNDk0ZGI2NGMyMDhiNGRjNjI4MTMxMzJmODg2M2JkNWMxYTM5ZDc3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM4OjE3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEVsaW1pbmF0ZSBhbiB1bnVzZWQgdmFyaWFibGUgKE5vdykKCmNvbW1pdCAyOGYyNTYxYmMyOTM1ZDhlMWNiZjQ2ZDI4MjAxNTgxNzNlN2E0Y2Y0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM3OjExIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KCmNvbW1pdCAzOTZlMTIyZGRjNDJhOTE2ZjA2YTAyODg0YzBlOGEyNThlZGJlMjM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDA5OjMyOjE2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWF0Y2ggZWFjaCBnZXRwd25hbSgpL2dldHB3dWlkKCkgY2FsbCB3aXRoIGFuIGVuZHB3ZW50KCkgY2FsbCBhbmQgZWFjaCBnZXRncmVudCgpIGNhbGwgd2l0aCBhbiBlbmRncmVudCgpIGNhbGwuCgpjb21taXQgM2VmZWZiYzAwMjQzOTk3ODZmOGI2OGIxZTkzYjBhOGZkZGRkYzdkYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDo0MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCA3ZjA1ZGFhOGUwZTBmNTMzYjBmMTJhM2UxY2YwNzY0MTUxOTkwOWQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDExOjU4OjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDQ5Mzk6IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdCBzcHJpbnRfcmVhbGxvY19vY3RldF9zdHJpbmcoKSBlbWJlZHMgdW5wcmludGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIGJpbmFyeSB6ZXJvZXMgaW4gaXRzIG91dHB1dC4gVGhpcyBiZWhhdmlvciBjb3VsZCBjYXVzZSB0cnVuY2F0ZWQgb3V0cHV0IGluIHNubXB0cmFwZC4KCmNvbW1pdCBkYjhmNTU4ZmQyZjNiN2MxMDllYTNhMWMyMTMzYjc1YjZmOGNiMmFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeDogcGFzcyB1bnNpZ25lZCBjaGFycyB0byBpc3ByaW50KCkgaW5zdGVhZCBvZiBzaWduZWQgY2hhcnMuCgpjb21taXQgODAwZGMxMDI4ZTdlMGNkOGNjMTRkODRkZDMxNzIzZDQ3YWMwNzNkYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMSAxMDoxODo1OCAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgaGludCB2YXJpYWJsZQoKY29tbWl0IDgzZWE0YTA4MGM5MGE3NGI5NzQzZDNmMjRjZjBkNGI4YTFlOGM4NDkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDI3IDIxOjE2OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBxb3MKCmNvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowNDowMSAyMDExICswMTAwCgogICAgUmVtb3ZlICNkZWZpbmUgdmFsKHgpIF9fU1RSSU5HKHgpIGFuZCBjaGFuZ2UgdmFsKHgpIGludG8gX19TVFJJTkcoeCkuCgpjb21taXQgMmYzNzliMGU0ZWNhZGZhNGU1NDFlMzAwNWM4ZmM4MjgxODgyYjc0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTU6NTg6NDcgMjAxMSArMDEwMAoKICAgIEZvbGxvdy11cCBmb3IgY29tbWl0IDFhYTcwNGU6IHVuYnJlYWsgdGhlIE1TVkMgYnVpbGQKCmNvbW1pdCA2NGVmMGY3MTEyNzYxNzgzNzAyN2ZiMmNmYWYxNzRiOTViYTc5ZTBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDoxOTo1MCAyMDExICswMTAwCgogICAgQWRkIFNOTVA6OnJlZ2lzdGVyX2RlYnVnX3Rva2VucygpCgpjb21taXQgN2JlYWQ5Y2E5MTdjNjc1NjZkNWVkOThhYjUwN2JiYzAyODE2MjE3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDg6MDggMjAxMSArMDEwMAoKICAgIEFnZW50WCBzdWJhZ2VudDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCmNvbW1pdCAwZWQ3MTU0MWY4N2U3ZDc4YmM5OThlZWJkYTMyMTdjNTllMWRmODMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMzoxOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIERveHlnZW4tc3R5bGUgZnVuY3Rpb24gaGVhZGVyIGZvciBuZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kIG5ldHNubXBfY2xlYXJfZGVmYXVsdF90YXJnZXQoKS4KCmNvbW1pdCA4YzI5NzJiNjFlNDAxNjliNDdjNTA5ODhiNmFlOWU4YzI4NWY4NGY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMjo1NCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQoKY29tbWl0IDVkZjJiYWM2YmQ3MTc3OTkzMTFmMDAxYWM3YjczZGI4OGYxMWJkZGEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjU5OjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBPbmx5IHRyYW5zZm9ybSB0aGUgYWRkcmVzcyB0byBwcmludGFibGUgZm9ybSB3aGVuIG5lZWRlZC4KCmNvbW1pdCAxNzFlOGQ0OGQ0YWYwNDAxM2NmZjhmZDI4ZjUzNDFhMmFlZjIxZDg4CkF1dGhvcjogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTY6NDk6NDYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXAtYnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLgogICAgCiAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcgZGF0YSBpbnRlcnByZXRhdGlvbi4KICAgIHNubXAtYnJpZGdlLW1pYiBvYnRhaW5zIHRoZSBpZmluZGV4IHZhbHVlIGZyb20gdGhlIHN5c2ZzCiAgICBhdHRyaWJ1dGUgJ2lmaW5kZXgnIFRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3lzZnMgYXR0cmlidXRlCiAgICBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KICAgIGluY29ycmVjdCBkYXRhIGRpc3BsYXllZCB0byB0aGUgdXNlci4KICAgIAogICAgZS5nLgogICAgICAgICQgPiBzbm1wd2FsayBsb2NhbGhvc3QgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMgogICAgICAgIEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIgPSBJTlRFR0VSOiA1NAogICAgCiAgICBhY2NvcmRpbmcgdG8gdGhlIHN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYKICAgIAogICAgICAgICQgPiBjYXQgL3N5cy9jbGFzcy9uZXQvPGRldmljZT4vaWZpbmRleAogICAgICAgIDM2CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KCmNvbW1pdCA4MmUzOWZiNjcwNmRmOTBlY2YyZmM5ZTEwYWRhMmI5NjJlZTE5NmYzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTI6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEZpeCBtdWx0aS1saW5lIGNhc2UgdGVzdGluZyBvZiBpbmNvbWluZyBPSUQKCmNvbW1pdCBiMTVkYTFhNDUxNjA2MTEwNWExZWFjNzQ1MGNmNjUwZWM0NDI2NmIyCkF1dGhvcjogTmlrb2xheSBEZW5ldiA8bmRlbmV2QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjI5OjQ5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCgpjb21taXQgN2Y0N2Y1MmU0ODFiYWE5YWFmYjU3ODQyNDRiMGRkMjY1M2U3ZGNmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgMjggMDg6NTE6MzkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBTTk1QX0FMTE9DX1RZUEVERUYgdG8gYWxsb2NhdGUgdHJhbnNwb3J0cyBpbiBvcmRlciB0byBhdm9pZCB0aGUgc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCgpjb21taXQgY2Y4NjAzOWUzMDg2MjI1YzMwODViYjlhZGYwODhiOGJhNWJhNjk3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTU6MDI6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliIHBhc3MuCgpjb21taXQgMWE4N2U3NmUwMGVlM2Q1Y2QzN2EwN2JmYzNkODQ0OTBkM2MyYTRlYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTQ6NTU6NDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCgpjb21taXQgODg2N2ZkMWRjZmU3MmI1OWQwNzMyMmZmMzhhNjk5YjY2ZWM0ZjMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMDk6NDQ6MzggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCiAgICAKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgTkVUU05NUF9MQVJHRV9GRF9aRVJPKCkgdXNlIG1lbXNldCgpIG9uIFVuaXggc3lzdGVtcyBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGxvb3AuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMgbmV0c25tcF9sYXJnZV9mZF9jbHIoKSBkb2Vzbid0IHRyeSB0byByZWFkIG1lbW9yeSBpdCBpc24ndCBhbGxvd2VkIHRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfaXNfc2V0KCkgcmV0dXJuIGZhbHNlIG9uIFVuaXggc3lzdGVtcyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgc2hyaW5rIGJlaGF2aW9yIGNvcnJlY3QuCgpjb21taXQgMjNkYjBjZjA5YjhiMGVhYjM3Yjc0OWVmMGMzYzNmMzA2OTAwMjQ1YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMjEgMjM6MDI6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBjYXN0aW5nIHR2X3VzZWMgdG8gaW50IHdoaWNoIG1heSBiZSB0b28gc2hvcnQKCmNvbW1pdCA4MGVlNDAyMmU1MzRlNjRhYWQ1YTVmMjcxOTI4NDNiNDJhY2I4NWUwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOToxNDowMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogTW92ZSBuZXRzbm1wX3Bhc3Nfc3RyX3RvX2Vycm5vIHRvIHBhc3NfY29tbW9uIGFuZCByZW5hbWUgaXQgdG8gbmV0c25tcF9pbnRlcm5hbF9wYXNzX3N0cl90b19lcnJubwoKY29tbWl0IDBiYWE5Mjk2YzA3MmJiMzczNTc2MGIwZGQ5OTJmMmQxZDNjYTI3ZmEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjA1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBDb3JyZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgdWNkLXNubXAvcGFzcyBhbmQgdWNkLXNubXAvcGFzc19wZXJzaXN0Cgpjb21taXQgMWFhNzA0ZTRhMjk0NDMwYjI4ZTM5YjZmOWU0NjgzYjhhNDhiY2UwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDg6MzU6MjEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGYWN0b3Igb3V0IGFzYzJiaW4gYW5kIGJpbjJhc2MuIEFkZCBhIG5ldHNubXBfaW50ZXJuYWxfIHByZWZpeCB0byB0aGVtCgpjb21taXQgY2RhOGZlOTEwMTNmMTJjYmY2NGEwNzc1YWJiNTU3MjAwMzVhZjkzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDA6NTU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBDYWxsIHNubXBfb2lkdHJlZV9jb21wYXJlIGluc3RlYWQgb2Ygc25tcF9vaWRfbWluX2NvbXBhcmUKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc25tcF9vaWRfbWluX2NvbXBhcmUgc2luY2UgaXQgaXMgaW50ZXJuYWwgYW5kIHVudXNlZAoKY29tbWl0IDg1Zjg5M2UyYjYwNWU2N2Y5YmQwNDQzYzc0ZTJlZDI2OWFhNjg1NjQKQXV0aG9yOiBOaWtpIERlbmV2IDxuaWtpX2RAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMTcgMjI6NDI6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpCiAgICAKICAgIFRoaXMgaHVuayBmZWxsIG9mIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIHdhcyBtZXJnZWQuCgpjb21taXQgNWM5MTNlNTQ2NTZhZTAwOTZiMWZlYjZkYTk4YjVmYzljYTgxZjI3NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzM6MDcgMjAxMSArMDEwMAoKICAgIERlZmluZSB0aGUgZnVsbCBOZXRCU0QgaGllcmFyY2h5IGRvd253YXJkcwoKY29tbWl0IGI4ODE4NDFiZDA0OTNkZDcxZDYzMjU5YmRkZWQ0NDliMDZmMDJjMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMwOjMzIDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgY2EyOTRjZjc1YmJjOGU5MGRiZjQ0ZWU0MDQ3ODkzNWU5MWRiMTQ4NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTg6MDMgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgY2QzMmMyZGZmMDZiOWI0NTJjYzE4ZDU1MmQyZjIyMzQwOTJjODI5YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTc6MDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgd2FybmluZwoKY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE1OjU4IDIwMTEgKzAxMDAKCiAgICBNb3JlIG5lZWRzIGZvciBORVRTTk1QX1BSSW8gZm9ybWF0IHNwZWNpZmllcgoKY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE0OjI2IDIwMTEgKzAxMDAKCiAgICBGaXggdXNpbmcgY2hhciBhcyBhcnJheSBpbmRleCAoY3R5cGUuaCkKCmNvbW1pdCA4NDUyOWU2MzIwYTg5ZDk3ZjEzMTRhZWJhZDgwNjI1NWQyYTFiMThjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzowMDo1NyAyMDExICswMTAwCgogICAgRml4IG1pc3NpbmcgZm9ybWF0IGZvciBGcmVlQlNEIDQKCmNvbW1pdCA0YmQwMzUyOTU1YTI1NTFiZmUwMjMwOGRkMTM0YjkxMjhjOThiOWU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1OTozNiAyMDExICswMTAwCgogICAgRml4IHBhcmFudGhlc2lzIHByb2JsZW0KCmNvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1ODozNCAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGE0ZGI5ZjlmYzEzZDIxZWNmZjQ4OGViNDEwMzc2ZWRkYTZjMjgyMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjQzOjM0IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjM3OjQ5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MKCmNvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMToyNzo1MyAyMDExICswMTAwCgogICAgUmVhbGx5IHVwLXRvLWRhdGUgbWlicwoKY29tbWl0IDBlODZjNzgxZjM5ODliZjAyMmM4OTkzYTExODYxN2I3NGE3NTQyMGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE3OjE5IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGdldCBTaG1lbSBmcm9tIC9wcm9jL21lbWluZm8gZm9yIDIuNiAob3IgbmV3ZXIpIGtlcm5lbHMKCmNvbW1pdCBiZjI2NGQxNWRlZDdhY2JiZjJlMzg3MWI5OGZkMWZjZWY0M2Q5ZWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNjoxNiAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBjbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA1N2ZmOGE0MGJhZTVkOWJjYWQxNjA4OTE0MmE5Y2YzMjhjOWZhMWY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNDo1NyAyMDExICswMTAwCgogICAgZGlzbWFuL3BpbmcsIGRpc21hbi90cmFjZXJvdXRlOiBDbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxMzo1MyAyMDExICswMTAwCgogICAgVXAtdG8tZGF0ZSBsaXN0IG9mIFJGQ3Mgd2l0IG1pYnMKCmNvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMTUgMTA6NTc6MzQgMjAxMSArMDAwMAoKICAgIERvbid0IHRyeSB0byBpbnN0YWxsIGFuIGVtcHR5IGxpc3Qgb2YgbWFuIHBhZ2VzIChNQU4zKQoKY29tbWl0IGJhNjE5ODA0ZTU5NzhhOGRmNzU0ODQ0ZWZjY2E1MmI2OWI1MDE1ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEzOjM0OjIwIDIwMTEgKzAxMDAKCiAgICBNaW5HVzogTWFrZSBzdXJlIHRoYXQgdGhlIGJhY2tzbGFzaGVzIGluIHRoZSBwc2tpbGwgbWVzc2FnZSBhcmUgZGlzcGxheWVkLgoKY29tbWl0IDkyM2VlY2M1MDdmNzUwNDNiNjBjNWU2ODA1M2E0ZjM5NmFiMGIwZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEyOjM2OjM4IDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeCBmb3Igc3lzdGVtcyB3aGVyZSB1aW50NjRfdCA9IHVuc2lnbmVkIGxvbmcgKGUuZy4gUkhFTCA2LjEveDg2XzY0KQoKY29tbWl0IDQzNGJmYzFmNzQ1NzU1MGI2Zjg3ZDViY2Q1MTEyNzZiMjcwYjU5NjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMToyMjo1MyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gTWFydGluIFdpbGNrOiBmaXhlZCBzbm1wZCBjcmFzaGluZyB3aXRoICdzZWxlY3Q6IGJhZCBmaWxlIGRlc2NyaXB0b3InLgogICAgCiAgICBPbiAzMi1iaXQgc3lzdGVtcywgc25tcGQgZGllcyB3aXRoIGFmb3JlbWVudGlvbmVkIG1lc3NhZ2Ugd2hlbiB1c2luZyBmaWxlIGRlc2NyaXB0aW9ucyA+IDMyLCBlLmcuIHdoZW4gaGF2aW5nID4zMiBBZ2VudFggc3ViYWdlbnRzLgoKY29tbWl0IGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAxOjIxIDIwMTEgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCgpjb21taXQgZWFjYTc5ODNlMzY1NWFiNjk2ZmNjNDQ2MWNhMGNlZGJhYzZjZTY5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDA6MTIgMjAxMSArMDEwMAoKICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAoKY29tbWl0IDhhZDZjNTNmZGVjNWFkZWFlNGU1MmYxNzUxZWNlYzRhMzQ1YmFiMDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU5OjAxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVpZyAjMzQzNjUyNzogYXJwX25ldGxpbms6IGZpeCBkeWluZyByZWxvYWQgb2YgY2FjaGUKCmNvbW1pdCAzNzhmZmVkMDNiYTc5YTgzNDZkNmM2Mjc4MWUyZGRmNWNlOTJhNDc4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1NTo0MyAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzNjUyODogc3dpbnN0X3BrZ2luZm86IHJlY292ZXIgZnJvbSBOVUxMIHJldHVybiBmcm9tIG9wZW5kaXIKCmNvbW1pdCBkN2FkOGY1ZjlmM2Y2N2YxNmY2NWMyNTE1ZDExZTE5NGQyY2RkMTJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDowNDo0MSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQ3lnd2luOiBNYWtlIGRhdGVfbl90aW1lKCkgcHJvZHVjZSB0aW1lIHpvbmUgaW5mb3JtYXRpb24KCmNvbW1pdCBiYTM1YzUwYjJmNDU5YmQ5YzExZWQ1OWNjN2QxYjE2MjE1NjQ0ZmEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDoxNzowNCAyMDExICswMTAwCgogICAgUmVwbGFjZSBBQ19UUllfTElOSygpIGJ5IEFDX0xJTktfSUZFTFNFKCkKICAgIAogICAgTm90ZTogdGhlc2UgY2hhbmdlcyBkbyBub3QgYWZmZWN0IHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdC4KCmNvbW1pdCBmNjE1YmYyNGY1ZDBmMjNjZTkzMDFkYTU1NjE4NGQ2NDYwNzQwNDU2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMyOjQ5IDIwMTEgKzAxMDAKCiAgICBGaXMgQnVnICMzNDM0ODI0OiBTSUdTRUdWIHdoZW4gcmVhZGluZyBkaXNrIGRpcmVjdGl2ZSBhZnRlciBTSUdIVVAKCmNvbW1pdCBhOTRhMTc5ZDkzNDBmNTFmYTdjMjM0MzE2MzBiYzBmZmQ2ZDc1OWU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMwOjUxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDMzNjE2OiBkb250IHRyZWF0IERhdGVBbmRUaW1lIGFzIGEgc3RyaW5nCgpjb21taXQgYjI5ZTQxNjQ1MzFkMjU4ZmUzNGE2ZmUyYjllMWVjNjBjNTZmOTU0NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgNyAwMToyNTo1NyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGUyMjFlNjVmZGMxYzY4ZjE5Njg2NTE3MTdkY2M5Y2NmYjY0MTQ3ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTU6MDU6MDAgMjAxMSArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyBhYm91dCBjb252ZXJ0aW5nIHNvY2thZGRyX2luICogaW50byBzb2NrYWRkciAqLgogICAgCiAgICBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgYTBhZjM4NS4KCmNvbW1pdCAyZTdlOWVkYTBiMGQ2MmE3NjQ1YTlhOGY3MGVmM2ZiNmYzZGQ2OTQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDExOjE3OjQ4IDIwMTEgKzAxMDAKCiAgICBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncy4KCmNvbW1pdCAzNDYyZWJjZGQwYjdjMjk4Y2IxNWMzMDk5NzM2ZjRmOTUyMjU3ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCAyOCAxNjowNzoxNSAyMDExICswMjAwCgogICAgUmVtb3ZlIHRob3NlIHN1cGVyZmx1b3VzIHBhcmVudGhlc2VzIHRoYXQgdHJpZ2dlciBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgM2U1ZmVkZDNlN2QxZWYzMTY4MzYwNGJmNzNkYzU2ZTk0NGNhZDM0OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDMgMDk6NDU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIGFmdGVyIDMwIGRheXMgb2YgdXB0aW1lLgogICAgCiAgICBBZnRlciAzMCBkYXlzLCB2YWx1ZXMgZnJvbSAvcHJvYy9zdGF0IChvbiBMaW51eCkgY2FuIGdldCBiaWdnZXIgdGhhbiAzMmJpdHMgYW5kIHNubXBkIGNhbGN1bGF0aW9ucyBtaWdodCByZW5kZXIgY291bnRlcnMgbGlrZSBzc0NwdVVzZXIgbmVnYXRpdmUgb3IgemVybywgd2hpbGUgdGhlIHJlYWwgdmFsdWUgaXMgaGlnaGVyLiBUaGVyZWZvcmUgdGhlIGNvdW50ZXJzIHNob3VsZCBiZSB0cmFja2VkIGFzIHRoZSBsYXJnZXN0IGludGVnZXIgYXZhaWxhYmxlLgoKY29tbWl0IDBmYzgyMjFiMjQ5ODhjNGFlNjE4MGVkNDJiODZiOTg1MmZkNTg2YWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjI6NTk6MDggMjAxMSArMDEwMAoKICAgIGRza0luZGV4IHdhcyBvZmYgYnkgb25lCgpjb21taXQgYTViMjg4MjllNjRkNWYzYjg3ZTRiOWIxZWY4Y2MyMDRmMzNhNjFiNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMToyNTowNyAyMDExICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAkQVdLIHRvIGdldCBhIHVzYWJsZSBuYXdrCgpjb21taXQgMjgwMWEyMTM5ZjI3MDIxZTFhYjE1ZTM2MmUyZDNkNjI0ZmZhYTQ5NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NTU6NTMgMjAxMSArMDEwMAoKICAgIFBhdGNoICMzNDA2MzY0OiBGaXggdW5zdGFibGUgZGF0YSBmb3IgTmV0QlNELgoKY29tbWl0IDgyMWE1OGQxMTJkN2FjNDk1MTQ5ZTI2MmQ3MDQ0MTJiYTI4MDA0MzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjQzOjUyIDIwMTEgKzAxMDAKCiAgICBGaXggaXB2NiBzdGF0aXN0aWNzIGxvb3BpbmcgdG9vIGZhciB3aGVuIHNjYW5uaW5nIGludGVyZmFjZXMuCiAgICBGaXggVENQIHNlc3Npb24gdGFibGUgcmVwZWF0aW5nIGRhdGEgZnJvbSBmaXJzdCBlbnRyeSBmb3IgYWxsLgoKY29tbWl0IDM0OTU5MWQwM2UxN2E1NWI0M2VhY2M2YTY4N2IwMmZkOGQ0ZTk1MjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gT2N0IDMxIDA4OjU5OjM3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHBlcmwgc3VwcG9ydCB3aXRob3V0IHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcy4KCmNvbW1pdCAxZWM3MTEwZTcyYmNlMTU2MWY3NDY1MTc0NTlkNmYwNDMwMTZiNjBlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAzMCAxOTowNTozMCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgYXNuMSB0ZXN0IHBhc3MgZXZlbiBpZiBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMgYXJlIHJlbW92ZWQuCgpjb21taXQgNmQyNjkxOGFmNTVhYTM2NjJhNzIwNTQyZGU3N2JiZjM5YjBhM2U5MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMjkgMDg6MzQ6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBEaXNhYmxlIHRoZSBzdXBwb3J0IGZvciBpbnRlZ2VyNjQgaW4gcGFzcyBzY3JpcHRzIGlmIGNvbXBpbGluZyB3aXRob3V0IG9wYXF1ZS1zcGVjaWFsLXR5cGVzLgoKY29tbWl0IDI5YmY2OWQ3MDQyNGYzNTlkOWM4N2YwN2E5NjRhMDk5NDE1NjQ5YTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCiAgICAKICAgIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBjb21taXQgOWY2NTNmNy4KCmNvbW1pdCAyY2M5NTA0YjliYjg2MjViOTRiZTZjZGE3ZTYwOTkzZDA1OWNkOTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDI4NTA2OiBGaXggbmV0c25tcF9nZXRob3N0YnlhZGRyKCkKICAgIAogICAgVGhpcyBwYXRjaCBzaG91bGQgZml4IHRoZSByZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4NWQ5NmM0IChNYXkgMTMsIDIwMTEpLgoKY29tbWl0IDliNDI3YjM1M2YxY2ViOGZlODdlNmZjOGVkM2I2Y2ZhYjNjZTdmMjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDI3IDA4OjIwOjAwIDIwMTEgKzAyMDAKCiAgICBNaW5HVzogQXZvaWQgY29uZnVzaW9uIGJldHdlZW4gTWluR1cncyBraWxsLmV4ZSBhbmQgdGhlIFN5c0ludGVybmFscyBwc2tpbGwuZXhlCgpjb21taXQgMmM0NWY5MmNmY2I1YjA1ZTA0OTIyNmE1YTc4ODNhMGIxMDYwMTFhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBwYXNzaW5nIGEgY29uc3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIGFjY2VwdGluZyBhIG5vbi1jb25zdCBwb2ludGVyLgoKY29tbWl0IDI3NWQyM2VkZmRlYmUwNTc3YjA4NDIxZTRjNmM5MzZhZTM5YjdmZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2V0LWJ1dC1ub3QtdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA0NDk1ZTE3YzA3OGFjNjk5N2E5YzdmYTFhODhkYjA2NDRlOTE5NDkxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IDEzOTUyZjZiZWU5ZjQwODg2N2FiNmQyZmRmZGRlNGYyODQwNzQ5NTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogZnJvbSBTaWRkaGVzaCBQb3lhcmVrYXI6IHByb3Blcmx5IGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBpbiBhIHN1YmFnZW50IHdoZW4gd2UgcmVjb25uZWN0IHRvIG1hc3Rlci4KICAgIAogICAgQW4gc25tcCBzdWJhZ2VudCBsaW5rZWQgYWdhaW5zdCBuZXQtc25tcC1saWJzIG1heSBjcmFzaCBpZiBpdCBoYW5kbGVzIGEKICAgIHJlc3BvbnNlIHdoaWNoIGhhcyBtYWdpYyByZWZlcnJpbmcgdG8gYW4gb2xkZXIgZGlzY29ubmVjdGVkIG1haW4gc2Vzc2lvbi4gVGhpcwogICAgbWF5IGhhcHBlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgYXR0ZW1wdHMgdG8gY2xlYW4gdXAgb2xkIHJlcXVlc3RzIG9uIHJlY29ubmVjdGlvbiBvZiB0aGUgZGlzY29ubmVjdGVkIG1hc3RlcgogICAgc2Vzc2lvbi4KCmNvbW1pdCBhZTA1MjQ3MmIyMjcyMGQwODM2OWU4NTEyN2RiMjE0MjQ1ZGYyZTNmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMjUgMTY6MTU6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIHNlZ21lbnRhdGlvbiBmYXVsdCB3aGVuIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAgCiAgICBXaGVuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlciBmYWlscywgaXQgZnJlZXMgaXRzIHJlZ2luZm8gLT4gbnNhaHJfREVTVFJPWSAoYW5kIGFueSBvdGhlciBmdW5jdGlvbikgbXVzdCBub3QgZGVyZWZlcmVuY2UgaXQuCgpjb21taXQgYzE5OWJmOTFiNjIzOWYyNmIyYWFiMzRlODU3NWUwZjBkZjljZGU5YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDI0IDE0OjI1OjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogeGZzLCBqZnMgYW5kIHZ4ZnMgZmlsZXN5c3RlbXMgYXJlIG5vdyByZWNvZ25pemVkIGluIGhyU3RvcmFnZVRhYmxlCgpjb21taXQgNzQ3ZmRjNzFlNjRkMDllMDgwOTI4ZWJiYjRkMDRjYmRlMzkwNjc5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMTU6NTc6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdlcnJvciBmaW5kaW5nIHJvdyBpbmRleCBpbiBfaWZYVGFibGVfY29udGFpbmVyX3Jvd19yZXN0b3JlJyBtZXNzYWdlLgogICAgCiAgICBUaGUgbWVzc2FnZSBpcyBzaG93cyB1cCB3aGVuIHNubXBkIGlzIHN0YXJ0ZWQgYW5kIHRoZXJlIGlzIGRpZmZlcmVudCBzZXQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHRoYW4gaXQgd2FzIHdoZW4gc25tcGQgd2FzdCBsYXN0IHN0b3BwZWQuIFRoaXMgaXMgY29tbW9uIG9uIHBwcC1zZXJ2ZXJzIG9yIHZpcnR1YWwgaG9zdHMuCgpjb21taXQgMjUwZjY5OGU1OWVhYjlmMWZmZDMzMmZmNTlmZGI3MmVhMGRmMDZmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMjMgMDg6NTE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIHRoZSB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBjb2RlIHdvcmsgYWdhaW4KICAgIAogICAgUHJldmlvdXNseSB0aGUgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHByb2Nlc3NpbmcgY29kZSByYW4gd2l0aAogICAgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HIHNldC4gSW4gdGhpcyBtb2RlIHRoZSBmaWxlIG5ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oCiAgICBpcyByZXF1aWVyZWQuIFRoYXQgZmlsZSBpcyBjcmVhdGVkIGR1cmluZyB0aGUgZmlyc3QgbWFrZSBydW4sIGFuZCB0aGF0IGhhcHBlbnMKICAgIGFmdGVyIGNvbmZpZ3VyZSBpcyBydW4uCiAgICBDaGFuZ2UgdGhpcyB0byB1bmRlZmluZSBORVRTTk1QX01JTklNQUxfQ09ERSwgZWZmZWN0aXZlbHkgdHVybmluZyBvZmYgZmVhdHVyZQogICAgc3VwcG9ydCBkdXJpbmcgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gbWFrZSBpdCB3b3JrIGF0IGFsbC4KCmNvbW1pdCA2ZWY2OTA3NjQyMjQ3YzY2M2I5Yjg5NjRiOWZkNDRhMjExZGJjYWE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyMCAyMDozMDo1NCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQwODM5ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy4KICAgIAogICAgVGhpcyBtZW1vcnkgbGVhayB3YXMgaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICA5YmYzZDk2ZDk2YThlY2Q0YTVmYzM1YzMyNmRjOTM3NDY3MDAyYjZjOiBJbml0aWFsIEhBTAogICAgaW1wbGVtZW50YXRpb24gb2YgRmlsZVN5c3RlbSBpbmZvcm1hdGlvbiAoTWFyY2ggNywgMjAwOCkuCgpjb21taXQgY2Y4MmI4OTRiMjIxN2MyNmVkYzZmMTM1NjM1MWM5MzI0MTU2MDRlMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBPY3QgMTUgMTQ6NDU6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyMzkxNTogQ2hhbmdlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgYmFjayBmcm9tIDAgdG8gNQogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgdmlhIGNvbW1pdCA2Y2FjMDUwIChNYXkgNSwgMjAxMSwKICAgIGFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgaW4KICAgIHNubXBkLmNvbmYpLgoKY29tbWl0IGMxMWFkYWExMjkxNWFiZmVlNjI5YmI2YzAyNmMyMWYyMTg1YjIxNmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjI0OjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBjb21waWxpbmcgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gd2l0aCB0aGUgTWluR1cgZ2NjIGNvbXBpbGVyIHRyaWdnZXJzIHdhcm5pbmdzIGFib3V0ICJwcmFnbWEgY29tbWVudCIuCgpjb21taXQgYjE3YTcyYTc5MzQ4M2FlZTRhNWJiMmYyZTJjN2Y0ZmQ4Njk4MTdlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjI6MjAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYXVzZSB0cm91YmxlIHdoZW4gaW5jbHVkaW5nIHRoaXMgaGVhZGVyIGluIGEgcGFja2FnZSB0aGF0IHVzZXMgdGhlIEdOVSBhdXRvdG9vbHMuCgpjb21taXQgNjY0ZDNhZTEwN2Q3NTQwNTFiOGM0MjI3OWQ0NTlhYTU3YTFiZTFjMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTY6NDc6MTYgMjAxMSArMDIwMAoKICAgIE1pbkdXLCBod19mc3lzOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIGEgZGVidWcgc3RhdGVtZW50LgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGFuIGlzc3VlIGludHJvZHVjZWQgaW4gY29tbWl0IDc2ZmYyNWQuCgpjb21taXQgMjExZGNiNDkzMDY1NjFlMzViYTNjMjEzYmU3Y2ZhMjU3YjQwYThlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTU6NTI6NDMgMjAxMSArMDIwMAoKICAgIEF2b2lkIHRoYXQgZ2NjIDQuNiBjb21wbGFpbnMgYWJvdXQgc2V0IGJ1dCBub3QgdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA5ZjY1M2Y3M2U1YWE3MGYwYmVmMTE3NDYzMmU5NTU5NGY4N2Y2NjlmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgoKY29tbWl0IDRjODNiOTIyOWE3NDU0ZjM0ZjZmZjc1ZjY5ZTY3ZTQwMzBjNDE5YjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNldCB0aGUgcnBhdGggZm9yIGxpYnBlcmwuc28gaW4gbGlibmV0c25tcG1pYnMuc28gc3VjaCB0aGF0IHRoZSBkeW5hbWljIGxpbmtlciBjYW4gZmluZCBsaWJwZXJsLnNvIHdpdGhvdXQgcmVxdWlyaW5nIHRoZSB1c2VyIHRvIG1vZGlmeSB0aGUgZHluYW1pYyBsaW5rZXIgc2V0dGluZ3MuCiAgICAKICAgIFRoaXMgY2hhbmdlIGluIGFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQKICAgIGxhdGVyIGJ1dCBub3Qgb24gdGhlIDUuNCBicmFuY2guIFRoYXQgaXMgYmVjYXVzZSB0aGUgNS40IGJyYW5jaCB1c2VzCiAgICBhbiBvbGRlciB2ZXJzaW9uIG9mIGxpYnRvb2wgdGhhdCBwcm9wYWdhdGVzIHRoZSBycGF0aCBvZiBkZXBlbmRlbnQKICAgIGxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQogICAgbGlidG9vbCBtYW51YWwuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcmVzZW50IGluIGxpYnRvb2wgdmVyc2lvbiAxCiAgICBidXQgbm90IGluIGxpYnRvb2wgdmVyc2lvbiAyLiBGb3IgbW9yZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFib3V0CiAgICBkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKICAgICJScGF0aElzc3VlIiBvbiB0aGUgRGViaWFuIHdpa2kgKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCgpjb21taXQgODkyNWM5MTJkMjYzOTc1MmE4NGJjZmZlZWYxYjcwYTgxMDI2NDQ5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoyMToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjogQWRkIG1pc3NpbmcgYnJhY2UgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCmNvbW1pdCA3NmZmMjVkOWJmOTc1NzllNzIxMzEwMjA2NWZkNTA5NmYwNDlhNGM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjEzOjE4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN0b3JhZ2VUYWJsZTogZml4IGJ1ZyBpbiBoYW5kbGluZyBsYXJnZSBmaWxlc3lzdGVtcywgd2hlcmUgbGFyZ2UgbWVhbnMgYWJvdmUgOCBUQiAoPSAyKiozMSAqIDQwOTYgYnl0ZXMpLgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0CiAgICA3MWQ4MjkzZjM4N2E2Y2Q2NmJiMGRiYjEzYzBmNTAxNzRkMmU2NzhiLgogICAgRm9yIHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0LCBzZWUgYWxzbwogICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/ZnVuYz1kZXRhaWwmYXRpZD0xMTI2OTQmYWlkPTM0MTk4MjUmZ3JvdXBfaWQ9MTI2OTQuCgpjb21taXQgODY2MDMzZGI5OTA0ZmZiMTIwM2YyODNmODM4MDkyZTRjZjY4ZGU2YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwNzozMzoyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzcHVyaW91cyAjZW5kaWYgdGhhdCBzZWVtcyB0byBiZSB0aGUgcmVzdWx0IG9mIGEgbWlzbWVyZ2UuCgpjb21taXQgMjBmNGYzMjY3ZWUyMGQ1NTcwNWI3YTQzNzg5ODc5YzEwM2Y5NjYyMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwMDowODo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBtaXNzaW5nIGVuZCBjb21tZW50cyB0byBmZWF0dXJlIGlmbmRlZnMuCgpjb21taXQgZTVkZTJjYzU3YmYzMDRmMzMyMGNhZDAwMzRkMmVhMmQ4YWVkYzQzNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwOToxNToxMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IExvZyBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSBpZiBlbWJlZGRlZCBwZXJsIGluaXRpYWxpemF0aW9uIGZhaWxzCgpjb21taXQgNWVlZjk5OTBkZTI4ZjYzMTExZTZjMDkzYmUwZjNjN2FlMmQ1MTNhMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NTo0OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIGFnZW50Ojp1cHRpbWUoKQoKY29tbWl0IDY4MTBlZDQyZjliYzU2MDc1MGQ2ZGJmYjdlNTBiNmUyYWMxMTg5OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDExOjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBDeXdpbjogYWdlbnQ6IEltcGxlbWVudCBnZXRfdXB0aW1lKCkgc3VjaCB0aGF0IHF1ZXJ5aW5nIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTeXN0ZW1VcHRpbWUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlLgoKY29tbWl0IDk3MTcyYjMxMWQyMGY0NDQxYzdhN2U5MDA5MmI1OWMxZTBkYTk5ZjcKQXV0aG9yOiBUaG9tYXMgSmFyb3NjaCA8dGphcm9zY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NjozOSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogUEFUQ0g6IDM0MTg2NDk6IEhPU1QtUkVTT1VSQ0VTLU1JQjogVXNlIHBjbG9zZSgpIGluc3RlYWQgb2YgZmNsb3NlKCkgdG8gY2xvc2UgYSBwaXBlLgoKY29tbWl0IDY1OTE5MzdhZGI4NTAwMGMyNzA2OWM0YmU4NGNmNDY4ODgzOGViY2QKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTY6MTg6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzIHdlbGwuCgpjb21taXQgYjljODAxMmVjMDM1YmMwODRmMTc1ODc2ZmVjYzM3NTE5NWY5YmU4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNDowMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCB0YXJnZXQgdG8gYnVpbGQgYWdlbnR4dHJhcCBmcm9tIHRoZSB0b3BsZXZlbAoKY29tbWl0IDk5NTY0N2MwY2ZlMDA0MTIyNjJjYzU3OTdiZGZhZTlkMDBiNzBjNzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTU6NDQ6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgdGhlIHVzZSBvZiAtTCBmbGFncyBmb3IgaW50ZXJuYWwgbGlicmFyaWVzIGFzIGl0IGNvbmZ1c2VzIGxpYnRvb2wuCgpjb21taXQgOTNkYzEyMzVhMGRiNThmZmQyOTYxN2NmZjAwZGMxMTI2Mzc4MDIwMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMTozMTo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgbWFrZSBhcHBzIHdvcmsgYWdhaW4KICAgIAogICAgYXBwcyBpbmNsdWRlIHNubXB0cmFwZCBhbmQgdGhhdCByZXF1aXJlIHRoZSBhZ2VudCBsaWJyYXJpZXMgYXMgd2VsbC4KCmNvbW1pdCBiYTQxNDg4ZWQ0NGNkMjNjMjU5NjNkNGZjNTZjNDc2ODUzYjJhYjU5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjI5OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogV2hlbiB5b3Ugc2F5IG1ha2UgbGlicyB5b3UgZXhwZWN0IGFsbCB0aGUgbGlicyB0byBiZSBidWlsdC4KICAgIAogICAgVGhpcyBpcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHNubXB0cmFwZCB0YXJnZXQgYXQgdGhlIHRvcCBsZXZlbCB3aGljaCBvYnZpb3VzbHkKICAgIGV4cGVjdGVkIGJvdGggbGlicyB0byBiZSBidWlsdCBhbmQgc28gZmFpbGVkIHRvIGNvbXBpbGUgYmVmb3JlIHRoaXMgcGF0Y2guCgpjb21taXQgMzA1N2M3M2UwOTM0NzNiZTQ2MjU0YmNkZmI0Y2E3ODhlNDMyZDFiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDMwIDA3OjMyOjUyIDIwMDggKzAwMDAKCiAgICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbiBNYWtlZmlsZS4KICAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgogICAgCiAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCiAgICB0aHJlYWRlZCBjYXNlIG9mIG1ha2UgbWlibGliIGFzIHdlbGwuCgpjb21taXQgNmVhZTM0MGZhMmE2NDA4NjU5Mjk4MmNjNTI3MzViYzAxNDg3ZDk3OApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMSAxOTozMzo1MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbGVuY2UgbGliYnNkIDAuMy4wIG5hZ2dpbmcKICAgIAogICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKICAgIHRyaWVzIHRvIG1ha2UgeW91IGluY2x1ZGUgYnNkL25saXN0LmggaW5zdGVhZC4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBkb24ndAogICAgbmVlZCB0aGF0IGNvbXBhdGliaWxpdHkgbGlicmFyeSBhcyB3ZSBrbm93IGhvdyB0byBkbyBpdCBvdXJzZWxmIHNvIGl0IGJlY29tZXMKICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCiAgICBlcnJvciBhbmQgdGhlbiBmaWd1cmVzIG91dCB0aGF0IHRoZXJlIGlzIG5vIHVzYWJsZSBubGlzdC5oIGFuZCBpZ25vcmVzIGl0CiAgICBmb3IgdGhlIGZ1dHVyZS4KCmNvbW1pdCBhYzM4Y2I1MzFiZWU1MGVkYzhkNGM4MzRmMzAwNWY1OTkyYzc3MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxOTowMzowMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogRW5hYmxlIHNlbmRpbmcgU05NUHYyIHRyYXBzIHdpdGggYW4gZW1wdHkgdmFyYmluZCBsaXN0Cgpjb21taXQgYTc1ZGUyOTcxNTI3YWMyZDJlODEyMDI0Mjk4NjAyYmIyNDEyZjMzNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCA4NDhmNjMwMGVmZTM4NDkyZmI0NTQ0NTFhMDMwZjBiN2U2ZmY4YzlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IGMxMzc0NDczZWNkOGVjOWUwMzEwMDEzODYxZWUxOGM4M2U1ZDZjNWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgU2VwIDMwIDAzOjI5OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQcm90ZWN0IHRoZSB1c2Ugb2YgJE9TVFlQRSB0byBlbnN1cmUgdGhhdCAndGVzdCcgZ2V0IGVub3VnaCBwYXJhbWV0ZXJzLgoKY29tbWl0IDdlOTdhMjA2MzNhNTdlYWUzOWQwMTViMjMzMzk0NjNjMzJmNWY4NDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIyOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBDb252ZXJ0IHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYyBpbnRvIHR3byB1bml0IHRlc3RzCgpjb21taXQgOWMwZGQ5ODE3NjQ1NzM0MmZmZmFhNWU3NGQ4MDJlMzE0NWVkNzBlNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMDg6NTY6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB1bml0IHRlc3QgZm9yIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCgpjb21taXQgNWZkMjZlNGZhM2UwMDBlYTljODFjMzhhYjk3NWI3OTQ2ZWZlMjE1NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjggMTc6NDk6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBBdm9pZCB0aGF0IG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpIGZhaWx1cmUgdHJpZ2dlcnMgYSBkb3VibGUgZnJlZS4KICAgIAogICAgRml4ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgYWE0ZDQ3YzI2MDllNTI4MThjOWNkZjFhOGUyMjA1ZGU5YTMzNWEwYSAoc3ZuIHIxOTUxNSkuCgpjb21taXQgZDIyNTJkMDE2NjkzODA3MzI2ZjcyYjY2MTIzNjQ5ZGVhMDBhZjkxNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlcXVpcmUgYSBzZW1pY29sb24gYWZ0ZXIgT0soKSwgT0tGKCkgYW5kIFBMQU4oKQogICAgCiAgICBBbHNvLCBsZXQgT0tGKCkgZW1pdCBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dCBzdWNoIHRoYXQgYWxsIG91dHB1dCBpdAogICAgcHJvZHVjZXMgaXMgdmlzaWJsZSBpbiB0aGUgb3V0cHV0IG9mICJtYWtlIHRlc3QiLgoKY29tbWl0IDE0MjE5MjRiNDg1MjE0MjE5MmM1YmI5ZTkzZGRiZmVkNjllOTA4ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDIxIDIyOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCB3YWl0aW5nIGluZGVmaW5pdGVseSBpZiBhIHNlc3Npb24gaGFzIHRpbWVvdXQgemVybwoKY29tbWl0IDVmMjdmNGY3NGFlMmJkNWJhZjUwM2NmMzA2YjRmOWEyODQxYTU3Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MzI6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBydW5uZXIKCmNvbW1pdCAwOTcwMzk1OGNjNWVhODQ1OTI5YWUxOWVmOWUwODA0YWVjYWE1MTJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMjo0Mjo0MSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQXZvaWQgZmFsc2UgbmVnYXRpdmUgZm9yIFQxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSBjYXVzZWQgYnkgdGhlIHRlc3QgcmVzdWx0IGJlaW5nIHByZXNlbnQgaW4gdGhlIGhleCBkdW1wICgibW9zdGx5X2hhcm1sZXNzIikKCmNvbW1pdCA0MzkzMDAyNzlmNmYzMTQzODYzOGQyZjIyMmMyNGMzYzg0MWZhNmFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMToxNjozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1pY3JvLW9wdGltaXplIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzCiAgICAKICAgIFRoaXMgbWFrZXMgdGhlIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzIGNhcnJpZWQgb3V0IGJ5IHRoZQogICAgY29uZmlndXJlIHNjcmlwdCBzbGlnaHRseSBmYXN0ZXIsIGVzcGVjaWFsbHkgb24gdGhvc2Ugc3lzdGVtcyB3aGVyZQogICAgZm9yaygpIGlzIGV4cGVuc2l2ZSAoQ3lnd2luKS4KCmNvbW1pdCBiYmM2ODAwMDRhMTM3NjAzOGRmZGM0MTcyZGJlN2I5ZTMxMWZiYTY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAxMDoxNDo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGVzdCBUMTMwc25tcHYxdmFjbWdldF9zaW1wbGUgcGFzcwoKY29tbWl0IDcwYjA2Y2Y3ODkyMDhlYWE4OTBiZmJjZDYzOGJkYjc3NWY4MTcwNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjUwOjU3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiB0ZXN0aW5nOiBwZXJsOiBGaXggYW4gaW5jb3JyZWN0IG1lc3NhZ2UgcHJpbnRlZCB3aGlsZSBydW5uaW5nIHRoZSBQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCgpjb21taXQgNzBiY2M4ZGUyZDBmYzkyYmJiODQ4MTgyMzYzMGZhYjliYzg3YWY3NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMTYgMTY6MTQ6MjQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBPYnRhaW4gdGhlIE1TWVMgcGF0aCBmcm9tIHRoZSBlbnZpcm9ubWVudAoKY29tbWl0IDYyNjI3NWUyZDFhY2FmYWU3MTQ0YTMzZWQzMDFhNDBmNTk2YjM3YjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDE0IDEzOjE0OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgc3VwZXJmbHVvdXMgbGluayBsaWJyYXJpZXMgZnJvbSBwcm9qZWN0IGZpbGVzICgqLmRzcCkKCmNvbW1pdCAzOGZjM2NhYTllZWIzODAwMjU0YjRmNmFkNmY4ZjQ3NjRjMGY4M2RiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTozNDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2NhbGxiYWNrX2FjY2VwdCgpIHJldHVybiAtMSAoZmFpbHVyZSkgaW5zdGVhZCBvZiAwIChTVERJTl9GSUxFTk8pCgpjb21taXQgNmM4YzdlOGFjYThmYzJlZWI1MjAxMGFlM2U5ZmVlNmRkODNlZjc4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMTMgMDk6NTg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBvYnNvbGV0ZSBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbigpIGRlY2xhcmF0aW9uCgpjb21taXQgMDg2MGQxMWZkOGZjNWRiZGFhYWUyMjYxZmFlMmMwN2ZiOWMyYzgyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzo1NDo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogQXZvaWQgdGhhdCB0aGUgdHlwZWRlZnMgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjb25mbGljdCB3aXRoIHRob3NlIGluIDxzdGRpbnQuaD4gZnJvbSB0aGUgbXNpbnR0eXBlcyBwcm9qZWN0Cgpjb21taXQgZjhhMDM2ZjYzZmY2OGYwODM0MzYxMjBlMGFiZDQ3OGI2OTJhMmY2MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzoyMTowNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCgpjb21taXQgODM2YTIzZTEwY2E4MTBjMzg5OTkwMmQzMjU4NzYxNmE5ZDEyMDNkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTg6Mzg6MTMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IExpbmsgd2l0aCBwcm9wZXIgbGliZWF5MzIgbGlicmFyeQoKY29tbWl0IDdiMDdmZDZjZGVmNDllYzdiYjA0YjE2NmUyYTRmYmIzN2I1ODI4NDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTE6MTA6MzggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSBhbiBpbmNvcnJlY3QgY29tbWVudCBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoCgpjb21taXQgOThmNmQyOWQ5ODFmZjhlNjA3NjAwYzYzZGFkYjI0MDUzNTYyOTgwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDo0OTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBJU0RFRklORUQoKSBjaGVjayBmb3IgYW4gZXhhY3QgbWF0Y2ggaW5zdGVhZCBvZiBhIHByZWZpeCBtYXRjaAoKY29tbWl0IDUyY2QwMDMxYTMxZjY5MmYxMzI2M2E5NGMzMzVkMDZiZTE0NTQ4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRob3NlIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBmb3Igd2hpY2ggU05NUENPTkZQQVRIIGFuZC9vciBTTk1QX1BFUlNJU1RFTlRfRElSIG1hdHRlcgoKY29tbWl0IGY1Y2Q4OWJkMzM1NmRkNzRlMTU1NmMwYjUwOTY2YTY0M2YxOTIwODUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBmcmFtZXdvcmsKCmNvbW1pdCBkZWVkZDUyYzgzNGE2NDQ4ODUyYTA2Nzg1NTM2ZTEzODY1OTY5Njk0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMIGJpbmFyeSBkaXN0cmlidXRpb25zCgpjb21taXQgZDU1YmQ0ZTA1NDlmMDNiNmZkMzI1NjJjMmFhN2ZlMzkyNzJhOWVmNwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTkgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IGFjMmFlZDNjOTRiYjJlYmI0NzNhZjBhMWUyMGYwNTYxYWQ2Mjk5NTYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjExIDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMzIC0+IFY1LjcuMQoKMjAxMS0wOS0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEKCgoyMDExLTA5LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucmMzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMiAtPiBWNS43LjEucmMzCgoyMDExLTA5LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzMKCgoyMDExLTA5LTIyICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IDA3ZjYxYTAyYTI0MDkwOTZlNWM5NjJjZDIxMTEyNjM5NmFkMDlkMmIgTWVyZ2U6IGVlMGQzYWQKCiBiZGEzMjRiIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIFRodQogU2VwIDIyIDEwOjM5OjU5IDIwMTEgKzAxMDAKCjIwMTEtMDktMjIgIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgYzU1ZjYwOGYxNmYxNjBmNWU3OWRjMDU3Zjg4NzhkZWY0NjI5NzNlMSBBdXRob3I6IERhdmUKCiBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIFRodSBTZXAgMjIgMTA6MzU6MjQgMjAxMQogKzAxMDAKCjIwMTEtMDktMjIgIFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzogQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6CgogQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyB0bwogYXZvaWQgaW50ZWdlciBhcml0aG1ldGljIGVycm9ycy4gIChDb2RlIGJhc2VkIG9uIHBhdGNoLCByYXRoZXIgdGhhbgogYXBwbGllZCB2ZXJiYXRpbSkKCjIwMTEtMDktMjIgIFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzogQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6CgogQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyB0bwogYXZvaWQgaW50ZWdlciBvdmVyZmxvdyBlcnJvcnMuICAoQ29kZSBiYXNlZCBvbiB0aGUgc3VibWl0dGVkIHBhdGNoLAogcmF0aGVyIHRoYW4gYXBwbGllZCB2ZXJiYXRpbSkKCjIwMTEtMDktMjIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBDaGFuZ2VMb2c6IFRoZSBvbmx5IGNoYW5nZSBiZXR3ZWVuIFY1LjcucmMxIGFuZCBWNS43LjEucmMyIGlzIHRoZQoKIHZlcnNpb24gbnVtYmVyLiBNYWtlIHRoaXMgY2xlYXIgaW4gdGhlIENoYW5nZUxvZyBmaWxlLgoKMjAxMS0wOS0yMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogY2hhbmdlbG9nIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzEgLT4gVjUuNy4xLnJjMgoKMjAxMS0wOS0yMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMyCgoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IDRkNmRlZmRhZTcyYzM1YjEwODAwNzYxODAzMTNkMjkxMDU2ODQ3NWIgTWVyZ2U6IGQzYTc1OGMKCiAzYjdmZGM0IEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuCiBTZXAgNCAxNDo0NjowMiAyMDExICswMjAwCgoyMDExLTA5LTA0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogOiBjb21taXQgYmJlMmMxOWEwMWVjZWMwMjRmNzQxZTJlNTQ3MDFhZTYyMTJmNGMzZSBBdXRob3I6IE1hZ251cwoKIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuIFNlcCA0IDE0OjQ0OjM4IDIwMTEKICswMjAwCgoyMDExLTA5LTA0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogOiBjb21taXQgZDNhNzU4Y2YzMDI1NGI4MDcwNmE0M2YxOTFjMTUyMzhiMmNiNzNjOSBNZXJnZTogYzEwN2NlMAoKIDIyN2RiZDcgQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4KIFNlcCA0IDE0OjA4OjM1IDIwMTEgKzAyMDAKCjIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiA6IGNvbW1pdCA5ZWZhNDY3YTk3MmJiNmUxYzdmYmRhZjJlMjc0MjlkMjlmNGFiODllIEF1dGhvcjogTWFnbnVzCgogRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4gU2VwIDQgMTQ6MDA6MTIgMjAxMQogKzAyMDAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucHJlMiAtPiBWNS43LjEucmMxCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGZvciA1LjcuMS5yYzEKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6IGZpeCBDKysgY29tbWVudAoKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMQoKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMTA3Y2UwNzg0MDlkMjY1YjliMjE4ZDQ5ZjM4MTViNzk1ZGIxZGMzIE1lcmdlOiBlYTRiM2IyCgogOTE1YWE4ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxOTowNzowNyAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDIyYjA4MmE5NTkzY2E5YzY1YWFjNDQ5ZTZkMTI4YTllOTdlOTRmYiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEF1ZyAzMAogMTk6MDY6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGVhNGIzYjIzZjM1MDU4M2U1NjI2MzI4YjUzNjdlNmM2MTcyNTVmOTUgTWVyZ2U6IGJjZjM4YjgKCiBiMzRkNWRjIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDMwIDE2OjM4OjI1IDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3MWMwZDc2NTA0OTM3MTA2MzFmYTA4ZDVkYzRkYWQ1MDFhOWFhNzcxIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgQXVnIDMwCiAxNjozNzo0MSAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjEzZjRkODg4NmI2YTRlNzNiYzA3ZGYyYjkwZDFhNjExNWNmM2RmYyBNZXJnZTogZjdlMjFmMgoKIDY0ZTk3NzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMzAgMTE6MDk6MzAgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI1ZDJhNDNmOTdhNTk4NThjOTQ0ZWJhMjI5MGI1OWI5M2MyMzBhNmEgTWVyZ2U6IDg2ZWZlZTIKCiBjZjRjZjdmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDMwIDExOjA5OjI5IDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF1dG8tZGV0ZXJtaW5lIHBhdGNoIGFyZ3VtZW50cyBpZgoKIHBvc3NpYmxlIGZvciBuc3BhdGNodHJ5CgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIGl0IHNvIHRoZSBnaXQgY29tbWl0IGxpbmUgY2FuCgogYmUgY3V0L3Bhc3RlIHdpdGhvdXQgbGluZWJyZWFrcwoKMjAxMS0wOC0zMCAgUm9uYWxkIFdhaGwgPHJ3YS1jb0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM5NDU4NjogZnJvbQoKIHJ3YS1jbzogZmlsZSBkZXNjcmlwdG9yIGxlYWsgaW4gcmVhZF9jb25maWcgKCtmaXgpIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBkZXNjcmliZSB0aGF0IG5zcm9sbHVwIG5lZWRzIHRvIGJlIHJ1biBub3cuCgoKMjAxMS0wOC0zMCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCAyYjkyYTBhMWUzYTA2MThjNTE1ZWJkOTAyMjcxYjk1YzA4OTMxYWZhIE1lcmdlOiBhMDg2MzQ3CgogODZlZmVlMiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUdWUKIEF1ZyAzMCAxMToyODoxNCAyMDExICswMTAwCgoyMDExLTA4LTMwICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzogQXBwYXJlbnRseSBJUklYIGhhcyBhCgogZGlmZmVyZW50IEFQSSBmb3Igc3RhdGZzCgoyMDExLTA4LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiBkb24ndCBwcm92aWRlIGEgZmVhdHVyZSB3aGVuIHlvdXIgYQoKIGNoaWxkIG9mIGFub3RoZXIgZmVhdHVyZQoKMjAxMS0wOC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bwoKIFY1LTctcGF0Y2hlcwoKMjAxMS0wOC0yOCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIGFwcHMvTWFrZWZpbGUuaW46IFVzZSB0aGUgZmVhdHVyZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgdGFyZ2V0Cgogd2hlbiBidWlsZGluZyB0aGUgZmVhdHVyZSBzZXQKCjIwMTEtMDgtMjkgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmg6IHRoZSBpcml4NiBidWlsZCBvbmx5IGRlZmluZXMKCiBpcml4Niwgbm90IGlyaXgKCjIwMTEtMDgtMjkgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByZS1hZGQgc29ja2FkZHJfdW4uc3VuX3BhdGgKCiBjb25maWd1cmUgY2hlY2sgKGxvc3QgaW4gcHJldmlvdXMgY29tbWl0KQoKMjAxMS0wOC0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaDogCgogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jIGRvZXNuJ3QgYnVpbGQgb24gSVJJWCB5ZXQKCjIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBhMDg2MzQ3OWQ4MDk2MmM2NTI5NDdkZmRlZTExYmRkMTM2YzBlMDEzIE1lcmdlOiA1MjUwODkzCgogZjk1YWEzMSBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogU3VuIEF1ZyAyOCAyMzozNzoyNyAyMDExICswMjAwCgoyMDExLTA4LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZHMgbXNnX2NvbnRyb2wvbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIKIChiYWNrcG9ydCkKCjIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6IGFkZGVkIHJlcXVpcmVkIGZlYXR1cmVzIGZvcgoKIG1mZCBoYW5kbGluZwoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IGFkZGVkIC5mdCBhbmQgLmZ0LjEgZm9yIGZlYXR1cmUgZmlsZXMKCgoyMDExLTA4LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9hZ2VudC9hZ2VudC54czogbm9fd3JpdGVfc3VwcG9ydCBzdXBwb3J0ZWQKCgoyMDExLTA4LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOiBoYW5kbGUgbm8td3JpdGUtc3VwcG9ydCB3aXRoCgogaWZkZWZzCgoyMDExLTA4LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNTI1MDg5MzI3YWJhN2QwMWQ2MzNjNjM0YzZiNmYwNmRlNDJhY2JiOCBNZXJnZTogMWJiMjM0YQoKIDA0ZmQ3MWEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgMjUgMDY6NTc6MjEgMjAxMSAtMDcwMAoKMjAxMS0wOC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGVhOGJlZDc5ZTgxYzQyZTMzY2JmMzdjYTZmM2MwM2M1NDk5ODdiMjIgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgMjUKIDA2OjU2OjIyIDIwMTEgLTA3MDAKCjIwMTEtMDgtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6IHVzZSA+PiB0byBwcmludCB0byBzdGRlcnIKCgoyMDExLTA4LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmU6IENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgZ2VuZXJhdGUKCiBhbiBvdXRwdXQgZmlsZSBvbiBmYWlsdXJlIG1ha2Ugc3VwcG9zZXMgdGhhdCBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkIGlmIHRoZSBjb21tYW5kIGZhaWxlZC4KIENoYW5nZSBmZWF0dXJlLXJlbW92ZSB0byBmb2xsb3cgdGhhdCBwcmVzdW1wdGlvbi4KCjIwMTEtMDgtMjEgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZTogQ29ycmVjdCB0eXBvCgoKMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDFiYjIzNGE2Y2MzNmU2YTRlZmJlM2ZiMjljNDgwMjEwZGMyYjljMTMgTWVyZ2U6IDM1YTk4YzMKCiAxZjA4MmEzIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIzIDIzOjM4OjA3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczogbWFrZSBzdXJlIHRoYXQKCiBfS0VSTkVMIGlzIGRlZmluZWQgdG8gMSBzbyB0aGF0ICIjaWYgX0tFUk5FTCIgd29ya3Mgb24gc3lzdGVtcyB0aGF0CiBuZWVkIGl0IChlLmcuIElSSVgpCgoyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzVhOThjM2Q3YzVhM2M1ZGYzNTZhZGQ5ZThiODA4Mjg3ODk5YjY5YSBNZXJnZTogMWYzN2Y1NwoKIGEyN2Y3NDQgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMjMgMjM6MzA6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI2YmIyNDcwYzEwNmY4MzQ0NDJhMmFkYmM3NjExYmYxNjY1N2ZiZGYgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MjI6NDQKIDIwMTEgKzAyMDAKCjIwMTEtMDgtMjIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGF1dG9yZWNvbmYKCgoyMDExLTA4LTIyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXgKCiBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChlLmcuIElSSVgpCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogYXV0b3JlY29uZgoKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGF1dG9yZWNvbmYKCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjYyY2IwODY0ZjU3N2JhODU1NzNkMGQyNTBkMTJhMzkzODdjMDdiNCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEF1ZyAyMSAwMDo1NTozMwogMjAxMSArMDIwMAoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDcxYjkwYjZmMjE3OTQ0YjRmZmMxODM2ZTUxNjBkNDBlMzNiNDQyM2QgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBBdWcgMjEgMDA6NDA6MjgKIDIwMTEgKzAyMDAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucHJlMSAtPiBWNS43LjEucHJlMgoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBmb3IgNS43LjEucHJlMgoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucHJlMgoKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAwMzA1MzQ3OTYwNGJjODNlZmJlYTU3OWI0NTYyYjE4MzFjZWExY2I2IE1lcmdlOiBmNzNlNjM2CgogZDk0ZGYzOSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyAxOCAxMTo1Nzo0NiAyMDExIC0wNzAwCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjhiNTQwNzA1MTQ3NTNlOGQ4YWJiNzE4YjIyNGQ2NTdhYjdhOGFiOCBBdXRob3I6IEdhcnJldHQKCiBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDE4CiAxMTo0OTo1NiAyMDExIC0wNzAwCgoyMDExLTA4LTE4ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzogQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDMzODkyMjg6CgogZnJvbSB3dWxmMjAwMTogaW5jb21wbGV0ZSBjb21taXQgKHBhdGNoIDMzODY2MzM6IGZpeCBpbnRlZ2VyCiBvdmVyZmxvdykgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXAuY29uZi41LmRlZjogUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiBvbiAtY29kZXJzIGZvciBmaXhpbmcKCiBtYW4gcGFnZSB0eXBvcwoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogY2hhbmdlZCBjbGllbnRhZGRyIHNvIGl0IHJlZ2lzdGVycyBhcyBwcmUtbWliCgogdG8gYmUgcGlja2VkIHVwIGJlZm9yZSB0aGUgdHJhbnNwb3J0cyBnZXQgY3JlYXRlZAoKMjAxMS0wOC0xNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGMwMjEzMWU1YjM1ZDI5Njc1NWJhZWM5OWJkMzYzMjA1YTg2MzA3ZGQgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBBdWcgMTcKIDA5OjM0OjAwIDIwMTEgLTA3MDAKCjIwMTEtMDgtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBGaXggdGhlIGxvZyBtZXNzYWdlIHRoYXQgcmVwb3J0cyB0aGF0CgogZ2V0aG9zdGJ5YWRkcigpIGlzIG1pc3NpbmcKCjIwMTEtMDgtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxODJlMWRjMGMzZWFjZmE0ZTljY2RiMjg2MDBmZjBmMjM3MDIxMWFlIE1lcmdlOiA0OTliNzk2CgogNTE3YjZiMCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcKIDE3IDE4OjA5OjMwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2NTgwNTU2Y2M3YmQ4MzNhZjczMWI2MmNlMWVkMjAxNzU2NGZlN2ViIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnIDE3IDE4OjA4OjAxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA0OTliNzk2Y2JkNzgwNjVjMzM1NDc3OTEzNmJkM2Q5ZDFmNTQ4YTU4IE1lcmdlOiAwNDE4ZmYwCgogYTljYjI2NyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKIDE0IDA4OjAyOjM4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzY2IzZjFlZGUzODhkODRlMzkyZTFkODE1ZDU5OTRhNGJmMGYxMGY5IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDE0IDA3OjU5OjI1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOiBXaW5kb3dzOgoKIE1ha2UgdGhlIFBlcmwgYWdlbnQgbW9kdWxlIHdvcmsgYWdhaW4gd2l0aCB0aGUgb3JpZ2luYWwgU05NUF9GUkVFKCkKIGRlZmluaXRpb24uCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMDQxOGZmMGNkYTIxNDExYTQ3ZmE4OTc4YzNlMGQwNDNhMTlkMjRiNiBNZXJnZTogMjZiMGFhMwoKIDNjNzNiNDggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnCiAxMyAxODo0MjowNSAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6IFJldmVydCB0aGUgdHdvIG1vc3QgcmVjZW50CgogU05NUF9GUkVFKCkgY2hhbmdlcyAoY29tbWl0cwogNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNSBhbmQKIDdmNDJkMGQ5MzMyMDQ4NDE1MjI3MTQyN2NjOTgwOGNiZGE0OWJiZDApLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDI2YjBhYTMwMTBmYTE4MmI2MDM5YThjMmNhZDhjY2I0NTcxNjUyZGUgTWVyZ2U6IDJmM2Q2MDcKCiAwYzhlMWE5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZwogMTMgMTE6NDM6MjAgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDNlNTBjM2UwMGU5ZjMyMWZiNzA4YmM1NzllYjRkYzFhMGYxZTdjNGQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcgMTMgMTE6MzE6NDAgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJmM2Q2MDc5ZGMzNmFhZDk1NTlkOTFjNWMzMjRlMmNlNTM1NTczZGQgTWVyZ2U6IGUzMmFhOTcKCiBmZjE3MzRkIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZwogMTMgMDk6MDg6MDYgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGUxNDdlNGI5Njc1NTIwN2RlMWNlMzA5OTBkNjdiNGI3Yzc2ZGQ0ODMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcgMTMgMDg6Mzk6MTQgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHdpbjMyL2J1aWxkLnBsOiBDSEFOR0VTOiBXaW5kb3dzOiBidWlsZGluZyAoYnVpbGQuYmF0KTogSW5zdGFsbAoKIG5ldHNubXAuZGxsIGJlZm9yZSBydW5uaW5nIHRoZSBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgc3VjaCB0aGF0IHRoZQogcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuIHdpdGggdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBuZXRzbm1wLmRsbC4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjogQ0hBTkdFUzogV2luZG93czogcGVybCAoYnVpbGQuYmF0KTogV2hlbgoKIGluc3RhbGxpbmcgZGV2ZWxvcG1lbnQgZmlsZXMsIGluc3RhbGwgdGhlIFBEQiBmaWxlcyB0b28uCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2NvbmYudCwgcGVybC9TTk1QL3QvbWliLnQsIAogICAgICBwZXJsL2FnZW50L3Rlc3QucGw6IENIQU5HRVM6IHRlc3Rpbmc6IEZpeCBQZXJsIHJlZ3Jlc3Npb24gdGVzdAoKIGZhaWx1cmVzIEFsbCBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBub3cgb24gTGludXggYW5kIG9uIFdpbmRvd3MgKE1TVkMpLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6IENIQU5HRVM6IHRlc3Rpbmc6CgogUGVybCByZWdyZXNzaW9uIHRlc3RzOiBEb24ndCBmYWlsIHNraXBwZWQgdGVzdHMuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOiBDSEFOR0VTOiBwZXJsOiBBZGQKCiBTTk1QOjpnZXRlbnYoKSBhbmQgU05NUDo6c2V0ZW52KCkuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBBZGQgbmV0c25tcF9zZXRlbnYoKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBkb2N1bWVudCBob3cgdG8KCiB1c2Ugb24gV2luZG93cwoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IFNldCBleGVjdXRlIGZsYWcgb24gbG9jYWwvcGFzc19wZXJzaXN0dGVzdAoKIHN1Y2ggdGhhdCB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoYXQgZmlsZSB3b3JrCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogRml4IGEgc3VwcHJlc3Npb24gcGF0dGVybgoKCjIwMTEtMDgtMTIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlMzJhYTk3NzQyMjMyY2VkM2E3MmY4Yjg0NWFjZTVjZTNkNTNiOGRmIE1lcmdlOiA0YWRmZWM4CgogODZmYmQzMyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogRnJpIEF1ZyAxMiAwOToxMToxNCAyMDExIC0wNzAwCgoyMDExLTA4LTEyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYTczZWI0MGVjMjYzYTBmZGY1M2E3NGU3MjBkZGY0MWM0YTdlZTNkNCBNZXJnZTogNzY5MDg5NAoKIDI5NDBlZTMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBBdWcgMTIgMDk6MTE6MTMgMjAxMSAtMDcwMAoKMjAxMS0wOC0xMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDFmMGE5MjhhMjkxM2NmYTdmNWNlYWFmNDY5NmM2OWZiZGM2ODc2MjEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIEZyaSBBdWcgMTIKIDA5OjA5OjExIDIwMTEgLTA3MDAKCjIwMTEtMDgtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA0YWRmZWM4MTIxNmY2YzViZjI1YzlhYzZiMmI3NDc4ZDFiZThlODQyIE1lcmdlOiAyODFiODY5CgogMjk0MGVlMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDExIDE4OjU3OjI5IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxZTEwMDBhODgxNTkyMWI1ZWMyZTc5OTdiNTM1OTJhNTQ0YjNkZmMyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDExIDE1OjQ2OjMyIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyODFiODY5NjFiMTAyNjZkZGYzODgzOTQyZDRkYzNiNmI5OGQzMjI3IE1lcmdlOiBkOGQyMjVjCgogZjE4MTA5OSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDExIDE4OjQ2OjA2IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IE1lcmdlIFY1LTQtcGF0Y2hlcy4KCgoyMDExLTA4LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jOiBkb24ndCBhc3NlcnQgb24gYSBkb3VibGUKCiBpbml0OyBqdXN0IGRvbid0IGRvIGl0IHR3aWNlCgoyMDExLTA4LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDhkMjI1Y2EzNGE4ZjIyNzUyMTUzYWNiNzk0NGY5NDM1ZjU2NGQyYyBNZXJnZTogMDZiNDE4NgoKIDQ3YzhlZjEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCiAxMCAxODowNToyMSAyMDExICswMjAwCgoyMDExLTA4LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6IFNOTVBfRlJFRSgpOiBjYXN0IGFyZ3VtZW50IHRvCgogKHZvaWQgKikgYmVmb3JlIHBhc3NpbmcgaXQgdG8gbmV0c25tcF9mcmVlKCkKCjIwMTEtMDgtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAwNmI0MTg2NWVjMzAyYzM5MzFiMTA4M2QzZmRlODlmOTM0NWVjMDZmIE1lcmdlOiAxMTQyNmZiCgogYTRmNmFjNyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyA5IDA2OjQ0OjQxIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxMTQyNmZiM2M2ZjMyNzgyMGI5YmI4NmE3NmVjYzllMmMzN2U3OTM0IE1lcmdlOiAwMzQ0ZGY5CgogOWJmMDY4MSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyA5IDA2OjQ0OjExIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA5YmYwNjgxMjE4ZWRmNDNjZGI1ZmM2OGYxNzIxMjNiYzRhMmQwMTg4IE1lcmdlOiBmOWRiNjExCgogY2NiMGViNiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKIDkgMDg6MTk6MzMgMjAxMSArMDIwMAoKMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRlN2UzNDhlY2UwM2QyMzgwYzJhODgwNmViYmFkNWQ5YjU0ODc2ODIgTWVyZ2U6IGQ1MzhiY2IKCiBjY2IwZWI2IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZwogOSAwODowNzoyMiAyMDExICswMjAwCgoyMDExLTA4LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMDIyMDM5MmQ4OTlhOWNhYjcwMWY3NGFmMTIwMzBiYjFkNGNjNWUyZSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAxIDEzOjAyOjE1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUxCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6CgogNS43LjEucHJlMQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgY2Y0Y2NlNGMxODljZjQ3ZjRjNDg5ZGI0M2I3ZmE1MTBmODkwNmExYSBNZXJnZTogZGY5MWE5ZgoKIDkzZTk3ZGMgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMjoxNToyOCAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgCiAgICAgIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46IERlZmluZQoKIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4gKGFzIHBlciBBbGV4JyBidWlsZAogaW5zdHJ1Y3Rpb25zKQoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46IERlZmluZQoKIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4gKGFzIHBlciBBbGV4JyBidWlsZAogaW5zdHJ1Y3Rpb25zKQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRmMTZkYzIyMjFlOTkzZGQzYzY2NjUwZDVlODcyNTc3ZmZlNmMwMWIgTWVyZ2U6IDcxNGJjODIKCiA4ZTVhMjhkIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTM6NTY6NDMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGZmYTA1YjA1MWFjM2UyYjE5NzE5NWE5OTg5Y2M3YTkxZmU4ZDkyODIgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMzo1NTozOAogMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCA3MTRiYzgyZmEwMWUyMWEzNjU1ODI0OTYzZmE1NGU5YjgwNDJmZmIwIE1lcmdlOiA2ZmU4ZmU1CgogM2VmMWRiNSBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24KIEF1ZyA4IDIxOjIxOjQ2IDIwMTEgKzAxMDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgYjQ1MTYwN2RjYTAxNWMxMTFlOTZmZGZlYjJkZGIwNjYxZmI0ZjcyNCBBdXRob3I6IERhdmUKCiBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbiBBdWcgOCAyMToyMDozMiAyMDExCiArMDEwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDZmZThmZTUyOTRhNDViYzdlNGVhMzc1MWExYWQ3YWE0N2I1Y2FiYjIgTWVyZ2U6IDM2NGY4ZmYKCiBmNjlhYmUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAyMjowMjozOCAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYzk0ODEzMDQ0YTRjNGE2MDhlOThlODAyMjMwNzVjNmZhZjA0ZWUxMSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjU2OjE1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAzNjRmOGZmYWViOTBiNGViMDE2NWZjODU1Njg4Y2QwNjI2NjMyNzk0IE1lcmdlOiAzMjg3Mjk1CgogN2FiYjkyNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDExOjI0OjI2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRpc3BsYXkgdGhlIGJyYW5jaCB3ZSdsbCBjb21taXQgdG8KCgoyMDExLTA4LTA4ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMzODY2MzM6CgogZnJvbSB3dWxmMjAwMTogZml4IGludGVnZXIgb3ZlcmZsb3cgaW4gZGlzayBwZXJjZW50IGNhbGN1bGF0aW9ucyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4NGE3NzVkMDU1N2ZlYTk3NTcwZTQxNzE1YTMxNjQ5NzBiNGMwM2EyIE1lcmdlOiA2ZmZmMWMxCgogZDM3M2M0ZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMjA6MTI6MzIgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzg3MTM5OiBmcm9tCgogeWFiZXJhdW5leWE6IEF2b2lkIHNlZ2ZhdWx0IGlmIHRyYXBzZXNzIHRyYW5zcG9ydCBlbGVtZW50IGNhbnQgYmUKIHBhcnNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG5zc2ZwYXRjaGFwcGx5OiBzcGxpdCB0aGUKCiBkaXNwbGF5ZWQgZ2l0IGNvbW1pdCBjb21tYW5kIGludG8gbXVsdGlwbGUgc2VnbWVudHMKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzM4Njk2MToKCiBNYWtlIFNOTVAgR0VUIHdvcmsgaW4gYW4gQWdlbnRYIHN1YmFnZW50IGlmIHdyaXRlIHN1cHBvcnQgaXMKIGRpc2FibGVkIHZpYSBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKE1hcmsgUnVzaykuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogRml4IGEgY3Jhc2ggdGhhdCBjb3VsZCBiZQoKIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90CiBlcXVhbCB0byAtMS4KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA2ZmZmMWMxYWU1MWIwNmM5ZDgwZmFmMTUzNzNhOTYzZDE3M2YxNGU4IE1lcmdlOiA4MzdjNTJlCgogOGNjOTAwNCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjU4OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4Y2E3ZmYxZTY5MmNhZWM0MTg2Yjc4OGM5YWUyZDI3YmUyMTMyOTBmIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTA6MzM6NTYKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiOGY1MjljYmEyN2MwMTE0YjRjYjczNDBjZmQ0NDk1MDRmYTA3NTA2IE1lcmdlOiAwODIyZjJkCgogNTU2ZTkzOCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjA1OjM2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCBmdW5jdGlvbiBuYW1lIHR5cG8KCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjk4ODJhMDc4YTk1OWEwZjc4YjAzZTAxOTY4ZjFkMTdiN2Y2YTI5OSBNZXJnZTogNWU5YmQyZgoKIDA0MDljMGEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDowMzozNCAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2Ugb2YgcHVsbC9wdXNoCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSBuc3B1bGwvbnNwdXNoIGNoZWNrIGZvciBhCgogY2xlYW4gcmVwbwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbmV3IGZ1bmN0aW9uICJuc21ha2VhbGwiIHRvIHRlc3QKCiBidWlsZGluZyBvbiBldmVyeSBicmFuY2gKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRlZmF1bHQgdG8gbWVyZ2UKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvCgogVjUtNy1wYXRjaGVzCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6IENIQU5HRVM6IFdpbmRvd3M6IEF2b2lkIHRoYXQgaWYKCiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGhhdmUgYmVlbiBidWlsdCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZgogTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdGhhbiBBY3RpdmVQZXJsIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIFBlcmwKIG1vZHVsZXMgdHJpZ2dlcnMgYSAiRnJlZSB0byB3cm9uZyBwb29sIiBjcmFzaC4gVGhpcyByZWdyZXNzaW9uIHdhcwogY2F1c2VkIGJ5IGNvbW1pdCAzYjE0YzU5Y2Y4Mjc4ZDQxMDIwN2ZmNDJkZWJkYTI2MzY0MjZhNDY4ICh0aGUKIG5ldHNubXBfZnJlZSgpIGludG8gU05NUF9GUkVFKCkgY2hhbmdlcyBpbiB0aGUgKi54cyBmaWxlcykuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTEwOTUzOTkzMDcwM2NiMzA1MmQ1MjQxYjE4YWM2ZmMwNjJmYWFjYSBNZXJnZTogMGM5YjZjYgoKIGU0NmIxNzAgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDE4OjM0OjExIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCgogdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QKIGVxdWFsIHRvIC0xLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDdmNDJkMGQ5MzMyMDQ4NDE1MjI3MTQyN2NjOTgwOGNiZGE0OWJiZDAgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAwOTo1MDo1MSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGM5YjZjYmU5ZGJlMmVjNTIxN2E5NWI2NzgxZmQ3ZGMxZjZlYmRhNyBNZXJnZTogZmE2Y2VmNQoKIDk2MzMyMGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDE4OjE0OjM2IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhM2I4NjU0YTIzMmM1NjNiYzk3Y2M5OTI1Y2Q5ODU5MGEzMGM1YmM1IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMTc6MjQ6MTggMjAxMSArMDIwMAoKMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGZhNmNlZjVjYTkxZGYzYTBiMDM0NTViNjg1NTlkMmJlZTI0ODEwMWMgTWVyZ2U6IGY1ZmU1MzYKCiA4YWRkMGRhIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZwogNyAxMDoxODo1NCAyMDExICswMjAwCgoyMDExLTA4LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTBkZDNjYWYyNTkyNmU0MzQ2NTcxOGJmNDE3YTQ2NGMyZmIzNjM2NiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZyA3IDEwOjE3OjAxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiAzMiBpcyB0b28gbGltaXRlZCBmb3IKCiBiaWdnZXIgdGFibGVzOyBpbmNyZWFzZSB0aGUgbWF4IG1zZyBjb3VudCB0byAxMjgKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2Ugcm9sbHVwIGFuZCBzeW5jIHN1cHBvcnQKCiAtLXJlYmFzZSBhbmQgY2hhbmdlIHRoZSBkZWZhdWx0IGJhY2sgdG8gbWVyZ2UKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudGVkIGhvdyB0byB1c2UgYnVpbGQuYmF0IHdpdGgKCiBPcGVuU1NMIGVuYWJsZWQKCjIwMTEtMDctMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBvdXRkYXRlZCBpbnN0cnVjdGlvbnMgYWJvdXQKCiBlZGl0aW5nIHdpbjMyXGxpYnNubXBfZGxsXGxpYnNubXAuZGVmIGZyb20gUkVBRE1FLndpbjMyCgoyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnQgaG93IHRvIGJ1aWxkIDY0LWJpdAoKIGV4ZWN1dGFibGVzIGZvciB0aGUgeDY0L2FtZDY0IGFyY2hpdGVjdHVyZQoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGY1ZmU1MzZlOGZkNmM0OGZlMjQzZGVjZDMxZmFjOWNmMWM5MmY0Y2MgTWVyZ2U6IDc4NTBlYTEKCiA4MDkyOGE4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxNToxMzoyNyAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODA5MjhhODkwOWNmYWIzN2YwMWIzOWEwNzFhM2U4YWQ4NTk1NjIyMiBNZXJnZTogZjE2YTA5NAoKIDBkYmM4NjkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEzOjU3OjMwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZGJjODY5ZmVjMDdkOGU5MGRiZDFjOTU0OTNlZTdjYmM2MjNjOTVjIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTI6NDA6MzEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZAoKIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLmRlZiBhbmQgcGVybC9TTk1QL3QKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4NmMxZTJiOTY3OWZlYzJjZDc5OWJhNzYwMDVjM2Q2MGU5ZDQ3NjM0IE1lcmdlOiBiY2Q4NjM1CgogZjE2YTA5NCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTI6MjA6NTAgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJmOGQ0ZjU3OTZjYmMxYzdlOTY3YWNkYWE4MDE5YjI0ZjE1MjBhMzYgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMjowMjo1MSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgLSByZXZlcnQgY29tbWl0CgogZDJjNDc2OGJkMmVmYjQ4NjY0NDM0YTgzMTQyNWMyZGRhODVkNzEzMyAoQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0gKIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlCiBub2lzZSkuCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDogCgogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0CiBiZjcxNzhiMGIyMjU4N2Q0M2QxYTgwYzI2OWNkMjE2YmQ1OTMwMjE0IChhZ2VudDogY2hhbmdlIHR5cGUgb2YKIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZykKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMKCiBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAogMGU2ODQyZmUwODBjZWM4NTNiMDhjZDIzMjMwMTVhYmFiYzM4MWNlMSAoQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSAogMzM4MzQ0MTogZnJvbSBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mCiBmcmVlZCBtZW1vcnkpLgoKMjAxMS0wOC0wNSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IG1pbm9yIE5FV1MgcG9saXNoCgoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGJjZDg2MzUwNzEzODIyOTYzZDM3NmVmZjU4MmE5MmY0M2U0MjZkNmMgTWVyZ2U6IDljODEwYTMKCiA3YTIwZjcxIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMDoyODo1NSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgM2FhOTQ5ZmJkZmMxYTk0YTgzNDBhZDhiYWY4YjMxNDc1NmEwYmI5ZCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5YzgxMGEzYjM3YjY4NTczYzQwMzM3ZTI0NmUyZmFmMjk5Yjc3ZDMxIE1lcmdlOiA3MWNiMmU4CgogNjEwZDYzZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDEwOjQyOjA4IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5NDM5MzBlMWUxMjQzODVmZDk0NzM4YjZkY2RhMzdkMjlkYzdhYzdmIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMTA6NDE6NDEKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0ZWRjYjg4ZGFlOGIyZTU5ZGM2ODNlODBkNDE0ZmE3ZWNlYzM2ODg1IE1lcmdlOiA2NWYzZWVmCgogMmRkOWVkMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDEwOjI0OjExIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS01LXBhdGNoZXMnIGludG8KCiBWNS01LXBhdGNoZXMKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiYzVjYTAzYTA0YWIxOWM2MzRhMzRkMDYwYjBiMTZiNzQ4NGNiNTIwIE1lcmdlOiA4OGZkZGI3CgogOTBjMGU3NSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTk6MTM6MDcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmM6IHNubXB1c206IEZpeCByZWNlbnRseQoKIGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzogQ0hBTkdFUzogb3BlbmJzZDoKCiBQQVRDSCAzMzU3OTMyOiBmcm9tIHQwancyZnUwa21nOiBDbGVhbmluZyBpbiBtZW1vcnlfbmV0YnNkLmMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmM6IENIQU5HRVM6IGFnZW50OgoKIFBBVENIIDMzODYxNDc6IGZyb20gd3VsZjIwMDE6IGZpeCBVQ0QtU05NUC1NSUI6OmRza1VzZWQgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDczZDdlNWNkNGQ0MTFiYmEyMGViODUzNTlkODcyODA2MzMwMWNiZCBNZXJnZTogYTRlOGI2MgoKIDg4ZmRkYjcgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyODoyMiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjEwMWJiMmQ3YWQ2ZGIwMzhjNzU1YWE5MTkzYzhhY2UwZGJkNGY1OCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDA5OjI4OjA2CiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogLmdpdGlnbm9yZTogaWdub3JlICoub3JpZyBhbmQgKi5yZWoKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBoZWxwIG91dHB1dCBkZXNjcmliZXMgcmViYXNlIHZzCgogbWVyZ2UgYmV0dGVyCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjEyNmExN2M2YTMwNjM0NTVhNTExOTQwYjAyMzA0N2FiZDliNDhlZSBNZXJnZTogYWQ3NjVmNAoKIDc3YTQ3ODQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyNToxNiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDUyZTE3MDdmMjA5ZWM0NWU3YzdmMmEzMDQwZWY1OTVmYjlkMWFmNiBNZXJnZTogZGM3NTVhNgoKIGIzNzJlNWEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyNTowMyAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDUuaDogQ0hBTkdFUzogb3BlbmJzZDogUEFUQ0gKICAgICAgMzM1NzkyNzoKCiBmcm9tIHQwancyZnUwa21nOiBSZWNvZ25pc2Ugb3BlbmJzZDUgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBzcGxpdCBuc3NmcGF0Y2hhcHBseSBpbnRvIHR3bwoKIHBhcnRzOiBhcHBseSBhbmQgY29tbWl0aW5nCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBwYXRjaCB1c2luZyAtTgoKCjIwMTEtMDgtMDQgIERhdmlkIEFybm9sZCA8ZGphQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgCiAgICAgIG1hbi9maXhwcm9jLjEuZGVmLCBtYW4vbWliMmMuY29uZi41LmluLCBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLAogICAgICAgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAKICAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wY29uZi4xLmRlZiwKICAgICAgbWFuL3NubXBkLjguZGVmLCAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgCiAgICAgIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmLCAKICAgICAgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcG5ldHN0YXQuMS5kZWYsIG1hbi9zbm1wc2V0LjEuZGVmLCAKICAgICAgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsIG1hbi9zbm1wdGVzdC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsIAogICAgICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdXNtLjEuZGVmLCBtYW4vc25tcHZhY20uMS5kZWYsIAogICAgICBtYW4vc25tcHdhbGsuMS5kZWY6IENIQU5HRVM6IG1hbjogUEFUQ0ggMzMxMjg2MTogZnJvbSBkamE6IE1hbgogICAgICBwYWdlcwoKIGh5cGhlbi12cy1taW51cyBjbGVhbnVwIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBEZXRlY3QgKGFuZCByZWplY3QpIE9wZW5TU0wKCiAxLjAuMAoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBDb21tYW5kLWxpbmUgb3B0aW9ucyBmb3Igc2lsZW50CgogaW5zdGFsbAoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBFbnN1cmUgV2luZG93cyBwYWNrYWdlCgogdW5pbnN0YWxscyBjb21wbGV0ZWx5LgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDgxYzYzZmI1YzVlNGFiYjljMjlhY2E4OWJmOWQ2OTQ0MTAwODZlOTcgTWVyZ2U6IDRhNjkyMGEKCiBkYzc1NWE2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDg6MzM6MzQgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzogYWRkZWQgc3BhY2luZyB0byBtYXRjaCB0aGUgbGF0ZXIgYnJhbmNoZXMKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiByZW1vdmVkIGFjY2lkZW50aWFsbHkgZHVwbGljYXRlZCBjb2RlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKCiBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CgogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCiBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKIENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSCAzMzgzOTUxOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggLVd1bnVzZWQKIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlODc4YWJiZGIxODA4ZWY4M2UwYTgwNzQ1MzZmYjU0ZTEzMjE5YThiIE1lcmdlOiA0MDNkZTQyCgogODc4ZmJmNCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjU1OjAwIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNTBhZmEwNjg5MmZkODk3YWMzMWUzODM2YTdmZmM5ZTJiNGNmN2I5IE1lcmdlOiAyYzE0YzFjCgogM2FmYzVlMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjUxOjMzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1NzhjZDdjY2UzNTFhZThkOTA0ZWMzZDgwYmU5YmE2ZDFkNDhhNzEyIE1lcmdlOiAyNTk4OGJlCgogZjNiYzU1MSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjUwOjU2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGF1dG9jb25mCgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0gKCiAzMzgzOTQ5OiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggYXV0b2NvbmYgdGVzdHMgZm9yIHN5cy9tYnVmLmggU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBwcm9tcHQgZm9yIHBhdGNoIGFuZCBhbiBhcmVhLCBhbmQKCiB1c2UgdGhlIHByb3BlciBDSEFOR0VTIGxpbmUgZm9ybWF0CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBVc2UgZmV0Y2ggLS1hbGwgYW5kIHJlYmFzZSBhcwoKIHN1Z2dlc3RlZCBieSBCYXJ0IGZvciBzcGVlZCBpbXByb3ZlbWVudHMKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkNmExYTg5ZTZmNjQ4OTUxYTliODMxOTMyZDNjYzIzMDgyMWYyZDM3IE1lcmdlOiBkY2I3MTJmCgogODcyZTAxMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTI6MDY6MTggMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDQ0OTY5YjRlNTdjMjcxOTRlNWJkMzU3YmM0NTI3NWZlYjg2OTVkMjIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgOCAyMDo1MjoyNSAyMDExICswMjAwCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6IENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IEludm9rZQoKIFNubXBVdGlsT2lkRnJlZSgpIGJlZm9yZSBTbm1wVXRpbE9pZENweSgpLiBJdCdzIG5vdCBjbGVhciB5ZXQgd2h5CiB0aGUgb3JpZ2luYWwgY29kZSBkaWQgbm90IG1ha2Ugc25tcHdhbGsgdHJpZ2dlciBhIG1lbW9yeSBsZWFrLgoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRjYjcxMmZmYzg2YjMzNTgzMDAwZWY0YWU5YTUxY2VkMjVjZDE1YmYgTWVyZ2U6IGU4NWNmYTUKCiA5ODYyM2VmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxMTozNjoxNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOGEwMWVjNjQyM2Q0MDBjNGExM2NjYWM2OGEzNzkxZDAyMThhMDg4NSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDExOjE5OjE3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlODVjZmE1OTliMjNiNzZkOTc5MTNjOTZiNWQ3MDNiZmY2YmE0OTQ0IE1lcmdlOiBiMDU2ZWU2CgogZTIxZWVmMiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMDg6NDQ6NDMgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogQ0hBTkdFUzogYWdlbnQ6CgogQXZvaWQgdGhhdCBhIE1JQiB3YWxrIG9uIHRoZSBob3N0IHJlc291cmNlcyBNSUIgdHJpZ2dlcnMgYSBjcmFzaCBvbgogRmVkb3JhIDE1CgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYjA1NmVlNmViNTM5MDlhZDA0ZjE2ZWMyNmQyNjkwZDdhMDgzMTkyYSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDA3OjU5OjA0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCiAgICAgICBlc3MuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcwogICAgICAgLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYWdlbnQvc25tcF9hZ2VudC5jLCAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXB0bHMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wdXNtLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDoKCiBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBhZThlM2VjZDJkZjRjZjM3NjI1OTQ0YWRlZDFkZmU0NzM1ZDQ0ZWVhIE1lcmdlOiA3MzE4N2NlCgogOTMzNWUxOSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEF1ZyAzIDE0OjM3OjM2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3OTRmOWE2OWQ3ZWI2NDIyNjgyMDBiMGE0YjE5OTE1MWRlZjY2ZWQwIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgQXVnIDMgMTQ6MzY6MjUKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDctMTggIElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6IGFnZW50OiBjaGFuZ2UKCiB0eXBlIG9mIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZyBUeXBlIG9mIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdmFyaWFibGUgaXMgY2hhbmdlZCBmcm9tIGludCB0byBsb25nLgogVGhpcyBmaXhlcyB0aGUgYnVnIHdpdGggd3JpdGluZyB0byBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgaWYgc2VydmVyCiBpcyBjb21waWxlZCBmb3IgNjRiaXQgKHNubXBzZXQgcmVwb3J0cyB3cm9uZyBsZW5ndGgpLiBUaGlzIGJ1ZyB3YXMKIGludHJvZHVjZWQgYSBsb25nIHRpbWUgYWdvIChieSBmYWVlY2QwIGNvbW1pdCkuICBBY3R1YWxseSB0aGlzIGlzIGEgJ2xlc3MgZWZmb3J0JyB0eXBlIG9mIGZpeCBidXQgSSB3b25kZXIgd2h5IHdlCiBuZWVkIGEgbG9uZyB0byBzdG9yZSBhbiBJTlRFR0VSIGluIHRoZSBmaXJzdCBwbGFjZT8gU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+IFNpZ25lZC1vZmYtYnk6IFdlcwogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNmFkN2UyOGZmOWU1ZTRlYmMxMzU4ZWUzOWNjOTc5NmE0NGExYmVlNyBNZXJnZTogZjI4MzJlMwoKIDFlMTU0Y2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCiAzIDE5OjE1OjI0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2MWIxNzhmMWVlODk1MmFhMDNhYTNiMWJhNTFmNGE2NjU1ZTQ3ZjAxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnIDMgMTg6MDk6NDcgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDogV2hpdGVzcGFjZS1vbmx5IGNoYW5nZTogZml4IGluZGVudGF0aW9uCgogb2YgYW4gI2luY2x1ZGUgZGlyZWN0aXZlCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9OZXRTTk1QLnhzOiBDSEFOR0VTOiBQZXJsOiBSZW1vdmUgZmlsZSBwZXJsL05ldFNOTVAueHMKCiBiZWNhdXNlIGl0IGJyZWFrcyB0aGUgV2luZG93cyBidWlsZC4gIFRvIFdlczogaWYgeW91IGNhbiB0ZWxsIG1lIGhvdyB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0geW91IG9ic2VydmVkCiBJJ2xsIHRyeSB0byBmaW5kIGEgcG9ydGFibGUgZml4LiAgVGhpcyByZXZlcnRzIGNvbW1pdCBkNTQ4NzFmNTI5MzY3NWM4MDU4ZWNjZTg4ZmVkNWI2NDZjODM2MzIzICgiQWRkZWQKIGEgYm9ndXMgZW1wdHkgLnhzIGZpbGUgZm9yIGJ1bmRsaW5nIG9uIG5ld2VyIHBlcmwgdGhhdCB3YW50cwogInNvbWV0aGluZyIiKS4KCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZjQ4OWIxOTlhZGFiNDhiMTYzM2ViY2FmNWZmNWE3YzIyYzRjYjg5IE1lcmdlOiBmNGVhYTAyCgogNzJhNTliYyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKIDIgMTA6MTE6NTMgMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDdmY2MwYjgwMzJmOGRhNWI3YmMzMDA1OWFmMGJhNjU2ZWFlNzEwOTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgMSAxNDoxMToyOCAyMDExICswMjAwCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jOiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluCgoKIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCgoyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGZpbGUgbmFtZXMgYW5kIHBhdHRlcm5zIGZvciBvdXRwdXQKCiBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBXaW5kb3dzIGJ1aWxkCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCgoyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIC5naXRpZ25vcmUsIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOiBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgoKCjIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmNGVhYTAyZDliMDc2YTY3ZDcyNzJkZTdlZWY4ZTlkZmJmMTg5YmJmIE1lcmdlOiA0MDEyNWQ4CgogYWRhZGNiOSBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAyIDAwOjU3OjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6IHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCgoKMjAxMS0wOC0wMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0MDEyNWQ4NTM5Y2Q4OWY5NTJmYmMyNDU4OGM1ZTgxZTljZDgyMWZlIEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyAxCiAxMzo1ODozMyAyMDExICswMjAwCgoyMDExLTA4LTAxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNWFjZjBkMmNlYjM5Nzc5NjRlZDM5ZjAwMzA3M2JhNjQxMzhjMmViZCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEp1bCAzMSAyMzo1Nzo0MQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGE3NzIyYTgxZjljYjdhYTg2NzBlN2MyMzg2MDEzNjJhMzEwODdhY2MgTWVyZ2U6IDI0MmUxNzkKCiBhZTlhYzZjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEp1bAogMzEgMDk6MTE6NDUgMjAxMSArMDIwMAoKMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc3NodG9zbm1wLmM6IEZpeCBhbiBpbmNvcnJlY3Qgc291cmNlIGNvZGUgY29tbWVudDogdGhlcmUgaXMKCiBubyByZXF1aXJlbWVudCBpbiB0aGUgQU5TSSBDIHN0YW5kYXJkIHRoYXQgc3RhY2sgdmFyaWFibGVzIHNob3VsZCBiZQogaW5pdGlhbGl6ZWQgdG8gemVyby4KCjIwMTEtMDctMzEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNDJlMTc5N2IyNjk0YTA2ODk4NTZhZTM2ZDA1ZDM0MTNhYWY4ZDc3IEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDAxOjQ0OjA5CiAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nCgogZ2V0YWRkcmluZm8oKSBhbmQgRUFJX0ZBSUwgKGUuZy4gSFAtVVggMTAuMjAvMTEuMDApCgoyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMThkZjc1OWYxOWI5NzVjNDQ5ZDAxMGJiMGExNjIxMTliYjY4MzYwZCBNZXJnZTogNTRhNDRjYgoKIDcwNTA3MTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgSnVsCiAzMCAxNjozOToxMyAyMDExICswMjAwCgoyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODJkNzNmYjExYmUzYWUzMWYzOWM5ZDYxOGQ1Mzg4ZGM5YjEwMDZkNyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAyOSAyMDo1MToyNyAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IGF1dG9yZWNvbmYKCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IGF1dG9yZWNvbmYKCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMTA5ZjY2OTRkNzg4ZjQ4ZWJkOWZjMGExZTkwYzQ1YWJjMzdiZWEyMCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDdkODEwMGVlZDQ1OWExZmYxYTIwYzA2NzM2NGZhNmNiNDc0OTEzMDkgTWVyZ2U6IDExNmMyNGYKCiA5ZTQ3YWM0IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBTYXQgSnVsIDMwIDAwOjIwOjAxIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMsIGRpc3QvbnNiLW5pZ2h0bHksIGRpc3QvbnNiLXBhY2thZ2U6IG1pbm9yIG5zYgoKIGZpeGVzL2VuaGFuY2VtZW50cyBmcm9tIG15IG9sZCBzdm4gdHJlZQoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDExNmMyNGYwZjdmYjNmOTliYTY0NjczMGY2MWM1NmQxYWUyM2JhNDEgTWVyZ2U6IDk4MmZiN2YKCiA0ZmMwYjhiIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bAogMjkgMTE6MzE6MjAgMjAxMSArMDIwMAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGM0ODE3M2MwNmE5ZWFhZGJmODFlNmI0OTYyZDU1ZWYwYTU0ZGIyNTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMTA6Mjc6MzkgMjAxMSArMDIwMAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgbHRtYWluLnNoLCBtNC9saWJ0b29sLm00OiBSZXJ1biBhdXRvcmVjb25mCgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYzogRml4IHR3byBmaWxlbmFtZXMgaW4gaG9zdCBtaWIKCiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOTgyZmI3ZmQ4YmFiMjVjNDMyMmFhNjJjNTA0MzcwMzZjZTI5NmUzZSBNZXJnZTogMWVkYTY3NQoKIDM0NTgxMjggQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgSnVsIDI4IDE2OjI0OjAzIDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBGaXggcG90ZW50aWFsCgogc2lnc2VndiB3aGVuIGFuIGlmVGFibGUgZW50cnkgaXMgcmVtb3ZlZCBhcyByZXN1bHQgb2YgYm90aAogaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIGFuZCBpbnRlcmZhY2VfZmFkZW91dCBhdCB0aGUgc2FtZSB0aW1lLgoKMjAxMS0wNy0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc3NodG9zbm1wLmM6IE1ha2UgYXBwcy9zc2h0b3NubXAuYyBidWlsZCBhZ2FpbiAod2FzIGJyb2tlbiBieQoKIGNvbW1pdCA2MTIyNDdjZGYxNGMxZTc0NWMzODRjZWZlMWYzZmRlM2U0NDViMzQ3IHRoYXQgY2hhbmdlZAogTVNHX05PU0lHTkFMIGludG8gTkVUU05NUF9OT1NJR05BTCkKCjIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxZWRhNjc1M2I3ZmU3ZDNiM2YyMTdjMDkyNTRlYzAyZDBlZTFkMGNlIE1lcmdlOiBkYjhiODYwCgogYTJmOWVjZSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwKIDI4IDE1OjMyOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IAoKIENIQU5HRVM6IHNubXBkOiBSZXN0b3JlIHN0b3JhZ2UgdGFibGVzIG9uIExpbnV4CgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX3JlcGxhY2Vfb2xkJyBvcHRpb24gdG8gcmVtb3ZlIG9sZCBlbnRyaWVzIGluCiBpZlRhYmxlIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhbHJlYWR5IGV4aXNpbmcgb25lCiBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCB0aGUgaW50ZXJmYWNlX2ZhZGVvdXQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCgogZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKIGxpZmV0aW1lIG9mIGlmVGFibGUgZW50cmllcyBvZiByZW1vdmVkIGludGVyZmFjZXMuICBQcmV2aW91cyBsaWZldGltZSB3YXMgaGFyZGNvZGVkIDUgbWludXRlcywgbm93IGl0J3MgY29uZmlndXJhYmxlLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkNjJhMGViOTA3MGI0ZDhkOWZlMmJjZmRiNGQ1M2QzN2VmODE0ZjliIEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEp1bCAyOAogMTQ6NDk6MDggMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMgaW4KIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKIGFwcGVhcnMuICBFLmcuIHJlbW92ZSBvbGQgcHBwMCBpbnRlcmZhY2Ugd2hlbiBuZXcgcHBwMCBzaG93cyB1cC4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEFsbG93IGlmVGFibGUKCiBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKIGRpc2FwcGVhcnMgKGkuZS4gaW50ZXJmYWNlX2ZhZGVvdXQgPSAwIHdvcmtzIGFzIGV4cGVjdGVkKS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldAogbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4gIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCgoyMDExLTA3LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZAogICAgICBmaXgKCiBmb3Igc3lzdGVtcyBsYWNraW5nIE1TR19ET05UV0FJVAoKMjAxMS0wNy0yNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOiBDSEFOR0VTOiBzbm1wZDogTWFrZQoKIFRDUC1NSUI6OnRjcEN1cnJFc3RhYiB3b3JrIGFnYWluLiBXYXMgYnJva2VuIGluIDUuNyBieSB0aGUKIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmVzIiBmZWF0dXJlLgoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmYjg4MDc0ZmJiYzI2OGM3ZjA1MDk0OTE1MzVhZWM1ZmVjYjA1Njg0IE1lcmdlOiBhNzQzYWU1CgogMzgyMTI3MyBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBKdWwgMjcgMTQ6NDc6MjUgMjAxMSArMDIwMAoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAzMWZhMDdjZDlmZmRlNDZkNDFkMmI1ODM4YzNmYzRkMDE1NDhiZmI1IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1bCAyNwogMTQ6NDU6NDcgMjAxMSArMDIwMAoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpCgogaXMgaW50ZXJydXB0ZWQuICBUaGlzIGJlaGF2aW9yIGlzIGluZGljYXRlZCBpbiBjb21tZW50IG9uIGxpbmUgMTI0NCwgYnV0IGl0IHdhcyBub3QKIGFjdHVhbGx5IGRvbmUuCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmU5NDY2ZDdmNTlkNjVkMDUwMjc3NzM1ZTRlZDlkMzA3MTlmZjc1MiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAyNiAxMzoxMDowNCAyMDExICswMjAwCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNzcwODI5Njc2MGVhZjVhODBkODU0MDc0NmM5YzI0OTgyNmZkMWJmZSBNZXJnZTogZWExMWU1ZQoKIGNkNmUzODIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAyNiAxNjoyMTo0MSAyMDExICswMjAwCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOiBDbGFyaWZ5IGFuIElQdjYgc291cmNlIGNvZGUgY29tbWVudAoKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzogU3BlbGxpbmcgZml4OgoKIGRlZmluZWR5IC0+IGRlZmluZWQKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjM6IFNwZWxsaW5nCgogZml4OiBhbGV2aWF0ZSAtPiBhbGxldmlhdGUKCjIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGQyYzQ3MTMzNDkzZDVhMDBkZTZiM2NkYmNmYWM3ZTlkNDRiNmZmZSBNZXJnZTogZjljY2JjNwoKIGVhMTFlNWUgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgSnVsIDI2IDE0OjI1OjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzVhODQ2NGM0MmE5NGMyNTBlZTJkZmEyYTQ3MzEwOWE3MzQyMDNkOCBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMjYKIDE0OjI0OjU1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjUgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjljY2JjNzcyNjY2MTM0ZDFkMTc4YjUwNWFmOWRkY2RkOWVkNDI0NCBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBKdWwgMjUKIDE1OjAyOjE1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiMGMwYTM1NWQ1ZjYwMWExMWJlNDkxNGZiZjcxMzcxNmFiZDMwYTI5IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CiAxODozNjoxMSAyMDExIC0wNzAwCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzE0ZmMzODYxNGJhZjEwZDUxNzEzNmYwNDgwOTA3YjdmMDNkOGQ3NCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1bCAyMAogMTM6NDQ6NTkgMjAxMSAtMDcwMAoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CgogbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYmRkMjE2YzA3NGJmNDFjZDNhMDg0YmQxNDY4OWNmMDFjODg3YjMxIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CiAxODozNjoxMSAyMDExIC0wNzAwCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogLmdpdGlnbm9yZTogdXBkYXRlZCBnaXRpZ25vcmUgdG8gaWdub3JlIGEgbnVtYmVyIG9mIGF1dG8tZ2VuZXJhdGVkCgogZmlsZXMKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOiByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdAoKIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGY1ZjcwMDU1Y2Y5YmUzM2YwNWZiNTBhYmUyZjVhODFlYWMwOTJhZCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAxMTowNzoxOSAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZjU5NmYxODI0MmRjZGZkNmNmNDljODhkYTFkODM2YzE2ZTI2MGNhYyBNZXJnZTogMGYzMDliNAoKIDcwZGVlNGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAxOSAxMTozMzoyOCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6CiAgICAgIDMzNjk2ODA6CgogZnJvbSBJbHlhIFlhbm9rOiBjaGFuZ2Ugc25tcF9lbmFibGVhdXRoZW50cmFwcyBmcm9tIGludCB0byBsb25nIHN1Y2gKIHRoYXQgbW9kaWZ5aW5nIHRoZSBjb3JyZXNwb25kaW5nIE1JQiBvYmplY3QgZG9lcyBub3Qgb3ZlcndyaXRlCiBtZW1vcnkgaW4gNjQtYml0IGJ1aWxkcy4KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMzcwNjQ1OgoKIGZyb20gQmlsbCBGZW5uZXI6IEZpeCBBZ2VudFggc3ViYWdlbnQgZm91ciBieXRlIGxlYWsKCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6IGRvCgogbm90IGludm9rZSBJU1JVTk5JTkcoKSBvbiBNaW5HVy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CgogY2xlYW51cCAtIHJlbW92ZSBjb2RlIHRoYXQgYmVjYW1lIHN1cGVyZmx1b3VzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXOiBEbyBub3QKCiBhc3N1bWUgdGhhdCBraWxsLmV4ZSByZXBvcnRzIHZpYSBpdHMgZXhpdCBzdGF0dXMgd2hldGhlciB0aGUKIHNpZ25hbGxlZCBwcm9jZXNzIHN0aWxsIGV4aXN0cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFJlbW92ZSB0aGUgZnVuY3Rpb24gV0FJVE9SRElFKCkgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaCBzaW5jZSBpdAogaXMgbmV2ZXIgaW52b2tlZC4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFNpbXBsaWZ5IFdBSVRGT1IoKSBpbiBzaW1wbGVfZXZhbF90b29scy5zaC4gVGhlIGNvZGUgdGhhdCBoYW5kbGVkCiBpbnZvY2F0aW9uIG9mIFdBSVRGT1IoKSB3aXRoIHplcm8gb3Igb25lIGFyZ3VtZW50cyBoYXMgYmVlbiBkcm9wcGVkCiBzaW5jZSBXQUlURk9SKCkgaXMgYWx3YXlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczoKCiBtaW5vciBzaW1wbGlmaWNhdGlvbi4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOiBDSEFOR0VTOgoKIHRlc3Rpbmc6IFNraXAgdGVzdCA1OSBpZiBTSUdIVVAgaXMgbm90IHN1cHBvcnRlZC4gTWFrZXMgdGVzdCA1OSBwYXNzCiBvbiBNaW5HVy4KCjIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBNaW5HVyBmaXgKCgoyMDExLTA3LTA2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBmcmFtZXdvcmsKCiByZWZhY3RvcmluZzogSW50cm9kdWNlIFdBSVRGT1JOT1RDT05EKCkuCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBNYWtlIFNUT1BQUk9HIHNlbmQgU0lHVEVSTSByZXBlYXRlZGx5LiBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZQogU0lHVEVSTSBjb3VsZCBiZSBzZW50IGJlZm9yZSB0aGUgU0lHVEVSTSBzaWduYWwgaGFuZGxlciB3YXMgc2V0IHVwLAogZXNwZWNpYWxseSB3aGVuIHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgVmFsZ3JpbmQuCiBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBTTk1QX1ZFUkJPU0U9MSBvdXRwdXQgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzCgogcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBFQ0hPU0VORFNJR1RFUk0oKSBhbmQgRUNIT1NFTkRTSUdLSUxMKCkKCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBGaXggYSBidWcgaW4KCiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoIHRoYXQgd2FzIGludHJvZHVjZWQKIGluIGNvbW1pdCA5MzhkNzVjLgoKMjAxMS0wNy0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IElnbm9yZSAqLmV4ZSBmaWxlcyBnZW5lcmF0ZWQgYnkgdGhlIFdpbjMyCgogYnVpbGQKCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFRlc3Qgb25seSBvbmNlIGR1cmluZyBhIHRlc3Qgd2hldGhlciB0aGUgc2hlbGwgc3VwcG9ydHMgc3ViLXNlY29uZAogc2xlZXBpbmcgaW5zdGVhZCBvZiByZXBlYXRlZGx5LgoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjogQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlZAoKIGRlZmF1bHQgdGltZW91dCBmcm9tIDFzIHRvIDEwcyB3aGVuIHRoZSByZWdyZXNzaW9uIHRlc3RzIGFyZSBydW4KIHVuZGVyIFZhbGdyaW5kCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBBZnRlciBoYXZpbmcgc2VudCBTSUdURVJNIHRvIHNubXBkIG9yIHNubXB0cmFwZCwgd2FpdCB1bnRpbCB0aGUKIHByb2Nlc3MgaGFzIHN0b3BwZWQgYmVmb3JlIHNlbmRpbmcgU0lHS0lMTC4gVGhpcyByYWNlIGNvbmRpdGlvbiB3YXMKIGhpdCBtb3N0IGVhc2lseSB3aGVuIHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgVmFsZ3JpbmQuCiBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayBQSUQgZmlsZSBleGlzdGVuY2UgYWZ0ZXIgaGF2aW5nIHJlYWQgaXQKIGluc3RlYWQgb2YgYmVmb3JlLiBUaGlzIGZpeGVzIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgUElEIGZpbGUKIGRpc2FwcGVhcmVkIGFmdGVyIHRoZSBleGlzdGVuY2UgY2hlY2sgYW5kIGJlZm9yZSBpdCB3YXMgcmVhZC4KCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBUaGlzIHBhdGNoIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyB0byBWNS42IFNWTiBwYXRjaGVzOiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWRnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZjMwOWI0OTNjMjFkM2M2OTE0NDg3NTE0YjQxNTYwNzU0ZmZjZGY5IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDE5IDA4OjM3OjUwIDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxYjc0NTRiYzI4MTU2ODQ3MGExMzAwNDc2ZDJlZGI0ZjQxMWU2MDI5IE1lcmdlOiA4ZDlkY2M4CgogNjkwZWE3ZCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDE5IDA4OjMxOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEFkZCBtaXNzaW5nIG5ld2xpbmUKCiBjaGFyYWN0ZXIgaW4gYSBsb2cgbWVzc2FnZQoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuCgogc2h1dHRpbmcgZG93bgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSdW4gYXV0b3JlY29uZi4KCiBGaXhlcyBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgcGF0Y2gKIGQ1ODhlYzg1M2JkMDUzMWYyMTJmY2JmNTFiOTYyYjk2YzY4MjhiNTkgKFJQTSA0Ljkgc3VwcG9ydCkKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkNjE3ZDg0ZjgzZmE2OWVkOWZhOWY5OGVmYzRhZmFmODgwZDEyMWYyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsIDE0IDE2OjQzOjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDctMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IE1ha2UKCiBuZXRzbm1wX2lwdjZfZm10YWRkcigpIHNob3cgdGhlIElQdjYgc2NvcGUgSUQKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBBZGQgc3VwcG9ydAogICAgICBmb3IKCiBJUHY2IGFkZHJlc3Mgc2NvcGUgSUQKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mCgoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGE1NjcyMWEzZTc3NTRlMzg5ZGFhN2U4YTNkNTc5Mjg5OWVkYzlkZTMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAoKMjAxMS0wNy0xNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDg0NGQ0Y2U4NjdiZjNhYmU3Yjc1MzZjNWRiZmJhNDAxOTM3YThkNGEgTWVyZ2U6IGVlZDAxOTgKCiA2MTAzNmE4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBGcmkgSnVsIDE1IDE1OjMzOjEwIDIwMTEgLTA3MDAKCjIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4NTFiY2Y1M2ZjZDEzY2RmMGJhOWYxMmU1ZDYwM2U3M2Y4YmI5NjExIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBGcmkgSnVsIDE1CiAxNTozMjo0OSAyMDExIC0wNzAwCgoyMDExLTA3LTE0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBhIHR5cG8KCgoyMDExLTA3LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogc25tcGxpYjogIHR3ZWFrIHBhdGNoIDMwNDQ4ODggdG8gcmVzdG9yZQoKIHByb3BlciBub24tZXJyb3IgcmV0dXJuIGR1cmluZyBtaWIgbG9hZGluZwoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYWRkZWQgNS43IHBhdGNoZXMgdG8gdGhlIGJyYW5jaCBsaXN0IGFuZCBmaXggdGhlIHJlbGVhc2UgZmlsZQoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGFkZGVkIDUuNyBwYXRjaGVzIHRvIHRoZSBicmFuY2ggbGlzdAoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCgogYnJhbmNoZXMKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIDUuNyBwYXRjaGVzCgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGM0MzEyMzFlOGYwYTM5ZDE5NTBiYzcyYzMyZTM0MDJmOTBmYTgwMzAgTWVyZ2U6IDU2ZmVlNDAKCiBhMmFjMjRkIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gSnVsIDExIDE5OjMzOjE3IDIwMTEgLTA3MDAKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29weSBvZiB0aGUKCiBzaGVsbC1mdW5jdGlvbnMgdG8gdGhlIG9sZGVyIGJyYW5jaAoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKCiBicmFuY2hlcwoKMjAxMS0wNy0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNwoKCjIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNwoKCjIwMTEtMDctMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogUmV2ZXJ0ICJmaXggZHRsc3VkcAoKIHRyYW5zcG9ydCBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiIgVGhpcyByZXZlcnRzIGNvbW1pdCAyYWIzYTZlNmYyZmNjMWZmM2U1ZjBmYjVkYzVkMDVlNDk4ODIwZDg5LiAgIC0gZm9yIHNvbWUgcmVhc29uIEkgc2F3ICdyYycgYW5kIG15IGJyYWluIGludGVycHJldGVkIGl0IGFzICAgICdwcmUtcmVsZWFzZScuIFdoYXQgY2FuIEkgc2F5LCBpdCB3YXMgbGF0ZS4gOi0vCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IGZpeCBkdGxzdWRwIHRyYW5zcG9ydAoKIGFkZHJlc3MgZm9ybWF0IGZ1bmN0aW9uICAtIHVwZGF0ZSBpcHY0IGZtdGFkZHIgdG8gaGFuZGxlIHNvY2thZGRyIGFuZCB0byBjaGVjayAgICBzaXplIGJlZm9yZSBhc3N1bWluZyBkYXRhIGlzIGFkZHIgcGFpciAgLSBtb3ZlIGR0bHN1ZHAgZnVuY3Rpb25zIHRvIGV4dHJhY3QgYWRkcihzKSB0byB0bHNiYXNlCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNTZmZWU0MDExOGIyMWE5ZjRkYzAyYTZmMjQ3ZjdkYTZmYzY5YTAwNSBNZXJnZTogZDM5MTk0YgoKIDlmZjQ3MTQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBKdW4gMjkgMjM6MTg6MTMgMjAxMSAtMDcwMAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGZpeCB0YWcgcHVzaGluZwoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZQoKIHB1Ymxpc2hpbmcKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcucmMzCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LnJjMwoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKCiBwdWJsaXNoaW5nCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogcmFuIGF1dG9oZWFkZXIgdG8gYWRkIHRoZQoKIG1pc3NpbmcgdGVtcGxhdGUgaWZkZWZzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LnJjMgoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzIKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNjRiNmM2OGE4NDkzMGFiMDFlM2UxNDZjNDlmM2FiNTM4MmVmZGEzZSBNZXJnZTogMTI3ZWVjMgoKIGQzOTE5NGIgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBKdW4gMjkgMTc6MTI6NDYgMjAxMSAtMDcwMAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRmOWNmOWExZTI5M2QwNWEyNDc4NjY5NGY2OGMwNWEyYmUxM2E5YjMgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdW4gMjkKIDE2OjM0OjExIDIwMTEgLTA3MDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogdXNlIGdpdDJjbCB0byBnZW5lcmF0ZSB0aGUgQ2hhbmdlTG9nIGZpbGU7CgogbmVlZHMgbXVjaCBtb3JlIHdvcmsuCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9ydW4tYXV0b2NvbmY6IEEgc2NyaXB0IHRvIGludm9rZSB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIHRoZQoKIGF1dG9jb25mIHRvb2wKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtYWluaW5nIGNvbW1hbmQgbGluZSBjaGFuZ2VzIGZvciBzdm4gLT4KCiBnaXQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWFrZSB0aGUgYnJhbmNoIGVjaG8gb3V0cHV0IGFuZCBzdm4gdXBkYXRlCgogY29udmVydGVkIHRvIGdpdCBlcXVpdmFsZW50cwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBwdWxsIHRoZSBicmFuY2ggaW5mbyBmcm9tIGdpdAoKCjIwMTEtMDYtMjkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrIHdpdGgKICAgICAgbGlicmFyeQoKIHZlcnNpb24gNC45CgoyMDExLTA2LTI5ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGQ1ODhlYzg1M2JkMDUzMWYyMTJmY2JmNTFiOTYyYjk2YzY4MjhiNTkgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVuIDI5CiAxNjowNzowMCAyMDExICswMjAwCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBub3RlZCB0aGF0IHRoZSBtYXN0ZXIgYnJhbmNoIGlzIGluIHJjIHN0YXRlCgoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IDhiMjNiNGMxMzkyM2I4Y2FmNGQ0YWVkMzJhNDUwOTMzOTM0ZmY0NjEgTWVyZ2U6IDE1Mzc4MWQKCiA0N2Y1MDQ4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgVHVlCiBKdW4gMjggMTM6MTQ6NTIgMjAxMSAtMDcwMAoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IGFmOGIyMzUyMzRmNzI5NDRhNjQ5YTc2ZjBkMzBjZmY5NWFjMmU4OTUgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIFR1ZSBKdW4gMjggMTM6MTE6MTkgMjAxMQogLTA3MDAKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBnaXQgbWVyZ2Ugd2l0aCB0aGUgLS1sb2cKCiBvcHRpb24KCjIwMTEtMDYtMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxNTM3ODFkYmZiMmFmYzAwMDNiYTRlNThmZmNjYTUzMDAxZTQ4NmQ2IE1lcmdlOiBiM2U4MGRlCgogM2M1YTQwOSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdW4KIDI4IDE5OjQzOjEzIDIwMTEgKzAyMDAKCjIwMTEtMDYtMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA5YmM4MmU0Y2E0ODM3ZjAwMDcyZGJhODZiOTQ5N2EyNzE4NjkwOWY5IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVuIDI4IDE5OjEzOjM1IDIwMTEgKzAyMDAKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiBGQVE6IFdlJ3JlIG5vdyB1c2luZyBnaXQhCgoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IGIzZTgwZGU5YjA3ZDI4MmZmMTFhZjhiMDZhOTFkNjQyNzlkMzI2MWQgTWVyZ2U6IGM0YWQyNzgKCiA2YTVlNWE2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgTW9uCiBKdW4gMjcgMjE6MzQ6NTkgMjAxMSAtMDcwMAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IDM4ZmU4MTc3ZDUzMzEzNWE2Y2M2ODI3MjRmMTZhOTExMTNiY2Q3ZjMgTWVyZ2U6IDdkOTE3Y2YKCiBkZDU4YmFmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgTW9uCiBKdW4gMjcgMjE6MzQ6NTYgMjAxMSAtMDcwMAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IDVjMTc3ZjUxN2QxNmYwNTU0NWIyNzlkMTZmMGU0ZmQ1Njk2YmU2NTEgTWVyZ2U6IGYwZDZiZjAKCiBjMmJjZWJjIEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgTW9uCiBKdW4gMjcgMjE6MzQ6NTUgMjAxMSAtMDcwMAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIDogY29tbWl0IDljOTc2OTU3MmViOGMwM2I2OTU1NmMxYzVhYWI5YjRkNTZjNmQxZDMgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBKdW4gMjcKIDE0OjExOjE0IDIwMTEgKzAwMDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgZmVhdHVyZSB0byBub3Qgcm9sbAoKIGJyYW5jaGVzIGN1cnJlbmx5IGluIHJjIHBoYXNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIG5zcm9sbHVwIGZ1bmN0aW9uIGZvcgoKIHJvbGxpbmcgYnJhbmNoZXMgdXB3YXJkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGNyZWF0ZWQgYW4gbnNwYXRjaGFwcGx5IGZ1bmN0aW9uCgogdG8gYXBwbHkgYSBwcmV2aW91c2x5IHRlc3RlZCBwYXRjaCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3RyeXBhdGNoIGZ1bmN0aW9uIHRvCgogdGVzdCBwYXRjaCBhcHBsaWNhdGlvbiBhZ2FpbnN0IHZhcmlvdXMgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIHZlcmJvc2Ugb3V0cHV0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbW9yZSBwcmVmaXggY2hhbmdlcyBhbmQgYmV0dGVyCgogc2V0dGluZyBvZiBkZWZhdWx0IHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIG5zIHByZWZpeGVzIGluc3RlYWQgb2YgZ2VuZXJpYwoKIHNubXAgcHJlZml4ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IAoKIE1pc3NpbmcgY2hlY2sgZm9yIHJwbXRzLmggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrCgogd2l0aCBsaWJyYXJ5IHZlcnNpb24gNC45IEJhc2VkIG9uIGEgcGF0Y2ggYnkgSmFuIFNhZnJhbmVrIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzogUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZwoKIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nCiB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCiBmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCgogZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKIChyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCiBmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCgogZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKIChyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCiBmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCgogZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKIChyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCiBmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKCiB0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgogdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCiBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgogdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCiBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgogdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCiBvZiAlbGQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAoKIG9mICVsZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogcnVuIGNvcnJlY3QgdmVyc2lvbiBvZiBhdXRvY29uZiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiByYW4gYXV0b2NvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEwICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IEluY2x1ZGUgc3RkbGliLmggdG8gbWFrZSBkbWFsbG9jIGhhcHB5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTAgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzOiBGaXggYnVpbGQgb2Ygc25tcHVzbQoKIHdoZW4gYWRkaXRpb25hbCBzZWMgbW9kdWxlcyByZXF1ZXN0ZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogSW5jbHVkZSBzdGTniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy09YCSkWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA5ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzogQ0hBTkdFUzogQlVHOiAzMTUxODQ1OiBmaXggbXVsdGlwbGUKCiByZWdpc3RyYXRpb25zIG9mIHNubXAgdHJhbnNwb3J0IGhhbmRsZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA5ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzogQ0hBTkdFUzogQlVHOiAzMTUxODQ1OiBmaXggbXVsdGlwbGUKCiByZWdpc3RyYXRpb25zIG9mIHNubXAgdHJhbnNwb3J0IGhhbmRsZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDggIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgCiAgICAgIHNubXBsaWIvc3lzdGVtLmM6IG1vcmUgZG5zc2VjIHR3ZWFrcyAgLSBjcmVhdGUgYW4gYXBwLWdsb2JhbAogICAgICB2YWxpZGF0b3IgY29udGV4dCBmb3IgdXNlIHdpdGggYWxsICAgIHZhbGlkYXRpb24gcm91dGluZXMuIG1haW5seQogICAgICB1c2VmdWwgZm9yIGxvbmctbGl2ZWQgYXBwcy4gICAtIHVzZSB0aGUgYXBwdHlwZSBhcyB0aGUgdmFsaWRhdG9yCiAgICAgICdzY29wZScsIGFsbG93aW5nICAgIGZvciBhcHAtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvZiB2YWxpZGF0aW9uCiAgICAgIHZpYSBsaWJ2YWwncyAgICBkbnN2YWwuY29uZiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDcgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDogYWRkIGEgbWF4IGRlZmluZSBmb3IKCiBlYWNoIGRlZmF1bHQgc3RvcmUgdHlwZSAgIG5vdCBhY3R1YWxseSB1c2VkLCBqdXN0IGEgaGVscGZ1bCByZW1pbmRlciBmb3IgdGhvc2UgYWRkaW5nICAgbmV3IGlkcyB3aG8gbWlnaHQgbm90IHRoaW5rIHRvIGNoZWNrIE5FVFNOTVBfRFNfTUFYX1NVQklEUy4gICAgKHRoZSBib29sIGxpc3QgaXMgcmFwaWRseSBhcHByb2FjaGluZyB0aGUgY3VycmVudCBsaW1pdC4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA3ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjogbWVudGlvbiBidWlsZGRpciB3aGVuCgogY29tcGxhaW5pbmcgYWJvdXQgbm90IGJlaW5nIHJ1biBmcm9tIHNvdXJjZSB0cmVlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6IFJldmVydGVkIHIyMDM2MjogdGhhdCBwYXRjaCBtYWtlcyBzZW5zZSBvbiB0aGUKCiB0cnVuayBhbmQgdGhlIDUuNiBicmFuY2ggYnV0IG5vdCBvbiB0aGUgNS41IG5vciBvbiB0aGUgNS40IGJyYW5jaC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcKIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yIGRlYnVnZ2luZwogb3V0cHV0IG9mIGFnZW50eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcKIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogZml4ZWQgYXV0b2NvbmYgdmVyc2lvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOiBSZWluc3RhdGUgYW4gInVudXNlZCIgbGFiZWwgdGhhdCBpcyBhY3R1YWxseQoKIHN0aWxsIHJlcXVpcmVkLiAgKHJlZmVyZW5jZWQgaW4gbGluZSAyNzEwKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogRml4IHR5cG8gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgQ0hBTkdFUywgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggeG1sIHF1b3RpbmcgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvcGFyc2UuYzogZml4IG5vbiBleGlzdGVudCBtYWxsb2MgbWFjcm8gdG8gdXNlIGNhbGxvYwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEFwcGxpZWQgdGhlIGludGVudCBvZiBwYXRjaCAzMDQ0ODg4IHRvIGFsbG93IGFwcGxpY2F0aW9ucwogdG8gcmVhZCB0aGUgZXJyb3IgbWVzc2FnZXMgb2YgYSBNSUIgcGFyc2luZyBmYWlsdXJlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiAKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgogY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiAKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgogY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiAKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgogY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiAKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgogY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiAKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgogY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aAoKIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCiBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoCgogb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LiAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQKIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrCiAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aAoKIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCiBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogdXAgdGhlIGFudGUgYW5kIHJ1biBvdGhlciB0ZXN0IHN1aXRlcwoKIGJlc2lkZXMganVzdCB0aGUgZGVmYXVsdCBzZXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6IEFwcGxpZWQgdGhlIGludGVudAogICAgICBvZgoKIHBhdGNoIDMyOTkzODYgd2hpY2ggZml4ZXMgZHVwbGljYXRlIGVudHJpZXMgb24gYSBTSUdIVVAuICBUbyBhY2hpZXZlCiB0aGlzIHNvbWUgbmV3IGhlYWRlcl9jb21wbGV4IGZ1bmN0aW9ucyBuZWVkZWQgdG8gYmUgY3JlYXRlZCB0aGF0CiBkaWRuJ3QgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgb2xkZXIgb25lcy4gIFRoZSBub3RpZmljYXRpb24gY29kZQogbm93IGNhbGxzIHRoZXNlIG5ld2VyIGZ1bmN0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KCiB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KCiB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KCiB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KCiB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaCwgcGVybC9NYWtlZmlsZS5QTDoKCiBORVdTOiBzbm1wZDogcGF0Y2ggMzEzMTM5NzogZnJvbSB0YWtldm9zOiBodWdlIHNwZWVkdXBzIG9mIHRoZQogVENQL1VEUCBUYWJsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL05ldFNOTVAueHM6IEFkZGVkIGEgYm9ndXMgZW1wdHkgLnhzIGZpbGUgZm9yIGJ1bmRsaW5nIG9uCgogbmV3ZXIgcGVybCB0aGF0IHdhbnRzICJzb21ldGhpbmciIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6IENIQU5HRVM6Cgogc25tcGQ6IHBhdGNoIDMzMDY0NzY6IGZyb20gdGlueXB5cmFtaWRzOiBmaXggbWVtb3J5IGxlYWsgaW4gdGhlCiBzd3J1biBjb250YWluZXIgbG9hZGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzogQ0hBTkdFUzoKCiBzbm1wZDogcGF0Y2ggMzMwNjQ3NjogZnJvbSB0aW55cHlyYW1pZHM6IGZpeCBtZW1vcnkgbGVhayBpbiB0aGUKIHN3cnVuIGNvbnRhaW5lciBsb2FkaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IEZvbGxvdy11cCBmb3IgcjIwNDQ5OiB1c2UKCiBORVRTTk1QX1BSSW8gInUiIGZvciBwcmludGluZyBzdWJpZHMgaW5zdGVhZCBvZiBvbmx5IE5FVFNOTVBfUFJJby4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDQ0OTogdXNlCgogTkVUU05NUF9QUklvICJ1IiBmb3IgcHJpbnRpbmcgc3ViaWRzIGluc3RlYWQgb2Ygb25seSBORVRTTk1QX1BSSW8uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogTWljcm9zb2Z0CgogVmlzdWFsIFN0dWRpbzogTGluayB3aXRoIGdkaTMyLmxpYiBpZiBPcGVuU1NMIGhhcyBiZWVuIGVuYWJsZWQKIGJlY2F1c2UgZ2RpMzIubGliIGlzIGEgZGVwZW5kZW5jeSBvZiBPcGVuU1NMLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKCiBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZAogYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdAoKIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCiBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiBGb2xsb3ctdXAgZm9yIHIyMDQ0ODogc2luY2UgdGhlCgogIm9pZCIgdHlwZWRlZiBoYXMgYmVlbiBjaGFuZ2VkIGJhY2sgZnJvbSB1aW50MzJfdCB0byB1X2xvbmcsIGNoYW5nZQogTkVUU05NUF9QUklvIGZyb20gTkVUU05NUF9QUkkzMiBpbnRvICJsIi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogRm9sbG93LXVwIGZvciByMjA0NDg6IHNpbmNlIHRoZQoKICJvaWQiIHR5cGVkZWYgaGFzIGJlZW4gY2hhbmdlZCBiYWNrIGZyb20gdWludDMyX3QgdG8gdV9sb25nLCBjaGFuZ2UKIE5FVFNOTVBfUFJJbyBmcm9tIE5FVFNOTVBfUFJJMzIgaW50byAibCIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0Cgogc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKCiBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0Cgogc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMKCiBhZ3JlZWQgdG8gb24gLWNvZGVycyBhbmQgaW4gdGhlIGFkbWluIG1lZXRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiByZXZlcnQgT0lEIHR5cGVkZWYgdG8gdV9sb25nIGFzCgogYWdyZWVkIHRvIG9uIC1jb2RlcnMgYW5kIGluIHRoZSBhZG1pbiBtZWV0aW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc3lzdGVtLmM6IFJlbWVtYmVyIHRvIHJldHVybiBpbmZvIGFsc28gd2l0aG91dCBETlNTRUMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCgogYWZ0ZXIgbWFsbG9jIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYzogQWRkZWQgTlVMTC1jaGVja3MKCiBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCgogYWZ0ZXIgbWFsbG9jIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6IENIQU5HRVM6CgogYWdlbnQ6IEJVRzogMzMwNTE1NzogRml4IGlwQWRkcmVzc1ByZWZpeCBoYW5kbGluZyBvZiBJUHY2IGFkZHJlc3NlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzogQ0hBTkdFUzoKCiBhZ2VudDogQlVHOiAzMzA1MTU3OiBGaXggaXBBZGRyZXNzUHJlZml4IGhhbmRsaW5nIG9mIElQdjYgYWRkcmVzc2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogQlVHOiAzMjk1NDA3OiBGaXgKCiBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CgogaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CgogaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzIzNDc1NDogRW5zdXJlCiAgICAgIG9sZAoKIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgogICAgICAzMjM0NzU0OgoKIEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6CiAgICAgIDMyMzQ3NTQ6CgogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMKIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CgogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6IENIQU5HRVM6IG1hbjogQlVHOgoKIDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWY6IAoKIENIQU5HRVM6IG1hbjogQlVHOiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQKIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZjogCgogQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZAogc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcF9hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOiBDSEFOR0VTOiBtYW46IEJVRzoKCiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlCgogY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4gIChhbHJlYWR5CiBmaXhlZCBpbiBWNS01LXBhdGNoZXMgYW5kIFY1LTQtcGF0Y2hlcyBpbiBTVk4gcmV2LiAyMDExNSwgZHVubm8gd2h5CiBJIGRpZCBub3QgcGF0Y2ggdHJ1bmspIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlCgogY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4gIChhbHJlYWR5CiBmaXhlZCBpbiBWNS01LXBhdGNoZXMgYW5kIFY1LTQtcGF0Y2hlcyBpbiBTVk4gcmV2LiAyMDExNSwgZHVubm8gd2h5CiBJIGRpZCBub3QgcGF0Y2ggdHJ1bmspIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgoKIDMxODQ2OTc6IERvbid0IHJlZmVyZW5jZSBpbnRlcm5hbCBNRDUgd2hlbiBpdCdzIGV4cGxpY2l0bHkgZGlzYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgoKIDMxODQ2OTc6IERvbid0IHJlZmVyZW5jZSBpbnRlcm5hbCBNRDUgd2hlbiBpdCdzIGV4cGxpY2l0bHkgZGlzYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogbWFrZSBzdXJlIHdlIGdldCB0aGUgaGludCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBGb2xsb3ctdXAgZm9yIHIyMDQzMjogdGVzdGluZy9SVU5URVNUUyB3aXRob3V0CgogYXJndW1lbnRzIHdvcmtzIGFnYWluIGFzIGl0IHNob3VsZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6IEZvbGxvdy11cCBmb3IgcjIwNDMyOiB0ZXN0aW5nL1JVTlRFU1RTIHdpdGhvdXQKCiBhcmd1bWVudHMgd29ya3MgYWdhaW4gYXMgaXQgc2hvdWxkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IFJhbgoKIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYyB0aHJvdWdoIGRvczJ1bml4LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGU6IEZpeGVkIGEgdHlwbyBpbiBhCgogY29tbWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZTogRml4ZWQgYSB0eXBvIGluIGEKCiBjb21tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBSVU5URVNUUyB3b3JrcyBhZ2FpbiBmb3IgdGVzdHMgd2l0aCBhIGZvdXItZGlnaXQKCiBudW1iZXIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBSVU5URVNUUyB3b3JrcyBhZ2FpbiBmb3IgdGVzdHMgd2l0aCBhIGZvdXItZGlnaXQKCiBudW1iZXIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBidWcgaW4KCiBuZXRzbm1wX2dldGFkZHJpbmZvKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBEb2N1bWVudCB0aGF0IHRoZSB1Y2Qtc25tcAoKIGRpc2tpbyBjb2RlIHN0aWxsIGhhcyB0byBiZSBtb2RpZmllZCBzdWNoIHRoYXQgZGlza2lvX2ZyZWVfY29uZmlnKCkKIGdldHMgaW52b2tlZCB1cG9uIFNJR0hVUC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBEb2N1bWVudCB0aGF0IHRoZSB1Y2Qtc25tcAoKIGRpc2tpbyBjb2RlIHN0aWxsIGhhcyB0byBiZSBtb2RpZmllZCBzdWNoIHRoYXQgZGlza2lvX2ZyZWVfY29uZmlnKCkKIGdldHMgaW52b2tlZCB1cG9uIFNJR0hVUC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IGZpeCBjYXN0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmM6IFJldmVydCAyMDQyMCAiQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIKCiB0YWJsZXMgaW50cm9kdWNlZCBieSBwYXRjaCAjMzA1MzQzNi4iIFJldmVydCAxOTcwOCAiQ0hBTkdFUzogc25tcGQ6CiBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OiB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MKIGludmFsaWQgbWVtb3J5IGFjY2VzcyIgdGhlIGJ1ZyAzMDUzNDM2IGlzIGZpeGluZyB3YXMgaW50cm9kdWNlZCBpbiByMTc3MTksIGFuZCBmaXhlZCBpbgogcjE3ODYxLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6IG1vcmUgZG5zIHJlbGF0ZWQgdHdlYWtzICAtCiAgICAgIGFkZCBuZXRzbm1wX2dldGhvc3RieWFkZHIgIC0gYWx3YXlzIGRlZmluZSBuZXRzbm1wXyogdmVyc2lvbnM7CiAgICAgIGxvZ29uY2UgaWYgdW5kZXJseWluZyAgICBmdW5jdGlvbiBpcyBub3QgYXZhaWxhYmxlICAtIHVzZSBuZXcKICAgICAgZnVuY3Rpb25zIGluIGRpc21hbiBtaWJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBzbm1wbGliL3NubXB2My5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6IHVzZSBuZXcgbmV0c25tcCBkbnMKCiBmdW5jdGlvbnMgaW4gYXBwcy9zbm1wbGliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzogbW92ZSBETlNTRUMKCiB2YWxpZGF0aW9uIGludG8gcmVzb2x2ZXIgd3JhcHBlciBmdW5jdGlvbnMgICAtIGFsbG93cyBvdGhlciBjb2RlIHRvIGJlbmVmaXQgZnJvbSB2YWxpZGF0aW9uICAgLSBuZXcgbmV0c25tcF9nZXRob3N0YnluYW1lLCBuZXRzbm1wX2dldGFkZHJpbmZvIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpCgogcGFpciBieSBhIGNhbGwgdG8gcmVhbGxvYygpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpCgogcGFpciBieSBhIGNhbGwgdG8gcmVhbGxvYygpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpCgogcGFpciBieSBhIGNhbGwgdG8gcmVhbGxvYygpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6IEZpeCBmb3IgUkhFTDQKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IEhlYWRlciBmaWRkbGluZyBmb3IgdGhlCgogYmVuZWZpdCBvZiBSSEVMNCwgU29sYXJpcywgT3BlbkJTRCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmM6IENIQU5HRVM6IHNubXBkOiBGaXhlZCBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCIHRhYmxlcwogICAgICBpbnRyb2R1Y2VkCgogYnkgcGF0Y2ggIzMwNTM0MzYuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jOiBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbWVtb3J5IGxlYWsgaW4gVENQLU1JQiB0YWJsZXMKICAgICAgaW50cm9kdWNlZAoKIGJ5IHBhdGNoICMzMDUzNDM2LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDogUmV2ZXJ0ZWQgYWNjaWRlbnRhbGx5IGNvbW1pdHRlZAoKIGNoYW5nZXMgb2YgcjIwNDEyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiBzbm1wX2ZyZWVfc2Vzc2lvbigpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiBzbm1wX2ZyZWVfc2Vzc2lvbigpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzCgogcGFzdCB0aGUgZW5kIG9mIHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYXJyYXkgX21pYmluZGV4ZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzCgogcGFzdCB0aGUgZW5kIG9mIHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYXJyYXkgX21pYmluZGV4ZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzCgogcGFzdCB0aGUgZW5kIG9mIHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYXJyYXkgX21pYmluZGV4ZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzogQXZvaWQgdGhhdCBNU1ZDIHRyaWdnZXJzIGEgY29tcGlsZXIgd2FybmluZyBvbgoKIHRoZSBjb2RlIGluIHNubXBsaWIvbGNkX3RpbWUuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYzogQXZvaWQKCiByZWFkaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKCiBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaWZUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQoKIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKCiBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaWZUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrCgogaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhawoKIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsKCiBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOiAKCiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpCiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDoKCiBleGl0ZW50IC0+IGV4aXN0ZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nLCBzbm1wbGliL21pYi5jOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudAoKIHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZywgc25tcGxpYi9taWIuYzogRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50Cgogc3BlbGxpbmcgZml4OiBleGl0ZW50IC0+IGV4aXN0ZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IENIQU5HRVM6IFdpbjMyOiBCdWlsZAoKIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYyBvbmx5IGlmIE5FVFNOTVBfRU5BQkxFX0lQVjYKIGhhcyBiZWVuIGRlZmluZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBpbnN0YWxsIHRoZSBidWlsdCBmZWF0dXJlCgogaGVhZGVycyB0b28gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGU6IENIQU5HRVM6CgogdGVzdGluZzogVGVzdHMgMDI1IGFuZCAwMjYgcGFzcyBvbiBNaW5HVyBldmVuIGlmIHdpbkV4dERMTCBoYXMgYmVlbgogZW5hYmxlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlOiBUMDY1IHJvYnVzdG5lc3MKCiBpbXByb3ZlbWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c192b2lkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3Lmg6IENIQU5HRVM6IHNubXBkOiB1Y2Rfc25tcCBidWlsZHMKCiBhZ2FpbiBvbiBNaW5HVyBhbmQgQ3lnd2luLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogaW5zdGFsbCB0aGUgbmV0LXNubXAtZmVhdHVyZXMuaCBmaWxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogSW1wcm92ZWQgdGVzdAoKIHJvYnVzdG5lc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzogQ29tcGlsZXIgd2FybmluZyBmaXhlcy4gIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZwoKIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCgogYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZwoKIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYzogQXZvaWQgb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaWYgdGhlIGxhc3QgY2hhcgoKIG9mIHRpbWVfc3RyaW5nIGlzIGluIHRoZSByYW5nZSAweDgwLi4weGZlIGFuZCBjaGFyIGlzIGEgc2lnbmVkIHR5cGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogUmV2ZXJ0ZWQgcjIwMzgwIGJlY2F1c2UgaXQgYnJlYWtzCgogYWxsIHN0YXRlbWVudHMgdGhhdCBwcmludCBhbiBPSUQgc3ViLUlEIG9uIGFueSA2NC1iaXQgcGxhdGZvcm0uIFRoZQogZWZmZWN0IG9mIHIyMDM4MCBvbiBiaWcgZW5kaWFuIGFyY2hpdGVjdHVyZXMgd2FzIHRoYXQgYSAiMCIgd291bGQgYmUKIHByaW50ZWQgaW5zdGVhZCBvZiB0aGUgT0lEIHN1Yi1JRCAoYXQgbGVhc3Qgd2l0aCB0aGUgTFA2NCBhbmQgdGhlCiBJTFA2NCBtb2RlbHMpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOiBDKysgLT4gQyBjb21tZW50cwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBORVdTIHVwZGF0ZSBmb3IgNS43IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogcmV2ZXJ0IHRoZSBvaWQgdHlwZWRlZiByZXNpemluZwoKIGZyb20gcjE3ODA5IGJlY2F1c2UgaXQgYnJva2UgYmFja3dhcmRzIGNvbXBhdCwgYXMgcG9pbnRlZCBvdXQgYnkKIHVzZXJzIG9uIHRoZSAtY29kZXJzIGxpc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHVzZSBwcm9wZXIgYXV0b2NvbmYgdmVyc2lvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IGFkZGVkIGEgbWlzc2luZyAwIGluIHRoZSByZXZpc2lvbiBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvcmZjbWlicy5kaWZmOiBJQU5BIGhhcyBmaXhlZCB0aGUKCiBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9yZmNtaWJzLmRpZmY6IElBTkEgaGFzIGZpeGVkIHRoZQoKIElBTkEtSVBQTS1NRVRSSUNTLVJFR0lTVFJZLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogYWRkZWQgYSBuZXcgUkVWSVNJT04gY2xhdXNlIHRvIGxpc3QgdGhlCgogY2hhbmdlcyBpbiB0aGUgdGhlIHJlY2VudCB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBhZGRlZCBwaW5nL3RyYWNlcm91dGUgbWlicyBub3RlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6IHdlIGFjdHVhbGx5IHdhbnQgdG8gdXNlIHRoZSBiYXNlCgogT0lEIGFzIHRoZSBzdGFydGluZyBwb2ludCwgbm90IHRoZSByZWcgT0lELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOiBmaXhlZCB0aGUgcHJveHkgc3VwcG9ydCB0byBkbyBhCgogcHJvcGVyIE9JRCBsZXNzIHRoYW4gT0lEIGNvbXBhcmUuICBXZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZQogbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0LCBvbmx5IHRoYXQgaXQgd2FzIGJlZm9yZSB0aGUKIHJlZ2lzdGVyZWQgcmViYXNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogQ0hBTkdFUzogcGF0Y2ggMzE0MDgzMzogZnJvbQoKIGpzYWZyYW5lazogZml4IHByb3h5IEdFVE5FWFQgcmVxdWVzdHMgV2hlbiBPSURzIHJlcXVlc3RlZCBhcmUgYmVsb3cKIHRoZSBwcm94eSByZXF1ZXN0IHJlbWFwLCB3ZSBuZWVkIHRvIG5vdCBpbmNsdWRlIGFueSBPSURzIHRoYXQgbWlnaHQKIGJlIGluIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBvcmlnaW5hbCBPSUQgYW5kIHRoZSByZW1hcHBlZCBPSUQuICBUaGlzCiBwYXRjaCBmdWRnZXMgdGhlIHJlcXVlc3Qgc28gdGhhdCBpdCBmaXhlcyB0aGUgcmVxdWVzdCBPSUQgc28gaXQncwoganVzdCBiZWZvcmUgdGhlIHJlbWFwcGVkIHByb3h5IHJhbmdlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgogICAgICBORVdTOgoKIFBBVENIIDMxNjczMjU6IGZyb20ga3Jpc3p0b2Zvcm86IFVDRC1TTk1QL1N5c3RlbVN0YXRzOiBhZGQgdmFyaWFibGVzCiB0byByZXBvcnQgY3B1c3RlYWwsIGNwdWd1ZXN0LCBjcHVndWVzdG5pY2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6IENIQU5HRVM6IHBhdGNoCgogMzE4NDAyNjogZnJvbSBlaXZuYWVzOiBBdm9pZCBjb25zdGFudCByZWZyZXNoIG9mIGludGVyZmFjZQogc3RhdGlzdGljcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvc2NhcGkuYywgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jOiBGaXhlZAogICAgICBzZXZlcmFsCgogY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgdGhlIE1TVkMgY29tcGlsZXIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2dldHRpbWVvZmRheS5jOiBXaW4zMi9NU1ZDOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzogQ0hBTkdFUzogYWdlbnQ6IEZpeGVkIGEKCiB5ZWFyLTIwMzggYnVnIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBpcFJvdXRlVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaDogQ0hBTkdFUzogc25tcGQ6IERlY2xhcmUgdGhlIE9JRAoKIGFyZ3VtZW50IHR5cGUgb2YgTUlCIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgYXMgJ2NvbnN0IG9pZCAqJyBpbnN0ZWFkCiBvZiAnb2lkIConIHNpbmNlIHRoZXNlIGZ1bmN0aW9ucyBkbyBub3QgbW9kaWZ5IHRoZSBPSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6IFVzZSB0aGUgY29ycmVjdCBkYXRhIHR5cGUgZm9yCgogdGhlICdjYWNoZSBleHBpcmVkJyB2YXJpYWJsZTogY2hhciBpbnN0ZWFkIG9mIGludC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzCgogaW50cm9kdWNlZCBpbiByMjAxNTEuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBXaW4zMjogaW1wcm92ZWQgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgYnkKCiB1c2luZyBMUENUU1RSIGluc3RlYWQgb2YgTFBDU1RSLiBOb3RlOiB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdAogVW5pY29kZSBidWlsZHMgYXJlIHN1cHBvcnRlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBXaW4zMjogaW1wcm92ZWQgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgYnkKCiB1c2luZyBMUENUU1RSIGluc3RlYWQgb2YgTFBDU1RSLiBOb3RlOiB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdAogVW5pY29kZSBidWlsZHMgYXJlIHN1cHBvcnRlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6IEFkZCBmaWxlCgogZm9yZ290dGVuIGluIHIyMDM1MyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOiBSZXZlcnRlZCBhIGNoYW5nZSB0aGF0IHdhcwoKIGNvbW1pdHRlZCBhY2NpZGVudGFsbHkgaW4gcjIwMjc2LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IEZpeGVkIHR3byBjb21waWxlcgoKIHdhcm5pbmdzLiAgKEJhY2twb3J0ZWQgcjIwMjM2IGZyb20gdGhlIHRydW5rLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6IENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uCgogYmVjYXVzZSB0aGUgY29tcGlsZXIgY29tcGxhaW5lZCBhYm91dCBpdC4gIChCYWNrcG9ydGVkIHIyMDIzNyBmcm9tCiB0aGUgdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhXwogICAgICAgYWNjZXNzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMxMjU5NjoKCiBmcm9tIGZhYmxlZDgwOiBsaXN0ZW4gZm9yIG5ldGxpbmsgY2hhbmdlIGV2ZW50cyBmb3IgdGhlIGFycC1yZWxhdGVkCiB0YWJsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICgogMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKCiAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAogbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICgogMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IE5FV1M6IHNubXBsaWI6IGFkZCBvcHRpb25hbCBzdXBwb3J0IGZvciBsb2NhbAoKIEROU1NFQyB2YWxpZGF0aW9uIG9mIGhvc3RuYW1lcyAgLSBvcHRpb25hbCBhdCBjb25maWd1cmUgdGltZTogLS13aXRoLWxvY2FsLWRuc3NlYy12YWxpZGF0aW9uICAtIHJlcXVpcmVzIEROU1NFQy1Ub29sIHZhbGlkYXRpb24gbGlicmFyaWVzICAtIGluaXRpYWwgc3VwcG9ydCwgZm9yIHN5c3RlbXMgd2l0aCBnZXRhZGRyaW5mby4gc3VwcG9ydCBmb3IKICAgIGFkZGl0aW9uYWwgcmVzb2x2ZXIgaW50ZXJmYWNlcyBjb21pbmcgc29vbi4gICAtIGFsc28gVE9ETzogZmxhZyBmb3IgaWdub3JpbmcgdmFsaWRhdG9pbiBlcnJvcnMgKGxvZyAmIGNvbnRpbnVlKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaDogbW92ZSB1bnVzZWQgKGFuZCB0b28gZ2VuZXJpYykKCiB0b2tlbiB3aXRoaW4gVUNEX0NPTVBBVElCTEUgaWZkZWYgICAtIE1BWExBQkVMIGNvbmZsaWN0cyB3aXRoIDxhcnBhL25hbWVzZXIuaD4gICAtIGFkZGVkIE5FVFNOTVBfTUFYTEFCRUwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1cGRhdGUgY29uZmlndXJlL01ha2VmaWxlcwoKIGZvciBETlNTRUMgbG9jYWwgdmFsaWRhdGlvbiBvcHRpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOiByZW1vdmVkIHRoZQoKIGFjY2lkZW50YWwgYnJva2VuIGZlYXR1cmUgcmVxdWlyZSBsaW5lIHRoYXQgZ290IGhhbGYgaW5zZXJ0ZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogU3VwcG9ydCBUYXIvR1ppcCBjb21tYW5kIHBhdGhzCgogY29udGFpbmluZyBzcGFjZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogU3VwcG9ydCBUYXIvR1ppcCBjb21tYW5kIHBhdGhzCgogY29udGFpbmluZyBzcGFjZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogU3VwcG9ydCBUYXIvR1ppcCBjb21tYW5kIHBhdGhzCgogY29udGFpbmluZyBzcGFjZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmM6IEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcwogICAgICBub3QKCiBkZWZpbmUgSVBfU0VORFNSQ0FERFIpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmM6IEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcwogICAgICBub3QKCiBkZWZpbmUgSVBfU0VORFNSQ0FERFIpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOiBGaXggc3BlbGxpbmcgb2YKCiBTT19SRUNWRFNUQUREUiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6IEZpeCBzcGVsbGluZyBvZgoKIFNPX1JFQ1ZEU1RBRERSIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcC5jb25mLjUuZGVmLCAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOiBORVdTOiBhcHBzOiBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGltZW91dHMKCiBhbmQgcmV0cmllcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9URVNUQ09ORi5zaDogQ0hBTkdFUzogTWluR1c6IE1hZGUKCiByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZSBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZAogaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUKIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvVEVTVENPTkYuc2g6IENIQU5HRVM6IE1pbkdXOiBNYWRlCgogcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQKIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlCiBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDogCgogQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUKIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQKIGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZSBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4KIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6IAoKIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCiBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0CiBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuCiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuLAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogUmVtb3ZlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgc29sdXRpb24gYW5kIHByb2plY3QgZmlsZXMgYWdhaW4gc2luY2UKIFZpc3VhbCBTdHVkaW8gMjAxMCByZWZ1c2VzIHRvIGxvYWQgdGhlc2UuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBjbGVhbiB0aGUgcGVybC9weXRob24gZmVhdHVyZSBsZWZ0b3ZlcnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGZpeCBtaWIgbW9kdWxlIGludm9jYXRpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOiBmaXggaWZkZWYKCiB0eXBvIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IGZpeCBwZXJsL3B5dGhvbiBmZWF0dXJlIGRlcGVuZGVuY2llcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IHJldmVydGVkIGF1dG9fbmxpc3QgbWFjcm8gdXNhZ2U7IHRoZSBmdW5jdGlvbgoKIGlzIHVzZWQgaW4gaGVhZGVycyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkIGEgLVQgb3B0aW9uIHRvIHJ1biAnbWFrZSB0ZXN0JwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL01ha2VmaWxlLmluOiBmaXggdGhlIGVuY29kZV9rZXljaGFuZ2UgLmZ0IGZpbGVuYW1lIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCBzbm1wbGliL3Rvb2xzLmM6IAoKIGZpeCB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgYnkgdGhlIFRyYXBSZWNlaXZlciBtb2R1bGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW46IEFkZCB0aGUgVHJhcFJlY2VpdmVyIHRvIHRoZSBsaXN0IG9mIHBlcmwgbW9kdWxlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1NOTVAvU05NUC54czogdXNlIHRoZSBuZXdlciBOZXQtU05NUCBBUElzLCByYXRoZXIgdGhhbiB0aGUKCiBvbGRlciBVQ0Qgb25lcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogcmVtb3ZlIFNFVCBjb2RlIHdoZW4gdW5kZXIgLS1yZWFkLW9ubHkgbW9kZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmM6IHJlcXVpcmUKCiBjaGVja192Yl91aW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VuCiAgICAgICB0LmMsIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgCiAgICAgIHB5dGhvbi9uZXRzbm1wL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzogbGFzdCBvZiB0aGUgcGVybC11c2VkIGZlYXR1cmUgZnVuY3Rpb25zCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbgogICAgICAgdC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiBzdGFydGVkIHRoZSBmaW5hbCBzZXQgb2YgZnVuY3Rpb24gcmVtb3ZhbHMgZm9yIGZlYXR1cmVzIHJlcXVpcmVkIGJ5CiBwZXJsL3B5dGhvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmk6IGFkZGVkIHRoZQoKIG5ldC1zbm1wLWZlYXR1cmVzLmggaGVhZGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOiBBZGRlZCBwZXJsIGZlYXR1cmUKCiByZXF1aXJlbWVudHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgCiAgICAgIHBlcmwvQVNOL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOiBob3BlZnVsbHkKICAgICAgd29ya2luZwoKIHJ1bGVzIHRvIGFwcGx5IGZlYXR1cmUgcmVxdWlyZW1lbnRzIHRvIHBlcmwgYW5kIHB5dGhvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jOiBtb3JlIGNoYW5nZXMgdG8gcmVtb3ZlIHVubmVlZGVkIGZ1bmN0aW9ucwoKIHByaW1hcmlseSB3aGVuIHdyaXRlIG1vZGUgaXMgdHVybmVkIG9mZiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGNoYW5nZSB0aGUgd2FudCBpbnZvY2F0aW9uIHRvIG9ubHkgZGVmYXVsdAoKIHRvIGV4Y2x1ZGUgZXh0ZXJuYWwgaG9va3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IHNlYXJjaCB0aHJvdWdoIC54cyBmaWxlcyBmb3IKCiBmdW5jdGlvbiBpbnZvY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzogZm9yZ290IGEgc2VtaWNvbG9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYzogaXF1ZXJ5IHBkdQogICAgICBzZXNzaW9ucwoKIGFyZSBvbmx5IG5lZWRlZCBpbiB3cml0ZSBtb2RlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL01ha2VmaWxlLmluOiBmaXggZmVhdHVyZSBkZXRlY3Rpb24gb2Ygc29tZXRpbWVzLWJ1aWx0CgogYXBwbGljYXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOiB1c2UgdGhlIGZlYXR1cmVfdW51c2VkIG1hY3JvIGZvciBtYWtpbmcgYW4KCiBlbXB0eSBmaWxlIGZvciBjb25zaXN0ZW5jeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KICAgICAgIFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdGxzLmMsIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IEFub3RoZXIgc3dlZXAgZm9yIHVudXNlZAoKIGZ1bmN0aW9ucyB3aGVuIHJlYWRfb25seSBtb2RlIGlzIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCiAgICAgICAsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KICAgICAgIFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuCiAgICAgICBjLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzogbWFyayBhIHNsZXcgb2YgZnVuY3Rpb25zIGFzIGZlYXR1cmVzCgogdGhhdCBhcmUgb25seSBuZWVkZWQgd2l0aCB3cml0ZV9zdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBydW4gZ3JlcCB3aXRoIC1uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IAoKIGZlYXR1cml6ZSBuZXRzbm1wX3NvY2thZGRyX3NpemUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IHJlbW92ZSBhCgogZmVhdHVyZV9yZXF1aXJlIG5vdCBhY3R1YWxseSBuZWVkZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6IG1hcmsgU1VCQ09OVEFJTkVSX0ZJTkQKCiBhcyBhIGZlYXR1cmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHRzbS5jOiB0aGUgcm93IGNyZWF0aW9uIEFQSSBpcwoKIG9ubHkgdXNlZCBpbiB0aGUgVFNNIGltcGxlbWVudGF0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB0c20uYzogdGhlIG5ld2VyIGNvbnRleHQgZW5naW5lSUQKCiBwcm9iaW5nIGlzIG9ubHkgbmVlZGVkIGlmZiBUU00gaXMgaW4gdXNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzogZml4IGFuIGlmZGVmIHR5cG8gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogbW92ZWQgZmV0YXVyZSBjaGlsZF9vZiBzdGF0ZW1lbnRzIHRvIHRoZQoKIHRvcCBvZiB0aGUgZmlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogbWFya2VkIGEgY291cGxlIG9mIHJhcmVseSB1c2VkIGNvbnRhaW5lcgoKIGZ1bmN0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzogc3BsaXQgb3V0IHRoZSBwcmVmaXhfaW5mbyBmZWF0dXJlCiAgICAgIGludG8KCiBzdWItZmVhdHVyZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jOiBtYXJrIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgYXMgdW5uZWVkZWQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYzogZml4IGEgY2hpbGRfb2Ygc3RhdGVtZW50Cgogd2l0aCBhIGNvcHkvcGFzdGUgZXJyb3IgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IHRoZSBjb250YWluZXIgcm93LXJlbW92ZSBpcyBvbmx5CgogbmVlZGVkIGlmIHRoZSB0ZGF0YSByZW1vdmVfcm93IGlzIG5lZWRlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KICAgICAgIFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuCiAgICAgICBjOiBmZWF0dXJlIG1hcmtpbmcgb2YgdW51c2VkIHRkYXRhIGZ1bmN0aW9ucyAgICAKICAgICAgdGFibGVfdGRhdGFfZGVsZXRlX3RhYmxlICAgICB0YWJsZV90ZGF0YV9leHRyYWN0X3RhYmxlICAgIAogICAgICB0YWJsZV90ZGF0YV9yZW1vdmVfcm93IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYzogcmVtb3ZhbCBvZiBzb21lIHJhcmVseSB1c2VkCgogCWZ1bmN0aW9ucyB0YWJsZV9zZXRfbXVsdGlfYWRkX2RlZmF1bHRfcm93IAl0YWJsZV9kYXRhc2V0X3VucmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZGVkIGEgZGVmaW5pdGlvbiB0byBpbmNvcnBvcmF0ZQoKIHJlYWRfb25seS9ub3RpZnlfb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOiBhZGRlZCBhIG1pc3NpbmcgZmVhdHVyZSBkZWZpbml0aW9uCgogbGluZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L01ha2VmaWxlLmluOiBhZGRlZCBiYWNrIGluIG1pc3NpbmcgbWliZ3JvdXAgZmVhdHVyZQoKIGRlZmluaXRpb24gbGlzdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBJbmNsdWRlIHRoZSBvcmlnaW5hbCBiYXNlIGZsYWdzIHRvCgogZW5zdXJlIC0td2l0aC1kZWZhdWx0cyBnZXRzIHBpY2tlZCB1cCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBmaXggdXNhZ2UgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZGVkIGEgLWIgZmxhZyBmb3IgYmFzZSBhcmd1bWVudHMgdG8KCiBzdGFydCBmcm9tIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGRlZmF1bHQgdG8gYSBsaW5lYXIgc2VhY2ggb2Ygc2l6ZQoKIHRlc3RzLCByYXRoZXIgdGhhbiBleHBvbmVudGlhbCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiAKCiBDSEFOR0VTOiBzbm1wbGliOiBHdWFyZCBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zCiBjb25zaXN0ZW50bHkuICBDSEFOR0VTOiBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjoKICAgICAgR3VhcmQKCiBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zIGNvbnNpc3RlbnRseS4gIENIQU5HRVM6CiBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjoKICAgICAgR3VhcmQKCiBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zIGNvbnNpc3RlbnRseS4gIENIQU5HRVM6CiBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKCiByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcwogcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQoKIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCiByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKCiByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcwogcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZQoKIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVwogZW52aXJvbm1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlCgogPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXCiBlbnZpcm9ubWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZQoKIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVwogZW52aXJvbm1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6IFdpbjMyIERMTCBidWlsZCBmaXhlcy4KCiAoQmFja3BvcnRlZCByMjAxODQgZnJvbSB0cnVuay4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6IFdpbjMyIERMTCBidWlsZCBmaXhlcy4KCiAoQmFja3BvcnRlZCByMjAxODQgZnJvbSB0cnVuay4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQoKIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UKCiBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UKCiBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IGFkZGVkIG5vdGUgYWJvdXQgdGhlIG5ldyB0aW1pbmcgZnVuY3Rpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IFVwZGF0ZSB0aGUgbWFudWFsIHBhZ2UgdG8gcmVmbGVjdCB0aGUgbmV3CgogdGltaW5nIG9wdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6IGJldHRlciBkb2N1bWVudGF0aW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jOiB1c2UgdGhlCgogbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZm9yIHBhcnNpbmcgZnJlcXVlbmNpZXMvdGltZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6IGZpeCBwZHUKCiBidWlsZGluZyB0ZXN0cyB1bmRlciB2YXJpb3VzIGRpc2FibGVkIG1vZGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzogZG9uJ3QgdHJ5IHRvCgogYnVpbGQgdGhlIEdFVCBwZHUgdW5kZXIgbm90aWZ5X29ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOiBmaXggYSBidWcgd2l0aAoKIG5vLXN1ZmZpeCBzdHJpbmdzIGFuZCB1c2UgYSBjb25zdCBpbnB1dCBzdHJpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxMG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2Vjc19jbGliLmM6CgogQSBuZXcgdW5pdCB0ZXN0IGZvciB0aGUgdGltZSBjb252ZXJzaW9uIHJvdXRpbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiB1c2UgdGhlCgogbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb24gZm9yIGNvbXB1dGluZyBpbnRlcnZhbAogcGVyaW9kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IEFkZGVkIGEKCiBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbnMgdG8gY29udmVydCwgZS5nLiwgMWggdG8gMzYwMCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogcmVtb3ZlIGNvZGUgdG8gYnVpbGQvcGFyc2UgR0VUL2V0YyByZXF1ZXN0cwoKIHdoZW4gTk9USUZZX09OTFkgaXMgdHVybmVkIG9uLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiB1cGRhdGUgdGhlIE5FV1MgdG8gcmVmbGVjdCB0aGUgbmV3IC0tZW5hYmxlLXJlYWQtb25seSBhbmQKCiAtLWVuYWJsZS1ub3RpZnktb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBtaW5vcgoKIGltcHJvdmVtZW50cyBmb3Igcm9ubHkgdnMgcndyaXRlIGhhbmRsaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzogc3RpbGwgZW5hYmxlCgogUk9OTFkgd2hlbiBSV1JJVEUgaXNuJ3QgcG9zc2libGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogZml4IEdFVCBzdXBwb3J0IHdoZW4gbm9fd3JpdGUgaXMKCiBlbmFibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogbWFyayBhIGZ1dHVyZQoKIG1vZGlmaWNhdGlvbiBuZWVkIGluIGEgY29tbWVudCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzogZml4IGhhbmRsaW5nIG9mIG5vX3dyaXRlIHN1cHBvcnQKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jOiAKCiBkb24ndCBvcGVuIGFueSBsaXN0ZW5pbmcgdHJhbnNwb3J0cyB3aGVuIG5vdGlmeS1vbmx5IGlzIHNwZWNpZmllZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IHNldCB0aGUKCiBuby1saXN0ZW4gYW5kIHJlYWQtb25seSBmbGFncyB3aGVuIC0tZW5hYmxlLW5vdGlmeS1vbmx5IGlzIHNldCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHJhbiBhdXRvaGVhZGVyIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogaW1wbGVtZW50IHRoZQoKIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgaW4gdGhlc2UgdHJhbnNwb3J0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogcnVuIGF1dG9jb25mIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBtb3ZlIHRoZSByZWFkLW9ubHkgZmxhZwoKIGRlZmluaXRpb24gYmVsb3cgdGhlIG5vdGlmeS1vbmx5LCBzaW5jZSBub3RpZnktb25seSBuZWVkcyB0byBpbXBseQogcmVhZC1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogRGVmaW5lZCBhIG5ldwoKIC0tZW5hYmxlLW5vdGlmeS1vbmx5IGZsYWcgZm9yIGJ1aWxkaW5nIGEgdG9vbHNldCB0aGF0IG9ubHkgYWxsb3dzCiBmb3Igbm90aWZpY2F0aW9ucyB3aXRoIG5vIHJlYWQvd3JpdGUgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IERlZmluZWQgYSBuZXcKCiAtLW5vLWxpc3RlbiBmbGFnIHRvIHJlbW92ZSBsaXN0ZW5pbmcgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOiB0aGUgZGlzbWFuIHNjaGVkdWxlIG1pYiBpcyBvbmx5CgogdXNlZnVsIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmg6IHRoZSBkaXNtYW4gc2NoZWR1bGUgbWliIGlzIG9ubHkgdXNlZnVsCgogd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgogICAgICAgZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjOiBmaW5pc2hlZCBub193cml0ZSBzdXBwb3J0IGZvciBjb21tb24gaW5jbHVkZWQgdGFibGVzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOiBBZGQgYmFjayBpbgoKICduZXRzbm1wX3NldF9yb3dfY29sdW1uJyB3aGVuIG5vX3dyaXRlIHN1cHBvcnQgaXMgZW5hYmxlZCBUaGlzCiBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgZGF0YSBtYW5pcHVsYXRpb24gZnVuY3Rpb24sIG5vdCBTRVQgc3BlY2lmaWMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzogZG9uJ3QgdXNlIG1hcmtfcm93X2NvbHVtbl93cml0YWJsZQoKIHdoZW4gcmVhZC1vbmx5IHN1cHBvcnQgaXMgZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6IGZpeCBub193cml0ZSBzdXBwb3J0CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOiBmaXggbm9fd3JpdGUgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBnaXQgYmFzaC1zaGVsbCBmdW5jdGlvbnMgdG8gZW5hYmxlCgogYnJhbmNoIHN3aXRjaGluZyBhbmQgZXh0ZXJuYWwgYnVpbGRpbmcgVGhlc2UgbG9jYWwgc2hlbGwgZnVuY3Rpb25zCiAoc25tcGNvbmZpZ3VyZSBhbmQgc25tcG1ha2UpIGxldCB5b3UgY29uZmlndXJlIGFuZCBidWlsZCB0aGUKIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGluIGV4dGVybmFsIGRpcmVjdG9yaWVzIHRoYXQgYXJlCiBhdXRvLWNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGV4aXN0aW5nIGJyYW5jaCBuYW1lICh3aXRoIGFuIG9wdGlvbmFsCiBzdWZmaXgpLiAgVGhpcyBsZXRzIHlvdSBydW4gJ3NubXBtYWtlJyBmcm9tIHdpdGhpbiB0aGUgc291cmNlCiBkaXJlY3RvcnkgYW5kIGhhdmUgaXQgYWN0dWFsbHkgZXh0ZXJuYWxseSBrZWVwIHRyYWNrIG9mIG1vZGlmaWVkCiBmaWxlcywgZXRjLCBzbyBidWlsZGluZyBpbiBtdWx0aXBsZSBicmFuY2hlcyBjYW4gYmUgZG9uZSBmcm9tIGEKIHNpbmdsZSBnaXQgY2hlY2tvdXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBjbGVhbiB1cCB0aGUgaXRlcmF0b3JzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGZyZWUgdmFyYmluZHMgYWZ0ZXIKCiBzZW5kaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6IENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uCgogYmVjYXVzZSB0aGUgY29tcGlsZXIgY29tcGxhaW5lZCBhYm91dCBpdC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IEZpeGVkIHR3byBjb21waWxlcgoKIHdhcm5pbmdzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgbnVsbCBjaGVjawogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzogTW92ZSBwb2ludGVyIGRlcmVmZXJlbmNlIHRvIGFmdGVyCgogdGhlIGNoZWNrIGZvciBzdWNjZXNzZnVsIGFsbG9jYXRpb24gb2YgdGhlIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogbWVudGlvbiB3aGljaCBtb2R1bGUgaXMgcmVxdWlyZWQgd2hlbgoKIGJ1aWxkaW5nIHRvIGdldCB0aGUgZGVsaXZlciBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlZCBhbiB1bm5lZWRlZAoKIGRlYnVnZ2luZyBzdGF0ZW1lbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBwcm9wZXJseSB1cGRhdGUgdGhlIG1heAoKIGNvdW50IGluIHRoZSBvdXRnb2luZyBub3RpZmljYXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYmV0dGVyIHBhY2tldCBlc3RpbWF0aW9uCgogdG8gZW5zdXJlIHdlIGRvbid0IG92ZXJydW4uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGVzdGltYXRlIHRoZSBwYWNrZXQgc2l6ZQoKIGFuZCBicmVhayB0aGUgbm90aWZpY2F0aW9uIHVwIGJhc2VkIG9uIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogdHJhbnNmb3JtIHRoZQoKIG5vdGlmaWNhdGlvbiBzZW5kaW5nIGludG8gYSBsYXJnZXIgbG9vcCBmb3IgbGF0ZXIgbXVsdGktbm90aWZzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE5FV1M6IGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZSBtYXJraW5nL3NlbGVjdGlvbgogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBtZW50aW9uIHRoZSBuZXcgZGVsaXZlcnkgYnkgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBkb2N1bWVudCB0aGUgbWluaW1hbGlzdCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBkb2N1bWVudCB0aGUgbmV3IGRlbGl2ZXJCeU5vdGlmeSBjb25maWcKCiB0b2tlbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBhbGxvdyBydW4gdGltZQoKIG1vZGlmaWNhdGlvbnMgb2YgdGhlIE9JRHMgdG8gdXNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBhZGQgY29uZmlnIGZsYWdzIHRvIG5vdAoKIGluY2x1ZGUgdGhlIHBlcmlvZCBjb25maWcgYW5kIG1zZyBjb3VudCB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBpbmNsdWRlIHRoZSBwZXJpb2RpYwoKIGNvdW50LCB0aGUgbWVzc2FnZSBudW1iZXIgYW5kIHRoZSBtYXggbWVzc2FnZSBudW1iZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBkZWxldGVkIGRlYnVnZ2luZwoKIGNvbW1lbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6IE1vdmUgdGhlIG5vdGlmaWNhdGlvbgoKIGRlZmluaXRpb24gdG8gd2l0aGluIHRoZSBzdWItbWliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlIGFuIHVudXNlZAoKIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogbG9hZCB0aGUgTUlCIGludG8gdGhlCgogZGVmYXVsdCBzZXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OiBBIG5ldyBtaWIgdG8gaG9sZCB0aGUKCiBwZXJpb2RpYyBub3RpZnkgb2JqZWN0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGZpbGwgb3V0IHRoZSBjb25maWcgZnJlZQoKIHJvdXRpbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBwcm9wZXJseSBtb25pdG9yIHRoZQoKIHdob2xlIGNvbnRhaW5lciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogcGFyc2UgdGhlIGNvbmYgZmlsZXMgYW5kCgogY3JlYXRlIGFuZCBpbnNlcnQgb2JqZWN0cyBpbnRvIHRoZSBjb250YWluZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBkZWZpbmVkIGEgY29udGFpbmVyIHRvCgogc3RvcmUgYSBsaXN0IG9mIGRlbGl2ZXIgb2JqZWN0cyBpbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGFkZGVkIGEgbmV4dF9ydW4KCiB0aW1lc3RhbXAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBhY3R1YWxseSBzZW5kIGEKCiBub3RpZmljYXRpb24gd2l0aCB0aGUgcmVzdWx0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IG1ha2UgdGhlIHdhbGsgb24gdGhlCgogdGVzdCBvYmplY3QgZnVuY3Rpb24uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGNyZWF0ZSBhIG1heCBwYWNrZXQgc2l6ZQoKIGNvbmZpZyB0b2tlbiBhbmQgcGFyc2UgaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IG1pbmltYWwgc3RhcnRpbmcgdGVzdAoKIG9iamVjdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYWRkZWQgYSBmdW5jdGlvbiB0bwoKIGNhbGN1bGF0ZSB0aGUgdGltZSB1bnRpbCB0aGUgbmV4dCBydW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiByZW1vdmUgbGVmdCBpbiB0ZW1wbGF0ZQoKIGxpbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IHVzZSBhbiBhbGFybSBjYWxsYmFjawoKIHByb3RvdHlwZSBmb3IgZXhlY3V0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYmVnaW5uaW5nIHRlbXBsYXRlIGNvZGUKCiBmb3IgZGVsaXZlcnkgb2YgZGF0YSBieSBub3RpZmljYXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCB3aW4zMi93aW4zMi5zbG46IEFkZGVkIFZpc3VhbCBTdHVkaW8KCiAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uIGZpbGUgZm9yIGJ1aWxkaW5nIHRoZSBOZXQtU05NUCBsaWJyYXJ5IGFzCiBhIHN0YXRpYyBsaWJyYXJ5LiBCb3RoIHRoZSBXaW4zMiBhbmQgdGhlIHg2NCBjb25maWd1cmF0aW9ucyBhcmUKIGluY2x1ZGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6IE1vcmUgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QKICAgICAgZmlsZQoKIGNsZWFudXAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6IENsZWFuZWQgdXAgV2luMzIgVlMyMDA1IHByb2plY3QKCiBmaWxlcyAtIHJlbW92ZWQgc3VwZXJmbHVvdXMgbGlicmFyeSByZWZlcmVuY2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjogQWRkZWQgeDY0CgogY29uZmlndXJhdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOiBBZGRlZAoKIHdpbjMyZGxsLXJlbGF0ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uIGZpbGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTcgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlCgogSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGQ6CiAgICAgIFBBVENIRVM6CgogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTcgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOgogICAgICBQQVRDSEVTOgoKIDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6IENIQU5HRVM6CgogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtIGRldmljZXMgaW4KIGRpc2tJT1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhcHBzL3NubXB0cmFwZF9kcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjogQ0hBTkdFUzoKCiBMaW51eDogUEFUQ0hFUzogMzIwNTgxMTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbgogZGlza0lPVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NToKCiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgoKIEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NToKCiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCgogJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCgogJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCgogJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCgogJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCgogJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jOiBSZW1vdmUgYm9ndXMKCiAoTGludXgpIGRlZmluZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jOiBSZW1vdmUgYm9ndXMKCiAoTGludXgpIGRlZmluZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jOiBSZW1vdmUgYm9ndXMKCiAoTGludXgpIGRlZmluZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wLXRjLmM6IEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcC10Yy5jOiBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgY29uZmlndXJlLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQmlsbCBGZW5uZXJzIHBhdGNoIHRvIG1ha2UKCiBESVNNQU4gUElORyBhbmQgVFJBQ0VST1VURSBNSUJTIGNvbXBpbGUgdW5kZXIgTGludXggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzogU29sYXJpcyBzdXBwb3J0IGZvcgoKIFNDVFAtTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOiBTb2xhcmlzIHN1cHBvcnQgZm9yCgogU0NUUC1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6IFNvbGFyaXMgc3VwcG9ydCBmb3IKCiBTQ1RQLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kCgogU1lTViAoc3VjaCBpcyBMaW51eCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQKCiBTWVNWIChzdWNoIGlzIExpbnV4KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZAoKIFNZU1YgKHN1Y2ggaXMgTGludXgpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOgoKIG92ZXJoYXVsIG9mIGRlYnVnICAgLSBkcmFzdGljIHJlZHVjdGlvbiBpbiBudW1iZXIgb2YgbWVzc2FnZXMgYW5kIG1zZyBjb21wbGV4aXR5ICAgICBmb3IgYmFzaWMgZHRsc3VkcCB0b2tlbiAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKCiBvdmVyaGF1bCBvZiBkZWJ1ZyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eSAgICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4gICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKCiBjbGVhbiB1cCBjbG9zZTsgY2F0Y2ggJ2Nvbm5lY3QnLydkaXNjb25uZWN0JyAgIGNvbm5lY3QgPSB3ZSBnZXQgc3VjY2Vzc2Z1bGx5IGRlY29kZWQgc25tcCBkYXRhICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQgICBhZGQgYmlvX2NhY2hlIGZsYWdzIGZvciBjb25uZWN0ZWQvZGlzY29ubmVjdGVkICAgY2hlY2sgZm9yIG51bGwgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nICAgY2xvc2UgaGFuZGxpbmc6ICAgLSAgb25seSBzZW5kIHF1ZXVlZCBkYXRhIGlmIHdlIGdvdCB0byBjb25uZWN0ZWQgc3RhdGUgICAtICBzZXJpb3VzbHkgcmVkdWNlIHRpbWVvdXQgdG8gd2FpdCBmb3IganVuayByZWFkLiBpIHRoaW5rICAgICAgd2Ugc2hvdWxkbid0IGV2ZW4gYm90aGVyICAgLSByZXR1cm4gZWFybHkgaWYgY2FjaGVwIGlzIE5VTEwsIHNvIHdlIGRvbid0IGhhdmUgdG8gdGVzdCBpdCAgICAgcmVwZWF0ZWRseSAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6CgogY2xlYW4gdXAgY2xvc2U7IGNhdGNoICdjb25uZWN0Jy8nZGlzY29ubmVjdCcgICBjb25uZWN0ID0gd2UgZ2V0IHN1Y2Nlc3NmdWxseSBkZWNvZGVkIHNubXAgZGF0YSAgIGRpc2Nvbm5lY3QgPSAwIGJ5dGUgcmVhZCwgc3NoIHNodXRkb3duIGZsYWcgc2V0ICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZCAgIGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZyAgIGNsb3NlIGhhbmRsaW5nOiAgIC0gIG9ubHkgc2VuZCBxdWV1ZWQgZGF0YSBpZiB3ZSBnb3QgdG8gY29ubmVjdGVkIHN0YXRlICAgLSAgc2VyaW91c2x5IHJlZHVjZSB0aW1lb3V0IHRvIHdhaXQgZm9yIGp1bmsgcmVhZC4gaSB0aGluayAgICAgIHdlIHNob3VsZG4ndCBldmVuIGJvdGhlciAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQgICAgIHJlcGVhdGVkbHkgICAtIHVzZSBjb3JyZWN0IG5mZHMgdmFsdWUgaW4gc2VsZWN0IGNhbGwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMzEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IG1ha2UgdHJ1bmsgYW5kCgogdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZCAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTMxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBtYWtlIHRydW5rIGFuZAoKIHY1LTYtcGF0Y2hlcyBjbG9zZWx5IGFsaWduZWQgICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTMxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBhZGQgY29va2llIGhhbmRsaW5nOwoKIHJlbW92ZSBpZmRlZidkIGNvZGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBTaW1wbGlmeSBhcnJheSByZXNpemluZyBzb21ld2hhdAoKIGZ1cnRoZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IERvIG5vdCBhc3NpZ24gbmV3X2RhdGEgaWYgdGhlCgogdmFsdWUgd29uJ3QgYmUgdXNlZC4gIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjbGVhciBhCgogY2h1bmsgb2YgbWVtb3J5IGlmIHRoZSBuZXh0IGFjdGlvbiBvbiBpdCBpcyB0byBmaWxsIGl0IHNvIHVzZSBtYWxsb2MKIGluc3RlYWQgb2YgY2FsbG9jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENvbnRhaW5lckJpbmFyeUFycmF5IHJlYWxseQoKIGNhbid0IGhvbGQgYW55dGhuZyBidXQgcG9pbnRlcnMgYW5kIHRoYXQgbWVhbnMgdGhlIGRhdGFfc2l6ZSBmaWVsZAogaXMgdW5uZWNlc3Nhcnkgc28gSSByZW1vdmVkIGl0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAKICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsIAogICAgICBzbm1wbGliL3NubXB2My5jOiBBZGQgbWlzc2luZyBpbmNsdWRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogVXNlIHRoZSByaWdodCBmZWF0dXJlCgogbWFjcm8gaW4gb3JkZXIgdG8gbWFrZSBidWlsZHMgd2l0aCAtLWVuYWJsZS1pcHY2CiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VURQSVB2NiBzdWNjZWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IFJlbW92ZSBkdXBsaWNhdGUgY29waWVzIG9mCgogZnVuY3Rpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6IHR3ZWFrIGRlYnVnIG1lc3NhZ2UgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiB1cGRhdGUKCiBjZXJ0IHRva2VuIGhhbmRsaW5nICAtIHJlbW92ZSBkZWZYNTA5IGNlcnQgdG9rZW5zIChzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgYmVmb3JlIDUuNikgIC0gd2FybmluZ3MgZm9yIG91ci90aGVpciB0b2tlbnMsIHJlY29tbWVuZCB1c2luZyBsb2NhbC9wZWVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBtZXJnZSBuZXRzbm1wX2R0bHN1ZHA2CiAgICAgIGludG8KCiBuZXRzbm1wX2R0bHN1ZHAgICAgdXNlIGFkZHIgc2l6ZSB0byB0ZWxsIHRoZW0gYXBhcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOiBsb2cgKG9uY2UpIHdhcm5pbmcgd2hlbiBkZXByZWNhdGVkCgogZl9jcmVhdGVfZnJvbV90c3RyaW5nIHRyYW5zcG9ydCBmdW5jdGlvbiB1c2VkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmM6IHJlZHVjZSBjYXN0aW5nOyBtYWtlIHN1cmUgdG8KCiBmcmVlIHRoZSByaWdodCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiByZWR1Y2UgY2FzdGluZyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVwbGFjZSBhIHZhcmlhYmxlIHdpdGggYQoKIGNvbnN0YW50LiBNYWtlIG9uZSBtb3JlIG9pZCBjb25zdC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uCgogdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOiBGb3JtYXR0aW5nIGJvdGNoIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOiBGb3JtYXR0aW5nIGJvdGNoIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvTWFrZWZpbGUuaW46IEluc3RhbGwgcmVxdWlyZWQgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9NYWtlZmlsZS5pbjogSW5zdGFsbCByZXF1aXJlZCBtaWJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvcmZjbGlzdDogTmV3IFJGQyBtaWJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY2xpc3Q6IE5ldyBSRkMgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIAogICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgICBWZXJzaW9uCgogbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IFNpbXBsaWZpZWQgcjE5NTk0IChsZWFrLWF0LWV4aXQgZml4KS4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcwoKIGludHJvZHVjZWQgaW4gcjIwMTEzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzCgogaW50cm9kdWNlZCBpbiByMjAxMTMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIAogICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgVmVyc2lvbgoKIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IEZpeCBtYWluIGFnZW50IHNlbGVjdCBjYWxsIHRvIHVzZSB0aGUgcmVuYW1lZCBBUEkKCiByb3V0aW5lLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBGaXggbWFpbiBhZ2VudCBzZWxlY3QgY2FsbCB0byB1c2UgdGhlIHJlbmFtZWQgQVBJCgogcm91dGluZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvIGxpbmUgd2l0aCB0aGUKIHJlc3Qgb2YgdGhlIEFQSS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50byBsaW5lIHdpdGggdGhlCiByZXN0IG9mIHRoZSBBUEkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8gbGluZSB3aXRoIHRoZQogcmVzdCBvZiB0aGUgQVBJLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkgKHBsdXMgdHdlYWtzIHRvIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQKCiBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CgogaW5zdGVhZCBvZiBjYWxsb2MgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdAoKIGluc3RlYWQgb2YgY2FsbG9jICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5Lmg6CgogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZSB0YWJsZXMgZnJvbQogU3RlcGhlbiBIZW1taW5nZXIgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yayBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUKCiB0YWJsZXMgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdCAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZQoKIHRhYmxlcyBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOyBzdWJqZWN0ICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGFkZCBtb3JlCgogb3BlbnNzbCBlcnJvciBjYXNlcyB3aGVyZSB3ZSBjaGVjayBmb3IgbG9jYWwgY2VydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGFkZCBtb3JlCgogb3BlbnNzbCBlcnJvciBjYXNlcyB3aGVyZSB3ZSBjaGVjayBmb3IgbG9jYWwgY2VydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IKCiB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mIHJhbmRvbSBkYXRhLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiBNaW5HVzogZHNrVGFibGU6IFJlcG9ydCB6ZXJvIGZvcgoKIHVuaW1wbGVtZW50ZWQgZmllbGRzIGluc3RlYWQgb2YgcmFuZG9tIGRhdGEuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlCgogY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlCgogY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzogQ0hBTkdFUzogc25tcGQ6IEJ1aWxkcwoKIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lIGxvY2FsdGltZV9yKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzogQ0hBTkdFUzogc25tcGQ6IEJ1aWxkcwoKIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lIGxvY2FsdGltZV9yKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IENIQU5HRVM6IHNubXBsaWI6CgogcmVmaW5lIGNlcnQgZGVidWdnaW5nOyByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBDSEFOR0VTOiBzbm1wbGliOgoKIHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcKCiBmb3IgY2VydFNlY05hbWUgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMyMDU3NjU6IGhhbmRsZSByZWNvbmZpZwoKIGZvciBjZXJ0U2VjTmFtZSB0b2tlbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4KCiBtZXNzYWdlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4KCiBtZXNzYWdlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1pbm9yCgogcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1pbm9yCgogcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMyMDM4MDY6IEF2b2lkIHRoYXQgdGhlIG1haW4KCiBhZ2VudCBwcm9jZXNzaW5nIGxvb3AgLSB3aGVuIHVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUKIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluCgogYWdlbnQgcHJvY2Vzc2luZyBsb29wIC0gd2hlbiB1c2luZyBtb3JlIHRoYW4gRkRfU0VUU0laRSBmaWxlCiBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbgogbmV0c25tcF9sYXJnZV9zZWxlY3QoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jOiAKCiBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MgKGJhY2twb3J0ZWQgcjIwMDk4IGZyb20gdGhlIHRydW5rKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDlsYXJnZV9mZF9zZXRfY2xpYi5jOiBBZGRlZCBhCgogbWluaW1hbCB1bml0IHRlc3QgZm9yIG5ldHNubXBfbGFyZ2VfZmRfc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA5bGFyZ2VfZmRfc2V0X2NsaWIuYzogQWRkZWQgYQoKIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX2xhcmdlX2ZkX3NldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNYWtlCgogbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgY2xlYXIgYWxsIHJlbGV2YW50IGZpbGUgZGVzY3JpcHRvcnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNYWtlCgogbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgY2xlYXIgYWxsIHJlbGV2YW50IGZpbGUgZGVzY3JpcHRvcnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKCiBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBtYWtlCgogdmFyaWFibGUgbmFtZXMgbWF0Y2ggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYzogCgogRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogZml4ZWQgaW5zdGFsbGF0aW9uCgogdmFyaWFibGVzIGZvciB0aGUgb3B0aW9uYWwgU0VUIHByb2dyYW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogY2htb2QgYSt4IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBwcmludCBhbiBlcnJvciBpZiB0aGUgZW5kIG9mCgogYSBmaWxlIHdhcyByZWFjaGVkIGFuZCB3ZSdyZSBub3QgYmFjayBpbnRvIHRoZSBzdGF0ZSB3ZSBjYW4gd3JpdGU7CiBvdGhlcndpc2UgYSBjbG9zaW5nICNpZmRlZiBpcyBtaXNzaW5nLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogZml4IGVuZGlmIGNvbW1lbnQgdG8gbWF0Y2gKCiB0aGUgb3BlbmluZyBpZmRlZiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiByZXNldCB0aGUgY2Fud3JpdGUgZmxhZyBmb3IKCiBldmVyeSBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogdGVtcG9yYXJpbHkgbGVhdmUgaW4KCiBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzogY2hhbmdlIHRoZSB1bmlxdWUgZmlsZSBjaGVjayB0byBvbmUgdGhhdAoKIGlzIG5vdCBpbiB0aGUgbWliZ3JvdXAgZGlyZWN0b3J5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5L1QwMTQxc25tcHYyY3NldGZhaWxfc2ltcGxlOiBhIHRlc3QgZm9yCgogZW5zdXJpbmcgdGhlIGFnZW50IHJlamVjdHMgU0VUIHJlcXVlc3RzIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOiBhZGQgYmFjayBpbiB0aGUKCiBzdG9wYWdlbnQgY29tbWFuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDFwZHVfdHlwZV9jbGliLmMsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAzcGR1X3BhcnNlX2NsaWIuYzogdW5pdCB0ZXN0cwogICAgICB3cml0ZW4KCiBmb3IgdGhlIHJlYWQtb25seSBzdXBwb3J0IGNvbnZlcnRlZCB0byB3b3JrIHdpdGggb3Igd2l0aG91dAogcmVhZC1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOiBkb24ndCBydW4gdGhlCgogc2V0IHRlc3QgaWYgbm9fd3JpdGVfc3VwcG9ydCBpcyB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlOiBza2lwIGlmCgogbm9fd3JpdGVfc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogQSBuZXcgdGVzdCB0bwoKIGNoZWNrIHdoZXRoZXIgU05NUHYyYyBTRVRzIHRvIHN5c0NvbnRhY3Qgd29yayBhcyBleHBlY3RlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWc6IGFsbG93IGZvciB2MmMgU0VUIHN1cHBvcnQKCiB0ZXN0aW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6IEFsbG93IGZvciBzaW5nbGUgcXVvdGVzIGZvciB2YWNtCgogY29udGV4dCBuYW1lIHF1b3RpbmcgdG9vIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlCgogdGVzdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZQoKIHRoZSB3b3JkIHRlc3QgaW4gdGhlIHRlc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOiBBZGRlZCBhbiBhbm5veWluZ2x5IGxvbmcKCiBsaXN0IG9mIGV4Y2VwdGlvbnMgdGhhdCBuZWVkcyB0byBiZSBhdXRvbWF0ZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOiBBIHF1aWNrIHBlcmwgc2NyaXB0IHRvCgogcmVtb3ZlIHVubmVlZGVkIGNvZGUgbW9kdWxlcyBmcm9tIHRoZSBtb2R1bGVzIGRpcmVjdG9yeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOiBtb3JlCgogaW1wcm92ZW1lbnRzIChyZW1vdmVtZW50cykgZm9yIGZlYXR1cml6YXRpb24gYW5kIHJlYWQtb25seSBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOgoKIDMxOTU1Mzc6IE1pbm9yIGJpbmFyeV9hcnJheSBjb250YWluZXIgc29ydCBvcHRpbWl6YXRpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOgoKIDMxOTU1Mzc6IE1pbm9yIGJpbmFyeV9hcnJheSBjb250YWluZXIgc29ydCBvcHRpbWl6YXRpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6IFRhYnMgdG8gc3BhY2VzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6IFRhYnMgdG8gc3BhY2VzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6IENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCgogVXNlIGdldGFkZHJpbmZvIGlmIGF2YWlsYWJsZS4gTm93IHdvcmtzIGZvciBTb2xhcmlzIChhbmQgV2luZG93cz8pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6IENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCgogVXNlIGdldGFkZHJpbmZvIGlmIGF2YWlsYWJsZS4gTm93IHdvcmtzIGZvciBTb2xhcmlzIChhbmQgV2luZG93cz8pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRlc3QuYzogQWRkIGRyb3BwZWQgfHwncyBmcm9tIHIyMDA3MiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzogQ2xlYW4gdXAsIGFuZAoKIGNvc29saWRhdGUgcmVzdWx0IHRhYmxlIHJvdyBjcmVhdGlvbiBpbnRvIGEgbmV3IGZ1bmN0aW9uLiAgU2F2ZXMgMjAwCiBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jOiBDbGVhbiB1cCwgYW5kCgogY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcgZnVuY3Rpb24uICBTYXZlcyAyMDAKIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGVzdC5jLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IGRvbid0IGJ1aWxkIFNFVCByZWxhdGVkIGFwcHMgd2l0aAoKIC0tZW5hYmxlLXJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzogZml4CgogaXNzdWVzIHdpdGggY29tYmluaW5nIC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kIC0tZW5hYmxlLXJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogYmV0dGVyIG91dHB1dCBmb3IgZmluZGluZwoKIG9iamVjdCBzeW1ib2xzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IGxhc3QgY29tbWl0OiBjaGFuZ2VzIHRvIGFsbG93CgogcGFyc2luZyBvZiBmZWF0dWVycyBmaWxlcyB0byBnZXQgYWxsIG1pbmltYWxpc3QgdGFncyB3aGljaCBhcmUgdGhlbgogcHJvY2Vzc2VkIGZvciByZW1vdmFsIHRoaXMgY29tbWl0OiBjaGFuZ2VkIGNvbW1lbnRzL3doaXRlIHNwYWNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzogYWRkZWQgbm9fd3JpdGUgc3VwcG9ydCB0byBleHRlbmQuYwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOiBBZGRlZCBtaXNzaW5nICNlbmRpZiBjb21tZW50IGZvciByZW1vdmUKCiBpZmRlZiBjb2RlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IGFkZGVkIGNoYW5nZXMgdG8gYWxsb3cgY29kZQoKIHJlbW92YWwgaW4tcGxhY2UgKGkuZS4gZG9lcyBub3QgcmVxdWlyZSBjcmVhdGluZyBhIG5ldyBmaWxlKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2lnbm9yZS5yZWdleHA6IGFkZGluZyBhIGlnbm9yZS5yZWdleHAgZmlsZSB0aGF0CgogY2FuIGJlIHVzZWQgd2l0aCByZW1vdmVpZmRlZmNvZGUucGwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGFkZCBhIG91dGdvaW5nIGxpbmsgdG8gdGhlCgogcGFyZW50IG1hcmtpbmcgcGFnZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IEFkZGVkIGEgd2lraSBvdXRwdXQgbW9kZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IE5vdGUgdGhhdCB0aGUgb3JnIG91dHB1dCBpcyB0aGUKCiBkZWZhdWx0IGluIHRoZSBoZWxwIG91dHB1dCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkCgogJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkCgogJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkCgogJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkCgogJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKIHJlY2xhc3NpZmljYXRpb24gb2YgdGhlIHJlbWFpbmluZyBmZWF0dXJlcyBpbnRvIGEgaGllcmFyY2h5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogZG9uJ3QgZG91YmxlLWRlY2xhcmUgY2VydF91dGlscyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IHRoZQoKIGlwYWRkcmVzc19saW51eCB3YXMgaW5jb3JyZWN0bHkgbWFya2VkIGFzIG5lZWRpbmcgY2VydF9maW5nZXJwcmludHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBwdXQgdGhlIGFnZW50X3JlZ2lzdHJ5IGZlYXR1cmUgaW4KCiBsaWJuZXRzbm1wYWdlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOiBDSEFOR0VTOiBXaW4zMjogRGVwcmVjYXRlZAoKIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvCiBleHBvcnQgYSBmdW5jdGlvbiBmcm9tIG5ldHNubXAuZGxsLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6IENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkCgogbGlic25tcC5kZWYgLSBhZGQgTkVUU05NUF9JTVBPUlQgdG8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluc3RlYWQgdG8KIGV4cG9ydCBhIGZ1bmN0aW9uIGZyb20gbmV0c25tcC5kbGwuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6IE1vdmVkIGEgc291cmNlIGNvZGUgY29tbWVudAoKIHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbiBpbW1lZGlhdGVseSBhYm92ZSB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGl0CiBhcHBsaWVzIHRvLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6IEFkZGVkIG1pc3NpbmcKICAgICAgTkVUU05NUF9JTVBPUlQKCiBkZWNsYXJhdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOiBBZGRlZCBtaXNzaW5nCiAgICAgIE5FVFNOTVBfSU1QT1JUCgogZGVjbGFyYXRpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmOiAKCiBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmOiAKCiBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogVHJpdmlhbCBjb21tZW50IGZpeDoKCiBzbm1wSVB2NkJhc2VEb21haW4uYyBjb250YWlucyBJUHY2IGJhc2UgdHJhbnNwb3J0IHN1cHBvcnQgZnVuY3Rpb25zCiBpbnN0ZWFkIG9mIElQdjQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogVHJpdmlhbCBjb21tZW50IGZpeDoKCiBzbm1wSVB2NkJhc2VEb21haW4uYyBjb250YWlucyBJUHY2IGJhc2UgdHJhbnNwb3J0IHN1cHBvcnQgZnVuY3Rpb25zCiBpbnN0ZWFkIG9mIElQdjQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9jb25maWcuaDogUmVtb3ZlZCBhbiBvYnNvbGV0ZSBmaWxlLiAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCB3aW4zMi9zbm1wc21fc2h1dGRvd24uaCwgCiAgICAgIHdpbjMyL3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOiBCdWlsZHMgYWdhaW4gd2l0aCBWaXN1YWwgU3R1ZGlvCgogYWZ0ZXIgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmUiIGZlYXR1cmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL3NubXBzbV9pbml0Lmg6IFJlbW92ZWQgYSBtaXNsZWFkaW5nIGNvbW1lbnQuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IENvcnJlY3QgdGhlIGNoZWNrIG9mCgogd2V0aGVyIHVzbSBzZWN1cml0eSBpcyBlbmFibGVkLiAgUmVnZW5lcmF0ZSBjb25maWd1cmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSZWdlbmVyYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmM6IEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6IElnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20KCiBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXIuYzogU3BsaXQgdGhlIGNvbnRhaW5lcl9jb21wYXJlX2Z1bmN0aW9ucyBmZWF0dXJlCgogaW50byBjb250YWluZXJfY29tcGFyZV9tZW0sIGNvbnRhaW5lcl9jb21wYXJlX2xvbmcsCiBjb250YWluZXJfY29tcGFyZV91bG9uZywgY29udGFpbmVyX2NvbXBhcmVfaW50MzIgYW5kCiBjb250YWluZXJfY29tcGFyZV91aW50MzIgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29tcGFyZQogZnVuY3Rpb25zIGZ1cnRoZXIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOiBDaGFuZ2UgdGhlIHNwZWxsaW5nIG9mIHRoZQoKIGNvbnRhaW5lcl9jb21wYXJlX2NzdHJpbmcgZmVhdHVyZSB0byBjb250YWluZXJfbmNvbXBhcmVfY3N0cmluZyBhcwogdGhhdCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBpcyBndWFyZGVkIGJ5IHRoYXQgYXR0cmlidXRlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6IEFkZCB0aGUgbWlzc2luZyByZXBsYWNlbWVudAoKIG1hY3JvIGZvciBzbm1wX2luaXRfc3RhdGlzdGljcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDogc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljX2J5CgogdGFrZXMgdHdvIGFyZ3VtZW50cyBzbyBsZXQgdGhlIHJlcGxhY2VtZW50IG1hY3JvIHRha2UgdHdvIGFyZ3VtZW50cwogYXMgd2VsbC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6IEZpeCB0eXBvIGluCgogcjE5OTkwIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjazogUmVtb3ZlIGxpbmVzIHN0YXJ0aW5nIHdpdGggI2RlZmluZQoKIGluIHRoZSBvdXRwdXQgb2YgdGhlIHByZXByb2Nlc3NvciBXaGVuIGdjYyAtRSBpcyBjYWxsZWQgd2l0aCAtZ2dkYjMKIChvciAtZEQpIHRoZW4gYWxsIHRoZSBtYWNybyBkZWZpbml0aW9ucyBhcmUgcGFzc2VkIHRocm91Z2ggdGhlCiBwcmVwcm9jZXNzb3IgYW5kIHRoYXQgbWVzc2VzIHVwIG91ciBwcm9jZXNzaW5nLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUucnVsZXM6IFB1dCB0aGUgZ2VuZXJhdGVkIGZpbGUgaW4gdGhlIGJ1aWxkIHRyZWUsIG5vdCB0aGUKCiBzb3VyY2UgdHJlZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgogICAgICAgZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogbW92ZWQgYSBidW5jaCBvZiBmZWF0dXJlcyBpbnRvIHRoZSBsaWJuZXRzbm1wbWlicyBmZWF0dXJlIHNldC4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzLCBzbm1wbGliL21pYi5jOgoKIGNsYXNzaWZpZWQgbGlibmV0c25tcGFnZW50IGZlYXR1cmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBsaWJyYXJpZXMKCiAoc25tcGxpYiBmaXJzdCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogb3V0cHV0IGNsZWFudXAgYW5kIGFkZGVkIGFnZW50LW1pYnMKCiBhbmQgbG9nZ2luZyBvcHRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZCBhIGRlZmF1bHQgc2V0IG9mIGFyZ3VtZW50cwoKIGNhbGN1bGF0ZSByZXN1bHRpbmcgc2l6ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOiBBZGRlZCBhIG1pc3NpbmcgOyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogcHJlZml4IHRoZSBvdXRwdXQgZmlsZXMgd2l0aCBhIG51bWJlcgoKIHRvIGluZGljYXRlIG9yZGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHN5c3RlbQoKIGV4ZWN1dGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZW5hYmxlIGJ1aWxkaW5nIG9mIHRoZSByZXN1bHRpbmcKCiBjb21iaW5hdGlvbnMgQWRkIGEgLW4gZmxhZyBmb3IgZHJ5LXJ1bnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGVuYWJsZSB0aGUgLXQgdGFnIGZvciBsaW1pdGluZyB0eXBlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYXJndW1lbnQgcGFyc2luZyBhbmQgYXJndW1lbnRzCgogZm9yIHNlbGVjdGluZyBhbmQgbGlzdGluZyB0eXBlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBnZW5lcmF0ZSBjb25maWd1cmUgc2NyaXB0IGFyZ3VtZW50cwoKIGZyb20gc3BlY3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogYWRkZWQgYSBidW5jaCBvZiBuZXcgZmVhdHVyZSBvcHRpb25zCgogYW5kIGNsZWFuZWQgdXAgYSBiaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogYWRkZWQgYSBuZXcgKG5vdCB5ZXQgd29ya2luZykgc2NyaXB0CgogdG8gdGVzdCBzaXppbmcgb2YgdmFyaW91cyBhcmd1bWVudCBzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFNpbXBsaWZ5IHRoZSBjb2RlLiBVbmlmeSBzb21lCgogZGVidWcgbG9ncy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlZHVjZSB0aGUgc2NvcGUgb2YgYSBmZXcKCiB2YXJpYWJsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcy4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBNYWtlIGl0IHBvc3NpYmxlIHRvCgogaW5pdGlhbGl6ZS91bmluaXRpYWxpemUgbW9kdWxlcyB3aXRoIDY0IGNoYXJhY3RlciBuYW1lcyBhbmQgbm90CiBzdWZmZXIgd2lsZCB3cml0ZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBDb2RlIHJlc3RydWN0dXJpbmcgLSBwdXQgdGhlCgogbWFuYWdlZCByb3V0aW5lcyBiZWZvcmUgdGhlIG1hbmFnbWVudCBjb2RlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDogCgogQ0hBTkdFUzogbGlibmV0c25tcG1pYnM6IE1ha2UgYWxsIGZ1bmN0aW9ucyBpbiB0aGUgZGxtb2QgbW9kdWxlIHRoYXQKIGRvbid0IGhhdmUgdG8gYmUgcHVibGljIHN0YXRpYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZW5hbWUgZGVpbml0X2RsbW9kIHRvCgogc2h1dGRvd25fZGxtb2QgYXMgdGhhdCBpcyB3aGF0IGl0IHJlYWxseSBpcyBhYm91dC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6IGFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcwoKIHRvIG5ldC1zbm1wLXZhY20gbWliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBwcm9wZXJseSBoYW5kbGUgdHdpbiBjaGlsZHJlbjsKCiBhbHNvIHNvcnQgdGhlIGNoaWxkIGxpc3QgYWxwaGFiZXRpY2FsbHkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IEkgc3VwcG9zZSBsb2dnaW5nIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0CgogdG8gYmVpbmcgYSB3YW50ZWQgb3B0aW9uIDotKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogb3JnLWxpbmsgdGhlIGZpbGVzIGluIHRoZQoKIG91dHB1dCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5ydWxlcywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjaywgc25tcGxpYi9NYWtlZmlsZS5pbjogbWFrZSB0aGUKCiBmZWF0dXJlcy1jaGVjayBzY3JpcHQgdHJhY2sgdGhlIGZ1bGwgc291cmNlIHBhdGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGNoYW5nZSB0aGUgZnVuY3Rpb24gbmFtZXMgdG8KCiBtYXRjaCB0aGF0IGl0J3MgcHJpbnRpbmcgdG8gb3JnLW1vZGUgYXQgdGhlIG1vbWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3Rvb2xzLmM6IGxhc3QKICAgICAgb2YKCiB0aGUgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBpbiBsaWJuZXRzbm1wIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYzogbWFrZSB0aGUKCiB1c21fc3VwcG9ydCB1dGlsaXRpZXMgc2VsZi1kZWNsYXJlIHRoZW1zZWx2ZXMgYXMgY2hpbGRyZW4gdG8gbWFrZQogc3VyZSB0aGV5J3JlIHByb3Blcmx5IGluY2x1ZGVkIGR1cmluZyBkZXBlbmRlbmN5IG9yZGVyaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zbm1wdXNtLmM6IHN1cGVyc3RydWN0dXJhbGl6YXRpb25pemluZwoKIHRoZSBmZWF0dXJlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc3lzdGVtLmMsIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi90b29scy5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKIHNpZ25pZmljYW50IHBhcmVudC9jaGlsZCBmZWF0dXJlIGNsYXNzaWZpY2F0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYzogY2xhc3NpZnkgYSBmZXcgY29tcG9uZW50cwoKIGludG8gYSB0b3AtbGV2ZWwgbGlibmV0c25tcCBjb21wb25lbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBzdHJ1Y3R1cml6ZSB0aGUgdXNtIGZlYXR1cmVzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6IHN0cnVjdHVyZSB0aGUgY29udGFpbmVyIGZlYXR1cmVzIGludG8gYQoKIGhpZXJhcmNoeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGdyb3VwIHRoZSBsb2dnaW5nIGhhbmRsZXJzIHVuZGVyIGEgcGFyZW50CgogZmVhdHVyZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGZpeCB0aGUgZXhwZWN0IGFyZ3VtZW50IGNvdW50CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogZml4IHRoZSBuYW1lIG9mIHRoZSBleHBlY3RlZAoKIGlucHV0IGZpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGFyZ3VtZW50IHBhcnNpbmcgYW5kIHVzYWdlKCkKCiBvdXRwdXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCBzbm1wbGliL29pZF9zdGFzaC5jOiAtCiAgICAgIGFkZGVkIHR3byBvaWRfc3Rhc2ggZnVuY3Rpb25zIGFzIGluZGl2aWR1YWwgZmVhdHVyZXMgLSBjbGVhbmVkIHVwCiAgICAgIHNvbWUgd2FybmluZ3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGNvZGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWw6IEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCiAgICAgIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCoKICAgICAgYnJhbmNoZXMsIHJhdGhlciAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaCAgaW50byBsaW5lIHdpdGgKICAgICAgdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKgogICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWw6IEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCiAgICAgIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCoKICAgICAgYnJhbmNoZXMsIHJhdGhlciAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbgoKIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKCiBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaDogYWRkaW5nIGlmZGVmIGNvZGUKCiBmb3IgbWluaW1hbGlzdCBzdXBwb3J0IG9mIGRpZmZtYW4gbWliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaDoKCiBBZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMgdG8gaG9zdCByZXNvdXJjZSBtaWIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIHNubXBsaWIvZGF0YV9saXN0LmM6IG1hcmsgdGhlCgogZGF0YV9saXN0IGZ1bmN0aW9uIHRoYXQncyBvbmx5IHVzZWQgaW4gc3RhY2hfY2FjaGluZyBhcyBhIGZlYXR1cmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6IHdob29wcy4gIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6IG1vcmUgbWlzc2luZyBzdGFzaCByZWZlcmVuY2VzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzogaWZkZWZlZC9mZWF0dXJlZCBvdXQgYSBtaXNzaW5nCgogc3Rhc2hfY2FjaGUgc2VjdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzogbWFrZSB0aGUgcHJlZml4X2luZm8gbW9yZQoKIGhpZXJhcmNoaWNhbCBhbmQgc3ViLWZlYXR1cmUgdGhlIHVudXNlZCBvbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IGRvIGluY2x1ZGUgdGhlIHBlcmwvcHl0aG9uIGNvZGUKCiB3aGVuIHNlYXJjaGluZyBmb3IgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IG1ha2UgdGhlIHNlbWktdXNlZCB0YWJsZV90ZGF0YQoKIGZ1bmN0aW9ucyBjaGlsZHJlbiBvZiB0YWJsZV90ZGF0YV9hbGwgaW5zdGVhZCBvZiBqdXN0IHRhYmxlX3RkYXRhIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogQ29ycmVjdCB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENvcnJlY3QgdHlwbyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzogcHJvcGVyIGluY2x1ZGUgb2YgcHJvdG90eXBlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBjb21wYXQgc29tZSBmZWF0dXJlIGhlYWRlcgoKIGNoaWNrZW4gYW5kIGVnZyBwcm9ibGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBfdmFycy5jOiBJbmNsdWRlIHJlcXVpcmVkIHByb3RvdHlwZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6IHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDogRW5hYmxlIChwcm9iYWJseSBmb3Jnb3R0ZW4pCgogaXBBZGRyZXNzUHJlZml4VGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IEVuYWJsZSAocHJvYmFibHkgZm9yZ290dGVuKQoKIGlwQWRkcmVzc1ByZWZpeFRhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjaywgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jcywKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZSwgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZSwgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBhZGRlZCBvdGhlciBtaXNzaW5nICduZXcnCiAgICAgIGZpbGVzCgogbm90IGluY2x1ZGVkIGluIHRoZSBtaW5pbWFsaXN0IHBhdGNoIGZpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jOiBMb2FkaW5nCgogSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmM6IExvYWRpbmcKCiBJUHY2IGRhdGEgaXMgYSBuby1ubyB3aGVuIElQdjYgbm90IGVuYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKCiBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKCiBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKCiBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKCiBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKCiBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaDogYWRkZWQgbWlzc2luZwoKIG5ldC1zbm1wLWZlYXR1cmVzLmggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCAKICAgICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWMKICAgICAgIGUuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KICAgICAgIGFjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgogICAgICAgZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKICAgICAgICwgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTgogICAgICAgVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgIGFnZW50L3NubXBkLmMsCiAgICAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvYWdlbnR4dHJhcC5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuYWMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgcGVybC9PSUQvT0lELnhzLCAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvTWFrZWZpbGUuaW4sIAogICAgICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9kaXJfdXRpbHMuYywKICAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywKICAgICAgc25tcGxpYi9pbnQ2NC5jLCAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgICAgIHNubXBsaWIvbWliLmMsICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wa3NtLmMsICBzbm1wbGliL3NubXB0c20uYywKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICBzbm1wbGliL3N5c3RlbS5jLAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi90b29scy5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZTogTkVXUzoKCiBwYWNrYWdpbmc6IEVuYWJsZSBtaWNyby1hbmQtbWFjcm8tZmVhdHVyZSBtYW5hZ2VtZW50IHdpdGhpbgogTmV0LVNOTVA7IHRoaXMgYWRkcyBhIG51bWJlciBvZiBuZXcgZmxhZ3MgdG8gY29uZmlndXJlCiAoLS1lbmFibGUtbWluaW1hbGlzdCBhbmQgLS1lbmFibGUtcmVhZC1vbmx5KS4gIFRoZXNlIGNoYW5nZXMgYXJlCiBkZXNpZ25lZCB0byByZW1vdmUgbXVjaCBvZiB0aGUgaW5saW5lIGNvZGUgdGhhdCBpc24ndCBhbHdheXMKIG5lY2Vzc2FyeSBvciBkZXNpcmVkLiAgU2NyaXB0cyBleGlzdCAoYW5kIHdpbGwgYmUgaW1wcm92ZWQpIHRvIHN0aXAKIG91dCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIHRoZSBjb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhIHNob3J0ZXIKIHJldmlldyBwcm9jZXNzIGZvciB1cGdyYWRpbmcgdG8gbmV3IHJlbGVhc2VzLiAgVGhpcyB3b3JrIHdhcyBkb25lIGJ5CiBXZXMgSGFyZGFrZXIgYW5kIE1pY2hhZWwgQmFlciBmcm9tIFNQQVJUQSwgSW5jLiBidXQgaXMgYmVpbmcgY2hlY2tlZAogaW4gYXMgYSBsYXJnZSBwYXRjaCBzaW5jZSBjb252ZXJ0aW5nIHRoZSBtaWNybyBwYXRjaGVzIGZyb20gZ2l0IHRvCiBzdm4gdHVyZW5kIG91dCB0byBiZSBpbXBvc3NpYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogRkFROiB1c2UgdGhlIHdpa2kgVVJMIGluc3RlYWQgb2YgdGhlIHR1dG9yaWFsLTUgVVJMIGZvciB0aGUKCiBzbm1wdHJhcCB0dXRvcmlhbCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzogUmV2ZXJ0IGEgYm9ndXMgY2hhbmdlIHRoYXQgY3JlcHQKCiBpbnRvIHRoZSBjb2RlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgQUdFTlQudHh0LCBDSEFOR0VTLCBDT1BZSU5HLCBDaGFuZ2VMb2csIENvZGluZ1N0eWxlLCAKICAgICAgRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5hbSwgTWFrZWZpbGUuaW4sIAogICAgICBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsIAogICAgICBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0LCBSRUFETUUuYWdlbnQtbWlicywgUkVBRE1FLmFnZW50eCwgCiAgICAgIFJFQURNRS5haXgsIFJFQURNRS5ocHV4MTEsIFJFQURNRS5pcml4LCBSRUFETUUua3JiNSwgUkVBRE1FLm9zWCwgCiAgICAgIFJFQURNRS5zbm1wdjMsIFJFQURNRS5zb2xhcmlzLCBSRUFETUUuc3FsLCBSRUFETUUudGhyZWFkLCAKICAgICAgUkVBRE1FLnRydTY0LCBSRUFETUUud2luMzIsIFRPRE8sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIAogICAgICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIAogICAgICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9ubGlzdC5oLCAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIAogICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCAKICAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCAKICAgICAgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SRUFETUUsIAogICAgICBhZ2VudC9taWJncm91cC9SRUFETUUuc211eCwgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9SRUFETUUsIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmgsICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9hbGFybS5zaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9oaXN0LnNoLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVTY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwU2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBfZW51bS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24tbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vb2xkLWV2ZW50LW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmctbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCiAgICAgICBlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKICAgICAgIGVzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldAogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0CiAgICAgICAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldAogICAgICAgLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2VudW1zLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjCiAgICAgICBlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjCiAgICAgICBlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaCwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2QsCiAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jb2x1bW5zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kcywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tlcm5kYXRhLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tlcm5kYXRhLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbWFjaC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X251bGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21vdW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZHluaXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X251bGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV93aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9kdW1teV9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9jeWd3aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX251bGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BycHNpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGVmcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbgogICAgICAgc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0CiAgICAgICBhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KICAgICAgIGFjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgogICAgICAgZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgogICAgICAgZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfY29uCiAgICAgICBzdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9nZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZW51CiAgICAgICBtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CiAgICAgICBlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9vaWQKICAgICAgIHMuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9vaWRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW4KICAgICAgIHRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW4KICAgICAgIHRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW4KICAgICAgIHQuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFuCiAgICAgICB0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfb2lkcy5oLCBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSwgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jb2x1bW5zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwogICAgICAgLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAogICAgICAgLCBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXguaCwKICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXQKICAgICAgIGVycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldAogICAgICAgZXJzLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RhdGFfc2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2RveHlnZW4uY29uZiwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9vaWRzLmgsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvTWFrZWZpbGUsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3ByaXZhdGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YQogICAgICAgbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmgsIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9jb25zdGFudHMuCiAgICAgICBoLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwuaCwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3ByaXZhdGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfY29uc3RhbnRzLgogICAgICAgaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBoLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmgsIAogICAgICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywgYWdlbnQvc25tcF9wZXJsLmgsIAogICAgICBhZ2VudC9zbm1wX3BlcmwucGwsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCAKICAgICAgYWdlbnQvc25tcGQuaCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuaW4sIAogICAgICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wX3BlcmxfdHJhcGQucGwsIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2Zmcy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgCiAgICAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5oLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfZHMuaCwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBhcHBzL3NubXB1c20uYywgCiAgICAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NzaHRvc25tcC5jLCBjb25maWcuZ3Vlc3MsIAogICAgICBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLAogICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0cywgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUywgCiAgICAgIGRpc3QvYXV0b2NvbmYtdmVyc2lvbiwgZGlzdC9jaGFuZ2Vsb2dmaXgsIGRpc3QvY2hlY2stYXBpLWNoYW5nZSwgCiAgICAgIGRpc3QvY3Zzc2hvdywgZGlzdC9jdnN1cCwgZGlzdC9leHRyYWN0bmV3cywgZGlzdC9maW5kLXJlcXVpcmVzLCAKICAgICAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9ERVZFTlYsIAogICAgICBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvUkVBRE1FLCAKICAgICAgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL2J1aWxkcGFja2FnZS1zb2xhcmlzLCAKICAgICAgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL2VsZmRlcGVuZC5zaCwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgZGlzdC9uc2ItY29uZmlnLCBkaXN0L25zYi1mdW5jdGlvbnMsIGRpc3QvbnNiLW5pZ2h0bHksIAogICAgICBkaXN0L25zYi1wYWNrYWdlLCBkaXN0L25zYi1wbGF0Zm9ybSwgZGlzdC9wYXRtZSwgCiAgICAgIGRpc3Qvc2NoZW1hLXNubXB0cmFwZC5zcWwsIGRpc3Qvc25tcGQtaW5pdC5kLCAKICAgICAgZGlzdC9zbm1wdHJhcGQtaW5pdC5kLCBkaXN0L3N2bnVwLCBkb2MvcmZjL2FnZW50eC9yZmMyNzQxLnR4dCwgCiAgICAgIGRvYy9yZmMvbWlzYy9yZmMzNTEyLnR4dCwgZG9jL3JmYy9taXNjL3JmYzM1ODQudHh0LCAKICAgICAgZG9jL3JmYy9zbWlWMi9yZmMyNTc4LnR4dCwgZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc21pVjIvcmZjMjU3OS50eHQsIGRvYy9yZmMvc21pVjIvcmZjMjU4MC50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMS9yZmMxMTU1LnR4dCwgZG9jL3JmYy9zbm1wVjEvcmZjMTE1Ny50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMS9yZmMxMjEyLnR4dCwgZG9jL3JmYy9zbm1wVjEvcmZjMTIxMy50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMi9yZmMxOTAxLnR4dCwgZG9jL3JmYy9zbm1wVjIvcmZjMTkwMi50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMi9yZmMxOTAzLnR4dCwgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNC50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMi9yZmMxOTA1LnR4dCwgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNi50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMi9yZmMxOTA3LnR4dCwgZG9jL3JmYy9zbm1wVjIvcmZjMTkwOC50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMi9yZmMyMDg5LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMC5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDEwLnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMS50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDEyLnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMy5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDEzLnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNC5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDE0LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNS5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDE1LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNi50eHQsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDE3LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxOC5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDE4LnR4dCwgZG90Z2RiaW5pdCwgZG94eWdlbi5jb25mLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL3NlbnNvcnMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbW9kZV9lbmRfY2FsbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX3RvX25leHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc2NvcGV6b25lLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBbGlhc0RvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9rZnJlZWJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMm1zdmMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oLAogICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FLCBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmgsIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL21pYi5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCwgaW5zdGFsbC1zaCwgbG9jYWwvRkFRMkhUTUwsIAogICAgICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvUkVBRE1FLm1pYjJjLCBsb2NhbC9WZXJzaW9uLU11bmdlLnBsLCAKICAgICAgbG9jYWwvY29udmVydGNvZGUsIGxvY2FsL2ZpeHByb2MsIGxvY2FsL2h0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsCiAgICAgICBsb2NhbC9odG1sLXRleHRmaWxlLWZpeC5wbCwgbG9jYWwvaXBmLW1vZC5wbCwgbG9jYWwvbWliMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWNvcHkubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLWJvdC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtbG9uZy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtb2lkLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtaGVhZGVyLXRvcC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWVudW1zLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yYy1pbnRlcm5hbC13YXJuaW5nLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3RhYmxlX3NhdmVfZGVmYXVsdHMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1kb3h5Z2VuLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm0sIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYywgbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjLAogICAgICAgbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaSwgbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaSwKICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXN0b3JhZ2UubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFsaWRhdGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmksCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJkLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLXZhcmJpbmQtdmFsaWRhdGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpLCBsb2NhbC9taWIyYy11cGRhdGUsCiAgICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLAogICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXNfbG9jYWwuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZiwgbG9jYWwvbWliMmMuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmYsIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5tZmQuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mLCBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5wZXJsLmNvbmYsIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mLCAKICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mLCBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0LCAKICAgICAgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3Bhc3N0ZXN0LnBsLCBsb2NhbC9zbm1wLXVjZC5zaCwgCiAgICAgIGxvY2FsL3NubXBjaGVjay5kZWYsIGxvY2FsL3NubXBjb25mLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9hdXRob3B0cywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvZGVidWdnaW5nLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9taWJzLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2FjbCwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2Jhc2ljX3NldHVwLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvZXh0ZW5kaW5nLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL29wZXJhdGlvbiwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3NubXBjb25mLWNvbmZpZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbSwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3RyYXBzaW5rcywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9hdXRoZW50aWNhdGlvbiwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2xvZ2dpbmcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvcnVudGltZSwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZSwgbG9jYWwvc25tcGR1bXAucGwsIAogICAgICBsb2NhbC90a21pYiwgbG9jYWwvdHJhcHRvZW1haWwsIGx0bWFpbi5zaCwgCiAgICAgIG00L2FjX2FkZF9zZWFyY2hfcGF0aC5tNCwgbTQvYWNfbXNnX2NhY2hlLm00LCAKICAgICAgbTQvYWNfbXNnX21vZHVsZV9kYmcubTQsIG00L2FjX3Byb21wdF91c2VyLm00LCBtNC9saWJ0b29sLm00LCAKICAgICAgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQsCiAgICAgIG00L2x0fm9ic29sZXRlLm00LCAgbTQvbmV0c25tcF9hcmcubTQsIG00L25ldHNubXBfc2VhcmNoX2xpYnMubTQsCiAgICAgIG1ha2VkZXBlbmQuaW4sICBtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsCiAgICAgIG1ha2V0YXJnZXQsICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9hZGRfbWliZGlyLjMsCiAgICAgIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsICBtYW4vY29uZmlnX2FwaS4zLmRlZiwKICAgICAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwKICAgICAgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsICBtYW4vZml4cHJvYy4xLmRlZiwKICAgICAgbWFuL2dldF9tb2R1bGVfbm9kZS4zLCBtYW4vaW5pdF9taWIuMywgIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywKICAgICAgbWFuL21ha2VfaW5kZXgucGwsIG1hbi9tYW5fc2VjdGlvbnMudHh0LCAgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZiwKICAgICAgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliMmMuY29uZi41LmluLCAgbWFuL21pYjJjLmV4dHJhY3QucGwsCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLCAKICAgICAgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmLCAKICAgICAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zZXRfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIAogICAgICBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wZHVfYXBpLjMuZGVmLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywKICAgICAgIG1hbi9wcmludF9taWIuMywgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zLCAKICAgICAgbWFuL3ByaW50X3ZhcmlhYmxlLjMsIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCAKICAgICAgbWFuL3JlYWRfbW9kdWxlLjMsIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsIG1hbi9yZWFkX29iamlkLjMsIAogICAgICBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zaHV0ZG93bl9taWIuMywgbWFuL3NubXAuY29uZi41LmRlZiwgCiAgICAgIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIAogICAgICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwKICAgICAgIG1hbi9zbm1wX2Vycm9yLjMsIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgCiAgICAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIAogICAgICBtYW4vc25tcF9zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmLCAKICAgICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLAogICAgICAgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19yZWFkLjMsIAogICAgICBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCAKICAgICAgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCAKICAgICAgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLCBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgCiAgICAgIG1hbi9zbm1wX3RpbWVvdXQuMywgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWYsCiAgICAgIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICAgICBtYW4vc25tcGNvbmYuMS5kZWYsICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICAgICBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsCiAgICAgIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsICBtYW4vc25tcGdldC4xLmRlZiwKICAgICAgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcGluZm9ybS4xLCAgbWFuL3NubXBuZXRzdGF0LjEuZGVmLAogICAgICBtYW4vc25tcHNldC4xLmRlZiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsICBtYW4vc25tcHRhYmxlLjEuZGVmLAogICAgICBtYW4vc25tcHRlc3QuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCAgbWFuL3NubXB0cmFwLjEuZGVmLAogICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsICBtYW4vc25tcHVzbS4xLmRlZiwKICAgICAgbWFuL3NubXB2YWNtLjEuZGVmLCBtYW4vc25tcHdhbGsuMS5kZWYsICBtYW4vdGttaWIuMS5kZWYsCiAgICAgIG1hbi90cmFwdG9lbWFpbC4xLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmLCAKICAgICAgbWFuL3ZhcmlhYmxlcy41LmRlZiwgbWlicy9BR0VOVFgtTUlCLnR4dCwgCiAgICAgIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgCiAgICAgIG1pYnMvRElTTUFOLU5TTE9PS1VQLU1JQi50eHQsIG1pYnMvRElTTUFOLVBJTkctTUlCLnR4dCwgCiAgICAgIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0LCAKICAgICAgbWlicy9ESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0LCBtaWJzL0V0aGVyTGlrZS1NSUIudHh0LCAKICAgICAgbWlicy9IQ05VTS1UQy50eHQsIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgCiAgICAgIG1pYnMvSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCAKICAgICAgbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgCiAgICAgIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0LCBtaWJzL0lBTkEtUlRQUk9UTy1NSUIudHh0LCAKICAgICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwgCiAgICAgIG1pYnMvSUYtTUlCLnR4dCwgbWlicy9JTkVULUFERFJFU1MtTUlCLnR4dCwgCiAgICAgIG1pYnMvSVAtRk9SV0FSRC1NSUIudHh0LCBtaWJzL0lQLU1JQi50eHQsIAogICAgICBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0LCBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LCAKICAgICAgbWlicy9JUFY2LU1JQi50eHQsIG1pYnMvSVBWNi1UQy50eHQsIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwgCiAgICAgIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQsIG1pYnMvTVRBLU1JQi50eHQsIAogICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCAKICAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0LCAKICAgICAgbWlicy9ORVQtU05NUC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0LCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0LCAKICAgICAgbWlicy9ORVQtU05NUC1UQy50eHQsIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0LCAKICAgICAgbWlicy9ORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0LCAKICAgICAgbWlicy9SRUFETUUubWlicywgbWlicy9SRkMtMTIxNS50eHQsIG1pYnMvUkZDMTE1NS1TTUkudHh0LCAKICAgICAgbWlicy9SRkMxMjEzLU1JQi50eHQsIG1pYnMvUk1PTi1NSUIudHh0LCBtaWJzL1NDVFAtTUlCLnR4dCwgCiAgICAgIG1pYnMvU01VWC1NSUIudHh0LCBtaWJzL1NOTVAtQ09NTVVOSVRZLU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwgCiAgICAgIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBtaWJzL1NOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgCiAgICAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBtaWJzL1NOTVB2Mi1DT05GLnR4dCwgCiAgICAgIG1pYnMvU05NUHYyLU1JQi50eHQsIG1pYnMvU05NUHYyLVNNSS50eHQsIG1pYnMvU05NUHYyLVRDLnR4dCwgCiAgICAgIG1pYnMvU05NUHYyLVRNLnR4dCwgbWlicy9UQ1AtTUlCLnR4dCwgCiAgICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELURFTU8tTUlCLmluYywgbWlicy9VQ0QtREVNTy1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtRElTS0lPLU1JQi5pbmMsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtRExNT0QtTUlCLmluYywgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi5pbmMsIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1JUEZXQUNDLU1JQi5pbmMsIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQsIG1pYnMvVUNELVNOTVAtTUlCLmluYywgCiAgICAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgbWlicy9VRFAtTUlCLnR4dCwgbWlicy9pYW5hbGlzdCwgCiAgICAgIG1pYnMvbWFrZWh0bWwucGwsIG1pYnMvbWliZmV0Y2gsIG1pYnMvbm9kZW1hcCwgbWlicy9yZmNsaXN0LCAKICAgICAgbWlicy9yZmNtaWJzLmRpZmYsIG1pYnMvc21pc3RyaXAsIG1raW5zdGFsbGRpcnMsIAogICAgICBuZXQtc25tcC1jb25maWcuaW4sIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluLCBvdi9NYWtlZmlsZS5pbiwgCiAgICAgIG92L1JFQURNRSwgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLCBvdi9iaXRtYXBzL1VDRC4yMC5tLCAKICAgICAgb3YvYml0bWFwcy9VQ0QuMjAucCwgb3YvYml0bWFwcy9VQ0QuMjYubSwgb3YvYml0bWFwcy9VQ0QuMjYucCwgCiAgICAgIG92L2JpdG1hcHMvVUNELjMyLm0sIG92L2JpdG1hcHMvVUNELjMyLnAsIG92L2JpdG1hcHMvVUNELjM4Lm0sIAogICAgICBvdi9iaXRtYXBzL1VDRC4zOC5wLCBvdi9iaXRtYXBzL1VDRC40NC5tLCBvdi9iaXRtYXBzL1VDRC40NC5wLCAKICAgICAgb3YvYml0bWFwcy9VQ0QuNTAubSwgb3YvYml0bWFwcy9VQ0QuNTAucCwgb3YvYml0bWFwcy9VQ0QuZmllbGRzLCAKICAgICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sIHBlcmwvQVNOL0FTTi5wbSwgCiAgICAgIHBlcmwvQVNOL0FTTi54cywgcGVybC9BU04vQ2hhbmdlcywgcGVybC9BU04vTUFOSUZFU1QsIAogICAgICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9BU04vdGVzdC5wbCwgcGVybC9BbnlEYXRhX1NOTVAvQ2hhbmdlcywKICAgICAgIHBlcmwvQW55RGF0YV9TTk1QL0RCRF9BbnlEYXRhLnBhdGNoLCBwZXJsL0FueURhdGFfU05NUC9Gb3JtYXQucG0sCiAgICAgICBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMLCBwZXJsL0FueURhdGFfU05NUC9NQU5JRkVTVCwgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL0FueURhdGFfU05NUC9SRUFETUUsIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGksIAogICAgICBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXgsIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoLCAKICAgICAgcGVybC9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5tYWtlZmlsZXMsIHBlcmwvTWFrZWZpbGUuc3Vicy5wbCwgCiAgICAgIHBlcmwvT0lEL0NoYW5nZXMsIHBlcmwvT0lEL01BTklGRVNULCBwZXJsL09JRC9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9PSUQvT0lELnhzLCBwZXJsL09JRC9SRUFETUUsIAogICAgICBwZXJsL09JRC90ZXN0LnBsLCBwZXJsL09JRC90eXBlbWFwLCBwZXJsL1NOTVAvQlVHLCAKICAgICAgcGVybC9TTk1QL01BTklGRVNULCBwZXJsL1NOTVAvTUFOSUZFU1QuU0tJUCwKICAgICAgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCAgcGVybC9TTk1QL1RPRE8sIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzEucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMyLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvYnVsa3dhbGsucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvaXBmb3J3YXJkLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvbWlidHJlZS5wbCwgCiAgICAgIHBlcmwvU05NUC9leGFtcGxlcy9taWJ3YWxrLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbCwgCiAgICAgIHBlcmwvU05NUC9leGFtcGxlcy90YWJsZXdhbGsucGwsIHBlcmwvU05NUC9leGFtcGxlcy90ZXN0bGVhay5wbCwgCiAgICAgIHBlcmwvU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIHBlcmwvU05NUC9oaW50cy9pcml4LnBsLCAKICAgICAgcGVybC9TTk1QL2hpbnRzL3NvbGFyaXMucGwsIHBlcmwvU05NUC9wZXJsc25tcC5oLCAKICAgICAgcGVybC9TTk1QL3QvUkVBRE1FLCBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50LCAKICAgICAgcGVybC9TTk1QL3QvY29uZi50LCBwZXJsL1NOTVAvdC9jb25mdGVzdC5jb25mLCBwZXJsL1NOTVAvdC9nZXQudCwgCiAgICAgIHBlcmwvU05NUC90L2dldG5leHQudCwgcGVybC9TTk1QL3QvbWliLnQsIHBlcmwvU05NUC90L21pYi50eHQsIAogICAgICBwZXJsL1NOTVAvdC9taWJsb2FkLnQsIHBlcmwvU05NUC90L25vdGlmeS50LAogICAgICBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsICBwZXJsL1NOTVAvdC9zZXQudCwKICAgICAgcGVybC9TTk1QL3Qvc25tcHRlc3QuY29uZiwgIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGwsCiAgICAgIHBlcmwvU05NUC90eXBlbWFwLCAgcGVybC9UcmFwUmVjZWl2ZXIvQ2hhbmdlcywKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTUFOSUZFU1QsICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvUkVBRE1FLCAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2ZhbGxiYWNrL2NvbnN0LWMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvZmFsbGJhY2svY29uc3QteHMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaCwgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci90LzEudCwgcGVybC9UcmFwUmVjZWl2ZXIvdHlwZW1hcCwgCiAgICAgIHBlcmwvYWdlbnQvQ2hhbmdlcywgcGVybC9hZ2VudC9NQU5JRkVTVCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2FnZW50LnhzLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9nZW4sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsLCAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbSwgcGVybC9hZ2VudC90ZXN0LnBsLCAKICAgICAgcGVybC9hZ2VudC90eXBlbWFwLCBwZXJsL2RlZmF1bHRfc3RvcmUvQ2hhbmdlcywgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCwgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL1JFQURNRSwgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgcGVybC9kZWZhdWx0X3N0b3JlL2dlbiwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsLCBwZXJsL2RlZmF1bHRfc3RvcmUvdHlwZW1hcCwgCiAgICAgIHBlcmwvbWFrZS1wZXJsLW1ha2VmaWxlcywgcGVybC9tYW5hZ2VyL0lOU1RBTEwsIAogICAgICBwZXJsL21hbmFnZXIvTWFrZWZpbGUuUEwsIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG0sIAogICAgICBwZXJsL21hbmFnZXIvZ2V0VmFsdWVzLnBtLCBwZXJsL21hbmFnZXIvbWFuYWdlci5wbSwgCiAgICAgIHBlcmwvbWFuYWdlci9zZXR1cGF1dGgsIHBlcmwvbWFuYWdlci9zZXR1cGRiLCAKICAgICAgcGVybC9tYW5hZ2VyL3NldHVwdXNlciwgcGVybC9tYW5hZ2VyL3NubXB0b3NxbCwgcHl0aG9uL0xJQ0VOU0UsIAogICAgICBweXRob24vUkVBRE1FLCBweXRob24vbmV0c25tcC9fX2luaXRfXy5weSwgCiAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weSwgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgCiAgICAgIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL19faW5pdF9fLnB5LCBweXRob24vbmV0c25tcC90ZXN0cy9zbm1wZC5jb25mLAogICAgICAgcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weSwgcHl0aG9uL3NldHVwLnB5LCByZW1vdmUtZmlsZXMsIAogICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluLCAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9jb250YWluZXIuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLAogICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLAogICAgICBzbm1wbGliL2dldG9wdC5jLCAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywKICAgICAgc25tcGxpYi9pbnQ2NC5jLCAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsICBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAogICAgICBzbm1wbGliL210X3N1cHBvcnQuYywgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgICAgc25tcGxpYi9wa2NzLmMsICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgICAgc25tcGxpYi9zbm1wLXRjLmMsICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsICBzbm1wbGliL3NubXBfZW51bS5jLAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB0c20uYywKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMsCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCAgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvbC5jLAogICAgICBzbm1wbGliL3N0cnRvdWwuYywgIHNubXBsaWIvc3RydG91bGwuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgICAgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jLCAgc25tcGxpYi90ZXh0X3V0aWxzLmMsCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCAKICAgICAgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3dpbnBpcGUuYywgCiAgICAgIHNubXBsaWIvd2luc2VydmljZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UubWMsCiAgICAgIHNubXBsaWIvd2luc2VydmljZS5yYywgIHNubXBsaWIvd2luc2VydmljZXJjLnJjLCBzdGFtcC1oLAogICAgICBzdGFtcC1oLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluLCAgdGVzdGluZy9SRUFETUUsCiAgICAgIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL1QyLnNoLCAKICAgICAgdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsIAogICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsIAogICAgICB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCAKICAgICAgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsIAogICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwgCiAgICAgIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsCiAgICAgIHRlc3RpbmcvbWlzY3Rlc3QuYywgIHRlc3RpbmcvcmZjMTIxMy9SRUFETUUsIHRlc3RpbmcvcmZjMTIxMy9ydW4sIAogICAgICB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaCwgdGVzdGluZy9yZmMxMjEzL3Rlc3RfZnVuLCAKICAgICAgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIxLnNoLCB0ZXN0aW5nL3JmYzEyMTMvdGVzdG1pYjIuc2gsIAogICAgICB0ZXN0aW5nL3JmYzEyMTMvdGVzdG1pYjMuc2gsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsIAogICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50LCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDAwY29uZmlndXJlLCB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywKICAgICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MiwKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsICB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybCwgIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCAgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsLCB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhcywgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXYsIHdpbjMyL0NvbmZpZ3VyZSwgCiAgICAgIHdpbjMyL0VYQU1QTEUuY29uZi53aW4zMiwgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgCiAgICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oLCAKICAgICAgd2luMzIvU25tcC13aW5FeHRETEwuaCwgd2luMzIvYWdlbnRfbW9kdWxlX2RvdF9jb25mLmgsIAogICAgICB3aW4zMi9hZ2VudF9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvYWdlbnRfbW9kdWxlX2luaXRzLmgsIAogICAgICB3aW4zMi9idWlsZC5iYXQsIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9jb25maWcuaCwgCiAgICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRGV2ZWxvcGVyX0ZBUS5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9GQVEuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvSGVscF9DYXZlYXRzLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhwLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9zbm1wdHJhcGQuY29uZi53aW4zMi5odG1sLCAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvQWRkMlBhdGgubnNpLCAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvU2V0RW5WYXIubnNpLCAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9kaXN0L3NjcmlwdHMvY3JlYXRlLXRvYywgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGwsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcG9kZGlyMmh0bWwsIHdpbjMyL2Rpc3Qvc2NyaXB0cy9yZWFkbWUyaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy90eHQyaHRtbCwgd2luMzIvZGlzdC90b3NvY2sxLnNoLCAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgCiAgICAgIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LCB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCAKICAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLAogICAgICB3aW4zMi9sb2NhbC9taWIyYy5iYXQsICB3aW4zMi9sb2NhbC9zbm1wY29uZi5iYXQsCiAgICAgIHdpbjMyL2xvY2FsL3RyYXB0b2VtYWlsLmJhdCwgIHdpbjMyL21pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICAgICB3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9hZ2VudF9tb2R1bGVfY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgICB3aW4zMi9ubWFrZXBlcmwuYmF0LCAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgCiAgICAgIHdpbjMyL3NubXBzbV9pbml0LmgsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMmRsbC5kc3c6CgogRml4IDUuNS54IGJyYW5jaCBzdHJ1Y3R1cmUgKHBhcnQgMikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOiBwcm9wZXIgcHJvY2VzcwoKIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6IHByb3BlciBwcm9jZXNzCgogc3RhdHVzIHZhbHVlcyBmb3IgbmV0YnNkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zY2FwaS5jOiBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zY2FwaS5jOiBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDogdGNwLW1pYi91ZHAtbWliCgogc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOiB0Y3AtbWliL3VkcC1taWIKCiBzdXBwb3J0IGZvciB0aGUgKmJzZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjOiB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjOiB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYzogUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmM6IFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzogcmVtb3ZlIHZhcgoKIHRoYXQgc2hhZG93cyB0aGUgdXNlZnVsIG9uZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzogcmVtb3ZlIHZhcgoKIHRoYXQgc2hhZG93cyB0aGUgdXNlZnVsIG9uZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzogbWFqb3IgZmlkZGxpbmcgdG8gZ2V0IHRoaW5ncyB3b3JraW5nCgogZm9yIG9wZW5ic2QgdG9vLiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcmV3b3JrZWQgdG8gdXNlIHRoZQogdGNwLW1pYi91ZHAtbWliL2RhdGFfYWNjZXNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzogbWFqb3IgZmlkZGxpbmcgdG8gZ2V0IHRoaW5ncyB3b3JraW5nCgogZm9yIG9wZW5ic2QgdG9vLiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcmV3b3JrZWQgdG8gdXNlIHRoZQogdGNwLW1pYi91ZHAtbWliL2RhdGFfYWNjZXNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6IGZpeCB0Y3Agc3RhdGVzIGZvciBkcmFnb25mbHlic2QKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOiBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oOiBlbmFibGUgbmV3IHRjcC91ZHAgbWlicyBmb3Igc29sYXJpcwogICAgICBnaXQtc3ZuLWlkOgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43IC0+IFY1LjcuMS5wcmUxCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZToKCiA1LjcuMS5wcmUxCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjZjRjY2U0YzE4OWNmNDdmNGM0ODlkYjQzYjdmYTUxMGY4OTA2YTFhIE1lcmdlOiBkZjkxYTlmCgogOTNlOTdkYyBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24KIEF1ZyA4IDIyOjE1OjI4IDIwMTEgKzAxMDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAogICAgICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOiBEZWZpbmUKCiBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKIGluc3RydWN0aW9ucykKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZjE2ZGMyMjIxZTk5M2RkM2M2NjY1MGQ1ZTg3MjU3N2ZmZTZjMDFiIE1lcmdlOiA3MTRiYzgyCgogOGU1YTI4ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEzOjU2OjQzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTM6NTU6MzgKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgNzE0YmM4MmZhMDFlMjFhMzY1NTgyNDk2M2ZhNTRlOWI4MDQyZmZiMCBNZXJnZTogNmZlOGZlNQoKIDNlZjFkYjUgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMToyMTo0NiAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IGI0NTE2MDdkY2EwMTVjMTExZTk2ZmRmZWIyZGRiMDY2MWZiNGY3MjQgQXV0aG9yOiBEYXZlCgogU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24gQXVnIDggMjE6MjA6MzIgMjAxMQogKzAxMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2ZmU4ZmU1Mjk0YTQ1YmM3ZTRlYTM3NTFhMWFkN2FhNDdiNWNhYmIyIE1lcmdlOiAzNjRmOGZmCgogZjY5YWJlMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMjI6MDI6MzggMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGM5NDgxMzA0NGE0YzRhNjA4ZTk4ZTgwMjIzMDc1YzZmYWYwNGVlMTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAyMTo1NjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzY0ZjhmZmFlYjkwYjRlYjAxNjVmYzg1NTY4OGNkMDYyNjYzMjc5NCBNZXJnZTogMzI4NzI5NQoKIDdhYmI5MjYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMToyNDoyNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkaXNwbGF5IHRoZSBicmFuY2ggd2UnbGwgY29tbWl0IHRvCgoKMjAxMS0wOC0wOCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMzg2NjMzOgoKIGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODRhNzc1ZDA1NTdmZWE5NzU3MGU0MTcxNWEzMTY0OTcwYjRjMDNhMiBNZXJnZTogNmZmZjFjMQoKIGQzNzNjNGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIwOjEyOjMyIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM4NzEzOTogZnJvbQoKIHlhYmVyYXVuZXlhOiBBdm9pZCBzZWdmYXVsdCBpZiB0cmFwc2VzcyB0cmFuc3BvcnQgZWxlbWVudCBjYW50IGJlCiBwYXJzZWQgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlCgogZGlzcGxheWVkIGdpdCBjb21taXQgY29tbWFuZCBpbnRvIG11bHRpcGxlIHNlZ21lbnRzCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMzODY5NjE6CgogTWFrZSBTTk1QIEdFVCB3b3JrIGluIGFuIEFnZW50WCBzdWJhZ2VudCBpZiB3cml0ZSBzdXBwb3J0IGlzCiBkaXNhYmxlZCB2aWEgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIChNYXJrIFJ1c2spLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNmZmZjFjMWFlNTFiMDZjOWQ4MGZhZjE1MzczYTk2M2QxNzNmMTRlOCBNZXJnZTogODM3YzUyZQoKIDhjYzkwMDQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDo1ODo1OSAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEwOjMzOjU2CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjhmNTI5Y2JhMjdjMDExNGI0Y2I3MzQwY2ZkNDQ5NTA0ZmEwNzUwNiBNZXJnZTogMDgyMmYyZAoKIDU1NmU5MzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDowNTozNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggZnVuY3Rpb24gbmFtZSB0eXBvCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI5ODgyYTA3OGE5NTlhMGY3OGIwM2UwMTk2OGYxZDE3YjdmNmEyOTkgTWVyZ2U6IDVlOWJkMmYKCiAwNDA5YzBhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDM6MzQgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlIG9mIHB1bGwvcHVzaAoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2UgbnNwdWxsL25zcHVzaCBjaGVjayBmb3IgYQoKIGNsZWFuIHJlcG8KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG5ldyBmdW5jdGlvbiAibnNtYWtlYWxsIiB0byB0ZXN0CgogYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkZWZhdWx0IHRvIG1lcmdlCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bwoKIFY1LTctcGF0Y2hlcwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmCgogdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBoYXZlIGJlZW4gYnVpbHQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsCiBtb2R1bGVzIHRyaWdnZXJzIGEgIkZyZWUgdG8gd3JvbmcgcG9vbCIgY3Jhc2guIFRoaXMgcmVncmVzc2lvbiB3YXMKIGNhdXNlZCBieSBjb21taXQgM2IxNGM1OWNmODI3OGQ0MTAyMDdmZjQyZGViZGEyNjM2NDI2YTQ2OCAodGhlCiBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGUxMDk1Mzk5MzA3MDNjYjMwNTJkNTI0MWIxOGFjNmZjMDYyZmFhY2EgTWVyZ2U6IDBjOWI2Y2IKCiBlNDZiMTcwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODozNDoxMSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogRml4IGEgY3Jhc2ggdGhhdCBjb3VsZCBiZQoKIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90CiBlcXVhbCB0byAtMS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMDk6NTA6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBjOWI2Y2JlOWRiZTJlYzUyMTdhOTViNjc4MWZkN2RjMWY2ZWJkYTcgTWVyZ2U6IGZhNmNlZjUKCiA5NjMzMjBmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODoxNDozNiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTNiODY1NGEyMzJjNTYzYmM5N2NjOTkyNWNkOTg1OTBhMzBjNWJjNSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmYTZjZWY1Y2E5MWRmM2EwYjAzNDU1YjY4NTU5ZDJiZWUyNDgxMDFjIE1lcmdlOiBmNWZlNTM2CgogOGFkZDBkYSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKIDcgMTA6MTg6NTQgMjAxMSArMDIwMAoKMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEwZGQzY2FmMjU5MjZlNDM0NjU3MThiZjQxN2E0NjRjMmZiMzYzNjYgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcgNyAxMDoxNzowMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogMzIgaXMgdG9vIGxpbWl0ZWQgZm9yCgogYmlnZ2VyIHRhYmxlczsgaW5jcmVhc2UgdGhlIG1heCBtc2cgY291bnQgdG8gMTI4CgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIHJvbGx1cCBhbmQgc3luYyBzdXBwb3J0CgogLS1yZWJhc2UgYW5kIGNoYW5nZSB0aGUgZGVmYXVsdCBiYWNrIHRvIG1lcmdlCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnRlZCBob3cgdG8gdXNlIGJ1aWxkLmJhdCB3aXRoCgogT3BlblNTTCBlbmFibGVkCgoyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgb3V0ZGF0ZWQgaW5zdHJ1Y3Rpb25zIGFib3V0CgogZWRpdGluZyB3aW4zMlxsaWJzbm1wX2RsbFxsaWJzbm1wLmRlZiBmcm9tIFJFQURNRS53aW4zMgoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50IGhvdyB0byBidWlsZCA2NC1iaXQKCiBleGVjdXRhYmxlcyBmb3IgdGhlIHg2NC9hbWQ2NCBhcmNoaXRlY3R1cmUKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNWZlNTM2ZThmZDZjNDhmZTI0M2RlY2QzMWZhYzljZjFjOTJmNGNjIE1lcmdlOiA3ODUwZWExCgogODA5MjhhOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTU6MTM6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgwOTI4YTg5MDljZmFiMzdmMDFiMzlhMDcxYTNlOGFkODU5NTYyMjIgTWVyZ2U6IGYxNmEwOTQKCiAwZGJjODY5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMzo1NzozMCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGRiYzg2OWZlYzA3ZDhlOTBkYmQxYzk1NDkzZWU3Y2JjNjIzYzk1YyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjQwOjMxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQKCiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90CgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODZjMWUyYjk2NzlmZWMyY2Q3OTliYTc2MDA1YzNkNjBlOWQ0NzYzNCBNZXJnZTogYmNkODYzNQoKIGYxNmEwOTQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEyOjIwOjUwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZjhkNGY1Nzk2Y2JjMWM3ZTk2N2FjZGFhODAxOWIyNGYxNTIwYTM2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTI6MDI6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvcGFyc2UuYzogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIC0gcmV2ZXJ0IGNvbW1pdAoKIGQyYzQ3NjhiZDJlZmI0ODY2NDQzNGE4MzE0MjVjMmRkYTg1ZDcxMzMgKENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENICiAzMzYyMjMzOiBmcm9tIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZQogbm9pc2UpLgoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6IAoKIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAogYmY3MTc4YjBiMjI1ODdkNDNkMWE4MGMyNjljZDIxNmJkNTkzMDIxNCAoYWdlbnQ6IGNoYW5nZSB0eXBlIG9mCiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcpCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzCgogYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0gKIDMzODM0NDE6IGZyb20gc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZgogZnJlZWQgbWVtb3J5KS4KCjIwMTEtMDgtMDUgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBtaW5vciBORVdTIHBvbGlzaAoKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiY2Q4NjM1MDcxMzgyMjk2M2QzNzZlZmY1ODJhOTJmNDNlNDI2ZDZjIE1lcmdlOiA5YzgxMGEzCgogN2EyMGY3MSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTA6Mjg6NTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDNhYTk0OWZiZGZjMWE5NGE4MzQwYWQ4YmFmOGIzMTQ3NTZhMGJiOWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMDoyNjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOWM4MTBhM2IzN2I2ODU3M2M0MDMzN2UyNDZlMmZhZjI5OWI3N2QzMSBNZXJnZTogNzFjYjJlOAoKIDYxMGQ2M2YgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDo0MjowOCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOTQzOTMwZTFlMTI0Mzg1ZmQ5NDczOGI2ZGNkYTM3ZDI5ZGM3YWM3ZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxCiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNGVkY2I4OGRhZThiMmU1OWRjNjgzZTgwZDQxNGZhN2VjZWMzNjg4NSBNZXJnZTogNjVmM2VlZgoKIDJkZDllZDAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDoyNDoxMSAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNS1wYXRjaGVzJyBpbnRvCgogVjUtNS1wYXRjaGVzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmM1Y2EwM2EwNGFiMTljNjM0YTM0ZDA2MGIwYjE2Yjc0ODRjYjUyMCBNZXJnZTogODhmZGRiNwoKIDkwYzBlNzUgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDE5OjEzOjA3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jOiBzbm1wdXNtOiBGaXggcmVjZW50bHkKCiBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6IENIQU5HRVM6IG9wZW5ic2Q6CgogUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jOiBDSEFOR0VTOiBhZ2VudDoKCiBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ3M2Q3ZTVjZDRkNDExYmJhMjBlYjg1MzU5ZDg3MjgwNjMzMDFjYmQgTWVyZ2U6IGE0ZThiNjIKCiA4OGZkZGI3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6Mjg6MjIgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDIxMDFiYjJkN2FkNmRiMDM4Yzc1NWFhOTE5M2M4YWNlMGRiZDRmNTggQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAwOToyODowNgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IGlnbm9yZSAqLm9yaWcgYW5kICoucmVqCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogaGVscCBvdXRwdXQgZGVzY3JpYmVzIHJlYmFzZSB2cwoKIG1lcmdlIGJldHRlcgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGYxMjZhMTdjNmEzMDYzNDU1YTUxMTk0MGIwMjMwNDdhYmQ5YjQ4ZWUgTWVyZ2U6IGFkNzY1ZjQKCiA3N2E0Nzg0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ1MmUxNzA3ZjIwOWVjNDVlN2M3ZjJhMzA0MGVmNTk1ZmI5ZDFhZjYgTWVyZ2U6IGRjNzU1YTYKCiBiMzcyZTVhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MDMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q1Lmg6IENIQU5HRVM6IG9wZW5ic2Q6IFBBVENICiAgICAgIDMzNTc5Mjc6CgogZnJvbSB0MGp3MmZ1MGttZzogUmVjb2duaXNlIG9wZW5ic2Q1IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IHdoZXJlIGFyZ3VtZW50cyBhcmUgc2V0CgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogc3BsaXQgbnNzZnBhdGNoYXBwbHkgaW50byB0d28KCiBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcGF0Y2ggdXNpbmcgLU4KCgoyMDExLTA4LTA0ICBEYXZpZCBBcm5vbGQgPGRqYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIAogICAgICBtYW4vZml4cHJvYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwKICAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGNvbmYuMS5kZWYsCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsIAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBuZXRzdGF0LjEuZGVmLCBtYW4vc25tcHNldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCBtYW4vc25tcHRlc3QuMS5kZWYsIAogICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwgbWFuL3NubXB2YWNtLjEuZGVmLCAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOiBDSEFOR0VTOiBtYW46IFBBVENIIDMzMTI4NjE6IGZyb20gZGphOiBNYW4KICAgICAgcGFnZXMKCiBoeXBoZW4tdnMtbWludXMgY2xlYW51cCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRGV0ZWN0IChhbmQgcmVqZWN0KSBPcGVuU1NMCgogMS4wLjAKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogQ29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHNpbGVudAoKIGluc3RhbGwKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRW5zdXJlIFdpbmRvd3MgcGFja2FnZQoKIHVuaW5zdGFsbHMgY29tcGxldGVseS4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4MWM2M2ZiNWM1ZTRhYmI5YzI5YWNhODliZjlkNjk0NDEwMDg2ZTk3IE1lcmdlOiA0YTY5MjBhCgogZGM3NTVhNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA4OjMzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IGFkZGVkIHNwYWNpbmcgdG8gbWF0Y2ggdGhlIGxhdGVyIGJyYW5jaGVzCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzogcmVtb3ZlZCBhY2NpZGVudGlhbGx5IGR1cGxpY2F0ZWQgY29kZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CgogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCiBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZTg3OGFiYmRiMTgwOGVmODNlMGE4MDc0NTM2ZmI1NGUxMzIxOWE4YiBNZXJnZTogNDAzZGU0MgoKIDg3OGZiZjQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1NTowMCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjUwYWZhMDY4OTJmZDg5N2FjMzFlMzgzNmE3ZmZjOWUyYjRjZjdiOSBNZXJnZTogMmMxNGMxYwoKIDNhZmM1ZTAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MTozMyAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNTc4Y2Q3Y2NlMzUxYWU4ZDkwNGVjM2Q4MGJlOWJhNmQxZDQ4YTcxMiBNZXJnZTogMjU5ODhiZQoKIGYzYmM1NTEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MDo1NiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhdXRvY29uZgoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENICgogMzM4Mzk0OTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGF1dG9jb25mIHRlc3RzIGZvciBzeXMvbWJ1Zi5oIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcHJvbXB0IGZvciBwYXRjaCBhbmQgYW4gYXJlYSwgYW5kCgogdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogVXNlIGZldGNoIC0tYWxsIGFuZCByZWJhc2UgYXMKCiBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDZhMWE4OWU2ZjY0ODk1MWE5YjgzMTkzMmQzY2MyMzA4MjFmMmQzNyBNZXJnZTogZGNiNzEyZgoKIDg3MmUwMTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDEyOjA2OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA0NDk2OWI0ZTU3YzI3MTk0ZTViZDM1N2JjNDUyNzVmZWI4Njk1ZDIyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDggMjA6NTI6MjUgMjAxMSArMDIwMAoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOiBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBJbnZva2UKCiBTbm1wVXRpbE9pZEZyZWUoKSBiZWZvcmUgU25tcFV0aWxPaWRDcHkoKS4gSXQncyBub3QgY2xlYXIgeWV0IHdoeQogdGhlIG9yaWdpbmFsIGNvZGUgZGlkIG5vdCBtYWtlIHNubXB3YWxrIHRyaWdnZXIgYSBtZW1vcnkgbGVhay4KCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkY2I3MTJmZmM4NmIzMzU4MzAwMGVmNGFlOWE1MWNlZDI1Y2QxNWJmIE1lcmdlOiBlODVjZmE1CgogOTg2MjNlZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTE6MzY6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDhhMDFlYzY0MjNkNDAwYzRhMTNjY2FjNjhhMzc5MWQwMjE4YTA4ODUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTg1Y2ZhNTk5YjIzYjc2ZDk3OTEzYzk2YjVkNzAzYmZmNmJhNDk0NCBNZXJnZTogYjA1NmVlNgoKIGUyMWVlZjIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDA4OjQ0OjQzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IENIQU5HRVM6IGFnZW50OgoKIEF2b2lkIHRoYXQgYSBNSUIgd2FsayBvbiB0aGUgaG9zdCByZXNvdXJjZXMgTUlCIHRyaWdnZXJzIGEgY3Jhc2ggb24KIEZlZG9yYSAxNQoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGIwNTZlZTZlYjUzOTA5YWQwNGYxNmVjMjZkMjY5MGQ3YTA4MzE5MmEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAwNzo1OTowNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKICAgICAgIC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFnZW50L3NubXBfYWdlbnQuYywgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcHVzbS5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6CgogcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYWU4ZTNlY2QyZGY0Y2YzNzYyNTk0NGFkZWQxZGZlNDczNWQ0NGVlYSBNZXJnZTogNzMxODdjZQoKIDkzMzVlMTkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBBdWcgMyAxNDozNzozNiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzk0ZjlhNjlkN2ViNjQyMjY4MjAwYjBhNGIxOTkxNTFkZWY2NmVkMCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1CiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA3LTE4ICBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOiBhZ2VudDogY2hhbmdlCgogdHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcgVHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHZhcmlhYmxlIGlzIGNoYW5nZWQgZnJvbSBpbnQgdG8gbG9uZy4KIFRoaXMgZml4ZXMgdGhlIGJ1ZyB3aXRoIHdyaXRpbmcgdG8gc25tcEVuYWJsZUF1dGhlblRyYXBzIGlmIHNlcnZlcgogaXMgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCiBpbnRyb2R1Y2VkIGEgbG9uZyB0aW1lIGFnbyAoYnkgZmFlZWNkMCBjb21taXQpLiAgQWN0dWFsbHkgdGhpcyBpcyBhICdsZXNzIGVmZm9ydCcgdHlwZSBvZiBmaXggYnV0IEkgd29uZGVyIHdoeSB3ZQogbmVlZCBhIGxvbmcgdG8gc3RvcmUgYW4gSU5URUdFUiBpbiB0aGUgZmlyc3QgcGxhY2U/IFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPiBTaWduZWQtb2ZmLWJ5OiBXZXMKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDZhZDdlMjhmZjllNWU0ZWJjMTM1OGVlMzljYzk3OTZhNDRhMWJlZTcgTWVyZ2U6IGYyODMyZTMKCiAxZTE1NGNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMyAxOToxNToyNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNjFiMTc4ZjFlZTg5NTJhYTAzYWEzYjFiYTUxZjRhNjY1NWU0N2YwMSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZyAzIDE4OjA5OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6IFdoaXRlc3BhY2Utb25seSBjaGFuZ2U6IGZpeCBpbmRlbnRhdGlvbgoKIG9mIGFuICNpbmNsdWRlIGRpcmVjdGl2ZQoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvTmV0U05NUC54czogQ0hBTkdFUzogUGVybDogUmVtb3ZlIGZpbGUgcGVybC9OZXRTTk1QLnhzCgogYmVjYXVzZSBpdCBicmVha3MgdGhlIFdpbmRvd3MgYnVpbGQuICBUbyBXZXM6IGlmIHlvdSBjYW4gdGVsbCBtZSBob3cgdG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtIHlvdSBvYnNlcnZlZAogSSdsbCB0cnkgdG8gZmluZCBhIHBvcnRhYmxlIGZpeC4gIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDU0ODcxZjUyOTM2NzVjODA1OGVjY2U4OGZlZDViNjQ2YzgzNjMyMyAoIkFkZGVkCiBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbiBuZXdlciBwZXJsIHRoYXQgd2FudHMKICJzb21ldGhpbmciIikuCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGY0ODliMTk5YWRhYjQ4YjE2MzNlYmNhZjVmZjVhN2MyMmM0Y2I4OSBNZXJnZTogZjRlYWEwMgoKIDcyYTU5YmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiAyIDEwOjExOjUzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDEgMTQ6MTE6MjggMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYzogRml4IGEgY29tcGlsZXIgd2FybmluZyBpbgoKCiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0CgogZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyB0aGUgV2luZG93cyBidWlsZAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCgoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAuZ2l0aWdub3JlLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYzogUmVtb3ZlIHR3byBnZW5lcmF0ZWQgUGVybCBmaWxlcy4KCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjRlYWEwMmQ5YjA3NmE2N2Q3MjcyZGU3ZWVmOGU5ZGZiZjE4OWJiZiBNZXJnZTogNDAxMjVkOAoKIGFkYWRjYjkgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMiAwMDo1Nzo1MSAyMDExICswMjAwCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOiBzdXBwcmVzcyAib2siIHRlc3Qgb3V0cHV0IGluIG5zYgoKCjIwMTEtMDgtMDEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDAxMjVkODUzOWNkODlmOTUyZmJjMjQ1ODhjNWU4MWU5Y2Q4MjFmZSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgMQogMTM6NTg6MzMgMjAxMSArMDIwMAoKMjAxMS0wOC0wMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDVhY2YwZDJjZWIzOTc3OTY0ZWQzOWYwMDMwNzNiYTY0MTM4YzJlYmQgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMjM6NTc6NDEKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNzcyMmE4MWY5Y2I3YWE4NjcwZTdjMjM4NjAxMzYyYTMxMDg3YWNjIE1lcmdlOiAyNDJlMTc5CgogYWU5YWM2YyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBKdWwKIDMxIDA5OjExOjQ1IDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBGaXggYW4gaW5jb3JyZWN0IHNvdXJjZSBjb2RlIGNvbW1lbnQ6IHRoZXJlIGlzCgogbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUKIGluaXRpYWxpemVkIHRvIHplcm8uCgoyMDExLTA3LTMxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjQyZTE3OTdiMjY5NGEwNjg5ODU2YWUzNmQwNWQzNDEzYWFmOGQ3NyBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEp1bCAzMSAwMTo0NDowOQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZwoKIGdldGFkZHJpbmZvKCkgYW5kIEVBSV9GQUlMIChlLmcuIEhQLVVYIDEwLjIwLzExLjAwKQoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDE4ZGY3NTlmMTliOTc1YzQ0OWQwMTBiYjBhMTYyMTE5YmI2ODM2MGQgTWVyZ2U6IDU0YTQ0Y2IKCiA3MDUwNzE4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEp1bAogMzAgMTY6Mzk6MTMgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgyZDczZmIxMWJlM2FlMzFmMzljOWQ2MThkNTM4OGRjOWIxMDA2ZDcgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMjA6NTE6MjcgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDEwOWY2Njk0ZDc4OGY0OGViZDlmYzBhMWU5MGM0NWFiYzM3YmVhMjAgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFNhdCBKdWwgMzAgMTQ6MjI6MTkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3ZDgxMDBlZWQ0NTlhMWZmMWEyMGMwNjczNjRmYTZjYjQ3NDkxMzA5IE1lcmdlOiAxMTZjMjRmCgogOWU0N2FjNCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogU2F0IEp1bCAzMCAwMDoyMDowMSAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zLCBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOiBtaW5vciBuc2IKCiBmaXhlcy9lbmhhbmNlbWVudHMgZnJvbSBteSBvbGQgc3ZuIHRyZWUKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxMTZjMjRmMGY3ZmIzZjk5YmE2NDY3MzBmNjFjNTZkMWFlMjNiYTQxIE1lcmdlOiA5ODJmYjdmCgogNGZjMGI4YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwKIDI5IDExOjMxOjIwIDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDEwOjI3OjM5IDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNDogUmVydW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmM6IEZpeCB0d28gZmlsZW5hbWVzIGluIGhvc3QgbWliCgogc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk4MmZiN2ZkOGJhYjI1YzQzMjJhYTYyYzUwNDM3MDM2Y2UyOTZlM2UgTWVyZ2U6IDFlZGE2NzUKCiAzNDU4MTI4IEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEp1bCAyOCAxNjoyNDowMyAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogRml4IHBvdGVudGlhbAoKIHNpZ3NlZ3Ygd2hlbiBhbiBpZlRhYmxlIGVudHJ5IGlzIHJlbW92ZWQgYXMgcmVzdWx0IG9mIGJvdGgKIGludGVyZmFjZV9yZXBsYWNlX29sZCBhbmQgaW50ZXJmYWNlX2ZhZGVvdXQgYXQgdGhlIHNhbWUgdGltZS4KCjIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBNYWtlIGFwcHMvc3NodG9zbm1wLmMgYnVpbGQgYWdhaW4gKHdhcyBicm9rZW4gYnkKCiBjb21taXQgNjEyMjQ3Y2RmMTRjMWU3NDVjMzg0Y2VmZTFmM2ZkZTNlNDQ1YjM0NyB0aGF0IGNoYW5nZWQKIE1TR19OT1NJR05BTCBpbnRvIE5FVFNOTVBfTk9TSUdOQUwpCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWVkYTY3NTNiN2ZlN2QzYjNmMjE3YzA5MjU0ZWMwMmQwZWUxZDBjZSBNZXJnZTogZGI4Yjg2MAoKIGEyZjllY2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsCiAyOCAxNTozMjoyOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOiAKCiBDSEFOR0VTOiBzbm1wZDogUmVzdG9yZSBzdG9yYWdlIHRhYmxlcyBvbiBMaW51eAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZDYyYTBlYjkwNzBiNGQ4ZDlmZTJiY2ZkYjRkNTNkMzdlZjgxNGY5YiBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBKdWwgMjgKIDE0OjQ5OjA4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX3JlcGxhY2Vfb2xkJyBvcHRpb24gdG8gcmVtb3ZlIG9sZCBlbnRyaWVzIGluCiBpZlRhYmxlIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhbHJlYWR5IGV4aXNpbmcgb25lCiBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCB0aGUgaW50ZXJmYWNlX2ZhZGVvdXQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCgogZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKIGxpZmV0aW1lIG9mIGlmVGFibGUgZW50cmllcyBvZiByZW1vdmVkIGludGVyZmFjZXMuICBQcmV2aW91cyBsaWZldGltZSB3YXMgaGFyZGNvZGVkIDUgbWludXRlcywgbm93IGl0J3MgY29uZmlndXJhYmxlLgoKMjAxMS0wNy0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhcHBzL3NzaHRvc25tcC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQKICAgICAgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBNU0dfRE9OVFdBSVQKCjIwMTEtMDctMjcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzogQ0hBTkdFUzogc25tcGQ6IE1ha2UKCiBUQ1AtTUlCOjp0Y3BDdXJyRXN0YWIgd29yayBhZ2Fpbi4gV2FzIGJyb2tlbiBpbiA1LjcgYnkgdGhlCiBpbnRyb2R1Y3Rpb24gb2YgdGhlICJmZWF0dXJlcyIgZmVhdHVyZS4KCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmI4ODA3NGZiYmMyNjhjN2YwNTA5NDkxNTM1YWVjNWZlY2IwNTY4NCBNZXJnZTogYTc0M2FlNQoKIDM4MjEyNzMgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVsIDI3IDE0OjQ3OjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzFmYTA3Y2Q5ZmZkZTQ2ZDQxZDJiNTgzOGMzZmM0ZDAxNTQ4YmZiNSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjcKIDE0OjQ1OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IHJ1biBzaWduYWwgaGFuZGxlcnMgd2hlbiBzZWxlY3QoKQoKIGlzIGludGVycnVwdGVkLiAgVGhpcyBiZWhhdmlvciBpcyBpbmRpY2F0ZWQgaW4gY29tbWVudCBvbiBsaW5lIDEyNDQsIGJ1dCBpdCB3YXMgbm90CiBhY3R1YWxseSBkb25lLgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJlOTQ2NmQ3ZjU5ZDY1ZDA1MDI3NzczNWU0ZWQ5ZDMwNzE5ZmY3NTIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMjYgMTM6MTA6MDQgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDc3MDgyOTY3NjBlYWY1YTgwZDg1NDA3NDZjOWMyNDk4MjZmZDFiZmUgTWVyZ2U6IGVhMTFlNWUKCiBjZDZlMzgyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMjYgMTY6MjE6NDEgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogQ2xhcmlmeSBhbiBJUHY2IHNvdXJjZSBjb2RlIGNvbW1lbnQKCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6IFNwZWxsaW5nIGZpeDoKCiBkZWZpbmVkeSAtPiBkZWZpbmVkCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zOiBTcGVsbGluZwoKIGZpeDogYWxldmlhdGUgLT4gYWxsZXZpYXRlCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRkMmM0NzEzMzQ5M2Q1YTAwZGU2YjNjZGJjZmFjN2U5ZDQ0YjZmZmUgTWVyZ2U6IGY5Y2NiYzcKCiBlYTExZTVlIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEp1bCAyNiAxNDoyNToyOCAyMDExICswMjAwCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGM1YTg0NjRjNDJhOTRjMjUwZWUyZGZhMmE0NzMxMDlhNzM0MjAzZDggQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDI2CiAxNDoyNDo1NSAyMDExICswMjAwCgoyMDExLTA3LTI1ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY5Y2NiYzc3MjY2NjEzNGQxZDE3OGI1MDVhZjlkZGNkZDllZDQyNDQgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gSnVsIDI1CiAxNTowMjoxNSAyMDExICswMjAwCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjBjMGEzNTVkNWY2MDFhMTFiZTQ5MTRmYmY3MTM3MTZhYmQzMGEyOSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGMxNGZjMzg2MTRiYWYxMGQ1MTcxMzZmMDQ4MDkwN2I3ZjAzZDhkNzQgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjAKIDEzOjQ0OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOiByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdAoKIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZWJkZDIxNmMwNzRiZjQxY2QzYTA4NGJkMTQ2ODljZjAxYzg4N2IzMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZAoKIGZpbGVzCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMTE6MDc6MTkgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGY1OTZmMTgyNDJkY2RmZDZjZjQ5Yzg4ZGExZDgzNmMxNmUyNjBjYWMgTWVyZ2U6IDBmMzA5YjQKCiA3MGRlZTRiIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMTE6MzM6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOgogICAgICAzMzY5NjgwOgoKIGZyb20gSWx5YSBZYW5vazogY2hhbmdlIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgZnJvbSBpbnQgdG8gbG9uZyBzdWNoCiB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZQogbWVtb3J5IGluIDY0LWJpdCBidWlsZHMuCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzM3MDY0NToKCiBmcm9tIEJpbGwgRmVubmVyOiBGaXggQWdlbnRYIHN1YmFnZW50IGZvdXIgYnl0ZSBsZWFrCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOiBkbwoKIG5vdCBpbnZva2UgSVNSVU5OSU5HKCkgb24gTWluR1cuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIGNsZWFudXAgLSByZW1vdmUgY29kZSB0aGF0IGJlY2FtZSBzdXBlcmZsdW91cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBNaW5HVzogRG8gbm90CgogYXNzdW1lIHRoYXQga2lsbC5leGUgcmVwb3J0cyB2aWEgaXRzIGV4aXQgc3RhdHVzIHdoZXRoZXIgdGhlCiBzaWduYWxsZWQgcHJvY2VzcyBzdGlsbCBleGlzdHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBSZW1vdmUgdGhlIGZ1bmN0aW9uIFdBSVRPUkRJRSgpIGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2ggc2luY2UgaXQKIGlzIG5ldmVyIGludm9rZWQuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBTaW1wbGlmeSBXQUlURk9SKCkgaW4gc2ltcGxlX2V2YWxfdG9vbHMuc2guIFRoZSBjb2RlIHRoYXQgaGFuZGxlZAogaW52b2NhdGlvbiBvZiBXQUlURk9SKCkgd2l0aCB6ZXJvIG9yIG9uZSBhcmd1bWVudHMgaGFzIGJlZW4gZHJvcHBlZAogc2luY2UgV0FJVEZPUigpIGlzIGFsd2F5cyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CgogbWlub3Igc2ltcGxpZmljYXRpb24uCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZTogQ0hBTkdFUzoKCiB0ZXN0aW5nOiBTa2lwIHRlc3QgNTkgaWYgU0lHSFVQIGlzIG5vdCBzdXBwb3J0ZWQuIE1ha2VzIHRlc3QgNTkgcGFzcwogb24gTWluR1cuCgoyMDExLTA3LTA2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1cgZml4CgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgZnJhbWV3b3JrCgogcmVmYWN0b3Jpbmc6IEludHJvZHVjZSBXQUlURk9STk9UQ09ORCgpLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogTWFrZSBTVE9QUFJPRyBzZW5kIFNJR1RFUk0gcmVwZWF0ZWRseS4gVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUKIFNJR1RFUk0gY291bGQgYmUgc2VudCBiZWZvcmUgdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgd2FzIHNldCB1cCwKIGVzcGVjaWFsbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgU05NUF9WRVJCT1NFPTEgb3V0cHV0IGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzcwoKIHJlZmFjdG9yaW5nOiBpbnRyb2R1Y2UgRUNIT1NFTkRTSUdURVJNKCkgYW5kIEVDSE9TRU5EU0lHS0lMTCgpCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogRml4IGEgYnVnIGluCgogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCB0aGF0IHdhcyBpbnRyb2R1Y2VkCiBpbiBjb21taXQgOTM4ZDc1Yy4KCjIwMTEtMDctMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBJZ25vcmUgKi5leGUgZmlsZXMgZ2VuZXJhdGVkIGJ5IHRoZSBXaW4zMgoKIGJ1aWxkCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBUZXN0IG9ubHkgb25jZSBkdXJpbmcgYSB0ZXN0IHdoZXRoZXIgdGhlIHNoZWxsIHN1cHBvcnRzIHN1Yi1zZWNvbmQKIHNsZWVwaW5nIGluc3RlYWQgb2YgcmVwZWF0ZWRseS4KCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46IENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZWQKCiBkZWZhdWx0IHRpbWVvdXQgZnJvbSAxcyB0byAxMHMgd2hlbiB0aGUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuCiB1bmRlciBWYWxncmluZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogQWZ0ZXIgaGF2aW5nIHNlbnQgU0lHVEVSTSB0byBzbm1wZCBvciBzbm1wdHJhcGQsIHdhaXQgdW50aWwgdGhlCiBwcm9jZXNzIGhhcyBzdG9wcGVkIGJlZm9yZSBzZW5kaW5nIFNJR0tJTEwuIFRoaXMgcmFjZSBjb25kaXRpb24gd2FzCiBoaXQgbW9zdCBlYXNpbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgUElEIGZpbGUgZXhpc3RlbmNlIGFmdGVyIGhhdmluZyByZWFkIGl0CiBpbnN0ZWFkIG9mIGJlZm9yZS4gVGhpcyBmaXhlcyB0aGUgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIFBJRCBmaWxlCiBkaXNhcHBlYXJlZCBhZnRlciB0aGUgZXhpc3RlbmNlIGNoZWNrIGFuZCBiZWZvcmUgaXQgd2FzIHJlYWQuCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoKIGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgVGhpcyBwYXRjaCBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgdG8gVjUuNiBTVk4gcGF0Y2hlczogZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGYzMDliNDkzYzIxZDNjNjkxNDQ4NzUxNGI0MTU2MDc1NGZmY2RmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAwODozNzo1MCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWI3NDU0YmMyODE1Njg0NzBhMTMwMDQ3NmQyZWRiNGY0MTFlNjAyOSBNZXJnZTogOGQ5ZGNjOAoKIDY5MGVhN2QgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAxOSAwODozMToyOCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBBZGQgbWlzc2luZyBuZXdsaW5lCgogY2hhcmFjdGVyIGluIGEgbG9nIG1lc3NhZ2UKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEludm9rZSBzaHV0ZG93bl9wZXJsKCkgd2hlbgoKIHNodXR0aW5nIGRvd24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IFNwZWxsaW5nIGZpeDogYnJhbmtldCAtPiBicmFja2V0CgoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYuCgogRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoCiBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IChSUE0gNC45IHN1cHBvcnQpCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDYxN2Q4NGY4M2ZhNjllZDlmYTlmOThlZmM0YWZhZjg4MGQxMjFmMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjo0Mzo0NyAyMDExICswMjAwCgoyMDExLTA3LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBNYWtlCgogbmV0c25tcF9pcHY2X2ZtdGFkZHIoKSBzaG93IHRoZSBJUHY2IHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogQWRkIHN1cHBvcnQKICAgICAgZm9yCgogSVB2NiBhZGRyZXNzIHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSdW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNTY3MjFhM2U3NzU0ZTM4OWRhYTdlOGEzZDU3OTI4OTllZGM5ZGUzIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsIDE0IDE2OjE4OjMyIDIwMTEgKzAyMDAKCjIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4NDRkNGNlODY3YmYzYWJlN2I3NTM2YzVkYmZiYTQwMTkzN2E4ZDRhIE1lcmdlOiBlZWQwMTk4CgogNjEwMzZhOCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogRnJpIEp1bCAxNSAxNTozMzoxMCAyMDExIC0wNzAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODUxYmNmNTNmY2QxM2NkZjBiYTlmMTJlNWQ2MDNlNzNmOGJiOTYxMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEp1bCAxNQogMTU6MzI6NDkgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBmaXggYSB0eXBvCgoKMjAxMS0wNy0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IHNubXBsaWI6ICB0d2VhayBwYXRjaCAzMDQ0ODg4IHRvIHJlc3RvcmUKCiBwcm9wZXIgbm9uLWVycm9yIHJldHVybiBkdXJpbmcgbWliIGxvYWRpbmcKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGFkZGVkIDUuNyBwYXRjaGVzIHRvIHRoZSBicmFuY2ggbGlzdCBhbmQgZml4IHRoZSByZWxlYXNlIGZpbGUKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCA1LjcgcGF0Y2hlcwoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNDMxMjMxZThmMGEzOWQxOTUwYmM3MmMzMmUzNDAyZjkwZmE4MDMwIE1lcmdlOiA1NmZlZTQwCgogYTJhYzI0ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEp1bCAxMSAxOTozMzoxNyAyMDExIC0wNzAwCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvcHkgb2YgdGhlCgogc2hlbGwtZnVuY3Rpb25zIHRvIHRoZSBvbGRlciBicmFuY2gKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCgogYnJhbmNoZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMzIC0+IFY1LjcKCjIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNwoKCjIwMTEtMDctMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogUmV2ZXJ0ICJmaXggZHRsc3VkcAoKIHRyYW5zcG9ydCBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiIgVGhpcyByZXZlcnRzIGNvbW1pdCAyYWIzYTZlNmYyZmNjMWZmM2U1ZjBmYjVkYzVkMDVlNDk4ODIwZDg5LiAgIC0gZm9yIHNvbWUgcmVhc29uIEkgc2F3ICdyYycgYW5kIG15IGJyYWluIGludGVycHJldGVkIGl0IGFzICAgICdwcmUtcmVsZWFzZScuIFdoYXQgY2FuIEkgc2F5LCBpdCB3YXMgbGF0ZS4gOi0vCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IGZpeCBkdGxzdWRwIHRyYW5zcG9ydAoKIGFkZHJlc3MgZm9ybWF0IGZ1bmN0aW9uICAtIHVwZGF0ZSBpcHY0IGZtdGFkZHIgdG8gaGFuZGxlIHNvY2thZGRyIGFuZCB0byBjaGVjayAgICBzaXplIGJlZm9yZSBhc3N1bWluZyBkYXRhIGlzIGFkZHIgcGFpciAgLSBtb3ZlIGR0bHN1ZHAgZnVuY3Rpb25zIHRvIGV4dHJhY3QgYWRkcihzKSB0byB0bHNiYXNlCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGZpeCB0YWcgcHVzaGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzIgLT4gVjUuNy5yYzMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLAoJZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtaXNjIHB1YmxpY2F0aW9uIGZpeGVzIGZvdW5kIHdoaWxlCglwdWJsaXNoaW5nCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHJhbiBhdXRvaGVhZGVyIHRvIGFkZCB0aGUKCW1pc3NpbmcgdGVtcGxhdGUgaWZkZWZzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMSAtPiBWNS43LnJjMgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogdXNlIHRoZSBuZXcgcnVuLWF1dG9jb25mIHNjcmlwdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L3J1bi1hdXRvY29uZjogQSBzY3JpcHQgdG8gaW52b2tlIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgdGhlCglhdXRvY29uZiB0b29sCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1haW5pbmcgY29tbWFuZCBsaW5lIGNoYW5nZXMgZm9yIHN2biAtPgoJZ2l0CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtYWtlIHRoZSBicmFuY2ggZWNobyBvdXRwdXQgYW5kIHN2biB1cGRhdGUKCWNvbnZlcnRlZCB0byBnaXQgZXF1aXZhbGVudHMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHB1bGwgdGhlIGJyYW5jaCBpbmZvIGZyb20gZ2l0CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvcmVsZWFzZTogbm90ZWQgdGhhdCB0aGUgbWFzdGVyIGJyYW5jaCBpcyBpbiByYyBzdGF0ZQoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgoJKiBGQVE6IE1lbnRpb24gdGhlIEdpdCB3aWtpIHBhZ2UKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgZ2l0IG1lcmdlIHdpdGggdGhlIC0tbG9nCglvcHRpb24KCjIwMTEtMDYtMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKCSogLmdpdGlnbm9yZTogQWRkIC5naXRpZ25vcmUKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKCSogRkFROiBXZSdyZSBub3cgdXNpbmcgZ2l0IQoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSByZWJhc2UgdG8gcHV0IGxvY2FsIGNoYW5nZXMgYXQKCXRoZSB0b3Agb2YgdGhlIHJlbW90ZSBicmFuY2hlcyBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgZmVhdHVyZSB0byBub3Qgcm9sbAoJYnJhbmNoZXMgY3VycmVubHkgaW4gcmMgcGhhc2UgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIG5zcm9sbHVwIGZ1bmN0aW9uIGZvcgoJcm9sbGluZyBicmFuY2hlcyB1cHdhcmQuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGNyZWF0ZWQgYW4gbnNwYXRjaGFwcGx5IGZ1bmN0aW9uCgl0byBhcHBseSBhIHByZXZpb3VzbHkgdGVzdGVkIHBhdGNoIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3RyeXBhdGNoIGZ1bmN0aW9uIHRvCgl0ZXN0IHBhdGNoIGFwcGxpY2F0aW9uIGFnYWluc3QgdmFyaW91cyBicmFuY2hlcyBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIHZlcmJvc2Ugb3V0cHV0IGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbW9yZSBwcmVmaXggY2hhbmdlcyBhbmQgYmV0dGVyCglzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWVzIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIG5zIHByZWZpeGVzIGluc3RlYWQgb2YgZ2VuZXJpYwoJc25tcCBwcmVmaXhlcyBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IAoJTWlzc2luZyBjaGVjayBmb3IgcnBtdHMuaCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAoJbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAoJbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKCW1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywKCW1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywKCW1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKCW1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKCW1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCgltYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAoJbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCgltYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCgltYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAoJbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCgltYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCgltYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsCgltYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKCW1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLAoJbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsCgltYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCgltYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAoJbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAoJbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAoJbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLAoJbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCgltYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLAoJbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKCXNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKCWluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrCgl3aXRoIGxpYnJhcnkgdmVyc2lvbiA0LjkgQmFzZWQgb24gYSBwYXRjaCBieSBKYW4gU2FmcmFuZWsgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzogUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZwoJUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcKCXRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAoJc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsCglhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKCShyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwKCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCglmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQoJKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAoJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCWZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CgkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwoJZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQoJdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKCXRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoJaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKCXR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoJaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKCXR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAoJb2YgJWxkIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCglvZiAlbGQgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnByZTIgLT4gVjUuNy5yYzEKCjIwMTEtMDYtMTMgMTY6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBjb3JyZWN0IHZlcnNpb24gb2YgYXV0b2NvbmYKCjIwMTEtMDYtMTMgMTY6MTAgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMS0wNi0xMyAxNjowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmFuIGF1dG9jb25mCgoyMDExLTA2LTEwIDA2OjAzICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlczoKCiAgIEZpeCBidWlsZCBvZiBzbm1wdXNtIHdoZW4gYWRkaXRpb25hbCBzZWMgbW9kdWxlcyByZXF1ZXN0ZWQKCjIwMTEtMDYtMDkgMjE6MTMgIG5iYQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgSW5jbHVkZSBzdGTniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy09YCSkWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKCjIwMTEtMDYtMDkgMTQ6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBDSEFOR0VTOiBCVUc6IDMxNTE4NDU6IGZpeCBtdWx0aXBsZSByZWdpc3RyYXRpb25zIG9mIHNubXAKICAgdHJhbnNwb3J0IGhhbmRsZXIKCjIwMTEtMDYtMDggMTY6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW9yZSBkbnNzZWMgdHdlYWtzCiAgIAogICAtIGNyZWF0ZSBhbiBhcHAtZ2xvYmFsIHZhbGlkYXRvciBjb250ZXh0IGZvciB1c2Ugd2l0aCBhbGwKICAgdmFsaWRhdGlvbiByb3V0aW5lcy4gbWFpbmx5IHVzZWZ1bCBmb3IgbG9uZy1saXZlZCBhcHBzLgogICAtIHVzZSB0aGUgYXBwdHlwZSBhcyB0aGUgdmFsaWRhdG9yICdzY29wZScsIGFsbG93aW5nCiAgIGZvciBhcHAtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvZiB2YWxpZGF0aW9uIHZpYSBsaWJ2YWwncwogICBkbnN2YWwuY29uZgoKMjAxMS0wNi0wNyAxNjo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBhZGQgYSBtYXggZGVmaW5lIGZvciBlYWNoIGRlZmF1bHQgc3RvcmUgdHlwZQogICAKICAgbm90IGFjdHVhbGx5IHVzZWQsIGp1c3QgYSBoZWxwZnVsIHJlbWluZGVyIGZvciB0aG9zZSBhZGRpbmcKICAgbmV3IGlkcyB3aG8gbWlnaHQgbm90IHRoaW5rIHRvIGNoZWNrIE5FVFNOTVBfRFNfTUFYX1NVQklEUy4KICAgKHRoZSBib29sIGxpc3QgaXMgcmFwaWRseSBhcHByb2FjaGluZyB0aGUgY3VycmVudCBsaW1pdC4pCgoyMDExLTA2LTA3IDE2OjQ2ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgbWVudGlvbiBidWlsZGRpciB3aGVuIGNvbXBsYWluaW5nIGFib3V0IG5vdCBiZWluZyBydW4gZnJvbSBzb3VyY2UKICAgdHJlZQoKMjAxMS0wNi0wMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yCiAgIGRlYnVnZ2luZyBvdXRwdXQgb2YgYWdlbnR4CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYgLT4gVjUuNy5wcmUyCgoyMDExLTA1LTEwIDAwOjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTEtMDUtMTAgMDA6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIEMrKyAtPiBDIGNvbW1lbnRzCgoyMDExLTA1LTEwIDAwOjE3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGUgZm9yIDUuNwoKMjAxMS0wNS0wOSAyMzoxNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOgoKICAgcmV2ZXJ0IHRoZSBvaWQgdHlwZWRlZiByZXNpemluZyBmcm9tIHIxNzgwOSBiZWNhdXNlIGl0IGJyb2tlCiAgIGJhY2t3YXJkcyBjb21wYXQsIGFzIHBvaW50ZWQgb3V0IGJ5IHVzZXJzIG9uIHRoZSAtY29kZXJzIGxpc3QKCjIwMTEtMDUtMDkgMjI6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHVzZSBwcm9wZXIgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMS0wNS0wOSAyMjozOCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMS0wNS0wOSAyMjozOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTEtMDUtMDkgMjI6MTAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZGVkIGEgbWlzc2luZyAwIGluIHRoZSByZXZpc2lvbiBkYXRlCgoyMDExLTA1LTA5IDIwOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCgoyMDExLTA1LTA5IDIwOjQzICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBJQU5BIGhhcyBmaXhlZCB0aGUgSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCCgoyMDExLTA1LTA5IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRlZCBhIG5ldyBSRVZJU0lPTiBjbGF1c2UgdG8gbGlzdCB0aGUgY2hhbmdlcyBpbiB0aGUgdGhlIHJlY2VudAogICB1cGRhdGUKCjIwMTEtMDUtMDkgMTQ6MTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBwaW5nL3RyYWNlcm91dGUgbWlicyBub3RlCgoyMDExLTA1LTA5IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgd2UgYWN0dWFsbHkgd2FudCB0byB1c2UgdGhlIGJhc2UgT0lEIGFzIHRoZSBzdGFydGluZyBwb2ludCwgbm90CiAgIHRoZSByZWcgT0lELgoKMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeGVkIHRoZSBwcm94eSBzdXBwb3J0IHRvIGRvIGEgcHJvcGVyIE9JRCBsZXNzIHRoYW4gT0lEIGNvbXBhcmUuCiAgIFdlIGFjdHVhbGx5IGRvbid0IGNhcmUgYWJvdXQgdGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCwKICAgb25seQogICB0aGF0IGl0IHdhcyBiZWZvcmUgdGhlIHJlZ2lzdGVyZWQgcmViYXNlCgoyMDExLTA1LTA5IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogcGF0Y2ggMzE0MDgzMzogZnJvbSBqc2FmcmFuZWs6IGZpeCBwcm94eSBHRVRORVhUCiAgIHJlcXVlc3RzCiAgIFdoZW4gT0lEcyByZXF1ZXN0ZWQgYXJlIGJlbG93IHRoZSBwcm94eSByZXF1ZXN0IHJlbWFwLCB3ZSBuZWVkIHRvCiAgIG5vdAogICBpbmNsdWRlIGFueSBPSURzIHRoYXQgbWlnaHQgYmUgaW4gdGhlIHNwYWNlIGJldHdlZW4gdGhlIG9yaWdpbmFsCiAgIE9JRAogICBhbmQgdGhlIHJlbWFwcGVkIE9JRC4gVGhpcyBwYXRjaCBmdWRnZXMgdGhlIHJlcXVlc3Qgc28gdGhhdCBpdAogICBmaXhlcwogICB0aGUgcmVxdWVzdCBPSUQgc28gaXQncyBqdXN0IGJlZm9yZSB0aGUgcmVtYXBwZWQgcHJveHkgcmFuZ2UuCgoyMDExLTA1LTA5IDE0OjE4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTkVXUzogUEFUQ0ggMzE2NzMyNTogZnJvbSBrcmlzenRvZm9ybzogVUNELVNOTVAvU3lzdGVtU3RhdHM6IGFkZAogICB2YXJpYWJsZXMKICAgdG8gcmVwb3J0IGNwdXN0ZWFsLCBjcHVndWVzdCwgY3B1Z3Vlc3RuaWNlCgoyMDExLTA1LTA5IDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBwYXRjaCAzMTg0MDI2OiBmcm9tIGVpdm5hZXM6IEF2b2lkIGNvbnN0YW50IHJlZnJlc2ggb2YKICAgaW50ZXJmYWNlIHN0YXRpc3RpY3MKCjIwMTEtMDUtMDkgMTA6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IHRoZSBNU1ZDIGNvbXBpbGVyLgoKMjAxMS0wNS0wOSAxMDozNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9nZXR0aW1lb2ZkYXkuYzoKCiAgIFdpbjMyL01TVkM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTEtMDUtMDkgMTA6MzMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEZpeGVkIGEgeWVhci0yMDM4IGJ1ZyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YKICAgaXBSb3V0ZVRhYmxlLgoKMjAxMS0wNS0wOCAyMDowMSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOgoKICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KICAgVGhlc2UgbW9kdWxlcyB3b3JrLCBidXQ6CiAgIC0gVGhleSBhcmUgTGludXggb25seQogICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkKICAgYXJlIHBvcHVsYXRlZAogICAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QKICAgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1bgogICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeQogICAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKQoKMjAxMS0wNS0wNyAxNToyMiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgoKMjAxMS0wNS0wNyAxNDo0OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IERlY2xhcmUgdGhlIE9JRCBhcmd1bWVudCB0eXBlIG9mIE1JQiByZWdpc3RyYXRpb24KICAgZnVuY3Rpb25zIGFzICdjb25zdCBvaWQgKicgaW5zdGVhZCBvZiAnb2lkIConIHNpbmNlIHRoZXNlCiAgIGZ1bmN0aW9ucyBkbyBub3QgbW9kaWZ5IHRoZSBPSUQuCgoyMDExLTA1LTA3IDE0OjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIFVzZSB0aGUgY29ycmVjdCBkYXRhIHR5cGUgZm9yIHRoZSAnY2FjaGUgZXhwaXJlZCcgdmFyaWFibGU6IGNoYXIKICAgaW5zdGVhZCBvZiBpbnQuCgoyMDExLTA1LTA3IDE0OjQzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjIwMTUxLgoKMjAxMS0wNS0wNyAxMzoxNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBXaW4zMjogaW1wcm92ZWQgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgYnkgdXNpbmcgTFBDVFNUUiBpbnN0ZWFkCiAgIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgVW5pY29kZSBidWlsZHMgYXJlCiAgIHN1cHBvcnRlZC4KCjIwMTEtMDUtMDcgMTM6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYzoKCiAgIEFkZCBmaWxlIGZvcmdvdHRlbiBpbiByMjAzNTMKCjIwMTEtMDUtMDYgMjM6MzIgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMTI1OTY6IGZyb20gZmFibGVkODA6IGxpc3RlbiBmb3IgbmV0bGluawogICBjaGFuZ2UgZXZlbnRzIGZvciB0aGUgYXJwLXJlbGF0ZWQgdGFibGVzCgoyMDExLTA1LTA2IDE4OjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBvcHRpb25hbCBzdXBwb3J0IGZvciBsb2NhbCBETlNTRUMgdmFsaWRhdGlvbgogICBvZiBob3N0bmFtZXMKICAgCiAgIC0gb3B0aW9uYWwgYXQgY29uZmlndXJlIHRpbWU6IC0td2l0aC1sb2NhbC1kbnNzZWMtdmFsaWRhdGlvbgogICAtIHJlcXVpcmVzIEROU1NFQy1Ub29sIHZhbGlkYXRpb24gbGlicmFyaWVzCiAgIC0gaW5pdGlhbCBzdXBwb3J0LCBmb3Igc3lzdGVtcyB3aXRoIGdldGFkZHJpbmZvLiBzdXBwb3J0IGZvcgogICBhZGRpdGlvbmFsCiAgIHJlc29sdmVyIGludGVyZmFjZXMgY29taW5nIHNvb24uCiAgIC0gYWxzbyBUT0RPOiBmbGFnIGZvciBpZ25vcmluZyB2YWxpZGF0b2luIGVycm9ycyAobG9nICYgY29udGludWUpCgoyMDExLTA1LTA2IDE4OjM2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmg6CgogICBtb3ZlIHVudXNlZCAoYW5kIHRvbyBnZW5lcmljKSB0b2tlbiB3aXRoaW4gVUNEX0NPTVBBVElCTEUgaWZkZWYKICAgCiAgIC0gTUFYTEFCRUwgY29uZmxpY3RzIHdpdGggPGFycGEvbmFtZXNlci5oPgogICAtIGFkZGVkIE5FVFNOTVBfTUFYTEFCRUwKCjIwMTEtMDUtMDYgMTg6MzYgIHJzdG9yeQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBjb25maWd1cmUvTWFrZWZpbGVzIGZvciBETlNTRUMgbG9jYWwgdmFsaWRhdGlvbiBvcHRpb24KCjIwMTEtMDUtMDYgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICByZW1vdmVkIHRoZSBhY2NpZGVudGFsIGJyb2tlbiBmZWF0dXJlIHJlcXVpcmUgbGluZSB0aGF0IGdvdCBoYWxmCiAgIGluc2VydGVkCgoyMDExLTA1LTA2IDEzOjUwICBkdHMxMgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwgY29uZmlndXJhdGlvbjoKICAgLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMCiAgIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMKCjIwMTEtMDUtMDYgMTI6NTggIGR0czEyCgogICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOgoKICAgU3VwcG9ydCBUYXIvR1ppcCBjb21tYW5kIHBhdGhzIGNvbnRhaW5pbmcgc3BhY2VzCgoyMDExLTA1LTA2IDEyOjU3ICBkdHMxMgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDoKCiAgIFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CgoyMDExLTA1LTA1IDIxOjQ4ICBuYmEKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGZvciBEcmFnb25GbHkgQlNEIChkb2VzIG5vdCBkZWZpbmUgSVBfU0VORFNSQ0FERFIpCgoyMDExLTA1LTA1IDIwOjI5ICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6CgogICBGaXggc3BlbGxpbmcgb2YgU09fUkVDVkRTVEFERFIKCjIwMTEtMDUtMDUgMTg6NTQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogYXBwczogYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRpbWVvdXRzIGFuZCByZXRyaWVzCgoyMDExLTA1LTA1IDA2OjA3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUKICAgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMKICAgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpCiAgIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KCjIwMTEtMDUtMDUgMDU6NTcgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuLCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICBSZW1vdmVkIFZpc3VhbCBTdHVkaW8gMjAwNSBzb2x1dGlvbiBhbmQgcHJvamVjdCBmaWxlcyBhZ2FpbiBzaW5jZQogICBWaXN1YWwgU3R1ZGlvIDIwMTAgcmVmdXNlcyB0byBsb2FkIHRoZXNlLgoKMjAxMS0wNS0wNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjbGVhbiB0aGUgcGVybC9weXRob24gZmVhdHVyZSBsZWZ0b3ZlcnMKCjIwMTEtMDUtMDQgMjM6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZml4IG1pYiBtb2R1bGUgaW52b2NhdGlvbgoKMjAxMS0wNS0wNCAyMDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgZml4IGlmZGVmIHR5cG8KCjIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IHBlcmwvcHl0aG9uIGZlYXR1cmUgZGVwZW5kZW5jaWVzCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICByZXZlcnRlZCBhdXRvX25saXN0IG1hY3JvIHVzYWdlOyB0aGUgZnVuY3Rpb24gaXMgdXNlZCBpbiBoZWFkZXJzCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEFkZCBhIC1UIG9wdGlvbiB0byBydW4gJ21ha2UgdGVzdCcKCjIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggdGhlIGVuY29kZV9rZXljaGFuZ2UgLmZ0IGZpbGVuYW1lCgoyMDExLTA1LTA0IDE2OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgc25tcGxpYi90b29scy5jOgoKICAgZml4IHRoZSBmZWF0dXJlcyByZXF1aXJlZCBieSB0aGUgVHJhcFJlY2VpdmVyIG1vZHVsZQoKMjAxMS0wNS0wNCAxNjoyMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIFRyYXBSZWNlaXZlciB0byB0aGUgbGlzdCBvZiBwZXJsIG1vZHVsZXMKCjIwMTEtMDUtMDQgMTQ6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgdXNlIHRoZSBuZXdlciBOZXQtU05NUCBBUElzLCByYXRoZXIgdGhhbiB0aGUgb2xkZXIgVUNEIG9uZXMKCjIwMTEtMDUtMDQgMTQ6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIFNFVCBjb2RlIHdoZW4gdW5kZXIgLS1yZWFkLW9ubHkgbW9kZQoKMjAxMS0wNS0wNCAxNDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOgoKICAgcmVxdWlyZSBjaGVja192Yl91aW50CgoyMDExLTA1LTA0IDE0OjQxICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAgIAogICAgICBweXRob24vbmV0c25tcC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGxhc3Qgb2YgdGhlIHBlcmwtdXNlZCBmZWF0dXJlIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNCAxNDo0MCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBzdGFydGVkIHRoZSBmaW5hbCBzZXQgb2YgZnVuY3Rpb24gcmVtb3ZhbHMgZm9yIGZlYXR1cmVzIHJlcXVpcmVkCiAgIGJ5IHBlcmwvcHl0aG9uCgoyMDExLTA1LTA0IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpOgoKICAgYWRkZWQgdGhlIG5ldC1zbm1wLWZlYXR1cmVzLmggaGVhZGVyCgoyMDExLTA1LTA0IDE0OjM5ICBoYXJkYWtlcgoKICAgKiAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6CgogICBBZGRlZCBwZXJsIGZlYXR1cmUgcmVxdWlyZW1lbnRzCgoyMDExLTA1LTA0IDE0OjM5ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBwZXJsL0FTTi9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOgoKICAgaG9wZWZ1bGx5IHdvcmtpbmcgcnVsZXMgdG8gYXBwbHkgZmVhdHVyZSByZXF1aXJlbWVudHMgdG8gcGVybCBhbmQKICAgcHl0aG9uCgoyMDExLTA1LTA0IDE0OjM4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW9yZSBjaGFuZ2VzIHRvIHJlbW92ZSB1bm5lZWRlZCBmdW5jdGlvbnMgcHJpbWFyaWx5IHdoZW4gd3JpdGUKICAgbW9kZSBpcyB0dXJuZWQgb2ZmCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgY2hhbmdlIHRoZSB3YW50IGludm9jYXRpb24gdG8gb25seSBkZWZhdWx0IHRvIGV4Y2x1ZGUgZXh0ZXJuYWwKICAgaG9va3MKCjIwMTEtMDUtMDQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKCiAgIHNlYXJjaCB0aHJvdWdoIC54cyBmaWxlcyBmb3IgZnVuY3Rpb24gaW52b2NhdGlvbnMKCjIwMTEtMDUtMDQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIGZvcmdvdCBhIHNlbWljb2xvbgoKMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jOgoKICAgaXF1ZXJ5IHBkdSBzZXNzaW9ucyBhcmUgb25seSBuZWVkZWQgaW4gd3JpdGUgbW9kZS4KCjIwMTEtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggZmVhdHVyZSBkZXRlY3Rpb24gb2Ygc29tZXRpbWVzLWJ1aWx0IGFwcGxpY2F0aW9ucwoKMjAxMS0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgdXNlIHRoZSBmZWF0dXJlX3VudXNlZCBtYWNybyBmb3IgbWFraW5nIGFuIGVtcHR5IGZpbGUgZm9yCiAgIGNvbnNpc3RlbmN5CgoyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRscy5jLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIEFub3RoZXIgc3dlZXAgZm9yIHVudXNlZCBmdW5jdGlvbnMgd2hlbiByZWFkX29ubHkgbW9kZSBpcyB0dXJuZWQKICAgb24KCjIwMTEtMDUtMDQgMTQ6MzQgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIG1hcmsgYSBzbGV3IG9mIGZ1bmN0aW9ucyBhcyBmZWF0dXJlcyB0aGF0IGFyZSBvbmx5IG5lZWRlZCB3aXRoCiAgIHdyaXRlX3N1cHBvcnQKCjIwMTEtMDUtMDQgMTQ6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKCiAgIHJ1biBncmVwIHdpdGggLW4KCjIwMTEtMDUtMDQgMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmZWF0dXJpemUgbmV0c25tcF9zb2NrYWRkcl9zaXplCgoyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZW1vdmUgYSBmZWF0dXJlX3JlcXVpcmUgbm90IGFjdHVhbGx5IG5lZWRlZC4KCjIwMTEtMDUtMDQgMTQ6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBtYXJrIFNVQkNPTlRBSU5FUl9GSU5EIGFzIGEgZmVhdHVyZQoKMjAxMS0wNS0wNCAxNDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHRoZSByb3cgY3JlYXRpb24gQVBJIGlzIG9ubHkgdXNlZCBpbiB0aGUgVFNNIGltcGxlbWVudGF0aW9uCgoyMDExLTA1LTA0IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdGhlIG5ld2VyIGNvbnRleHQgZW5naW5lSUQgcHJvYmluZyBpcyBvbmx5IG5lZWRlZCBpZmYgVFNNIGlzIGluCiAgIHVzZQoKMjAxMS0wNS0wNCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGZpeCBhbiBpZmRlZiB0eXBvCgoyMDExLTA1LTA0IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgbW92ZWQgZmV0YXVyZSBjaGlsZF9vZiBzdGF0ZW1lbnRzIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUKCjIwMTEtMDUtMDQgMTQ6MzAgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgbWFya2VkIGEgY291cGxlIG9mIHJhcmVseSB1c2VkIGNvbnRhaW5lciBmdW5jdGlvbnMuCgoyMDExLTA1LTA0IDE0OjI5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIHNwbGl0IG91dCB0aGUgcHJlZml4X2luZm8gZmVhdHVyZSBpbnRvIHN1Yi1mZWF0dXJlcwoKMjAxMS0wNS0wNCAxNDoyOSAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIG1hcmsgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcyB1bm5lZWRlZAoKMjAxMS0wNS0wNCAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYzoKCiAgIGZpeCBhIGNoaWxkX29mIHN0YXRlbWVudCB3aXRoIGEgY29weS9wYXN0ZSBlcnJvcgoKMjAxMS0wNS0wNCAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgdGhlIGNvbnRhaW5lciByb3ctcmVtb3ZlIGlzIG9ubHkgbmVlZGVkIGlmIHRoZSB0ZGF0YSByZW1vdmVfcm93CiAgIGlzIG5lZWRlZAoKMjAxMS0wNS0wNCAxNDoyOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGZlYXR1cmUgbWFya2luZyBvZiB1bnVzZWQgdGRhdGEgZnVuY3Rpb25zCiAgIHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZQogICB0YWJsZV90ZGF0YV9leHRyYWN0X3RhYmxlCiAgIHRhYmxlX3RkYXRhX3JlbW92ZV9yb3cKCjIwMTEtMDUtMDQgMTQ6MjcgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYzoKCiAgIHJlbW92YWwgb2Ygc29tZSByYXJlbHkgdXNlZCBmdW5jdGlvbnMKICAgdGFibGVfc2V0X211bHRpX2FkZF9kZWZhdWx0X3JvdwogICB0YWJsZV9kYXRhc2V0X3VucmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlCgoyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEFkZGVkIGEgZGVmaW5pdGlvbiB0byBpbmNvcnBvcmF0ZSByZWFkX29ubHkvbm90aWZ5X29ubHkKCjIwMTEtMDUtMDQgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgYWRkZWQgYSBtaXNzaW5nIGZlYXR1cmUgZGVmaW5pdGlvbiBsaW5lCgoyMDExLTA1LTA0IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZGVkIGJhY2sgaW4gbWlzc2luZyBtaWJncm91cCBmZWF0dXJlIGRlZmluaXRpb24gbGlzdAoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBJbmNsdWRlIHRoZSBvcmlnaW5hbCBiYXNlIGZsYWdzIHRvIGVuc3VyZSAtLXdpdGgtZGVmYXVsdHMgZ2V0cwogICBwaWNrZWQgdXAKCjIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZml4IHVzYWdlCgoyMDExLTA1LTA0IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEFkZGVkIGEgLWIgZmxhZyBmb3IgYmFzZSBhcmd1bWVudHMgdG8gc3RhcnQgZnJvbQoKMjAxMS0wNS0wNCAxNDoyNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBkZWZhdWx0IHRvIGEgbGluZWFyIHNlYWNoIG9mIHNpemUgdGVzdHMsIHJhdGhlciB0aGFuIGV4cG9uZW50aWFsCgoyMDExLTA1LTAzIDE4OjU1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEd1YXJkIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMKICAgY29uc2lzdGVudGx5LgogICBDSEFOR0VTOiBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLgoKMjAxMS0wNS0wMyAxNToyOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZSByZWdpc3RyeSBhcmd1bWVudCBsaW1pdAogICBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcyByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLgoKMjAxMS0wNS0wMiAxMToyMiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cKICAgYmUgdXNlZCBpbiB0aGUgTWluR1cgZW52aXJvbm1lbnQuCgoyMDExLTA0LTI5IDExOjE3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlIGNvZGUgY29tbWVudHMgaW4KICAgc25tcGxpYi93aW5zZXJ2aWNlLmMuCgoyMDExLTA0LTI5IDAwOjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbm90ZSBhYm91dCB0aGUgbmV3IHRpbWluZyBmdW5jdGlvbgoKMjAxMS0wNC0yOSAwMDoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBVcGRhdGUgdGhlIG1hbnVhbCBwYWdlIHRvIHJlZmxlY3QgdGhlIG5ldyB0aW1pbmcgb3B0aW9ucwoKMjAxMS0wNC0yOSAwMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgYmV0dGVyIGRvY3VtZW50YXRpb24KCjIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYzoKCiAgIHVzZSB0aGUgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZm9yIHBhcnNpbmcKICAgZnJlcXVlbmNpZXMvdGltZQoKMjAxMS0wNC0yOSAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzoKCiAgIGZpeCBwZHUgYnVpbGRpbmcgdGVzdHMgdW5kZXIgdmFyaW91cyBkaXNhYmxlZCBtb2RlcwoKMjAxMS0wNC0yOSAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzoKCiAgIGRvbid0IHRyeSB0byBidWlsZCB0aGUgR0VUIHBkdSB1bmRlciBub3RpZnlfb25seQoKMjAxMS0wNC0yOSAwMDoxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBhIGJ1ZyB3aXRoIG5vLXN1ZmZpeCBzdHJpbmdzIGFuZCB1c2UgYSBjb25zdCBpbnB1dCBzdHJpbmcKCjIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxMG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2Vjc19jbGliLmM6CgogICBBIG5ldyB1bml0IHRlc3QgZm9yIHRoZSB0aW1lIGNvbnZlcnNpb24gcm91dGluZQoKMjAxMS0wNC0yOSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHVzZSB0aGUgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb24gZm9yIGNvbXB1dGluZwogICBpbnRlcnZhbCBwZXJpb2RzCgoyMDExLTA0LTI5IDAwOjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgQWRkZWQgYSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbnMgdG8gY29udmVydCwgZS5nLiwKICAgMWggdG8gMzYwMAoKMjAxMS0wNC0yOSAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIGNvZGUgdG8gYnVpbGQvcGFyc2UgR0VUL2V0YyByZXF1ZXN0cyB3aGVuIE5PVElGWV9PTkxZIGlzCiAgIHR1cm5lZCBvbi4KCjIwMTEtMDQtMjcgMjE6MzMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgdGhlIE5FV1MgdG8gcmVmbGVjdCB0aGUgbmV3IC0tZW5hYmxlLXJlYWQtb25seSBhbmQKICAgLS1lbmFibGUtbm90aWZ5LW9ubHkKCjIwMTEtMDQtMjcgMjE6MzMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBtaW5vciBpbXByb3ZlbWVudHMgZm9yIHJvbmx5IHZzIHJ3cml0ZSBoYW5kbGluZwoKMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHN0aWxsIGVuYWJsZSBST05MWSB3aGVuIFJXUklURSBpc24ndCBwb3NzaWJsZQoKMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBmaXggR0VUIHN1cHBvcnQgd2hlbiBub193cml0ZSBpcyBlbmFibGVkCgoyMDExLTA0LTI3IDIxOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgbWFyayBhIGZ1dHVyZSBtb2RpZmljYXRpb24gbmVlZCBpbiBhIGNvbW1lbnQKCjIwMTEtMDQtMjcgMjE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZml4IGhhbmRsaW5nIG9mIG5vX3dyaXRlIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYzoKCiAgIGRvbid0IG9wZW4gYW55IGxpc3RlbmluZyB0cmFuc3BvcnRzIHdoZW4gbm90aWZ5LW9ubHkgaXMgc3BlY2lmaWVkCgoyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgc2V0IHRoZSBuby1saXN0ZW4gYW5kIHJlYWQtb25seSBmbGFncyB3aGVuIC0tZW5hYmxlLW5vdGlmeS1vbmx5CiAgIGlzIHNldAoKMjAxMS0wNC0yNyAyMTozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJhbiBhdXRvaGVhZGVyCgoyMDExLTA0LTI3IDIxOjMwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBpbXBsZW1lbnQgdGhlIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgaW4gdGhlc2UgdHJhbnNwb3J0cwoKMjAxMS0wNC0yNyAyMTozMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDExLTA0LTI3IDIxOjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIG1vdmUgdGhlIHJlYWQtb25seSBmbGFnIGRlZmluaXRpb24gYmVsb3cgdGhlIG5vdGlmeS1vbmx5LCBzaW5jZQogICBub3RpZnktb25seSBuZWVkcyB0byBpbXBseSByZWFkLW9ubHkKCjIwMTEtMDQtMjcgMjE6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBEZWZpbmVkIGEgbmV3IC0tZW5hYmxlLW5vdGlmeS1vbmx5IGZsYWcgZm9yIGJ1aWxkaW5nIGEgdG9vbHNldAogICB0aGF0IG9ubHkgYWxsb3dzIGZvciBub3RpZmljYXRpb25zIHdpdGggbm8gcmVhZC93cml0ZSBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRGVmaW5lZCBhIG5ldyAtLW5vLWxpc3RlbiBmbGFnIHRvIHJlbW92ZSBsaXN0ZW5pbmcgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICB0aGUgZGlzbWFuIHNjaGVkdWxlIG1pYiBpcyBvbmx5IHVzZWZ1bCB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbgoKMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmg6CgogICB0aGUgZGlzbWFuIHNjaGVkdWxlIG1pYiBpcyBvbmx5IHVzZWZ1bCB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbgoKMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICBmaW5pc2hlZCBub193cml0ZSBzdXBwb3J0IGZvciBjb21tb24gaW5jbHVkZWQgdGFibGVzCgoyMDExLTA0LTI3IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEFkZCBiYWNrIGluICduZXRzbm1wX3NldF9yb3dfY29sdW1uJyB3aGVuIG5vX3dyaXRlIHN1cHBvcnQgaXMKICAgZW5hYmxlZAogICBUaGlzIGZ1bmN0aW9uIGlzIGEgZ2VuZXJpYyBkYXRhIG1hbmlwdWxhdGlvbiBmdW5jdGlvbiwgbm90IFNFVAogICBzcGVjaWZpYwoKMjAxMS0wNC0yNyAyMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBkb24ndCB1c2UgbWFya19yb3dfY29sdW1uX3dyaXRhYmxlIHdoZW4gcmVhZC1vbmx5IHN1cHBvcnQgaXMKICAgZW5hYmxlZAoKMjAxMS0wNC0yNyAyMToyNiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGZpeCBub193cml0ZSBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGZpeCBub193cml0ZSBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBEb24ndCBmcmVlIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93bgogICBpdAoKMjAxMS0wNC0yNiAxODoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvZ2l0dG9vbHMsIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczoKCiAgIGdpdCBiYXNoLXNoZWxsIGZ1bmN0aW9ucyB0byBlbmFibGUgYnJhbmNoIHN3aXRjaGluZyBhbmQgZXh0ZXJuYWwKICAgYnVpbGRpbmcKICAgVGhlc2UgbG9jYWwgc2hlbGwgZnVuY3Rpb25zIChzbm1wY29uZmlndXJlIGFuZCBzbm1wbWFrZSkgbGV0IHlvdQogICBjb25maWd1cmUgYW5kIGJ1aWxkIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBpbiBleHRlcm5hbAogICBkaXJlY3RvcmllcwogICB0aGF0IGFyZSBhdXRvLWNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGV4aXN0aW5nIGJyYW5jaCBuYW1lICh3aXRoCiAgIGFuCiAgIG9wdGlvbmFsIHN1ZmZpeCkuIFRoaXMgbGV0cyB5b3UgcnVuICdzbm1wbWFrZScgZnJvbSB3aXRoaW4gdGhlCiAgIHNvdXJjZQogICBkaXJlY3RvcnkgYW5kIGhhdmUgaXQgYWN0dWFsbHkgZXh0ZXJuYWxseSBrZWVwIHRyYWNrIG9mIG1vZGlmaWVkCiAgIGZpbGVzLCBldGMsIHNvIGJ1aWxkaW5nIGluIG11bHRpcGxlIGJyYW5jaGVzIGNhbiBiZSBkb25lIGZyb20gYQogICBzaW5nbGUKICAgZ2l0IGNoZWNrb3V0LgoKMjAxMS0wNC0yNSAyMDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGNsZWFuIHVwIHRoZSBpdGVyYXRvcnMKCjIwMTEtMDQtMjUgMjA6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBmcmVlIHZhcmJpbmRzIGFmdGVyIHNlbmRpbmcKCjIwMTEtMDQtMjUgMTg6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ29tbWVudGVkIG91dCBhbiB1bnVzZWQgZnVuY3Rpb24gYmVjYXVzZSB0aGUgY29tcGlsZXIgY29tcGxhaW5lZAogICBhYm91dCBpdC4KCjIwMTEtMDQtMjUgMTg6NDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMS0wNC0yMyAxNDozMSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgbnVsbCBjaGVjawoKMjAxMS0wNC0yMyAxNDowNSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIE1vdmUgcG9pbnRlciBkZXJlZmVyZW5jZSB0byBhZnRlciB0aGUgY2hlY2sgZm9yIHN1Y2Nlc3NmdWwKICAgYWxsb2NhdGlvbiBvZiB0aGUgcG9pbnRlcgoKMjAxMS0wNC0yMyAwODoyMCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZQoKMjAxMS0wNC0yMyAwODoxNiAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjMgMDg6MDYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjMgMDc6NTUgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjIgMTk6MzUgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZQoKMjAxMS0wNC0yMiAxOTozMCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0yMiAxNzoyOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHdoaWNoIG1vZHVsZSBpcyByZXF1aXJlZCB3aGVuIGJ1aWxkaW5nIHRvIGdldCB0aGUgZGVsaXZlcgogICBzdXBwb3J0CgoyMDExLTA0LTIyIDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVsZXRlZCBhbiB1bm5lZWRlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50CgoyMDExLTA0LTIyIDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgcHJvcGVybHkgdXBkYXRlIHRoZSBtYXggY291bnQgaW4gdGhlIG91dGdvaW5nIG5vdGlmaWNhdGlvbnMKCjIwMTEtMDQtMjIgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBiZXR0ZXIgcGFja2V0IGVzdGltYXRpb24gdG8gZW5zdXJlIHdlIGRvbid0IG92ZXJydW4uCgoyMDExLTA0LTIyIDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZXN0aW1hdGUgdGhlIHBhY2tldCBzaXplIGFuZCBicmVhayB0aGUgbm90aWZpY2F0aW9uIHVwIGJhc2VkIG9uCiAgIGl0CgoyMDExLTA0LTIyIDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgdHJhbnNmb3JtIHRoZSBub3RpZmljYXRpb24gc2VuZGluZyBpbnRvIGEgbGFyZ2VyIGxvb3AgZm9yIGxhdGVyCiAgIG11bHRpLW5vdGlmcwoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZSBtYXJraW5nL3NlbGVjdGlvbgoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gdGhlIG5ldyBkZWxpdmVyeSBieSBub3RpZmljYXRpb25zCgoyMDExLTA0LTIyIDE2OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgdGhlIG1pbmltYWxpc3Qgc3VwcG9ydAoKMjAxMS0wNC0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgbmV3IGRlbGl2ZXJCeU5vdGlmeSBjb25maWcgdG9rZW5zCgoyMDExLTA0LTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgYWxsb3cgcnVuIHRpbWUgbW9kaWZpY2F0aW9ucyBvZiB0aGUgT0lEcyB0byB1c2UKCjIwMTEtMDQtMjIgMTY6MzAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgYWRkIGNvbmZpZyBmbGFncyB0byBub3QgaW5jbHVkZSB0aGUgcGVyaW9kIGNvbmZpZyBhbmQgbXNnIGNvdW50CiAgIHZhbHVlcwoKMjAxMS0wNC0yMiAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGluY2x1ZGUgdGhlIHBlcmlvZGljIGNvdW50LCB0aGUgbWVzc2FnZSBudW1iZXIgYW5kIHRoZSBtYXgKICAgbWVzc2FnZSBudW1iZXIKCjIwMTEtMDQtMjIgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBkZWxldGVkIGRlYnVnZ2luZyBjb21tZW50CgoyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDoKCiAgIE1vdmUgdGhlIG5vdGlmaWNhdGlvbiBkZWZpbml0aW9uIHRvIHdpdGhpbiB0aGUgc3ViLW1pYgoKMjAxMS0wNC0yMiAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGRlbGV0ZSBhbiB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBsb2FkIHRoZSBNSUIgaW50byB0aGUgZGVmYXVsdCBzZXQKCjIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6CgogICBBIG5ldyBtaWIgdG8gaG9sZCB0aGUgcGVyaW9kaWMgbm90aWZ5IG9iamVjdHMKCjIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBmaWxsIG91dCB0aGUgY29uZmlnIGZyZWUgcm91dGluZQoKMjAxMS0wNC0yMiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHByb3Blcmx5IG1vbml0b3IgdGhlIHdob2xlIGNvbnRhaW5lcgoKMjAxMS0wNC0yMiAxNjoyNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBwYXJzZSB0aGUgY29uZiBmaWxlcyBhbmQgY3JlYXRlIGFuZCBpbnNlcnQgb2JqZWN0cyBpbnRvIHRoZQogICBjb250YWluZXIKCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBkZWZpbmVkIGEgY29udGFpbmVyIHRvIHN0b3JlIGEgbGlzdCBvZiBkZWxpdmVyIG9iamVjdHMgaW4KCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBhZGRlZCBhIG5leHRfcnVuIHRpbWVzdGFtcAoKMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGFjdHVhbGx5IHNlbmQgYSBub3RpZmljYXRpb24gd2l0aCB0aGUgcmVzdWx0cwoKMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIG1ha2UgdGhlIHdhbGsgb24gdGhlIHRlc3Qgb2JqZWN0IGZ1bmN0aW9uLgoKMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGNyZWF0ZSBhIG1heCBwYWNrZXQgc2l6ZSBjb25maWcgdG9rZW4gYW5kIHBhcnNlIGl0CgoyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIG1pbmltYWwgc3RhcnRpbmcgdGVzdCBvYmplY3QKCjIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgYWRkZWQgYSBmdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgcnVuCgoyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgcmVtb3ZlIGxlZnQgaW4gdGVtcGxhdGUgbGluZQoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICB1c2UgYW4gYWxhcm0gY2FsbGJhY2sgcHJvdG90eXBlIGZvciBleGVjdXRlCgoyMDExLTA0LTIyIDE2OjI0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlciwgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGJlZ2lubmluZyB0ZW1wbGF0ZSBjb2RlIGZvciBkZWxpdmVyeSBvZiBkYXRhIGJ5IG5vdGlmaWNhdGlvbnMKCjIwMTEtMDQtMjIgMDk6MTMgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZQoKMjAxMS0wNC0yMiAwOTowNyAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlcwoKMjAxMS0wNC0yMiAwOTowMyAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0xOSAwODozOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuOgoKICAgQWRkZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uIGZpbGUgZm9yIGJ1aWxkaW5nCiAgIHRoZSBOZXQtU05NUCBsaWJyYXJ5IGFzIGEgc3RhdGljIGxpYnJhcnkuIEJvdGggdGhlIFdpbjMyIGFuZCB0aGUKICAgeDY0IGNvbmZpZ3VyYXRpb25zIGFyZSBpbmNsdWRlZC4KCjIwMTEtMDQtMTkgMDc6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXA6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDExLTA0LTE5IDA3OjM5ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6CgogICBNb3JlIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGZpbGUgY2xlYW51cC4KCjIwMTEtMDQtMTkgMDY6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2JpbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTEtMDQtMTggMTU6MzQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOgoKICAgQ2xlYW5lZCB1cCBXaW4zMiBWUzIwMDUgcHJvamVjdCBmaWxlcyAtIHJlbW92ZWQgc3VwZXJmbHVvdXMKICAgbGlicmFyeSByZWZlcmVuY2VzLgoKMjAxMS0wNC0xOCAxNToyNSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46CgogICBBZGRlZCB4NjQgY29uZmlndXJhdGlvbnMuCgoyMDExLTA0LTE4IDE1OjE0ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWI6CgogICBBbm90aGVyIFdpbjMyLXJlbGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdCB1cGRhdGUuCgoyMDExLTA0LTE4IDE1OjEzICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIEFkZGVkIHdpbjMyZGxsLXJlbGF0ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uCiAgIGZpbGVzLgoKMjAxMS0wNC0xOCAxMzozNyAgYnZhc3NjaGUKCiAgICogIHdpbjMyLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCB3aW4zMi9saWIsIHdpbjMyL2xpYmFnZW50LCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLCB3aW4zMi9uZXQtc25tcCwgd2luMzIvbmV0c25tcG1pYnMsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0LCB3aW4zMi9zbm1wYnVsa3dhbGssIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEsIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGdldCwgd2luMzIvc25tcGdldG5leHQsICAKICAgICAgIHdpbjMyL3NubXBuZXRzdGF0LCB3aW4zMi9zbm1wc2V0LCB3aW4zMi9zbm1wc3RhdHVzLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUsIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcCwgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdXNtLCB3aW4zMi9zbm1wdmFjbSwgICAKICAgICAgd2luMzIvc25tcHdhbGs6CgogICBBZGRlZCAqLnZjcHJvai4qLnVzZXIgYW5kIHg2NCB0byB0aGUgd2luMzIgU3VidmVyc2lvbiBpZ25vcmUKICAgbGlzdHMuIFJhbiB0aGVzZSB0aHJvdWdoIExDX0FMTD1DIHNvcnQgLWZ1IHRvby4KCjIwMTEtMDQtMTggMTI6MTAgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgV2luMzIgRExMIGJ1aWxkIGZpeGVzLgoKMjAxMS0wNC0xNyAyMDo1NiAgZHRzMTIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQKICAgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQoKMjAxMS0wNC0xNSAxMzo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQKICAgcHJlZml4IGxlbmd0aAogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRAogICBwcmVmaXggbGVuZ3RoCgoyMDExLTA0LTE1IDEzOjE3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFwcHMvc25tcHRyYXBkX2RzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzIwNTgxMTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0KICAgZGV2aWNlcyBpbiBkaXNrSU9UYWJsZQoKMjAxMS0wNC0xNCAyMTozMSAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NTogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zCgoyMDExLTA0LTE0IDIxOjEwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YgJ3doaWxlIChmYWxzZSknCiAgIGJsb2NrcwoKMjAxMS0wNC0xNCAyMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZQogICBvYmplY3RzIG5hbWVkIGZvb1RhYmxlCgoyMDExLTA0LTE0IDIwOjQ0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0IGVudW1lcmF0aW9ucyBpbgogICBub3RpZmljYXRpb24gdmFyYmluZHMKCjIwMTEtMDQtMTIgMjA6MDEgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKCjIwMTEtMDQtMTIgMTk6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUgY29sdW1ucyBpbiBidWxrCiAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlIHNwZWNpZmllZC4KCjIwMTEtMDQtMTIgMTk6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJwoKMjAxMS0wNC0wOSAyMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzoKCiAgIFJlbW92ZSBib2d1cyAoTGludXgpIGRlZmluZXMKCjIwMTEtMDQtMDkgMjE6NTYgIG5iYQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgoKMjAxMS0wNC0wOSAyMDowOCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgY29uZmlndXJlLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQmlsbCBGZW5uZXJzIHBhdGNoIHRvIG1ha2UgRElTTUFOIFBJTkcgYW5kIFRSQUNFUk9VVEUgTUlCUwogICBjb21waWxlIHVuZGVyIExpbnV4CgoyMDExLTA0LTA5IDIwOjA0ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzoKCiAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgU0NUUC1NSUIKCjIwMTEtMDQtMDkgMTk6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQgU1lTViAoc3VjaCBpcyBMaW51eCkKCjIwMTEtMDQtMDEgMDE6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGR0bHM6IG92ZXJoYXVsIG9mIGRlYnVnCiAgIAogICAtIGRyYXN0aWMgcmVkdWN0aW9uIGluIG51bWJlciBvZiBtZXNzYWdlcyBhbmQgbXNnIGNvbXBsZXhpdHkKICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4KICAgLSBwcmV2aW91cyBsZXZlbCBvZiBkZXRhaWwgYXZhaWxhYmxlIGJ5IGFkZGluZyA5OmR0bHNkdXAgdG9rZW4KCjIwMTEtMDQtMDEgMDA6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGR0bHM6IGNsZWFuIHVwIGNsb3NlOyBjYXRjaAogICAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnCiAgIAogICBjb25uZWN0ID0gd2UgZ2V0IHN1Y2Nlc3NmdWxseSBkZWNvZGVkIHNubXAgZGF0YQogICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldAogICBhZGQgYmlvX2NhY2hlIGZsYWdzIGZvciBjb25uZWN0ZWQvZGlzY29ubmVjdGVkCiAgIGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZwogICBjbG9zZSBoYW5kbGluZzoKICAgLSBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZQogICAtIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsKICAgd2Ugc2hvdWxkbid0IGV2ZW4gYm90aGVyCiAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQKICAgcmVwZWF0ZWRseQogICAtIHVzZSBjb3JyZWN0IG5mZHMgdmFsdWUgaW4gc2VsZWN0IGNhbGwKCjIwMTEtMDMtMzEgMDU6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1ha2UgdHJ1bmsgYW5kIHY1LTYtcGF0Y2hlcyBjbG9zZWx5IGFsaWduZWQKICAgCiAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcKCjIwMTEtMDMtMjcgMTE6MDggIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgU2ltcGxpZnkgYXJyYXkgcmVzaXppbmcgc29tZXdoYXQgZnVydGhlcgoKMjAxMS0wMy0yNyAxMDoyMSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBEbyBub3QgYXNzaWduIG5ld19kYXRhIGlmIHRoZSB2YWx1ZSB3b24ndCBiZSB1c2VkLgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLgoKMjAxMS0wMy0yNyAxMDoxNCAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNsZWFyIGEgY2h1bmsgb2YgbWVtb3J5IGlmIHRoZSBuZXh0IGFjdGlvbgogICBvbiBpdCBpcyB0bwogICBmaWxsIGl0IHNvIHVzZSBtYWxsb2MgaW5zdGVhZCBvZiBjYWxsb2MuCgoyMDExLTAzLTI3IDEwOjA5ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIENvbnRhaW5lckJpbmFyeUFycmF5IHJlYWxseSBjYW4ndCBob2xkIGFueXRobmcgYnV0IHBvaW50ZXJzIGFuZAogICB0aGF0IG1lYW5zIHRoZQogICBkYXRhX3NpemUgZmllbGQgaXMgdW5uZWNlc3Nhcnkgc28gSSByZW1vdmVkIGl0LgoKMjAxMS0wMy0yNiAxOTo1NSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZQoKMjAxMS0wMy0yNiAwODowNyAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBVc2UgdGhlIHJpZ2h0IGZlYXR1cmUgbWFjcm8gaW4gb3JkZXIgdG8gbWFrZSBidWlsZHMgd2l0aAogICAtLWVuYWJsZS1pcHY2IC0td2l0aC1vdXQtdHJhbnNwb3J0cz1VRFBJUHY2IHN1Y2NlZWQuCgoyMDExLTAzLTI2IDA4OjAyICBtYWdmcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucwoKMjAxMS0wMy0yNSAyMDozNSAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICB0d2VhayBkZWJ1ZyBtZXNzYWdlCgoyMDExLTAzLTI1IDIwOjMyICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiB1cGRhdGUgY2VydCB0b2tlbiBoYW5kbGluZwogICAKICAgLSByZW1vdmUgZGVmWDUwOSBjZXJ0IHRva2VucyAoc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGJlZm9yZQogICA1LjYpCiAgIC0gd2FybmluZ3MgZm9yIG91ci90aGVpciB0b2tlbnMsIHJlY29tbWVuZCB1c2luZyBsb2NhbC9wZWVyCgoyMDExLTAzLTI1IDIwOjMxICByc3RvcnkKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIG1lcmdlIG5ldHNubXBfZHRsc3VkcDYgaW50byBuZXRzbm1wX2R0bHN1ZHAKICAgCiAgIHVzZSBhZGRyIHNpemUgdG8gdGVsbCB0aGVtIGFwYXJ0CgoyMDExLTAzLTI1IDIwOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgbG9nIChvbmNlKSB3YXJuaW5nIHdoZW4gZGVwcmVjYXRlZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcKICAgdHJhbnNwb3J0IGZ1bmN0aW9uIHVzZWQKCjIwMTEtMDMtMjUgMjA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOgoKICAgcmVkdWNlIGNhc3Rpbmc7IG1ha2Ugc3VyZSB0byBmcmVlIHRoZSByaWdodCBwb2ludGVyCgoyMDExLTAzLTI1IDIwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICByZWR1Y2UgY2FzdGluZwoKMjAxMS0wMy0yNCAwNjoxOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFJlcGxhY2UgYSB2YXJpYWJsZSB3aXRoIGEgY29uc3RhbnQuIE1ha2Ugb25lIG1vcmUgb2lkIGNvbnN0LgoKMjAxMS0wMy0xNyAyMTowOSAgbmJhCgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6CgogICBGb3JtYXR0aW5nIGJvdGNoCgoyMDExLTAzLTE3IDIxOjA3ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgcmVxdWlyZWQgbWlicwoKMjAxMS0wMy0xNyAyMTowNSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE5ldyBSRkMgbWlicwoKMjAxMS0wMy0xNSAxMDozMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIFNwZWxsaW5nIGZpeDogcmVnaW5lcmF0ZWQgLT4gcmVnZW5lcmF0ZWQuCgoyMDExLTAzLTE1IDEwOjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgU2ltcGxpZmllZCByMTk1OTQgKGxlYWstYXQtZXhpdCBmaXgpLgoKMjAxMS0wMy0xNSAwOTo1OSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIyMDExMy4KCjIwMTEtMDMtMTQgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggbWFpbiBhZ2VudCBzZWxlY3QgY2FsbCB0byB1c2UgdGhlIHJlbmFtZWQgQVBJIHJvdXRpbmUuCgoyMDExLTAzLTEzIDIwOjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50bwogICBsaW5lIHdpdGggdGhlIHJlc3Qgb2YgdGhlIEFQSS4KCjIwMTEtMDMtMTIgMDY6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdCBpbnN0ZWFkIG9mIGNhbGxvYwogICAKICAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDExLTAzLTEyIDA1OjQ3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlIHRhYmxlcyBmcm9tCiAgIFN0ZXBoZW4gSGVtbWluZ2VyCiAgIAogICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOwogICBzdWJqZWN0CiAgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yawoKMjAxMS0wMy0xMSAxNDo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIG1vcmUgb3BlbnNzbCBlcnJvciBjYXNlcyB3aGVyZSB3ZSBjaGVjayBmb3IKICAgbG9jYWwgY2VydAoKMjAxMS0wMy0xMSAxMjowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IgdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZgogICByYW5kb20gZGF0YS4KCjIwMTEtMDMtMTEgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCdWlsZHMgd2l0aCBtb3N0IHJlY2VudCBNaW5HVyAoaGF2aW5nICNkZWZpbmUKICAgbG9jYWx0aW1lX3IpLgoKMjAxMS0wMy0xMSAwMzowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZWZpbmUgY2VydCBkZWJ1Z2dpbmc7IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMTEtMDMtMTAgMjE6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnIGZvciBjZXJ0U2VjTmFtZQogICB0b2tlbgoKMjAxMS0wMy0xMCAyMDowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4gbWVzc2FnZXMuCgoyMDExLTAzLTEwIDE5OjU1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1pbm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbgogICBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4KCjIwMTEtMDMtMTAgMTk6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMyMDM4MDY6IEF2b2lkIHRoYXQgdGhlIG1haW4gYWdlbnQKICAgcHJvY2Vzc2luZyBsb29wIC0gd2hlbiB1c2luZyBtb3JlIHRoYW4gRkRfU0VUU0laRSBmaWxlCiAgIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLgoKMjAxMS0wMy0xMCAxOTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KICAgbmV0c25tcF9sYXJnZV9zZWxlY3QoKS4KCjIwMTEtMDMtMTAgMTg6NTUgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOWxhcmdlX2ZkX3NldF9jbGliLmM6CgogICBBZGRlZCBhIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX2xhcmdlX2ZkX3NldC4KCjIwMTEtMDMtMTAgMTg6NTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQogICBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwgcmVsZXZhbnQgZmlsZQogICBkZXNjcmlwdG9ycy4KCjIwMTEtMDMtMTAgMTU6NTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudCBoYW5kbGluZyBvZiBUWgogICBvZmZzZXRzCgoyMDExLTAzLTEwIDE1OjQwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGU6CgogICBJZ25vcmUgb2JqZWN0IGZpbGVzIGFuZCBsaWJyYXJpZXMKCjIwMTEtMDMtMTAgMTU6MDUgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0czoKCiAgIElnbm9yZSBvYmplY3QgZmlsZXMgYW5kIGxpYnJhcmllcwoKMjAxMS0wMy0xMCAxNDozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBtYWtlIHZhcmlhYmxlIG5hbWVzIG1hdGNoCgoyMDExLTAzLTEwIDE0OjI4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYzoKCiAgIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4KCjIwMTEtMDMtMTAgMTQ6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgZml4ZWQgaW5zdGFsbGF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIG9wdGlvbmFsIFNFVCBwcm9ncmFtcwoKMjAxMS0wMy0wOCAwMDo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczoKCiAgIGNobW9kIGEreAoKMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CgogICBwcmludCBhbiBlcnJvciBpZiB0aGUgZW5kIG9mIGEgZmlsZSB3YXMgcmVhY2hlZCBhbmQgd2UncmUgbm90CiAgIGJhY2sKICAgaW50byB0aGUgc3RhdGUgd2UgY2FuIHdyaXRlOyBvdGhlcndpc2UgYSBjbG9zaW5nICNpZmRlZiBpcwogICBtaXNzaW5nLgoKMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBmaXggZW5kaWYgY29tbWVudCB0byBtYXRjaCB0aGUgb3BlbmluZyBpZmRlZgoKMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CgogICByZXNldCB0aGUgY2Fud3JpdGUgZmxhZyBmb3IgZXZlcnkgZmlsZQoKMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczoKCiAgIHRlbXBvcmFyaWx5IGxlYXZlIGluIGhlYWRlciBmaWxlcwoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBjaGFuZ2UgdGhlIHVuaXF1ZSBmaWxlIGNoZWNrIHRvIG9uZSB0aGF0IGlzIG5vdCBpbiB0aGUgbWliZ3JvdXAKICAgZGlyZWN0b3J5CgoyMDExLTAzLTA4IDAwOjE0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9yZWFkLW9ubHkvVDAxNDFzbm1wdjJjc2V0ZmFpbF9zaW1wbGU6CgogICBhIHRlc3QgZm9yIGVuc3VyaW5nIHRoZSBhZ2VudCByZWplY3RzIFNFVCByZXF1ZXN0cyB3aXRoCiAgIC0tZW5hYmxlLXJlYWQtb25seQoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOgoKICAgYWRkIGJhY2sgaW4gdGhlIHN0b3BhZ2VudCBjb21tYW5kCgoyMDExLTAzLTA4IDAwOjE0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAxcGR1X3R5cGVfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDNwZHVfcGFyc2VfY2xpYi5jOgoKICAgdW5pdCB0ZXN0cyB3cml0ZW4gZm9yIHRoZSByZWFkLW9ubHkgc3VwcG9ydCBjb252ZXJ0ZWQgdG8gd29yawogICB3aXRoIG9yIHdpdGhvdXQgcmVhZC1vbmx5CgoyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6CgogICBkb24ndCBydW4gdGhlIHNldCB0ZXN0IGlmIG5vX3dyaXRlX3N1cHBvcnQgaXMgdHVybmVkIG9uCgoyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlOgoKICAgc2tpcCBpZiBub193cml0ZV9zdXBwb3J0CgoyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6CgogICBBIG5ldyB0ZXN0IHRvIGNoZWNrIHdoZXRoZXIgU05NUHYyYyBTRVRzIHRvIHN5c0NvbnRhY3Qgd29yayBhcwogICBleHBlY3RlZAoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZzoKCiAgIGFsbG93IGZvciB2MmMgU0VUIHN1cHBvcnQgdGVzdGluZwoKMjAxMS0wMy0wOCAwMDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBmb3Igc2luZ2xlIHF1b3RlcyBmb3IgdmFjbSBjb250ZXh0IG5hbWUgcXVvdGluZyB0b28KCjIwMTEtMDMtMDcgMTk6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUgdGhlIHdvcmQgdGVzdCBpbiB0aGUgdGVzdAoKMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZSB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0CgoyMDExLTAzLTA3IDE5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgoKICAgQWRkZWQgYW4gYW5ub3lpbmdseSBsb25nIGxpc3Qgb2YgZXhjZXB0aW9ucyB0aGF0IG5lZWRzIHRvIGJlCiAgIGF1dG9tYXRlZAoKMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczoKCiAgIEEgcXVpY2sgcGVybCBzY3JpcHQgdG8gcmVtb3ZlIHVubmVlZGVkIGNvZGUgbW9kdWxlcyBmcm9tIHRoZQogICBtb2R1bGVzIGRpcmVjdG9yeQoKMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgbW9yZSBpbXByb3ZlbWVudHMgKHJlbW92ZW1lbnRzKSBmb3IgZmVhdHVyaXphdGlvbiBhbmQgcmVhZC1vbmx5CiAgIHN1cHBvcnQKCjIwMTEtMDMtMDcgMTc6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMxOTU1Mzc6IE1pbm9yIGJpbmFyeV9hcnJheSBjb250YWluZXIKICAgc29ydCBvcHRpbWl6YXRpb24KCjIwMTEtMDMtMDYgMTk6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzoKCiAgIFRhYnMgdG8gc3BhY2VzCgoyMDExLTAzLTA2IDExOjI4ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ29uZmlndXJlIGNoZWNrIGZvciBnZXRob3N0bmFtZTIKICAgVXNlIGdldGFkZHJpbmZvIGlmIGF2YWlsYWJsZS4gTm93IHdvcmtzIGZvciBTb2xhcmlzIChhbmQKICAgV2luZG93cz8pCgoyMDExLTAzLTA1IDE5OjE2ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBBZGQgZHJvcHBlZCB8fCdzIGZyb20gcjIwMDcyCgoyMDExLTAzLTA1IDEyOjUwICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jOgoKICAgQ2xlYW4gdXAsIGFuZCBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldwogICBmdW5jdGlvbi4KICAgU2F2ZXMgMjAwIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UKCjIwMTEtMDMtMDUgMDY6MTcgIGhhcmRha2VyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0ZXN0LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgZG9uJ3QgYnVpbGQgU0VUIHJlbGF0ZWQgYXBwcyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKMjAxMS0wMy0wNSAwNjoxNiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggaXNzdWVzIHdpdGggY29tYmluaW5nIC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kCiAgIC0tZW5hYmxlLXJlYWQtb25seQoKMjAxMS0wMy0wNSAwNjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgoKICAgYmV0dGVyIG91dHB1dCBmb3IgZmluZGluZyBvYmplY3Qgc3ltYm9scy4KCjIwMTEtMDMtMDQgMjE6NTYgIGJhZXJtCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgbGFzdCBjb21taXQ6IGNoYW5nZXMgdG8gYWxsb3cgcGFyc2luZyBvZiBmZWF0dWVycyBmaWxlcyB0byBnZXQKICAgYWxsIG1pbmltYWxpc3QgdGFncyB3aGljaCBhcmUgdGhlbiBwcm9jZXNzZWQgZm9yIHJlbW92YWwKICAgCiAgIHRoaXMgY29tbWl0OiBjaGFuZ2VkIGNvbW1lbnRzL3doaXRlIHNwYWNlCgoyMDExLTAzLTA0IDE5OjI3ICBiYWVybQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGFkZGVkIG5vX3dyaXRlIHN1cHBvcnQgdG8gZXh0ZW5kLmMKCjIwMTEtMDMtMDQgMTk6MjYgIGJhZXJtCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2VuZGlmIGNvbW1lbnQgZm9yIHJlbW92ZSBpZmRlZiBjb2RlIHN1cHBvcnQKCjIwMTEtMDMtMDQgMTk6MjQgIGJhZXJtCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgYWRkZWQgY2hhbmdlcyB0byBhbGxvdyBjb2RlIHJlbW92YWwgaW4tcGxhY2UKICAgKGkuZS4gZG9lcyBub3QgcmVxdWlyZSBjcmVhdGluZyBhIG5ldyBmaWxlKQoKMjAxMS0wMy0wNCAxOToyMyAgYmFlcm0KCiAgICogbG9jYWwvbWluaW1hbGlzdC9pZ25vcmUucmVnZXhwOgoKICAgYWRkaW5nIGEgaWdub3JlLnJlZ2V4cCBmaWxlIHRoYXQgY2FuIGJlIHVzZWQgd2l0aAogICByZW1vdmVpZmRlZmNvZGUucGwKCjIwMTEtMDMtMDQgMTk6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIGFkZCBhIG91dGdvaW5nIGxpbmsgdG8gdGhlIHBhcmVudCBtYXJraW5nIHBhZ2UKCjIwMTEtMDMtMDQgMTk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIEFkZGVkIGEgd2lraSBvdXRwdXQgbW9kZQoKMjAxMS0wMy0wNCAxOToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgTm90ZSB0aGF0IHRoZSBvcmcgb3V0cHV0IGlzIHRoZSBkZWZhdWx0IGluIHRoZSBoZWxwIG91dHB1dAoKMjAxMS0wMy0wNCAxNTowOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbgogICBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uIExpbnV4CgoyMDExLTAzLTA0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlY2xhc3NpZmljYXRpb24gb2YgdGhlIHJlbWFpbmluZyBmZWF0dXJlcyBpbnRvIGEgaGllcmFyY2h5CgoyMDExLTAzLTA0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgZG91YmxlLWRlY2xhcmUgY2VydF91dGlscwoKMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgdGhlIGlwYWRkcmVzc19saW51eCB3YXMgaW5jb3JyZWN0bHkgbWFya2VkIGFzIG5lZWRpbmcKICAgY2VydF9maW5nZXJwcmludHMKCjIwMTEtMDMtMDQgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwdXQgdGhlIGFnZW50X3JlZ2lzdHJ5IGZlYXR1cmUgaW4gbGlibmV0c25tcGFnZW50LgoKMjAxMS0wMy0wMyAxMDo1NiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBDSEFOR0VTOiBXaW4zMjogRGVwcmVjYXRlZCBsaWJzbm1wLmRlZiAtIGFkZCBORVRTTk1QX0lNUE9SVCB0bwogICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0byBleHBvcnQgYSBmdW5jdGlvbiBmcm9tCiAgIG5ldHNubXAuZGxsLgoKMjAxMS0wMy0wMyAxMDo0OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIEFkZGVkIG1pc3NpbmcgTkVUU05NUF9JTVBPUlQgZGVjbGFyYXRpb25zLgoKMjAxMS0wMy0wMyAxMDoyNCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmOgoKICAgUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuCgoyMDExLTAzLTAzIDEwOjA5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICBUcml2aWFsIGNvbW1lbnQgZml4OiBzbm1wSVB2NkJhc2VEb21haW4uYyBjb250YWlucyBJUHY2IGJhc2UKICAgdHJhbnNwb3J0IHN1cHBvcnQgZnVuY3Rpb25zIGluc3RlYWQgb2YgSVB2NC4KCjIwMTEtMDMtMDIgMTk6MTAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWI6CgogICBBZGRlZCBzbm1wc21fc2h1dGRvd24uaCB0byB0aGUgU3VidmVyc2lvbiBpZ25vcmUgbGlzdCBiZWNhdXNlCiAgIGl0J3MgYSBnZW5lcmF0ZWQgZmlsZS4KCjIwMTEtMDMtMDIgMTU6NTggIGJ2YXNzY2hlCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBmaWxlLgoKMjAxMS0wMy0wMiAxNTo1MiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCB3aW4zMi9zbm1wc21fc2h1dGRvd24uaCwgIAogICAgICAgd2luMzIvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBWaXN1YWwgU3R1ZGlvIGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlCiAgICJmZWF0dXJlIiBmZWF0dXJlLgoKMjAxMS0wMy0wMiAxNTo0OCAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcHNtX2luaXQuaDoKCiAgIFJlbW92ZWQgYSBtaXNsZWFkaW5nIGNvbW1lbnQuCgoyMDExLTAzLTAyIDA4OjQwICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIENvcnJlY3QgdGhlIGNoZWNrIG9mIHdldGhlciB1c20gc2VjdXJpdHkgaXMgZW5hYmxlZC4KICAgUmVnZW5lcmF0ZSBjb25maWd1cmUuCgoyMDExLTAzLTAyIDA4OjM5ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZQoKMjAxMS0wMy0wMiAwODoyMSAgbWFnZnIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzCgoyMDExLTAzLTAyIDA3OjE5ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIElnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljCgoyMDExLTAzLTAyIDA3OjE5ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgU3BsaXQgdGhlIGNvbnRhaW5lcl9jb21wYXJlX2Z1bmN0aW9ucyBmZWF0dXJlIGludG8KICAgY29udGFpbmVyX2NvbXBhcmVfbWVtLAogICBjb250YWluZXJfY29tcGFyZV9sb25nLCBjb250YWluZXJfY29tcGFyZV91bG9uZywKICAgY29udGFpbmVyX2NvbXBhcmVfaW50MzIgYW5kCiAgIGNvbnRhaW5lcl9jb21wYXJlX3VpbnQzMgogICBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9ucyBmdXJ0aGVyLgoKMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENoYW5nZSB0aGUgc3BlbGxpbmcgb2YgdGhlIGNvbnRhaW5lcl9jb21wYXJlX2NzdHJpbmcgZmVhdHVyZSB0bwogICBjb250YWluZXJfbmNvbXBhcmVfY3N0cmluZyBhcyB0aGF0IGlzIHRoZSBmdW5jdGlvbiB0aGF0IGlzCiAgIGd1YXJkZWQgYnkgdGhhdAogICBhdHRyaWJ1dGUuCgoyMDExLTAzLTAyIDA3OjE3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEFkZCB0aGUgbWlzc2luZyByZXBsYWNlbWVudCBtYWNybyBmb3Igc25tcF9pbml0X3N0YXRpc3RpY3MKCjIwMTEtMDMtMDIgMDc6MTYgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljX2J5IHRha2VzIHR3byBhcmd1bWVudHMgc28gbGV0IHRoZQogICByZXBsYWNlbWVudCBtYWNybwogICB0YWtlIHR3byBhcmd1bWVudHMgYXMgd2VsbC4KCjIwMTEtMDItMjcgMTM6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzoKCiAgIEZpeCB0eXBvIGluIHIxOTk5MAoKMjAxMS0wMi0yNiAxMDo1MyAgbWFnZnIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrOgoKICAgUmVtb3ZlIGxpbmVzIHN0YXJ0aW5nIHdpdGggI2RlZmluZSBpbiB0aGUgb3V0cHV0IG9mIHRoZQogICBwcmVwcm9jZXNzb3IKICAgV2hlbiBnY2MgLUUgaXMgY2FsbGVkIHdpdGggLWdnZGIzIChvciAtZEQpIHRoZW4gYWxsIHRoZSBtYWNybwogICBkZWZpbml0aW9ucyBhcmUKICAgcGFzc2VkIHRocm91Z2ggdGhlIHByZXByb2Nlc3NvciBhbmQgdGhhdCBtZXNzZXMgdXAgb3VyCiAgIHByb2Nlc3NpbmcuCgoyMDExLTAyLTI2IDEwOjUyICBtYWdmcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFB1dCB0aGUgZ2VuZXJhdGVkIGZpbGUgaW4gdGhlIGJ1aWxkIHRyZWUsIG5vdCB0aGUgc291cmNlIHRyZWUuCgoyMDExLTAyLTI2IDAxOjIzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIG1vdmVkIGEgYnVuY2ggb2YgZmVhdHVyZXMgaW50byB0aGUgbGlibmV0c25tcG1pYnMgZmVhdHVyZSBzZXQuCgoyMDExLTAyLTI2IDAxOjIyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cywgc25tcGxpYi9taWIuYzoKCiAgIGNsYXNzaWZpZWQgbGlibmV0c25tcGFnZW50IGZlYXR1cmVzCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBsaWJyYXJpZXMgKHNubXBsaWIgZmlyc3QpCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIG91dHB1dCBjbGVhbnVwIGFuZCBhZGRlZCBhZ2VudC1taWJzIGFuZCBsb2dnaW5nIG9wdGlvbnMKCjIwMTEtMDItMjYgMDE6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgYWRkIGEgZGVmYXVsdCBzZXQgb2YgYXJndW1lbnRzCiAgIGNhbGN1bGF0ZSByZXN1bHRpbmcgc2l6ZXMKCjIwMTEtMDItMjYgMDE6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBBZGRlZCBhIG1pc3NpbmcgOwoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBwcmVmaXggdGhlIG91dHB1dCBmaWxlcyB3aXRoIGEgbnVtYmVyIHRvIGluZGljYXRlIG9yZGVyCgoyMDExLTAyLTI2IDAxOjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHN5c3RlbSBleGVjdXRpb25zCgoyMDExLTAyLTI2IDAxOjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGVuYWJsZSBidWlsZGluZyBvZiB0aGUgcmVzdWx0aW5nIGNvbWJpbmF0aW9ucwogICBBZGQgYSAtbiBmbGFnIGZvciBkcnktcnVucwoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBlbmFibGUgdGhlIC10IHRhZyBmb3IgbGltaXRpbmcgdHlwZXMKCjIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgQWRkZWQgYXJndW1lbnQgcGFyc2luZyBhbmQgYXJndW1lbnRzIGZvciBzZWxlY3RpbmcgYW5kIGxpc3RpbmcKICAgdHlwZXMKCjIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZ2VuZXJhdGUgY29uZmlndXJlIHNjcmlwdCBhcmd1bWVudHMgZnJvbSBzcGVjcwoKMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBhZGRlZCBhIGJ1bmNoIG9mIG5ldyBmZWF0dXJlIG9wdGlvbnMgYW5kIGNsZWFuZWQgdXAgYSBiaXQKCjIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgYWRkZWQgYSBuZXcgKG5vdCB5ZXQgd29ya2luZykgc2NyaXB0IHRvIHRlc3Qgc2l6aW5nIG9mIHZhcmlvdXMKICAgYXJndW1lbnQgc2V0cwoKMjAxMS0wMi0yNiAwMDoyNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFNpbXBsaWZ5IHRoZSBjb2RlLiBVbmlmeSBzb21lIGRlYnVnIGxvZ3MuCgoyMDExLTAyLTI2IDAwOjE5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUmVkdWNlIHRoZSBzY29wZSBvZiBhIGZldyB2YXJpYWJsZXMKCjIwMTEtMDItMjYgMDA6MTYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMuCgoyMDExLTAyLTI2IDAwOjE1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBpbml0aWFsaXplL3VuaW5pdGlhbGl6ZSBtb2R1bGVzIHdpdGggNjQKICAgY2hhcmFjdGVyIG5hbWVzIGFuZCBub3Qgc3VmZmVyIHdpbGQgd3JpdGVzLgoKMjAxMS0wMi0yNiAwMDoxMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENvZGUgcmVzdHJ1Y3R1cmluZyAtIHB1dCB0aGUgbWFuYWdlZCByb3V0aW5lcyBiZWZvcmUgdGhlCiAgIG1hbmFnbWVudCBjb2RlLgoKMjAxMS0wMi0yNiAwMDoxMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXBtaWJzOiBNYWtlIGFsbCBmdW5jdGlvbnMgaW4gdGhlIGRsbW9kIG1vZHVsZQogICB0aGF0IGRvbid0IGhhdmUgdG8gYmUgcHVibGljIHN0YXRpYwoKMjAxMS0wMi0yNiAwMDowNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFJlbmFtZSBkZWluaXRfZGxtb2QgdG8gc2h1dGRvd25fZGxtb2QgYXMgdGhhdCBpcyB3aGF0IGl0IHJlYWxseQogICBpcyBhYm91dC4KCjIwMTEtMDItMjUgMTg6MjQgIGJhZXJtCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6CgogICBhZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMgdG8gbmV0LXNubXAtdmFjbSBtaWIKCjIwMTEtMDItMjUgMTY6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIHByb3Blcmx5IGhhbmRsZSB0d2luIGNoaWxkcmVuOyBhbHNvIHNvcnQgdGhlIGNoaWxkIGxpc3QKICAgYWxwaGFiZXRpY2FsbHkuCgoyMDExLTAyLTI1IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSSBzdXBwb3NlIGxvZ2dpbmcgc2hvdWxkIHByb2JhYmx5IGRlZmF1bHQgdG8gYmVpbmcgYSB3YW50ZWQKICAgb3B0aW9uIDotKQoKMjAxMS0wMi0yNSAxNjowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgb3JnLWxpbmsgdGhlIGZpbGVzIGluIHRoZSBvdXRwdXQKCjIwMTEtMDItMjUgMTY6MDggIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5ydWxlcywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtYWtlIHRoZSBmZWF0dXJlcy1jaGVjayBzY3JpcHQgdHJhY2sgdGhlIGZ1bGwgc291cmNlIHBhdGgKCjIwMTEtMDItMjUgMTY6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIGNoYW5nZSB0aGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggdGhhdCBpdCdzIHByaW50aW5nIHRvIG9yZy1tb2RlCiAgIGF0IHRoZSBtb21lbnQuCgoyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90b29scy5jOgoKICAgbGFzdCBvZiB0aGUgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBpbiBsaWJuZXRzbm1wCgoyMDExLTAyLTI1IDE2OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgbWFrZSB0aGUgdXNtX3N1cHBvcnQgdXRpbGl0aWVzIHNlbGYtZGVjbGFyZSB0aGVtc2VsdmVzIGFzCiAgIGNoaWxkcmVuIHRvCiAgIG1ha2Ugc3VyZSB0aGV5J3JlIHByb3Blcmx5IGluY2x1ZGVkIGR1cmluZyBkZXBlbmRlbmN5IG9yZGVyaW5nCgoyMDExLTAyLTI1IDE2OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgICAKICAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIHN1cGVyc3RydWN0dXJhbGl6YXRpb25pemluZyB0aGUgZmVhdHVyZXMKCjIwMTEtMDItMjUgMTY6MDcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAKICAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zeXN0ZW0uYywgCiAgICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc2lnbmlmaWNhbnQgcGFyZW50L2NoaWxkIGZlYXR1cmUgY2xhc3NpZmljYXRpb24KCjIwMTEtMDItMjUgMTY6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBjbGFzc2lmeSBhIGZldyBjb21wb25lbnRzIGludG8gYSB0b3AtbGV2ZWwgbGlibmV0c25tcCBjb21wb25lbnQKCjIwMTEtMDItMjUgMTY6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYzoKCiAgIHN0cnVjdHVyaXplIHRoZSB1c20gZmVhdHVyZXMKCjIwMTEtMDItMjUgMTY6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgc3RydWN0dXJlIHRoZSBjb250YWluZXIgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeQoKMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGdyb3VwIHRoZSBsb2dnaW5nIGhhbmRsZXJzIHVuZGVyIGEgcGFyZW50IGZlYXR1cmUKCjIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIGZpeCB0aGUgZXhwZWN0IGFyZ3VtZW50IGNvdW50CgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBmaXggdGhlIG5hbWUgb2YgdGhlIGV4cGVjdGVkIGlucHV0IGZpbGUKCjIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIGFyZ3VtZW50IHBhcnNpbmcgYW5kIHVzYWdlKCkgb3V0cHV0CgoyMDExLTAyLTI1IDE2OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgLSBhZGRlZCB0d28gb2lkX3N0YXNoIGZ1bmN0aW9ucyBhcyBpbmRpdmlkdWFsIGZlYXR1cmVzCiAgIC0gY2xlYW5lZCB1cCBzb21lIHdhcm5pbmdzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBjb2RlCgoyMDExLTAyLTI1IDEyOjU1ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgIAogICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoCiAgIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzCiAgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKiBicmFuY2hlcywgcmF0aGVyCiAgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKQoKMjAxMS0wMi0yNSAxMToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdCBhdmFpbGFibGUgb3Igc2V0LgoKMjAxMS0wMi0yNSAwMDo0MCAgYmFlcm0KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaDoKCiAgIGFkZGluZyBpZmRlZiBjb2RlIGZvciBtaW5pbWFsaXN0IHN1cHBvcnQgb2YgZGlmZm1hbiBtaWIKCjIwMTEtMDItMjQgMTk6MjEgIGJhZXJtCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oOgoKICAgQWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIGhvc3QgcmVzb3VyY2UgbWliCgoyMDExLTAyLTI0IDA1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBtYXJrIHRoZSBkYXRhX2xpc3QgZnVuY3Rpb24gdGhhdCdzIG9ubHkgdXNlZCBpbiBzdGFjaF9jYWNoaW5nIGFzCiAgIGEgZmVhdHVyZQoKMjAxMS0wMi0yNCAwNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgd2hvb3BzLgoKMjAxMS0wMi0yNCAwNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgbW9yZSBtaXNzaW5nIHN0YXNoIHJlZmVyZW5jZXMKCjIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGlmZGVmZWQvZmVhdHVyZWQgb3V0IGEgbWlzc2luZyBzdGFzaF9jYWNoZSBzZWN0aW9uCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBtYWtlIHRoZSBwcmVmaXhfaW5mbyBtb3JlIGhpZXJhcmNoaWNhbCBhbmQgc3ViLWZlYXR1cmUgdGhlIHVudXNlZAogICBvbmUKCjIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKCiAgIGRvIGluY2x1ZGUgdGhlIHBlcmwvcHl0aG9uIGNvZGUgd2hlbiBzZWFyY2hpbmcgZm9yIGZpbGVzCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBtYWtlIHRoZSBzZW1pLXVzZWQgdGFibGVfdGRhdGEgZnVuY3Rpb25zIGNoaWxkcmVuIG9mCiAgIHRhYmxlX3RkYXRhX2FsbAogICBpbnN0ZWFkIG9mIGp1c3QgdGFibGVfdGRhdGEKCjIwMTEtMDItMjMgMjI6MDAgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIENvcnJlY3QgdHlwbwoKMjAxMS0wMi0yMyAyMTo1NCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ29ycmVjdCB0eXBvCgoyMDExLTAyLTIzIDIxOjEwICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBwcm9wZXIgaW5jbHVkZSBvZiBwcm90b3R5cGUKCjIwMTEtMDItMjMgMjE6MDcgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGNvbXBhdCBzb21lIGZlYXR1cmUgaGVhZGVyIGNoaWNrZW4gYW5kIGVnZyBwcm9ibGVtcwoKMjAxMS0wMi0yMyAxNToyNyAgbmJhCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCgoyMDExLTAyLTIzIDE1OjIzICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKCjIwMTEtMDItMjMgMTU6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIEVuYWJsZSAocHJvYmFibHkgZm9yZ290dGVuKSBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAxMS0wMi0yMyAxNDozMCAgaGFyZGFrZXIKCiAgICogIGxvY2FsL21pbmltYWxpc3QsIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjaywgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGUsICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgYWRkZWQgb3RoZXIgbWlzc2luZyAnbmV3JyBmaWxlcyBub3QgaW5jbHVkZWQgaW4gdGhlIG1pbmltYWxpc3QKICAgcGF0Y2ggZmlsZQoKMjAxMS0wMi0yMyAwOTo1NCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jOgoKICAgTG9hZGluZyBJUHY2IGRhdGEgaXMgYSBuby1ubyB3aGVuIElQdjYgbm90IGVuYWJsZWQKCjIwMTEtMDItMjMgMDk6MzYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4IGNvbnRhaW5zIDoKICAgY2hhcmFjdGVyCgoyMDExLTAyLTIzIDA5OjMwICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEZyZWVCU0QgOCBzdXBwb3J0CgoyMDExLTAyLTIzIDAxOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg6CgogICBhZGRlZCBtaXNzaW5nIG5ldC1zbm1wLWZlYXR1cmVzLmgKCjIwMTEtMDItMjMgMDA6MDEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgCiAgICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwgICAKICAgICAgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgCiAgICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3RleHRfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGU6CgogICBORVdTOiBwYWNrYWdpbmc6IEVuYWJsZSBtaWNyby1hbmQtbWFjcm8tZmVhdHVyZSBtYW5hZ2VtZW50IHdpdGhpbgogICBOZXQtU05NUDsgdGhpcyBhZGRzIGEgbnVtYmVyIG9mIG5ldyBmbGFncyB0byBjb25maWd1cmUKICAgKC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kIC0tZW5hYmxlLXJlYWQtb25seSkuIFRoZXNlIGNoYW5nZXMgYXJlCiAgIGRlc2lnbmVkIHRvIHJlbW92ZSBtdWNoIG9mIHRoZSBpbmxpbmUgY29kZSB0aGF0IGlzbid0IGFsd2F5cwogICBuZWNlc3Nhcnkgb3IgZGVzaXJlZC4gU2NyaXB0cyBleGlzdCAoYW5kIHdpbGwgYmUgaW1wcm92ZWQpIHRvCiAgIHN0aXAgb3V0IHVudXNlZCBjb21wb25lbnRzIGZyb20gdGhlIGNvZGUgZW50aXJlbHkgdG8gZW5hYmxlIGEKICAgc2hvcnRlciByZXZpZXcgcHJvY2VzcyBmb3IgdXBncmFkaW5nIHRvIG5ldyByZWxlYXNlcy4gVGhpcyB3b3JrCiAgIHdhcyBkb25lIGJ5IFdlcyBIYXJkYWtlciBhbmQgTWljaGFlbCBCYWVyIGZyb20gU1BBUlRBLCBJbmMuIGJ1dAogICBpcyBiZWluZyBjaGVja2VkIGluIGFzIGEgbGFyZ2UgcGF0Y2ggc2luY2UgY29udmVydGluZyB0aGUgbWljcm8KICAgcGF0Y2hlcyBmcm9tIGdpdCB0byBzdm4gdHVyZW5kIG91dCB0byBiZSBpbXBvc3NpYmxlCgoyMDExLTAyLTIyIDIzOjU1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICB1c2UgdGhlIHdpa2kgVVJMIGluc3RlYWQgb2YgdGhlIHR1dG9yaWFsLTUgVVJMIGZvciB0aGUgc25tcHRyYXAKICAgdHV0b3JpYWwKCjIwMTEtMDItMjEgMjI6NDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6CgogICBwcm9wZXIgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QKCjIwMTEtMDItMjEgMjI6MzkgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZQoKMjAxMS0wMi0yMSAyMjoyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcwoKMjAxMS0wMi0yMSAyMjoxNiAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKCjIwMTEtMDItMjEgMjI6MDUgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBQcm9wZXJseSBlbmQgZGVidWcgbWVzc2FnZSB3aXRoIG5ld2xpbmUKCjIwMTEtMDItMjEgMjI6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIHJlbW92ZSB2YXIgdGhhdCBzaGFkb3dzIHRoZSB1c2VmdWwgb25lCgoyMDExLTAyLTIxIDIyOjAyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgbWFqb3IgZmlkZGxpbmcgdG8gZ2V0IHRoaW5ncyB3b3JraW5nIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQKICAgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUgdGNwLW1pYi91ZHAtbWliL2RhdGFfYWNjZXNzCgoyMDExLTAyLTIxIDIxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIGZpeCB0Y3Agc3RhdGVzIGZvciBkcmFnb25mbHlic2QKCjIwMTEtMDItMjEgMjE6NTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgZW5hYmxlIG5ldyB0Y3AvdWRwIG1pYnMgZm9yIHNvbGFyaXMKCjIwMTEtMDItMjEgMjE6NTMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmM6CgogICBEbyBub3QgdXNlIGM5OQoKMjAxMS0wMi0yMSAxOTowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBVcGRhdGVkIGNvbW1lbnQgYWJvdXQgd2hlcmUgbWFrZXJlbGVhc2UgY29tZXMgZnJvbSAobm93IGdpdGh1YikKCjIwMTEtMDItMjAgMDk6MjQgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxODU1Mjg6IHNodXRkb3duX21hc3Rlcl9hZ2VudCBkb2Vzbid0IGNsb3NlCiAgIFVEUCBzb2NrZXQKICAgKEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gcjE5NTExLikKCjIwMTEtMDItMTggMTQ6NDMgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJld29ya2VkIGhyU3RvcmFnZVRhYmxlIHRvIHN1cHBvcnQgbGFyZ2UKICAgZmlsZXN5c3RlbXMuCiAgIAogICBUaGUgaHJTdG9yYWdlQWxsb2NhdGlvblVuaXRzIGRvZXMgbm90IHJlcG9ydCByZWFsIGFsbG9jYXRpb24gdW5pdAogICBzaXplLAogICBidXQgc29tZSBjYWxjdWxhdGVkIHZhbHVlIHNvIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyAqCiAgIGhyU3RvcmFnZVNpemUKICAgZ2l2ZXMgcmVhbCBzaXplIG9mIHRoZSBmaWxlc3lzdGVtLgogICAKICAgVGhpcyBjYWxjdWxhdGlvbiBoYXBwZW5zIG9ubHkgd2hlbiBoclN0b3JhZ2VTaXplIGlzIHRvbyBzbWFsbAogICAoMzJiaXRzKQogICBmb3IgZmlsZXN5c3RlbSBzaXplLCBlLmcuIGZpbGVzeXN0ZW1zIGxhcmdlciB0aGFuIDhUQiB3aXRoIDQwOTYKICAgYnl0ZXMKICAgYmxvY2sgc2l6ZS4KICAgCiAgIFRoaXMgY2FsY3VsYXRpb24gY2FuIGJlIHR1cm5lZCBvZmYgYnkgJ3JlYWxTdG9yYWdlVW5pdHMnIGNvbmZpZwogICBvcHRpb24uCgoyMDExLTAyLTE4IDE0OjI5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgQWRkIEpGUyBhbmQgWEZTIHRvIGxpc3Qgb2Yga25vd24gZmlsZXN1c3RlbXMKCjIwMTEtMDItMTcgMTE6MjggIGpzYWZyYW5lawoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBGaXhlZCBzbm1wLWJyaWRnZS1taWIgaW4gc3RhbmRhbG9uZSAoYWdlbnR4KSB2ZXJzaW9uLgogICBEb24ndCBkZWNsYXJlIGxvY2FsIHZhcmlhYmxlcyBpbnNpZGUgYmxvY2suIFBhdGNoIHByb3ZpZGVkIGJ5CiAgIEplbnMgT3N0ZXJrYW1wLgoKMjAxMS0wMi0xNiAxNDo1NiAganNhZnJhbmVrCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIEZpeGVkIHNubXAtYnJpZGdlLW1pYiB3aGVuIHdvcmtpbmcgaW4gdGhlIGVtYmVkZGVkIHBlcmwuCgoyMDExLTAyLTE2IDEzOjE2ICBqc2FmcmFuZWsKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgRml4ZWQgR0VUTkVYVCBwcm9jZXNzaW5nIGluIHNubXAtYnJpZGdlLW1pYi4KCjIwMTEtMDItMTUgMjI6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgUHJvcGVybHkgc2F2ZSBlbnRyaWVzIGZvciBOZXRCU0QgYW5kIERyYWdvbkZseQoKMjAxMS0wMi0xNSAyMjoxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlcwoKMjAxMS0wMi0xNSAyMTo0NiAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKCjIwMTEtMDItMTUgMjE6MzMgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGluY2x1ZGUgc3lzL3R5cGVzLmggYmVmb3JlIHN5cy9zb2NrZXQuaAoKMjAxMS0wMi0xNSAyMToyNiAgbmJhCgogICAqIG00L25ldHNubXBfc2VhcmNoX2xpYnMubTQ6CgogICBUb28gbXVjaCBxdW90aW5nIGlzIGJhZAoKMjAxMS0wMi0xNSAyMToxMSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIEZpeCBJUHY2IFRDUCBhbmQgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0CgoyMDExLTAyLTE1IDIwOjQ1ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jOgoKICAgS2lsbCBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wMi0xNSAyMDo0NCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBGaWx0ZXIgSVB2NiBlbnRyaWVzIGZyb20gSVB2NCB0YWJsZQoKMjAxMS0wMi0xNSAyMDo0MiAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzoKCiAgIFByb3BlciB1c2Ugb2YgZ2V0cHJvYzIgYW5kIGRyYWdvbmZseSBzdXBwb3J0CgoyMDExLTAyLTE1IDIwOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzoKCiAgIGdldHZmc3N0YXQgaXMgb25seSBmb3IgTmV0QlNECgoyMDExLTAyLTE1IDIwOjM5ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBEZXRlY3QgbmVlZCBmb3IgLWxrdm0gaW4gcHJvcGVyIHRpbWUKCjIwMTEtMDItMTUgMTk6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICByZW1vdmUgdGhlIHN0YXRlbWVudCBhYm91dCBlbmFibGluZyBzdGRlcnIgYnkgZGVmYXVsdC4KCjIwMTEtMDItMTUgMTk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVtb3ZlIDMgZnVuY3Rpb25zIHRoYXQgYXMgZmFyIGFzIEkgY2FuIHRlbGwgaGF2ZSBwb3NzaWJseSBuZXZlcgogICBiZWVuIHVzZWQKCjIwMTEtMDItMTQgMTQ6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXhlZCBhIE1pbkdXLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDExLTAyLTEzIDE2OjI4ICBtYWdmcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcKICAgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KCjIwMTEtMDItMTAgMTU6MTMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTY1ODc4OiBDYXRjaCBidWZmZXIgb3ZlcnJ1biBvbgogICA2NC1iaXQgc3lzdGVtcwoKMjAxMS0wMi0xMCAxNTowNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE1MjQxMjogSGFuZGxlIChhbmQgcmVwb3J0KSBwcm9ibGVtcwogICByZWFkaW5nIC9wcm9jL3Ztc3RhdAoKMjAxMS0wMi0wOSAwNzozNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgQnVpbGRpbmcgRExMIGFuZCBQZXJsIG1vZHVsZXMgd2l0aCB3aW4zMi9idWlsZC5iYXQgd29ya3MgYWdhaW4uCgoyMDExLTAyLTA4IDE5OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIFJlbW92ZSB0aGUgZnVuY3Rpb25zIG1hcmtlZCBhcyBkZXByZWNhdGVkIGFuZCBzYWZlIGZvciByZW1vdmFsIGluCiAgIDUuNi4KCjIwMTEtMDItMDggMTc6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggZnJvbSBNYXJ0aW4gQnVjazogZG9uJ3QgYWx3YXlzIG9wZW4gc3RkZXJyCiAgIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUKICAgYWdlbnQgd2hlbiBlbWJlZGRlZAoKMjAxMS0wMi0wOCAxNzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeCBhIHN0cmxlbiBjYWxjdWxhdGlvbiBhcyBwb2ludGVkIG91dCBieQogICBLb25zdGFudGluIEJheWRhcm92CgoyMDExLTAyLTA3IDIwOjA3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIDMgbmV3IFNTSCBjb25maWcgdG9rZW5zCgoyMDExLTAyLTA3IDIwOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcDogbWFkZSB0aGUgU1NIIHRyYW5zcG9ydCBjb25maWd1cmFibGUgYXMgaXQKICAgc2hvdWxkIGJlLgoKMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIEFkZGVkIGRlZmF1bHRfc3RvcmUgc3RyaW5ncyBmb3Igc3NoOiB1c2VybmFtZSwgcHVia2V5LCBwcml2a2V5CgoyMDExLTAyLTA2IDA2OjM0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBTaW1wbGlmeSB0aGUgY29udHJvbCBmbG93IHRvIGFsbG93IGZvciBtb3JlIG9wdGltaXphdGlvbi4KCjIwMTEtMDItMDMgMjI6NDIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdAogICB3b3JrCgoyMDExLTAyLTAyIDA3OjA5ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSW5jbHVkZSB0aGUgVVNJTkdfIHZhcmlhYmxlcyBmcm9tIHRoZSBhZ2VudCBsaWJyYXJ5IGFzIHdlbGwsIGluCiAgIHBhcnRpY3VsYXIgdGhlCiAgIFVTSU5HX0FHRU5UWF8qIHZhcmlhYmxlcy4KCjIwMTEtMDItMDEgMTM6MDcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBEb24ndCBjaGVjayBmb3IgMzIvNjRiaXQgd3JhcCBpbiBjYWxjdWxhdGVkIGVudHJpZXMuCgoyMDExLTAyLTAxIDA5OjQxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwKICAgYnV0IHByZXYhPW5ldycgaW4gc3lzbG9nIHdoZW4gY29tcHV0aW5nIGlwU3lzdGVtU3RhdHMKICAgCiAgIFdpdGhvdXQgdGhlIG1lbWNweSwgcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkCiAgIGdldCBkaWZmZXJlbnQsCiAgIHdoaWNoIGNvdWxkIG11Y2ggbXVjaCBsYXRlciAod2hlbiBhIGNvdW50ZXIgZ2V0cyBiaWdnZXIgdGhhbiAzMgogICBiaXRzKSByZXN1bHQKICAgaW4gJ3ByZXYhPW5ldycgbWVzc2FnZSBpbiBzeXNsb2cuIFR5cGljYWxseSB0aGlzIGhhcHBlbnMgYWZ0ZXIKICAgbG9uZyB0aW1lIG9mCiAgIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KCjIwMTEtMDItMDEgMDc6MTkgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMKCjIwMTEtMDEtMzEgMjI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzoKCiAgIGFkZHByb3RvdHlwZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFycwoKMjAxMS0wMS0zMSAyMjozNyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIGNvbnN0IGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwoKMjAxMS0wMS0zMSAyMjozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZGlza2lvIGZvciBkcmFnb25mbHkKCjIwMTEtMDEtMzEgMjI6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmM6CgogICBwcm9wZXJseSBuYW1lIGluaXRhbGl6ZXIgZnVuY3Rpb24gZm9yIGNwdV9raW5mbwoKMjAxMS0wMS0zMCAxNToyMSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBSZWR1Y2UgdGhlIG51bWJlciBvZiB1c2VkIGluY2x1ZGUgZmlsZXMuCgoyMDExLTAxLTMwIDA5OjM1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24KCjIwMTEtMDEtMzAgMDE6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKICAgcmVhZCBpbiBkaXNraW8KCjIwMTEtMDEtMjkgMjM6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIE5FV1M6IHNubXBkOiBCVUc6IDMxNjY1Njg6IGhyU3lzdGVtUHJvY2Vzc2VzIG1pc3NpbmcgaW4gNS42LzUuNi4xCgoyMDExLTAxLTI3IDA5OjM1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWZ0ZXIgdGVuIHllYXJzIGludGVuc2l2ZSB1c2UsIGFuICJleHBlcmltZW50YWwiCiAgIGZlYXR1cmUgY2FuIHByb2JhYmx5IGJlIHJlbGVhc2VkIGZvciBnZW5lcmFsIHVzZS4KCjIwMTEtMDEtMjYgMTY6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZAogICBpbiB0aGUgY29tbWVudHMuCgoyMDExLTAxLTI2IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjdzbm1wdjNEZWZhdWx0c19zaW1wbGU6CgogICBhIHRlc3QgdG8gZW5zdXJlIHYzL1VTTSBzbm1wLmNvbmYgc2V0dGluZ3Mgd29yawoKMjAxMS0wMS0yNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICByZW1vdmUgdGVzdG9wdHMKCjIwMTEtMDEtMjYgMDk6MTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFyZSByYWNlIGNvbmRpdGlvbiB3aGVuIGNvdW50aW5nIHByb2Nlc3NlcwogICBmb3IgVUNELVNOTVAtTUlCOjpwclRhYmxlCiAgIAogICBUaGUgWFggcHJvY2VzcyBjYW4gZXhpdCBhZnRlciBmb3BlbigvcHJvYy9YWC9zdGF0dXMpIGFuZCBiZWZvcmUKICAgZmdldHMoKSBmcm9tIGl0LiBzbm1wZCBzaG91bGQgY29udGludWUgd2l0aCBvdGhlciBwcm9jZXNzZXMgYW5kCiAgIG5vdCB0byBzdG9wLgoKMjAxMS0wMS0xOSAxMzo1NyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOgoKICAgTWFrZSB1cyBjb21wYXRpYmxlIHdpdGggcnBtLTQuOSwgcnBtR2V0RmlsZXN5c3RlbUxpc3QgZG9lcyBub3QKICAgZXhpc3QgYW55bW9yZSwgc28gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc2hvdWxkIG5vdCBjaGVjayBpdC4KCjIwMTEtMDEtMTkgMDY6MzEgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CgogICBkaXNrSU9MQXggcmVxdWlyZXMgZXhwIHdoaWNoIG1heSByZXF1aXJlIC1sbQoKMjAxMS0wMS0xOCAyMjozOSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhdXRvaGVhZGVyCgoyMDExLTAxLTE4IDIyOjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgRmluZCBwcm9wZXIgaWYtbWliIGludGVyZmFjZSBmb3IgTmV0QlNECgoyMDExLTAxLTE4IDIyOjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgdHlwbwoKMjAxMS0wMS0xOCAyMjozNSAgbmJhCgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgZHJhZ29uZmx5aWQKCjIwMTEtMDEtMTQgMTM6MjQgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBBZGQgSVB2NiBzdXBwb3J0IGZvciBjcmVhdGluZyByb3dzIGluIGlwQWRkcmVzc3RhYmxlLgogICAKICAgVXNpbmcgU05NUCBTRVQsIGl0IGlzIG5vdyBwb3NzaWJsZSB0byBjcmVhdGUgYW5kIGRlc3Ryb3kgSVB2NgogICBhZGRyZXNzZXMgb24gYW4gaW50ZXJmYWNlLgoKMjAxMS0wMS0xNCAxMjoyOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gUm9iZXJ0IFN0b3J5OiBmaXhlZCBhZGRpbmcgbmV3IGFkZHJlc3NlcyB0bwogICBpcEFkZHJlc3NUYWJsZQogICAKICAgTG9uZyB0aW1lIGFnbywgdGhlcmUgd2FzIGEgYnVncmVwb3J0WzFdIHJlZ2FyZGluZyBpcEFkZHJlc3NUYWJsZQogICBvbgogICBuZXQtc25tcC1jb2RlcnMgbGlzdCBhbmQgcnN0b3J5J3MgZXhwZXJpbWVudGFsIHBhdGNoIHdpdGhvdXQgYW55CiAgIGZlZWRiYWNrLgogICBOb3cgSSd2ZSBnb3QgZmV3IGNvbXBsYWludHMgdGhhdCBTTk1QIFNFVCBvbiBpcEFkZHJlc3NUYWJsZQogICBwcm9kdWNlcyB0aGUKICAgc2FtZSBlcnJvcnMgYW5kIGd1ZXNzIHdoYXQsIHRoZSBwYXRjaCBmaXhlcyB0aGVtLgogICAKICAgWzFdOgogICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD90aHJlYWRfbmFtZT0yMDA2MDkyMDEzNDkzNS4zNWIzNmVkNiU0MGRldi5mdXR6Lm9yZyZmb3J1bV9uYW1lPW5ldC1zbm1wLWNvZGVycwoKMjAxMS0wMS0xNCAwNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgcmVtb3ZlIGNvbXBsZXRlbHkgdXNlbGVzcyBhbmQgbm9uc2Vuc2ljYWwgY29kZQoKMjAxMS0wMS0xMyAxNzoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWxsb2NhdGUgc3BhY2UgZm9yIGFycmF5IE5VTEwgdGVybWluYXRpb24KCjIwMTEtMDEtMTMgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgRW5zdXJlIHJlbGVhc2VzIGFyZSBpbnN0YWxsZWQgdG8gdGhlIGNvcnJlY3QgcGF0aCB3aXRoaW4gdGhlCiAgIC90YWdzIFNWTiB0cmVlCgoyMDExLTAxLTEzIDE1OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmM6CgogICBSZW1vdmUgQysrIGNvbW1lbnRzCgoyMDExLTAxLTEzIDEzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBGaXggYnJva2VuIHBhdGNoCgoyMDExLTAxLTEzIDEyOjE0ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOgoKICAgQ29uZmlndXJlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAoKMjAxMS0wMS0xMyAxMjowNCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RyYWdvbmZseS5oOgoKICAgQ29kZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKCjIwMTEtMDEtMTMgMTE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6CgogICBGaXggdHlwbwoKMjAxMS0wMS0xMiAyMToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIG1lcmdlIGR1cGxpY2F0ZWQgc2h1dGRvd24gZnVuY3Rpb25zCgoyMDExLTAxLTEyIDIwOjExICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBSZWltcGxlbWVudCBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMigpIGJ5IGFkZGluZyB0aGUgZmxhZwogICBORVRTTk1QX0lURVJBVE9SX09XTlNfSUlORk8gZm9yCiAgIG5ldHNubXBfaXRlcmF0b3JfaW5mby4gUmVtb3ZlCiAgIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yX2hhbmRsZXIyKCkgYmVjYXVzZSBpdCBpcyBub3cKICAgc3VwZXJmbHVvdXMuCgoyMDExLTAxLTEyIDE5OjIyICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yCiAgIG5ldHNubXBfY2VydHNfYWdlbnRfaW5pdCgpLgoKMjAxMS0wMS0xMiAxOToyMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYzoKCiAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nIGluCiAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KCjIwMTEtMDEtMTIgMTk6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaCkgdGhhdCB3YXMKICAgaW50cm9kdWNlZAogICBpbiByMTk4MDggKCJzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mCiAgIGNsb3NlZCBzZXNzaW9ucyIpLgoKMjAxMS0wMS0xMiAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXA6IHBhdGNoOiAzMDk2NzI1OiBzeXNPUlRhYmxlIHJlZ2lzdGF0aW9uIGZvcgogICBub3RpZmljYXRpb24gbG9nIG1pYgogICAKICAgb3JpZ2luYWwgcGF0Y2ggZml4ZWQgc2V2ZXJhbCBpc3N1ZXMsIG90aGVyIHBhcnRzIGFwcGxpZWQgZWFybGllcgoKMjAxMS0wMS0xMSAxNzoyNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgZG8gbm90IGluY2x1ZGUgaXB2NiBzdHJ1Y3QgaWYgaXB2NiBpcyBub3QgZW5hYmxlZAoKMjAxMS0wMS0xMSAxNjowNCAgZHRzMTIKCiAgICogb3YvVUNELWZpZWxkcywgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW46CgogICBSZWNvZ25pc2UgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcyAoYW5kIGdlbmVyYWwgdGlkeWluZwogICB1cCkKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgIAogICBRbjogU2hvdWxkIHRoZXNlIGJlIHVwZGF0ZWQgdG8gcmVmZXIgdG8gTmV0LVNOTVAgKHJhdGhlciB0aGFuCiAgIFVDRCk/CgoyMDExLTAxLTExIDE2OjAxICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbWlicy9ORVQtU05NUC1UQy50eHQsICAgCiAgICAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgc2Vkc2NyaXB0LmluOgoKICAgRGVmaW5lIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMKICAgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxNToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIE5ldEJTRCBEcmFnb25GbHkgc3VwcG9ydCBmb3IgVURQICYgVENQIHRhYmxlcwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTQ6NDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIENIQU5HRVM6IE5ldEJTRDogRHJhZ29uRmx5IHN1cHBvcnQKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDE0OjM2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIE5ldEJTRC9EcmFnb25GbHkgJ3N0cnVjdCBpZm5ldCcgcmVxdWlyZXMgS0VSTkVMLCBidXQgbm90IF9LRVJORUwKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgIChJIGhvcGUgSSd2ZSBnb3QgdGhpcyBvbmUgcmlnaHQhKQoKMjAxMS0wMS0xMSAxMzozNCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZnJvbSBCaWxsIEZlbm5lcjogZml4IHNlbmRpbmcgb2YgVURQIHJlc3BvbnNlcwogICBmcm9tIG11bHRpaG9tZWQgYWdlbnRzLgogICAKICAgVHJ5IHRvIHNlbmQgdGhlIHJlc3BvbnNlIGFzIGl0IHdhcyBiZWZvcmUgTmV0LVNOTVAgNS42IChhc3N1bWluZwogICB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdCB3YXMgdW5pY2FzdCkgYW5kIG9ubHkgaWYgaXQgZmFpbHMgdHJ5IHRvCiAgIHNldCBpZl9pbmRleCAodGhlIHJlcXVlc3QgbXVzdCBiZSBicm9hZGNhc3QpLgoKMjAxMS0wMS0xMSAxMzoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUmVhbGx5IGhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJwogICAobWlzc2luZyBlbGVtZW50IGZyb20gU1ZOIHJldmlzaW9uIDE5ODQxKQoKMjAxMS0wMS0xMSAxMjoyNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIEFkZGl0aW9uYWwgaGVhZGVycyB3aGVuIHRlc3RpbmcgZm9yIElQdjYgaGVhZGVycwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTI6MTQgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTWlzc2luZyB0eXBlIHVuZGVyIGRhcndpbgogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTI6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgTmV0QlNEIHN1cHBvcnQgZm9yIERpc2sgSS9PIHN0YXRzCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMjowMSAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnIChyYXRoZXIKICAgdGhhbiBzdHJ1Y3QgdGltZXZhbCkKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDExOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmg6CgogICBQdWxsIGluIGtlcm5lbF9uZXRic2QgbW9kdWxlIHdoZW4gcmVxdWlyZWQKICAgW0Jhc2VkIG9uIGZpeCBmcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgQ0hBTkdFUzogTmV0QlNEOiBSZXRyaWV2ZSBNSUItSUkgbmV0d29yayBzdGF0aXN0aWNzIHZpYSBzeXNjdGwKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDA3OjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4IGZvciBwY2lfbG9va3VwX25hbWUgYW5kIFJIRUw0CgoyMDExLTAxLTEwIDE2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAoVGhlIHBhdGNoIGZyb20gdGhlIE5ldEJTRCBhcmNoaXZlIGFwcGVhcnMgdG8gYmUgZXNzZW50aWFsbHkgdGhlCiAgIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgY29kZSBmcm9tIHRoZSBPcGVuQlNEIHBhdGNoIGFyY2hpdmUpCgoyMDExLTAxLTEwIDE2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTEwIDE0OjU1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzoKCiAgIENIQU5HRVM6IE5ldEJTRDogVXBkYXRlIG1lbW9yeSBhbmQgQ1BVIHN0YXRpc3RpY3MgaGFuZGxpbmcKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTEwIDE0OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBkaXZpZGUtYnktemVybyBlcnJvciBpbiBDUFUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDkgMjI6NTQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBDSEFOR0VTOiBPcGVuQlNEOiBVcGRhdGUgU1dSdW4gY29kZSB0byB1c2Uga3ZtX2dldHByb2MyCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDkgMjE6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDSEFOR0VTOiBidWlsZDogT3BlbkJTRDogRml4IG9yZGVyIG9mIGhlYWRlcnMgd2hlbiBjaGVja2luZwogICA8bmV0aW5ldC9pbl9wY2IuaD4KICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wOSAxOTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIEFtZW5kIGhvdyBtdWx0aS1DUFUgc3RhdGlzdGljcyBhcmUgcmV0cmVpdmVkIHVzaW5nIHN5c2N0bCBvbgogICBPcGVuQlNEIHN5c3RlbXMKICAgKGlmIHRoaXMgYmxvY2sgd2FzIGFjdGl2ZSwgd2hpY2ggaXQgaXNuJ3QsIGJ1dCB0aGF0J3Mgbm90CiAgIGltcG9ydGFudCByaWdodCBub3QpCiAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmUsIGFtZW5kZWQgKHByb2JhYmx5IHdyb25nbHkpIGJ5CiAgIERUU10KCjIwMTEtMDEtMDkgMTg6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYzoKCiAgIHN5c2N0bCB0YWtlcyBhICdzaXplX3QnIHZhcmlhYmxlIGZvciB0aGUgc2l6ZSBwYXJhbWV0ZXIKCjIwMTEtMDEtMDkgMTg6MTEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzoKCiAgIHN5c2N0bCB0YWtlcyBhICdzaXplX3QnIHZhcmlhYmxlIGZvciB0aGUgc2l6ZSBwYXJhbWV0ZXIKCjIwMTEtMDEtMDggMDg6MzAgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXggLS13aXRoLXNlY3VyaXR5LW1vZHVsZXMgaGFuZGxpbmcKICAgQWxsb3cgcmVwZWF0ZWQgbW9kdWxlcyAodHNtLHRzbSkgYXMgd2VsbCBhcyBkZWZhaWx0IG1vZHVsZXMgKHVzbSkKICAgTW92ZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgZmlsZXMgYWZ0ZXIgdGhlIGNoZWNraW5nCgoyMDExLTAxLTA4IDAwOjQ3ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXBkYXRlIGFjY29uZmlnLmggd2l0aCBjaGFuZ2VzIGZyb20gcjE5ODE5LgogICBSZXJ1biBhdXRvaGVhZGVyLgoKMjAxMS0wMS0wNyAyMDo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIENIQU5HRVM6IE9wZW5CU0Q6IFN1cHBvcnQgdXBkYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUKICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAyMDoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFNldCAnbmV4dCcgZmllbGQgZm9yIHVkcCBlbnRyeSBsaW5rZWQgbGlzdCBvbiBPcGVuQlNENAogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgIAogICBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gPG5ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg+CgoyMDExLTAxLTA3IDIwOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFVzZSBhIHN1aXRhYmxlIGNvbnN0YW50IGZvciBDV0QgYnVmZmVyIHNpemUKICAgW0Jhc2VkIG9uIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMjA6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vdmUgZ2xvYmFsIHZhcmlhYmxlIGludG8gdGhlIG1ldGhvZCB3aGVyZSBpdCdzIHVzZWQuCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBIYW5kbGUgc3lzdGVtcyB3aXRob3V0IElGTV9UT0tFTgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE0OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYzoKCiAgIFVwZGF0ZSByZXRyaWV2YWwgb2YgY2FjaGUgdXNhZ2Ugc3RhdGlzdGljcyBvbiBGcmVlQlNECiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTQ6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbmNyZWFzZSBtYXhpbXVtIHNpemUgb2YgZXhlY3V0ZSBvdXRwdXQgY2FjaGUKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNDowOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlIGRpcmVjdGl2ZXMKICAgW0Zyb20gRnJlZUJTRCBwYXRjaGVzIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgUlRGX0xMSU5GTyBpcyBub3QgZGVmaW5lZAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBJbmNsdWRlIHpmcyBtb3VudCBwb2ludHMgZm9yIGRpc2sgcmVwb3J0cyB1bmRlciBGcmVlQlNECiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTM6MzQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaDoKCiAgIFByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZS1pbmNsdXNpb24KICAgW0Zyb20gRnJlZUJTRCBwYXRjaGVzIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjI0ICBkdHMxMgoKICAgKiAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9rZXl0b29scy5jLCAgCiAgICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90b29scy5jOgoKICAgSW5jbHVkZSA8dW5pc3RkLmg+CiAgIFtGcm9tIEJTRCBwYXRjaGVzIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjIxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zLgogICAoUGFydCBvZiBwYXRjaCAjMjk3NTI1NCAtIHNlZSBTVk4gcmV2aXNpb24gMTk4MDgpCgoyMDExLTAxLTA3IDEyOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICBGcmVlQlNEIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgbmFtaW5nIHNjaGVtZSBmb3Igc3RydWN0IGlmcmVxCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMjoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIEVuc3VyZSBUQ1AgdGFibGUgaW5mb3JtYXRpb24gaXMgbG9hZGVkIGJlZm9yZSBjb3VudGluZwogICBjb25uZWN0aW9ucwogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA2IDE5OjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgRml4IGRvY3VtZW50YXRpb24gYnVnIHBvaW50ZWQgb3V0IGluIGNwYW4gYnVnICM1MjYxOAoKMjAxMS0wMS0wNiAxNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZAogICBzZXNzaW9ucwogICAKICAgUW46IFNob3VsZCB0aGlzIGFsc28gYmUgYXBwbGllZCB3aGVuIG1haW4gc2Vzc2lvbiBpcyBOVUxMPwoKMjAxMS0wMS0wNiAxMzoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBGaXggbWlzbGVhZGluZyBpbmRlbnRhdGlvbgogICAKICAgUW46IFNob3VsZCB0aGlzIGNhbGwgJ3N1YmFnZW50X3N0YXJ0dXAnIHJhdGhlciB0aGFuCiAgICdhZ2VudHhfcmVvcGVuX3Nlc3Npb24nPwogICBRbjogV2h5IGRvZXNuJ3QgdGhpcyBhdHRlbXB0IHRvIHJlLW9wZW4gdGhlIHNlc3Npb24gaWYgaXQgd2FzCiAgIG9yaWdpbmFsbHkgTlVMTD8KCjIwMTEtMDEtMDYgMTI6NDYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTQxODExOiBIYW5kbGUgc3VjY2Vzc2Z1bCByZXF1ZXN0cyB3aXRoCiAgIHJlcUlEIDAKCjIwMTEtMDEtMDYgMDk6MzggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgU3BlbGxpbmcgZml4OiBJbml0aWFsemllcyAtPiBJbml0aWFsaXplcy4KCjIwMTEtMDEtMDYgMDk6MzUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yMigpLgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfaGFuZGxlcl9vd25zX2l0ZXJhdG9yX2luZm8oKS4KICAgQ0hBTkdFUzogYWdlbnQ6IEZpeGVkIGxlYWstYXQtZXhpdCB0cmlnZ2VyZWQgYnkgc25tcE5vdGlmeVRhYmxlLgogICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZCBieQogICBzbm1wVGFyZ2V0QWRkclRhYmxlLgogICBBbHNvLCByZXN0b3JlZCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvZgogICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKCkuCgoyMDExLTAxLTA2IDA0OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBpbmNsdWRlIHN5cy9zb2NrZXQuaCBpZiBhdmFpbGFibGUKCjIwMTEtMDEtMDUgMTQ6MDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxMzQzMjM6IEZpeCBjcmFzaCB3aGVuIGNvbXBhcmluZyBpbnZhbGlkCiAgIE9JRHMKCjIwMTEtMDEtMDUgMTQ6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQKICAgdHJhcGhhbmRsZSBkaXJlY3RpdmUKCjIwMTEtMDEtMDUgMDk6NTUgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIEV4cGFuZCB0YWIgY2hhcmFjdGVycwoKMjAxMS0wMS0wNCAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hlY2sgdGhhdCB0aGUgYXJndW1lbnQgdG8KICAgbmV0c25tcF90cmFuc3BvcnRfY29weSBpcyBub24tTlVMTAoKMjAxMS0wMS0wNCAxODoyNCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIENvcHlyaWdodCB1cGRhdGUgZm9yIDIwMTEKCjIwMTEtMDEtMDQgMTI6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgV2luMzIgTUlCLUlJCiAgIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wMS0wMyAxOTo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYzoKCiAgIFJlbW92ZWQgdHdvIHVudXNlZCB2YXJpYWJsZXMuCgoyMDExLTAxLTAzIDE5OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgbWlzbWF0Y2ggYmV0d2VlbiBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBhbmQgYXJndW1lbnQgbGlzdC4KCjIwMTEtMDEtMDMgMTk6NDcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgR2V0IHJpZCBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGFkZGluZyB0d28KICAgI2luY2x1ZGUgZGlyZWN0aXZlcyBhbmQgY29tbWVudGluZyBvdXQgdHdvIHVudXNlZCBmdW5jdGlvbnMuCgoyMDExLTAxLTAyIDA1OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGRvbid0IGZyZWUgY2FsbGVycyBwdHIKCjIwMTEtMDEtMDIgMDU6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgY2xlYW4gdXAgU05NUF9GUkVFIHVzYWdlCgoyMDExLTAxLTAyIDA1OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIGRlYnVnIHRva2VuCgoyMDExLTAxLTAyIDA1OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBmaXggZnVuY3Rpb24gbmFtZSBpbiBwcm90b3R5cGUKCjIwMTEtMDEtMDIgMDU6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVtb3ZlIGlubGluZSB2ZXJzaW9ucyBvZiBjb250YWluZXIgZnVuY3MKCjIwMTEtMDEtMDIgMDU6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZG9udCByZXR1cm4gZW1wdHkgYXJyYXkKCjIwMTEtMDEtMDIgMDU6NDYgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBmaXggdHlwb3MvZ3JhbW1hciBpbiBtYW4gcGFnZXMvY29tbWVudHMgKG5vIGNvZGUgY2hhbmdlcykKCjIwMTEtMDEtMDIgMDU6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBuZXcgdHJhbnNwb3J0IGNvbmZpZyB0b2tlbnMKICAgbG9jYWxDZXJ0L3BlZXJDZXJ0LAogICBkZXByZWNhdGUgb3VyX2lkZW50aXR5LCB0aGVpcl9pZGVudGl0eQoKMjAxMS0wMS0wMiAwNTo0NSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogaW50cm9kdWNlIG5ldyBsb2NhbENlcnQvcGVlckNlcnQsIGRlcHJlY2F0ZQogICBzZXJ2ZXJDZXJ0LCBjbGllbnRDZXJ0LCBkZWZYNTA5U2VydmVyUHViLCBkZWZYNTA5Q2xpZW50UHViCgoyMDExLTAxLTAyIDA1OjQ0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIElQdjYgc3VwcG9ydCB0byBEVExTVURQIHRyYW5zcG9ydAogICBDSEFOR0VTOiBzbm1wbGliOiB1c2UgbmV3IG5ldHNubXBfc29ja2FkZHJfc3RvcmFnZSBpbgogICBuZXRzbm1wX2FkZHJfcGFpcgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgYmFzZV90cmFuc3BvcnQgcHRyIGZvciB0dW5uZWxlZCB0cmFuc3BvcnRzCgoyMDExLTAxLTAyIDA1OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHNraXAgbm9uLUFGX0lORVQgaW50ZXJmYWNlcyB3aGVuIGxvYWRpbmcgaXB2NAogICBhZGRycwoKMjAxMC0xMi0yOSAwMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBORVdTOiBzbm1wZDogUGF0Y2ggMzE0MTQ2MjogZnJvbSBmZW5uZXI6IGZpeCBhZ2VudHggc3ViYWdlbnQKICAgaXNzdWVzIHdpdGggbXVsdGlwbGUtb2JqZWN0IHJlcXVlc3RzCgoyMDEwLTEyLTI5IDAxOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBQYXRjaCBmcm9tIE5pZWxzIHRvIGZpeCBWQUNNIHBlcnNpc3RhbnQgc3RvcmFnZS4KCjIwMTAtMTItMjEgMTE6MjkgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgQnJpbmcgYWxsIHZlcnNpb25zIG9mIG1ha2VyZWxlYXNlLnhtbCBpbnRvIGxpbmUKCjIwMTAtMTItMjEgMDY6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBmaXggY29uZmlndXJpbmcgd2l0aCAtLWRpc2FibGUtZGVidWdnaW5nCgoyMDEwLTEyLTIwIDIzOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBQYXRjaCBmcm9tIE1hZ251cyB0byBmaXggaWYgISB0ZXN0cyBvbiBzb2xhcmlzCgoyMDEwLTEyLTE0IDIwOjEwICByc3RvcnkKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggdHlwbyBpbiBtYW4gcGFnZQoKMjAxMC0xMi0xMCAxNTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQYXRjaCBmcm9tIENsYXVzIEtsZWluIHRvIGZpeCBlbmdpbmVpZCBnZW5lcmF0aW9uCiAgIG9uIG91dGdvaW5nIHYzIHRyYXBzIGZyb20gdGhlIGFnZW50CgoyMDEwLTEyLTA4IDEzOjE3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBuZXdseSBjcmVhdGVkL2Rlc3Ryb3llZCBpbnRlcmZhY2VzIHRvCiAgIGlwdjZJZlRhYmxlCiAgIAogICBUaGUgbGlzdCBvZiBpbnRlcmZhY2VzIHdhcyBuZXZlciByZWZyZXNoZWQsIG5vdyBpdCBpcyByZWxvYWRlZAogICBldmVyeSB0aW1lIHRoZQogICB0YWJsZSBpcyBhY2Nlc3NlZC4gSSd2ZSBhbHNvIGZpeGVkIGEgbWVtb3J5IGxlYWsgYW5kIG9wdGltaXplZAogICB0aGUgbG9hZGluZwogICBvZiB0aGUgbGlzdCBhIGJpdC4KCjIwMTAtMTItMDYgMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmM6CgogICBQYXRjaCBmcm9tIE5pZWxzIHRvIHJlbW92ZSBleHRyYSBoZWFkZXJzIGZyb20gdGhlIGxpbnV4IGRvdDNzdGF0cwogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0xMi0wNiAyMjowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ2hlY2sgZm9yIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGZ1bmN0aW9uIGluIE9wZW5TU0wgZm9yIERUTFMKICAgc3VwcG9ydAoKMjAxMC0xMi0wNiAxNjozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgY2FsbCBuZXRzbm1wX2NlcnRzX2FnZW50X2luaXQgc29vbmVyLCBmaXhpbmcgc25tcHRyYXBkIChEKVRMUwogICBzdXBwb3J0CgoyMDEwLTEyLTA2IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBmaXggY29udGV4dEVuZ2luZUlEcyBmb3Igb3V0Z29pbmcgaW5mb3JtcyBmcm9tIHNubXBpbmZvcm0gdG8gYmUKICAgdGhlIGxvY2FsIGVuZ2luZUlECgoyMDEwLTEyLTAxIDIxOjE4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4IGNvbmZsaWN0aW5nIGRlY2xhcmF0aW9ucwoKMjAxMC0xMi0wMSAwMToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBQYXRjaCBmcm9tIG1hZ2ZyIHRvIGZpeCBidWlsZGluZyB3aXRob3V0IG9wZW5zc2wKCjIwMTAtMTItMDEgMDE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICB1c2UgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKCjIwMTAtMTEtMzAgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgaW1wbGVtZW50IERUTFMgY29va2llcyBzZW1pLXByb3Blcmx5IChzdGF0ZSBpcyBzdGlsbCBzYXZlZCwgd2hpY2gKICAgc3RpbGwgbmVlZHMgdG8gY2hhbmdlKQoKMjAxMC0xMS0zMCAyMzoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCAzMDQ5MDI5OiBmcm9tIGZlbm5lYzogZml4IGEgbWVtb3J5IGxlYWsgd2l0aAogICBzbm1wIGJ1bGt3YWxrcwoKMjAxMC0xMS0zMCAyMzoxNiAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6CiAgIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCjIwMTAtMTEtMzAgMjM6MTIgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6CiAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MgaW52YWxpZCBtZW1vcnkgYWNjZXNzCgoyMDEwLTExLTMwIDIyOjE4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJldmVydGVkIDE5NzAxIChldGh0b29sKSBhcyBpdCBicm9rZSB0aGluZ3MKCjIwMTAtMTEtMzAgMjE6MDggIG5iYQoKICAgKiBhcHBzL3NubXB0bHMuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmM6CgogICB1X2ludDMyX3QgaXMgbGVzcyBwb3J0YWJsZSB0aGFuIHVpbnQzMl90IChTb2xhcmlzIDExKQoKMjAxMC0xMS0zMCAyMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgYSBjb21waWxlIHdhcm5pbmcgYWJvdXQgYSBuZXN0ZWQgaWYgd2l0aG91dCBhIGJsb2NrCgoyMDEwLTExLTMwIDE5OjU3ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGVycm9yIGNoZWNrIHRoZSByaWdodCBwb2ludGVyIGFmdGVyIGF0dGVtcHRpbmcgYWxsb2NhdGlvbgoKMjAxMC0xMS0zMCAwNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgTkVXUzogYXBwczogUEFUQ0ggMzA1NDgxNzogZnJvbSBuaWdodGNvZGluZzogQWRkcyBwZXItdmFyaWFibGUKICAgdGltZWQgb3V0cHV0IHN1cHBvcnQgdG8gc25tcHdhbGsgdXNpbmcgLUNUCgoyMDEwLTExLTMwIDA1OjU2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1NzA5MDogZnJvbSBzaGVtbWluZ2VyOiBtYWtlIGV0aHRvb2wKICAgc3VwcG9ydCBvbiBsaW51eCB1c2UgdGhlIGhpZ2ggc3BlZWQgc3RydWN0IGluZm8gZm9yIDEwMEcrLgoKMjAxMC0xMS0zMCAwNTo0NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wZDogUEFUQ0ggMzA1NzA5MzogZnJvbSBzaGVtbWluZ2VyOiBhbGxvdyBsaW51eCB0byB1c2UKICAgbGlicGNpIGZvciBjcmVhdGluZyB1c2VmdWwgaWZEZXNjciBzdHJpbmdzCgoyMDEwLTExLTMwIDA0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIIDMwNzQ5MTg6IGZyb20gd2Vpemhlbmc6IGNoZWNrIGZvciBDT05UQUlORVJfSU5TRVJUCiAgIGZhaWx1cmVzIGFuZCByZWFjdCBhcHByb3ByaWF0ZWx5IHRvIGF2b2lkIG1lbW9yeSBsZWFrcwoKMjAxMC0xMS0zMCAwNDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIGRlYnVnIGZvciBjZXJ0IGZpbmQgaGludCBhcyBzdHJpbmcvaW50CgoyMDEwLTExLTMwIDA0OjMwICByc3RvcnkKCiAgICogIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogaW5zdGVhZCBvZiByZWx5aW5nIG9uIE5FVFNOTVBfRFNfTElCX0FQUFRZUEUsCiAgIGJyZWFrIG91dAogICBjZXJ0IHRhYmxlIGluaXRzIHRvIG5ldyBhZ2VudCBjZXJ0IGluaXQgZnVuY3Rpb24sIGNhbGxlZCBmcm9tCiAgIGluaXRfYWdlbnQuCgoyMDEwLTExLTMwIDA0OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IGVuZm9yY2UgbWF4IGxlbmd0aCBvbiBUTFMgc2VjTmFtZSBtYXBzCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgcHJpb3JpdHkgdG8gc2VjbmFtZSBkZWJ1Z2dpbmcKCjIwMTAtMTEtMjkgMjI6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgZGVidWcgZm9yIHNzbCBjaXBoZXJzLCBjbGFyaWZ5IGZpbmdlcnByaW50CiAgIG1hdGNoIGRlYnVnCgoyMDEwLTExLTI5IDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogdXNlIGNhY2hlLXVuaXF1ZSBpZCBpbnN0ZWFkIG9mIGhhbmRsZXIgbmFtZSBmb3IKICAgc2hhcmVkCiAgIGNhY2hlIHJlbG9hZCBwcm90ZWN0aW9uCgoyMDEwLTExLTE5IDE1OjI1ICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYzoKCiAgIE5pZWxzLCBOaWVscywgeW91IHNob3VsZCBrbm93IGJldHRlciB0aGFuIG1ha2luZyBsYXN0IG1pbnV0ZQogICBjaGFuZ2VzIHRvIGEKICAgcGF0Y2ggYW5kIHRoZW4gY29tbWl0IGl0IHdpdGhvdXQgdGVzdGluZyA6LSgKCjIwMTAtMTEtMTggMTE6MDQgIGJ2YXNzY2hlCgogICAqICAuLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmM6CgogICBBcHBsaWVkIHIxOTY4OCBvbiB0aGUgdHJ1bmsgdG9vIChmb2xsb3ctdXAgZm9yIHIxOTY4NSkuCgoyMDEwLTExLTE4IDAzOjQ5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGRvbid0IHNlY29uZC1ndWVzcyBjYWNoZSBoYW5kbGVyCiAgIAogICAod2F2ZXMgaGFuZCkgdGhpcyBpcyBub3QgdGhlIGZ1bmN0aW9uIHlvdSBhcmUgbG9va2luZyBmb3IuCiAgIAogICBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkKCkgaXMgbm90IG1lYW50IGZvciBtaWIgbW9kdWxlcwoKMjAxMC0xMS0xNyAxOTo1OSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOgoKICAgTW9yZSBwcm9jdGlvbiBhZ2FpbnN0IG92ZXJmbG93aW5nIHNucHJpbnRmCgoyMDEwLTExLTE3IDE5OjU3ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgRG9udCB1c2UgZmlyc3QgZWxlbWVudCBvZiBvaWQgdG8gc2F2ZSBpZkluZGV4IC0gaXQgY2FuIG9ubHkgYmUKICAgMC4uMgogICBTZWNvbmQgZWxlbWVudCBpcyBvbmx5IDAuLjM5LCBzbyB3ZSBoYXZlIHRvIHVzZSBhIHRoaXJkIGVsZW1lbnQuCgoyMDEwLTExLTE3IDE5OjM5ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgIAogICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBUZXN0IGdldGZzc3RhdC9nZXR2ZnNzdGF0IGluIHRpbWUgZm9yIG1vZHVsZSBzZWxlY3Rpb24KCjIwMTAtMTEtMTcgMTk6MzcgIG5iYQoKICAgKiBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIFJlbW92ZSBib2d1cyB0ZXN0IGZvciBmbGFncz09MCAoT19SRE9OTFk9PTApLiBNYWtlcwogICB1ZHBFbmRwb2ludFRhYmxlIHdvcmsgYWdhaW4KCjIwMTAtMTEtMTcgMDQ6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBkb3VibGUgZnJlZSBpbiBUTFMgZXJyb3IgaGFuZGxpbmcKCjIwMTAtMTEtMTYgMTA6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZToKCiAgIFJldmVydGVkIE1pbkdXLXNwZWNpZmljIGNoYW5nZXMgZnJvbSByMTk1NDkgc3VjaCB0aGF0IHRlc3QgVDA2NQogICBwYXNzZXMgYWdhaW4gb24gTWluR1cuCgoyMDEwLTExLTE2IDEwOjA0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDSEFOR0VTOiBMaW51eDogYWdlbnQ6IGlwTmV0VG9QaHlzaWNhbFRhYmxlOiBEbyBub3QgbG9nIGFuIGVycm9yCiAgIG1lc3NhZ2UgaWYgb25lIG9yIG1vcmUgaW50ZXJmYWNlcyBhcmUgcHJlc2VudCB0aGF0IGRvIG5vdCBoYXZlCiAgIHN1Y2ggaW5mb3JtYXRpb24gKE5VRF9OT0FSUCksIGUuZy4gdHVubmVscy4gUmVwb3J0ZWQgYnkgU3RlcGhlbgogICBIZW1taW5nZXIuIFNlZSBhbHNvIHBhdGNoICMzMTA3MDAzLgoKMjAxMC0xMS0xNSAxNDoxNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBidWdzIGluIGFzbl9wYXJzZV91bnNpZ25lZF9pbnQ2NCgpLAogICBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQoKSwgYXNuX3BhcnNlX3NpZ25lZF9pbnQ2NCgpIGFuZAogICBhc25fYnVpbGRfc2lnbmVkX2ludDY0KCkuIE1vc3QgYnV0IG5vdCBhbGwgb2YgdGhlc2UgYnVncyB3ZXJlCiAgIHNwZWNpZmljIHRvIDY0LWJpdCBzeXN0ZW1zLiBGaXhlcyBidWcgIzMwOTMxOTkuCgoyMDEwLTExLTE1IDEzOjMyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDhhc24xX2NsaWIuYzoKCiAgIEF2b2lkIHRyaWdnZXJpbmcgdHJ1bmNhdGlvbiB3YXJuaW5ncy4KCjIwMTAtMTEtMTUgMTM6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOGFzbjFfY2xpYi5jOgoKICAgUmVzdHJpY3RlZCBhbGwgY29uc3RhbnRzIHRvIDMyIGJpdHMuCgoyMDEwLTExLTE1IDEyOjM1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NjY1LgoKMjAxMC0xMS0xNSAxMjozMyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBvZgogICBkZWJ1Z19yZWdpc3Rlcl90b2tlbnMoKSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4KCjIwMTAtMTEtMTUgMTA6NTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOGFzbjFfY2xpYi5jOgoKICAgQWRkZWQgdW5pdCB0ZXN0IGZvciBBU04uMSBlbmNvZGluZyBhbmQgZGVjb2RpbmcgKG9ubHkgMzItYml0IGFuZAogICA2NC1iaXQKICAgaW50ZWdlcnMgc28gZmFyKS4KCjIwMTAtMTEtMTEgMjI6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGaXggcjE5NjM2OiBUcmFwT0lEIGlzIG5vdCB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY29udmVydGVkIHYyCiAgIHRyYXAKCjIwMTAtMTEtMTEgMDg6MzggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgQ2xlYW51cDogUmVtb3ZlZCBzdXBlcmZsdW91cyByZWZlcmVuY2VzIHRvIHRoZSBQT1NJWCB0aHJlYWRzCiAgIGxpYnJhcnkuCgoyMDEwLTExLTExIDA4OjIwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTY2MDogVXNlIHBpZF90IGNvbnNpc3RlbnRseS4KCjIwMTAtMTEtMTAgMTY6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBhZ2VudDogSW50cm9kdWNlZCBuZXRzbm1wX3BpZF90LgogICBDSEFOR0VTOiBXaW4zMjogRWxpbWluYXRlZCBjYXN0cyBiZXR3ZWVuIGludCBhbmQgSEFORExFIGluCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhbmQKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMuCgoyMDEwLTExLTEwIDE1OjQ5ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NjA2OiBjbXVfY29tcGF0IHJlbW92YWwuCgoyMDEwLTExLTEwIDEyOjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IEJVRzogMzEwMjkwNDogQWxsIE5ldC1TTk1QIEMgc291cmNlIGZpbGVzIGFyZSBub3cKICAgY29tcGlsZWQgd2l0aCAtZm5vLXN0CiAgIHJpY3QtYWxpYXNpbmcsIGF0IGxlYXN0IGlmIHRoZSBjb25maWd1cmVkIGNvbXBpbGVyIHN1cHBvcnRzIHRoaXMKICAgZmxhZy4KCjIwMTAtMTEtMDkgMTM6NDcgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGU6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBUZXN0IFQwMzAgZG9lcyBub3cgcGFzcyBvbiBNaW5HVy4KCjIwMTAtMTEtMDkgMTM6NDAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBzaW1wbGVfZXZhbF90b29scy5zaDogUmVtb3ZlZCBhIHN1cGVyZmx1b3VzIElTREVGSU5FRCBpbnZvY2F0aW9uLgoKMjAxMC0xMS0wOSAxMjowNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlOgoKICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCgoyMDEwLTExLTA5IDExOjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTY0Ni4KCjIwMTAtMTEtMDkgMTE6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogSWYgdGhlIGFnZW50IGhhcyBiZWVuIGFza2VkIHRvIHN0b3AsCiAgIHdhaXQgdW50aWwgdGhlIHNubXBkIHByb2Nlc3MgZGlzYXBwZWFyZWQgYmVmb3JlIHByb2NlZWRpbmcuCgoyMDEwLTExLTA5IDEwOjAyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBjb20yc2VjNiBkaXJlY3RpdmU6IElmIGNvbmZpZ3VyZSBoYXMgbm90IGZvdW5kCiAgIGdldGFkZHJpbmZvKCksIG5vbi1udW1lcmljIElQdjYgYWRkcmVzc2VzIGRvIG5vdyB0cmlnZ2VyIGFuIGVycm9yCiAgIG1lc3NhZ2UuCgoyMDEwLTExLTA4IDE1OjM2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGU6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBUZXN0IDcxIChjb20yc2VjNl9zaW1wbGUpIGRvZXMgbm93IHN1Y2NlZWQgZXZlbgogICBpZiBJUHY2IEROUyByZXNvbHV0aW9uIGlzIG5vdCBhdmFpbGFibGUuCgoyMDEwLTExLTA4IDE1OjAyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBNaW5HVywgdGVzdGluZzogY2xpYiB0ZXN0cyBidWlsZCBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzLgoKMjAxMC0xMS0wOCAxNDo1MiAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogTWluR1c6IGNvbmZpZ3VyZTogRGV0ZWN0aW9uIG9mIHRoZSBmdW5jdGlvbnMKICAgZ2FpX3N0cmVycm9yKCksIGdldGFkZHJpbmZvKCksIGdldGhvc3RieW5hbWUoKSBhbmQgZ2V0aG9zdG5hbWUoKQogICBkb2VzIG5vdyBzdWNjZWVkLgoKMjAxMC0xMS0wOCAxNDo0OCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA3aW5ldF9wdG9uX2NsaWIuYzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZGVkIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKSB1bml0IHRlc3QuCgoyMDEwLTExLTA4IDE0OjQ3ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICB0ZXN0aW5nOiBjbGliX2J1aWxkOiBBZGRlZCAjaW5jbHVkZSBkaXJlY3RpdmVzICg8YXJwYS9pbmV0Lmg+IGFuZAogICA8bmV0aW5ldC9pcDYuaD4pLgoKMjAxMC0xMS0wOCAwODo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFdpbjMyOiBhZ2VudDogZWxpbWluYXRlZCBjYXN0cyBmcm9tL3RvIGludCBmb3IgdGhyZWFkIGhhbmRsZXMuCgoyMDEwLTExLTA4IDA3OjU4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFJlbW92ZWQgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGZyb20gdGhlIGRlY2xhcmF0aW9uIG9mCiAgIF9idWlsZF9jYWNoZV9uYW1lIC0gYXQgbGVhc3QgZ2NjIGlzIGJldHRlciB0aGFuIGEgaHVtYW4gYXQKICAgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBpbmxpbmVkIGFuZCB3aGljaCBvbmVzIG5vdC4KCjIwMTAtMTEtMDggMDc6NTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgbmV0c25tcF90YWJsZV9kYXRhX2Nsb25lX3JvdygpOiBBZGRlZCBtaXNzaW5nIGZyZWUoKSBzdGF0ZW1lbnQgaW4KICAgYW4gZXJyb3IgcGF0aC4KCjIwMTAtMTEtMDcgMjE6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDIxMTk3MjU6IEZpeCBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzCiAgIGhhbmRsaW5nIG9mIGhyU3RvcmFnZVRhYmxlCgoyMDEwLTExLTA3IDIxOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBzdHJkdXAgaW4KICAgbmV0c25tcF9jcmVhdGVfZGF0YV9saXN0IGFuZCBmYWlsIGlmIHN0cmR1cCBmYWlscy4KCjIwMTAtMTEtMDcgMTk6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMDk2NzI1OiBEb24ndCByZWdpc3RlciB2MVRyYXAgY2FsbGJhY2ssCiAgIGlmIFNOTVB2MSBpcyBub3Qgc3VwcG9ydGVkCgoyMDEwLTExLTA3IDE5OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTg0MDIzMDogRG9uJ3QgaW5jbHVkZSB0aGUgaW5kZXggb2JqZWN0IGFzCiAgIChwc2V1ZG8tKWFjY2Vzc2libGUgY29sdW1uLgoKMjAxMC0xMS0wNyAxOTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMwOTY3MjU6IEluY2x1ZGUgU05NUHYxIHRyYXAgT0lEcyBpbgogICBubG1Mb2dOb3RpZmljYXRpb25JRCBjb2x1bW4KCjIwMTAtMTEtMDcgMTY6MzUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZm9yY2UgYSA7IGF0IHRoZSBlbmQgb2YgdGhlIHN0YXRpY19hc3NlcnQKICAgbWFjcm8uCgoyMDEwLTExLTA1IDE1OjQxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBNYWRlIHN1cmUgdGhhdCBycG1HZXRQYXRoKCkgY2FuIGJlIGZvdW5kIGJ5IGNvbmZpZ3VyZS4KCjIwMTAtMTEtMDUgMTQ6NTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOgoKICAgUmVtb3ZlZCBzdXBlcmZsdW91cyAtSS91c3IvaW5jbHVkZS9ycG0uCgoyMDEwLTExLTA1IDEyOjE4ICBidmFzc2NoZQoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEZpbmQgb3V0IHdoZXRoZXIgbGlicnBtIGlzIGF2YWlsYWJsZSBiZWZvcmUKICAgY29uZmlndXJpbmcgdGhlIGFnZW50IG1vZHVsZXMgYmVjYXVzZSBob3N0L2RhdGEvYWNjZXNzL3N3aW5zdAogICBuZWVkcyBzeW1ib2wgSEFWRV9MSUJSUE0uIEFzIGEgcmVzdWx0LCBjb25maWd1cmUgaGFzIHRvIGJlIHJ1bgogICBvbmx5IG9uY2UgaW5zdGVhZCBvZiB0d2ljZSB0byBlbmFibGUgdGhlIGhyU1dJbnN0YWxsZWQgdGFibGUgb24KICAgc3lzdGVtcyB0aGF0IGhhdmUgbGlicnBtLgoKMjAxMC0xMS0wNSAxMjoxMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jOgoKICAgU3VwcHJlc3MgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0xMS0wNSAxMDowMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBGaXhlZCBhIG1lbW9yeSBsZWFrCiAgIGluIG5ldHNubV9zd2luc3RfYXJjaF9pbml0KCkuCgoyMDEwLTExLTA1IDA5OjIzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IFBhc3MgY29ycmVjdCBwYXRoIHRvCiAgIHJwbWRiT3BlbigpIHN1Y2ggdGhhdCBvcGVuaW5nIHRoZSBkYXRhYmFzZSBzdWNjZWVkcy4KICAgQ0hBTkdFUzogYWdlbnQ6IGhvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbTogTG9nIGFuIGVycm9yIG1lc3NhZ2UKICAgaWYgcnBtZGJPcGVuKCkgZmFpbHMuCgoyMDEwLTExLTA1IDA4OjUwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmM6CgogICBSbW9uIC8gZGlzbWFuIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTExLTA1IDA4OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIG1hY3JvIG5ldHNubXBfc3RhdGljX2Fzc2VydCgpLgoKMjAxMC0xMS0wNSAwODo0MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTU2Ni4KCjIwMTAtMTEtMDUgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg6CgogICBSZW1vdmVkIGEgKGhhcm1sZXNzID8pIGNpcmN1bGFyIHJlZmVyZW5jZS4KCjIwMTAtMTEtMDQgMTM6MDkgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSEVTOiAzMDgzMDI3OiBGaXggUlBNIHNwZWMgZmlsZSB0byBzdXBwb3J0CiAgIENlbnRPUwoKMjAxMC0xMS0wMyAxMzoyMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwVGxzSXB2Nl9zaW1wbGU6CgogICBza2lwIHRsc2lwdjYgdGVzdCBpZiBub3QgdGxzdGNwL3RjcGlwdjYgZG9tYWlucwoKMjAxMC0xMS0wMSAyMzowMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBDTVUgY29tcGF0aWJpbGl0eSBzaW5jZQogICB0aGVyZSBpcyBubyB3YXkgdG8gZW5hYmxlIGl0IGFuZCBub2JvZHkgaGF2ZSBtaXNzZWQgaXQuCgoyMDEwLTExLTAxIDE2OjUwICBkdHMxMgoKICAgKiBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgUmV3b3JrIGRlc2NyaXB0aW9uIG9mIE9JRCBuYW1lIGhhbmRsaW5nIHRvIGJlCiAgIG5vdCBxdWl0ZSBzbyBpbmNyZWRpYmx5IG91dCBvZiBkYXRlLgoKMjAxMC0xMS0wMSAxNjo0NyAgZHRzMTIKCiAgICogbWFuL3NubXBnZXQuMS5kZWY6CgogICBEb2N1bWVudCAtQ2YgaW4gdGhlIHR3byBtYW4gcGFnZXMgc2VwYXJhdGVseS4KCjIwMTAtMTAtMjkgMjI6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG51bGwgb3V0IGJpbyBwb2ludGVycyBhZnRlciBiZWluZyBmcmVlZDsgYmFpbCBvbiBjb25uZWN0aW9uCiAgIHdpdGggbm8gc3NsIHBvaW50ZXIKCjIwMTAtMTAtMjkgMTQ6MzUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgUmV2ZXJ0ZWQgaW5jb3JyZWN0IGNoYW5nZXMgZnJvbSByMTk1NzUuCgoyMDEwLTEwLTI5IDE0OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgYnVnIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5NTE1LgoKMjAxMC0xMC0yOSAxNDowMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICBSZXZlcnRlZCB0aGUgaW5jb3JyZWN0IGNoYW5nZXMgZnJvbSByMTk1OTMuCgoyMDEwLTEwLTI5IDEzOjM4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgUmVkdWNlZCBudW1iZXIgb2YgbGVhay1hdC1leGl0IGNvbXBsYWludHMgdHJpZ2dlcmVkIGJ5CiAgIHNubXBsaWIvY2VydF91dGlsLmMuCgoyMDEwLTEwLTI5IDEzOjM3ICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICBNb3JlIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjkgMTM6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaDoKCiAgIE1vcmUgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOSAxMjoxOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBTcGVsbGluZyBmaXggaW4gbG9nIHRleHRzOiBjb250YWludGVyIC0+IGNvbnRhaW5lci4KCjIwMTAtMTAtMjkgMDk6NTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIFJhbiBmaWxsdXBfZW50cnlfaW5mbygpIHRocm91Z2ggaW5kZW50LgoKMjAxMC0xMC0yOSAwOTo1NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgTmV0bGluayBJUHY2IHByZWZpeCBwcm9jZXNzaW5nOiBBZGRlZCBtb3JlIGRlYnVnIHN0YXRlbWVudHMuCgoyMDEwLTEwLTI5IDA5OjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBNYWRlIGFyZ3VtZW50IGNoZWNraW5nIG9mIG5ldHNubXBfaGFuZGxlcl9vd25zX3RhYmxlX2luZm8oKSBtb3JlCiAgIHN0cmljdC4KCjIwMTAtMTAtMjkgMDk6NTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmg6CgogICBNb3JlIE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTI5IDA3OjU2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmM6CgogICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTEwLTI4IDE4OjMxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZpeCBjb25zdCBxdWFsaWZpZXIgd2FybmluZwoKMjAxMC0xMC0yOCAxNzo1MyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENsZWFuIG91dCBTb2xhcmlzIHdhcm5pbmdzCgoyMDEwLTEwLTI4IDE3OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBMVk0gaXMgTGludXggb25seQoKMjAxMC0xMC0yOCAxNzo1MSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgQXZvaWQgY2hhciBzdWJzY3JpcHRzIChzaWduZWQgY2hhcnNcISkKCjIwMTAtMTAtMjggMTc6NDMgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIGNhc3RzIGFuZCBmb3JtYXQgc3BlY2lmaWVycyBpbiBkZWJ1ZyBvdXRwdXQKCjIwMTAtMTAtMjggMTc6NDEgIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIENhc3QgdG8gc29ja2FkZHIgdG8gYXZvaWQgd2FybmluZwoKMjAxMC0xMC0yOCAxNzo0MCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBVbnRhbmdsZSBwaWNsIGZyb20ga3N0YXQgYWNjZXNzIHNvIGl0IGNvbXBpbGVzIG9uIHg4NiBTb2xyYWlzCiAgIDEwL09wZW5Tb2xhcmlzCgoyMDEwLTEwLTI4IDE1OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgTW9yZSBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTI4IDE1OjEzICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigpLAogICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyMigpLCBuZXRzbm1wX2Nsb25lX3dhdGNoZXJfaW5mbygpCiAgIGFuZCBuZXRzbm1wX293bnNfd2F0Y2hlcl9pbmZvKCkuIFNlZSBhbHNvIHRoZSBEb3h5Z2VuIGNvbW1lbnRzCiAgIGZvciBtb3JlIGluZm8uCgoyMDEwLTEwLTI4IDE0OjAyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIEZpeCBsb2dpYyBvZiB0ZXN0aW5nIGZvciBvdXQtb2YtcmFuZ2UgZW51bSB2YWx1ZXMuCiAgIFJlcG9ydGVkIGJ5IEJvcmlzIFp3ZWltdWVsbGVyLgoKMjAxMC0xMC0yOCAxMjoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBHZXQgcmlkIG9mIE9wZW5TU0wtcmVsYXRlZCBjb21waWxhdGlvbiB3YXJuaW5ncy4gU2hvdWxkIHdvcmsgZm9yCiAgIGJvdGggT3BlblNTTCB2ZXJzaW9ucyAwLjkueCBhbmQgMS4wLnguCgoyMDEwLTEwLTI4IDExOjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKG1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHNwZWNpZmljYXRpb24KICAgYW5kIGFyZ3VtZW50KSB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHI2NTYyLgoKMjAxMC0xMC0yOCAxMTo0MyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEdldCByaWQgb2YgcmVjZW50bHkgaW50cm9kdWNlZCBtZW1kdXAoKSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMTAtMjggMTE6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5NTUwLgoKMjAxMC0xMC0yOCAxMTozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIFJldmVydGVkIHIxOTU2NSBiZWNhdXNlIGl0IGNhdXNlZCBnY2MgdG8gcmVwb3J0IG1vcmUgd2FybmluZ3MKICAgaW5zdGVhZCBvZiBsZXNzLgoKMjAxMC0xMC0yOCAxMToxOCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5NTY2LgoKMjAxMC0xMC0yOCAxMDo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTk1MTU6IHJlbW92ZWQgdGhlIG5ld2x5IGludHJvZHVjZWQgZnVuY3Rpb25zCiAgIGFuZCBkYXRhIG1lbWJlcnMgYWdhaW4sIGJ1dCB3aXRob3V0IHJlaW50cm9kdWNpbmcgdGhlCiAgIGxlYWstYXQtZXhpdC4KCjIwMTAtMTAtMjggMTA6MzIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmaXJzdCB0d28gYXJndW1lbnRzIHN1Y2ggdGhhdCBpdCBpcyBubwogICBsb25nZXIgbmVjZXNzYXJ5IHRvIGNhc3QgdGhlc2UgdHdvIGFyZ3VtZW50cyAoaGFzIGJlZW4gcmV2ZXJ0ZWQKICAgdmlhIHIxOTU2OCkuCgoyMDEwLTEwLTI4IDA5OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIGNyYXNoIGluIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkuCgoyMDEwLTEwLTI4IDA4OjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTWFkZSBpdCBlYXNpZXIgdG8gZW5hYmxlIHRoZSBtZW1vcnkgbGVhayBjaGVja2VyIGJ1aWx0LWluIGluCiAgIE1TVkMncyBDIHJ1bnRpbWUgbGlicmFyeS4KCjIwMTAtMTAtMjcgMjA6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgU2l6ZW9mIGhhcyB0eXBlIHNpemVfdAoKMjAxMC0xMC0yNyAyMDozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0CgoyMDEwLTEwLTI3IDE4OjQwICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jOgoKICAgU3ByaW5rbGUgc29tZSB1bnNpZ25lZG5lc3Mgc28gdmFycyBhbmQgcGFyYW1zIGFncmVlIG9uIHR5cGUKCjIwMTAtMTAtMjcgMTg6MzggIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgSW5pdGlhbGl6ZSB2YXJzIHRoYXQgZ2NjIHRoaW5rcyBhcmUgdW5pbml0aWFsaXplZAoKMjAxMC0xMC0yNyAxODozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEEgbW9yZSBtZWFuaW5nZnVsIHRlc3QgZm9yIE1MRF9MSVNURU5FUl9RVUVSWQoKMjAxMC0xMC0yNyAxODozNSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMgd2VyZSBtaXNzaW5nCgoyMDEwLTEwLTI3IDE4OjMzICBuYmEKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRlc3QuYzoKCiAgIENoZWNrIGZnZXRzIHJldHVybgoKMjAxMC0xMC0yNSAyMDo1OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAzMDg4MzYwOiBFbnN1cmUgcHl0aG9uIG1vZHVsZXMgYXJlIGJ1aWx0CiAgIGFnYWluc3QgdGhlIGNvcnJlY3QgbGlicmFyaWVzCgoyMDEwLTEwLTI1IDIwOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNTgxMDE6IFdyaXRlYWJsZSAnbG9uZycgaW5zdGFuY2VzIHdvcmsgb24KICAgNjQtYml0IHN5c3RlbXMsIGJ1dCBub3Qgd3JpdGFibGUgJ2ludCdzCgoyMDEwLTEwLTI1IDE2OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBhdHRlbXB0IHRvIHByb2Nlc3MgdW5yZWNvZ25pc2VkICJpZ25vcmUqIiBkaXJlY3RpdmVzLgogICBQYXNzIHRoZXNlIHRocm91Z2ggdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQgY29uZmlnIGhhbmRsZXJzCiAgIChpZiBhbnkpCgoyMDEwLTEwLTI1IDE1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeCBhIHN0dXBpZCB0eXBvCgoyMDEwLTEwLTI1IDE1OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNjI1Mzg6IEZpeCBjb20yc2VjKiBoYW5kbGluZyBvZgogICBub24tZGVmYXVsdCBjb250ZXh0cwoKMjAxMC0xMC0yNSAxMjo1NCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlOgoKICAgQ0hBTkdFUzogV2luMzI6IHRlc3Rpbmc6IEF2b2lkIHRoYXQgVDIwMCBmYWlscyBvbiBrbm93biBNaWNyb3NvZnQKICAgU05NUCBleHRlbnNpb24gRExMIGJ1Z3MuCgoyMDEwLTEwLTI1IDA4OjA2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogTGludXg6IHNubXBkIGlzIGFnYWluIHNpbmdsZS10aHJlYWRlZC4KICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTU5ODExOiBmcm9tIEphbiBTYWZyYW5lazogUmVpbXBsZW1lbnQKICAgTGludXggTmV0bGluayBJUHY2IHByZWZpeCBsaXN0ZW5lci4KCjIwMTAtMTAtMjUgMDc6MTUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBBdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgY2FzdGluZyBhd2F5IHRoZSAnY29uc3QnCiAgIGF0dHJpYnV0ZSBmb3IgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNzbGN0eF9jbGllbnRfc2V0dXAoKSBhbmQKICAgc3NsY3R4X3NlcnZlcl9zZXR1cCgpLgoKMjAxMC0xMC0yNSAwNjoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MTYgIG5iYQoKICAgKiAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEFkanVzdCB0eXBlcyB0byBiZXR0ZXIgbWF0Y2ggdXNhZ2UKCjIwMTAtMTAtMjUgMDY6MTUgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFJldmVhbCBoaWRkZW4gLWUgYW5kIC11IG9wdGlvbnMKCjIwMTAtMTAtMjUgMDY6MTQgIG5iYQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaW5jbHVkZSBuZWVkZWQgcHJvdG90eXBlcwoKMjAxMC0xMC0yNSAwNjowMSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgaW5jbHVkZSBuZWVkZWQgcHJvdG90eXBlcwoKMjAxMC0xMC0yNSAwNjowMCAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgY29uc3QtanVnZ2xpbmcgLSB3ZSBkb250IGxpa2Ugd2FybmluZ3MKCjIwMTAtMTAtMjMgMTE6NTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgUmVlbmFibGVkIGNhY2hlIHJlbW92YWwgYW5kIGZyZWVpbmcgLyBtb3ZlZCBjYWNoZSByZWZjb3VudAogICBpbmNyZW1lbnRpbmcgdG8gbmV0c25tcF9jYWNoZV9vd25zX2NhY2hlKCkgLyBjb252ZXJ0ZWQgdGFicyB0bwogICBzcGFjZXMuCgoyMDEwLTEwLTIzIDExOjA0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGFub3RoZXIgY3Jhc2ggaW4gbmV0c25tcF9jYWNoZV9yZW1vdmUoKS4KCjIwMTAtMTAtMjMgMTE6MDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFJlbW92aW5nIHRoZSBsYXN0IGNhY2hlIHZpYQogICBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpIGRvZXMgbm8gbG9uZ2VyIHRyaWdnZXIgYSBjcmFzaC4KCjIwMTAtMTAtMjMgMTA6NTcgIGJ2YXNzY2hlCgogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jOgoKICAgVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliOiBJbnRyb2R1Y2VkCiAgIG5ldHNubXBfY2FjaGVfY3JlYXRlKCkuCgoyMDEwLTEwLTIyIDE1OjI0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIERpc2FibGVkIGNhY2hlIGRlYWxsb2NhdGlvbiBiZWNhdXNlIGl0IG1ha2VzIHR3byB1bml0IHRlc3RzIGZhaWwKICAgLSB0byBiZSBhbmFseXplZCBmdXJ0aGVyLgoKMjAxMC0xMC0yMiAxNTowMyAgYnZhc3NjaGUKCiAgICogCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmM6CgogICBCdWlsZHMgYWdhaW4uCgoyMDEwLTEwLTIyIDE0OjQ5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogTUlCLXNwZWNpZmljIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjIgMTQ6NDIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGV4YW1wbGUgTUlCOiBBZGRlZCBzaHV0ZG93biBmdW5jdGlvbiB0aGF0IGZyZWVzCiAgIGFsbCBtZW1vcnkgb3duZWQgYnkgdGhpcyBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDEwLTEwLTIyIDE0OjQwICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEF1dG9tYXRpY2FsbHkgZnJlZSB0aGUgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZQogICBhbGxvY2F0ZWQgYnkgbmV0c25tcF9jb250YWluZXJfdGFibGVfaGFuZGxlcl9nZXQoKS4KCjIwMTAtMTAtMjIgMTQ6MzggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQ291bnQgdGhlIG51bWJlciBvZiB1c2VycyBvZiBhIG5ldHNubXBfY2FjaGUgZGF0YQogICBzdHJ1Y3R1cmUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4KCjIwMTAtMTAtMjIgMTQ6MzYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCByZWZlcmVuY2UgY291bnQgaW4gdGhlCiAgIG5ldHNubXBfYmFieV9zdGVwc19tb2RlcyBkYXRhIHN0cnVjdHVyZSBhbmQgbWFkZSBzdXJlIHRoYXQgdGhpcwogICBkYXRhIHN0cnVjdHVyZSBpcyBhdXRvbWF0aWNhbGx5IGZyZWVkIHdoZW4gdGhlIGhhbmRsZXIgdGhhdCBvd25zCiAgIGl0IGlzIHVucmVnaXN0ZXJlZC4KCjIwMTAtMTAtMjIgMTQ6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSgpLgoKMjAxMC0xMC0yMiAwODo1MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NTExOiBtYWRlIHN1cmUgdGhhdCBjbGVhbl9zdWJ0cmVlKCkgZGVhbGxvY2F0ZXMKICAgYWxsIGNvbnRleHQgY2FjaGUgbm9kZXMuCgoyMDEwLTEwLTIyIDA4OjQ5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBuZXRzbm1wX2NhY2hlX2ZyZWUoKTogQSBtb3JlIGRldGFpbGVkIG1lc3NhZ2UgaXMKICAgbm93IGxvZ2dlZCB3aGVuIGF0dGVtcHRpbmcgdG8gZnJlZSBhIGNhY2hlIHRoYXQgaXMgc3RpbGwgaW4gdGhlCiAgIGNhY2hlIGxpc3QuCgoyMDEwLTEwLTIyIDA2OjM5ICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBSZXZlcnRlZCBsdG1haW4uc2ggY2hhbmdlcyBmcm9tIHIxOTUyMi4KCjIwMTAtMTAtMjIgMDY6MzQgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbHRtYWluLnNoOgoKICAgUmVnZW5lcmF0ZWQgYXV0b2NvbmYvYXV0b21ha2UvbGlidG9vbC1nZW5lcmF0ZWQgZmlsZXMgYnkgcnVubmluZwogICBhdXRvcmVjb25mIC1mLgoKMjAxMC0xMC0yMSAwNzo1MSAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgUmVhcHBsaWVkIHIxODcyNityMTg3NjY6IG1ha2UgbGlidG9vbCBzdXBwb3J0IC1mc3RhY2stcHJvdGVjdG9yKi4KICAgU2VlIGFsc28KICAgaHR0cDovL2Jsb2cuZ21hbmUub3JnL2dtYW5lLmNvbXAuZ251LmxpYnRvb2wuYnVncy9tb250aD0yMDEwMDYwMQogICBmb3IgdGhlIGNvbmZpcm1hdGlvbiB0aGF0IHRoaXMgaXMgYSBsaWJ0b29sIGJ1Zy4KCjIwMTAtMTAtMjAgMjA6MTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEF2b2lkIHRoYXQgbmV0c25tcF9jaGVja19kZWZpbmVkbmVzcygpIHRyaWdnZXJzIGEgYnVpbGQgZmFpbHVyZQogICB3aGVuIGNvbXBpbGVkIGFnYWluc3Qgb2xkIFZhbGdyaW5kIGhlYWRlcnMuIE5vdGU6IHRoZSBpbnRyb2R1Y2VkCiAgIGNoZWNrIGlzIHN0cmljdGVyIHRoYW4gbmVjZXNzYXJ5IC0gVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRSgpCiAgIHdhcyBpbnRyb2R1Y2VkIGluIFZhbGdyaW5kIDMuNS4wIG9yIGJlZm9yZSAobm90IHN1cmUgd2hpY2gKICAgdmVyc2lvbikuCgoyMDEwLTEwLTIwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBhZGRlZCBhIGNvbW1lbnQgaW4gY29kZSBub3RlIHRoYXQgdGhpcyByZXF1aXJlcyBhIGZhaXJseSByZWNlbnQKICAgdmFsZ3JpbmQKCjIwMTAtMTAtMjAgMTc6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlcmFuIGF1dG9jb25mIGFmdGVyIHVwZGF0aW5nIGxpYnRvb2wKCjIwMTAtMTAtMjAgMTY6NTkgIGhhcmRha2VyCgogICAqICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGluc3RhbGwtc2gsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNCwgICAKICAgICAgbTQvbHRvcHRpb25zLm00LCBtNC9sdHZlcnNpb24ubTQsIG00L2x0fm9ic29sZXRlLm00OgoKICAgdXBkYXRlIHRvIGxpYnRvb2wgMi40CgoyMDEwLTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGRpc3QvYXV0b2NvbmYtdmVyc2lvbjoKCiAgIHVwZGF0ZWQgdG8gYXV0b2NvbmYgMi42OAoKMjAxMC0xMC0yMCAxNDoyNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jLCAgIAogICAgICB3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX2R1cGxpY2F0ZV92YXJpYWJsZSgpCiAgIGFuZCBuZXRzbm1wX2NhY2hlX2hhbmRsZXJfb3duc19jYWNoZSgpLgogICBDSEFOR0VTOiBhZ2VudDogTWVtb3J5IGFsbG9jYXRlZCBieSBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQogICBmb3Igc3RvcmluZyBTTk1QIHZhcmlhYmxlcyBpcyBub3cgZnJlZWQgd2hlbiB0aGUgYXNzb2NpYXRlZAogICBoYW5kbGVyIGlzIHVucmVnaXN0ZXJlZC4KICAgQ0hBTkdFUzogYWdlbnQ6IENhbGxiYWNrIGZ1bmN0aW9uIGRhdGEgZGVhbGxvY2F0aW9uIGRvZXMgbm8KICAgbG9uZ2VyIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBBZ2VudFggc2Vzc2lvbiAtIHRoZQogICBtZW1vcnkgdGhhdCB3YXMgYWxsb2NhdGVkIGZvciBBZ2VudFggc2Vzc2lvbnMgaXMgbm93IGRlYWxsb2NhdGVkCiAgIGp1c3QgYXMgdGhhdCBmb3IgYW55IG90aGVyIHNlc3Npb24uIFRoaXMgZml4ZXMgYSBsZWFrLWF0LWV4aXQuCiAgIENIQU5HRVM6IGFnZW50OiBOb3RpZnkgZmlsdGVyIHRhYmxlOiBDYWxsYmFjayBmdW5jdGlvbiBkYXRhCiAgIGRlYWxsb2NhdGlvbiBkb2VzIG5vIGxvbmdlciBmcmVlIHRoZSBkYXRhIGluCiAgICogICAgICpzbm1wTm90aWZ5RmlsdGVyVGFibGVfaWZfY3R4LmNvbnRhaW5lciAtIHRoaXMgaXMgbm93IGRvbmUgYnkgIAogICAgICAgc2h1dGRvd25fc25tcE5vdGlmeUZpbHRlclRhYmxlKCkuICAgIENIQU5HRVM6IFdpbjMyOgogICAgICBzaHV0ZG93bl9zbm1wTm90aWZ5RmlsdGVyVGFibGUoKSBhbmQKCiAgIHNodXRkb3duX3dpbkV4dERMTCgpIGFyZSBub3cgaW52b2tlZCB3aGVuIHRoZSBOZXQtU05NUCBzZXJ2aWNlIGlzCiAgIHN0b3BwZWQuCgoyMDEwLTEwLTIwIDEzOjQ3ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jOgoKICAgVW5pdC10ZXN0aW5nLCBUMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWI6IGFkZGVkIGluaXRfYWdlbnQoKSBhbmQKICAgc2h1dGRvd25fYWdlbnQoKSBjYWxscy4KCjIwMTAtMTAtMjAgMTM6MTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgRml4IG5vbi1BTlNJIGZ1bmN0aW9uIGhlYWRpbmcKCjIwMTAtMTAtMjAgMTI6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgZml4IGlwQ2lkclJvdXRlVGFibGUgKG1hc2spIGZvciBsaXR0bGUgZW5kaWFuIHN5c3RlbXMKCjIwMTAtMTAtMjAgMTA6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBzbm1wX3Nlc3Nfc2Vzc2lvbl9sb29rdXAoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IENhbGwgc2h1dGRvd25fbWFzdGVyX2FnZW50KCkgYW5kIHNodXRkb3duX2FnZW50KCkKICAgZHVyaW5nIHNodXRkb3duLgogICBDSEFOR0VTOiBhZ2VudDogVGhlIGZ1bmN0aW9uIGNsZWFuX3N1YnRyZWUoKSBkb2VzIG5vIGxvbmdlcgogICB0cmlnZ2VyIGRvdWJsZSBmcmVlcyBhbmQgaW52YWxpZCBtZW1vcnkgcmVhZHMuIE5vdGU6IHRoaXMKICAgZnVuY3Rpb24gd2FzIGFscmVhZHkgd3JvbmcgYXQgdGhlIHRpbWUgaXQgd2FzIGludHJvZHVjZWQgKHBhdGNoCiAgICM3MjQ5MjUgLyByODUzMSwgSnVseSAyMDAzKS4KICAgQ0hBTkdFUzogYWdlbnQ6IFJlbW92ZWQgYSBjb21tZW50IGluIG5ldHNubXBfaGFuZGxlcl9mcmVlKCkgdGhhdAogICBpcyBub3cgb2Jzb2xldGUgYmVjYXVzZSBvZiB0aGUgY2xlYW5fc3VidHJlZSgpIGNoYW5nZXMuCiAgIENIQU5HRVM6IGFnZW50OiBNb2RpZmllZCBuZXRzbm1wX2RlcmVnaXN0ZXJfYWdlbnRfbnNhcCgpIHN1Y2gKICAgdGhhdCBpdCBuZXZlciBleGFtaW5lcyBzZXNzaW9ucyB0aGF0IGFscmVhZHkgaGF2ZSBiZWVuIGNsb3NlZC4gSXQKICAgaXMgZm9yIHRoaXMgY2hhbmdlIHRoYXQgaXQgd2FzIG5lY2Vzc2FyeSB0byBpbnRyb2R1Y2UgdGhlIG5ldwogICBmdW5jdGlvbiBzbm1wX3Nlc3Nfc2Vzc2lvbl9sb29rdXAoKS4KCjIwMTAtMTAtMTkgMjM6NDkgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgbWlzc2luZyBwcmVjb25kaXRpb25zCgoyMDEwLTEwLTE5IDIyOjExICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgZG9uJ3QgZGVmYXVsdCB0byBhcHBseWluZyB0byA1LjIKCjIwMTAtMTAtMTkgMjI6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhZGRlZCB0aGUgNS42IGJyYW5jaAoKMjAxMC0xMC0xOSAyMToxMyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEJVRyAzMDc5MDcyIGZyb20gRGF2ZSBCZWFsOiBmaXggYnVmZmVyIG92ZXJmbG93IGZyb20gYmFkIHVzZSBvZgogICBzdHJuY2F0CgoyMDEwLTEwLTE5IDIwOjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIFBBVENIOiAzMDg1Mjk1IGZyb20gQmlsbCBGZW5uZXI6IHJlY29nbml6ZSBMSVNURU4gc3RhdGUgYWdhaW4KCjIwMTAtMTAtMTkgMjA6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYzoKCiAgIEZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0xMC0xOSAyMDowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgRml4IHJldHVybmluZyBnYXJiYWdlIGluIGhyU1dJbnN0YWxsZWROYW1lIChzZWUgcmV2IDE5NDg0IGZvcgogICBmdXJ0aGVyIG5vdGVzKQoKMjAxMC0xMC0xOSAxOTo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bnNhZmUgKCUpIGRldmljZSBuYW1lcwoKMjAxMC0xMC0xOSAxOTo1NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgU29sYXJpcyBkb2VzIG5vdCB1c2UgZ2V0c3RhdCwgc28gZG9udCBkZWNsYXJlIGl0CgoyMDEwLTEwLTE5IDE5OjU2ICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICB1ZHAvdGNwIGNvbmZ1c2lvbiBpbiBkZWJ1ZyBoYW5kbGUKCjIwMTAtMTAtMTkgMTk6NTQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQWJvcnQgYWZ0ZXIgYmFkIC1DPyBvcHRpb24KCjIwMTAtMTAtMTkgMTk6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRGVsZXRlIHJlZHVuZGFudCBleHRlcm4gZGVjbGFyYXRpb25zCgoyMDEwLTEwLTE5IDE4OjA4ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBBdm9pZCB0aGF0IE1TVkMgMjAxMCBwcmludHMgYSB3YXJuaW5nCiAgIG1lc3NhZ2UgYWJvdXQgcmVkZWZpbmluZyBFQUREUklOVVNFLgoKMjAxMC0xMC0xOSAxODowNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgTVNWQyByZXBvcnRzIGEgd2FybmluZyBtZXNzYWdlIGFib3V0CiAgIHJlZGVmaW5pdGlvbiBvZiB0aGUgbWFsbG9jKCkgbWFjcm8gZHVyaW5nIGJ1aWxkaW5nIHRoZSBOZXQtU05NUAogICBzb3VyY2UgY29kZS4KCjIwMTAtMTAtMTkgMDc6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEZhY3RvciBvdXQgY29tbW9uIGNvbmZpZ19hZGRfbWliIHN0YXRtZW50cwoKMjAxMC0xMC0xOCAxNDoyMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBNYXJrIHRoZSBwcm9wZXIgaGFuZGxlciB0aGF0IG93bnMgdGhlIHRhYmxlIHJlZ2lzdHJhdGlvbgogICBpbmZvcm1hdGlvbi4KCjIwMTAtMTAtMTggMTA6NTQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgZnVuY3Rpb25zIG5ldHNubXBfaGFuZGxlcl9vd25zX3RhYnJlcSgpLAogICBuZXRzbm1wX3JlZ2lzdHJhdGlvbl9vd25zX3RhYnJlcSgpLCBuZXRzbm1wX2l0ZXJhdG9yX2Nsb25lKCkuCiAgIEV4cG9ydGVkIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fY2xvbmUoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IE1vZGlmaWVkIG5ldHNubXBfaXRlcmF0b3JfZGVsZXRlX3RhYmxlKCkgc3VjaAogICB0aGF0IGl0IGZyZWVzIHRoZSB0YWJsZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24gc3RvcmVkIGluIGEKICAgdGFibGUgaXRlcmF0b3IgdG9vLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3JfaGFuZGxlcigpCiAgIHN1Y2ggdGhhdCB0aGUgdGFibGUgaXRlcmF0b3IgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gaXMgZnJlZWQKICAgd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzIGZyZWVkLgogICAKICAgUmVzdG9yZWQgdGhlIGJlaGF2aW9yIG9mIG5ldHNubXBfZ2V0X3RhYmxlX2hhbmRsZXIoKSB0byB0aGF0IG9mCiAgIHIxOTQ0OSwgdGhhdCBpcywgbm90IHNldHRpbmcgdXAgdGhlIGRhdGFfZnJlZSBwb2ludGVyIGJlY2F1c2Ugbm90CiAgIGFsbCBjYWxsZXJzIG9mIG5ldHNubXBfZ2V0X3RhYmxlX2hhbmRsZXIoKSBleHBlY3QgdGhhdCB0YWJsZQogICByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24gaXMgZnJlZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzCiAgIGZyZWVkLgoKMjAxMC0xMC0xOCAxMDozNCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3RuZXNzLgoKMjAxMC0xMC0xOCAwODo1MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBXaGVuIHNubXBkLmV4ZSBpcyBzdGFydGVkIGluIGEgY29tbWFuZCBwcm9tcHQKICAgd2luZG93LCB0aGUgc25tcGQgcHJvY2VzcyBub3cgc3RvcHMgdXBvbiB0aGUgZmlyc3Qga2V5IHByZXNzLgogICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBkZWJ1ZyBzbm1wZC5leGUgZm9yIG1lbW9yeSBsZWFrcy4KCjIwMTAtMTAtMTggMDY6MjUgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDIDYuCgoyMDEwLTEwLTE4IDA2OjE1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHRoZSBzYW1lIGF1dG9jb25mIHN5bWJvbCB0byBkZWNpZGUgYm90aCBpZgogICBzdHJjYXNlY21wIHNob3VsZCBiZSBkZWNsYXJlZCBhbmQgaWYgaXQgc2hvdWxkIGJlIGRlZmluZWQuCgoyMDEwLTEwLTE3IDE4OjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMgdHJpZ2dlcmVkIGJ5CiAgIGNsZWFuaW5nIHVwIHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCBmb3IgZW1iZWRkZWQgUGVybCBzdXBwb3J0LgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZpeGVkIGEgZG91YmxlIGZyZWUgYXQgZXhpdCB0aGF0IHdhcwogICB0cmlnZ2VyZWQgYnkgY2xlYW5pbmcgdXAgdGhlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGZvciBlbWJlZGRlZAogICBQZXJsIHN1cHBvcnQuCiAgIAogICBWYWxncmluZCByZXBvcnRlZCB0aGF0IGRvdWJsZSBmcmVlIGFzIGZvbGxvd3M6CiAgIAogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA0CiAgIGF0IDB4NTlEMDUwMTogcGVybF9kZXN0cnVjdCAoaW4KICAgL3Vzci9saWIvcGVybDUvNS4xMi4xL3g4Nl82NC1saW51eC10aHJlYWQtbXVsdGkvQ09SRS9saWJwZXJsLnNvKQogICBieSAweDU0NERGOEU6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NikKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBBZGRyZXNzIDB4NzY2MGY4OCBpcyA1NiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDIsOTEyIGZyZWUnZAogICBhdCAweDRDMjY0OTY6IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MzY2KQogICBieSAweDU0NERGOUE6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NykKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEREFERjI6IF9fc2VsZWN0X25vY2FuY2VsIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NDA0RTIwOiBtYWluIChzbm1wdHJhcGQuYzoxMjU4KQoKMjAxMC0xMC0xNyAxNzozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQKICAgdW5pbml0aWFsaXplZCBkYXRhIGZvciB0aGUgYnVmZmVycyByZXR1cm5lZCBieQogICBuZXRzbm1wX2NhbGxiYWNrX3JlY3YoKSBhbmQgbmV0c25tcF9jYWxsYmFja19ob29rX2J1aWxkKCkuCgoyMDEwLTEwLTE3IDE2OjU3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogdGFibGVfaGVscGVyX2hhbmRsZXIoKSwgNjQtYml0IGFyY2hpdGVjdHVyZXM6CiAgIGF2b2lkIHBhc3NpbmcgYSBwb2ludGVyIHRvIGEgMzItYml0IHZhbHVlIHRvIGEgZnVuY3Rpb24gdGhhdAogICBleHBlY3RzIGEgcG9pbnRlciB0byBhIDY0LWJpdCB2YWx1ZSAocGFyc2Vfb25lX29pZF9pbmRleCgpKS4gTm90CiAgIHN1cmUgd2hhdCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgYnVnIHdlcmUuIEl0IG1pZ2h0IGhhdmUgY2F1c2VkCiAgIHZlcnkgc3RyYW5nZSB0YWJsZSBiZWhhdmlvciBvbiA2NC1iaXQgYmlnIGVuZGlhbiBzeXN0ZW1zLgogICBGb3VuZCB0aGlzIHZpYSBWYWxncmluZC4KCjIwMTAtMTAtMTcgMTY6NTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBoclNXUnVuUGF0aCBjb250YWlucyB0cmFpbGluZyBnYXJiYWdlCiAgIGNoYXJhY3RlcnMgb24gTGludXggc3lzdGVtcy4KICAgRm91bmQgdGhpcyBieSBhbmFseXppbmcgYSBWYWxncmluZCBjb21wbGFpbnQuIEZvciBhbnlvbmUgd2hvIGlzCiAgIHdvbmRlcmluZyB3aHkgdGhpcyBwYXRjaCBtYWtlcyBzZW5zZSwgYSBxdW90ZSBmcm9tIHRoZSBnbGliYwogICBzbnByaW50ZigpIGRvY3VtZW50YXRpb24KICAgKGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL21hbnVhbC9odG1sX25vZGUvRm9ybWF0dGVkLU91dHB1dC1GdW5jdGlvbnMuaHRtbCk6CiAgIDxxdW90ZT4KICAgVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd2hpY2ggd291bGQgYmUKICAgZ2VuZXJhdGVkIGZvciB0aGUgZ2l2ZW4gaW5wdXQsIGV4Y2x1ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gSWYKICAgdGhpcyB2YWx1ZSBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHNpemUsIG5vdCBhbGwgY2hhcmFjdGVycyBmcm9tCiAgIHRoZSByZXN1bHQgaGF2ZSBiZWVuIHN0b3JlZCBpbiBzLgogICA8L3F1b3RlPgogICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBzdGFuZGFyZCBiZWhhdmlvci4gQSBxdW90ZQogICBmcm9tIGh0dHA6Ly9vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA3OTA4Nzk5L3hzaC9zbnByaW50Zi5odG1sOgogICA8cXVvdGU+CiAgIFJFVFVSTiBWQUxVRQogICBVcG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiwgdGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgbnVtYmVyIG9mCiAgIGJ5dGVzIHRyYW5zbWl0dGVkIGV4Y2x1ZGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBpbiB0aGUgY2FzZSBvZgogICBzcHJpbnRmKCkgb3Igc25wcmludGYoKSBvciBhIG5lZ2F0aXZlIHZhbHVlIGlmIGFuIG91dHB1dCBlcnJvcgogICB3YXMgZW5jb3VudGVyZWQuCiAgIDwvcXVvdGU+CgoyMDEwLTEwLTE3IDE0OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogSXQgaXMgYWdhaW4gcG9zc2libGUgdG8gcnVuIGFuIGluZGl2aWR1YWwgdGVzdAogICB2aWEgdGhlIHNjcmlwdCB0ZXN0aW5nL1JVTlRFU1RTLgoKMjAxMC0xMC0xNyAxNDoyOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIHRoZSBmdW5jdGlvbiBuZXRzbm1wX2NoZWNrX2RlZmluZWRuZXNzKCksCiAgIHdoaWNoIGhlbHBzIHRvIGZpbmQgdGhlIGNhdXNlIG9mIHVuZGVmaW5lZCB2YWx1ZSBlcnJvcnMgYXMKICAgcmVwb3J0ZWQgYnkgVmFsZ3JpbmQuCgoyMDEwLTEwLTE3IDE0OjI0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaDoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgZGVjbGFyYXRpb246IHRoZSBmdW5jdGlvbiBhZ2VudHhfYnVpbGQoKSBoYXMKICAgYmVlbiByZW1vdmVkIGEgbG9uZyB0aW1lIGFnby4KCjIwMTAtMTAtMTcgMTQ6MDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBWYWxncmluZCBoZWFkZXIgZmlsZXMuCgoyMDEwLTEwLTE3IDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRm9sbG93LXVwIGZvciByMTk0Nzc6IG1hZGUgdGhlIGluc2VydGVkIHR5cGVjYXN0cyBwb3J0YWJsZS4KCjIwMTAtMTAtMTcgMTE6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgoKMjAxMC0xMC0xNyAwOTozNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBhIGZldyBjb21waWxlciB3YXJuaW5ncyBieSBpbnNlcnRpbmcgYXBwcm9wcmlhdGUgY2FzdHMuCgoyMDEwLTEwLTE3IDA5OjI1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgoKMjAxMC0xMC0xNyAwMTo0MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGFnZW50L3NubXBkLmM6CgogICBORVdTOiBzbm1wZDogUmVtb3ZlIHV0aWxfZnVuY3MvRXhpdCBmcm9tIHRoZSByZXF1aXJlbWVudCBzZXRzIG9mCiAgIHV0aWxfZnVuY3MgYW5kIGRlZmF1bHRfbW9kdWxlcy4KICAgTkVXUzogc25tcGQ6IE5ldmVyIHVzZSBFeGl0IHRvIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCgoyMDEwLTEwLTE2IDIyOjMyICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBzZXR0aW5nIG9mIHRoZSBhcmd2cmVzdGFydCogdmFyaWFibGVzCiAgIG9wdGlvbmFsIG9uIFVTSU5HX1VUSUxfRlVOQ1NfUkVTVEFSVF9NT0RVTEUuCiAgIE5FV1M6IHNubXBkOiBSZW1vdmUgdXRpbF9mdW5jcy9yZXN0YXJ0IGZyb20gdGhlIHJlcXVpcmVtZW50IHNldHMKICAgb2YgdXRpbF9mdW5jcyBhbmQgZGVmYXVsdF9tb2R1bGVzLgogICBDSEFOR0VTOiBzbm1wZDogQWRkIHV0aWxfZnVuY3MvcmVzdGFydCB0byB0aGUgcmVxdWlyZW1lbnQgc2V0IG9mCiAgIHVjZC1zbm1wL3ZlcnNpb25pbmZvLgoKMjAxMC0xMC0xNiAyMjowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBzbm1wZDogRXh0ZW5kIHRoZSBkb2N1bWVudGF0aW9uIGZvciBkYXRhX2Nsb25lIGFuZAogICBkYXRhX2ZyZWUKCjIwMTAtMTAtMTYgMjI6MDMgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgaXQgcG9zc2libGUgdG8gY29weSB3YXRjaGVkIGRhdGEgaXRlbXMKICAgd2l0aG91dCBtZW1vcnkgbGVha3MuCgoyMDEwLTEwLTE2IDIyOjAxICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGNtcAoKMjAxMC0xMC0xNiAxOTo0NCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBEbyBub3QgbGVhayB0aGUgbGltaXRzIG9mIHNjYWxhcl9ncm91cCBvYmplY3RzIG9uCiAgIHNodXRkb3duLgoKMjAxMC0xMC0xNiAwODozNyAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIFNwZWxsaW5nIGZpeDogZHVscGljYXRlIC0+IGR1cGxpY2F0ZS4KCjIwMTAtMTAtMTYgMDg6MzQgIGJ2YXNzY2hlCgogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jOgoKICAgQWRkZWQgbW9yZSB0ZXN0IGNvZGUuCgoyMDEwLTEwLTE2IDA4OjMzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRm9sbG93LXVwIGZvciByMTk0NjU6IGhhbmRsZSBvdXQtb2YtbWVtb3J5IHByb3Blcmx5IC8gcmVtb3ZlZCBhCiAgIGR1cGxpY2F0ZSBmdW5jdGlvbi4KCjIwMTAtMTAtMTUgMTk6MTcgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhZ2VudGxpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYWdlbnRsaWJfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jLAogICAgICAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEludHJvZHVjZWQgbmV3IHRlc3QgdHlwZSBuZXh0IHRvIGNhcHAgYW5kIGNsaWI6CiAgIGNhZ2VudGxpYi4KCjIwMTAtMTAtMTUgMTg6NTYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2xpYi5jOgoKICAgTkVXUzogc25tcGxpYjogQWRkZWQgbmV0c25tcF9taWJfaGFuZGxlci5kYXRhX2Nsb25lLCBhIGZ1bmN0aW9uCiAgIHBvaW50ZXIgdGhhdCBkZWZpbmVzIGhvdyB0byBjbG9uZSBuZXRzbm1wX21pYl9oYW5kbGVyLm15dm9pZC4KICAgTXVzdCBiZSBkZWZpbmVkIGlmIGFuZCBvbmx5IGlmIGRhdGFfZnJlZSBpcyBzZXQuIFRoZSBmdW5jdGlvbgogICBuZXRzbm1wX2hhbmRsZXJfZHVwKCkgZG9lcyBub3cgY2xvbmUgTUlCIGhhbmRsZXIgcHJpdmF0ZSBkYXRhIGlmCiAgIGRhdGFfY2xvbmUoKSBpcyBzZXQuIFByZXZpb3VzbHkgYWZ0ZXIgZHVwbGljYXRpbmcgYSBNSUIgaGFuZGxlcgogICBhbmQgdW5yZWdpc3RlcmluZyBvbmUgb2YgdGhlIHR3byBNSUIgaGFuZGxlcnMsIHRoZSBwcml2YXRlIGRhdGEKICAgcG9pbnRlciAobXl2b2lkKSBvZiB0aGUgb3RoZXIgYmVjYW1lIGEgZGFuZ2xpbmcgcG9pbnRlci4gTm90ZToKICAgYWRkaXRpb24gb2YgbmV0c25tcF9taWJfaGFuZGxlci5kYXRhX2Nsb25lIGlzIGFuIEFCSSBjaGFuZ2UuCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZGVkIG1vcmUgdGVzdCBjYXNlcyB0byB0aGUgaGFuZGxlcgogICByZWdpc3RyYXRpb24gdGVzdC4KCjIwMTAtMTAtMTUgMTg6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMTAtMTUgMTI6MzAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2xpYi5jOgoKICAgUmV2ZXJ0ZWQgcjE5NDYwIGJlY2F1c2UgaXQgbWFrZXMgc29tZSByZWdyZXNzaW9uIHRlc3RzIGZhaWwKICAgKFQxMjBwcm94eWdldF9zaW1wbGUsIFQxMjFwcm94eXNldF9zaW1wbGUsCiAgIFQxMjJwcm94eXNldGZhaWxfc2ltcGxlLCBUMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlKS4gRGlzYWJsZWQgdGhlCiAgIGhhbmRsZXIgZHVwbGljYXRpb24gdGVzdCBpbiBUMDA2IGJlY2F1c2UgaXQgdHJpZ2dlcnMgYSBjcmFzaAogICB3aXRob3V0IHIxOTQ2MC4KCjIwMTAtMTAtMTUgMTE6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IG5ldHNubXBfaGFuZGxlcl9kdXAoKTogZnJlZWluZyB0aGUgZHVwbGljYXRlZAogICBoYW5kbGVyIG5vIGxvbmdlciBjYXVzZXMgYSBjcmFzaCAoZG91YmxlIGZyZWUpIHdoZW4KICAgaGFuZGxlci0+bXl2b2lkIG9mIHRoZSBvcmlnaW5hbCBoYW5kbGVyIHdhcyBub24tTlVMTC4KCjIwMTAtMTAtMTUgMTE6MzIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2xpYi5jOgoKICAgQWRkZWQgYSB1bml0IHRlc3QgZm9yIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGFuZCBkZXJlZ2lzdHJhdGlvbi4KCjIwMTAtMTAtMTUgMTA6NTYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0CiAgIGNvbXBpbGVyLgoKMjAxMC0xMC0xNSAwOTo0NSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogc25tcF9zaHV0ZG93bigpOiBhZGRlZCBjYWxsIHRvCiAgIG5ldHNubXBfY2VydHNfc2h1dGRvd24oKS4KCjIwMTAtMTAtMTUgMDY6NDUgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRm9sbG93LXVwIGZvciByMTk0NTA6IGxldCBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCgpIGZyZWUKICAgYWxsIHRhYmxlX2RhdGFzZXQtcmVsYXRlZCBtZW1vcnkuCgoyMDEwLTEwLTE0IDIzOjE1ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gcmVnZW5lcmF0ZSB1c2luZyBhdXRvY29uZgogICAyLjY4LgoKMjAxMC0xMC0xNCAyMzowMSAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJlIGNvbnN0IGNvcnJlY3Qgb3ZlciBjYWxscyB0byBzdHIqIGZ1bmN0aW9ucy4KCjIwMTAtMTAtMTQgMTU6MTkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2xpYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZnVuY3Rpb24gbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbgogICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkgaW4gYSBwdWJsaWMgYWdlbnQgaGVhZGVyIGZpbGUuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIGluCiAgIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IHVucmVnaXN0ZXJpbmcgYQogICB0YWJsZSBoYW5kbGVyLgogICBDSEFOR0VTOiB0ZXN0aW5nOiBVbml0IHRlc3RzIGNhbiBub3cgaW52b2tlIGZ1bmN0aW9ucyBmcm9tCiAgIGxpYmFnZW50LgogICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGRlZCB1bml0IHRlc3QgZm9yIHRhYmxlX2RhdGFzZXQuCgoyMDEwLTEwLTE0IDE0OjA1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgVW5pdCB0ZXN0IFQwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOiBGaXhlZCBsZWFrcy1hdC1leGl0LgoKMjAxMC0xMC0xNCAwODo0MyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBJdCBpcyBub3cgcG9zc2libGUgdG8gYW5hbHl6ZSB0aGUgdW5pdCB0ZXN0cwogICB3aXRoIFZhbGdyaW5kIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcwogICBTTk1QX1NBVkVfVE1QRElSIGFuZCBEWU5BTUlDX0FOQUxZWkVSLiBBbiBleGFtcGxlOiAoZXhwb3J0CiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIjsgY2QgdGVzdGluZyAmJgogICAuL1JVTkZVTExURVNUUyAtZyB1bml0LXRlc3RzKQoKMjAxMC0xMC0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIFVuaXQgdGVzdCBUMDA0c25tcF9lbnVtX2NsaWIuYzogYWRkZWQgdGVzdCBoZWFkZXIgLyBhZGRlZCBhIHRlc3QKICAgY2FzZS4KCjIwMTAtMTAtMTQgMDg6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgRml4ZWQgbGVha3MtYXQtZXhpdCBpbiB1bml0IHRlc3QgVDAwMmNvbnRhaW5lcnNfY2xpYi5jLgoKMjAxMC0xMC0xNCAwODozOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIEZpeGVkIGEgbGVhay1hdC1leGl0IGluIHVuaXQgdGVzdCBUMDAxZGVmYXVsdHN0b3JlX2NsaWIuYy4KCjIwMTAtMTAtMTQgMDg6MzYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgY2FsbGluZwogICBzZV9hZGRfcGFpcl90b19saXN0KCkgd2l0aCBhIHZhbHVlIHRoYXQgYWxyZWFkeSBleGlzdGVkIGluIHRoZQogICBsaXN0LgoKMjAxMC0xMC0xNCAwNzoxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZzoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMTAtMTQgMDc6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMGNvbmZpZ3VyZV9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdmFyaWFibGUgJFNOTVBfQkFTRURJUiBpcyBhdmFpbGFibGUgaW4gdGhlCiAgIFQwMDBjb25maWd1cmUgdGVzdC4KCjIwMTAtMTAtMTQgMDY6MTkgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGVkCgoyMDEwLTEwLTE0IDA1OjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBRdWVsbCB3YXJuaW5ncwoKMjAxMC0xMC0xNCAwMzo1MCAgcnN0b3J5CgogICAqICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45LmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICB0ZXN0IGZvciBvcGVuc3NsIHNoYSAyMjQvMjU2LzM4NS81MTIgc3VwcG9ydCBpbnN0ZWFkIG9mCiAgIGhhcmRjb2RpbmcKCjIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgYWRkIE9VVFBVVEVOVlZBUlMgdG8gc2F2ZSBpbXBvcnRhbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzOyB3aGVuCiAgIFNOTVBfVkVSQk9TRQogICBpcyBzZXQsIHNhdmUgZW52IHZhcnMgYW5kIGNvbW1hbmQgdG8gaW5kaXZpZHVhbCBpbnZva2VkIGZpbGUgZm9yCiAgIGVhY2ggdGVzdDsKICAgc2F2ZSBlbnYgdmFycyBhbmQgY29tbWFuZCBmb3IgZWFjaCBTVEFSVFBST0cKCjIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGF1dG8tY3JlYXRlIHVzZXIgc3BlY2lmaWVkIFNOTVBfVE1QRElSIGFuZAogICBTTk1QX1RNUF9QRVJTSVNURU5URElSIHRvbzsgZGVmYXVsdCBTTk1QX1RNUF9QRVJTSVNURU5ESVIgYmFzZWQKICAgb24gU05NUF9UTVBESVIKICAgZm9yIHVzZXIgc3BlY2lmaWVkIFNOTVBfVE1QRElSCgoyMDEwLTEwLTE0IDAzOjQ5ICByc3RvcnkKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBidWlsZGluZzogY2hlY2sgZm9yIC9kZXYva21lbSBpbnN0ZWFkIG9mIGFzc3VtaW5nIGl0CiAgIGV4aXN0cyBhbmQgaGFyZGNvZGluZyB3aGVuIGl0IGlzIG5vdCB0aGVyZQoKMjAxMC0xMC0xNCAwMzoyOCAgcnN0b3J5CgogICAqICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IHRyYW5zcG9ydFNlY3VyaXR5TGV2ZWwgYmFzZWQgb24gc3NsIHNlc3Npb24gYWxnb3JpdGhtcwoKMjAxMC0xMC0xNCAwMzoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFkZCBuZXRzbm1wX29wZW5zc2xfbnVsbF9jaGVja3MKCjIwMTAtMTAtMTQgMDM6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2xlYW51cCBzc2wvYmlvIG9uIGZhaWxlZCBjb25uZWN0aW9uCgoyMDEwLTEwLTE0IDAzOjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMTAtMTQgMDM6MTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMTAtMTAtMTQgMDM6MTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvCgoyMDEwLTEwLTE0IDAzOjEyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGNoZWNrIGZvciBudWxsIGJlZm9yZSBkZXJlZgoKMjAxMC0xMC0xMyAyMDoxMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogR2VuZXJhdGUgYSBub3JtYWwgI2xpbmUgZGlyZWN0aXZlIGFzIHBlciBDOTkKICAgaW5zdGVhZCBvZiB0aGUgY29tcGlsZXItc3BlY2lmaWMgIzxuPi1kaXJlY3RpdmUuCgoyMDEwLTEwLTEzIDE2OjUzICBoYXJkYWtlcgoKICAgKiBkaXN0L2F1dG9jb25mLXZlcnNpb24sIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMGNvbmZpZ3VyZToKCiAgIGFkZGVkIGEgYXV0b2NvbmYgdmVyc2lvbiBjaGVja2luZyB0ZXN0IHRvIGNhdGNoIGRldmVsb3BlcnMgYW5kCiAgIHNjcmlwdHMgdGhhdCBmYWlsIHRvIHVzZSB0aGUgY29ycmVjdCBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTEwLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFBhdGNoIGZyb20gQmlsbCBGZW5uZXIgdG8gZml4IG9ubHkgaW5jbHVkaW5nIHRoZSBzZXNzaW9uX2FwaS5oCiAgIGZpbGUKCjIwMTAtMTAtMTMgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDIxOiBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgYWdhaW4gcmVwb3J0cwogICB0aGUgcHJvcGVyIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciBpbmZvcm1hdGlvbiB3aGlsZSBjb21waWxpbmcKICAgdW5pdCB0ZXN0cy4KCjIwMTAtMTAtMTMgMTE6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJhdGNoIGJ1aWxkIHdpdGggT3BlblNTTCBlbmFibGVkIGFuZAogICB3aXRoIHJlY2VudCBPcGVuU1NMIGRldmVsb3BtZW50IGZpbGVzIHdvcmtzIGFnYWluLgoKMjAxMC0xMC0xMyAwOTo1OCAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfcnVuOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBSdW5uaW5nIHRoZSB1bml0IHRlc3RzIGRvZXMgbm93IHdvcmsgKGNkIHRlc3RpbmcKICAgJiYgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykuCiAgIENIQU5HRVM6IE1pbkdXOiBSdW5uaW5nIHRoZSB1bml0IHRlc3RzIGRvZXMgbm93IHdvcmsgKGNkIHRlc3RpbmcKICAgJiYgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykuCgoyMDEwLTEwLTEzIDA4OjAwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgRml4ZWQgYSBzcGVsbGluZyBlcnJvciBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTEwLTEzIDA3OjQzICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTcGVsbGluZyBmaXhlcy4KCjIwMTAtMTAtMTIgMTQ6MDIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBzZV9jbGVhcl9zbGlzdCgpLgoKMjAxMC0xMC0xMiAxMToxMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIEFkZGVkIG1vcmUgdGVzdCBjYXNlcyB0bwogICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jLgogICBWZXJpZmllZCB3aXRoIFZhbGdyaW5kIHRoYXQgZXZlcnl0aGluZyBkb2VzIG5vdyB3b3JrIGNvcnJlY3RseQogICBhbmQgdGhhdCB0aGUKICAgdGVzdCBwcm9ncmFtIGlzIGZyZWUgb2YgbGVha3MtYXQtZXhpdC4KCjIwMTAtMTAtMTIgMTE6MTEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEludm9raW5nIHNlX2NsZWFyX3NsaXN0KCkgZG9lcyBubyBsb25nZXIgY3JlYXRlCiAgIGEgZGFuZ2xpbmcgcG9pbnRlci4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbGVha3MtYXQtZXhpdCB0cmlnZ2VyZWQgYnkgdXNpbmcgdGhlCiAgIHNubXBfZW51bSBjb2RlLgogICBDSEFOR0VTOiBzbm1wbGliOiBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyKCksCiAgIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkgYW5kIGNsZWFyX3NubXBfZW51bSgpLiBNYWRlIHNubXBfZW51bQogICBleGFtcGxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZSBieSBhZGRpbmcgc3RyZHVwKCkKICAgY2FsbHMgYW5kIGFkZGVkIGEgY2FsbCB0byBzZV9jbGVhcl9hbGxfbGlzdHMoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtIHRyaWdnZXJlZCBieQogICB0aGUgKHVuZG9jdW1lbnRlZCkgc25tcGQuY29uZiAiZW51bSIga2V5d29yZCBoYW5kbGVyIC0gc3RvcmluZwogICBwb2ludGVycyB0byBzdHJpbmdzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgaW4gYSBnbG9iYWwgbGlzdCBkb2VzCiAgIG5vdCB3b3JrLgogICBDSEFOR0VTOiBzbm1wbGliOgoKMjAxMC0xMC0xMiAwNjoyNyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGliaGVscGVycywgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzA4NTE4NzogQnVpbGRpbmcgdmlhIHRoZSBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyBwcm9qZWN0IGZpbGUgKC5kc3cvLmRzcCkgd29ya3MgYWdhaW4uCgoyMDEwLTEwLTEyIDA1OjM1ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgZXh0ZXJuICJDIiBkZWNsYXJhdGlvbnMgdG8gYmUKICAgY29uc2lzdGVudC4gUmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZS4KCjIwMTAtMTAtMTEgMjE6NDEgIG5iYQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMTAtMTAtMTEgMjE6MzkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfYXB0LmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIFN1cHBvcnQgZm9yIGhyU1dJbnN0YWxsZWRUYWJsZSBmb3IgZHBrZy9hcHQtYmFzZWQgc3lzdGVtcwoKMjAxMC0xMC0xMSAyMDo0NiAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgc291cmNlcyBmb3IgU05NUC1UTFMtVE0tTUlCCgoyMDEwLTEwLTExIDIwOjQyICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDaGVjayBlYXJseSBmb3IgcGljbC5oCgoyMDEwLTEwLTExIDIwOjMxICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvc2Vuc29ycy5oOgoKICAgRml4IHdhcm5pbmdzIGZyb20gbG1zZW5zb3JNaWIKCjIwMTAtMTAtMTEgMjA6MzAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYzoKCiAgIEZpeCBuZXcgc3R5bGUgbG1zZW5zb3JNaWIgZm9yIFNvbGFyaXMgKHdhcyBpdCBldmVyIGNvbXBpbGVkCiAgIGJlZm9yZSkKCjIwMTAtMTAtMTEgMjA6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEZpeCBsbVNlbnNvcnMgZm9yIFNvbGFyaXMKCjIwMTAtMTAtMTEgMjA6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYzoKCiAgIEZpeCBhIFNvbGFyaXMgZmlsZSBkZXNjcmlwdG9yIGxlYWsKCjIwMTAtMTAtMTEgMjA6MjUgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE1ha2UgLS1kaXNhYmxlLWRldmVsb3BlciB3b3JrCgoyMDEwLTEwLTExIDE4OjIzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVXBkYXRlIHRoZSBsZW5ndGggb2Ygc3lzT2JqZWN0SUQgYXMgd2VsbCBhcyB0aGUKICAgZGF0YSB3aGVuIGl0IGlzIHNldCBmcm9tIGEgY29uZmlndXJhdGlvbiBmaWxlLgoKMjAxMC0xMC0xMSAxNzo1OCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGZyb20gIk5pZWxzIEJhZ2dlc2VuIjogU29tZSBzeXN0ZW1zIGRvIG5vdAogICBzdXBwb3J0IHRoZSAtRSBmbGFnIHRvIGdyZXAsIHVzZSBhdXRvY29uZiB0byBmaW5kIHRoZSByaWdodCBlZ3JlcAogICBhdCBhbGwgdGltZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LlJDMyAtPiBWNS42CgoyMDEwLTEwLTA3IDIwOjMzICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMTAtMDYgMTE6MzEgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBGaXggaXB2NiBnZW5lcmljIGNhc2Ugc28gdGVzdCBtYXRjaGVzIHZlcmlmaWNhdGlvbgoKMjAxMC0xMC0wMSAxNjo0NCAgZHRzMTIKCiAgICogbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFJld29yayBkZXNjcmlwdGlvbiBvZiBPSUQgbmFtZSBoYW5kbGluZyB0byBiZQogICBub3QgcXVpdGUgc28gaW5jcmVkaWJseSBvdXQgb2YgZGF0ZS4KCjIwMTAtMDktMjIgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGVyZy4uLiByZWFsbHkgdXNlIHRoZSByaWdodCBhdXRvY29uZiB2ZXJzaW9uIGJ5IHNldHRpbmcgdGhlIHBhdGgKICAgcmlnaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucmMyIC0+IFY1LjYucmMzCgoyMDEwLTA5LTIxIDIzOjUzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZWdlbmVyYXRlZCB3aXRoIHByb3BlciBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTA5LTIxIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDktMjEgMjM6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB2ZXJpZmllZCBwYXRjaCBmcm9tIHJzdG9yeSB0byBmaXggY2VydGlmaWNhdGUgbG9hZGluZyBvZgogICBpbmNvbXBsZXRlIGNoYWlucwoKMjAxMC0wOS0yMSAxODowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2ggMzA1ODM4ODogZnJvbSBjaHJpc2JvbHQ6IGRvbid0IHBhcnNlCiAgIGluY2x1ZGVBbGxEaXNrcyBpbiB0aGUgbWFpbiBzbm1wbGliIHJvdXRpbmVzCgoyMDEwLTA5LTIxIDE4OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzA2MjUyNjogZnJvbSBtYXJpb2c4NTogZml4IHNlY3VyaXR5CiAgIGVuZ2luZUlEIHNldHRpbmcgaW4gdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZQoKMjAxMC0wOS0yMSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBXaW4zMiBkb2N1bWVudGF0aW9uLgoKMjAxMC0wOS0yMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgUGF0Y2ggZnJvbSBGdWxrbyBIZXcgdG8gZml4IHBhdGNoIDI5MDAwNzggd2hpY2ggYnJva2Ugc3lzT2JqZWN0SUQKICAgbGVuZ3RocwoKMjAxMC0wOS0yMCAyMTozMiAgZHRzMTIKCiAgICogbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZjoKCiAgIERvY3VtZW50IC1DZiBpbiB0aGUgdHdvIG1hbiBwYWdlcyBzZXBhcmF0ZWx5LgoKMjAxMC0wOS0yMCAyMDoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMDY3NTQwOiBmcm9tIGpveWNlYW5tYWNoaW5lOiBGaXggSVB2NAogICBPSUQgaW5kZXhlcyBvbiA2NC1iaXQgYmlnLWVuZGlhbiBzeXN0ZW1zLgoKMjAxMC0wOS0yMCAxOToyNSAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgd2luMzIvQ29uZmlndXJlLCAgIAogICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgVW4tYnJlYWsgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTA5LTIwIDA5OjE4ICBidmFzc2NoZQoKICAgKiBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgbWFuLCB0ZXN0aW5nLCB3aW4zMjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdHMuCgoyMDEwLTA5LTE3IDEwOjM0ICBkdHMxMgoKICAgKiAgbWFuL2FnZW50eHRyYXAuMS5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCAKICAgICAgICBtYW4vc25tcHNldC4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAgIAogICAgICBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBSZW1vdmUgQ01VIGNvcHlyaWdodCBub3RpY2UgZnJvbSBtYW4gcGFnZXMgdGhhdCB3ZXJlIG5vdAogICBpbmhlcml0ZWQgZnJvbSBDTVUtU05NUCAoYW5kIHF1YWxpZnkgdGhlIGNvcHlyaWdodCBmb3IKICAgdGhvc2UgdGhhdCB3ZXJlKS4KCjIwMTAtMDktMTcgMDk6NTEgIGR0czEyCgogICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcF9hbGFybS4zLmRlZiwgbWFuL3NubXBfY29uZmlnLjUuZGVmLCAKICAgICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgIAogICAgICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSByZWZlcmVuY2VzIHRvIHJlZmxlY3QgbmV3IEFQSSBkb2N1bWVudGF0aW9uCiAgIHN0cnVjdHVyZS4KCjIwMTAtMDktMTAgMDQ6MjMgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBuZXcgdGVzdCogZW50cmllcyBmcm9tIHRoZSB0ZXN0aW5nCiAgIE1ha2VmaWxlLmluIHRvIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUuaW4KCjIwMTAtMDktMDggMTU6NDEgIGR0czEyCgogICAqICBtYW4vYWdlbnR4dHJhcC4xLmRlZiwgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsICAgCiAgICAgIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBtYW4vZml4cHJvYy4xLmRlZiwgICAKICAgICAgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZiwgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliMmMuY29uZi41LmluLCAgIAogICAgICBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLCBtYW4vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuMS5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wLWJyaWRnZS1taWIuMSwgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIAogICAgICAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLCAgIAogICAgICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsICAKICAgICAgIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZiwgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgCiAgICAgICAgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBuZXRzdGF0LjEuZGVmLAogICAgICAgICBtYW4vc25tcHNldC4xLmRlZiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsICAKICAgICAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgCiAgICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLAogICAgICBtYW4vc25tcHVzbS4xLmRlZiwgICAgbWFuL3NubXB2YWNtLjEuZGVmLCBtYW4vc25tcHdhbGsuMS5kZWYsCiAgICAgIG1hbi90a21pYi4xLmRlZiwgICAgbWFuL3RyYXB0b2VtYWlsLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgVXBkYXRlIG1hbiBwYWdlIGRhdGVzdGFtcHMgdG8gbWF0Y2ggdGhlIGxhdGVzdCAobm9uLXRyaXZpYWwpCiAgIGNvbnRlbnQgY2hhbmdlLgogICBTdXBwcmVzcyBmb3JjaW5nIG9mICJCZXJrZWxleSBEaXN0cmlidXRpb24iIGZvb3RlcgogICAoQWxsb3dzIE5ldC1TTk1QIHZlcnNpb24gaW5mb3JtYXRpb24gdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtYW4KICAgcGFnZSkKCjIwMTAtMDktMDggMDU6MzcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGVkCgoyMDEwLTA5LTA0IDA2OjM4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MzU2IGJ5CiAgIGNoYW5naW5nIHRoZSByZXR1cm4KICAgdHlwZSBvZiBuZXRzbm1wX3Rsc2Jhc2VfZnJlZV90bHNkYXRhKCkgZnJvbSB2b2lkKiB0byB2b2lkLgoKMjAxMC0wOS0wNCAwNjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MzIyIChwYXRjaAogICAzMDQ0NTEyKS4KICAgVGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byByZWFkX29iamlkKCkgd2FzIGFuIGludCBpbnN0ZWFkIG9mCiAgIHNpemVfdC4KICAgVGhpcyBjb3VsZCBoYXZlIGNhdXNlZCBtZW1vcnkgY29ycnVwdGlvbiBvbiA2NC1iaXQgc3lzdGVtcy4KCjIwMTAtMDktMDQgMDM6MDkgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOS0wNCAwMzowOCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDktMDQgMDE6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOS0wNCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTAzIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHRsc3RjcCBwYXJzaW5nIG9mIGhvc3QgbmFtZXMuCgoyMDEwLTA5LTAzIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIGNoZWNrIHRoZSByZXR1cm4gY29kZSBvZiBmZ2V0cyBhbmQgZm9wZW4gYmVmb3JlIGluc2VydGluZyB0aGUKICAgcmVzdWx0cy4KCjIwMTAtMDktMDMgMjI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUGF0Y2ggZnJvbSB0YW5kZXJzIHRvIGZpeCBicm9rZW4gYWxhcm1zIGFmdGVyIHRoZSBwcmV2aW91cwogICByZS1lbnRyYW50IHBhdGNoCgoyMDEwLTA5LTAzIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDktMDMgMjE6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTgxNDA6IGZyb20gdGFrZXZvczogY2hlY2sgdGhhdCBpbm9kZSBpcwogICBub24temVybwoKMjAxMC0wOS0wMyAyMTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQyODogZnJvbSB0YWtldm9zOiBmaXgKICAgZ2V0X3BpZF9mcm9tX2lub2RlIHdoZW4gdGhlIGlub2RlIGlzIG5vdCBmb3VuZC4KCjIwMTAtMDktMDMgMjA6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgZHVwbGljYXRlIHJldHVybiBiZWZvcmUgdGhlIGVycm9yIGNvZGVzIGdldCBzZXQuCgoyMDEwLTA5LTAxIDE4OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogTG9nIGJlZm9yZSByZXR1cm5pbmcuCgoyMDEwLTA5LTAxIDAyOjQzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIFRMUyBzZW5kX25vdGlmeSBvbiBjbG9zdXJlIGFuZCBzb21lIG1lbW9yeSBjbGVhbi11cCBwYXRjaGVzCgoyMDEwLTA4LTMxIDE3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPbmx5IHByaW50IHRoZSBzZWN1cml0eS9jb250ZXh0IEVuZ2luZUlEIG1pc21hdGNoIG5vdGUgdW5kZXIgVVNNCgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSByZWZlcmVuY2UgdG8gcmV2ZXJ0ZWQgcGF0Y2ggMzA0Mjc2NQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbm90ZSBvbiB3aGVyZSB0byBmaW5kIGNvbnRlbnQgdXNlZCB0byBnZW5lcmF0ZQogICBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHJldmVydCByMTkzNDIsIHBhdGNoIDMwNDI3NjUsIHdoaWNoIGJyb2tlIGNsaWVudCB0Y3AgZGlzY29ubmVjdAogICBoYW5kbGluZwoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggbW9yZSBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBjaGVjayBmb3IgY29uZiBlcnJvcnMgYWZ0ZXIgYWdlbnQgc3RhcnR1cDsgZW5hYmxlIGxvZ1RpbWVzdGFtcDsKICAgbWFrZSBzdXJlCiAgIGFsbCBjZXJ0IG5hbWUvdGFncyBhcmUgdW5pcXVlCgoyMDEwLTA4LTI0IDIxOjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvciBzdHJpbmcgdG8gZGlzY3VzcyB0aGUgcmlnaHQgZmFpbGVkIG9wZW5zc2wgbmV3CiAgIGludm9jYXRpb24KCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCjIwMTAtMDgtMTkgMjE6MjIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMToyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDgtMTkgMjE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDgtMTkgMjE6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICAvLyAtPiBDIGNvbW1lbnRzCgoyMDEwLTA4LTE5IDIwOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDMwNDI3NjU6IGZyb20gbWVoYWY6IG1ha2UKICAgc25tcF9zeW5jaF9yZXNwb25zZV9jYigpIHJlLWVudHJhbnQKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdHVybiBvZmYgY29va2llIGV4Y2hhbmdlcyB1bnRpbCBhIGNvbXBsZXRlIGNvZGUgc2V0IGNhbiBiZQogICB3cml0dGVuIHRvIHN1cHBvcnQgaXQgYmFzZWQgb24gdGhlIHJlcXVpcmVkIGZ1bmN0aW9uIGNhbGxiYWNrcwoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBhZGQgbWlzc2luZyBjYWxsIHRvIHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBhcyBuZWVkZWQKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBkaXNwbGF5aW5nIGEgYnl0ZSBhcyBzaW5nbGUgZGlnaXQgaGV4CiAgIHZhbHVlLCBkZWZhdWx0IHRvCiAgIHByZWZpeGluZyB3aXRoIDAgdW5sZXNzIHRoZXJlIGlzIGEgc2VwZXJhdG9yIG9yIGFkZGl0aW9uIGhpbnQKICAgZGF0YQoKMjAxMC0wOC0xNyAxMDozMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIGxhYmVsIHRoYXQgd2FzIHRyaWdnZXJlZAogICB3aGVuCiAgIGNvbXBpbGluZyB3aXRob3V0IFNTTCBzdXBwb3J0LgoKMjAxMC0wOC0xNiAyMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI3OTAyNDk6IGZyb20gd2lsbHB3aWxscDogcmVkdWNlIGNhY2hlIHRpbWUKICAgZm9yIHRoZSBpZnRhYmxlIHRvIDNzZWNvbmRzIHRvIGluY3JlYXNlIGFjY3VyYWN5CgoyMDEwLTA4LTE2IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCAzMDQ2MzcxOiBmcm9tIGNocmlzdG9waGI0OiBGaXggbWVtb3J5IGxlYWsKICAgaW4gU05NUHYxIHRyYXAgaGFuZGxpbmcuCgoyMDEwLTA4LTE2IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyODI1NjUzOiBmcm9tIGJydTVjZTogZml4IHNlbmRtYWlsLmNmCiAgIHBhcnNpbmcgaW4gY2VydGFpbiBjb25kaXRpb25zCgoyMDEwLTA4LTE2IDEwOjE2ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBCdWlsZCBuZXRzbm1wX2FnZW50X2FwaS4zIG1hbiBwYWdlIGZyb20gdGVtcGxhdGUKCjIwMTAtMDgtMTYgMDk6MjAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IERvY3VtZW50YXRpb24gKFByb3ZpZGVkIGJ5IFRvbWFzegogICBMaXMpCgoyMDEwLTA4LTE2IDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZS1vcmRlciBjb2RlIHRvIGdyb3VwIHJlbGF0ZWQKICAgZnVuY3Rpb25zIHRvZ2V0aGVyCgoyMDEwLTA4LTE2IDA3OjQyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyOTk1MDk4OiBGaXggY3JlYXRpb24gb2YgU05NUHYzIHNlc3Npb25zCiAgIHdpdGggQVBJX1NJTkdMRQoKMjAxMC0wOC0xNCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZXMKCjIwMTAtMDgtMTQgMTY6MjMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkwNDkwMDogRG9jdW1lbnRhdGlvbiBwbHVzIGFzc29ydGVkCiAgIGhhbmRsZXIgY29kZSBmaXhlcwoKMjAxMC0wOC0xNCAwOToyOCAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgUmVzdG9yZSBhZ2VudCBBUEkgbWFuIHBhZ2UKICAgRG9uJ3QgdHJ5IHRvIGV4dHJhY3QgbXVsdGlwbGUgbWFuIHBhZ2UgbGlua3MgcGVyIGxpbmUKICAgKHdoaWNoIHJ1bnMgaW50byBwcm9ibGVtcyB3aXRoIE9TLXNwZWNpZmljIGxpbmUgZW5kaW5ncykuCiAgIEluc3RlYWQsIGVuc3VyZSB0aGUgbWFuIHBhZ2UgTkFNRSBzZWN0aW9uIGxpc3RzIG9uZQogICByb3V0aW5lIHBlciBsaW5lCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYnJva2VuIE1ha2VmaWxlIGFmdGVyIG1hbiBwYWdlIG1vdmVzCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZWQgVExTIE1JQiB0byBjdXJyZW50IGNvcHkKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZXBsYWNlZCBSRkMgY29tbWVudCBudW1iZXIKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDMwNDI3NzA6IGZyb20gbWVoYWY6IE1hZGUgcnVuX2FsYXJtcygpCiAgIHJlZW50cmFudAoKMjAxMC0wOC0xMyAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDQ0NTEyOiBmcm9tIHBoaWx3ZWJzdGVyOiBmaXggc3lzb2JqZWN0aWQKICAgZGlyZWN0aXZlLgoKMjAxMC0wOC0xMyAxOTowMCAgcnN0b3J5CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXg6CgogICB1c2UgMTI3LjAuMC4xIGluc3RlYWQgb2YgbG9jYWxob3N0IGFzIGRlZmF1bHQgU05NUF9URVNUX0RFU1Qgc28KICAgVExTIHRlc3RzIHdvcmsKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogaW1wbGVtZW50ZWQgYSBmaXggZm9yIHRoZSBpc3N1ZSByZXBvcnRlZCBpbgogICBwYXRjaCAjMzA0Mjc3MC4gQ3JlYXRlZCBhIHNubXBfc2VsZWN0X2luZm9fZmxhZ3MgZnVuY3Rpb24sIGFuZAogICBzaW1pbGFyLCB0aGF0IGFsbG93IGZvciBhbGFybXMgdG8gbm90IGJlIHJ1bi4gVGhpcyBpcyB0aGVuIHVzZWQKICAgaW4gdGhlIHN5bmNoX3Jlc3BvbnNlIGZ1bmN0aW9ucyB0byBhdm9pZCAxMDAlIENQVSBsb29wcwoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc25tcHRyYXBkIHJlZ2lzdGVyIHRoZSBjZXJ0dG9zZWNuYW1lIHRhYmxlIGluIHRoZSBhZ2VudHgKICAgcmVnaXN0cmF0aW9ucwoKMjAxMC0wOC0xMyAxODo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIG1pbm9yIHdvcmRpbmcgYWRkaXRpb25zCgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmM6CgogICBDSEFOR0VTOiBhaXg6IFBBVENIOiAyODg2NTk4OiBmcm9tIGV4c25hZnU6IEhlYWRlciBmaXhlcyBmb3IKICAgY29tcGlsaW5nIG9uIEFJWDYKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIE5FV1M6IHBvcnRzOiBQQVRDSDogMjgzNjg5NTogZnJvbSBzZWFuYm91ZHJlYXU6IHN1cHBvcnQgZm9yIFFOWDYKCjIwMTAtMDgtMTMgMTQ6MzMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWY6CgogICAnZW5mb3JjZSBuZXRzbm1wIHByZWZpeGVzCgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3Nlc3Npb25fYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL3BkdV9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIERvbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgbWFuIHBhZ2VzCgoyMDEwLTA4LTEzIDE0OjE4ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19vcGVuLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywgICAKICAgICAgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgbWFuIHBhZ2UgbGlua3MKICAgKFNob3VsZCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSwgYnV0IGRvbid0IGV4aXN0IGFueSBtb3JlCiAgIGFueXdheSkKCjIwMTAtMDgtMTMgMTQ6MTMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9hZGRfbWliZGlyLjMsIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsICAKICAgICAgIG1hbi9nZXRfbW9kdWxlX25vZGUuMywgbWFuL2luaXRfbWliLjMsIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywgCiAgICAgICAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zZXRfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgICAKICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsIG1hbi9wcmludF9taWIuMywgIAogICAgICAgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zLCBtYW4vcHJpbnRfdmFyaWFibGUuMywgICAKICAgICAgbWFuL3JlYWRfYWxsX21pYnMuMywgbWFuL3JlYWRfbWliLjMsIG1hbi9yZWFkX21vZHVsZS4zLCAgIAogICAgICBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLCBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjM6CgogICBSZW1vdmUgRG94eWdlbi1nZW5lcmF0ZWQgbWFuIHBhZ2VzLCBhbmQgdGhvc2UgbGlua2luZwogICBpbmRpdmlkdWFsIHJvdXRpbmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBtYW4gcGFnZS4KICAgKFRoZXNlIGFyZSBiZXR0ZXIgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5KQoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBQcm9tcHQgZm9yIHdoZXRoZXIgdG8gZ2VuZXJhdGUgY2FjaGluZyBjb2RlIG9yIG5vdC4KCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBSZXdvcmsgZ3VpZGFuY2UgcXVlc3Rpb25zIHdoZW4gc2VsZWN0aW5nIHRoZSBiZXN0IHRhYmxlIGZyYW1ld29yawogICB0byB1c2UuCiAgIEVuc3VyZSB0YWJsZSBoYW5kbGluZyBjb2RlIGRvZXNuJ3Qgb3ZlcndyaXRlIHNjYWxhciBoYW5kbGluZwogICBjb2RlLgogICBDaGVjayB0aGF0IHRoZSBzdGFydGluZyBwb2ludCBpcyBzdWl0YWJsZSBmb3IgTWZEIGZyYW1ld29yay4KCjIwMTAtMDgtMTIgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNvZGUgYnJva2VuIGJ5ICdjb21waWxlciB3YXJuaW5nIGZpeCcgaW4gcjE5MTc5CgoyMDEwLTA4LTEyIDE1OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgYSBkdXBsaWNhdGUgdmFsdWUgY2hlY2sKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBhZGQgYSB0ZXN0IHdoZXJlIHdlIGNhbiB0cnVzdCBhIENBLXNpZ25lZCBjZXJ0IGFuZCB3ZSBkb24ndCB0cnVzdAogICB0aGUgQ0EKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICB0ZXN0IGEgZGlyZWN0bHkgbWFwcGVkIENBIGNlcnRpZmljYXRlCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBjaGFuZ2UgdGhlIGxhQ29uZmlnIHRvIHJlYWQtd3JpdGUgdG8gbWF0Y2ggdGhlIHBhdGNoCgoyMDEwLTA4LTExIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI5MzE0NDY6IGZyb20gYWhtYWtlOiBtYWtlIHRoZSBsb2FkIGF2ZXJhZ2VzCiAgIHdyaXRhYmxlLgoKMjAxMC0wOC0xMSAwNjo0MyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgQ0hBTkdFUzogU2lsZW5jZSBzb21lIGNvbXBpbGF0aW9uIHdhcm5pbmdzIGZyb20gdGVzdCBjYXNlcy4KCjIwMTAtMDgtMDkgMjE6MDkgIG1hZ2ZyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogSGFuZGxlIGVtYmVkZGVkICUncyBpbiB0aGUgcmVzdWx0IG1lc3NhZ2UuCgoyMDEwLTA4LTA5IDIxOjA3ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIENIQU5HRVM6IERvIG5vIGRvdWJsZSBkZWNsYXJlIHRoZSBpbmRleCB2YWx1ZXMuCgoyMDEwLTA4LTA1IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFVwZGF0ZSAiYXV0aCoiIHVzYWdlIG1lc3NhZ2Ugd2l0aCBjb250ZXh0IHN1cHBvcnQKCjIwMTAtMDgtMDIgMjA6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpeCB0d28gc2lsbHkgbWlzdGFrZXMuCgoyMDEwLTA4LTAyIDE0OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBBSVggZmlsZXN5c3RlbSB0eXBlcyBhcmUgdGFnZ2VkIGFzIGludGVnZXJzLCBub3Qgc3RyaW5ncy4KCjIwMTAtMDgtMDIgMTM6NDkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBmaXggUGVybCBzeXN0ZW0oKSBjb25maWd1cmUgY2hlY2sgdG8gd29yayByZWxpYWJseSBvbiBzeXN0ZW1zCiAgIHRoYXQgbGFjawogICBQZXJsCgoyMDEwLTA4LTAyIDExOjA4ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogbWFkZSBpdCBwb3NzaWJsZSB0byBhbmFseXplIGFsbCBjb2RlIGNvdmVyZWQgYnkKICAgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgd2l0aCBhIGR5bmFtaWMgYW5hbHl6ZXIsIGF0IGxlYXN0IGlmIHRoYXQKICAgYW5hbHl6ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGNoaWxkIHByb2Nlc3Nlcy4gQW4gZXhhbXBsZToKICAgCiAgIHJtIC1yZiAvdG1wL3NubXAtdGVzdC0qCiAgIG1ha2UgLXMKICAgU05NUF9TQVZFX1RNUERJUj15ZXMgRFlOQU1JQ19BTkFMWVpFUj0idmFsZ3JpbmQKICAgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS10cmFjay1vcmlnaW5zPXllcyIgbWFrZSAtcyB0ZXN0CiAgIGdyZXAgLWkgdW5pbml0aWFsaXNlZCAvdG1wL3NubXAtdGVzdC0qIHwgeGFyZ3MgbGVzcwoKMjAxMC0wOC0wMiAxMTowMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB0d28gVmFsZ3JpbmQgY29tcGxhaW50czoKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RDcwMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEOTlEMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEN0E0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkUxNDQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NUU1RTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1RTY1NzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NUU1NjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDVFMjQ3OUE6IF9zZXNzX3Byb2Nlc3NfcGFja2V0IChzbm1wX2FwaS5jOjU0NDEpCiAgIGJ5IDB4NUUyNUUzNzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo2MDM3KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NUU2NTczOTogbmV0c25tcF90Y3BfYWNjZXB0IChzbm1wVENQRG9tYWluLmM6ODIpCiAgIGJ5IDB4NUUyNTM4MzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo1Nzg2KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RjdCMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGQTREMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGODU0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NzAxRjQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NTZGQTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1NzAxNzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NTZGMjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDU2RjI5NEY6IG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgKHNubXBfdHJhbnNwb3J0LmM6MjQ4KQogICBieSAweDU2QkM0ODc6IHNubXBfc2Vzc19hc3luY19zZW5kIChzbm1wX2FwaS5jOjUyMDQpCiAgIGJ5IDB4NTZCQzY1MTogc25tcF9hc3luY19zZW5kIChzbm1wX2FwaS5jOjQ5OTgpCiAgIGJ5IDB4NTZCQzY3Nzogc25tcF9zZW5kIChzbm1wX2FwaS5jOjQ5ODQpCiAgIGJ5IDB4NTY5ODQ0MDogc25tcF9zeW5jaF9yZXNwb25zZV9jYiAoc25tcF9jbGllbnQuYzoxMDA2KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1NzAxQjNFOiBuZXRzbm1wX3RjcF90cmFuc3BvcnQgKHNubXBUQ1BEb21haW4uYzoxNjMpCiAgIGJ5IDB4NTcwMUU2RjogbmV0c25tcF90Y3BfY3JlYXRlX3RzdHJpbmcgKHNubXBUQ1BEb21haW4uYzozMDUpCiAgIGJ5IDB4NTZGMzgwNDogbmV0c25tcF90ZG9tYWluX3RyYW5zcG9ydF9mdWxsCiAgIChzbm1wX3RyYW5zcG9ydC5jOjYwMSkKICAgYnkgMHg1NkYzQUNDOiBuZXRzbm1wX3RyYW5zcG9ydF9vcGVuX2NsaWVudAogICAoc25tcF90cmFuc3BvcnQuYzo2NjkpCiAgIGJ5IDB4NTQzNDRGNjogc3ViYWdlbnRfb3Blbl9tYXN0ZXJfc2Vzc2lvbiAoc3ViYWdlbnQuYzo3NTgpCiAgIGJ5IDB4NTQzNDlDODogYWdlbnR4X3Jlb3Blbl9zZXNzaW9uIChzdWJhZ2VudC5jOjg2OSkKICAgYnkgMHg1NDM0RDAwOiBzdWJhZ2VudF9zdGFydHVwIChzdWJhZ2VudC5jOjk5KQogICBieSAweDU2RUFFQjc6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzM4KQogICBieSAweDU2REU2RkI6IHJlYWRfY29uZmlncyAocmVhZF9jb25maWcuYzoxMDE4KQogICBieSAweDU2QzI4N0U6IGluaXRfc25tcCAoc25tcF9hcGkuYzo4NTApCiAgIGJ5IDB4NDA0NzdCOiBtYWluIChzbm1wdHJhcGQuYzoxMDQ4KQoKMjAxMC0wOC0wMSAwNjoxMSAgYnZhc3NjaGUKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIEZpeGVkIHNwZWxsaW5nIGVycm9ycyByZXBvcnRlZCBieSBpc3BlbGwgLWwuCgoyMDEwLTA4LTAxIDA2OjAwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX2VudW0uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHRleHQgc3RyaW5nIGluIGEgdW5pdCB0ZXN0OiByZXN0dXJhbnQgLT4KICAgcmVzdGF1cmFudC4KCjIwMTAtMDgtMDEgMDU6NTMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIERvY3VtZW50ZWQgYmVoYXZpb3Igb2Ygc2VfYWRkX3BhaXJfdG9fc2xpc3QoKS4KCjIwMTAtMDctMzEgMjM6NTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5MjY2OiBhZGQgbWlzc2luZyBoZWFkZXIgZmlsZSB0byBzdXBwb3J0IE1hYyBPUyBYCiAgIDEwLjYKICAgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCgoyMDEwLTA3LTMxIDIwOjM4ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MzUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDctMzEgMjA6MjQgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBjaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZSByZWFkbWUgc2VjdGlvbiB0byBjYWxsIG91dCBORVdTLXRvbwoKMjAxMC0wNy0zMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG1pc3NpbmcgbmV3cyBpdGVtcwoKMjAxMC0wNy0zMCAxMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSCAzMDM1MzI4OiBmcm9tOiBzd3M6IGNoZWNrIHRoZSByZXN1bHRzIG9mCiAgIHNlc3Npb24gY3JlYXRpb24gZm9yIGEgZmFpbHVyZSBjYXNlLgoKMjAxMC0wNy0zMCAxMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogcGF0Y2ggMzAzNTU3ODogZnJvbSBzd3M6IGtlZXAgZXJyb3IgY29kZXMgdXAgdG8KICAgZGF0ZQoKMjAxMC0wNy0yOSAxNTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjQ3ICBkdHMxMgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gb2YgJ3ZhX2xpc3QnIGZvciB2YXJhcmdzLWJhc2VkIEFQSXMKCjIwMTAtMDctMjkgMTQ6NTggIGR0czEyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmM6CgogICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgQUlYIDcKICAgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBpZGVudGljYWwgdG8gQUlYIDYpCgoyMDEwLTA3LTI5IDE0OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgRGlzYWJsZSBlbWJlZGRlZCBwZXJsIGJ5IGRlZmF1bHQgb24gYXJjaGl0ZWN1cmVzIHdoZXJlCiAgIHRoaXMgc2VlbXMgdG8gY2F1c2UgcHJvYmxlbXMgKEhQLVVYICYgTWFjIE9TIFgpCgoyMDEwLTA3LTI5IDExOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBHdWFyZCBhZ2FpbnN0IGJsYW5rICdpbmNsdWRlKicgbGluZXMuCiAgIEhhbmRsZSByZWxhdGl2ZSAnaW5jbHVkZUZpbGUnIHBhdGhzCgoyMDEwLTA3LTI5IDEwOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV0dXJuIGFuIGluZGljYXRpb24gb2Ygd2hldGhlciBjb25maWcgZmlsZXMgYXJlIGFjdHVhbGx5CiAgIHByb2Nlc3NlZC4KICAgUmVwb3J0IHByb2JsZW1zIHdpdGggZmFpbGluZyB0byBpbmNsdWRlIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDctMjggMTQ6NDQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmLCAgCiAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEJyaW5nIG1hbiBwYWdlIGRvY3VtZW50YXRpb24sIGhlYWRlciBmaWxlcyBhbmQgV2luZG93cyBETEwKICAgZGVmaW5pdGlvbnMKICAgb2YgdG9wLWxldmVsIHB1YmxpYyBBUEkgY2FsbHMgaW50byBsaW5lIHdpdGggZWFjaCBvdGhlci4KCjIwMTAtMDctMjggMTQ6NDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBtaXNuYW1lZCBjb21tZW50CgoyMDEwLTA3LTI4IDE0OjM2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRG9uJ3QgbWl4IFNNSXYxIGFuZCBTTUl2MiBNSUJzIGluIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCcyB0bwogICBsb2FkLgogICBVc2UgbmV3ZXIgU01JdjIgdmVyc2lvbnMgKHdoaWNoIGluY2x1ZGUgc3VpdGFibGUgZGlzcGxheSBoaW50cykKICAgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIFJGQzEyMTMgTUlCICh3aGljaCBkb2Vzbid0KQoKMjAxMC0wNy0yOCAxNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGluZGVudGF0aW9uIGZvciAnaW5jbHVkZVNlYXJjaCcgcHJvY2Vzc2luZyBjb2RlLgoKMjAxMC0wNy0yOCAxNDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRXh0ZW5kICdpbmNsdWRlJyBjb25maWcgZmlsZSBwcm9jZXNzaW5nIHRvIGNvdmVyIHRocmVlCiAgIGRpZmZlcmVudCBtb2RlcyBvZiB3b3JraW5nOgogICAtIGxvb2sgZm9yIHRoZSBmaWxlIG9uIHRoZSBjb25maWcgc2VhcmNoIHBhdGgKICAgLSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZmlsZSBieSBuYW1lCiAgIC0gaW9hZCB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkKICAgVXNlIGRpZmZlcmVudCBjb25maWcgdG9rZW5zIHRvIGRpc3Rpbmd1aXNoIHRoZXNlIGNhc2VzLgoKMjAxMC0wNy0yNyAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyOTEyNTIwOiBmcm9tIGxpc3RvbTogRnJlZSBrbWVtIHJlZmVyZW5jZXMKICAgb24gc2h1dGRvd24KCjIwMTAtMDctMjcgMTA6NTQgIGhhcmRha2VyCgogICAqIG1pYnMvU01VWC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogcGF0Y2ggMjk3NDcxNjogZnJvbSBidmFzc2NoZTogZml4IGlzc3VlcyBpbiB0aGUKICAgU01VWC1NSUIKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzZWN1cml0eS1oZWRhZXJzIG1vZHVsZQoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgcmVtb3RlIGRlYnVnZ2luZy9wcm9jZXNzaW5nIHN0ZGVyciBvdXRwdXQKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMzAyODkyMzogZnJvbSBqZW5zbzogbmV3IGNvcHkgb2YgdGhlCiAgIGJyaWRnZS1taWIgcGVybCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tc2VjdXJpdHktaGVhZGVycy5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgc2VjdXJpdHkgaGVhZGVyL2luaXQgZ2VuZXJhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0czoKCiAgIHRyYW5zcG9ydCBjb25maWd1cmUgcG9ydGlvbgoKMjAxMC0wNy0yNyAwODozMCAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXRyYW5zcG9ydC1oZWFkZXJzLmluLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdmFyaWFibGVzLmluOgoKICAgbW92ZSB0cmFuc3BvcnQgaGVhZGVyIGdlbmVyYXRpb24gdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBjcmVhdGUgYW4KICAgZXh0ZXJuYWwgc2VwYXJhdGUgc2NyaXB0IGZvciBnZW5lcmF0aW5nIGl0CgoyMDEwLTA3LTI3IDA4OjE0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCBnZnMgZmlsZXN5c3RlbXMgaW4gaHJTdG9yYWdlVGFibGUgYW5kCiAgIGhyRlNUYWJsZS4KCjIwMTAtMDctMjQgMTU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgd2FzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBwcm9jZXNzaW5nIGFuIGluY2x1ZGVkIGNvbmZpZyBmaWxlLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yNCAxNTozNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSBpcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gb3BlbmluZyBhIG5ldyBTTk1QIHNlc3Npb24uCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTIzIDAzOjEyICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZCB0aGUgVExTIG1vZHVsZXMgdG8gdGhlIGxpc3Qgb2YgdGVzdCBtb2R1bGVzCgoyMDEwLTA3LTIxIDE5OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBGaXggdHlwbyBpbiBkb3h5Z2VuIGNvbW1lbnQKCjIwMTAtMDctMjEgMTk6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgRml4IHR5cG8gaW4gc3BlZWQgY29tcHV0YXRpb24KCjIwMTAtMDctMjEgMTk6MjEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBJbmNsdWRlIGdlbmVyYXRlZCBzZWN1cml0eS1pbmNsdWRlcy5oCgoyMDEwLTA3LTIxIDE5OjIwICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmg6CgogICBGaXggaW5pdCBmdW5jIG5hbWUgKGNvcHktcGFzdGUgZ2xpdGNoKQoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIHNlbWljb2xvbgoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgT3V0IG9mIG9yZGVyIGRlY2xhcmF0aW9uCgoyMDEwLTA3LTIxIDE5OjE3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIExvZyBlcnJvciBvbiBmaWxlIG9wZW4gZXJyb3IKCjIwMTAtMDctMjEgMTk6MTYgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTcGVsaW5nIGVycm9yCgoyMDEwLTA3LTIxIDE4OjEwICBuYmEKCiAgICogbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudCBSRkNzCgoyMDEwLTA3LTIxIDE4OjA4ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IHZlcnNpb24gZnJvbSBJQU5BCgoyMDEwLTA3LTIxIDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByMTc0OTUgZXJyb25lb3VzbHkgZGlzYWJsZWQgZGlza0lPTEF4IGZvciBsaW51eAoKMjAxMC0wNy0yMCAxMDozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHdoZW4gZ2VuZXJhdGluZwogICB0ZW1wLiBmaWxlIG5hbWVzCgoyMDEwLTA3LTIwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L3NubXBkLmMsIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCAgIAogICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRGVzY3JpYmUgLUQgdXNhZ2UgYXMgLURbVE9LRU5dIGluc3RlYWQgb2YgLUQgW1RPS0VOXQoKMjAxMC0wNy0xNyAxNToxMCAgcnN0b3J5CgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIHVwZGF0ZSBkaXNwbGF5IGhpbnQgdG8gc29tZSBsZXNzIGFtYmlndW91cyAoYW5kIHRoYXQgd29ya3Mgd2l0aAogICBvdXIgbGliKQoKMjAxMC0wNy0xNyAwNDoxMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggdGVzdHNpbXBsZSBmb3IgYnVpbGRkaXIhPXNyY2RpcgoKMjAxMC0wNy0xNyAwNDoxMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBhZGQgdGVzdHNpbXBsZSB0YXJnZXQKCjIwMTAtMDctMTYgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbGVhc2UgaXRlcmF0b3Igd2hlbiBkb25lIHdpdGggaXQKCjIwMTAtMDctMTUgMTg6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGlzc3VlIHdpdGggVVNNIHVzaW5nIGluYWN0aXZlIHVzZXJzCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW5jbHVkZSBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyOyBkZWZpbmUgTkFNRV9NQVggaWYgbm90IGFscmVhZHkKICAgZGVmaW5lZDsKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgdGhhdCBzb21lIG5ld2VyIG9wZW5zc2wgbWFjcm9zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZwogICB0aGVtOyBpbmNsdWRlCiAgIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXIKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBkdGxzIGRvbWFpbiBpZiBubyBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBpZmRlZiBwcm90ZWN0aW9uIGZvciBsYXRlciBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIGRhcndpbiBvcGVuc3NsIGRvZXMgbm90IHN1cHBvcnQgbW9yZSByZWNlbnQgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBmaXggdHlwbyBpbiBpZmRlZiB0ZXN0CgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIGluY2x1ZGVkIGZpbGUgbmFtZQoKMjAxMC0wNy0xNCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBmaXggdGhlIGZpeDogcHV0IFBSSXogc3BlYyBpbiBjb3JyZWN0IHBsYWNlCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHNwZWNpZnkgU05NUCB2ZXJzaW9uIG9uIGNvbW1hbmRsaW5lCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDEwLTA3LTE0IDE1OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluY2x1ZGUgc3NsLmggYmVmb3JlIGNlcnRfdXRpbC5oCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGZvdW5kIGNlcnQKCjIwMTAtMDctMTMgMTY6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtc2cKCjIwMTAtMDctMTIgMTA6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFdpbjMyIGFuZCBDeWd3aW46IG1hZGUgc3VyZSB0aGF0IGFjY2Vzc2luZyB0aGUgbWliSUkKICAgaW50ZXJmYWNlcyB0YWJsZSBkb2VzIG5vdCB0cmlnZ2VyIG91dC1vZi1yYW5nZSBhcnJheSBhY2Nlc3NlcwogICAod2FzIGRldGVjdGVkIGJ5IEJvdW5kc0NoZWNrZXIpLgoKMjAxMC0wNy0xMiAxMDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXhlZCBhIGRhbmdsaW5nLXBvaW50ZXItcmVhZCB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxOC4gSW4KICAgcjE5MDE4IHRoZSB0eXBlIG9mIGdyb3VwU3VidHJlZUxlbiB3YXMgY2hhbmdlZCBmcm9tIGludCB0bwogICBzaXplX3QsIHdoaWNoIGNoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHRoZSBsb29wICJ3aGlsZQogICAoZ3JvdXBTdWJ0cmVlTGVuLS0gPiAwKSAuLi4iOiBpbnN0ZWFkIG9mIG5vdCBleGVjdXRpbmcgdGhlIGxvb3AKICAgYm9keSB3aGVuIGdyb3VwU3VidHJlZUxlbiB3YXMgbmVnYXRpdmUsIHIxOTAxOCBjYXVzZWQgdGhlIGJvZHkgb2YKICAgdGhhdCBsb29wIHRvIGJlIGV4ZWN1dGVkLiBEZXRlY3RlZCBieSBydW5uaW5nIHNubXBkIHVuZGVyCiAgIEJvdW5kc0NoZWNrZXIgd2hpbGUgcGVyZm9ybWluZyBhIE1JQiB3YWxrLgoKMjAxMC0wNy0xMiAxMDoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFJldmVydGVkIHIxOTA0NyAod2hpY2ggd2FzIHdyb25nKSBhbmQgaW1wbGVtZW50ZWQgYSBwcm9wZXIgZml4CiAgIGZvciB0aGUgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMuCgoyMDEwLTA3LTEyIDEwOjA5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA3LTEyIDEwOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBTdXBwcmVzc2VkIG1vcmUgTVNWQyBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnM6CgogICBhZGQgY29tbWVudCB3aXRoIG9iamVjdCBuYW1lIGZvciBudW1lcmljIGlkcwoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBnZXQgc2VydmVySWQgZnJvbSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YTsgdXNlCiAgIG5ldyBhcGkKICAgdG8gY29uZmlnIHNlcnZpY2VJZCBmb3IgdHJhcCB0cmFuc3BvcnQgd2hlbiBzZW5kaW5nIHRyYXBzCgoyMDEwLTA3LTExIDExOjE4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDSEFOR0VTOiBCVUc6IDMwMjc5MDA6IHdoZW4gY3Jvc3MtY29tcGlsaW5nIGl0IGlzIG5vdyBhc3N1bWVkCiAgIHRoYXQgbWVtY21wKCkgaXMgYXZhaWxhYmxlIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCBpdCBpcyBub3QKICAgYXZhaWxhYmxlLgoKMjAxMC0wNy0xMSAxMDozMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgcjE5MTk3LgoKMjAxMC0wNy0xMCAyMDowMCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3luYyB1cCBoZWxwIG91dHB1dCBhbmQgb3B0aW9ucyBwcm9jZXNzaW5nCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIEN5Z3dpbiBzZWN0aW9uIGluIFJFQURNRS53aW4zMi4KCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBTdXBwcmVzc2VkICJpbXBsaWNpdCBjYXN0IGZyb20gaW50IHRvIHVfY2hhciIKICAgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IE1TVkMuCgoyMDEwLTA3LTA5IDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgVGVzdGluZzogbWFkZSB0aGUgZGVidWcgb3V0cHV0IHRoYXQgYXBwZWFycyBpbiB0aGUgImludm9rZWQiIGZpbGUKICAgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDEwLTA3LTA5IDE1OjEwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcy4KCjIwMTAtMDctMDggMTk6MzAgIG1hcnoKCiAgICogIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydCwgICAKICAgICAgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgYWRkcyBwZXIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmaWxlIHN1cHBvcnQgc28gZGVmYXVsdHMgY2FuIGJlCiAgIGN1c3RvbWlzZWQgb24gY21kbGluZSB3IC1pIDxpZGVudGl0eT4gLSBzZWUgbmV0LXNubXAtY2VydC5jb25mCiAgIGZvciBleGFtcGxlcyBhbmQgc29tZSBoZWxwIGluZm8KCjIwMTAtMDctMDggMTI6MTcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDAzOTgxOiBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93CgoyMDEwLTA3LTA4IDExOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMTkyNDM6IFJlZ2lzdGVyIGV4ZWNGaXggY29tcGF0YWJpbGl0eQogICBkaXJlY3RpdmUgY29ycmVjdGx5LgoKMjAxMC0wNy0wNyAxMDoxOSAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZToKCiAgIENIQU5HRVM6IEN5Z3dpbiBhbmQgTWluR1c6IHRlc3RzIFQxMTAsIFQxMTEsIFQxMTIsIFQxMjAsIFQxMjEgYW5kCiAgIFQxMjIgZG8gbm93IHBhc3Mgd2hlbiBzbm1wZCBpcyBidWlsdCB3aXRoIHdpbkV4dERMTCBzdXBwb3J0CiAgIGVuYWJsZWQuCgoyMDEwLTA3LTA2IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgQ2hhbmdlTG9nLCBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIE1hZGUgcmVncmVzc2lvbiB0ZXN0cyBlYXNpZXIgdG8gZGVidWcgYnkgaW5jbHVkaW5nIG9rIC8gbm90IG9rCiAgIHN0YXR1cyBpbiB0aGUgImludm9rZWQiIGZpbGUuCiAgIFNwZWxsaW5nIGZpeGVzOiByZW1lYmVyIC0+IHJlbWVtYmVyOyBzZXBlcmF0b3IgLT4gc2VwYXJhdG9yLgoKMjAxMC0wNy0wNiAxNTowNCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBUZXN0IFQwNjUgZG9lcyBub3cgcmVhbGx5IHBhc3Mgb24gTWluR1cuCgoyMDEwLTA3LTA1IDEwOjAxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgY3VybHkgYnJhY2VzIHN1Y2ggdGhhdCAnfHwnIGFuZCAnJiYnIGFyZSBldmFsdWF0ZWQgaW4gdGhlCiAgIGNvcnJlY3Qgb3JkZXIuCgoyMDEwLTA3LTA0IDExOjM3ICBidmFzc2NoZQoKICAgKiBhcHBzOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wNy0wNCAxMTozNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEZhbGwgYmFjayBmcm9tIFJVTkZVTExURVNUUyB0byBSVU5URVNUUyBpZiBuZWl0aGVyIFRBUDo6SGFybmVzcwogICBub3IgVGVzdDo6SGFybmVzcyBpcyBhdmFpbGFibGUuCgoyMDEwLTA3LTA0IDExOjIxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdGVzdCBudW1iZXIgaW4gL3RtcC9zbm1wLXRlc3RzLSR0ZXN0bnVtIGlzIHNldAogICB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsIHRoYW4ganVzdCAiMCIuCgoyMDEwLTA3LTA0IDExOjIwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU3BsaXQgYSBsb25nIGNvbW1lbnQgbGluZS4KCjIwMTAtMDctMDQgMTA6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCBzcmNkaXIgaXMgY29tcHV0ZWQgY29ycmVjdGx5IGlmIGBkaXJuYW1lCiAgICQwYCA9IC4KCjIwMTAtMDctMDIgMTY6MjcgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBTaW1wbGlmaWVkIHIxOTE4MSAoRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoCiAgIG5vbi1lbXB0eSAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVykuCgoyMDEwLTA3LTAxIDE4OjE1ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoIG5vbi1lbXB0eQogICAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVy4KCjIwMTAtMDctMDEgMTg6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNy0wMSAxNzo1MyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEZpeGVkIHR3byByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0wMSAwMDoxOSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDowMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZjoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaXNzZWQgdHdvIHRva2VucyBpbiB0aGUgbWFuIHBnYWVzCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJlbmFtZSB0aGUgZGVmWDUwOSB0b2tlbnMgdG8gc29tZXRoaW5nIG1vcmUgZnJpZW5kbHk6IGNsaWVudENlcnQKICAgYW5kIHNlcnZlckNlcnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHRvcC1maWxlIGNvbW1lbnQgdXBkYXRlcwoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IGNhbGwgY2VydF9maW5kIHdpdGggYSBOVUxMIGFyZ3VtZW50CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWxsb3cgZGVmIGNlcnRzIHRvIGJlIHNwZWNpZmllZCB1c2luZyBhIGZpbGVuYW1lCgoyMDEwLTA2LTMwIDIzOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMTAtMDYtMzAgMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB0dXJuIGEgY291cGxlIG9mIG5vbi1jcml0aWNhbCBlcnJvcnMgaW50byBkZWJ1ZyBzdGF0ZW1lbnRzIHBlcgogICBkaXNjdXNzaW9uIHdpdGggcnN0b3J5CgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1ha2UgdGhlIHJlZ2V4cCBwYXR0ZXJuIG1hdGNoIGZvciB0ZXN0cyB0byBydW4gY2FzZSBpbnNlbnNpdGl2ZQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgaW1wb3J0IHN0ZGVyciBmcm9tIHN5cywgcGVyIGRpc2N1c3Npb24gb24gLXVzZXJzCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgYmFjayBpbiB0aGUgZGVmYXVsdCBwb3J0IHNwZWNpZmllcgoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGVuYWJsZSBwdWxsaW5nIHRoZSBwcml2YXRlIGtleSBvdmVyIGh0dHAKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3ZlIFVSTCBjb2xsZWN0aW9uIGludG8gYSBzdWIgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhYmlsaXR5IHRvIHB1bGwgYSBjZXJ0IGZyb20gYSBVUkwKCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXJndW1lbnQgYnVnIGluIHRoZSBpc191cmwgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjA6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlCgoyMDEwLTA2LTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdEdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIHJlbmFtZSBmaWxlIGZvciBjb25zaXN0ZW5jeQoKMjAxMC0wNi0zMCAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IHNubXB0bHMgYXBwCgoyMDEwLTA2LTMwIDIwOjAwICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgcmVtb3ZlIGFjY2lkZW50YWxseSBjaGVja2VkIGludCBkZWJ1ZyBjb2RlCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgZGVmaW5lIE9JRHMgYmFzZWQgb24gU05NUF9UTFNfVE1fQkFTRQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU3ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2U7IGFkZAogICBzbm1wX3N0b3JlX25lZWRlZCBvbiBjb21taXQKCjIwMTAtMDYtMzAgMTk6NTYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgbmV3IGZpbmdlcnByaW50IHBhcnNlL2J1aWxkIGZ1bmN0aW9uczsgcmVtb3ZlIGJhZCBsZW5ndGgKICAgY2hlY2s7IGF1dG8KICAgdHJhbnNpdGlvbiBiZXR3ZWVuIG5vdFJlYWR5IGFuZCBub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTUgIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICByZW1vdmUgcHJlLXJmYyBtaWI7IHNlZSBTTk1QLVRMUy1UTS1NSUIudHh0IGluc3RlYWQKCjIwMTAtMDYtMzAgMTk6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBjb25zb2xpZGF0ZSBtdWx0aXBsZSBmaWxlcwoKMjAxMC0wNi0zMCAxOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgaGFzaCB0eXBlIHBhcnNlIHJvdXRpbmUgcHVibGljOyBhZGQgcm91dGluZXMgdG8gYnVpbGQvcGFyc2UKICAgU25tcFRMU0ZpbmdlcnByaW50CgoyMDEwLTA2LTMwIDE5OjUxICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBORVdTOiBzbm1wdGxzOiBuZXcgYXBwIGZvciBtYW5hZ2luZyAoRClUTFMgY29uZmlnIHZpYQogICBTTk1QLVRMUy1UTS1NSUIgdGFibGVzCgoyMDEwLTA2LTMwIDE5OjUwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGNhbGwgbmV3IHNubXBfc3RvcmVfbmVlZGVkKCkgZnVuY3Rpb24gYWZ0ZXIgYSBjb21taXQgaW4gdGFibGVzCiAgIHRoYXQKICAgaGF2ZSBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTMwIDE5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgc2ltcGxlIHN0YXRlIG1hY2hpbmUKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCByb3cgY3JlYXRpb24gQVBJIHdoaWNoIHVzZXMgYQogICBzdGF0ZSBtYWNoaW5lCiAgIHRvIHRyeSByZWFsbHkgaGFyZCB0byBjcmVhdGUgYSByb3cgZnJvbSBhIGdpdmVuIHZhcmJpbmQgbGlzdAoKMjAxMC0wNi0zMCAxOTo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wZDogbmV3IEFQSSBmb3IgaW5kaWNhdGluZyB0aGF0IHBlcnNpc3RlbnQgc3RvcmUgbmVlZHMKICAgdG8gYmUgc2F2ZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgcmVxdWVzdCBmaW5pc2hlcyBwcm9jZXNzaW5nCgoyMDEwLTA2LTMwIDE5OjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBhZGQgc29tZSBuZXcgd3JhcHBlciBtYWNyb3MKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0NOU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW5TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE1RHRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNlRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExOFRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICBhZGRlZCBjaGVja3MgZm9yIGNoZWNraW5nIGRpcmVjdCBwYXNzaW5nIG9mIGxvY2FsaG9zdCB0byB0aGUKICAgZXhwZWN0ZWQgbmFtZQoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXI6CgogICBjaGVjayBmb3Igd2lsZGNhcmQgc3VwcG9ydAoKMjAxMC0wNi0zMCAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdXBwb3J0IFNBTiBhbmQgQ04gd2lsZGNhcmQgbWF0Y2hpbmcgcGVyIHNwZWMKCjIwMTAtMDYtMzAgMTU6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzTmFtZSwgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFEdGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAyVGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFEdGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMlRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM0R0bHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNFRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFEdGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIyVGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFEdGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMlRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MUR0bHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MlRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFEdGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MlRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMFRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxRHRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMUR0bHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMlRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIG1vdmVkIHRlc3QgZmlsZXMgYXJvdW5kIGZvciBiZXR0ZXIgbmFtaW5nCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZHRscyB0cmFuc3BvcnQgYWRkcmVzcyB0byB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUgZnJvbSB0aGUgdHJhbnNwb3J0IHN0cmluZyBpZiBwb3NzaWJsZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGEgYml0IG1vcmUgaGVscCBvdXRwdXQgYnkgZGVmYXVsdAoKMjAxMC0wNi0yOSAyMjoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTExNjogbWFrZSBzdXJlIHdlIGluY2x1ZGUgYWdlbnQgY29uZmlnCgoyMDEwLTA2LTI5IDIyOjE4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgQWRkIG1pc3NpbmcgY29uZmlnX3JlcXVpcmVzCgoyMDEwLTA2LTI5IDE3OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIHJld29yayB0aGUgc25tcGNtZCBtYW51YWwgcGFnZSB0byBzZXBhcmF0ZSBvdXQgdGhlIGZsYWdzIGludG8KICAgc2VjdGlvbnMgYXBwcm9wcmlhdGUgZm9yIHRoZWlyIHVzYWdlIHR5cGUKCjIwMTAtMDYtMjkgMTY6NTEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHBvZCBkb2NzLCBzb21lIGRlZmF1bHQgdmFsIGZpeGVzLCBpbmZvIG91dHB1dCBub3JtYWxpemVkCgoyMDEwLTA2LTI5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBhZGRlZCBzc2guaCBpbmNsdWRlCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHJlb3JnYW5pemUgdGhlIG1hbnVhbCBwYWdlIGEgYml0IGZvciBTTk1QdjMgYW5kIFRMUwoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBkZWZhdWx0IHRscyByZWdpc3RyYXRpb25zCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBmb3IgTlVMTCB0cmFuc3BvcnRzIGFmdGVyIGFuIG9wZW4gZmFpbHMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92aW5nIGxvZ2dpbmcgYXJvdW5kIHNvIHRoYXQgb3BlbnNzbCBlcnJvcnMgYXJlIHByaW50ZWQgb24KICAgZmFpbHVyZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeDoKCiAgIGZpeCBzb21lIG5vbi1pbnRlcmFjdGl2ZSBpbnZvY2F0aW9uIGlzc3VlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBhIGNvbW1vbiBmdW5jdGlvbgoKMjAxMC0wNi0yOCAxOToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZToKCiAgIGNpcGhlciBzdWl0ZSBzZWxlY3Rpb24gYW5kIHRlc3RzIGZvciBpdAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL0xJQ0VOU0U6CgogICBsaWNlbnNlIHVwZGF0ZXMKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqICBweXRob24vUkVBRE1FLCBweXRob24vbmV0c25tcC9jbGllbnQucHksICAgCiAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBTTk1QdjMgb3ZlciBUTFMgc3VwcG9ydAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGJldHRlciBvdXRwdXQgc2hvd2luZyB0ZXN0IHR5cGVzCgoyMDEwLTA2LTI4IDAwOjU0ICB0YW5kZXJzCgogICAqICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogbWFuOiBjbGVhbiB1cCBtYW51YWwgcGFnZXMKICAgKGZyb20gRGViaWFuIHBhdGNoIDU2X21hbnBhZ2UpCgoyMDEwLTA2LTI3IDIzOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgY2FsbCB2YWNtX3N0YW5kYXJkX3ZpZXdzKCkgb3IKICAgaW5pdF92YWNtX2NvbmZpZ190b2tlbnMoKSBpZiB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgd2FzIG5vdAogICBjb21waWxlZAogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNjFfdmFjbV9taXNzaW5nX2RlcGVuZGVuY3lfY2hlY2spCgoyMDEwLTA2LTI3IDAzOjIzICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXBwIHRhZyBjb21wbGV0aW9ucwoKMjAxMC0wNi0yNyAwMDo1NiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBoYW5kbGUgY29uZmlnIGZpbGUgc2V0dGluZyBpbnRlcmFjdGl2ZSwgdHJ1ZS9mYWxzZSB2YWx1ZXMgaGFuZGxlZAogICBpbiBjb25maWcKCjIwMTAtMDYtMjYgMjA6NTggIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBzb21lIGJ1Z3Mgdy8gc3BhY2VzIGluIG5hbWVzIGFuZCBhcHAgdGFnIGhlbHAKCjIwMTAtMDYtMjYgMTk6MzggIG1hcnoKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0ZXN0cyB0byB1c2Ugbm9uLWludGVyYWN0aXZlIC1JCgoyMDEwLTA2LTI2IDE3OjQ2ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGJldHRlciBpbnRlcmFjdGl2ZSwgPz1oZWxwLCA8dGFiPiBjb21wbCwgbW9yZSBoZWxwLCBTQU4gbG9vcAogICBmb3JtYXQgYW5kIHRlcm1pbmF0aW9uIGZpeCwgdG9sZXJhdGUgc3BhY2VzIGluIGZpZWxkcyBhbmQKICAgZmlsZW5hbWVzLCBtb3JlIGNvbXBsZXRlIGVycm9yIG91dHB1dCwgZW1icnlvbmljIGltcG9ydCBmcm9tIHVybAoKMjAxMC0wNi0yNiAxMzo0OCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTA2LTI2IDEzOjQ3ICBidmFzc2NoZQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4ZWQgdGhlIGVycm9ycyBpbiBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlZAogICBuZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDYtMjYgMTM6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IFNNVVggTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0wNi0yNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlOgoKICAgZml4ZXMgYW5kIHRlc3RpbmcgZm9yIGNoZWNraW5nIFNBTiBETlMgbmFtZXMgZnJvbSB0aGUgc2VydmVyCgoyMDEwLTA2LTI2IDAwOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICBnZW5lcmljaXplIHRoZSBzZXJ2ZXIgbmFtZSB0ZXN0cwoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmgsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIHVzZXByZWZpeCBzY2FsYXIgdGVzdGluZyBhbmQgc3VwcG9ydAoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgbGluZXMKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICBwdXQgaW4gb25seSBtaW5pbWlhbCBkZWJ1ZyBmbGFncwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlOgoKICAgY29kZSBhbmQgdGVzdCBjYXNlcyBmb3IgQ1JMIGhhbmRsaW5nCgoyMDEwLTA2LTI1IDE1OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlOgoKICAgQWRkZWQgYSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgZWFjaCBsaW5lIHByaW50ZWQgYnkgdGhlIFBlcmwKICAgaW50ZXJwcmV0ZXIuCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlZHVjZSBudW1iZXIgb2YgcmVzZW5kIGF0dGVtcHRzIGFuZCB0aW1lb3V0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsIHNubXBsaWIvY2VydF91dGlsLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHdhcm5pbmcgZml4ZXMKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgbG9naWMgdHlwbyBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZToKCiAgIElQdjYgZml4ZXMgZm9yIFRDUAoKMjAxMC0wNi0yNSAxMzowMSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGluZyAxOTA5NSwgaXQgYnJlYWtzIHRlc3RzCgoyMDEwLTA2LTI1IDA5OjQwICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcHRyYW5zbGF0ZTogZml4ZWQgcHJpbnRpbmcgb2YgcmFuZ2VzIHdpdGggVU5TSUdORUQKICAgdHlwZS4KCjIwMTAtMDYtMjQgMjM6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGZ1bmN0aW9uIG5hbWVzIGZvciBzdGF0IGluY3JlYXNlcwoKMjAxMC0wNi0yNCAyMzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3JzIGluIGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjQgZm9yIGR0bHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuMy4yCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsaWVudCBzaWRlIGNvbm5lY3QgY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY291bnRlciBhbmQgY29tbWVudCBpbXByb3ZlbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdXBkYXRlIGNvdW50ZXIgY2FsbHMgYW5kIGNvbW1lbnQgdGV4dAoKMjAxMC0wNi0yNCAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIE1vdmVkIExEX0xJQlJBUllfUEFUSCBzZXR1cCBmcm9tIGluZGl2aWR1YWwgdGVzdHMgc2NyaXB0cyB0bwogICBzaW1wbGVfVEVTVENPTkYuc2guCgoyMDEwLTA2LTI0IDE5OjAyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBGaXhlZCBhIGNvbW1lbnQuCgoyMDEwLTA2LTI0IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIFNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE5MDg0LgoKMjAxMC0wNi0yNCAxNzo0NyAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA2LTI0IDEyOjMwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgInRlc3QgLWUiIGlzbid0IHBvcnRhYmxlOyB1c2UgInRlc3QgLXgiIGluc3RlYWQgZm9yIHRoZSBQZXJsCiAgIHN5c3RlbSgpCiAgIGNoZWNrCgoyMDEwLTA2LTIzIDExOjE0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBJUC1NSUI6OmlwdjZJbnRlcmZhY2VGb3J3YXJkaW5nIG9uCiAgIExpbnV4CiAgIAogICBUaGUgdmFsdWUgd2FzIDAgKG5vdCBmb3J3YXJkaW5nKSBvciAxIChmb3J3YXJkaW5nKSwgc2hvdWxkIGJlIDIKICAgYW5kIDEKICAgaW5zdGVhZCAtIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LmZvcndhcmRpbmdfdjYgaXMgYm9vbGVhbiwgbm90CiAgIFRydXRoVmFsdWUuCgoyMDEwLTA2LTIyIDIzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBzdXBwb3J0IGZvciBjZXJ0U2VjTmFtZSBtYXBwaW5nIGZyb20gYSBsb2NhbCBjZXJ0IGZpbGUgbmFtZSBhbmQgYQogICB0ZXN0IGZvciBpdAoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVuYXRpb24gdXBkYXRlIHRvIGNsZWFuIHVwIGFuZCBpbmNsdWRlIFRMUyBwYXJhbWV0ZXJzCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGZvciBwYXNzaW5nIGlkZW50aXRpZXMgYW5kIGZ1bGwgd29ya2luZyB2ZXJzaW9uCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50OgoKICAgcGVybCBUTFMvRFRMUyB0ZXN0cwoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZmlyc3QgcHRhY2ggb24gU05NUC9UTFMgY3JlYXRpbmcgYSBuZXcgc2Vzc2lvbiBmdW5jdGlvbgoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXJzdCB3b3JraW5nIHN1cHBvcnQgZm9yIGEgZGVsYXllZCBjbG9zZSgpIHRvIGF0dGVtcHQgdG8gc2VuZGluZwogICBvdXRzdGFuZGluZyBwYWNrZXRzIGluIHRoZSBxdWV1ZTsgdGhpcyBpcyByZXF1aXJlZCBmb3Igc25tcHRyYXAKICAgdG8gd29yayBhdCBhbGwgd2hlbiBzZW5kaW5nIHRyYXBzIChub3QgaW5mb3Jtcykgb3ZlciBEVExTCgoyMDEwLTA2LTIyIDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0cyBUMDU5dHJhcGhhbmRsZV9zaW1wbGUgYW5kCiAgIFQwNjVhZ2VudGV4dGVuZF9zaW1wbGUgZG8gbm93IHBhc3MuCgoyMDEwLTA2LTIyIDE5OjAxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBUaGUgd2lkdGggYXJndW1lbnQgZm9yICUuKmQgbXVzdCBoYXZlIHR5cGUgaW50LCBub3Qgc2l6ZV90LiBUaGlzCiAgIGJ1ZyB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTQuCgoyMDEwLTA2LTIyIDE4OjU3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogTWluR1c6IHRoZSBzbm1wZC5jb25mIGtleXdvcmQgZXh0ZW5kIGRvZXMgbm93IHdvcmsuCiAgIE5FV1M6IE1pbkdXOiB0aGUgc25tcHRyYXBkLmNvbmYga2V5d29yZCB0cmFwaGFuZGxlIGRvZXMgbm93IHdvcmsuCiAgIENIQU5HRVM6IE1pbkdXOiBydW5fc2hlbGxfY29tbWFuZCgpIHdpdGggZWl0aGVyIGlucHV0IG9yIG91dHB1dAogICAoYnV0IG5vdCBib3RoKSBkb2VzIG5vdyB3b3JrLgogICBUaGlzIGRpZCBub3Qgd29yayB1bnRpbCBub3cgYmVjYXVzZSBvbiBNaW5HVyBta3N0ZW1wKCkgZ2VuZXJhdGVzCiAgIGEgTWluR1ctc3R5bGUgcGF0aCAoL3RtcC8uLi4pIHdoaWxlIHN5c3RlbSgpIGludm9rZXMgY21kLmV4ZSBhbmQKICAgaGVuY2UgZXhwZWN0cyBhIFdpbmRvd3Mtc3R5bGUgcGF0aCAoQzpcLi4uKS4KCjIwMTAtMDYtMjIgMTc6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBBbHNvIHJlcG9ydCB0aGUgcG9ydCBzcGVjaWZpY2F0aW9uIGlmIFsgJFNOTVBfVkVSQk9TRSAtZ3QgMCBdLgoKMjAxMC0wNi0yMiAxNzozOCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIFJlcGxhY2VkIGFuIGV4cGxpY2l0IHRlc3QgZm9yIE1pbkdXIGJ5IGEgdGVzdCBvbiBIQVZFX1NJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzYgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBTSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUmVwb3J0IHdoaWNoIHRlc3RzIGZhaWxlZCwgaWYgYW55LgoKMjAxMC0wNi0yMiAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXhlZCBhbiBlcnJvciBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDEwLTA2LTIxIDE5OjI2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgUmVhcnJhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB0ZXN0IHN1Y2ggdGhhdCBpdCBpcyBubwogICBsb25nZXIgbmVjZXNzYXJ5CiAgIHRvIGludm9rZSBzaW1wbGVfZXZhbF90b29scy5zaCB3aGVuIHRoaXMgc2NyaXB0IGlzIGludm9rZWQgYXMgYQogICB0cmFwIGhhbmRsZXIKICAgYnkgc25tcHRyYXBkLgoKMjAxMC0wNi0yMSAwODowMSAgZHRzMTIKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEVuc3VyZSB0aGF0IGZkc2V0IHN0cnVjdHVyZSBpcyByZXNpemVkIHN1ZmZpY2llbnRseQogICB0byBhY2NvbW9kYXRlIHRoZSBzcGVjaWZpZWQgc29ja2V0IElELgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFNoaXlhbGVpLgoKMjAxMC0wNi0yMCAxOTozMiAgZHRzMTIKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgICAKICAgICAgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgQXZvaWQgZHVwbGljYXRlICh1bnVzZWQpIHN5bWJvbHMuCgoyMDEwLTA2LTIwIDE5OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgQ29tbWVudGVkIG91dCBkZWJ1ZyBjb2RlLgoKMjAxMC0wNi0yMCAxOTozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUmVzdG9yZWQgc3VtbWFyeSBzdWNjZXNzL2ZhaWx1cmUgY291bnQgcmVwb3J0aW5nLgogICBBbHNvLCBtb3ZlZCBraWxsLmV4ZSB0ZXN0IGJhY2sgdG8gUlVOVEVTVFMuCgoyMDEwLTA2LTIwIDE5OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogYWRkIHRoZSB0ZXN0IG5hbWUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlCiAgICJpbnZva2VkIi4KCjIwMTAtMDYtMjAgMTk6MjcgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogc2tpcCB0aGUgdGVzdHMgdGhhdCByZXF1aXJlIFNJR0hVUCBzaW5jZQogICBNaW5HVyBkb2VzIG5vdCBzdXBwb3J0IFNJR0hVUC4KCjIwMTAtMDYtMjAgMTU6MTkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjb25maWd1cmUgdGVzdCB0aGF0IGRldGVjdHMgd2hldGhlciBvciBub3QgUGVybCdzCiAgIHN5c3RlbSgpIGZ1bmN0aW9uCiAgIGludm9rZXMgYSBQT1NJWCBzaGVsbC4gIm1ha2UgdGVzdCIgZG9lcyBub3cgZmFsbCBiYWNrIHRvIFJVTlRFU1RTCiAgIGlmIG5vdC4KCjIwMTAtMDYtMjAgMTU6MTYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gb24gTWluR1cgLS0gYWRkZWQgI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+IHdoZXJlCiAgIG5lY2Vzc2FyeS4KICAgTm90ZTogYWx0aG91Z2ggPG5ldC1zbm1wL3R5cGVzLmg+IGlzIGluY2x1ZGVkIGluZGlyZWN0bHkgZnJvbSB0aGUKICAgKiAgICAgKnRyYW5zcG9ydC5oICAgIGhlYWRlciBmaWxlcywgdGhlc2UgI2luY2x1ZGUgc3RhdGVtZW50cyBhcmUKICAgICAgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YgICAgYSBwZXNreSAgICBjaXJjdWxhciBkZXBlbmRlbmNlIGJldHdlZW4KICAgICAgPG5ldC1zbm1wL3R5cGVzLmg+IGFuZCAgICA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPi4gCiAgICAgIDIwMTAtMDYtMjAgMTU6MTIgIGJ2YXNzY2hlCgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBDSEFOR0VTOiBNaW5HVzogcmVmdXNlIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyBpZiBraWxsLmV4ZQogICBjYW5ub3QgYmUgZm91bmQuCgoyMDEwLTA2LTIwIDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU2hvcnRlbmVkIHRoZSBzcmNkaXIgcGF0aCBieSBtYWtpbmcgc3VyZSB0aGF0IGl0IGRvZXMgbm90IGNvbnRhaW4KICAgLy4uCgoyMDEwLTA2LTE5IDE4OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIHJ1bm5pbmcgUlVORlVMTFRFU1RTIHdpdGggVGVzdDo6SGFybmVzcyBpbgogICBhbm90aGVyIGRpcmVjdG9yeSB0aGFuIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBjb21wbGV0ZSByZXdyaXRlIG9mIHBhcmFtcyB0byB1c2UgdGFibGVfZGF0YXNldCBpbnN0ZWFkIG9mCiAgIGNyZWF0ZS1kYXRhc2V0CgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVzZSB0ZXh0IGZvciBoYXNoIHR5cGUgaW4gcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBtaXNzaW5nIHNwZWNpZmllciBpbiBkZWJ1ZwoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBkZWZpbmUgaW5zdGVhZCBvZiBjb25zdGFudDsgZml4IGNoZWNrIGZvciByb3dzIHRvIHNhdmUKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgcmVtb3ZlL2ZpbmQgZnVuY3Rpb24gZm9yIG1hcHMvYWRkcnMvcGFyYW1zOyByZW5hbWUgcGFyYW1zCiAgIHRhZy0+bmFtZTsKICAgZGVzdHJveSAtPiBmcmVlOyBncm91cCByZWNlbnQgdHJ1c3QgZnVuY3Rpb25zIHRvZ2V0aGVyIGluIHNyYzsKICAgZG9uJ3Qgc3RvcmUKICAgcGFyYW1zIGZwIGFzIGJpbmFyeTsgaGFuZCB0ZXh0IGFyZ3MgZm9yIGhhc2ggdHlwZSAoZS5nIC0tc2hhMSkKCjIwMTAtMDYtMTggMTU6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBDSEFOR0VTOiBDeWd3aW46IGNvcnJlY3RlZCBlcnJvciBoYW5kbGluZyBpbiBtaWJJSS9hdC4KCjIwMTAtMDYtMTggMDc6MjMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNi0xOCAwMTo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgRG8gbm90IGRlZmluZSByZXQgdHdpY2Ugd2hlbiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8gaXMgc2V0LgoKMjAxMC0wNi0xOCAwMTozOSAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENvcnJlY3RlZCB0eXBvLgoKMjAxMC0wNi0xOCAwMDozMSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIGJldHRlciBORVdTIGFuZCBDSEFOR0VTIGZpbGVzCgoyMDEwLTA2LTE3IDIwOjM5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHJlLWVuYWJsZSBzb21lIGNvbW1hbmRzCgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICBmb3Jnb3QgbWlzc2luZyBxdW90ZXMgaW4gU0VUIG91dHB1dAoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRscyB0ZXN0aW5nIGNsZWFudXAKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciBhZGRyZXNzIHByaW50aW5nOyBtb3JlIHRvIGNvbWUKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3N0bHkgcHJvcGVybHkgc2V0IHJlbW90ZS9sb2NhbCB0cmFuc3BvcnQgcGFyYW1ldGVycwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGU6CgogICB0ZXN0cyBmb3IgYWdlbnRzIHNlbmRpbmcgb2YgdHJhcHMgb3ZlciAoRClUTFMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgbW92ZSBleHBvcnQgc3RhdGVtZW50cyB0byB0aGUgc3VwcG9ydCBmaWxlIGZvciBzaW1wbGljaXR5CgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGxzIGJvb3RzdHJhcHBpbmcgdG8gcG9zdF9wcmVtaWIgc28gb3RoZXIgY29uZmlnIHRva2VucyBjYW4KICAgdXNlIHRoZSBjZXJ0IGxvYWRpbmcgcmVzdWx0cwoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIGFkZGVkIHNubXBfZW51bSB0ZXN0cyBwdWxsZWQgZnJvbSB0aGUgbWFpbigpIHRlc3QgYXQgdGhlIGJvdHRvbQogICBvZiB0aGUgb3JpZ2luYWwgLmMgZmlsZQoKMjAxMC0wNi0xNyAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFbGltaW5hdGUgImRpZmZlciBpbiBzaWduZWRuZXNzIiB3YXJuaW5nCgoyMDEwLTA2LTE3IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIHJldmVydCBVRFAgY2hhbmdlcyBmcm9tIHIxODk4NCBzaW5jZSBpdCBicm9rZSB0aGUgVURQIHRyYW5zcG9ydDsKICAgdGhlIHN0cnVjdCBwcm9iYWJseSBuZWVkcyB0byBtYXRjaCBhbm90aGVyIHN0cnVjdCBzb21ld2hlcmUgZWxzZQoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIG5ldyBLRVlXT1JEIG91dHB1dCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgY29uZmlnX2FuZF9vcGVuIGZvciBvcGVuaW5nIHRoZSB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZXh0cmEgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIGV4cGxpY2l0bHkgZGVjbGFyZSB0cnVzdCBjZXJ0aWZpY2F0ZXMgdG8gdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2xlYW51cCBzb21lIGxvc3QgbWVtb3J5IG9uIGNsb3NpbmcKCjIwMTAtMDYtMTYgMjE6NTYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwb3MKCjIwMTAtMDYtMTYgMjE6MzQgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBhZ2VudCBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMjA6MTYgIGR0czEyCgogICAqICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGxpYnJhcnkgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE5OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvbGRlciBuby1sb25nZXItbmVlZGVkLWR1cGxpY2F0ZS1jb25maWcgZW50cmllcwoKMjAxMC0wNi0xNiAxOToxNCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBGaXggcHJvY2Vzc2luZyBvZiB2aWV3IG1hc2tzIChtaXNwbGFjZWQgcGFyZW50aGVzZXMpCgoyMDEwLTA2LTE2IDE4OjQ1ICBkdHMxMgoKICAgKiAgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIGZyb20gYXBwIGNvZGUKICAgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0czoKCiAgIGNoZWNrIGZvciBpbmZvcm1zIHNlbnQgb3ZlciB0bHMgdHJhbnNwb3J0cwoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IG90aGVyIHZhbHVzZSBmcm9tIHBhcmVudCB0bHNiYXNlIGRhdGEKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIGFkZGVkIGJhc2ljIHRyYXAgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRlc3RzCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCB0ZW1wIGZpbGUgdG91Y2hlcwoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZ1bmN0aW9uIGFuZCB0cmFuc3BvcnQgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgZl9vcGVuCiAgIGNhbGwgaGFzIGJlZW4gY2FsbGVkIHlldAoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1bnVzZWQgdmFyIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGRlZCB0cnVzdENlcnQgY29uZmlndXJhdGlvbiB0b2tlbgoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgbWlub3IgdHdlYWtzIGZvciB0ZXN0aW5nIGNsYXJpdHkKCjIwMTAtMDYtMTYgMTc6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGU6CgogICBtb3ZlZCBjb21wbGV4IChEKVRMUyB0byBhIHNlcGFyYXRlIHNlY3Rpb24gYW5kIG1hZGUgdGhlIHRyYW5zcG9ydAogICB0ZXN0cyBvbmx5IHRlc3QgbWluaW1hbCBzdXBwb3J0CgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIG1lY2hhbmlzbXMgZm9yIHNwZWNpZnlpbmcgYW5kIGV4cGVjdGluZyB0aGUgaG9zdG5hbWUgb2YgdGhlCiAgIGZhciBzaWRlCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGVzdHMgZm9yIHZlcmlmeWluZyBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hlY2sgZmFpbHVyZXMKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIHRlc3RpbmcgZm9yIGNoZWNraW5nIGNsaWVudCBzaWRlIHZlcmlmaWNhdGlvbiBvZiBzZXJ2ZXIKICAgY2VydGlmaWNhdGVzCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoZWNrIHRvIG1ha2Ugc3VlciBzc2wgcG9pbnRlciBoYXMgYmVlbiBjcmVhdGVkIHZpYSBmX29wZW4gY2FsbAoKMjAxMC0wNi0xNiAxNTowMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9wZXJsLmgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWNsYXJlICdzaHV0ZG93bl9wZXJsJyBwcm9wZXJseS4KCjIwMTAtMDYtMTYgMTQ6MzcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIHR5cGUgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKICAgd2FybmluZ3MgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNDoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRWxpbWluYXRlICJ1bnVzZWQgdmFyaWFibGUiIHdhcm5pbmcKCjIwMTAtMDYtMTYgMTQ6MjIgIGR0czEyCgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgdmFyaW91cyAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTYgMTM6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHZhY20uYywgc25tcGxpYi90b29scy5jOgoKICAgRWxpbWluYXRlIChtb3N0KSBzaWduZWQtdnMtdW5zaWduZWQgd2FybmluZ3MgZnJvbSBudW1lcmljIHNjYW5mCiAgIHByb2Nlc3NpbmcgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTYgMDM6MjggIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB0aGUgZ3JlYXQgdW4tbmFtZWQgY29udGFpbmVyIGh1bnQKCjIwMTAtMDYtMTYgMDM6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHNoYXJlIGNhY2hlIGJldHdlZW4gdGFibGUgYW5kIGNvdW50IHNjYWxhcjsgd2hlbiByZWFkaW5nIGNvbmZpZywKICAgYWRkIHRvCiAgIGxpYnJhcnkgY29udGFpbmVycyBmb3IgYWN0aXZlIHJvd3MsIHRhYmxlIGNvbnRhaW5lcnMgZm9yIGluYWN0aXZlCiAgIHJvd3M7CiAgIHVzZXIgY2VydF91dGlsIGFwaXMgaW5zdGVhZCBvZiBkaXJlY3QgY29udGFpbmVyIG1hbmlwdWxhdGlvbjsKICAgd2hlbgogICBzYXZpbmcgaW5hY3RpdmUgbWFwIHJvd3MsIHNraXAgYWxsIGJ1dCBub25Wb2xhdGlsZQoKMjAxMC0wNi0xNiAwMzoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggZGVidWcgdG9rZW4gdHlwbwoKMjAxMC0wNi0xNiAwMzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhcGkgZm9yIGFkZGluZyBlbnRyaWVzIHRvIHRsdHNtIGFkZHIsIHBhcmFtcyBhbmQgY2VydCBtYXAKICAgY29udGFpbmVyczsKICAgcmVnaXN0ZXIgc2Ugc2xpc3QgcGFpciBlYXJsaWVyIHNvIHRoZXkgYXJlIGF2YWlsYWJsZSBkdXJpbmcKICAgY29uZmlnIHBhcnNpbmc7CiAgIG1ha2Ugc3VyZSBjb25maWcgc3RyaW5ncyBhcmUgbnVsbCB0ZXJtaW5hdGVkCgoyMDEwLTA2LTE1IDIxOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBTdXBwcmVzcyB3YXJuaW5nczoKICAgJ3N0cnVjdCBubG1zZ2hkciBkZWZpbmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCcgYW5kCiAgICdmdW5jdGlvbiBfbG9hZF92NiBkZWNsYXJlZCBidXQgbmV2ZXIgZGVmaW5lZCcKCjIwMTAtMDYtMTUgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9rZXJuZWwuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgRWxpbWluYXRlICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNSAwNzowNyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAzY29weV9ud29yZF9jbGliLmM6CgogICBBZGQgdGVzdCBvZiBjb3B5X253b3JkCgoyMDEwLTA2LTE0IDIxOjMyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgRWxpbWluYXRlICJvdmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIiB3YXJuaW5ncwogICBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNCAxNTo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEVsaW1pbmF0ZSAic3RyaW5nIGxlbmd0aCBncmVhdGVyIHRoYW4gNTA5IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAxNToxOSAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUiIHdhcm5pbmdzCiAgIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDA1OjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIGNvdW50IGhhbmRsZXJzIHRvIGNvdW50IG5vbi1hY3RpdmUgcm93cyB0b28KCjIwMTAtMDYtMTQgMDU6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBvbmx5IHR3ZWFrIHN0b3JhZ2VUeXBlIGZvciBhY3RpdmUgcm93czsgcmVzZXQgZW50cnkgZmxhZ3Mgd2hlbgogICByZW1vdmluZyBmcm9tCiAgIGNlcnRfdXRpbCBtYXBzOyB3aGVuIGNyZWF0ZWluZyByb3dzIGZyb20gY2VydF91dGlsIG1hcHMsIHNldAogICBzdHJhZ2V0VHlwZSB0bwogICB2b2xhdGlsZSBpZiBub25Wb2xhdGlsZSBmbGFnIG5vdCBzZXQ7IGRvbnQgZnJlZSBjYWNoZSBpbgogICBjYWNoZV9sb2FkIG9uIGVycgoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBtb3ZlIHRsc3RtQWRkciB0YWJsZSBjb25maWcgcGFyc2luZyB0byBjZXJ0X3V0aWw7IGFkZCBjYWNoZSB0bwogICBtZXJnZSBjZXJ0X3V0aWwKICAgYWRkcnMgKGFjdGl2ZSkgYW5kIG5vbi1hY3RpdmUgcm93czsKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgbm9uVm9sYXRpbGUgZmxhZyB0byB0bHN0bUFkZHIgdGFibGU7IHNldCBjb250YWluZXIgbmFtZTsgc2tpcAogICAnMHgnIGluIGZwCgoyMDEwLTA2LTE0IDA1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgTE9HX0VSUiB0byBMT0dfSU5GTyBmb3Igbm9uLWVycm9yIGxvZyBtc2cKCjIwMTAtMDYtMTMgMjE6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tCiAgIE1mRC1iYXNlZCBNSUIgbW9kdWxlIGNvZGUsIGFuZCBNZkQgdGVtcGxhdGUgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMjE6MzMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gKG5vbi1NZkQpCiAgIE1JQiBtb2R1bGUgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMTA6MjYgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIGxpYnJhcnksCiAgIGFwcHMgYW5kIGFnZW50IGZyYW1ld29yaytoZWxwZXJzIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEwIDIwOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgbG9va3VwIGNlcnQga2V5cyBmb3IgdGxzIGRvbWFpbnM7IHVzZSBTRUNfTU9ERUwgZGVmaW5lIGluc3RlYWQgb2YKICAgaGFyZGNvZGVkCiAgIGNvbnN0YW50OyBhZGQgU0VDX01PREVMX1RTTSB0byBhbGxvd2VkIHNlYyBtb2RlbHMgZm9yIG1wTW9kZWwKICAgU05NUF9WRVJTSU9OXzMKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBkZWZhdWx0IHRvIHJlYWRPbmx5L2FjdGl2ZSBmb3IgYmFkIGNvbmZpZwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkIGRlYnVnOyBzd2l0Y2ggdG8gU0VDX01PREVMX1RTTSBhbmQgd2FybiBpZiBvdGhlciBzZWNtb2RlIHNldCwKICAgaW5zdGVhZAogICBvZiBzaW1wbHkgbG9nZ2luZyB0aGF0IGl0IHdvbid0IHdvcmsKCjIwMTAtMDYtMTAgMTk6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHB0cnMgYmVmb3JlIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEwIDE5OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YSBtYW5hZ2VtZW50IHRvIGNlcnRfdXRpbDsgaW1wbGVtZW50CiAgIFRBUkdFVF9BRERSCiAgIGFuZCBUQVJHRVRfUEFSQU1TIGxvb2t1cCBpbiBjZXJ0IEFQSQoKMjAxMC0wNi0xMCAxOTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVwZGF0ZSBzZWMgbW9kZWwgZGVmaW5lIG1pc3NlZCBpbiBlYXJsaWVyIGNoZWNraW4KCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb25maWcgdHJhcHNlc3MgdHJhbnNwb3J0cyBvbiBjcmVhdGlvbjsgc2ltcGxpZnkgaWZkZWZzIGZvcgogICBESVNBQkxFX1NOTVBWMQoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wa3NtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGF1dG8gc3dpdGNoIHRvIHYzIGZvciAoZCl0bHMgc2Vzc2lvbnMgaW5zdGVhZCBvZiBsb2dnaW5nIHRoYXQKICAgb3RoZXJzIHdvbnQKICAgd29yazsgZGVmaW5lIFRTTSBzZWMgbW9kZWwgd2l0aCBvdGhlciBzZWMgbW9kZWxzOyBjb25zaXN0ZW50bHkKICAgdXNlCiAgIFNOTVBfU0VDX01PREVMXyogaW4gdGhlIGNvZGUsIHVzaW5nICNkZWZpbmVzIGZvciBiYWNrd2FyZHMKICAgY29tcGF0aWJpbGl0eQogICB3LypfU0VDVVJJVFlfTU9ERUwKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0VG9UU046IG1vdmUgbWliIHJlbGF0ZWQgcGVyc2lzdGVuY2UgYmFjayBpbnRvIG1pYiBtb2R1bGU7CiAgIGNlcnRfdXRpbDogYWRkIHRsc3RtUGFyYW1zIHBlcnNpc3RlbmNlOyB1c2Ugc2xpc3QgZm9yIGNlcnQgbWFwCiAgIHR5cGUgbmFtZQogICBtYXBwaW5nOwoKMjAxMC0wNi0xMCAxOTo0NSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZyAoY29uc3QpCgoyMDEwLTA2LTEwIDA0OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBBZGQgbWlzc2luZyBpbmRlbnRhdGlvbiBvZiBhIGRvLXdoaWxlIGxvb3AgdG8gbWFrZSB0aGUgY29kZQogICByZWFkYWJsZS4KCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBjb21tZW50IG91dCBrZXlVc2FnZSBzbyBwcm9wZXIgc2VsZi1zaWduZWQgY2VydHMgYXJlIGdlbmVyYXRlZAoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzb2xpZGlmeSBjZXJ0aWZpY2F0ZSBhY2NlcHRhbmNlIGZvciB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJyYXkgdHlwbwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvZyBvcGVuc3NsIGVycm9ycyBvbiBhY2NlcHQgZmFpbHVyZQoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVnaXN0ZXIgZGVmYXVsdCBwb3J0cyBmb3IgdGxzL2R0bHMKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkbyBwcm9wZXIgU1RPUkUgbG9hZGluZyBvZiB0cnVzdGVkIGNlcnRpZmljYXRlcyByYXRoZXIgdGhhbiBmaWxlCiAgIGJhc2VkIGxvYWRpbmcKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZGVkIHR3byBuZXcgQVBJczogbmV0c25tcF9jZXJ0X3RydXN0IGFuZCBuZXRzbm1wX2NlcnRfdHJ1c3RfY2EKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAndGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAnZHRscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDggMjE6MDUgIG1hZ2ZyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBhZ2VudF9yZWFkX2NvbmZpZy5oIGluIDUuNiBhcyB3ZWxsLiBJdCBkaXNhcHBlYXJlZCBpbgogICByMTg4NDMuCgoyMDEwLTA2LTA4IDA5OjI1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOgoKICAgUmVtb3ZlIChvciBhY3RpdmF0ZSkgdW51c2VkIHZhcmlhYmxlcy4KICAgRml4IG1pc25hbWVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgoKMjAxMC0wNi0wOCAwNzoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBBUEkgY2hhbmdlcyBmb3IgcHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrCiAgIG1vZHVsZS4KICAgKE9taXR0ZWQgZnJvbSByZXZpc2lvbiAxODkzMiBjaGVja2luKQoKMjAxMC0wNi0wOCAwNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdXBkYXRlIG1ha2VmaWxlIGZvciBtb3ZlZCBoZWxwZXIgaGVhZGVycwoKMjAxMC0wNi0wNyAyMDoxOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgUmV2ZXJ0aW5nIHJldi4gMTc2MTYsIHRoZSBuZWNlc3NhcnkgY2hlY2sgaXMgYWxyZWFkeSBpbiByZXYuCiAgIDE3NDE1LgoKMjAxMC0wNi0wNiAwMzo0NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRoczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbiBjYXNlIGV4ZWNfcHJlZml4IGlzIHVuc2V0IHRoZW4gc2V0IGl0IHRvCiAgICcke3ByZWZpeH0nIGluIG9yZGVyIHRvIHBpY2sgdXAgb3ZlcnJpZGVzIG9mICRwcmVmaXggaW4gbWFrZQogICBpbnN0YWxsLgoKMjAxMC0wNi0wNCAwNDowNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvIGEgYmV0dGVyIGpvYiBvZiB2ZXJpZnlpbmcgZmluZ2VycHJpbnRzIG9mIHJlbW90ZSBzZXJ2ZXJzCiAgIHB1bGxpbmcgZmluZ2VycHJpbnRzIGZyb20gYSBudW1iZXIgb2YgcG9zc2libGUgcGxhY2VzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgZ28gYWhlYWQgYW5kIGxvZyBvdXRwdXQgZmlsZSBmb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBlcnJvcnMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHR5cG8KCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBjb21tZW50IGFib3V0IHJhbmRvbSBiZWluZyBpbmFkZXF1YXRlOyB3ZSdyZSBkb2luZyB0aGUKICAgYmVzdCB3ZSBjYW4gYmFzZWQgb24gd2hhdCB3ZSBoYXZlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSBhbm90aGVyIHVzZXIgZm9yIHRlc3Rpbmcgc25tcGFwcCBkZWZhdWx0IGNlcnRpZmljYXRlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJ1biBhIGRlZmF1bHQgdGVzdCB3aXRob3V0IGEgbG9jYWwga2V5IHRvIGVuc3VyZSB0aGUgc25tcGFwcCB0eXBlCiAgIGlzIHBpY2tlZCB1cAoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIGxvY2FsIGlkZW50aXR5IGFuZCBwdWxsIGl0IGZyb20gYQogICBmaWxlbmFtZSBvZiB0aGUgaW5pdF9zbm1wKCkgcmVnaXN0ZXJlZCB0eXBlIG5hbWUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBkb2MgdXBkYXRlCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDV1bml4LnQ6CgogICB1bml4IHNvY2tldCB0ZXN0CgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAzdWRwNi50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDR0Y3A2LnQ6CgogICBpcHY2IHRlc3RzCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgbWVudGlvbiB0ZXN0IG5hbWUgaXMgSVB2NAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIGNoZWNrIHRoYXQgdHJhbnNwb3J0IHdhcyBjb25maWd1cmVkCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgYWRkIHN1cHBvcnQgZm9yIG5ldC1zbm1wLWNvbmZpZy5oIGNoZWNrcwoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvTmV0U05NUFRlc3RUcmFuc3BvcnQucG0sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIHNvbWUgYmFzaWMgdHJhbnNwb3J0IGNoZWNraW5nIGZvciBwZXJsOiB1ZHAgYW5kIHRjcAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybCwgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMDAxYmFzaWMudDoKCiAgIGJhc2ljIHRlc3RzIGZvciBwZXJsCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgaW5mcmFzdHJ1Y3R1cmUgbW9kdWxlIGZvciB0ZXN0aW5nIHBlcmwgc3VwcG9ydAoKMjAxMC0wNi0wMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBQb2ludCBMSUJ7Q1VSUkVOVCxBR0UsUkVWSVNJT059IGRvY3VtZW50YXRpb24gdG8gdGhlIGNvcnJlY3QKICAgZmlsZS4KICAgV2FybiBhYm91dCAnbWFrZWRlcGVuZCcgcGlja2luZyB1cCB0ZXN0aW5nIG1vZHVsZSBjb2RlLgogICBFbXBoYXNpcyB1cGRhdGUgb2YgJ2Rvd25sb2FkLmh0bWwnIHBhZ2UKICAgTWVudGlvbiB1cGRhdGUgb2YgT2ZmaWNpYWwgUGF0Y2hlcwogICBTdXBwcmVzcyBicm9rZW4gY29tbWFuZHMKCjIwMTAtMDYtMDMgMTU6MTYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzayBtb2R1bGUuCiAgIEVuc3VyZXMgY29uc2lzdGVudCByZXBvcnRpbmcgYmV0d2VlbiBVQ0QgYW5kIEhvc3RSZXMgRlN5cyB1c2FnZQogICBhbmQgZXh0ZW5kcyAnc2tpcE5GU0luSG9zdFJlc291cmNlcycgY29uZmlnIHRvIFVDRCBkaXNrIHN0YXRzLgoKMjAxMC0wNi0wMyAxNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmM6CgogICBGaXggYnJva2VuIHNpemUgY2FsY3VsYXRpb25zLgogICBTdXBwb3J0IDY0LWJpdCBzaXplL3VzYWdlIHZhbHVlcy4KCjIwMTAtMDYtMDIgMTQ6NTIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIC0td2l0aC1jYSBpbnN0ZWFkIG9mIC0tY2EKCjIwMTAtMDYtMDIgMTQ6NTEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIHRoZSBuZXcgLWJyaWVmIG9wdGlvbiBmb3IgZmluZ2VycHJpbnQgY2FwdHVyaW5nCgoyMDEwLTA2LTAyIDE0OjQwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggLS13aXRoLWNhIGhhbmRsaW5nLCBmaXggQ0EgbmV3Y2VydHMgYm9va2tlZXBpbmcKCjIwMTAtMDYtMDIgMTA6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBwYXJzaW5nIE9JRHMKICAgaW4gY29uZmlnIGZpbGVzLgoKMjAxMC0wNi0wMiAwMDoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjaGVjayB0aGF0IENBIGNlcnRpZmljYXRlcyBjcmVhdGVkIGFmdGVyIHNubXBkIHN0YXJ0cyBhcmUgc3RpbGwKICAgdXNhYmxlOyBjaGVjayBhbGwgb3V0cHV0IGZpbmdlcnByaW50cyB0byBlbnN1cmUgdGhleSB3ZXJlCiAgIHByb3Blcmx5IGNyZWF0ZWQKCjIwMTAtMDYtMDIgMDA6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGQgbWlzc2luZyBkaXJlY3RvcnkgYW5kIGZpbGUgc3VmZml4IHRvIGNhIGludm9jYXRpb25zCgoyMDEwLTA2LTAyIDAwOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjaGVjayB0aGF0IGNlcnRpZmljYXRlIG91dHB1dCBmaW5nZXJwcmludHMgd2VyZSBmb3VuZAoKMjAxMC0wNi0wMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIHR3byBuZXcgZnVuY3Rpb25zIGZvciB2YWx1ZSBjb21wYXJpc29uIHRlc3Qgb3V0cHV0CgoyMDEwLTA2LTAyIDAwOjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIHJlbW92ZSBuby1sb25nZXItdXNlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0b2tlbiBzcGVjaWZpZXIgKHdlCiAgIHJlcXVpcmUgYSBjb3B5IG9mIHRoZSBrZXkpCgoyMDEwLTA2LTAyIDAwOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIC0gY2hhbmdlZCAnZmluZ2VycHJpbnQnIHRva2VuIHRvIG1vcmUgZ2VuZXJpYyAnaWRlbnRpdHknIGtleXdvcmQKICAgLSBhZGRlZCB0aGUgYWJpbGl0eSBmb3IgbmV0c25tcF9jZXJ0X2ZpbmQgdG8gdHJ5IG11bHRpcGxlIHR5cGVzCiAgIChGUCAmIGZpbGUpCiAgIC0gYW5kIHByb3ZpZGUgdGVzdCBzdWl0ZSB0ZXN0IGZvciBpdC4KCjIwMTAtMDYtMDEgMjA6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBQZXJsIGV4dGVuc2lvbiBtb2R1bGVzIGNhbiBsb2FkIHRoZSBOZXQtU05NUAogICBETExzIHdoaWxlIHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHJlZ3Jlc3Npb24gdGVzdHMuCgoyMDEwLTA2LTAxIDE2OjQ3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ham9yIHVwZGF0ZSBidWcgZml4ZXMgYW5kIGZlYXR1cmVzIC0gaW50ZXJhY3RpdmUgbW9kZSwgc2VwYXJhdGUKICAgQ0EgZGlycywgZ2VuIGNzciBmcm9tIGNlcnQsIGZpbmdlcnByaW50IGRpc3BsYXkgLS1icmllZiwKICAgZWxpbWluYXRlIHNlZCwgb3BlbnNzbC5jb25mIG92ZXJ3cml0ZSBhbmQgdGVtcGxhdGluZwoKMjAxMC0wNi0wMSAxNDo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDYtMDEgMTQ6MjUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgSVAtTUlCOjppcElmU3RhdHNSZWFzbVJlcWRzIHZhbHVlLgogICAKICAgSnVzdCBmaXhpbmcgYSBzdHVwaWQgdHlwby4KCjIwMTAtMDUtMzEgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBlbmFibGVkIFVuaXggdHJhbnNwb3J0LgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg3IGZyb20gdGhlIFY1LjUgYnJhbmNoKS4KCjIwMTAtMDUtMzAgMjI6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgdG8gcnVuIHdpdGggb2xkZXIgUGVybCAoZS5nLiBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoCiAgIElSSVgKICAgNi41KQoKMjAxMC0wNS0zMCAyMjo0OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHBvbGlzaCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTMwIDIwOjE5ICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERvIG5vdCBsaW5rIHdpdGggbGlibmV0c25tcGhlbHBlcnMgYW55IG1vcmUgYXMKICAgaXQgaXMgZW1wdHkuCgoyMDEwLTA1LTMwIDE5OjE4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXAuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBhIHZvaWQgYXJndW1lbnQgZm9yIHRoZSBkYXRhIGFyZ3VtZW50IG9mCiAgIHhkdW1wLgoKMjAxMC0wNS0zMCAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBCVUc6IDIwNTE3NDI6IGFkZGVkIG1pc3NpbmcgUEVSTF9TWVNfSU5JVDMoKSBjYWxsIChzZWUKICAgYWxzbyBtYW4gcGVybGVtYmVkKS4KCjIwMTAtMDUtMzAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZnJlZSgpIGNhbGxlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCiAgIGZpcnN0KS4KCjIwMTAtMDUtMzAgMTY6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGxpYjogRG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBpbmNsdWRlZC4KCjIwMTAtMDUtMzAgMTI6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLiBSZW1vdmUKICAgdW5uZWNlc3NhcnkgaW5jbHVkZXMuCgoyMDEwLTA1LTMwIDA2OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2R1bW15LmM6CgogICBNYWRlIHN1cmUgdGhhdCBsaWJuZXRzbm1waGVscGVycyBpcyBub3QgZW1wdHkgc3VjaCB0aGF0IGJ1aWxkaW5nCiAgIE5ldC1TTk1QIG9uIEFJWCBhbmQgSVJJWCBpcyBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDUtMjkgMDk6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRm9sbG93LXVwIGZvciByMTg5MDI6IHdvcmtzIGFnYWluIHdpdGhvdXQgVEFQOjpIYXJuZXNzLgoKMjAxMC0wNS0yOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbG9uZy1hZ28gYnJva2VuIHZlcmJvc2l0eQoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbW9yZSBwcmV2aW91c2x5IGJyb2tlbiBvcHRpb24gcmVuYW1lczsgY2hhbmdlIC1kIHRvCiAgIG1hc3Rlci1kaXJlY3RvcnkgYW5kIGFkZCBhcyBhIHJlYWwgYXJndW1lbnQKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIG1vcmUgbWlzc2luZyBvbGR1Y2QgcmVuYW1lcwoKMjAxMC0wNS0yOCAyMjo1NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIHJlbmFtZWQgJ29sZHVjZCcgdG8gJ3NpbXBsZScgdG8gcHV0IGEgbW9yZSBwb3NpdGl2ZSBzcGluIG9uIHRoZW0KCjIwMTAtMDUtMjggMjI6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSB0ZXN0IHN1aXRlCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgcmV2ZXJ0IHVuaW50ZW50aW9uYW5hbGx5IGNvbW1pdHRlZCB0ZXN0IHRlc3QKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBmcmVlIHZhcmlhYmxlcyBhZ2FpbgoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxrcyBzbyB0aGF0IG11bHRpcGxlIHdhbGtzIHRlcm1pbmF0ZSBwcm9wZXJseQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIHBhdGNoIHRvIGhhbmRsZSB0ZXN0aW5nIG9mIGxvb3Bpbmcgb2YgbXVsdGlwbGUgdmFyYmluZHMgaW4gYSB3YWxrCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgaW5pdGFsIHBhdGNoIHRvIHByZXZlbnQgbG9vcGluZyB3YWxrcwoKMjAxMC0wNS0yOCAyMDo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGltcGxlbWVudCBjZXJ0IGxvb2t1cCBieSBmaWxlbmFtZQoKMjAxMC0wNS0yOCAwNzowMiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgY29uc3QgZGVjbGFyYXRpb25zIHRvIHRoZSBkaXNhYmxlZCB2ZXJzaW9ucwogICBvZiB0aGUgZGVidWdnaW5nIGNvZGUgYXMgd2VsbC4KCjIwMTAtMDUtMjggMDI6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhZGQgcGVyc2lzdGVuY2U7IGNoZWNrIGZvciBjb2wgbW9kcyB3aGlsZSByb3cgYWN0aXZlCgoyMDEwLTA1LTI4IDAyOjExICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50bGliOiBuZXcgZnVuY3Rpb25zIHRvIG1ha2Ugc3Rhc2ggcHRyIGFuZCBuZXdyb3cKICAgYXZhaWxhYmxlIHRvCiAgIHRhYmxlX2RhdGFzZXQgaGFuZGxlcnMKICAgbm9uZXdzOiBmaXggdHlwbzsgdGFicyB0byBzcGFjZXM7IHVzZSBzaXplb2YgaW5zdGVhZCBvZiBjb25zdGFudAoKMjAxMC0wNS0yNyAxODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNS0yNyAxODoyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICAibWFrZSB0ZXN0IiB3aXRob3V0IFRBUDo6SGFybmVzcyAod2FzIGJyb2tlbiBieSByMTg4MDIpLgoKMjAxMC0wNS0yNyAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4gTW9zdCBmaXhlcyBpbnZvbHZlZCBhZGRpbmcgdGhlCiAgICJjb25zdCIga2V5d29yZC4KCjIwMTAtMDUtMjcgMTM6NTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjk3MjU3OTogZml4ZWQgY2hlY2tpbmcgb2YKICAgc25tcFRhcmdldEFkZHJSb3dTdGF0dXMgU0VUIHJlcXVlc3RzLgoKMjAxMC0wNS0yNyAxMzo0MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICByZXZlcnQgcGFydCBvZiAxODg4NTogdGVzdCBmaWxlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBydW4gYnkKICAgdGhlbXNlbHZlcyB0b28KCjIwMTAtMDUtMjcgMTE6MTkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBjb3JyZWN0bHkgY2FsY3VsYXRlIGlmWFRhYmxlLmlmSENJblVjYXN0UGt0cyBvbiAzMi1iaXQKICAgTGludXgKICAgCiAgIExpbnV4IGRvZXMgbm90IHByb3ZpZGUgc3RhbmRhbG9uZSBjb3VudGVyIGZvciBpbmNvbWluZyB1bmljYXN0CiAgIHBhY2tldHMgKGl1Y2FzdCkKICAgLSBpdCBwcm92aWRlcyBjb3VudGVyIG9mIGFsbCBwYWNrZXRzIChpYWxsKSArIHNlcGFyYXRlIGNvdW50ZXIKICAgZm9yIHRoZSBtdWx0aWNhc3QKICAgb25lcyAoaW1jYXN0KS4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YgaWZUYWJsZSByZWFkIHRoZXNlCiAgIGNvdW50ZXJzIGFuZAogICBjYWxjdWxhdGVkIGl1Y2FzdCA9IGlhbGwgLSBpbWNhc3QgKmJlZm9yZSogdGhlc2UgdmFsdWVzIHdlcmUKICAgZXhwYW5kZWQgaW50bwogICA2NGJpdHMuIFRoaXMgcHJvZHVjZWQgZXJyb3JzIG9uIDMyYml0IHN5c3RlbXMgd2hlbiBpYWxsCiAgIG92ZXJmbG93ZWQgdG8gemVybyBhbmQKICAgaW1jYXN0IHdhcyBub3plcm8gLT4gaXVjYXN0IGdvdCBuZWdhdGl2ZSBhbmQgJ2M2NCAzMiBiaXQgY2hlY2sKICAgZmFpbGVkJyBlcnJvciBpbgogICBzbm1wZCBsb2cuIE5vdyB0aGUgYWdlbnQgZXhwYW5kcyB0aGVzZSB2YWx1ZXMgdG8gNjRiaXRzIGZpcnN0IGFuZAogICAqICAgICAqdGhlbiogcGVyZm9ybXMgICAgdGhlIGNhbGN1bGF0aW9uLCB1c2luZyBhIG5ldyBmbGFnLiAKICAgICAgMjAxMC0wNS0yNyAwODoxOCAgbWFnZnIKCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9SVU5URVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1vdmUgdGhlIHNldHRpbmcgb2YgTUlCRElSUyBmcm9tIHRoZSBzdXBwb3J0CiAgIHNjcmlwdCB0byB0aGUgZHJpdmVycyBzaW5jZSBpdCBpcyBuZWVkZWQgZm9yIHRoZSBDIHRlc3RzIGFzIHdlbGwuCgoyMDEwLTA1LTI3IDA4OjA5ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVXNlIG9sZHVjZF9ydW4sIG5vdCBydW5fb2xkdWNkLiBDaGFuZ2Ugc3JjZGlyCiAgIHRvIHJlZmVyIHRvIHRoZSB0b3AgZGlyZWN0b3J5IGFuZCBub3QgdGhlIHRlc3Rpbmcgc3ViZGlyZWN0b3J5IGFzCiAgIHRoYXQgaXMgd2hhdCBpcyBleHBlY3RlZCBpbiB0aGUgdGVzdCBzY3JpcHRzLgoKMjAxMC0wNS0yNyAwNToxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjcgMDU6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIva2V5dG9vbHMuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgbW9yZSBjb25zdCBjb3JyZWN0bmVzcwoKMjAxMC0wNS0yNyAwNDoxOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0cyBmb3IgYWdlbnQtbm90LWtub3duLXVzZXItY2VydGlmaWNhdGVzCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVmZXJlbmNlIHRoZSBpdG5lcm5hbCBzdXBwb3J0IGFuZCByZWxhdGVkIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbC9PUEVOU1NMLUxJQ0VOU0UsIHNubXBsaWIvb3BlbnNzbC9SRUFETUU6CgogICBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGxpYm5ldHNubXA6IFN1cHBvcnQgZm9yIGEgc3RyZWFtLWxpbmUgc3RyaXBwZWQgZG93biB2ZXJzaW9uCiAgIG9mIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCB1c2luZyAtLXdpdGgtb3BlbnNzbD1pbnRlcm5hbAoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgCiAgICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIG1vcmUgZGVwZW5kZW5jaWVzIGZvciBleHRlcm5hbCBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL29wZW5zc2wsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NvcmUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kMzJfY29tbW9uLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDVfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGEuaCwgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGFfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIG1vdmUgb3BlbnNzbCBjb2RlIGludG8gYSBzdWJkaXJlY3RvcnkKCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkOgoKICAgZml4IHRlc3Rpbmcgc28gaXQgdXNlcyBtdWx0aXBsZSB0eXBlcyBvZiBjcnlwdG8KCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5pdGlvbnMgYW5kIGZpbGVzIGZvciBkb2luZyBpbnRlcm5hbCBjcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgaW5jbHVkZSBpbnRlcm5hbCBhZXMvZGVzIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oOgoKICAgaW5pdGFsIGNvcGllcyBvZiBjZmIxMjggbW9kZXMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucyBvZiBhZXNfY29yZS5jIGFuZCBhZXNfbG9jbC5oCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBhZXMuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmM6CgogICBpbml0aWFsIGNvcHkgb2YgdGhlIG9wZW5zc2wgYWVzX2NmYi5jIGZpbGUKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBpbmNsdWRlIGxvY2FsaXplZCBjb3BpZXMgb2YgdGhlIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICB1c2UgaW50ZXJuYWwgREVTCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jOgoKICAgbG9jYWxpemVkIGNvcHkgb2YgdGhlIGNiY19lbmMuYyBmaWxlIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgZGVzL3Nwci5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGFkZGVkIGRlc19lbmMuYyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX3NoYS5oOgoKICAgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIG9wZW5zc2wncyBkZXMuaAoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBsb2NhbGl6ZWQgaGVhZGVyIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGluaXRhbCBjb3BpZXMgb2Ygc29tZSBvZiB0aGUgb3BlbnNzbCBERVMgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgZmluaXNoaW5nIHBvcnRpbmcgb2YgaW50ZXJuYWwgYXV0aCBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGludGVybmFsIGNyeXB0byBmaWxlcyB0byB0aGUgY2hlY2svdXNlIGxpc3QKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGxvY2FsaXplZCBmaWxlIG5hbWVzIHdpdGggb3BlbnNzbCBwcmVmaXhlcwoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1LmM6CgogICBsb2NhbGl6ZSB0aGUgbWQ1IGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBjb21wbGV0ZWx5IGxvY2FsaXplIHRoZSBvcGVuc3NsIFNIQSBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc2hhLmg6CgogICBpbml0aWFsIHZlcmlzb24gb2Ygc2hhLmggY29weQoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGFkZGVkIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBjcnlwdG8gZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBtYWtlIHVzZSBvZiBpbnRlcm5hbCBjcnlwdG8gaGFzaCBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDMgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY29uZmlndXJlIGNoZWNrcyBmb3IgaW50ZXJuYWwtY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjYgMjI6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBwcm9wZXJseSB2ZXJpZnkgZXhwZWN0ZWQgc2VydmVyIGNlcnRpZmljYXRlcyB1bmRlciBEVExTOyBhZGQgYQogICBuZXcgZmxhZyBpbiB0bHNiYXNlIHRvIGluZGljYXRlIHZlcmlmaWNhdGlvbiBoYXMgb2NjdXJyZWQKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIGNvbXBpbGVyIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIGFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIGEgZmV3IHBsYWNlcwoKMjAxMC0wNS0yNiAxOTo0NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wbWlicywgbGlibmV0c25tcGhlbHBlcnMgYW5kCiAgIGxpYm5ldHNubXBhZ2VudCBkbyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbiBjb25maWd1cmVkIHdpdGgKICAgLS1lbmFibGUtc2hhcmVkLgoKMjAxMC0wNS0yNiAxNzo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBORVdTOiBtb3ZlZCBhbGwgZnVuY3Rpb25zIGRlZmluZWQgaW4gbGlibmV0c25tcGhlbHBlcnMgdG8KICAgbGlibmV0c25tcGFnZW50LiBsaWJuZXRzbm1waGVscGVycyBpcyBub3cgYW4gZW1wdHkgbGlicmFyeS4KCjIwMTAtMDUtMjYgMTc6MjAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBSZXZlcnRlZCByMTg4MjkgaW4gb3JkZXIgdG8gbWluaW1pemUgZGlmZnMgd2l0aCBvbGRlciBicmFuY2hlcy4KCjIwMTAtMDUtMjUgMDc6MjMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIFRlbGwgbmV0LXNubXAtY2VydCB3aGVyZSBuZXQtc25tcC1jb25maWcgaXMgbG9jYXRlZAoKMjAxMC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ29ycmVjdCB0aGUgc2lnbmF0dXJlIG9mIG1haW4uIFVzZSAjaW5jbHVkZSBpbnN0ZWFkIG9mIHNvdXJjaW5nCiAgIHRvIGdldCB0aGUgY29kZSB1bmRlciB0ZXN0IGluIG9yZGVyIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMTAtMDUtMjUgMDc6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBBZGQgYXJndW1lbnRzIHRvIHNwcmludGYgc3RhdGVtZW50cyB0byBtYWtlIHRoZSB0ZXN0IHdvcmsKCjIwMTAtMDUtMjUgMDc6MDcgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNhYmxlZCBjb2RlCgoyMDEwLTA1LTI1IDA1OjIwICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNwbGl0IHNubXBJUEJhc2VEb21haW4gYW5kIG1vdmUgdGhlIElQdjQgcGFydHMKICAgdG8gSVB2NEJhc2UgYW5kIHRoZSBzb2NrZXQgZ2VuZXJpYyBwYXJ0cyB0byBTb2NrZXRCYXNlLgoKMjAxMC0wNS0yNCAyMDoyNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpbmlzaCB0bHN0bVBhcmFtc1RhYmxlIGxhc3RDaGFuZ2VkIHNjYWxhcgoKMjAxMC0wNS0yNCAxOToyOCAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQWRkIC0tZXh0ZXJuYWwtbGlicyBpbiBvcmRlciB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0ZXN0cyBvbgogICBzb2xhcmlzCgoyMDEwLTA1LTI0IDEzOjMzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhcmdoLi4gZml4IGZhbGxvdXQgZnJvbSBtYW51YWxseSAobWlzKWFwcGx5aW5nIHBhdGNoCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGZpcnN0IHBhc3MgYXQgdGxzdG1QYXJhbXNUYWJsZQoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBkZWZpbmVzIHRvIG1hdGNoIE1JQiBuYW1lcywgcGVyIGdyYW5kLXBvb2JhaAoKMjAxMC0wNS0yNCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYzoKCiAgIHVwZGF0ZSBPSUQgdG8gbWF0Y2ggdXBjb21pbmcgUkZDCgoyMDEwLTA1LTI0IDExOjQ4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcGFnZW50LCBsaWJuZXRzbm1waGVscGVyczogbW92ZWQgdGhlIGZ1bmN0aW9ucwogICBuZXRzbm1wX2J1bGtfdG9fbmV4dF9maXhfcmVxdWVzdHMoKSwKICAgbmV0c25tcF9nZXRfYnVsa190b19uZXh0X2hhbmRsZXIoKSwgbmV0c25tcF9yZWdpc3Rlcl9udWxsKCksCiAgIG5ldHNubXBfcmVnaXN0ZXJfbnVsbF9jb250ZXh0KCkgYW5kIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCiAgIGZyb20gbGlibmV0c25tcGhlbHBlcnMgdG8gbGlibmV0c25tcGFnZW50LgogICBOb3RlczoKICAgLSBUaGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwbGljYXRpb25zCiAgIHRoYXQgbGluayB3aXRoICQobmV0LXNubXAtY29uZmlnIC0tYWdlbnQtbGlicykgc2luY2UgdGhpcwogICBpbnZvbHZlcyBsaW5raW5nIHdpdGggYm90aCBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50LgogICAtIEZ1bmN0aW9ucyBoYXZlIGJlZW4gbW92ZWQgYmV0d2VlbiBsaWJyYXJpZXMgYnkgbW92aW5nIGVudGlyZQogICBzb3VyY2UgZmlsZXMuCgoyMDEwLTA1LTI0IDEwOjEwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFVzZSBwcm9wZXIgc3RyaW5nIHNpemVzIGFuZCBtYWtlIHN1cmUgc3RyaW5ncyBhcmUKICAgemVyby10ZXJtaW5hdGVkLgoKMjAxMC0wNS0yNCAwODowMSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXAgZG9lcyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbgogICBjb25maWd1cmVkIHdpdGggLS1lbmFibGUtc2hhcmVkLgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmwgbW9kdWxlcyBkbyBub3cgYnVpbGQgKC0td2l0aC1wZXJsLW1vZHVsZXMpLgogICBOb3RlOiB0aGUgVDA2MHRyYXBkcGVybF9vbGR1Y2QsIFQwNjFhZ2VudHBlcmxfb2xkdWNkIGFuZAogICBUMTE1YWdlbnR4cGVybF9vbGR1Y2QgdGVzdHMgc3RpbGwgZmFpbC4KCjIwMTAtMDUtMjMgMjM6MDYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXBkYXRlIGZpbGVuYW1lcy9wYXRzaCBmb3IgcmVjZW50IGZpbGUgcmVuYW1lczsgZml4IHR5cG9zCgoyMDEwLTA1LTIzIDIyOjA4ICBtYWdmcgoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgdGhlIHNhbWUgY29tcGlsZXIgY29tbWFuZCBhbmQgZmxhZ3MgZm9yCiAgIGJ1aWxkaW5nIG9mIHRlc3RzIGFzIGZvciBidWlsZGluZyBvZiB0aGUgY29kZSwgdGh1cyBlbmFibGluZyB0ZXN0CiAgIG9mIGUuZy4gMzItYml0IGNvZGUgY29tcGlsZWQgb24gYSA2NC1iaXQgcGxhdGZvcm0uCgoyMDEwLTA1LTIzIDIxOjQxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGluY2x1ZGUvY29uZmlnIGZpbGUvcGF0aHMgZm9yIHJlY2VudCByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjMxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICByZW5hbWUgZmlsZXMgZm9yIE1JQiByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZToKCiAgIHJlbmFtZSBkaXJlY3RvcmllcyB0byBtYXRjaCByZW5hbWVzIGluIE1JQgoKMjAxMC0wNS0yMCAwODo0OCAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3dhcHBlZCBsaW5rIG9yZGVyIG9mIC1sbmV0c25tcGhlbHBlcnMgLWxuZXRzbm1wbWliczogbmV0c25tcG1pYnMKICAgZGVwZW5kcyBvbiBuZXRzbm1waGVscGVycyBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMC0wNS0yMCAwODo0MiAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE5IDE4OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaGluZwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIG91dHB1dCBmaWxlbmFtZXMgb2YgZmFpbGVkIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHdpcGUgdHJhaWxpbmcgY29tbWVudCBDIG1hcmtlciBpZiBpdCBleGlzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgdGl0bGUgdGhlIFNOTVB2MyB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGVzdGluZyBvZiBidWlsdCB0aXRsZXMKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgb25seSBwcmludCBmYWlsdXJlIGhlYWRlciBpZiB0aGVyZSB3YXMgYXQgbGVhc3Qgb25lCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZDoKCiAgIG1ha2UgZGVzY3JpcHRpdmUgdGl0bGVzIHdvcmsgYWdhaW4KCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIHJlbmFtZSBmaWxlcyBzbyBwcmVmaXhpbmcgaXMgYmFzZWQgb24gdGhlIHN1aXRlIG5hbWUsIG5vdCBmaWxlCiAgIHR5cGUKCjIwMTAtMDUtMTkgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5zdWJzLnBsLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybDogYnVpbGRpbmcgdGhlIFBlcmwgbW9kdWxlcyB3aXRoIHRoZSBDeWd3aW4KICAgUGVybCBwYWNrYWdlIGlzIG5vdyBwb3NzaWJsZS4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4OCBmcm9tIHRoZSBWNS41IGJyYW5jaC4pCgoyMDEwLTA1LTE5IDE3OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xOSAxMjowNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRmlyc3QtZHJhZnQgc3VwcG9ydCBmb3IgQUlYIGZpbGVzeXN0ZW0gSEFMIG1vZHVsZSAodW50ZXN0ZWQpCgoyMDEwLTA1LTE5IDExOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBTdXBwb3J0IGZvciBTb2xhcmlzLXN0eWxlICdnZXRtbnRlbnQnIEFQSS4KCjIwMTAtMDUtMTkgMDk6NTcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIFNpbXBsaWZ5IHRoZSBoYW5kbGluZyBvZiB1bmtub3duL3Vud2FudGVkIGZpbGUgc3lzdGVtcy4KCjIwMTAtMDUtMTkgMDk6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBGaXggbWlzc2luZy9icm9rZW4gQVBJIGRlY2xhcmF0aW9ucy4KCjIwMTAtMDUtMTkgMDg6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIE1hZGUgZXJyb3IgbWVzc2FnZXMgbW9yZSBjbGVhciBpbiBjYXNlIG9mIGZhaWx1cmUgb3Igd3JvbmcKICAgaW52b2NhdGlvbi4KCjIwMTAtMDUtMTkgMDA6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdCBmb3IgdXNpbmcgYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgYSBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wNS0xOCAyMzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIHdlIGNhbGwgdGhlIHJpZ2h0IFBlcmwKCjIwMTAtMDUtMTggMjA6MzkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBpbmNsdWRlIGxvY2FsIHBvcnQgbnVtYmVyIGluIHBhY2tldCBkdW1wcy4gQW4KICAgZXhhbXBsZToKICAgCiAgIFJlY2VpdmVkIDM2IGJ5dGUgcGFja2V0IGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCAyMiAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMSAxNSAwMgogICAwIi4uLi4ucHVibGljLi4uCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDA3IDMwIDA1IDA2CiAgIC43Li4uLi4uLi4uMC4wLi4KICAgMDAzMjogMDEgMDEgMDUgMDAgLi4uLgogICAKICAgUmVjZWl2ZWQgU05NUCBwYWNrZXQocykgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIEdFVE5FWFQgbWVzc2FnZQogICAtLSBjY2l0dC4xCiAgIAogICBTZW5kaW5nIDExOCBieXRlcyB0byBVRFA6IFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDc0IDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEEyIDY3IDAyCiAgIDB0Li4uLi5wdWJsaWMuZy4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgNTkgMzAgNTcgMDYKICAgLjcuLi4uLi4uLi4wWTBXLgogICAwMDMyOiAwOCAyQiAwNiAwMSAwMiAwMSAwMSAwMSAwMCAwNCA0QiA0QyA2OSA2RSA3NSA3OAogICAuKy4uLi4uLi4uS0xpbnV4CiAgIDAwNDg6IDIwIDYxIDczIDc1IDczIDIwIDMyIDJFIDM2IDJFIDMzIDMzIDJFIDMyIDJEIDczIGFzdXMKICAgMi42LjMzLjItcwogICAwMDY0OiA2MyA3MyA3NCAyMCAyMyAzMSAyMCA1MyA0RCA1MCAyMCA1MCA1MiA0NSA0NSA0RCBjc3QgIzEgU01QCiAgIFBSRUVNCiAgIDAwODA6IDUwIDU0IDIwIDUzIDYxIDc0IDIwIDQxIDcwIDcyIDIwIDMzIDIwIDMyIDMxIDNBIFBUIFNhdCBBcHIKICAgMyAyMToKICAgMDA5NjogMzEgMzAgM0EgMzUgMzggMjAgNDMgNDUgNTMgNTQgMjAgMzIgMzAgMzEgMzAgMjAgMTA6NTggQ0VTVAogICAyMDEwCiAgIDAxMTI6IDc4IDM4IDM2IDVGIDM2IDM0IHg4Nl82NAoKMjAxMC0wNS0xOCAxOTo0MiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUFkZHJUYWJsZQogICAtIGRlYWwgd2l0aCBoYXNoIHR5cGUgcHJvcGVybHkgZm9yIGdldC9zZXQgYW5kIHBlcnNpc3RlbmNlCiAgIC0gYWRkIGNvdW50IGFuZCBsYXN0IGNoYW5nZWQgc2NhbGFycwoKMjAxMC0wNS0xOCAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljYWwgT0lEIGZyb20gdXBjb21pbmcgcmZjCgoyMDEwLTA1LTE4IDE2OjE2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNpYWwgT0lEcyBmcm9tIHVwY29taW5nIFJGQzsgYWRkIGNvdW50L2xhc3QgY2hhbmdlZAogICBzY2FsYXJzCgoyMDEwLTA1LTE4IDE0OjU2ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjAwMTY1NjogSGFuZGxlIG51bGwtdGVybWluYXRpb24gb2YKICAgc3RyaW5nIHZhbHVlcyBwcm9wZXJseS4KICAgQmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgdGhlIHBhdGNoIGZyb20gVG9tbXkgQmVhZGxlLgoKMjAxMC0wNS0xOCAxNDozOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgV29ya2luZyg/KSBIQUwtYmFzZWQgdmVyc2lvbiBvZiBockZTVGFibGUuCgoyMDEwLTA1LTE4IDE0OjEyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE3IDIxOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIHVzZSBwcm9wZXIgVFNNIHNlY3VyaXR5IGNvZGUgKDQpIG5vdyB0aGF0IGl0J3Mgb2ZmaWNpYWwKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgYmVnaW5uaW5nIG9mIGEgY29udGFpbmVyIHVuaXQgdGVzdAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rlc3RpbmcuaDoKCiAgIGEgYmFzaWMgQy1jb2RlIGJhc2VkIHRlc3QgcmVwb3J0aW5nIG1lY2hhbmlzbQoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBiYXNpYyBkZWZhdWx0X3N0b3JlIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWI6CgogICBhIGJ1aWxkIHN5c3RlbSBmb3IgYmFzaWMgbGlibmV0c25tcCB0ZXN0cwoKMjAxMC0wNS0xNyAxODoxNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGZpeCBmaW5nZXJwcmludCBiaW4vaGV4IGNvbnZlcnNpb247IGFkZC9yZW1vdmUgY2VydCBzZWMgbWFwcyB2aWEKICAgbWliIG5vdyB3b3JrcwoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9iaW5hcnlfdG9faGV4CgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmcHJpbnRmKHN0ZGVyciAtPiBERUJVR01TR1RMKCgKCjIwMTAtMDUtMTcgMTg6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBjaGVjayBmb3IgaGFzaCB0eXBlCgoyMDEwLTA1LTE3IDE2OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFrZSBSVU5URVNUUyB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZWRpcgoKMjAxMC0wNS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5URVNUUzoKCiAgIG1hZGUgYSBsaW1pdGVkIHJ1biB0ZXN0IHBvc3NpYmxlIGFnYWluIHdpdGhvdXQgcGVybAoKMjAxMC0wNS0xNyAxNTozMiAgZHRzMTIKCiAgICogIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVXNlIG5ld2VyIERpc01hbiBFdmVudCBNSUIgY29kZSBmb3IgTVNWQy1iYXNlZCBidWlsZHMKICAgKGluIGxpbmUgd2l0aCBhbGwgY29uZmlndXJlLWJhc2VkIGJ1aWxkcykKCjIwMTAtMDUtMTcgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0aGUgcmV0dXJuIG91dHNpZGUgdGhlIGlmIHN0YXRlbWVudAoKMjAxMC0wNS0xNyAxNToxOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyBwdWJsaWMgaW50ZXJmYWNlIHRvIEhBTC1iYXNlZCBmaWxlc3RvcmUgbW9kdWxlLgoKMjAxMC0wNS0xNyAxMDo0MSAgYnZhc3NjaGUKCiAgICogd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgRm9sbG93LXVwIGZvciByMTg3NTQgKHJldmVydCByMTg3MzgpOiByMTg3NTQgb25seSBwYXJ0aWFsbHkKICAgcmV2ZXJ0ZWQgcjE4NzM4CiAgIGFuZCBoZW5jZSBicm9rZSB0aGUgV2luMzItYnVpbGQuIEZpbmlzaGVkIHJldmVyc2FsIG9mIHIxODczOCBieQogICByZXN0b3JpbmcKICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgoKMjAxMC0wNS0xNiAxODoxNyAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgRm9sbG93LXVwIGZvciByMTg3MjY6IG9ubHkgcGFzcyAtZnN0YWNrLXByb3RlY3RvciogZmxhZ3MgdG8gdGhlCiAgIGxpbmtlciBpbnN0ZWFkIG9mIGFsbCAtZiogZmxhZ3Mgc3VjaCB0aGF0IGl0IGJlY29tZXMgbGVzcyBsaWtlbHkKICAgdGhhdCB0aGlzIG1vZGlmaWNhdGlvbiBjYXVzZXMgdHJvdWJsZSB3aXRoIG5vbi1HTlUgdG9vbGNoYWlucy4KCjIwMTAtMDUtMTYgMTg6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHNoZWxsIGNvZGUgZm9yIGNvbnZlcnRpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIGFuIGFic29sdXRlCiAgIHBhdGggbW9yZQogICByb2J1c3QgYW5kIGNvbnZlcnRlZCAiJHsuLi4jLi4ufSIgY29uc3RydWN0IGludG8gZWNobyArIGN1dC4KCjIwMTAtMDUtMTYgMTg6MTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTW9yZSBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSB0bwogICBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUgc3Vic3RpdHV0aW9ucywgbmVjZXNzYXJ5IHRvIG1ha2UKICAgdGVzdCAwNTkgYW5kIDA2NSBwYXNzLgoKMjAxMC0wNS0xNiAxNzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGZpeCB0ZXN0cyBmb3IgY2hlY2tpbmcgc2h1dGRvd24gb2YgYXBwbGljYXRpb25zIHRvIG5vdCByZXBvcnQKICAgZmFsc2UgbmVnYXRpdmVzCgoyMDEwLTA1LTE2IDEyOjE1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSB0ZXN0IFQwNTkgcGFzcyBhZ2Fpbi4gVGhpcyB0ZXN0IHdhcyByZWNlbnRseSBicm9rZW4gYnkKICAgcGFzc2luZyBhcmd1bWVudHMgdG8gaXQgd2l0aCBhYnNvbHV0ZSBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCiAgIHBhdGhzLgoKMjAxMC0wNS0xNiAxMjoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkOgoKICAgQWRkZWQgJ1NLSVBJRk5PVCBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUnLgoKMjAxMC0wNS0xNiAxMTo0MiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE2IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFwcHMvc3NodG9zbm1wLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIG9sZCBjb2RlLgoKMjAxMC0wNS0xNiAwOTo1OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBkb24ndCB0cmlnZ2VyIGEgbmV0c25tcF9hc3NlcnQoKSB3aGVuCiAgIG5vIGV4dGVuc2lvbiBETExzIGhhdmUgYmVlbiBsb2FkZWQuCgoyMDEwLTA1LTE1IDE3OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3RvcC1nYXAgZml4IHRvIHVuYnJlYWsgIm1ha2UgdGVzdCIgZm9yIHRoZSBuaWdodGx5IGJ1aWxkcwoKMjAxMC0wNS0xNSAxMDo1OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgUmV2ZXJ0ZWQgcjE4NzI3IGJlY2F1c2UgaXQgY2F1c2VkIGJ1aWxkIGVycm9ycyBvbiBTb2xhcmlzLCBBSVgKICAgYW5kIEhQLVVYLgoKMjAxMC0wNS0xNSAwMDo0MiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGw6CgogICByZXZlcnQgcjE4NzM4IHNpbmNlIG5ldyB0cmFuc3BvcnQgcmVxdWlyZSBkeW5hbWljbHkgYnVpbHQgaGVhZGVyCiAgIGZpbGVzCgoyMDEwLTA1LTE1IDAwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbG9nIGVudiB2YXJpYWJsZXMgdXNlZCB0byB0aGUgaW52b2tlZCBmaWxlCgoyMDEwLTA1LTE0IDIxOjI5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBmaXggc2NyaXB0IHNvIGl0IGNhbiBiZSBpbnZva2VkIG91dHNpZGUgdGhlIHRlc3QgZW52aXJvbm1lbnQKICAgYWdhaW4KCjIwMTAtMDUtMTQgMjE6MjggIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRMUy1UTS1NSUIgd2l0aCBmaW5hbCBJQU5BIGFzc2lnbm1lbnQgc2xvdHMKCjIwMTAtMDUtMTQgMjE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgVFNNIHByZWZpeGVzCgoyMDEwLTA1LTE0IDIxOjI2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBEb21haW4gbnVtYmVycwoKMjAxMC0wNS0xNCAyMToyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldCBkZWZhdWx0IHZlcnNpb24gYW5kIHNlY2xldmVsIGlmIHRscy9kdGxzCgoyMDEwLTA1LTE0IDE1OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayByYyBmcm9tIHNlY25hbWUgbWFwcGluZzsgY2xhcmlmeSBjb21tZW50CgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IHVzZSB1bnNvcnRlZCBjb250YWluZXI7IGRvbid0IGZyZWUgY2FsbGVyJ3MgY29udGFpbmVyCgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbGluZWFyX3NlYXJjaCBmb3IgdW5zb3J0ZWQgY29udGFpbmVycwoKMjAxMC0wNS0xNCAxMTo1NiAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJ5IHJlbW92aW5nIHRoZSBnZW5lcmF0ZWQgZmlsZQogICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KICAgQ29tbWVudGVkIG91dCB0aGUgY29kZSBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZwogICB0aGlzIGhlYWRlciBmaWxlLgogICBBZGRlZCBjb25maWd1cmUtdGltZSBjb2RlIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjb25zdHJ1Y3RvcnMKICAgZm9yIGFsbCBjb25maWd1cmVkCiAgIHRyYW5zcG9ydHMgYXJlIGludm9rZWQgZnJvbSBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMuCgoyMDEwLTA1LTE0IDExOjAwICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uOiB1cGRhdGVkIEN5Z3dpbiBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDEwLTA1LTE0IDA5OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAgCiAgICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTQgMDg6NTAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIC1uby11bmRlZmluZWQgZmxhZyB0byBsaWJyYXJ5IGxpbmsgY29tbWFuZHMgc3VjaCB0aGF0CiAgIGxpYnRvb2wgY2FuIGJ1aWxkIERMTHMgb24gV2luMzIuCiAgIE5vdGU6IGJ1aWxkaW5nIERMTHMgb24gV2luMzIgZG9lcyBub3QgeWV0IHdvcmsgYmVjYXVzZSBvZiB0aGUKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuCiAgIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQKICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL0xpYnJhcnlfbGF5ZXJpbmcpLgoKMjAxMC0wNS0xNCAwODo0MiAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgbGlidG9vbCBidWcgZml4OiBhbHNvIHBhc3MgZmxhZ3Mgc3RhcnRpbmcgd2l0aCAtZiB0byB0aGUgbGlua2VyCiAgIHNpbmNlIHRoZXNlIGNhbiBhZmZlY3QgbGlua2luZy4gVGhlIGZsYWcgLWZzdGFjay1wcm90ZWN0b3IgZS5nLgogICB0cmlnZ2VycyBpbmNsdXNpb24gb2YgbGlic3NwLgoKMjAxMC0wNS0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWJvcnQgaWYgdGhlIGZpbGUgcHJvZ3JhbSBjb3VsZCBub3QgYmUgZm91bmQsCiAgIHNpbmNlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGxpYnRvb2wuCiAgIENIQU5HRVM6IEN5Z3dpbjogbmVpdGhlciBjb21waWxlIG5vciBsaW5rIHdpbnBpcGUuYy4KCjIwMTAtMDUtMTMgMDg6NTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJhbiBhdXRvcmVjb25mLgoKMjAxMC0wNS0xMiAyMDoxNiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IExpbnV4OiBidWlsZHMgYWdhaW4gd2l0aCBlbWJlZGRlZCBQZXJsIGRpc2FibGVkIChidWcKICAgMjk4NTkxNSkuCgoyMDEwLTA1LTEyIDE5OjQ3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxODY4NDogdW4tYnJlYWsgdGhlIFdpbjMyIE1TVkMgYnVpbGQuCgoyMDEwLTA1LTEyIDE5OjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBXaW4zMjogZml4ZWQgYSB0eXBvIGFuZCBtYWRlIGluZGVudGF0aW9uIGNvbnNpc3RlbnQuCgoyMDEwLTA1LTEyIDE5OjExICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNvbnN0cnVjdCB0ZW1wIGJ1aWxkIGZpbGVzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5CgoyMDEwLTA1LTEyIDE5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCByZWNlbnRseSBicm9rZW4gb2xkIHBlcmwgZnVuY3Rpb25hbGl0eQoKMjAxMC0wNS0xMiAxODowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGEgLS1zaG9ydCBvcHRpb24gdG8gc2hvcnRlbiB0aGUgc2hvdyBvdXRwdXQgdG8gbWluaW1hbGlzdGljCgoyMDEwLTA1LTEyIDE0OjE0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gVENQLU1JQi4KCjIwMTAtMDUtMTIgMTM6MDIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG1lbW9yeSBsZWFrIHdoZW4gcmVhZGluZyBzZW5zb3JzIGZvcgogICBMTS1TRU5TT1JTLU1JQi4KCjIwMTAtMDUtMTIgMTI6NTcgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZXZlcnQgcmV2aXNpb24gMTg2ODkKICAgTGF0ZXN0IFdpbjMyIGJ1aWxkcyBpbmNsdWRlIHN1cHBvcnQgZm9yIHN0cnRvdWxsLgoKMjAxMC0wNS0xMiAxMjowNSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWRkZWQgZGV0ZWN0aW9uIG9mIGxtX3NlbnNvcnMgdmVyc2lvbi4KICAgSSBhbSBub3QgQXV0b2NvbmYgZ3VydSwgc28gSSBob3BlIEkgZ290IGl0IHJpZ2h0LiBUaGUgZ29hbCBpcyB0bwogICBkZWZpbmUgTkVUU05NUF9VU0VfU0VOU09SU19WMyAqYmVmb3JlKiBjb25maWdfbW9kdWxlc19hZ2VudAogICBwcm9jZXNzZXMgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLgoKMjAxMC0wNS0xMiAwNzowMyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLgoKMjAxMC0wNS0xMiAwMzowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGl0bGUgZ2VuZXJhdGlvbiBhZnRlciBjaGFuZ2UgdG8gd2hhdCBzcmNkaXIgbWVhbnQKCjIwMTAtMDUtMTIgMDI6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICB1bmRvIGxhc3QgY2hhbmdlIHdoaWNoIHR1cm5lZCBvdXQgdG8gb25seSBjYXVzZSBlcnJvcnMgaWYgeW91IGhhZAogICBhIG9sZCAuY29uZiBmaWxlIGFyb3VuZAoKMjAxMC0wNS0xMiAwMjoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCB2M19jYSBjcmVhdGlvbiBleHRlbnNpb24gbmFtZQoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBrZWVwIGZvcm1hdCB2ZXJzaW9uICMgaW4gY2VydCBpbmRleGVzOyBkb24ndCBzdG9yZSBoYXNoIHR5cGUKICAgc3RyaW5nIGluIGluZGV4OwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggaW52ZXJ0ZWQgY29udmVyc2lvbiBjYWxsOyBsZXNzIHZlcmJvc2UgZGVmYXVsdCBkZWJ1ZwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggcGFyc2luZyBvZiAtVCBuYW1lL3ZhbHVlIHBhaXJzCgoyMDEwLTA1LTExIDIzOjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYnVnIGZpeGluZyBhbmQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciAibWFrZSB0ZXN0IiB3aXRoCiAgIFRlc3Q6Okhhcm5lc3MKICAgKHN0aWxsIGRvZXNuJ3Qgd29yayBmb3IgbWUsIHRob3VnaCkKCjIwMTAtMDUtMTEgMjI6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBEbyBOT1QgaGFyZGNvZGUgL3Vzci9iaW4vcGVybCBhcyB0aGUgUGVybCBwYXRoCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaCBmaWxlIGhhbmRsaW5nCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGxvbmcgb3B0aW9ucyBzdWNrIDstKS4gcHJlZmVyIGRvdWJsZSBkYXNoZXMgZm9yIGxvbmcgb3B0aW9ucyB0bwogICBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgTmV0LVNOTVAgY29kZSBiYXNlCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcnVuIG9ubHkgdGhlIGZhaWxlZCB0ZXN0cyBmcm9tIHRoZSBsYXN0IHJ1bgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb24ndCBmb3JjZSBjb2xvcgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjbGVhbnVwIG9mIG9sZGVyCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIE1pbmltYWxseSBzdXBwb3J0IHRoZSBvbGRlciBUZXN0OjpIYXJuZXNzIHBlcmwgbW9kdWxlIGZvciBydW5uaW5nCiAgIHRoZSBvbGRlciB0ZXN0cyBhdCBsZWFzdAoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgYSBkZWZhdWx0IHNlY3VyaXR5TmFtZSBhbmQgc2VjdXJpdHlNb2RlbCBpZiBUTFMgb3IgRFRMUyBpcyBpbgogICB1c2Ugb24gdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBhbGxvdyBzZWN1cml0eSBtb2RlbHMgdG8gcGVyZm9ybSBtb3JlIG9mIHRoZSBzZXNzaW9uIHNldHVwOyBtb3ZlZAogICBtb3JlIFVTTSBzcGVjaWZpYyBzZXR1cCBpbnRvIGl0J3Mgc2V0dXAgcm91dGluZQoKMjAxMC0wNS0xMSAxODowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHBhcmFtIHRvIGxvb2t1cCBwZWVyIGNlcnQKCjIwMTAtMDUtMTEgMTY6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhbGxvdyAnLScgaW4gZnFkbjsgYWRkIGRlYnVnIG91dHB1dCBmb3IgaG9zdCBzcGVjaWZpYyBjb25maWcKCjIwMTAtMDUtMTEgMTU6NDYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRW5zdXJlICduZXRzbm1wX3JlYWRfbW9kdWxlJyBpcyBhdmFpbGFibGUgZm9yIHBlcmwgYnVpbGQuCgoyMDEwLTA1LTExIDE1OjQ0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4IHBlcmwgYnVpbGQgdW5kZXIgV2luZG93cyAoc3RydG91bGwgbm90IGF2YWlsYWJsZSkKCjIwMTAtMDUtMTAgMDc6MDcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3Npbmcgc3ltYm9sIG5ldHNubXBfc25tcFNTSERvbWFpbl9sZW4sCiAgIG1ha2UgbmV0c25tcF9zbm1wU1NIRG9tYWluIGNvbnN0LgoKMjAxMC0wNS0wOSAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgRG8gbm90IHJlcXVpcmUgcXVvdGVzIGFyb3VuZCB0aGUgQ1BVIHN0cmluZyBhcyB0aGF0IGRlcGVuZHMgb24KICAgaG93IHRoZSBhZ2VudCBpcyBjb25maWd1cmVkLgoKMjAxMC0wNS0wOSAyMTo0MyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogRXh0cmFjdCB0aGUgRXhpdCBhbmQgcmVzdGFydCogc3Vicm91dGluZXMgZnJvbQogICB1dGlsX2Z1bmMgaW4gb3JkZXIgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBsZXNzIGNvZGUgZm9yIHRoZQogICBtaW5pbWFsIGNhc2UuCgoyMDEwLTA1LTA5IDE2OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBmdW5jdGlvbgogICBnZXRfZXhlY19vdXRwdXQoKSByZXR1cm5zIGEgdmFsdWUgd2hlbiB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDUtMDkgMTY6NDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGJ1aWxkcyBub3cgYWxzbyB3aGVuIHRoZSBzb3VyY2UgZmlsZXMgYXJlCiAgIGxvY2F0ZWQgb24gYSBTYW1iYSBmaWxlc3lzdGVtIGluc3RlYWQgb2YgYSBsb2NhbCBmaWxlc3lzdGVtLgoKMjAxMC0wNS0wOSAxMzowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENvcnJlY3QgdGhlIGlmIHRoYXQgdHJpZXMgdG8gZmlndXJlIG91dCBpZiBhIHN1ZmZpY2llbnRseSBuZXcgZ2NjCiAgIGlzIGluIHVzZS4KCjIwMTAtMDUtMDkgMTI6NTAgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDaGVjayBmb3IgdGhlIG5lZWRlZCBtb2R1bGUgYW5kIG5vdCBzb21lIG90aGVyIG9uZS4KICAgTG9nIHRoZSBjb3JyZWN0IG1pc3Npbmcgc3ltYm9sLgoKMjAxMC0wNS0wOSAwOToyMSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogdXRpbGl0aWVzL2V4ZWN1dGUgZG8gbm90IG5lZWQgYW55dGhpbmcgZnJvbQogICB1dGlsX2Z1bmNzLCBzbyBzdG9wIGRlcGVuZGluZyBvbiBpdC4KCjIwMTAtMDUtMDkgMDk6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBORVdTOiBzbm1wZDogUmVtb3ZlZCB0aGUgdW51c2VkIGZ1bmN0aW9uIHh4X3Rva2VuaXplX2V4ZWNfY29tbWFuZAogICBmcm9tIHV0aWxpdGllcy9leGVjdXRlLgoKMjAxMC0wNS0wOSAwOTowMSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZXBsYWNlIHRoZSBkZWJ1Z2dpbmcgZnVuY3Rpb25zIHdpdGggZHVtbWllcwogICB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KCjIwMTAtMDUtMDkgMDg6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2Q6CgogICBDaGVjayB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGVuYWJsZWQKCjIwMTAtMDUtMDkgMDg6MDEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBGYWN0b3Igb3V0IGNoZWNrIGZvciBtaWJJSS9zeXN0ZW1fbWliCgoyMDEwLTA1LTA5IDA3OjU5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMKCjIwMTAtMDUtMDggMjM6MTYgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkaXRpb25hbGx5IGZpeCBtYWtlIHRlc3QgZm9yIHRoZSB1bmNvbW1vbiBjYXNlIHdoZXJlIGJ1aWxkZGlyCiAgID09IHNyY2RpcgoKMjAxMC0wNS0wOCAyMjo1NSAgbWFnZnIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgdGVzdCBzdWl0ZSBmcm9tCiAgIGFueXdoZXJlLgogICBDaGFuZ2UgdGhlIC1EIG9wdGlvbiB0byBleHBlY3QgdGhlIHBhdGggb2YgdGhlIHRvcCBzb3VyY2UKICAgZGlyZWN0b3J5LgogICBBZGQgYW4gLXNyY2RpciBvcHRpb24gdGhhdCBpcyBhbiBhbGlhcyBmb3IgLUQuCiAgIEFkZCBhbiAtYnVpbGRkaXIgb3B0aW9uIHRvIGRlc2lnbmF0ZSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0ZXN0CiAgIG9iamVjdCBpcy4KICAgUHV0IHNyY2RpciBhbmQgYnVpbGRkaXIgaW4gdGhlIGVudmlyb25tZW50IGZvciB0aGUgdGVzdCBzY3JpcHRzCiAgIEZhY3RvciBvdXQgdGhlIGdyZXAgcGFydCBvZiBTS0lQSUYgYW5kIFNLSVBJRk5PVCB0byBJU0RFRklORUQKICAgVXNlIG1vcmUgcmVhZGFibGUga2V5cyBpbiB0aGUgb3B0cyBoYXNoIGluIFJVTkZVTExURVNUUwogICBBZGp1c3QgZXZlcnl0aGluZyB0byB1c2Ugc3JjZGlyIGFuZCBidWlsZGRpcgoKMjAxMC0wNS0wOCAyMjo0MiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjA3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENvbnNvbGlkYXRlIHRoZSB0ZXN0IGFuZCB0ZXN0LW1pYnMgdGFyZ2V0cy4KICAgRXhwb3NlIHRoZSB0ZXN0YWxsIHRhcmdldCBpbiB0aGUgdG9wIG1ha2VmaWxlLgoKMjAxMC0wNS0wOCAyMjowNSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG8gbm90IGFib3J0IHdoZW4gc3RyIGlzIE5VTEwgYXMgdGhhdCBpcyBhIHBlcmZlY3RseSB2YWxpZCBpbnB1dC4KCjIwMTAtMDUtMDggMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBuZXdsaW5lCgoyMDEwLTA1LTA3IDIxOjExICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmFjCgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgZml4IGhhbmRsaW5nIG9mIGNlcnQgYWxnb3JpdGhtIGluIGZpbmdlcnByaW50czsgY29udmVydCBpbi9vdXQKICAgZmluZ2VycGludHMKICAgZnJvbS90byBoZXgKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvbnQgc3BlY2lmeSBoYXNoIHR5cGUgZm9yIGZpbmdlcnByaW50CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaGFuZGxlIGZpbmdlcnByaW50IHR5cGVzOyBkcm9wIHNhbiBmaWVsZHMgZnJvbSBjZXJ0IHN0cnVjdDsKICAgY29uc2lkZXIgZGlyZWN0b3J5CiAgIHdoZW4gcGFydG5lcmluZyBrZXlzL2NlcnRzCgoyMDEwLTA1LTA3IDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgbW92ZSBkZWZhdWx0IHByb21wdHMgZWFybGllcgoKMjAxMC0wNS0wNiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBiZXR0ZXIgU0FOIGV4dHJhY3Rpb247IHR3ZWFrIGR1Ymd1cyBtZXNzYWdlczsgcXVpZXQgY29tcGlsZXIKICAgd2FybmluZ3MKCjIwMTAtMDUtMDYgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgcmVkdWNlIGNlcnQgZGVidWcgb3V0cHV0OyBkZWJ1ZyBpbnN0ZWFkIG9mIGxvZ19pbmZvIGluIGR1bXBzCgoyMDEwLTA1LTA2IDE0OjQ5ICBkdHMxMgoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoZSBwcmVzZW5jZSBvZiA8c3RyaW5nLmg+CiAgIChicmluZyBpbnRvIGxpbmUgd2l0aCBhbGwgb3RoZXIgb2NjdXJhbmNlcykKCjIwMTAtMDUtMDYgMTQ6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBXaW5kb3dzOiBGaXggYnVpbGQgdW5kZXIgTWluR1cKICAgYmFjay9mb3J3YXJkIHBvcnQgb2YgcmV2aXNpb24gMTg2MzEKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHR5cGUgaW4gbG9nIG1zZwoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgaW1wb3J0IGZvciB1bnVzZWQgZnVuY3Rpb24KCjIwMTAtMDUtMDQgMDc6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBOZWdhdGUgcmVhc29uIGdpdmVuIGZyb20gU0tJUElGCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBsZW4gaW4gZW1haWwgY21wOyBtb3JlIGV4dHJhY3QgZGVidWdnaW5nCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNvcHkgb2NlcnQgdG8gYWRkaW9uYWwgbWFwcwoKMjAxMC0wNS0wMyAxNDoyMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGRlcGVuZGVuY3kgb24gcGVybCBtb2R1bGUgbm90IHByZXNlbnQgaW4gQ2VudE9TCgoyMDEwLTA1LTAzIDAzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGFjY2VzcyBzdHJ1Y3QgaW50ZXJuYWxzIGRpcmVjdGx5CgoyMDEwLTA1LTAzIDAzOjQ4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggY29tcGlsaW5nIHdpdGgtb3V0LW1pYm1vZHVsZXM9dXRpbGl0aWVzL2V4ZWN1dGUKCjIwMTAtMDUtMDEgMTk6MDggIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIENvcnJlY3QgdGhlIHNvdWdodCBzdHJpbmcgdG8gbWFrZSB0aGUgdGVzdCBwYXNzIHdoZW4gb2suCgoyMDEwLTA1LTAxIDE3OjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3JlIGNvbnNpc3RlbnQgdHJlYXRtZW50IG9mIGtleVVzYWdlLCBiYXNpY0NvbnN0cmFpbnRzLCBvdGhlcgogICB4NTA5djMgb3B0aW9ucwoKMjAxMC0wNC0zMCAyMzozNyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGw6CgogICBsYW1lIHRlc3Qgc2NyaXB0IGJ1dCBjb3ZlcnMgYSBjaHVuayBvZiB0aGUgY29kZQoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBta2luc3RhbGxkaXJzIGluc3RlYWQgaW5zdGVhZCBvZiBGaWxlOjpQYXRoCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGVuc3VyZSBuZXQtc25tcC1jb25maWcgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSB0aGUgYnVpbGQgZGlyCgoyMDEwLTA0LTMwIDIxOjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgZ2VuY2VydCAtLWNhCgoyMDEwLTA0LTMwIDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBoZWxwIGZvciBjZXJ0U2VjTmFtZTsgY29udGludWUgYnVpbGRpbmcgY2VydCBpbmRleGVzIGV2ZW4gaWYKICAgd2UgY2FudCBzYXZlCiAgIHRvIHBlcnNpc3RlbnQgZGlyCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBjaGVjayBjb3VudCBmb3IgODIyIG5hbWVzIGluIHRoZSBzbm1wZC5sb2cKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IG1hbGxvYyB1bm5kZXJsZW5ndGggYnkgMSBlcnJvcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjb21tZW50IG91dCB0aGUgODIyIHRlc3RzOyB0aGV5J3JlIGJyb2tlbiBhdCB0aGUgbW9tZW50CgoyMDEwLTA0LTMwIDE5OjM2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBkb24ndCBsb3NlIFNBTiB3aGVuIHNpZ25pbmcgdy8gQ0EKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIG5hbWUgY2hhbmdlIHRvIHJmYzgyMiBmcm9tIHR5cG9lZCA4MjIwCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3RzIHRvIGRvIG90aGVyIHN1YmplY3RBbHROYW1lIG1hcHBpbmcKCjIwMTAtMDQtMzAgMTc6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBpc3N1ZXMgMSwyLDQgYW5kIC1DIGhhbmRsaW5nCgoyMDEwLTA0LTI5IDAzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQ2VydFRvVFNOVGFibGUgdG8gdXNlIGNhY2hlICsgY2VydF91dGlsIG1hcHMKICAgY29udGFpbmVyCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgaW5zZXJ0IHJldHVybgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIHJlbW92ZSBmdW5jdGlvbiB0byBjb250YWluZXIgaXRlcmF0b3I7CiAgIGltcGxlbWVudCBpdCBmb3IKICAgYmluYXJ5X2FycmF5CgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBtYWtlIHN1cmUgY29udGFpbmVyIHN5bmMgaW5jcmVtZW50ZWQgb24gc29ydCwgaW5zZXJ0IGFuZCByZW1vdmUKCjIwMTAtMDQtMjggMDc6MjAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2VmaWxlIGZvciB0ZXN0IHRhcmdldAoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBtYWtlIHRoZSB0ZXN0IHN1aXRlIHJ1biBvdXRzaWRlIHRoZSBzb3VyY2UgZGlyZWN0b3J5IGFnYWluLgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgZGVhbCB3aXRoIG91dC1vZi1zb3VyY2UgdHJlZSBidWlsZGluZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0aW5nIHRvIGNoZWNrIGNlcnRpZmljYXRlIHRvIHNlY3VyaXR5bmFtZSBtYXBwaW5ncyBhbmQgZGVuaWFscwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY3JlYXRlZCBhIG1hcHBlZCB1c2VyCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBnZW5lcmF0ZSBvYmplY3QgY29kZSB3aXRoIC1nIGRlYnVnZ2luZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgbW9yZSBhY2N1cmF0ZSBjdXJyZW50IEFQSSB1c2FnZSBmb3Igc2NhcGkgY29kZQoKMjAxMC0wNC0yNyAyMToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY2VydCBpbml0IGR1cGxpY2F0ZSBjYWxsIGNoZWNrCgoyMDEwLTA0LTI3IDIwOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29udmVydCB1c2VyIGZpbmdlcnByaW50IHRvIGxvd2VyIGFuZCBzdHJpcCBjb2xvbnM7IGFkZCBleHRlcm4KICAgcHJvdG90eXBlCiAgIGZvciBjZXJ0IGluaXQgc28gd2UgZG9uJ3QgbmVlZCBoZWFkZXIKCjIwMTAtMDQtMjcgMjA6MTUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNlcGFyYXRlIGNlcnQgaW5pdCBhbmQgY2VydCBsb2FkaW5nOyBhZGQgY2VydFNlY05hbWUgY29uZmlnIHRva2VuCgoyMDEwLTA0LTI3IDAzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtZXJnZSBORVRTTk1QX0ZVTkNUSU9OIGFuZCAhTkVUU05NUF9GVU5DVElPTiBhc3NlcnQgY2FzZXMKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvdHMgb2YgbmV3IGNlcnQgZnVuY3Rpb25hbGl0eQogICAtIGFkZCBzc2wgZnVuY3MgZm9yIGNlcnQgZXh0ZW5zaW9ucyBhbmQgc3NsIGNlcnQgY2hhaW5zCiAgIC0gZnVuY3Rpb25zIGFuZCBuZXcgbmV0c21wX2NlcnRfbWFwIHN0cnVjdCBmb3IgbG9va2luZyB1cCBjZXJ0CiAgIG1hcHBpbmdzCiAgIC0gYWRkIGNlcnRpZmljYXRlIG1hcHBpbmcgZm9yIHNlY25hbWUKICAgLSBhZGQgY29kZSB0byBidWlsZCBjZXJ0IGNoYWlucwogICAtIGFkZCBzdWJqZWN0IHRvIGNlcnQgaW5kZXggY2FjaGUKICAgLSByZWJ1aWxkIGluZGV4ZXMgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXgKICAgLSByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnQgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgY2VydCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIG1vdmUgaXB2NiBzcGVjaWZpYyB2YXIgZGVjbCBpbnNpZGUgaWZkZWYKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBDSEFOR0VTOiBhZ2VudDogdGRhdGEgaGVscGVyIG5vdyBzYXZlcyBmbGFncyBwYXNzZWQgZHVyaW5nCiAgIGNyZWF0aW9uOyBhZGQgdGRhdGEKICAgZmxhZyB0byBOT1QgY3JlYXRlIHRoZSB0YWJsZSBjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBpbnRlcmZhY2UgZm9yIGR1cGxpY2F0aW5nIGEgY29udGFpbmVyCiAgIENIQU5HRVM6IHNubXBsaWI6IGNvbnRhaW5lciBjaGFuZ2VzOiBhZGQgZmxhZ3MgZmllbGQgdG8gY29udGFpbmVyCiAgIG1ldGEtZGF0YTsKICAgY2hnIGJpbmFyeV9hcnJheSBjb250YWluZXIgdG8gdXNlIGNvbnRhaW5lciBtZXRhLWRhdGEgZmxhZ3MKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBjb25maWd1cmVkIHdpdGgKICAgYSByZW1vdGUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQgdGhlIGNvbm5lY3Rpb24gaXMgZGVuaWVkCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBhZGRlZCB0ZXN0cyBmb3IgLVQgZmxhZyB1c2FnZSBhbmQgaW52YWxpZCB1c2VyIHVzYWdlCgoyMDEwLTA0LTI2IDIwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2Q6CgogICBoYXZlIHRoZSBhbGlhcyB0cmFuc3BvcnQgc291cmNlIHRoZSByaWdodCBTdjNjb25maWcgZmlsZQoKMjAxMC0wNC0yNiAyMDo1MCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgd29ya2luZyBzdXBwb3J0IG9mIFRMUy9EVExTIHRlc3RpbmcgaW5jbHVkaW5nIGNlcnQgZ2VuZXJhdGlvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhvbm9yIHRoZSBjb25maWcgZGlyIGlmIHNwZWNpZmllZCB2aWEgLUMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IHJlYWxsb2MgY2FsbCBmb3IgYnVmZmVyZWQgcGFja2V0cwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHByb3BlciBza2lwIG91dHB1dCBmb3IgcmVwb3J0aW5nIHJlYXNvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgYmFja3NsYXNoIGluIG1hY3JvCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5wcml2OgoKICAgdGVzdHMgZm9yIG1pbmltYWxseSB0ZXN0aW5nIGFsbCB0aGUgdHJhbnNwb3J0cwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBtaW5pbWFsbHkgZG9jdW1lbnQgbmV3IFJVTkZVTExURVNUUyBzY3JpcHQKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcywgICAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9taXNjdGVzdC5jLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZGVsZXRlZCBvbGQgZmlsZXMgbm90IHdvcnRoIHJlc3RvcmluZwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgcmVtb3ZlIG9ic29sdXRlIHRlc3QgbGlzdAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jOgoKICAgYSBoYXNoLXRlc3RpbmcgLmMgZmlsZSBJIGhhZCBsYXlpbmcgYXJvdW5kCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSB0ZXN0YWxsIHRhcmdldAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgbW92ZSBvbGQgQy1jb2RlIHRlc3RzIGluIHBsYWNlCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2Q6CgogICBza2lwIHNvbGFyaXMgY29tbWVudHMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggaW52b2NhdGlvbiBvZiBSVU5GVUxMVEVTVFMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjJjY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdhZ2VudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ3RyYXBkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXgsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBORVdTOiB0ZXN0aW5nOiBCcmFuZCBuZXcgdGVzdCBzdWl0ZSBkZXNpZ2VuZWQgdG8gZXZlbnR1YWxseSB0ZXN0CiAgIG1vcmUgZnVuY3Rpb25hbGl0eSwgcHJvdmlkZSBmb3Igc3VwcG9ydCBvZiB1bml0LXRlc3RzIGFuZCBzdXBwb3J0CiAgIG9mIEFQSSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHJlbW92ZWQgYSBkZWJ1Z2dpbmcgZWNobwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1vcmUgYnVnIGZpeGVzIGZvciBzdHJpbmcgc2VhcmNoZXMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBhZGRlZCBhIG5ldyBtYWNybyB0byBjaGVjayBhIHRyYXBkIGNvdW50CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGluZGl2aWR1YWwgb3V0cHV0IGZpbGVzIGFuZCBmaXggc29tZSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbWFkZSBleGlzdGluZyB0ZXN0IHN1aXRlIHB1dCBvdXQgVEFQIG91dHB1dAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9mdWxsdGVzdHMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBiZWdpbm5pbmcgb2YgbW92aW5nIFVDRCB0ZXN0IHN1aXRlIGludG8gYSBsYXJnZXIgc3ViZGlyZWN0b3J5CgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFsbG93IHJ1bm5pbmcgdGVzdHMgdGhhdCBtYXRjaCBhIHJlZ2V4cAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdW1tYXJpemUgdGVzdHMgdGhhdCBmYWlsZWQKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIHJ1bl8gc2NyaXB0cyBmb3IgZXhlY3V0aW5nIGNlcnRhaW4KICAgdHlwZXMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFkZSB0aGUgYnVpbGQtc2NyaXB0LWNoZWNrIHJvdXRpbmUgZ2VuZXJpYwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IGZvciBidWlsZCBzY3JpcHRzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHByb3ZpZGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIGJ1aWxkaW5nIGFuZCByZW5hbWluZyB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtb3JlIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2V0dXAKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCB0aGUga2V5d29yZCAnYWxsJwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgZ3JvdXAgZ2F0aGVyaW5nCgoyMDEwLTA0LTI2IDIwOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0aW5vIG9mIGEgbmV3IHRlc3RpbmcgaGFybmVzcwoKMjAxMC0wNC0yNSAxNzozNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDEwLTA0LTI1IDE1OjIxICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IHJldmVydGVkIGEgcmVjZW50IHVubmVjZXNzYXJ5IG1vZGlmaWNhdGlvbi4KCjIwMTAtMDQtMjUgMTU6MDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBtdWx0aXBsZSAtLXNhbiBhcmdzLCBjaGVjayBlcnJvciBjb2RlcyBvbiBvcGVuc3NsIGNtZHMgYW5kCiAgIGRpZSBvbiBmYWlsdXJlCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogcmVzdG9yZWQgY29uc2lzdGVuY3kgYmV0d2VlbiB3b3Jrc3BhY2UtYnVpbGQgYW5kIGJhdGNoCiAgIGJ1aWxkIC0tIG1hZGUgc3VyZSB0aGF0IG5vdGlmaWNhdGlvbl9sb2cuYyBpcyBvbmx5IGluY2x1ZGVkIGluCiAgIHRoZSBuZXRzbm1wbWlicyBwcm9qZWN0LgoKMjAxMC0wNC0yNSAxMzo1OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGZpeGVzIGZvciByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1aWxkIGJyZWFrYWdlLgoKMjAxMC0wNC0yNSAxMzo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL2Nsb3NlZGlyLmMsIHNubXBsaWIvb3BlbmRpci5jLCAgCiAgICAgICBzbm1wbGliL3JlYWRkaXIuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgV2luMzIgTVNWQyA2IG5vbi1TREsgYnVpbGQgd29ya3MgYWdhaW4uCgoyMDEwLTA0LTI1IDEzOjQyICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIHRyYW5zZm9ybWF0aW9uIHJ1bGUuCgoyMDEwLTA0LTI1IDEyOjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1hZGUgaXQgYWdhaW4gcG9zc2libGUgdG8gZGlzYWJsZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESyB3aGVuCiAgIGJ1aWxkaW5nIHZpYSB3aW4zMi9idWlsZC5iYXQuCgoyMDEwLTA0LTIzIDEzOjE0ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCAtLXNhbiBETlM6YS5iLmMgaGFuZGxpbmcsIGhlbHAgdGV4dCBmaXhlcywgb3RoZXIgYnVnIGZpeGVzLgogICBOb3RlIG11bHRpcGxlIC0tc2FuIG5vdCBzdXBwb3J0ZWQgeWV0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIHRoZSAubWFkZSB2ZXJzaW9uIG9mIG5ldC1zbm1wLWNlcnQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZCBhZnRlciBtb3ZpbmcgYWxsIHRoZSBmaWxlcyBhcm91bmQKCjIwMTAtMDQtMjEgMjA6MTYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYnVpbGQgdHJ1c3QgY2hhaW4gZm9yIGNsaWVudCBjZXJ0OyBhZGQgc3ViamVjdCB0byBpbmRleCBjYWNoZTsKICAgcmVidWlsZCBpbmRleGVzCiAgIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4OyByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnRUb1RTTl9lbnRyeSB0byBjZXJ0X3V0aWwgaGVhZGVyCiAgIC0gbW92ZSBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCiAgIC0gYWRkIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2R1bXBfZXh0ZW5zaW9ucywKICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfaXNzdWVkX2J5CgoyMDEwLTA0LTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSBzaW5nbGUtZGFzaCAvIHNubXAuY29uZiAvIGRvdWJsZS1kYXNoIHByZWNpZGVuY2UKCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdGhhdCB0aGUgdG9rZW5zIGNhbiBiZSB1c2VkIGZvcgogICBjb21tYW5kIGxpbmUgYXBwbGljYXRpb25zIHRvbwoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmaWxlIGxvYWRpbmcgb3JkZXIgYW5kIGhvdyB0byB0dXJuIG9mZiBob3N0LXNwZWNpZmljCiAgIGNvbmZpZwoKMjAxMC0wNC0yMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IEdlbmVyaWMgaG9zdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIHNubXAuY29uZiBmaWxlcwogICBhcmUgbm93IHJlYWQuIFNlZSB0aGUgSE9TVC1TUEVDSUZJQyBGSUxFUyBzZWN0aW9uIG9mIHRoZQogICBzbm1wLmNvbmYgbWFudWFsIHBhZ2UuCgoyMDEwLTA0LTIwIDEyOjQ0ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjk3MTI3MDogcmVmdXNlIHRvIHBhcnNlIEFTTi4xIHRva2VucwogICB3aXRoIHdyb25nIHR5cGUgZmllbGQuCiAgIFRoaXMgbWF5IHlpZWxkIHRvIHByb2JsZW1zIHdpdGggdGhpcmQtcGFydHkgYXBwbGljYXRpb25zIHdoaWNoCiAgIG1heSBkZXBlbmQgb24gcGFyc2luZyB1Z2x5IEFTTi4xIGRhdGEgLSB3ZSdsbCBzZWUuLi4KCjIwMTAtMDQtMjAgMDA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tYmluZSByZW1vdGUgZmluZ2VycHJpbnQgY2hlY2tpbmcgYW5kIGNoZWNrIGJvdGggc2lkZXMKCjIwMTAtMDQtMjAgMDA6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaWYgdGhlIHJlbW90ZSBmaW5nZXJwcmludCBpcyBzcGVjaWZpZWQsIHJlcXVpcmUgYW4gZXhhY3QgbWF0Y2gKCjIwMTAtMDQtMTkgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gb3V0cHV0IG1lc3NhZ2VzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGluZyBvZiBuZWVkZWQgUkZDIHN0ZXBzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY29udmVydCBpZiBlcnJvciBjaGVjayB0byByZXR1cm4gaW1tZWRpYXRlbHkgc28gb3RoZXIgY29kZSBjYW4gYmUKICAgb3V0ZGVudGVkCgoyMDEwLTA0LTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBSRkMgdGV4dAoKMjAxMC0wNC0xOCAxNToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvdHJhbnNwb3J0cywgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjcmVhdGVkIGEgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgc2VjdXJpdHlOYW1lIGZyb20gdGhlIGNlcnQKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBuZWVkIHRvIHNldCB0aGUgYWNjZXB0IHN0YXRlIGZvciBUTFMgKGp1c3QgRFRMUykKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIFRMUyBjb21tZW50IGRvY3VtZW50YXRpb24gYW5kIHN0ZXBzIHRha2VuIGZyb20gdGhlIFJGQwoKMjAxMC0wNC0xNiAxMzo1NSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbnVtZXJvdXMgZml4ZXMsIG1vcmUgdmVyYm9zZSBkZWZhdWx0IG91dHB1dCwgYWRkaXRpdmUgc2hvdyBmbGFncywKICAgYXJiaXRyYXJ5IGNvbmZpZyBwYXJhbSBoYW5kbGluZywgYmV0dGVyIGhlbHAgdGV4dAoKMjAxMC0wNC0xNiAxMzowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBkb24ndCBkb3VibGUgZGVjbGFyZSBhIHN0cnVjdAoKMjAxMC0wNC0xNiAwMzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0IHV0aWwgZml4ZXMKICAgLSByZW1vdmUgdW51c2VkIHZhcnMgYW5kIGR1cGxpY2F0ZSBjb2RlCiAgIC0gY2hlY2sgcHJ0IGJlZm9yZSBmcmVlCiAgIC0gbmV3IGZ1bmMgZm9yIHR5cGUgZnJvbSBmaWxlbmFtZQogICAtIG5ldyBmdW5jdGlvbnMgZm9yIGZpbmRpbmcgc3Vic2V0cyBmcm9tIGZpbGVuYW1lCiAgIC0gZml4IHR5cGVzIGluIGtleSBzZWFyY2ggZnVuY3Rpb24gYnV0IHRoZW4gaWZkZWYgaWYgKHVudXNlZAogICBmdW5jdGlvbikKCjIwMTAtMDQtMTUgMjI6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdXNlIGEgc3RydWN0dXJlIHJlZmVyZW5jZSB0byBwcmVkZWNsYXJlIHRoZSBzdHJ1Y3R1cmUKCjIwMTAtMDQtMTUgMjE6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgY29ycmVjdCBkZWNsYXJhdGlvbiBvZiB0aGUgZl9vcGVuIGNvbW1hbmQgbm93IHJlcXVpcmluZyByZXR1cm5pbmcKICAgYSB0cmFuc3BvcnQKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW5uZWVkZWQgY29uZmlnIGNvbnRhaW5lcgoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGZpbmdlcnByaW50IHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbnRvIG5ldyB0bHMgc3RydWN0dXJlCiAgIHdpdGhpbiBEVExTVURQIHNvIHBlci10cmFuc3BvcnQgZmluZ2VycHJpbnRzIGNhbiBiZSBzcGVjaWZpZWQKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVybHkgY2hlY2sgZm9yIHRsc2Jhc2UgcG9pbnRlcnMgaW4gZHRsc3VkcF9zZW5kKCkKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZ3JlcCB0aGUgdHJhbnNwb3J0IGxpc3QgZm9yIFRMUyBub3QganVzdCBEVExTIGZvciBjaGVja2luZyBmb3IKICAgLWxzc2wKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBidWcgZml4ZXMgYW5kIG1hZGUgVExTVENQIHdvcmsgd2l0aCB0aGUgLVQgZmxhZwoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWFrZSB0aGUgZl9vcGVuIGNhbGwgYXNzaWduIHRoZSBuZXcgdHJhbnNwb3J0IHBvaW50ZXIgdG8gdXNlIChhbmQKICAgY2hlY2sgaWYgTlVMTCBhcyBhIGZhaWx1cmUgY29uZGl0aW9uCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW4gd29yayBtb3ZpbmcgRFRMUyBjb25maWcgcm91dGluZSBpbiBwbGFjZQoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHBhc3MgdGhlIGVudGlyZSB0bHNiYXNlIHRvIHRoZSBjbGllbnRfc2V0dXAKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3RhcnRpbmcgdGhlIHN0b3Jpbmcgb2YgY29uZmlnIGRhdGEgaW50byB0aGUgdGxzYmFzZQoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgY2xpZW50IHNzbCBzZXR1cCB0byBhbGxvdyBmb3IgZGlyZWN0IGZpbmdlcnByaW50CiAgIHNwZWNpZmljYXRpb24gb2YgbXkvdGhlaXIgY2VydHMKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzcGxpdCBUTFMgaW50byBjcmVhdGlvbi9jbG9zZSBmdW5jdGlvbnMgZm9yIGV2ZW50dWFsIGNvbmZpZwogICBwYXNzaW5nIHN1cHBvcnQKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXNzIHRyYW5zcG9ydCBjb25maWcgZGF0YSB0byB0aGUgdHJhbnNwb3J0IGZfY29uZmlnKCkgZnVuY3Rpb24KCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldHVybiBOVUxMIG9uIHRyYW5zcG9ydCBjb25maWcgZXJyb3IKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogLVQgY29tbWFuZCBsaW5lIGZsYWcgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCiAgIHRyYW5zcG9ydHMKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNoZWNrIHRyYW5zcG9ydCBOVUxMbmVzcyBiZWZvcmUgdXNpbmcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYmVnaW5uaW5nIG9mIHdvcmsgdG8gbWFrZSB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSB3aXRoCiAgIHN1cHBsaW1lbnRhbCBjb25maWd1cmF0aW9uIGRhdGEgYW5kIG5ldyBjYWxscyBmb3IgZl9vcGVuL2ZfY29uZmlnCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgdGV4dCBpbiBjb21tZW50cyBmcm9tIGZ1dHVyZSBSRkMgdG8gZG9jdW1lbnQgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTA0LTE1IDE4OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1hcmsgcGVtIHcva2V5IGFzIGlkZW50aXR5OyB0d2VhayBwYXJ0bmVyIGRlYnVnOyBjb21wYXJlIGZpbGUKICAgY3RpbWUgYWdhaW5zdCBpbmRleCB0b28KCjIwMTAtMDQtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGxvY2FsIHNwYWNlIHRvIHJlZm9ybWF0IGNlcnQgZm9yIHNlYXJjaAoKMjAxMC0wNC0xNSAxNjo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTg0OTY6CiAgIC0gQ29tbWVudGVkIG91dCAjZGVmaW5lIE5FVFNOTVBfVVNFX0RMTCBhZ2FpbiBpbiBmaWxlCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIG9uIHRoZSA1LjQgYnJhbmNoLiBUaGlzIGNoYW5nZQogICBoYWQgYmVlbiBjb21taXR0ZWQgdW5pbnRlbnRpb25hbGx5LgogICAtIFJlLWVuYWJsZWQgI2RlZmluZQogICBVU0lOR19OT1RJRklDQVRJT05fTE9HX01JQl9OT1RJRklDQVRJT05fTE9HX01PRFVMRSBpbgogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oIG9uIHRoZSB0cnVuayBhbmQgdGhlCiAgIFY1LjUgYnJhbmNoLiBXaGlsZSBidWlsZC5iYXQgcmVwb3J0cyBhbiBlcnJvciBvbiBlYXJsaWVyIGJyYW5jaGVzCiAgIHdpdGggdGhpcyBzeW1ib2wgZW5hYmxlZCwgdGhlcmUgaXMgbm8gc3VjaCBwcm9ibGVtIG9uIHRoZSB0cnVuawogICBvciBWNS41IGJyYW5jaGVzIGFuZCBoZW5jZSB0aGVyZSB3YXMgbm8gcmVhc29uIHRvIGRpc2FibGUgdGhpcwogICBwcmVwcm9jZXNzb3Igc3ltYm9sLgoKMjAxMC0wNC0xNSAxNTowOCAgbWFyegoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXQtc25tcC1jZXJ0IHRvIG1ha2UvaW5zdGFsbAoKMjAxMC0wNC0xNSAxMDo1MiAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldDoKCiAgIFRlc3RzIG5vdCB3b3JraW5nIGZvciBUQ1Agc2hvdWxkIGJlIHNraXBwZWQgYWxzbyBmb3IgVENQNi4KCjIwMTAtMDQtMTQgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IHZhcnMvdGV4dCBmcm9tIGN1dC1uLXBhc3RlCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBjb21tZW50cwoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBsb3RzIG9mIGNlcnQgdXBkYXRlcwogICAtIGNoYW5nZSBjZXJ0IHN1YmRpciBzZWFyY2hpbmcgdG8gbWF0Y2ggbmV0LXNubXAtY2VydAogICAtIHVwZGF0ZSBrZXkgdHlwZSBoYW5kbGluZwogICAtIGlnbm9yZSB3b3JsZCByZWFkYWJsZSBrZXlzCiAgIC0ga2VlcCB0eXBlIGluIGluZGV4ZXMKICAgLSB0d2VhayBjZXJ0L2tleSBwcmludCBmb3JtYXQKCjIwMTAtMDQtMTQgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFrZSBuZXQtc25tcC1jZXJ0IGV4ZWN1dGFibGUKCjIwMTAtMDQtMTQgMTM6MTIgIGpzYWZyYW5lawoKICAgKiAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBGaXhlZCB0ZXN0cyAnUHJveHkgR0VUL1NFVCBzdXBwb3J0JyBhbmQgJ1NOTVB2MiB2YWNtIGRlbmlhbAogICBzdXBwb3J0JyB3aXRoIHVkcDYgdHJhbnNwb3J0LgoKMjAxMC0wNC0xNCAwOTo0NyAgZHRzMTIKCiAgICogIHdpbjMyLCB3aW4zMi9iaW4sIHdpbjMyL2Rpc3QsIHdpbjMyL2Rpc3QvaHRtbGhlbHAsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLCB3aW4zMi9kaXN0L3NjcmlwdHMsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIAogICAgICAgIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsIHdpbjMyL2xpYmhlbHBlcnMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgd2luMzIvbGlic25tcCwgd2luMzIvbGlic25tcF9kbGwsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMsIHdpbjMyL2xvY2FsLCB3aW4zMi9uZXQtc25tcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQsIHdpbjMyL25ldC1zbm1wL2xpYnJhcnksIHdpbjMyL25ldHNubXBtaWJzLCAgCiAgICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgRG9uJ3QgdHJ5IHRvIFNWTi1tYW5hZ2UgdGhlIFdpbmRvd3MgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUKICAgKGFkZCByZWxlYXNlLCBkZWJ1ZywgTWFrZWZpbGUgdG8gdGhlIHByZXZpb3VzIGlnbm9yZSBsaXN0KQoKMjAxMC0wNC0xNCAwODoxNiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggV2luZG93cyBiYXRjaCBidWlsZCB1c2luZyBWaXN1YWwgU3R1ZGlvIHdpdGggZHluYW1pYyBsaW5raW5nLgogICBVbnJlZmVyZW5jZWQgc3ltYm9sIGludHJvZHVjZWQgYnkgU1ZOIHJldmlzaW9uIDE4MzkzCgoyMDEwLTA0LTE0IDA4OjA4ICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IEZpeCBiYXRjaCBidWlsZCB1c2luZyByZWNlbnQgdmVyc2lvbnMgb2YgVmlzdWFsCiAgIFN0dWRpby4KICAgUGFydGlhbCBiYWNrIHBvcnQgb2YgU1ZOIHJldmlzaW9ucyAxNzU3MyBhbmQgMTc2OTYuCgoyMDEwLTA0LTE0IDAxOjQ3ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggcGVybXMgb24gY3JlYXRlZCBmaWxlcyAtcnctLS0tLS0tLCB1bWFzaygwNzcpCgoyMDEwLTA0LTEzIDIyOjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGZpeCBwZXJtcywgYWRkIC0tY24vLWMsIGJldHRlciBkYXRlcyBkZWZhdWx0cywgc25tcC10bHMgb3JnX3VuaXQsCiAgIGFkZGVkIGluaXRpYWwgZHVtbXkgY29uZmlnIGZpbGUKCjIwMTAtMDQtMTMgMTQ6MjEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeGVzIGZvciBzaG93IGNtZHMsIGNtZGxpbmUsIGhlbHAKCjIwMTAtMDQtMTMgMDI6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGtleStjZXJ0IGluIC5wZW0gZmlsZXM7IG1pc2MgdHdlYWtzCgoyMDEwLTA0LTEwIDIzOjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiBvbiBIUC1VWCAxMC4yMCkKCjIwMTAtMDQtMTAgMjI6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGluaXRpYWwgY3V0IGF0IHRsc3RtQ2VydFRvVFNOVGFibGUKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBhZGQgZGVmaW5lIG9mIG1heCBoYXNoIGNvbnN0YW50CgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1c2UgY2VydCB1dGlsIGNoZWNrIGZvciBmaW5nZXJwcmludCBsZW4vYWxnb3JpdGhtCgoyMDEwLTA0LTEwIDEyOjU5ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBzaG93IGNtZCBmaXhlcwoKMjAxMC0wNC0wOSAyMTozMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZmFpcmx5IGZ1bmN0aW9uYWwgKG5vbi1pbnRlcmFjdGl2ZSkgLSBiZSBpdCBrbm93bjogdGhlcmUgYXJlIGJ1Z3MKCjIwMTAtMDQtMDkgMjA6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaDoKCiAgIG1lcmdlIHNvbWUgdGFibGVfZGF0YS5jb25mIGNoYW5nZXM7IHJlbW92ZSB1bnVzZWQgY29kZSBhbmQgYQogICBidW5jaCBvZiB2ZXJib3NlIGNvbW1lbnRzCgoyMDEwLTA0LTA4IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdXNlIGZ1bGwgcGF0aAoKMjAxMC0wNC0wOCAxMDo1NSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ2hlY2sgcmVzdWx0cyBvZiBjYWxscyB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUgYW5kIGxvZwogICBhbiBlcnJvci4KICAgVGhpcyBhbGxvd3MgdXNlcnMgdG8gcmVsYXRlIHZhcmlvdXMgJ2M2NCAzMiBiaXQgY2hlY2sgZmFpbGVkJwogICBlcnJvcnMgd2l0aCBzcGVjaWZpYyBjb3VudGVyLgoKMjAxMC0wNC0wOCAwMTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldyBmdW5jdGlvbgoKMjAxMC0wNC0wOCAwMTowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiB0cmFuc2xhdGUgTk9TVUNIKi9FTkRPRk1JQiBlcnJvcnMgZHVyaW5nIFJFU0VSVkUxCiAgIHRvIE5PQ1JFQVRJT04KCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBORVdTOiBzbm1wZDogdGFibGVfZGF0YS90ZGF0YSBuZXh0IGhhbmRsZXIgd2lsbCBub3QgYmUgY2FsbGVkCiAgIGR1cmluZyBnZXQKICAgcHJvY2Vzc2luZyBpZiBubyB2YWxpZCByb3dzIGFyZSBmb3VuZCBmb3IgdGhlIGhhbmRsZXIKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogYWdlbnQgd2lsbCBubyBsb25nZXIgY2FsbCB0YWJsZSBoYW5kbGVycyBpZiBhIHNldAogICByZXF1ZXN0IGZvcgogICB0aGUgaGFuZGxlciBoYXMgaW52YWxpZCBpbmRleGVzCiAgIENIQU5HRVM6IHNubXBkOiBkb24ndCBjYWxsIGNsZWFudXAgb24gZmlyc3QgcmVxdWVzdCBvbiBiYWQKICAgaW5kZXhlcy4gaW5zdGVhZCwKICAgc2V0IGFjdHVhbCBlcnJvciBsYXRlciwgYW5kIGZyZWUgcmVxdWVzdCBkYXRhIHNldHMgb24gZmlyc3QKICAgcmVxdWVzdCBmb3Igc2V0cwoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBmaW5nZXJwcmludCB2YXJiaW5kCgoyMDEwLTA0LTA3IDIyOjU2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNvbGFyaXMgdHIgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlciByYW5nZXMgcmVsaWFibHkgKHNlZSB0aGUKICAgYXV0b2NvbmYgbWFudWFsKSwgY2hhbmdlIHRoZSBleHByZXNzaW9uIHRvIG9uZSB0aGF0IGlzIHNpbXBsZQogICBlbm91Z2ggdG8gYiBzdXBwb3J0ZWQuCgoyMDEwLTA0LTA3IDE0OjA1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbnNlcnQgdGhlIGNhY2hlIGhlbHBlciBjb3JyZWN0bHkuCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb25zIHRvIHJlbW92ZSBsaXN0L3JvdyBkYXRhIGZyb20KICAgcmVxdWVzdCBsaXN0CgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWZkZWYgdmFyIGRlY2wgZm9yIHZhcnMgb25seSB1c2VkIGluIGxhdGVyIGlmZGVmIGJsb2NrCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBSb3dTdGF0dXMgYW5kCiAgIFN0b3JhZ2VUeXBlIHZhcmJpbmRzCiAgIC0gYWxzbyByZW1vdmUgc29tZSBkdXBsaWNhdGUgY29kZSBhbmQgZml4IGNvbW1lbnRzIGluZGVudCBtYW5nbGVkCgoyMDEwLTA0LTA3IDEwOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlLCBtYW4vbWliMmMtdXBkYXRlLjEuZGVmOgoKICAgdXBkYXRlIG1hbiBwYWdlOyBmaXggc2hlbGwgcmVkaXJlY3Q7IGNyZWF0ZSBleGFtcGxlIHJjZmlsZSBpZgogICBtaXNzaW5nCgoyMDEwLTA0LTA3IDA3OjE1ICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFVzZSBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcgaW5zdGVhZCBvZiBESVNBQkxFX01JQl9MT0FESU5HCgoyMDEwLTA0LTA3IDAwOjM4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE9ubHkgZW5hYmxlIGhvc3RTd0luc3QgcnBtIHN1cHBvcnQgb24gbGludXggaG9zdHMKICAgd2l0aCBsaWJycG0uIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gbm9uLXJwbSBsaW51eAogICBkaXN0cmlidXRpb25zLgoKMjAxMC0wNC0wNyAwMDoxNCAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZSB0aGUgdGVzdCBzdWl0ZSB0byB3b3JrIGV2ZW4gaWYgbWliCiAgIGxvb2t1cCBpcyBkaXNhYmxlZC4KCjIwMTAtMDQtMDcgMDA6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2OgoKICAgQ2hlY2sgZm9yIGNvbTJzZWM2LCBub3QgY29tMnNlYy4KCjIwMTAtMDQtMDYgMjI6NTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgTW92ZSBkaXJlY3RvcnkgY3JlYXRpb24gYmVmb3JlIHRoZSBkaXJlY3RvcmllcyBhcmUgdXNlZC4KCjIwMTAtMDQtMDYgMTE6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIFB5dGhvbiBpcyBhcHBhcmVudGx5IGNsaWVudC1zaWRlIG9ubHkuCgoyMDEwLTA0LTA2IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIGJlZm9yZSBjaGFuZ2luZyBVSUQKICAgKHdoaWNoIHByb2JhYmx5IGludm9sdmVzIGdpdmluZyB1cCBwcml2aWxlZ2VzKQoKMjAxMC0wNC0wNiAwODo1NyAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgRG9jdW1lbnQgbGFyZ2UtZGlzayBzdGF0aXN0aWNzIGFzIGxhdGNoaW5nIGF0IDJUYiAocmF0aGVyIHRoYW4KICAgd3JhcHBpbmcpLgoKMjAxMC0wNC0wNiAwMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLCBtYW4vbWliMmMuMS5kZWY6CgogICBORVdTOiBtaWIyYzogbWliMmMgY2FuIG5vdyBvcHRpb25hbGx5IHJ1biBzZWQgb24gZ2VuZXJhdGVkIGNvZGUKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbnZlcnQgQysrIGNvbW1lbnRzIHRvIEMgY29tbWVudHMKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgcHRyIGNoZWNrIGJlZm9yZSBwcnQgdXNlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBvbiBuZXcgY2VydHM7IG1ha2Ugc3RhdGljIGZ1bmMgdG8gcmV0dXJuCiAgIG1vZGUgbmFtZXMKCjIwMTAtMDQtMDYgMDA6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWxsb3cgYSBmb3VuZCBmaW5nZXJwcmludCBzZWxmLXNpZ25lZCBjZXJ0IGZvciBub3c7IGV2ZW50dWFsbHkKICAgbmVlZCB0byByZXNwZWN0IHRoZSBNSUIgY29uZmlnIHRhYmxlCgoyMDEwLTA0LTA2IDAwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1rZGlyIHNubXBsaWIvdHJhbnNwb3J0cyB3aGVuIERORSBmb3IgYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlCiAgIGRpcgoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGVycm9yIGNvZGUgY2xlYW51cCBmb3IgdGxzYmFzZV93cmFwdXBfcmVjdgoKMjAxMC0wNC0wNSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vcmUgYmV0dGVyIGVycm9yL2RlYnVnIGNvZGVzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgZnV0dXJlLVJGQyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb247IHVzZQogICBmbGFncyBmb3Igc2VydmVyL2NsaWVudCBzcGVjaWZpY2F0aW9uIGZvciBleHBhbnNpb24KCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIHVzYWdlIGNvbnN0cmFpbnRzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBmdW5jdGlvbiBwcm90ZWN0aW9uIGxvZ2ljIGluIGEgdG9wLWxldmVsIGNoZWNrCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBpbml0IG9yZGVyaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbXYgdGxzYmFzZSBpbml0IGZ1bmN0aW9uIHRvIGEgcHJvcGVyIGN0b3IgZm9yIGF1dG8tY2FsbGluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBnZW5lcmF0ZSB0aGUgdHJhbnNwb3J0IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGxpc3QKICAgZHluYW1pY2FsbHkgYW5kIHVzZSBpdAoKMjAxMC0wNC0wMiAxNjozNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IG1vdmVkIHRyYW5zcG9ydCBjb2RlIGludG8gYSBzZXBhcmF0ZSBzdWJkaXJlY3RvcnkgaW4KICAgc25tcGxpYgoKMjAxMC0wNC0wMiAwOTowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBEbyBub3QgYXR0ZW1wdCB0byBjaGVjayBzaXplb2Ygdm9pZCB0byBvYnRhaW4gdGhlIGFtb3VudCBvZgogICBtZW1vcnkgdG8gY29weS4KCjIwMTAtMDQtMDEgMTc6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluc3RlYWQgb2YgZndkIGRlY2xhcmVzLCByZXF1aXJlIG90aGVyIGhlYWRlcgoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb3V0ZGF0ZWQgZGVidWcgbXNnCgoyMDEwLTA0LTAxIDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNlcnRhcGkgdG8gZmluZCBjZXJ0cy9rZXlzCgoyMDEwLTA0LTAxIDE0OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVnaXN0ZXIgZXh0cmFYNTA5U3ViRGlyIHRva2VuCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxMzoxMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGFkZCBwZXJzaXN0ZW50IHN0b3JhZ2U7IHRva2VuIGZvciBjcmVhdGluZyBlbnRyaWVzIGluIHNubXBkLmNvbmY7CiAgIGZpeCBpbmRleAoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBjZXJ0aWZpY2F0ZSBhcGkgdG8gc3VwcG9ydCB0bHMvZHRscwoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IGFkZCBmdW5jdGlvbnMgdG8gZ2V0IGZpbmdlcnByaW50IGZyb20gY2VydCBhbmQgbG9nCiAgIG9wZW5zc2wgZXJycwoKMjAxMC0wNC0wMSAxMjo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggdHlwbwoKMjAxMC0wNC0wMSAxMDozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTA0LTAxIDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IHRhYmxlX2RhdGEgdGVtcGxhdGUgZW5oYW5jZW1lbnRzCiAgIC0gYWRkIGVycm9yIGNoZWNrcyBkdXJpbmcgdGFibGUgaW5pdAogICAtIGNyZWF0ZSBjYWNoZSBlYXJsaWVyIHNvIHdlIGNhbiBiYWlsIG9uIGZhaWx1cmUKICAgLSBhZGQgb3B0aW9uIHRvIGNyZWF0ZS9kZWxldGUgcm93IHcvb3V0IGFkZGluZy9yZW1vdmluZyBmcm9tCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIGFkZCBoZWxwZnVsIHBhcmFtIG5hbWVzIGFzIGhpbnRzIGluIHByb3RvdHlwZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHNlYXJjaCBmb3IgY29udGFpbmVyIHNwZWNpZmljIGNvbnRhaW5lciBiZWZvcmUgZ2VuZXJpYwoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgTkVXUzogc25tcGxpYjogZW5oYW5jZSBmaWxlIHV0aWxzIGFuZCBkaXIgdXRpbHMKICAgLSBhZGQgb3B0aW9uYWwgc3RhdHMgc3RydWN0IHRvIG5ldHNubXBfZmlsZQogICAtIGdlbmVyYWxpemUgZGlyIGNvbnRhaW5lciBmaWx0ZXIsIGFkZCBjb250ZXh0IHRvIGNhbGxiYWNrCiAgIC0gYWRkIG9wdGlvbiB0byBzdG9yZSBuZXRzbm1wX2ZpbGVzICh3L3N0YXRzKSBpbiBjb250YWluZXIKICAgaW5zdGVhZCBvZiBqdXN0IG5hbWUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBwcm90b3R5cGUgdG8gaGVhZGVyOyBjaGVjayBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCjIwMTAtMDMtMzEgMTU6MzQgIGpzYWZyYW5lawoKICAgKiAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtYnJpZGdlLW1pYiwgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1pYnMvQlJJREdFLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDI5NTI3MDg6IGZyb20gSmVucyBPc3RlcmthbXA6IEFkZGVkIFBlcmwKICAgaW1wbGVtZW50YXRpb24gb2YgQlJJREdFLU1JQgoKMjAxMC0wMy0zMSAwMjoxMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXIgcGFja2V0IGxhYmVsaW5nIGZvciBEVExTVURQCgoyMDEwLTAzLTMxIDAyOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjb21tb24gY29udGV4dCBjcmVhdGlvbiBjb2RlCgoyMDEwLTAzLTMwIDIzOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBUTFMgbWV0aG9kIHRvIFRMU3YxIGZyb20gU1NMdjIzCgoyMDEwLTAzLTMwIDIzOjIzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgbW9yZSBjb21tb24gZGF0YSBhbmQgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZSBUTFMgYmFzZQoKMjAxMC0wMy0zMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtaW5vciBUTFMgY29kZSBjbGVhbnVwCgoyMDEwLTAzLTMwIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZXdvcmsgaWYoKSB3cmFwcGluZyBmb3IgbGVzcyBjb25mdXNpb24gaW4gZXJyb3IgaGFuZGxpbmcKCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvZGUgY29uc29saWRhdGlvbiBpbiBzdGFydF9uZXdfY2FjaGVkX2Nvbm5lY3RpbwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1lIGdlbmVyaWMgJ2JpbycgcG9pbnRlciB0byAncmVhZF9iaW8nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCjIwMTAtMDMtMzAgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgYnVmZmVyZWQgZGF0YSBjcmVhdGlvbiB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZQoKMjAxMC0wMy0zMCAxNzo1MiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IGdlbiB3cmFwcGVyIHNjcmlwdCAtIG5vdCB3b3JraW5nCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGVhbiB1cCBlcnJvciBvdXRwdXQgc28gaXQgZG9lc24ndCByZXBvcnQgd2FudF9yZWFkIGFuZAogICB3YW50X3dyaXRlIGVycm9ycwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1pbmcgb2Ygc2VuZGluZyBmdW5jdGlvbiBmb3IgY2xhcml0eSBhbmQgY2hlY2sgb25lIG1vcmUKICAgbG9jYXRpb24gZm9yIG5lZWRlZCBvdXRnb2luZyBwYWNrZXRzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBkdGxzdWRwIHRyYWNpbmcgdG9rZW5zCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ0hBTkdFUzogYWRkZWQgYSBuZXcgREVCVUdUUkFDRVRPSygpIG1hY3JvCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZXR0ZXIgY29tbWVudHMgYW5kIG1vcmUgd29yayBvbiBzZW5kaW5nIGJ1ZmZlcmVkIGRhdGEgaW4gdGhlCiAgIHJpZ2h0IHNwb3RzCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcmd1bWVudHMgdG8gZ2V0X2NvbW1vbk5hbWUKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2lubmluZyBvZiBjYWNoaW5nIG9mIHBhY2tldHMgYmVmb3JlIHRoZXkgY2FuIGJlIHNlbnQgdmlhIERUTFMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGhhbmRsZSBTU0xfV0FOVF9SRUFEL1dSSVRFIGJldHRlcjsgc3RpbGwgbmVlZCB0byBidWZmZXIgb3V0Z29pbmcKICAgd3JpdGUgZGF0YQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbWlub3IgY2hhbmdlIHRvIG91dHB1dCBlcnJvciBwcmludGluZwoKMjAxMC0wMy0yOSAxNToyMCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG1hdGNoaW5nIFZBQ00gZW50cmllcy4KICAgKFVzZSB0aGUgImJlc3QiIG1hdGNoLCByYXRoZXIgdGhhbiB0aGUgZmlyc3Qgb25lKS4KICAgUmVwb3J0ZWQgYnkgQWRhbSBMZXdpcy4KICAgTm90ZSB0aGF0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IHRoZSBiZWhhdmlvdXIgb2YKICAgZXhpc3RpbmcgYWNjZXNzIGNvbnRyb2wgY29uZmlndXJhdGlvbnMuCgoyMDEwLTAzLTI5IDE1OjE2ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpnZXRWYWx1ZSgpOiBkb24ndCByZXR1cm4KICAgYSBwb2ludGVyIHRvIGEgYnVmZmVyIG9uIHRoZSBzdGFjay4gSG93IGNhbiB0aGlzIGhhdmUgd29ya2VkCiAgIHJlbGlhYmx5ID8/CiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6c2V0VmFsdWUoKSwKICAgQVNOX0NPVU5URVI2NDogZml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2UgdGhpcyBtZXRob2QgdG8gZmFpbAogICBldmVuIHdoZW4gYSB2YWxpZCBudW1iZXIgd2FzIHByb3ZpZGVkLgoKMjAxMC0wMy0yOSAxNToxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYWdlbnQgY3Jhc2ggd2hlbiBzZW5kaW5nIGVuY3J5cHRlZCBTTk1QdjMKICAgdHJhcHMuCiAgIFJlcG9ydGVkIGJ5IFNyaWthcGlsYW4gR2FuZGhpCgoyMDEwLTAzLTI5IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2F0Y2ggc3RkZXJyIG9uIFdpbmRvd3MgdG9vLgoKMjAxMC0wMy0yOSAxMTo0OCAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wMy0yOSAxMToxOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZGVzdHJveWluZyBhCiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZmFpbHVyZSBvZgogICBjcmVhdGluZyBhIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZQogICBOZXRTTk1QOjpPSUQ6OmdldHRhYmxlKCkgc3Vicm91dGluZS4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgdHJpZ2dlcmVkIGJ5CiAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBhIFBEVSBwcm9jZXNzaW5nCiAgIGVycm9yIGluIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIG1lbW9yeSBsZWFrcyB0cmlnZ2VyZWQgYnkgY3JlYXRpbmcgYW4gU05NUHYzCiAgIHNlc3Npb24gdmlhIE5ldFNOTVA6OlNOTVAuCiAgIAogICBBbHNvIGZpeGVkIHRoZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGFjY2Vzc2VzIHRyaWdnZXJlZCBieQogICBhZGRpbmcgYSB2YXJiaW5kIHRvIGEgUERVIHZpYSBOZXRTTk1QOjpTTk1QIGludHJvZHVjZWQgYSBmZXcgZGF5cwogICBhZ28uCiAgIAogICBUaGUgYnVncyBtZW50aW9uZWQgYWJvdmUgaGF2ZSBiZWVuIGZvdW5kIGJ5IGluc3BlY3RpbmcgdGhlIG91dHB1dAogICBvZiB0aGUgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmQ6CiAgIGNkIHBlcmwgJiYgdmFsZ3JpbmQgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS1sZWFrLWNoZWNrPWZ1bGwgbWFrZQogICB0ZXN0CgoyMDEwLTAzLTI5IDEwOjU5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU3dpdGNoZWQgYmFjayB0byB0aGUgcHJldmlvdXMgd2F5IG9mIHN0YXJ0aW5nIHByb2Nlc3NlcwogICBhc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IGlzIG1vcmUgcmVsaWFibGUuCgoyMDEwLTAzLTI5IDA5OjI3ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgRG8gbm90IG9ubHkgc2F2ZSBzbm1wZCAvIHNubXB0cmFwZCBsb2dzIGJ1dCBhbHNvIHRoZSBzdGRvdXQgLwogICBzdGRlcnIgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGVzZSBwcm9jZXNzZXMuCgoyMDEwLTAzLTI4IDE2OjA5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2hhbmdlcyBpbiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgogICAtIEFkZGVkIGNvbW1hbmQtbGluZSBvcHRpb24gLWQgZm9yIHNubXBkIGFuZCBzbm1wdHJhcGQuCiAgIC0gc25tcGQgYW5kIHNubXB0cmFwZCBvdXRwdXQgaXMgbm93IHNhdmVkIHRvIGEgbG9nIGZpbGUgKG9uZSBwZXIKICAgdGVzdCkuCiAgIC0gUmV3cm90ZSBQZXJsIGNvZGUgZm9yIHN0YXJ0aW5nIHRoZSBzbm1wZC9zbm1wdHJhcGQgcHJvY2Vzc2VzCiAgIHN1Y2ggdGhhdCB0aGUgc2FtZSBjb2RlIHdvcmtzIG9uIFVuaXggYW5kIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI4IDEzOjM3ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX21hbGxvYygpLAogICBuZXRzbm1wX2NhbGxvYygpLCBuZXRzbm1wX3JlYWxsb2MoKSwgbmV0c25tcF9zdHJkdXAoKSBhbmQKICAgbmV0c25tcF9mcmVlKCkuCiAgIENIQU5HRVM6IFdpbjMyOiBzbm1wbGliOiByZW1vdmVkIHRoZSB0cm91Ymxlc29tZSAjZGVmaW5lIG1hbGxvYwogICBuZXRzbm1wX21hbGxvYyBldGMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGNhbGxpbmcgZnVuY3Rpb25zIGZyb20KICAgdGhlIE5ldC1TTk1QIERMTCBmcm9tIEMgb3IgQysrIGNvZGUgdGhhdCBpcyBiZWluZyBsaW5rZWQgYWdhaW5zdAogICBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMgcnVudGltZSBETEwgdGhhbiB0aGUgTmV0LVNOTVAgRExMLAogICBhbmQgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeSB0aGF0IHdpbGwgYmUgZnJlZWQgYnkgdGhlIE5ldC1TTk1QCiAgIERMTCwgeW91IHdpbGwgZWl0aGVyIGhhdmUgdG8gY2FsbCB0aGUgTmV0LVNOTVAgbWVtb3J5IGFsbG9jYXRpb24KICAgZnVuY3Rpb25zIGV4cGxpY2l0bHkgb3IgcmVkZWZpbmUgbWFsbG9jKCkgZXRjLiB5b3Vyc2VsZi4KCjIwMTAtMDMtMjggMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4ZWQgYSByZWNlbnRseSByZWludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDMtMjcgMTg6NDIgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjaGVjayBmb3IgaW52b2NhdGlvbiBvZiBjYWxsb2MoKSBmcm9tIFhTVUJzLgoKMjAxMC0wMy0yNiAxOToxNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBGb2xsb3ctdXAgZm9yIHIxODM2OCBhbmQgcjE4MzY5OiBtYWRlIHN1cmUgdGhhdCB0aGUgTmV0LVNOTVAgUGVybAogICBleHRlbnNpb25zIGNvbXBpbGUgd2l0aG91dCB0cmlnZ2VyaW5nIHByZXByb2Nlc3NvciB3YXJuaW5ncyBhYm91dAogICByZWRlZmluaW5nIG1hbGxvYyBldGMuIG5vciB0cmlnZ2VyICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycyBvbgogICBXaW5kb3dzLgoKMjAxMC0wMy0yNiAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUmVmYWN0b3Jpbmc6IGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb246CiAgIG5ldHNubXBfc2V0X25vbl9ibG9ja2luZ19tb2RlKCkuCgoyMDEwLTAzLTI2IDExOjU4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHVzaW5nIHZhcmlhYmxlcyBvZiB0eXBlIGNoYXIgYXMgYW4KICAgYXJyYXkgc3Vic2NyaXB0LiBOb3RlOiBhcyBmYXIgYXMgSSBrbm93IHRoZXNlIHdhcm5pbmdzIGFyZSBvbmx5CiAgIHJlcG9ydGVkIHdoZW4gdXNpbmcgdGhlIEN5Z3dpbiBnbGliYyBoZWFkZXJzLgoKMjAxMC0wMy0yNiAxMDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmUgKG9uIFdpbmRvd3MgTVNWQyB3YXMgY29tcGxhaW5pbmcKICAgYWJvdXQgc2l6ZV90IHdoaWxlIHByb2Nlc3NpbmcgPG5ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg+KS4KCjIwMTAtMDMtMjUgMjA6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBhZ2VudHg6IGNoYW5nZWQgZGVmYXVsdCBUQ1AgdGFyZ2V0IGZyb20gMC4wLjAuMDo3MDUgdG8KICAgbG9jYWxob3N0OjcwNS4gVGhpcyBpcyBub3Qgb25seSBhIG1vcmUgc2VjdXJlIGNob2ljZSBidXQgaXQgYWxzbwogICBtYWtlcyBpdCBwb3NzaWJsZSBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gbGV0IGFuIEFnZW50WCBzdWJhZ2VudAogICBjb25uZWN0IHRvIGFuIEFnZW50WCBtYXN0ZXIgYWdlbnQgcnVubmluZyBvbiB0aGUgc2FtZSBzeXN0ZW0KICAgd2l0aG91dCBoYXZpbmcgdG8gc2V0IHRoZSB2YXJpYWJsZSBORVRTTk1QX0RTX0FHRU5UX1hfU09DS0VULgoKMjAxMC0wMy0yNSAxNjoxMSAgYnZhc3NjaGUKCiAgICogIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBwZXJsOiBmaXhlZCBzZXZlcmFsICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycy4KICAgTm90ZTogc2luY2UgY2FsbG9jKCkgaXMgbm90IHJlZGVmaW5lZCBpbiA8Q09SRS9YU1VCLmg+IHVzaW5nCiAgIGNhbGxvYygpIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgbGVhZHMgdG8gIkZyZWUgdG8gd3JvbmcgcG9vbCIKICAgZXJyb3JzLCBhdCBsZWFzdCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxNjowNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBtb3JlIHNpbGVudCBieSBub3QKICAgcmVkZWZpbmluZyBtYWxsb2MoKSBvciBmcmVlKCkgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIFBlcmwKICAgZXh0ZW5zaW9ucyAocmVzdWx0ZWQgaW4gd2FybmluZ3MgYWJvdXQgbWFsbG9jKCkgLyBmcmVlKCkKICAgcmVkZWZpbml0aW9uIGluIHRoZSBQZXJsIGhlYWRlciBDT1JFL1hTVUIuaCkuCgoyMDEwLTAzLTI1IDE1OjA2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IEJVRzogMjk2OTg3MjogbWFkZSBzdXJlIHRoYXQgU09DS19TVEFSVFVQIGlzIGludm9rZWQKICAgYmVmb3JlIGluaXRfYWdlbnQoKSBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxMzozOSAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSBtYWNyb3MgaW5zdGVhZCBvZiBtYWdpYyBudW1iZXJzIGFzIG5ldHNubXBfcGFyc2VfYXJncyByZXR1cm4KICAgY29kZXMuCgoyMDEwLTAzLTI1IDEzOjMwICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIGJ1aWxkIHByb2Nlc3MgYnkKICAgcmVtb3ZpbmcgdGhlIGZpbGUgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4uIFdoaWNoIElQdjYKICAgZnVuY3Rpb25zIGFyZSBleHBvcnRlZCBmcm9tIG5ldHNubXAuZGxsIGlzIG5vdyBkZXRlcm1pbmVkIGJ5CiAgIHdoaWNoIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBETEwgaGF2ZSBiZWVuIGRlY2xhcmVkIGFzCiAgIE5FVFNOTVBfSU1QT1JULgoKMjAxMC0wMy0yNCAyMDoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBkb24ndCB1c2UgcGFzc2VkIHB0ciBhcyB0ZW1wIHZhcjsgdXNlIHNubXBfZW51bV9saXN0cyBpbiBpbml0CiAgIHRlc3QKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIE5FVFNOTVBfRFNfTElCX0NFUlRfRVhUUkFfU1VCRElSCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCBlYXJsaWVyIChoYXZlIHRsc19ib290c3RyYXAgY2FsbCBpdCkKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3M7IGFkZCBjZXJ0IGRlYnVnIG1zZ3MgaW4gc2VydmVyIHNldHVwOyBmcmVlCiAgIHNzbCBsb2cgZGF0YQoKMjAxMC0wMy0yNCAxMDo0NyAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IGFwcHM6IHJldHVybiBub3plcm8gZXhpdCBjb2RlIHdoZW4gcGFyc2luZyBvZiBjZXJ0YWluCiAgIHBhcmFtZXRlciBmYWlscy4KICAgRS5nLiAnLUEnIHBhcmFtZXRlciB3aXRoIHRvbyBzaG9ydCBwYXNzcGhyYXNlIG9yIEt1IGtleQogICBnZW5lcmF0aW9uIGluIGdlbmVyYWwuCgoyMDEwLTAzLTI0IDA3OjExICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIENvcnJlY3QgdGhlIHR5cGUgb2YgdGhlIGlkL2Rlc2NyaXB0aW9uIG9mIHRoZSBPcGVuLVBEVS4KCjIwMTAtMDMtMjIgMTg6MjkgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgVXBkYXRlcyBmb3IgIm1ha2UgY2hlY2tzIjoKICAgLSBNYWRlIHN1cmUgdGhhdCBleGl0IGNvZGUgMCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgaXMKICAgc3VjY2Vzc2Z1bCBhbmQgdGhhdAogICBleGl0IGNvZGUgMSBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgZmFpbGVkLgogICAtIE1hZGUgIm1ha2VmaWxlY2hlY2siIHNraXAgU3VidmVyc2lvbiBib29ra2VlcGluZyBmaWxlcyBhbmQgYWxzbwogICB0aGUgbWFrZWZpbGUKICAgdGhhdCBjb250YWlucyAibWFrZWZpbGVjaGVjayIuCgoyMDEwLTAzLTIyIDE2OjEwICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIEZpeCB0eXBvIGluIGRlZmF1bHQgSXBBZGRyZXNzIHZhbHVlCiAgIChTZWUgQnVnICMyOTcyMTQxKQoKMjAxMC0wMy0yMiAxNTo0NCAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9jYWxsYmFjay5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgY2hhbmdlIGFsbCBhc3NlcnQoKSB0byBuZXRzbm1wX2Fzc2VydCgpOyBhZGQgYXNzZXJ0Y2hlY2sgdG8gdG9wCiAgIGxldmVsIG1ha2VmaWxlCgoyMDEwLTAzLTIyIDE1OjI0ICBidmFzc2NoZQoKICAgKiBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzQ5OiBhZGRlZCBtaXNzaW5nIGNvbW1hIHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbgogICBwb3NzaWJsZSB0byBjb21waWxlIFVDRC1ESVNLSU8tTUlCLgoKMjAxMC0wMy0yMiAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEZpeCBidWlsZCB3aGVuIE1JQiBsb2FkaW5nIGlzIGRpc2FibGVkIChicm9rZW4gYnkgU1ZOIHJldmlzaW9uCiAgIDE4MzQxKQogICBSZXBvcnQgZGVmYXVsdCBNSUIgcGF0aCBmb3IgY2xpZW50IGFwcHMgdG9vLgoKMjAxMC0wMy0yMiAxMzo1OSAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIENIQU5HRVM6IG1hbjogQlVHOiAyOTcyODYwOiBVcGRhdGUgYnJva2VuIHJlZmVyZW5jZXMKCjIwMTAtMDMtMjIgMTM6NDkgIGR0czEyCgogICAqICBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgICAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogQlVHOiAyOTczODkwOiBGaXggaW1wb3J0cywgRGlza0lPRW50cnkgbGlzdCBhbmQKICAgcmV2aXNpb24gaGlzdG9yaWVzCgoyMDEwLTAzLTIyIDExOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBXaW4zMiwgd2luRXh0RExMOiBzb2x2ZWQgdGhlIG15c3Rlcnkgb2YgIkFTTiB0eXBlIHplcm8iLiBUaGUKICAgd2luRXh0RExMIGNvZGUgZG9lcyBub3cgbm8gbG9uZ2VyIHRyaWdnZXIgY29udmVyc2lvbnMgb2YgV2luZG93cwogICBBU04gdmFyYmluZHMgd2l0aCBBU04gdHlwZSB6ZXJvLiBOb3RlOiB0aGlzIGNvZGUgY2hhbmdlIGRvZXMgbm90CiAgIGNoYW5nZSB0aGUgYWdlbnQgYmVoYXZpb3IuCgoyMDEwLTAzLTIwIDIwOjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaDoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCgoyMDEwLTAzLTIwIDIwOjIwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBBZGRlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCAoc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBpbiB0aGUKICAgcHJldmlvdXMgY29tbWl0KS4KCjIwMTAtMDMtMjAgMTk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAKICAgICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoCiAgIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbgogICBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdAogICBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICoKICAgbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KCjIwMTAtMDMtMjAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IGdjYyAoTWluR1cpLgoKMjAxMC0wMy0yMCAxOTowNSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzaWdwcm9jbWFzay4KCjIwMTAtMDMtMjAgMDk6MTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgUmVmYWN0b3Jpbmc6IG1vdmVkIGR1cGxpY2F0ZWQgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLgoKMjAxMC0wMy0xOSAyMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBNSUIgYW5kIGNvbmZpZyBkaXJlY3RvcmllcyBzZWFyY2ggcGF0aHMgb24gZXJyb3JzCiAgIChhbmQgaW4gdGhlIGhlbHAgbWVzc2FnZSkKCjIwMTAtMDMtMTkgMTM6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIGxvZ2dlZCB3aGVuCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaXMgYXR0ZW1wdGVkIG1vcmUgZGV0YWlsZWQuCiAgIAogICBBbiBleGFtcGxlOgogICAoYmVmb3JlKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIChtaWJJSS9zbm1wLAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsKQogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCiAgIChhZnRlcikKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbjogTUlCIG1vZHVsZXMgbWliSUkvc25tcCBhbmQKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCAob2lkIC4xLjMuNi4xLjIuMS4xMSkuCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KCjIwMTAtMDMtMTkgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbXVsdGlwbGUgdmFyYmluZCBzZXQgcmVxdWVzdHMgYXJlIG5vdwogICBwcm9jZXNzZWQgY29ycmVjdGx5LgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtYWRlIGVycm9yIGNvZGVzIGluIFNOTVAgcmVzcG9uc2UgUERVcwogICBhcyBSRkMtY29tcGxpYW50IGFzIHBvc3NpYmxlLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBpZiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBETEwgZmFpbHMsIHRoZQogICByZWFzb24gd2h5IGxvYWRpbmcgZmFpbGVkIGlzIG5vdyBsb2dnZWQuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdGhhdCBvY2N1cnJlZCB3aGVuCiAgIFNubXBFeHRlbnNpb25RdWVyeShFeCkgZmFpbGVkLiBUaGlzIG1lbW9yeSBsZWFrIGhhcyBiZWVuIGZvdW5kCiAgIHZpYSBzb3VyY2UgcmVhZGluZy4gTm90ZTogaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgaXQgd2FzIHBvc3NpYmxlCiAgIHRvIHRyaWdnZXIgdGhpcyBtZW1vcnkgbGVhay4gVGhpcyBsZWFrIGlzIGNlcnRhaW5seSBub3QgdHJpZ2dlcmVkCiAgIGJ5IGV2ZXJ5IHJlcXVlc3QgZm9yIHdoaWNoIGEgcmVzcG9uc2Ugd2l0aCBub24temVybyBlcnJvciBzdGF0dXMKICAgaXMgc2VudCBiYWNrLgoKMjAxMC0wMy0xOCAxNjoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAga2VlcCBjb3VudCBvZiBlbmFibGVkIGxvZ3M7IHVzZSB0aGlzIGNvdW50IHRvIGRldGVybWluZSB3aGVuIHRvCiAgIGxvZyB0byBzdGRlcnIKCjIwMTAtMDMtMTggMTY6MjggIHJzdG9yeQoKICAgKiAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgc25tcCB0b2tlbiBsb2dPcHRpb24gYWxsb3dzIHNwZWNpZnlpbmcgbG9nCiAgIGRlc3RpbmF0aW9ucyB2aSBjb25mIGZpbGVzCiAgIC0gaWYgc3RkZXJyIGxvZyBlbmFibGVkIGJlY2F1c2Ugb2Ygbm8gbG9nIGRlc3RpbmF0aW9uLCB0dXJuIGl0CiAgIG9mZiB3aGVuIGEKICAgbG9nIGRlc3RpbmF0aW9uIGlzIGVuYWJsZWQKICAgLSBkb24ndCBjYWxsIG5ldHNubXBfZW5hYmxlX3N0ZGVycmxvZygpIGZyb20gYXBwcyBhbnltb3JlCgoyMDEwLTAzLTE4IDE1OjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICB1ZHAgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHR3ZWFrcwogICAtIG1vdmUgYmFzaWMgdWRwIHJlY3Zmcm9tL3NlbmR0byBjb2RlIGZyb20gVURQRG9tYWluIHRvCiAgIFVEUEJhc2VEb21haW4KICAgLSB0d2VhayB1cGQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzdGlvbgogICAtIHR3ZWFrIHVkcGlwdjQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzaW9uCiAgIC0gYWxzbyBmaXhlZCBuZXRzbm1wX2lwdjRfKiAtPiBuZXRzbm1wX3VkcGlwdjRfKgogICAtIHR3ZWFrIERUTFNVRFBEb21haW4gb3QgdXNlIHVkcGJhc2VfKiBpbnN0ZWFkIG9mIHVkcF8qCgoyMDEwLTAzLTE4IDE1OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm90ZWN0IGNlcnQgaGVhZGVyIGFuZCBpbml0IGNhbGwgd2l0aCBpZmRlZnMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdXNlIG5ldyB1dGlsaXR5IHJvdXRpbmUgZm9yIGNlcnQgbmFtZXMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wX29wZW5zc2wgaGVhZGVyIGFmdGVyIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFkZCByb3V0aW5lcyB0byBwdWxsL2R1bXAgbmFtZXMgZnJvbSBYNTA5IGNlcnRzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBlbnVtIGxpc3RzIHRvIG1hbmFnZSBkaXJlY3RvcnkgaW5kZXhlcwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBpbml0aWFsaXplIHN0YXRpYyBzdG9yYWdlIGJlZm9yZSB1c2U7IHByb3RlY3QgZW51bSBpbml0IGZyb20KICAgbXVsdGlwbGUgY2FsbHMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBpbmZvIGFib3V0IG5ldyB0c20vdGxzIG1pYnMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IHRvIHNubXAgaW5pdAoKMjAxMC0wMy0xNyAxMzozNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgVXBkYXRlZCBNSUIgcmV2aXNpb24gaGlzdG9yeS4KCjIwMTAtMDMtMTcgMTM6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBvbmUgbGVhay1hdC1leGl0LgoKMjAxMC0wMy0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBCVUc6IDI5NzEyNTc6IEZpeGVkIHdpbkV4dERMTCBoYW5kbGluZyBvZiBtdWx0aS12YXJiaW5kCiAgIGdldE5leHQgcmVxdWVzdHMgd2l0aCBPSURzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKMjAxMC0wMy0xNyAxMDoyNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNb3JlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgdHVuaW5nLgoKMjAxMC0wMy0xNiAxOTozMSAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQ29tcGlsZXMgbm93IHdpdGggTUlCIGNvbXBpbGVycyB0aGF0IGRvIG5vdCByZWNvZ25pemUgYSBkb3VibGUKICAgZGFzaCBhcyB0aGUgZW5kIG9mIGEgTUlCIGNvbW1lbnQuCgoyMDEwLTAzLTE2IDE5OjI3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4ZWQgdHdvIHN5bnRheCBlcnJvcnMuCgoyMDEwLTAzLTE2IDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgYnVnIGluIGdldE5leHQgaGFuZGxpbmcgdGhhdAogICBjb3VsZCBjYXVzZSB0aGUgTUlCIG91dHB1dCB0byBiZSB0cnVuY2F0ZWQuCgoyMDEwLTAzLTE2IDE4OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1hZGUgd2luRXh0RExMIGRlYnVnIG91dHB1dCBtb3JlIGRldGFpbGVkLgoKMjAxMC0wMy0xNiAxNToyNCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaDoKCiAgIE1hZGUgc3VyZSB0aGF0IEMrKyBwcm9ncmFtcyB0aGF0IGluY2x1ZGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzCiAgIGNvbXBpbGUgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZGVwcmVjYXRlZCBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MTkgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRGlzYWJsZSBhbGwgdGhlIHByaW50aW5nIGlmIGRlYnVnIG91dHB1dCBpcyBvZmYuCgoyMDEwLTAzLTE1IDAwOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNSAwMDowNyAgdGFuZGVycwoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgbWFrZSBzdXJlIGhlYWRlciBpZmRlZiBuYW1lIGlzIHVuaXF1ZQoKMjAxMC0wMy0xNCAyMTowNCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBhZGQgbWlzc2luZyBpbml0L3NodXRkb3duIHByb3RvdHlwZXMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTAzLTE0IDIxOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIG1vdmUgZGVidWcgbWVzc2FnZSBlYXJsaWVyCgoyMDEwLTAzLTE0IDIxOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX2luaXRfY29udGFpbmVyOyBmaXggY29tcGxlciB3YXJuaW5nCgoyMDEwLTAzLTE0IDIwOjUxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENvcnJlY3QgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuIGFuZCBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KICAgZm9yIHRoZSBORVRTTk1QX05PX0RFQlVHR0lORyBjYXNlCgoyMDEwLTAzLTE0IDE5OjEwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVuYW1lIGNlcnQgaW5pdC9zaHV0ZG93biBmdW5jczsgb25seSBjb21waWxlIGNlcnRfdXRpbHMgaWYKICAgdXNpbmcvaGF2ZSBTU0w7IGluaXQgY2VydHMgZnJvbSB0bHMgYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjYWxsIG5ldHNubXBfaW5pdF9vcGVuc3NsIGluc3RlYWQgb2YgbmV0c25tcF9pbml0X3Rsc2Jhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBvYmplY3RzIGluIHZlcnNpb24gMDggb2YgdGhlIGR0bHMgZHJhZnQKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLCBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24sICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIsIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGltcG9ydCBpbml0aWFsIGNvZGUgZm9yIGR0bHMgbWlicwoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIFRMU1RNLU1JQiBmcm9tIGRyYWZ0LWlldGYtaXNtcy1kdGxzLXRtLTA5LnR4dAoKMjAxMC0wMy0xNCAxNzoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBmZXcgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgRm9sbG93LXVwIGZvciByMTczODQ6IGNoYW5nZWQgTkVUU05NUF9EU19NQVhfU1VCSURTIGZyb20gNDAgdG8KICAgNDguCgoyMDEwLTAzLTE0IDEzOjUzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENoYW5nZXM6CiAgIC0gUmVtb3ZlZCAtV25vLWNoYXItc3Vic2NyaXB0cyBmcm9tIERFVkZMQUdTLiBVc2luZyBhIHZhcmlhYmxlIG9yCiAgIGV4cHJlc3Npb24gb2YKICAgdHlwZSBjaGFyIGFzIGFuIGFycmF5IGluZGV4IGlzIGFsbW9zdCBhbHdheXMgYW4gZXJyb3IuCiAgIEZ1cnRoZXJtb3JlLAogICAtV2NoYXItc3Vic2NyaXB0IGRvZXMgbm90IHRyaWdnZXIgYW55IHdhcm5pbmdzIG9uIHRoZSBOZXQtU05NUAogICBjb2RlIGJhc2UuCiAgIC0gUmVtb3ZlZCAtV2lubGluZSBmcm9tIERFVkZMQUdTLiBOb3Qgb25seSB3YXMgbm9ib2R5IHBheWluZwogICBhdHRlbnRpb24gdG8gdGhlCiAgIG1lc3NhZ2VzIHRyaWdnZXJlZCBieSAtV2lubGluZSwgYnV0IHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgZ2NjCiAgIGNvbXBpbGVyIGFyZQogICBiZXR0ZXIgdGhhbiBodW1hbnMgYXQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBpbmxpbmVkCiAgIGFuZCB3aGljaAogICBvbmVzIG5vdC4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvcmVjb25mLgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxMzozNiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZW1vdmVkIHRoZSAnMHgnIHByZWZpeCBhZ2FpbiBmcm9tIGEgZGVidWcgc3RhdGVtZW50IHRoYXQgd2FzCiAgIGludHJvZHVjZWQgaW4gcjE4MjgyLgoKMjAxMC0wMy0xMyAxOTowNyAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9wcHBvcnQuaCwgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUKICAgcGVybCBzdWJkaXJlY3RvcnkuCiAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4KCjIwMTAtMDMtMTMgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZSB0aGUgVExTVENQIERPTUFJTgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IGlmZGVmIHR5cG8KCjIwMTAtMDMtMTIgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBkZWJ1Z2dpbmcgc3ltYm9sIG5hbWVzIHRvIGEgZ2VuZXJpYyB0bHMgc3RyaW5nCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGluaXRpYWwgd29ya2luZyBTTk1QIG92ZXIgVExTIG92ZXIgVENQIGNvbm5lY3Rpb24KCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHByaW50IGEgbW9yZSBjb21wbGV0ZSBPcGVuU1NMIHN0YWNrCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCBhc3NlcnQgc3RhdGVtZW50cwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBhZGRlZCBhbiBhY2NlcHRlZF9iaW8gcG9pbnRlciBmb3IgdGhlIGJpbyBhZnRlciBTU0xfYWNjZXB0CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgdGhlIGFiaWxpdHkgZm9yIGZfY29weSBhbmQgZl9jb25maWcKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgbWlzc2luZyA7CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZCBhIGZfY29weSBwb2ludGVyCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHJldHVybiBpbnQgbm90IGludCAqIG9uIGVycm9yCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGEgZl9jb25maWcgZnVuY3Rpb24gZm9yIHRyYW5zcG9ydHMKCjIwMTAtMDMtMTIgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IFBBVENIOiAyODUwMDY3OiBTdXBwcmVzcyBleHRyYW5lb3VzICJpbmRleCIKICAgaGVhZGVyIHRva2VuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IERhbiBOZWxzb24KCjIwMTAtMDMtMTIgMTE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YKICAgZ2V0dWxvbmdmcm9tc3lzY2xhc3NuZXRzdGF0aXN0aWNzKCkKCjIwMTAtMDMtMTEgMTY6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGZvcm1hdCBvZiB0aGUgLWUvLUUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgoyMDEwLTAzLTExIDE2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAoYWJhbmRvbmVkKSAnZGF0YXNldDInIGhlbHBlci4KCjIwMTAtMDMtMTEgMTU6NTkgIGR0czEyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBEb24ndCBpbml0aWFsaXNlIHRoZSBUTFMgdHJhbnNwb3J0IHVubGVzcyBpdCdzIGFjdHVhbGx5IGJlZW4KICAgY29uZmlndXJlZCBpbi4KCjIwMTAtMDMtMTEgMTU6NDcgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICB1c2UgU05NUF9UTVBESVIgaW5zdGVhZCBvZiBUTVBESVIKCjIwMTAtMDMtMTEgMTU6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHF1ZXJ5IHJpZ2h0IGJvb2wgKHRzbSBwcmVmaXggaXMgbGliIGJvb2wsIG5vdCBhcHApCgoyMDEwLTAzLTExIDE1OjA4ICBkdHMxMgoKICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjk1MjAzNDogUmV0dXJuIG9mIHRoZSBHcmVhdCBTdVNFICdzcHJpbnRmJwogICBIdW50Li4uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxNDo1NSAgZHRzMTIKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBDSEFOR0VTOiBQQVRDSDogMjkzNzk5NjogQWRkIERhdGU6IGhlYWRlciB0byBlbWFpbCBzZW5kIGJ5CiAgIHRyYXB0b2VtYWlsCgoyMDEwLTAzLTExIDE0OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY3NDAwOiBSZXRyaWV2ZSBlcnJvciBjb3VudGVycyBmb3IgdGhlCiAgIEV0aGVyTGlrZS1NSUIKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMuCgoyMDEwLTAzLTExIDE0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njg2NDI6IENhdGNoIG92ZXJmbG93IG9mIHBhc3MtdGhyb3VnaAogICBjb21tYW5kIGJ1ZmZlci4KICAgUGF0Y2ggZnJvbSBBbmRyZWFzIEphZWdlci9MZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTI6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTU2NjU3OiBIYW5kbGUgb3Zlci1sZW5ndGggQWdlbnRYIE9JRHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYiBXZXN0CgoyMDEwLTAzLTExIDEyOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWJ1ZyBwYXJhbWV0ZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBQcm92aWRlIG1pc3NpbmcgKGR1bW15KSByZXR1cm4gdmFsdWUsIHRvIHN1cHByZXNzIGNvbXBpbGVyCiAgIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3Mgb2YgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93LgogICBUaGlzIGRvZXNuJ3QgX2FjdHVhbGx5XyBwcm90ZWN0IGFnYWluc3Qgc3VjaCBhbiBvdmVyZmxvdywKICAgc2luY2UgdGhlIHRhcmdldCBidWZmZXIgaXMgbm9uLWVtcHR5LCBzbyBzdHJuY2F0IGNhbid0CiAgIHVzZSBpdCBhbGwgYW55d2F5LiBCdXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgbWlzbGVhZCB0aGUKICAgY29tcGlsZXIgc3VmZmljaWVudGx5IHRvIHNodXQgaXQgdXAhCiAgIAogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTE6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgUmVwbGFjZSBiYWNrcXVvdGUgd2l0aCBzaW5nbGUgcXVvdGUgaW4gY29uZmlndXJlIG91dHB1dCBtZXNzYWdlLgogICBXaGlsZSB0aGlzIGNoYW5nZSBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBpdCBmZWVscwogICBzZW5zaWJsZSB0byBhdm9pZCB0aGlzIHBhcnRpY3VsYXIgdXNlIG9mIGJhY2txdW90ZXMsIEp1c3QgSW4KICAgQ2FzZS4KICAgU2VlIGRpc2N1c3Npb24gaW4gUGF0Y2ggIzI5NTIxNjkKCjIwMTAtMDMtMTEgMTE6NDMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjk1MjE0MDogT3ZlcmZsb3cgY291bnRlcjMyIGFuZCBnYXVnZTMyCiAgIG9uIDY0Yml0IHN5c3RlbXMgY29ycmVjdGx5CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyOTUyMDIwOiBFeHBsaWNpdGx5IHNldCBwZXJtaXNzaW9uIG9uCiAgIHRlbXBvcmFyeSB0ZXN0aW5nIG91dHB1dCBkaXJlY3Rvcmllcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvLgoKMjAxMC0wMy0xMSAxMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTA4NDU6IEZpeCBpZkhpZ2hTcGVlZCBjYWxjdWxhdGlvbgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMDg6MjYgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBNYWRlIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIG1vZHVsZSBOZXRTTk1QLnBtIG9uIFdpbmRvd3MgbW9yZQogICBzaWxlbnQ6IGFkZGVkIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MgYW5kIG1hZGUgc3VyZSB0aGF0ICNpbmNsdWRlCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gb2NjdXJzIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZSBmaWxlCiAgIHRoYXQgZGVmaW5lcyBfV0lOMzJfV0lOTlQuCgoyMDEwLTAzLTEwIDIzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNyZWF0ZSBpbmRleGVzIGZvciBjZXJ0aWZpY2F0ZXMgaW4gY29uZmlnIHBhdGgKCjIwMTAtMDMtMTAgMTg6NDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIEFkZGVkICIjaW5jbHVkZSA8dW5pc3RkLmg+IiBzdWNoIHRoYXQgb24gVW5peCBzeXN0ZW1zIHRoZQogICBjb21waWxlciBkb2VzIG5vdCBwcmludCBhIHdhcm5pbmcgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICB0aGUgZnVuY3Rpb24gY2xvc2UoKS4KCjIwMTAtMDMtMTAgMTg6MzAgIHJzdG9yeQoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS42LmRldgoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBDSEFOR0VTOiBidWlsZGluZzogdXBkYXRlIFZlcnNpb24tTXVuZ2UgZm9yIHJlbmFtZWQgY29uZmlndXJlLmFjCgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHNhdmUgY29uZmlndXJlIGNhY2hlIGV2ZXJ5IG9uY2UgaW4gd2hpbGUKCjIwMTAtMDMtMTAgMTY6MTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBSZW9yZGVyZWQgc29tZSBvZiB0aGUgTWFrZWZpbGUgcnVsZXMgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlCiAgIGRpZmZzIHdpdGggbGlic25tcF9kbGwvTWFrZWZpbGUuaW4uCgoyMDEwLTAzLTEwIDE2OjEwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyLCBiYXRjaCBidWlsZGluZzogRExMIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMTAgMTY6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcgYnkgYWRkaW5nIGEgZm9yd2FyZAogICBkZWNsYXJhdGlvbiBmb3IgdGhlIGZ1bmN0aW9uIF9jYWNoZV9mcmVlKCkuCgoyMDEwLTAzLTEwIDE2OjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFdpbjMyLgoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBtaXNzaW5nIGNvbnRyaWJ1dG9ycwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgZG91YmxlIGZyZWUgaW4gQ09OVEFJTkVSX0ZSRUUKICAgLSBhbHNvIGFkZGVkIHNldmVyYWwgY29tcGFyZSByb3V0aW5lcwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGZyZWVpbmcgYSBjYWNoZSwgc3RvcCB0aW1lciBhbmQgY2FsbCBjYWNoZQogICBmcmVlIGZ1bmMKICAgLSBhbHNvIGFkZCBuZXRzbm1wX2NhY2hlX3JlbW92ZQoKMjAxMC0wMy0xMCAwMzo1MiAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1bmRvIGNvbW1pdCAxODIzNAoKMjAxMC0wMy0xMCAwMzo0MSAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBNZXJnZSBicmFuY2ggJ3B1bGxtZScgb2YgLi4vdHJ1bmstc3RhZ2luZwoKMjAxMC0wMy0wOSAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9yZWFkX21vZHVsZSgpIGZyb20gbmV0c25tcC5kbGwKICAgc3VjaCB0aGF0IE5ldFNOTVAucG0gYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0wOSAxNzo0NyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgU2ltcGxpZmllZCB0d28gbWFrZWZpbGVzIHVzZWQgYnkgYnVpbGQuYmF0IChXaW4zMikuCgoyMDEwLTAzLTA5IDE3OjI0ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogYnVpbGRpbmcgTmV0U05NUC5wbSBkb2VzIG5vIGxvbmdlcgogICB0cmlnZ2VyIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHJlZGVmaW5pbmcgX1dJTjMyX1dJTk5UIG5vcgogICBOVERESV9WRVJTSU9OLgoKMjAxMC0wMy0wOSAxNzoyMiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIE5ldFNOTVAucG0gbW9yZSBzaWxlbnQgYnkKICAgYWRkaW5nIHRoZSBNU1ZDIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MuCgoyMDEwLTAzLTA5IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIGRlYnVnIG1zZyB1c2VkIGR1cmluZyBkZWJ1Z2dpbmcKCjIwMTAtMDMtMDkgMTc6MDIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCB3cmFwcGVyIC0gdGVzdGluZyByZXBvIHdyaXRlIHByaXZzCgoyMDEwLTAzLTA5IDEwOjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIGJ1aWxkIHJ1bGVzLiBUaGVzZSBkdXBsaWNhdGUgcnVsZXMgd2VyZQogICBoYXJtbGVzcyBidXQgdHJpZ2dlcmVkIGEgd2FybmluZy4KCjIwMTAtMDMtMDkgMDI6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkaXJlY3RvcnkgY29udGFpbmVyIGVuaGFuY2VtZW50cwogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKICAgLSBhZGQgZmlsdGVyIGNhbGxiYWNrIHRvIGZpbHRlciBmaWxlcyByZXR1cm5lZAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIHJlbGF0aXZlIGFuZCBub3QgZnVsbCBwYXRocwogICAtIGFkZCBvcHRpb24gdG8gc29ydCByZXR1cm5lZCBsaXN0CiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gZW1wdHkgY29udGFpbmVyIGluc3RlYWQgb2YgTlVMTCBpZiBubwogICBmaWxlcyBmb3VuZAogICAtIGNoYW5nZSBkZWZhdWx0IGNvbnRhaW5lciBuYW1lIHRvIGRpcmVjdG9yeSB0aGF0IHdhcyBzY2FubmVkCiAgIC0gdHdlYWsgZGVidWcvbG9nIG1lc3NhZ2VzCgoyMDEwLTAzLTA4IDIzOjA3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IGRlZmluZSBhbmQgdXNlIG5ldyBORVRTTk1QX0xPR09OQ0UgbWFjcm8KCjIwMTAtMDMtMDggMjI6NDQgIHJzdG9yeQoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNvbmYgZmlsZXMgY2FuIG5vdyBpbmNsdWRlIG90aGVyIGNvbmYgZmlsZXMKICAgLSBhbHNvIHR3ZWFrZWQgZGVidWcgdG9rZW5zIGhlcmUgYW5kIHRoZXJlCgoyMDEwLTAzLTA4IDIyOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR5cG8gKGNhdXNlZCBleHRlcm5hbCByZWZlcmVuY2Ugd2hlbiBEVExTVURQIGNvbmZpZ3VyZWQKICAgd2l0aG91dCBkdGxzdGNwKQoKMjAxMC0wMy0wNiAwMjoyNyAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldHNubXBfY29udGFpbmVyIGVuaGFuY2VtZW50czoKICAgLSBhZGQgZnJlZV9pdGVtIGZ1bmN0aW9uOyBkZWZhdWx0cyB0bwogICBuZXRzbm1wX2NvbnRhaW5lcl9zaW1wbGVfZnJlZQogICAtIGFkZCBDT05UQUlORVJfRlJFRV9BTEwgbWFjcm8vZnVuY3Rpb24gKGxpa2UgQ09OVEFJTkVSX0NMRUFSIGJ1dAogICBjYWxscyBjb250YWluZXIgZnJlZV9pdGVtIGZvciBlYWNoIGl0ZW0gaW4gcHJpbWFyeSBjb250YWluZXIpCiAgIC0gYWRkIGFiaWxpdHkgdG8gc2V0IG9wdGlvbnMgb24gYmluYXJ5X2FycmF5IGNvbnRhaW5lcnMKCjIwMTAtMDMtMDIgMTc6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBNYWRlIHN1cmUgdGhhdCB3aW4zMi9idWlsZC5iYXQgd29ya3MgYWdhaW4gYnkgYWRkaW5nIG1pc3NpbmcKICAgc291cmNlIGZpbGUgbmFtZXMuIFNvcnRlZCBzb3VyY2UgZmlsZSBuYW1lcyBhbHBoYWJldGljYWxseSB0b28uCgoyMDEwLTAzLTAyIDE2OjU0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IHRoZSBiYXRjaCBmaWxlIHdpbjMyL2J1aWxkLmJhdAogICB3b3JrcyBhZ2FpbiB3aXRoIHRoZSBQbGF0Zm9ybSBTREsgZW5hYmxlZC4KCjIwMTAtMDMtMDIgMTY6NTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL01ha2VmaWxlLWFwcHMuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODIxNSAocmVwbGFjZWQgdGhlIG9ic29sZXRlIGNsLmV4ZSBvcHRpb24gL0dYIGJ5CiAgIHRoZSBlcXVpdmFsZW50IC9FSHNjOyBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiLCBhZGRlZAogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiBhbmQgcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWCkuCgoyMDEwLTAyLTI4IDE1OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFdpbjMyOiBmaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcmVkZWZpbml0aW9uIG9mCiAgIF9XSU4zMl9XSU5OVCBieSBtYWtpbmcgc3VyZSB0aGF0IDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gaXMKICAgaW5jbHVkZWQgYmVmb3JlIDx3aW5kb3dzLmg+LgoKMjAxMC0wMi0yOCAxNToyNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSAvR1ggYnkgdGhlCiAgIGVxdWl2YWxlbnQgL0VIc2MuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIgogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiB0byBtYWtlIGJ1aWxkaW5nIHdpdGggTVNWQyAyMDA4CiAgIG1vcmUgc2lsZW50LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVguIFRoZXNlCiAgIG9wdGlvbnMgaW5mbHVlbmNlIGhvdyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMgYXJlIGdlbmVyYXRlZCwKICAgd2hpY2ggYXJlIG5vdCB1c2VkIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdC4gL1lYIGlzIG5vdAogICBzdXBwb3J0ZWQgYnkgTVNWQyAyMDA4LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgYSBkdXBsaWNhdGUgb2NjdXJyZW5jZSBvZgogICBzdHJ0b3VsbC5vYmouCgoyMDEwLTAyLTI4IDE0OjExICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiBhcHBsaWVkIHRoZSBuZWNlc3NhcnkgY2hhbmdlcyB0bwogICB0aGUgd2luMzIvQ29uZmlndXJlIHNjcmlwdCBhbmQgd2luMzIvTWFrZWZpbGUuaW4uCgoyMDEwLTAyLTI3IDEzOjExICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsICAgCiAgICAgIHNubXBsaWIvZ2V0b3B0LmMsIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGRlY2xhcmVkIGFsbCBmdW5jdGlvbnMgdGhhdCBhcmUgZXhwb3J0ZWQgZnJvbSB0aGUKICAgTmV0LVNOTVAgRExMIGFzIE5FVFNOTVBfSU1QT1JULiBUaGUgcmVzdWx0IGlzIGEgbWlub3IKICAgb3B0aW1pemF0aW9uOiBjb2RlIHRoYXQgdXNlcyB0aGUgTmV0LVNOTVAgRExMIHdpbGwgbm93IGNhbGwgdGhlCiAgIERMTC1leHBvcnRlZCBmdW5jdGlvbnMgZGlyZWN0bHkgaW5zdGVhZCBvZiBpbmRpcmVjdGx5IHZpYSB0aGUKICAgc3R1YiBpbiB0aGUgaW1wb3J0IGxpYnJhcnkuCgoyMDEwLTAyLTI3IDExOjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBSZW1vdmVkIGEgcmVkdW5kYW50IHN0cm5jYXNlY21wKCkgZGVjbGFyYXRpb24uCgoyMDEwLTAyLTI3IDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRva19yLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wMi0yNyAwOTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODkgKHJzdG9yeSk6IGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzLgoKMjAxMC0wMi0yNSAxNzo1MyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmV2ZXJ0ZWQgcjE4MjA3IChkc3AvZHN3IHRvIHZjcHJvai9zbG4gY29udmVyc2lvbikgZXhjZXB0IHRoZQogICBzdXBwcmVzc2lvbgogICBsaXN0IGNoYW5nZXMuIFRoZSBnb2FsIG9mIHRoaXMgY29udmVyc2lvbiB3YXMgdHdvZm9sZDogbm90IG9ubHkKICAgdG8gYmUgYWJsZQogICB0byBsb2FkIHRoZSBwcm9qZWN0IGZpbGVzIGluIE1TVkMgMjAwMiAtIDIwMDggYnV0IGFsc28gdG8gYmUgYWJsZQogICB0byBjb21taXQKICAgY2hhbmdlcyBtYWRlIGZyb20gaW5zaWRlIHRoZSBNU1ZDIDIwMDggSURFLiBVbmZvcnR1bmF0ZWx5CiAgIGNvbnZlcnRpbmcgZHNwL2RzdwogICBmaWxlcyB0byB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggTVNWQyAyMDA4IG1ha2VzIGl0IGltcG9zc2libGUgdG8KICAgbG9hZCB0aGUKICAgdmNwcm9qL3NsbiBmaWxlcyB3aXRoIGVhcmxpZXIgTVNWQyB2ZXJzaW9ucy4gV2h5IG9uIGVhcnRoIGRpZAogICBNaWNyb3NvZnQKICAgZGVjaWRlIHRvIHB1dCBhIHZlcnNpb24gbnVtYmVyIGluIFhNTCBmaWxlcyA/CgoyMDEwLTAyLTI0IDE5OjQxICBidmFzc2NoZQoKICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIHdpbjMyL2xpYmFnZW50LCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycywgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgd2luMzIvbGlibmV0c25tcHRyYXBkLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIHdpbjMyL2xpYnNubXAsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgd2luMzIvbmV0c25tcG1pYnMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCB3aW4zMi9zbm1wYnVsa2dldCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIHdpbjMyL3NubXBidWxrd2FsaywgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YSwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLAogICAgICAgICB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQsIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCB3aW4zMi9zbm1wbmV0c3RhdCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQsICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIHdpbjMyL3NubXB0YWJsZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIHdpbjMyL3NubXB0cmFwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIHdpbjMyL3NubXB1c20sICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgd2luMzIvc25tcHdhbGssICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICAocmV2ZXJ0ZWQpIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogY29udmVydGVkIC5kc3AvLmRzdyBmaWxlcyB0bwogICAudmNwcm9qLy5zbG4gZmlsZXMuIFRoaXMgaW1wbGllcyB0aGF0IHN1cHBvcnQgZm9yIE1TVkMgNi4wIGhhcwogICBiZWVuIGRyb3BwZWQgYW5kIHRoZSBtaW5pbXVtIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHZlcnNpb24KICAgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGlzIE1pY3Jvc29mdCBWaXN1YWwKICAgU3R1ZGlvIC5ORVQgKDIwMDIpLgoKMjAxMC0wMi0yMyAxOTowMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogd2hlbiBnZW5lcmF0aW5nIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHN5c3RlbQogICBsb2NhdGlvbiBhbmQgbm8gZG9tYWluIG5hbWUgaXMgZm91bmQgaW4gL2V0Yy9yZXNvbHYuY29uZiwgdXNlCiAgICJAbm8ud2hlcmUiIGluc3RlYWQgb2YgIiIuCgoyMDEwLTAyLTIzIDE4OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIzIDE4OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBSZW1vdmVkIGFsbCB0cmFuc3BvcnQgdGVzdHMgc2luY2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVybWluZQogICB3aGVyZSB0aGV5IGNhbiBzYWZlbHkgb3BlcmF0ZSAod2FzIHN0b3BwaW5nIHRhbmRlcnMnIG5pZ2h0bHkKICAgdGVzdHMgZnJvbSBzdWNjZWVkaW5nKQoKMjAxMC0wMi0yMyAxODo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGVycm9yIGFuZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdGhlIHNlcnZlciBjb250ZXh0IGdlbmVyYXRvciB0byBhY3R1YWxseSwgdW0sIHJldHVybiB0aGUKICAgY29udGV4dC4KCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluaXRpYWxpemUgdGhlICdyZXMnIHZhcmlhYmxlIHNpbmNlIGl0J3MgY2hlY2tlZAoKMjAxMC0wMi0yMyAxODozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIHByb2dyZXNzIHRvd2FyZCBhIHJlYWwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHRsc3RjcCBjdG9yIGludm9jYXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICByZXF1aXJlIFRMU0Jhc2UKCjIwMTAtMDItMjMgMTg6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgaG9zdCBpZGVudGlmaWVyIGFzIG91dHB1dAoKMjAxMC0wMi0yMyAxODozNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNpZ25pZmljYW50IG1vcmUgd29yayBvbiB0aGUgVExTIFRDUCBkb21haW4KCjIwMTAtMDItMjMgMTc6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTkzIChqc2FmcmFuZWspOiByZXJhbiBhdXRvcmVjb25mIGZvciB0aGUgdHJ1bmsKICAgYW5kIHRoZSA1LjUgYnJhbmNoLgoKMjAxMC0wMi0yMyAxNDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBORVRTTk1QX1BSSXogaW5zdGVhZCBvZiAlegoKMjAxMC0wMi0yMyAxMjoyNyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeGVkIGNvbXBpbGF0aW9uIHdpdGggcnBtLTQuNi4KICAgVHVybiBvbiB0aGUgbGVnYWN5IEFQSSB3aGVuIHJwbS00LjYgaXMgZGV0ZWN0ZWQuCgoyMDEwLTAyLTIzIDA3OjM4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4MDAwIChkaXNhYmxpbmcgU0lHQUxSTSBzdXBwb3J0KSBiZWNhdXNlIHRoaXMgaW52b2x2ZXMKICAgYSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZS4KCjIwMTAtMDItMjMgMDA6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDItMjMgMDA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWJ1ZyBtc2cgdHdlYWtzOyB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucwogICAtIGFkZCBkZWJ1ZyBoZWFkZXIgZm9yIHNubXAgdmVyc2lvbgogICAtIGFkZCBsZW5ndGggdG8gZGVidWcgc2VuZC9yZWNlaXZlIG1lc3NhZ2VzCiAgIC0gdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMgZm9yIHNlbmQvcmVjdi9maW5kaW5nIHBlZXIgYWRkcmVzcwoKMjAxMC0wMi0yMyAwMDoyNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nLCBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kICYKICAgbmV0c25tcF90cmFuc3BvcnRfcmVjdgogICAtIG1vdmVzIHRyYW5zcG9ydCBtYW5pcHVsYXRpb24gaW50byB0cmFuc3BvcnQgY29kZQogICAtIGNlbnRyYWwgcGxhY2UgZm9yIGxvZ2dpbmcvZGVidWdnaW5nIHNlbnQvcmVjZWl2ZWQgZGF0YQoKMjAxMC0wMi0yMiAxOTozMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMiAxOToyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg2LiBSZWdyZXNzaW9uIHRlc3QgMzQgKHdoZXRoZXIgYXV0aGVudGljYXRpb24KICAgZmFpbHVyZSB0cmFwcyBhcmUgc2VudCBieSBzbm1wZCkgcGFzc2VzIG5vdyBhZ2Fpbi4KCjIwMTAtMDItMjIgMDk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSBzdXJlIHRoYXQgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHVyZSBkb2VzCiAgIG5vdCBjcmVhdGUgZGFuZ2xpbmcgcG9pbnRlcnMgaW4gdGhlIE1JQiBzdWJ0cmVlIHJlZ2lzdHJ5LgoKMjAxMC0wMi0yMiAwOToxMSAgYnZhc3NjaGUKCiAgICogYWdlbnQsIGFwcHMsIGFwcHMvc25tcG5ldHN0YXQ6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTIyIDA4OjQyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmU6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjEzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1pbkdXIHdoZW4gSVB2NiBzdXBwb3J0IGlzIGVuYWJsZWQuCgoyMDEwLTAyLTIxIDE4OjU4ICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi93aW4zMmRsbC5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHJlbmFtZWQgbGlic2RsbC5kc3cgaW50byB3aW4zMmRsbC5kc3cuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCBsaW5raW5nIHRoZSBOZXQtU05NUAogICBhcHBsaWNhdGlvbnMgd2l0aCBuZXRzbm1wLmRsbCBieSBhZGRpbmcgYWxsIGFwcGxpY2F0aW9uIHByb2plY3RzCiAgIHRvIHRoZSBzYW1lIHdvcmtzcGFjZSB0aGF0IGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBETEwuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBuZXRzbm1wLmRsbCBsZXNzIGVycm9yCiAgIHByb25lIGJ5IGxldHRpbmcgdGhlIGNvbXBpbGVyIHByaW50IGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlCiAgIHByZXByb2Nlc3NvciBzeW1ib2wgTkVUU05NUF9VU0VfRExMIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wMi0yMSAxODo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBBZGRlZCBsaWJzbm1wLmRlZiB0byB0aGUgbGlzdCBvZgogICBsaWJzbm1wX2RsbC5kc3Agc291cmNlIGZpbGVzIHN1Y2ggdGhhdCB0aGUgRExMIGlzIHJlYnVpbHQgd2hlbgogICB0aGUgLmRlZiBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkLgoKMjAxMC0wMi0yMSAxODo0NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfc2V0X2xpbmVfYnVmZmVyaW5nKCkgZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTAtMDItMjEgMTc6MzkgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vcmUgV2luMzIgSVB2NiBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudHM6CiAgIC0gTW92ZWQgI3VuZGVmIEhBVkVfSUZfTkFNRVRPSU5ERVggZnJvbSBzbm1wbGliLyouYyB0bwogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC4KICAgLSBDaGFuZ2VkIHRoZSBnbG9iYWwgaW42YWRkcl9hbnkgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBzdWNoIHRoYXQKICAgbXVsdGlwbGUgZGVmaW5pdGlvbnMgZG8gbm90IHRyaWdnZXIgYSBsaW5rZXIgZXJyb3IuCiAgIC0gQWRkZWQgdHlwZWRlZnMgZm9yIHVpbnQ4X3QsIGludDhfdCwgdWludDE2X3QgYW5kIGludDE2X3QuCiAgIC0gUmVwbGFjZWQgJyNpZiBORVRTTk1QX0VOQUJMRV9JUFY2JyBieSAnI2lmZGVmCiAgIE5FVFNOTVBfRU5BQkxFX0lQVjYnLgoKMjAxMC0wMi0yMSAwODozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYzoKCiAgIG1ha2Ugc3VyZSB0aGF0IElOQUREUl9OT05FIGlzIGRlZmluZWQgKGZpeGVzIGJ1aWxkIGVycm9yIG9uCiAgIFNvbGFyaXMpCgoyMDEwLTAyLTE5IDE5OjM5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFN5bmNocm9uaXplZCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBhbmQKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTAyLTE5IDE0OjE4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBXaW4zMjogbGlic25tcCBidWlsZHMgYWdhaW4gYXMgYSBETEwgd2hlbiBJUHY2IGlzCiAgIGVuYWJsZWQuCgoyMDEwLTAyLTE5IDEzOjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MTY0OiBzeW5jaHJvbml6ZWQgbGlic25tcC5kZWYuaW4gd2l0aAogICBsaWJzbm1wLmRlZgoKMjAxMC0wMi0xOSAwOTowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYWRkZWQgI2luY2x1ZGUgPG1hbGxvYy5oPiBpbgogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQgdGhlIE1TVkMgY29tcGlsZXIKICAgZG9lc24ndCBnZXQgY29uZnVzZWQgYnkgdGhlIG1hbGxvYyByZWRlZmluaXRpb24gd2hlbiBidWlsZGluZwogICBsaWJzbm1wIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnRlZCBuZXRzbm1wX3BhcnNlX2FyZ3MoKSBzdWNoIHRoYXQgdGhlIE5ldC1TTk1QIGFwcGxpY2F0aW9ucwogICBidWlsZCBhZ2FpbiB3aGVuIGxpYnNubXAgaXMgYnVpbHQgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtb3ZlZCBNU1ZDIE9wZW5TU0wgbGlua2VyIHNldHRpbmdzIGZyb20KICAgc25tcGxpYi9rZXl0b29scy5jIHRvIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdAogICB0aGVzZSBzZXR0aW5ncyBhcmUgbm90IG9ubHkgZWZmZWN0aXZlIHdoZW4gYnVpbGRpbmcgc25tcGxpYiBhcyBhCiAgIHN0YXRpYyBsaWJyYXJ5IGJ1dCBhbHNvIHdoZW4gYW55IE5ldC1TTk1QIGFwcGxpY2F0aW9uIGlzIGJ1aWx0CiAgIHRoYXQgbGlua3Mgd2l0aCBzbm1wbGliIGFzIGEgc3RhdGljIGxpYnJhcnkgb3IgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjMyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBXaW4zMiBjbGVhbnVwOiBNU1ZDIC8gRExMIHRlc3RzIG5vdyB1c2UgdGhlIG9mZmljaWFsbHkgZW5kb3JzZWQKICAgbWFjcm8gbmFtZXMuCgoyMDEwLTAyLTE5IDA3OjUwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBCdWlsZHMgYWdhaW4uCgoyMDEwLTAyLTE5IDA2OjQ3ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogMjk0Mjk0MDogZnJvbSAiQmlsbCBGZW5uZXIiOiBBZGQgYSBuZXcKICAgZnVuY3Rpb24sIG5ldHNubXBfcGFyc2VfYXJncywgdGhhdCBpcyBsaWtlIHNubXBfcGFyc2VfYXJncyBidXQKICAgdGFrZXMgYW4gYWRkaXRpb25hbCBiaXRtYXNrLCBmbGFncywgdG8gYWZmZWN0IHRoZSBiZWhhdmlvdXIuIEFsc28KICAgcmVtb3ZlIHRoZSBtYWdpYyBoYW5kbGluZyBvZiBzb21lIGFwcGxpY2F0aW9uIG5hbWVzLgoKMjAxMC0wMi0xOCAxNDoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvYmluOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0xOCAxNDoyMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBTb3J0ZWQgbmFtZXMgb2Ygc291cmNlIGZpbGVzIGFscGhhYmV0aWNhbGx5LgoKMjAxMC0wMi0xOCAxMzowMyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHdpbjMyL25ldHNubXBtaWJzc2RrLCAgIAogICAgICB3aW4zMi9zbm1wZHNkaywgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBkcm9wcGVkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIE5ldC1TTk1QIHdpdGgKICAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wIHdpdGhvdXQgcGxhdGZvcm0gU0RLLiBCdWlsZGluZwogICBOZXQtU05NUCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCArIFBTREsgb3IgYW55IGxhdGVyCiAgIHZlcnNpb24gb2YgTVNWQyBpcyBzdGlsbCBwb3NzaWJsZSBob3dldmVyLgogICAKICAgTm90ZTogaWYgaW4gdGhlIGZ1dHVyZSBmb3Igd2hhdGV2ZXIgcmVhc29uIGl0IHNob3VsZCBiZWNvbWUKICAgbmVjZXNzYXJ5IGFnYWluIHRvIGJlIGFibGUgdG8gYnVpbGQgTmV0LVNOTVAgd2l0aCBNU1ZDIHdpdGhvdXQKICAgcmVseWluZyBvbiB0aGUgcGxhdGZvcm0gU0RLIGhlYWRlcnMsIHBsZWFzZSAjaWZkZWYgb3V0IHRoZSBNSUIKICAgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgUFNESyBoZWFkZXJzIGluc3RlYWQgb2Ygc3BsaXR0aW5nIHRoZQogICB3b3Jrc3BhY2UgZmlsZXMgYWdhaW4uCgoyMDEwLTAyLTE4IDEyOjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgZG9zMnVuaXguCgoyMDEwLTAyLTE4IDA5OjQ1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIFNvdXJjZSBjb2RlIGNsZWFudXA6CiAgIC0gTW92ZWQgZG9jdW1lbnRhdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldCBtZW1iZXJzIHRvIHRoZQogICBjb21tZW50CiAgIGJsb2NrIGp1c3QgYWJvdmUgdGhlIGRlZmluaXRpb24gb2YgdGhpcyB0eXBlLgogICAtIFJlbW92ZWQgc3VwZXJmbHVvdXMgJ2V4dGVybiAiQyInIHNwZWNpZmllcjogdGhpcyBsaW5rYWdlCiAgIHNwZWNpZmllcgogICBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBvZiBmdW5jdGlvbnMgYW5kCiAgIG5vdAogICBvbiB0eXBlZGVmcyBvciBzdHJ1Y3QgZGVmaW5pdGlvbnMuCiAgIC0gUmFuIHRoaXMgaGVhZGVyIGZpbGUgdGhyb3VnaCBpbmRlbnQuCgoyMDEwLTAyLTE4IDA5OjI2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENoYW5nZXM6CiAgIC0gQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KICAgLSBGaXhlZCBhIGZldyBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBNU1ZDIChwYXNzaW5nIGludAogICBpbnN0ZWFkIG9mIHVfc2hvcnQgdG8gaHRvbnMoKSAvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0aGF0IHdlcmUKICAgbWlzc2luZyBiZWNhdXNlIG9mIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlcykuCgoyMDEwLTAyLTE2IDE3OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBXaW4zMjogVGhlIGhlYWRlciBmaWxlIDxzeXMvdGltZWIuaD4gaXMgbm8gbG9uZ2VyCiAgIGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LiBPcjogdGhlIGhlYWRlciBmaWxlCiAgIDxzeXMvdGltZWIuaD4gd2lsbCBoYXZlIHRvIGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgaW4gc291cmNlIGZpbGVzCiAgIHRoYXQgbmVlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIGZ0aW1lKCkuCiAgIAogICBOb3RlOiBjb21wYXJlZCB0byByMTgwMjQgYW5kIGJlZm9yZSwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgYWZmZWN0CiAgIEJTRCBzeXN0ZW1zIC0tIDxzeXMvdGltZWIuaD4gd2FzIG9ubHkgaW5jbHVkZWQgZnJvbQogICA8bmV0LXNubXAvdHlwZXMuaD4gb24gQlNEIHN5c3RlbXMgaW4gcmV2aXNpb25zIHIxODAyNS4ucjE4MTUyLgoKMjAxMC0wMi0xNCAxOToyOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEJ1aWxkcyBub3cgb24gRnJlZUJTRCB2ZXJzaW9uIDguMC4KCjIwMTAtMDItMTMgMjA6NTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgOydzIGluIG9yZGVyIHRvCiAgIGEpIEF2b2lkIHdhcm5pbmdzIGFib3V0IHNwdXJpb3VzIHNlbWljb2xvbnMKICAgYikgTm90IGhhdmUgdW50ZXJtaW5hdGVkIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzCgoyMDEwLTAyLTEyIDAyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogdXBkYXRlIGlubGluZSBkb2N1bWVudGF0aW9uOyBhZGQgc3RvcmFnZXR5cGUgdGVzdAogICBmb3IgY29sdW1ucwoKMjAxMC0wMi0xMiAwMTo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHR5cG8gaW4gZGVmaW5lCgoyMDEwLTAyLTEyIDAxOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBzZWQgcHJvY2Vzc2luZyBvbiB3aGl0ZS1zcGFjZSBhZGRpbmcgc29sYXJpcyBtYWNoaW5lcwoKMjAxMC0wMi0xMCAyMzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBhZGQgdG9wIHNyY2RpciB0byBjcHAgc2VhcmNoIHBhdGgKCjIwMTAtMDItMTAgMjM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGZyZWVic2QgbmVlZHMgdGltZS5oIGFib3ZlIHRpbWViLmgKCjIwMTAtMDItMTAgMjM6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgdXNlIHNlZCB3aXRoIG11bHRpcmVwbGFjZSBvbiBhIGxpbmUgdG8gZml4IHBvc3NpYmxlIHdoaXRlc3BhY2UKICAgaXNzdWUgb24gc29sYXJpcwoKMjAxMC0wMi0xMCAyMzoyMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgd29yayBmb3IgVExTIHNlcGFyYXRpb24gaW50byBzZXBhcmF0ZSBmaWxlcyB3aXRoIGEgYmFzZQogICBmaWxlCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6CgogICBtb3ZlIGJhc2UgdHJhbnNwb3J0IGNyZWF0aW9uIGZ1bmN0aW9uIG91dCBvZiBsaW51eCBpZmRlZnMKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBhbm90aGVyIGVycm9yIGxvZ2dpbmcgZnVuY3Rpb24KCjIwMTAtMDItMTAgMjM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkZWQgVExTIG92ZXIgVENQCgoyMDEwLTAyLTEwIDE2OjM5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogTGludXg6IEltcHJvdmVkIEV0aGVyTGlrZS1NSUIgc3VwcG9ydAogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycwoKMjAxMC0wMi0xMCAxMDowNCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogU3VwcG9ydCBudWxsLWJ5dGVzIGluIG9jdGV0IHN0cmluZ3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgVG9tbXkgQmVhZGxlCgoyMDEwLTAyLTEwIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIFRMUyBpbmZyYXN0cnVjdHVyZSBpbnRvIGEgYmFzZSBkb21haW4gZmlsZQoKMjAxMC0wMi0xMCAwMDowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldDYgZnVuY3Rpb25zIHRvIHRoZSBpcHY2IGJhc2UKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdoaXRlIHNwYWNlIGZvcm1hdHRpbmcKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHVkcF9zZW5kL3JlY3YgdG8gdWRwYmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZSBuZXRzbm1wX3NvY2tfYnVmZmVyX3NldCBpbnRvIHNvY2tldGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBtb3ZlIGlwdjQgc3BlY2lmaWMgVURQIHRyYW5zcG9ydCBjcmVhdGlvbiB0byB1ZHBpcHY0IGJhc2UKCjIwMTAtMDItMTAgMDA6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbWFkZSBjb21tb24gZnVuY3Rpb25zIGJlIHJlZmVyZW5jZWQgZGlyZWN0bHkgYnkgdGhlIHRyYW5zcG9ydHMKICAgYW5kIHJlbW92ZWQgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eTsgdGhleSB3ZXJlIHN0YXRpYyBzbyB0aGVyZSBpcwogICBubyBiYWNrd2FyZHMgY29tcGF0IGlzc3VlcwoKMjAxMC0wMi0xMCAwMDowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldCBiYXNlZCBjbG9zZSB0byBhIHNvY2tldCBiYXNlZCBkb21haW4gY29tbW9uIHRvIG1hbnkKICAgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBtb3ZlIFRDUCBjb21tb24gZnVuY3Rpb25zIHRvIGEgVENQQmFzZSBkb21haW4gaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMDkgMjM6NTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB0bVN0YXRlUmVmZXJlbmNlIHNob3VsZCBiZSB1c2luZyB0aGUgaW5kZXhlZCBhZGRyX3BhaXIKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1ha2UgbmV0c25tcF9kdGxzdWRwX2Nsb3NlIG1ha2UgdXNlIG9mIG5ldHNubXBfYmFzZXVkcF9jbG9zZQoKMjAxMC0wMi0wOSAyMzo1NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBiYXNlIFVEUCBzb2NrZXQgY3JlYXRpb24gaW50byBhIGNvbW1vbiBiYXNlIGZ1bmN0aW9uIGFuZAogICBtYWRlIHVzZSBvZiBpdAoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaDoKCiAgIHByb3BlciBfSCBpZmRlZiBjaGVja3MKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIGFkZGVkIGEgcmF3IFVEUCBiYXNlIGRvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY3JlYXRlZCBhIFVEUCBJUHY0IGJhc2U7IG1vdmVkIGFuZCByZXVzZWQgbW9yZSBpbmZyYXN0cnVjdHVyZQoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgaXB2NCBhZGRyZXNzIGZvcm1hdHRpbmcgaW50byBzbm1wSVB2NEJhc2VEb21haW4KCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBOZXcgSVB2NCBhbmQgSVAgYmFzZSB0cmFuc3BvcnQgZmlsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGRvbid0IGRvdWJsZSBpbmNsdWRlIHRyYW5zcG9ydCBtb2R1bGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBhbmQgcmVwb3J0IGNvbmZpZ19lcnJvcnMgaW4gdHJhbnNwb3J0IGhlYWRlcnMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgYWxsb3cgYSBORVRTTk1QX1FVSUNLX0NIRUNLIGVudiB2YXJpYWJsZSB0byBieXBhc3MgaGVhZGVyIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYmV0dGVyIGNvbW1lbnRzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGluIHRyYW5zcG9ydCBoZWFkZXJzIGZvcgogICBmb3JjZS1pbmNsdWRpbmcgb2Ygb3RoZXIgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjQxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVmaW5lIGEgc3RhbmRhcmRpemVkIGluZGV4ZWQgYWRkcl9wYWlyIGluc3RlYWQgb2YgdXNpbmcgb25lCiAgIGxhYmVsZWQgb25seSBmb3IgVURQIGV2ZXJ5d2hlcmUKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHRyYW5zcG9ydCBwcmVmaXggbGlzdCBmb3IgaW5jb21pbmcgbWVzc2FnZXMKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcmVtb3ZlIHRoZSBzZWN1cml0eSBsZXZlbCBmcm9tIHRoZSBUU00gY2FjaGU7IHByZXZpb3VzIGV4aXN0ZW5jZQogICBmcm9tIGZyb20gYSBkcmFmdCBjb3B5IG9mIHRoZSBUU00gUkZDIGFuZCBpcyBub3cgc3RvcmVkIGVudGlyZWx5CiAgIGluIHRoZSB0bSByZWZlcmVuY2UKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IGluY29taW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgb3V0Z29pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIGNyZWF0ZSBkZWZpbmVkIHNpemVkIGFycmF5IGFuZCBsZW5ndGggdmFyaWFibGUKCjIwMTAtMDItMDUgMDk6NTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgZmlsZWRlc2NyaXB0aW9yIGxlYWsgaW4gRXRoZXJsaWtlLU1JQiBhbmQKICAgUk1PTi1NSUIKCjIwMTAtMDItMDQgMTU6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IHJlYWwgaWZTcGVlZCBvZiBuZXR3b3JrIGludGVyZmFjZSBldmVuIGl0CiAgIGlzIGRvd24uCiAgIFNvbWUgaW50ZXJmYWNlcyBjYW4gcmVwb3J0IHRoZWlyIHJlYWwgc3BlZWQsIGV2ZW4gdGhleSBhcmUgZG93bi4KICAgQW5kIGlmIHRoZXkgY2FuJ3QsIHRoZSBmYWxsYmFjayB0byAxME1icHMgaXMgc3RpbGwgdGhlcmUuCgoyMDEwLTAyLTAxIDE0OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgZmlsZQogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMuCgoyMDEwLTAyLTAxIDE0OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgcHJvY2VkdXJlIGZvciBidWlsZGluZwogICB3aXRoIFNOTVB2MyBzdXBwb3J0IGVuYWJsZWQgKE9wZW5TU0wpLgoKMjAxMC0wMi0wMSAxNDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFsbCBjYWxscyB0byBmcmVlKCkgYXJlIGludGVyY2VwdGVkIHdoZW4gYnVpbGRpbmcKICAgd2l0aCBkbWFsbG9jCiAgIHN1cHBvcnQgZW5hYmxlZC4gSW5jbHVkZWQgPGRtYWxsb2MuaD4gaW4gdGhvc2Ugc291cmNlIGZpbGVzIHdoZXJlCiAgIGl0IHdhcyBub3QKICAgeWV0IGluY2x1ZGVkLCBhbmQgcHJvdmlkZWQgYSB3cmFwcGVyIGZ1bmN0aW9uIGZvciBmcmVlKCkgd2hlcmUKICAgdGhlIGFkZHJlc3Mgb2YKICAgdGhpcyBmdW5jdGlvbiB3YXMgdGFrZW4gKERtYWxsb2MgY2FuIG9ubHkgaW50ZXJjZXB0IGZyZWUoKSB3aGVuCiAgIGl0IGlzIGNhbGxlZAogICBkaXJlY3RseSBidXQgbm90IHdoZW4gaXQgaXMgY2FsbGVkIHRocm91Z2ggYSBmdW5jdGlvbiBwb2ludGVyKS4KCjIwMTAtMDItMDEgMTA6NDkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBCdWlsZGluZyBOZXQtU05NUCB3aXRoIGRtYWxsb2Mgc3VwcG9ydCBlbmFibGVkIGlzCiAgIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wMi0wMSAwMTowNSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItUCB0Y3AiJyB3b3JrcyBmaW5lIG5vdwoKMjAxMC0wMS0zMSAwODowMiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzI6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgYW4gc2ggc3ludGF4IGVycm9yIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0CiAgIHRoYXQgd2FzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdpdGhvdXQgbGliY3J5cHRvIGFuZCB3aXRob3V0CiAgIGxpYmVheTMyLgogICBUaGUgZm9sbG93aW5nIGVycm9yIHdhcyByZXBvcnRlZDoKICAgY29uZmlndXJlWzMzMTM2XTogeDogdW5rbm93biB0ZXN0IG9wZXJhdG9yCgoyMDEwLTAxLTI5IDIwOjA3ICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRWxhYm9yYXRlIG9uIHJldi4gMTgwODkgYW5kIGFkanVzdCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB0aGUKICAgKiAgICAqcmVhbGx5IHdvcmtpbmcgb25lKi4gIDIwMTAtMDEtMjkgMTk6MTEgIGpzYWZyYW5lawoKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRml4IHRlc3QgMzUgd2hlbiBjb25maWd1cmUgb3B0aW9uICctLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4nIHdhcwogICB1c2VkIGFuZCB0aGUgZGlyZWN0b3J5IGZvciB0ZW1wLiBmaWxlcyBkb2VzIG5vdCBleGlzdCB5ZXQuCgoyMDEwLTAxLTI5IDE1OjA3ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvY2xvc2VkaXIuYywgICAKICAgICAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9vcGVuZGlyLmMsIHNubXBsaWIvcmVhZGRpci5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgTW92ZWQgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBvcGVuZGlyKCksIHJlYWRkaXIoKSwgY2xvc2VkaXIoKSBhbmQKICAgZ2V0dGltZW9mZGF5KCkgcmVwbGFjZW1lbnRzIGZvciBNU1ZDIGZyb20gc25tcGxpYi9zeXN0ZW0uYyB0bwogICBzZXBhcmF0ZSBzb3VyY2UgZmlsZXMgaW4gc25tcGxpYi4KCjIwMTAtMDEtMjkgMDg6NTcgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDb25maWd1cmUgc2NyaXB0IGNvbnNpc3RlbmN5IGltcHJvdmVtZW50OiByZW5hbWVkIHRoZSB2YXJpYWJsZQogICAic2F2ZWRfTElCUyIgaW50byAibmV0c25tcF9zYXZlX0xJQlMiLgoKMjAxMC0wMS0yOSAwNjozOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIHRoZSBzaXplIG9mIHN1bl9wYXRoIGFuZCB1c2UgdGhhdCB0bwogICBnZW5lcmF0ZSB0aGUgbWF4aW1hbCBzaXplIHN0cmluZ3MgZm9yIHN0cmVzc2luZyBjb20yc2VjdW5peC4KCjIwMTAtMDEtMjcgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIE5FV1M6IE1pbkdXOiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3Qgc3VpdGUgaXMgYWdhaW4gcG9zc2libGUKICAgKCdtYWtlIHRlc3QnKS4KCjIwMTAtMDEtMjcgMTQ6NDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBDeWd3aW46IGJ1aWxkaW5nIHdpdGggYW5vdGhlciBPcGVuU1NMIHBhY2thZ2UgdGhhbiB0aGUKICAgQ3lnd2luLXByb3ZpZGVkIHBhY2thZ2VzIG9wZW5zc2wgYW5kIG9wZW5zc2wtZGV2ZWwgaXMgYWdhaW4KICAgcG9zc2libGUuCiAgIE5FV1M6IE1pbkdXOiBidWlsZGluZyB3aXRoIE9wZW5TU0wgd29ya3MgYWdhaW4uCgoyMDEwLTAxLTI2IDIxOjI3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgY29udGV4dCBhcmd1bWVudCBvZiBzZW5kX3YzdHJhcCwKICAgc2VuZF90cmFwX3ZhcnNfd2l0aF9jb250ZXh0IGFuZCBuZXRzbm1wX3NlbmRfdHJhcHMgcmVmZXIgdG8gYQogICBjb25zdCBjaGFyKi4KCjIwMTAtMDEtMjYgMjE6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIENvcnJlY3QgbWlzc3BlbGxpbmcgLSAjZWxzaWYgdG8gI2VsaWYKCjIwMTAtMDEtMjYgMjE6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwYXJlbnRseSBub3QgYWxsIHN5c3RlbXMgZGVmaW5lIElORVRfQUREUlNUUkxFTiBzbyBhZGQgaXQgaWYgaXQKICAgaXMgbWlzc2luZy4KCjIwMTAtMDEtMjYgMTU6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBZGRlZCBuZXRzdGF0IHBhdGggZm9yIE1pbkdXLgoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggc3RhdCBuYW1lcwoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1cGRhdGUgY29tbWVudHMgdG8gcmVmbGVjdCBSRkM1NTkxIGFzIHRoZSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMS0yNiAxMTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmg6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogYnl0ZSBvcmRlciBvZiB1ZHBMb2NhbFBvcnQgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDEwLTAxLTI2IDEwOjQ2ICBidmFzc2NoZQoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogZml4ZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSAoIm1ha2UKICAgdGVzdCIpLiBUaGlzIGhhcyBiZWVuIGZpeGVkIGJ5IHVzaW5nIHRoZSBwcm9wZXIgZW52aXJvbm1lbnQKICAgc2VwYXJhdG9yIGNoYXJhY3RlciBhbmQgYnkgYWRkaW5nIHRoZSBwYXRoIG9mIHRoZSBuZXRzdGF0CiAgIGV4ZWN1dGFibGUgZm9yIEN5Z3dpbiBpbiB0ZXN0aW5nL1RFU1RDT05GLnNoLgoKMjAxMC0wMS0yNiAwOToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiByZWFkaW5nIFJQTQogICBkYXRhYmFzZS4KICAgT2xkIHJwbSB2ZXJzaW9ucyByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEhlYWRlciB3aGVuIGFub3RoZXIgUlBNCiAgIGluc3RhbmNlIGhvbGRzCiAgIGRhdGFiYXNlIGxvY2tzLiBJLmUuIHNubXBkIHNvbWV0aW1lcyBjcmFzaGVzIHdoZW4gcmVhZGluZwogICBocl9zd0luc3QgYW5kIHJwbSBpcwogICBpbnN0YWxsaW5nL3VwZGF0aW5nL3JlbW92aW5nIGFub3RoZXIgcGFja2FnZS4gQXMgYSBzb2x1dGlvbiwKICAgd2hvbGUgUlBNIGNhY2hlCiAgIGlzIHRocm93biBhd2F5IGFuZCByZS1yZWFkIHdoZW4gd2UgZ290IGFuIGVycm9yIGZyb20gbGlicnBtLiBUaGUKICAgd2hvbGUgcHJvY2VzcwogICBpcyByZXN0YXJ0ZWQgb25seSB0aHJlZSB0aW1lcywgdG8gcHJldmVudCBlbmRsZXNzIGxvb3AuCgoyMDEwLTAxLTI1IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogRG8gbm90IGNoZWNrIGlmIHZhbHVlcyBvZiB0eXBlIHNpemVfdAogICBhcmUgbGVzcyB0aGFuIDAuCgoyMDEwLTAxLTI1IDIyOjExICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBDaGVjayB0aGUgcmFuZ2Ugb2Ygb2lkIHZhbHVlcyB0b3dhcmRzIHRoZSBtYXhpbXVtCiAgIG9pZCB2YWx1ZSwgbm90VUxPTkdfTUFYCgoyMDEwLTAxLTI1IDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIG9ubHkgYmFpbCBvbiBtaXNzaW5nIGxpYmlwaGxwYXBpIGZvciB4d2luc29jazIKCjIwMTAtMDEtMjUgMTk6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVuYW1lIE1BWF9TVEFUUyB0byBORVRTTk1QX1NUQVRfTUFYX1NUQVRTCgoyMDEwLTAxLTI1IDE5OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljczsgY2hlY2sgZm9yIGluZGV4CiAgIG92ZXJmbG93CgoyMDEwLTAxLTI1IDE5OjQ0ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljcwoKMjAxMC0wMS0yNSAxNjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1c2UgKmN1cnJlbnQqIGNvcHkgb2YgdGhlIE1JQiB3aGVuIGdlbmVyYXRpbmcgc3RhdHMKCjIwMTAtMDEtMjUgMTY6MDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIG1vdmUgc25tcF9nZXRfc3RhdGlzdGljIGhlbHBlciB0byBoZWxwZXJzIGRpcjsgdXBkYXRlIGFsbF9oZWxwZXJzCiAgIGhlYWRlcgoKMjAxMC0wMS0yNSAxNDozNCAgYnZhc3NjaGUKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBSZXBsYWNlZCBleHBsaWNpdCBkZWNsYXJhdGlvbnMgb2Ygb3B0aW5kLCBvcHRvcHQgYW5kIG9wdGFyZyBieQogICAjaW5jbHVkZSA8dW5pc3RkLmg+IGJlY2F1c2UgZXhwbGljaXRseSBkZWNsYXJpbmcgdGhlc2UgdmFyaWFibGVzCiAgIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQ3lnd2luLgoKMjAxMC0wMS0yNSAxNDoyNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBDeWd3aW46IElQdjYgaXMgb25seSBzdXBwb3J0ZWQgdW5kZXIgQ3lnd2luIDEuNyBvciBsYXRlci4KICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQgaW4gTmV0LVNOTVAgdW5kZXIgQ3lnd2luCiAgIGludm9sdmVkIGEgc3RyYW5nZSBtaXh0dXJlIG9mIEN5Z3dpbiBhbmQgV2luc29jazIgc29ja2V0IGNhbGxzLAogICB3aGljaCB3YXMgdG9vIGhhcmQgdG8gbWFpbnRhaW4uCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRzIGFnYWluIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQKICAgKC0tZW5hYmxlLWlwdjYpLiBBdCBsZWFzdCBOZXQtU05NUCA1LjUgZG9lc24ndCBidWlsZCB1bmRlciBDeWd3aW4KICAgd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZC4gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgcmVwb3J0ZWQKICAgImNoZWNraW5nIGlwdjYgc3RhY2sgdHlwZSAuLi4gcmVzdWx0OiAidW5rbm93biwgbm8iIC4uLiBlcnJvcjoKICAgSVB2NiB0cmFuc3BvcnRzIG5vdCBhdmFpbGFibGUgaWYgSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkIi4KCjIwMTAtMDEtMjUgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIDxzdHJpbmcuaD4uCgoyMDEwLTAxLTI1IDE0OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgdGhlIElQdjYgc3RhY2sgaW5jbHVkZWQgaW4gQ3lnd2luCiAgIHZlcnNpb24gMS43LgogICBJUHY2IHN1cHBvcnQgaXMgb25lIG9mIHRoZSBuZXcgZmVhdHVyZXMgb2YgQ3lnd2luIDEuNy4gRm9yIG1vcmUKICAgaW5mb3JtYXRpb24sCiAgIHNlZSBhbHNvIGh0dHA6Ly9jeWd3aW4uY29tL2N5Z3dpbi11Zy1uZXQvb3YtbmV3MS43Lmh0bWwuCgoyMDEwLTAxLTI1IDEyOjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBDeWd3aW46IHRoZSBtZXNzYWdlICJjb25maWd1cmU6IFdBUk5JTkc6IHdpbnNvY2suaDoKICAgcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiBkb2VzIG5vIGxvbmdlciBhcHBlYXIgd2hlbgogICBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0LgogICBGb2xsb3ctdXAgZm9yIHIxODA1MDogcmUtZW5hYmxlZCBsaWJpcGhscGFwaSBhbmQgaXBobHBhcGkuaCB0ZXN0cwogICBmb3Igbm9uLU1pbkdXIHBsYXRmb3JtcyBzaW5jZSB0aGUgQ3lnd2luIGJ1aWxkIG5lZWRzIHRoZXNlLgoKMjAxMC0wMS0yNSAwNzoyOCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgc25tcGxpYi9pbmV0X250b3AuYywgIAogICAgICAgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgYXV0b2NvbmYgdG8gZGVjaWRlIGlmIGluZXRfbnRvcC5jIGFuZAogICBpbmV0X3B0b24uYyBhcmUgdG8gYmUgY29tcGlsZWQuCgoyMDEwLTAxLTI1IDA3OjA5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IE1pbkdXOiBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY29uZmlndXJlIHRlc3QKICAgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjUgMDU6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgVExTVE0gY291bnRlciBzdGF0cwoKMjAxMC0wMS0yNSAwNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgaW4gVFNNIG5lZWRlZCBjb3VudGVyIGRlZmluaXRpb25zCgoyMDEwLTAxLTI1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVFNNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRTTS1NSUIKCjIwMTAtMDEtMjQgMTQ6NDMgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIE5FV1M6IHNubXBkOiBNYWRlIHN1YnRyZWVfY29udGV4dF9jYWNoZTo6Y29udGV4dF9uYW1lIGEgY29uc3QKICAgY2hhciouCgoyMDEwLTAxLTI0IDE0OjI3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvcgogICBORVRTTk1QX1JFTU9WRV9DT05TVAoKMjAxMC0wMS0yNCAxMzoyNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBQcmVmZXIgdG8gdXNlIGEgdmFyaWFibGUgb2YgdGhlIHJpZ2h0IHR5cGUgb3ZlcgogICBhbiB1Z2x5IGNhc3QuIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIGFzIHdlbGwuCgoyMDEwLTAxLTI0IDEyOjU5ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbnRyb2R1Y2VkIHRoZSB2YXJpYWJsZSAnd2l0aF9zb2NrbGliJyBpbiB0aGUKICAgY29uZmlndXJlIHNjcmlwdC4gVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiBmb3IgTWluR1cKICAgYW5kIHRvICJkZWZhdWx0IiBmb3IgYWxsIG90aGVyIHN5c3RlbXMuIFdpbnNvY2syIHRlc3RzIGFyZSBvbmx5CiAgIHJ1biBpZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIChNaW5HVykuCgoyMDEwLTAxLTI0IDEyOjUzICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgZGVidWcgbG9ncy4KCjIwMTAtMDEtMjQgMTI6NDUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXhlczogZml4ZWQgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8KICAgdW5zaWduZWQgY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWtlIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKQogICBkZWNsYXJhdGlvbnMKICAgYXZhaWxhYmxlIHRvIHRoZSBjb21waWxlci4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFkZSBzdXJlIHRoYXQgPHdzMnRjcGlwLmg+IHdpbGwKICAgYmUgaW5jbHVkZWQKICAgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluCiAgIGFib3V0IHN0cnVjdAogICBzb2NrYWRkcl9pbjYgYmVpbmcgdXNlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTE6NDIgIGJ2YXNzY2hlCgogICAqIG1hbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDEtMjQgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa2dldC5jLCAgIAogICAgICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCAgIAogICAgICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgICAKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBDbGVhbnVwIChXaW5kb3dzKTogcmVtb3ZlZCBzdXBlcmZsdW91cyAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAgIGRpcmVjdGl2ZXMuIFRoaXMgaGVhZGVyIGZpbGUKICAgaGFzIG9ubHkgdG8gYmUgaW5jbHVkZWQgZnJvbSBzbm1wbGliL3N5c3RlbS5jIGJlY2F1c2Ugb2YgdGhlCiAgIF9mdGltZSgpIGNhbGwgaW4gdGhhdCBmaWxlLgoKMjAxMC0wMS0yNCAxMDo0MyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBUaGUgbWFjcm8gJ0MoKScgbm93IGNhc3RzIGl0cyByZXN1bHQgZnJvbSB1bnNpZ25lZCBsb25nIHRvCiAgIHVuc2lnbmVkIGludC4KICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBtaXNtYXRjaGVzCiAgIGFuZCBmaXhlcyBhIGJ1ZyAoaW5jb3JyZWN0IHNubXBuZXRzdGF0IG91dHB1dCkgb24gYmlnIGVuZGlhbgogICBzeXN0ZW1zLgoKMjAxMC0wMS0yNCAxMDozMyAgYnZhc3NjaGUKCiAgICogbWFuL2NvbmZpZ19hcGkuMzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTQ2OiByZW1vdmVkIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbQogICByZXBvc2l0b3J5LgoKMjAxMC0wMS0yNCAxMDozMSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNb3ZlZCB0d28gZGVjbGFyYXRpb25zIG9mIHN0YXRpYyBmdW5jdGlvbnMgZnJvbSAuaCB0byAuYy4KCjIwMTAtMDEtMjQgMTA6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCjIwMTAtMDEtMjQgMTA6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGJ1aWxkcyBhZ2FpbiB3aGVuIEhBVkVfR0VUQUREUklORk8gaXMgbm90CiAgIGRlZmluZWQuCgoyMDEwLTAxLTI0IDEwOjAzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgIAogICAgICBzbm1wbGliL2luZXRfbnRvcC5oLCBzbm1wbGliL2luZXRfcHRvbi5jLCBzbm1wbGliL2luZXRfcHRvbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0cyBmb3IgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpLgogICAtIEFkZGVkIGhlYWRlciBmaWxlcyBzbm1wbGliL2luZXRfbnRvcC5oIGFuZCBzbm1wbGliL2luZXRfcHRvbi5oLgogICAtIFJlcGxhY2VkICJleHRlcm4gaW5ldF9udG9wKC4uLik7IiBhbmQgImV4dGVybiBpbmV0X3B0b24oLi4uKTsiCiAgIGJ5ICNpbmNsdWRlICJpbmV0X250b3AvcHRvbi5oIi4KICAgLSBDb252ZXJ0ZWQgc25tcGxpYi9pbmV0X250b3AuYyBhbmQgc25tcGxpYi9pbmV0X3B0b24uYyBmcm9tIEsmUgogICBDIHRvIEFOU0kgQy4KICAgLSBSZXBsYWNlZCB0aGUgaW5ldF9hdG9uKCkgY2FsbHMgdGhhdCB3ZXJlIGludHJvZHVjZWQgaW4gcjE4MDMzCiAgIGluIHNubXBsaWIvc25tcFVEUERvbWFpbi5jIGJ5IGluZXRfcHRvbigpIGNhbGxzIHN1Y2ggdGhhdCBpdCBpcwogICBhZ2FpbiBwb3NzaWJsZSB0byBidWlsZCBOZXQtU05NUCBvbiBXaW5kb3dzLgoKMjAxMC0wMS0yNCAwNjowOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyB0aGF0IGRvbid0CiAgIGV4aXN0IG9yIGFyZSBkZWNsYXJlZCBlbHNld2hlcmUuCgoyMDEwLTAxLTI0IDA1OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmVkIHRoZSB1bnVzZWQgdmFyaWFibGVzIHdhcm1fc3RhcnRfb2lkLAogICBsaW5rX2Rvd25fb2lkLCBsaW5rX3VwX29pZCwgYXV0aF9mYWlsX29pZCBhbmQgZWdwX3h4eF9vaWQuCgoyMDEwLTAxLTIzIDIyOjA2ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmV0dGVyIHNldCBvZiBTS0lQSUYvU0tJUElGTk9UUwoKMjAxMC0wMS0yMyAyMDozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmUgY29ycmVjdCBpbiB3aGF0IGl0IGlzIHRoYXQgaXMgdGVzdGVkIGluIHRoZSBoZWFkZXIuCgoyMDEwLTAxLTIzIDIwOjI3ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgY29tMnNlYyBkaXJlY3RpdmVzIHRvIGZhaWwgaWYgdGhlcmUKICAgYXJlIHRvbyBmZXcgYXJndW1lbnRzLiBBZGRpdGlvbmFsbHkgY2hhbmdlZCB0aGUgc3RvcmFnZSBzdHJ1Y3R1cmUKICAgdG8gbm90IGFsbG9jYXRlIG1vcmUgc3BhY2UgdGhhbiBuZWNlc3NhcnkuCgoyMDEwLTAxLTIzIDIwOjIyICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgbmV3IHRlc3RzIGNoZWNraW5nIHRoZSBlcnJvciBoYW5kbGluZyBvZiB0aGUgY29tMnNlYyogZGlyZWN0aXZlcwoKMjAxMC0wMS0yMyAxOToxNyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDI1OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjMgMTc6NTEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IE9TIGhlYWRlciBkZXRlY3Rpb24gY2hlY2sgaXMgbm93IHJ1biBiZWZvcmUKICAgSVB2NiBzdGFjayBkZXRlY3Rpb24uCiAgIENIQU5HRVM6IFNvbGFyaXM6IHNvY2thZGRyX2luNi5zaW42X2FkZHIgY29uZmlndXJlIHRlc3QgZG9lcyBub3cKICAgd29yay4KCjIwMTAtMDEtMjMgMTc6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBGaXhlZCBhIFNvbGFyaXMtc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDEtMjMgMTc6MDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIE1pbkdXOiBhZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgPHN5cy90aW1lYi5oPiBhbmQgYWxzbyBmb3Igc3RydWN0CiAgIHRpbWV6b25lLgoKMjAxMC0wMS0yMyAxNjozMiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTWluR1c6IG1hZGUgc3VyZSB0aGF0IHRoZSBJUHY2LXJlbGF0ZWQgZGF0YXR5cGVzIGFyZSBhdmFpbGFibGUKICAgYmVmb3JlIGJlaW5nIHVzZWQuCgoyMDEwLTAxLTIzIDE2OjMwICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgI3VuZGVmIEhBVkVfV0lORE9XU19ILgoKMjAxMC0wMS0yMyAxNjoyOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nCiAgIHByb3RvdHlwZSBmb3IgaXNkaWdpdCgpLgoKMjAxMC0wMS0yMyAxNjoyNCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIE1pbkdXOiBpcGhscGFwaS5oIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTIzIDE1OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBSZW5hbWVkIHRoZSBXaW5zb2NrMiBJUHY2IHN0YWNrIGZyb20gJ21pbmd3JyBpbnRvICd3aW5zb2NrMicuCgoyMDEwLTAxLTIzIDE1OjA3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBiZXR3ZWVuIHRoZSBzdXBwb3J0ZWQgV2luMzIgY29tcGlsYXRpb24KICAgZW52aXJvbm1lbnRzIGFzIGZvbGxvd3M6CiAgIC0gTWFkZSBzdXJlIHRoYXQgdGhlIDx3aW5zb2NrMi5oPiBhbmQgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlcwogICBhcmUgb25seSBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBjb25maWd1cmUgY2hlY2sgZm9yIDxpcGhscGFwaS5oPi4KICAgLSBSZXBsYWNlZCBzZXZlcmFsIFdJTjMyIC8gY3lnd2luIHRlc3RzIGJ5IGEgSEFWRV9JUEhMUEFQSV9ICiAgIHRlc3QuCiAgIC0gRG9jdW1lbnRlZCB0aGF0IHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGlzIG9ubHkgdXNlZAogICBmb3IgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTAxLTIyIDE2OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxMDogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KICAgNi4KCjIwMTAtMDEtMjIgMTY6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oOgoKICAgRm9sbG93IHVwIGZvciByMTgwMTY6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMiAxNDoxMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDE2OiBtYWRlIE1pbkdXIGxpYmlwaGxwYXBpIGNoZWNrIG1vcmUgcm9idXN0LgoKMjAxMC0wMS0yMiAxMzozMiAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgYWNsb2NhbC5tNCwgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAKICAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBNaW5HVzogd2luRXh0RExMIGNvbXBpbGVzIG5vdyB1bmRlciBNaW5HVy4KICAgQ0hBTkdFUzogTWluR1c6IGJ1aWxkaW5nIE5ldC1TTk1QIHdvcmtzIGFnYWluLgogICAKICAgRGV0YWlsZWQgb3ZlcnZpZXc6CiAgICogQ2hhbmdlcyBpbiB0aGUgY29uZmlndXJlIHNjcmlwdDoKCiAgIC0gc29ja2V0KCkgbGlicmFyeSBjaGVjayBwYXNzZXMgYWdhaW4gb24gTWluR1cuCiAgIC0gQWRkZWQgbGlicmFyeSBjaGVja3MgZm9yIGxpYndzMl8zMiwgbGlicmVnZXggYW5kIGxpYnNubXBhcGkuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSB3aW5zb2NrMi5oIGFuZCB3czJ0Y3BpcC5oIGhlYWRlciBmaWxlcy4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIGNob3duKCkgYW5kIGxvY2FsdGltZV9yKCkgZnVuY3Rpb25zLgogICAtIHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNoZWNrIGRvZXMgbm93IHdvcmsgb24gTWluR1cuCiAgIC0gQWRkZWQgSVB2NiBzdGFjayB0eXBlIGNhbGxlZCAibWluZ3ciLgogICAqIFNvdXJjZSBjb2RlIGNoYW5nZXM6CgogICAtIEluY2x1ZGUgPHdpbnNvY2syLmg+IGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IGluc3RlYWQgb2YKICAgPHdpbnNvY2suaD4KICAgdW5kZXIgTWluR1cgc3VjaCB0aGF0IElQdjYgc3VwcG9ydCBpcyBhdmFpbGFibGUuCiAgIC0gTW92ZWQgI2luY2x1ZGUgPHdpbnNvY2suaD4gZnJvbSAuYyBmaWxlcyB0byA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgYSBjb3B5IG9mIHRoZSBNaW5HVyBoZWFkZXIgZmlsZSA8c25tcC5oPiAod2hpY2ggaXMgbm90CiAgIGNvcHlyaWdodGVkKQogICBhcyB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLgogICAtIGFnZW50OiBvbmx5IGNhbGwgY2hvd24oKSB3aGVuIGF2YWlsYWJsZSAoSEFWRV9DSE9XTikuCiAgICogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzOiB1cGRhdGVkIFJFQURNRS53aW4zMi4KCgoyMDEwLTAxLTIyIDA4OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY2FzdCBmcm9tIGNoYXIqIHRvIGNoYXIqCgoyMDEwLTAxLTIyIDAwOjM5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IGZpbGUgdXBkYXRlIGZvciBTUEFSVEEsIEluYy4KCjIwMTAtMDEtMjIgMDA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgYWRkIHByb3BlciBwcmVmaXhlcyBpbiBUU00gZm9yIFNTSCwgRFRMUywgZXRjLCBiYXNlZCBvbiB0aGUKICAgZG9tYWluCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgNS41IGJyYW5jaAoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtaW5vciBlY2hvIG91dHB1dCBjaGFuZ2UKCjIwMTAtMDEtMjEgMjA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNvbW1lbnQgbmV4dCB0byBjb2RlIGl0IGlzIHRhbGtpbmcgYWJvdXQ7IE5vIGNvZGUgY2hhbmdlCgoyMDEwLTAxLTIxIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5MjYzNzQ6IGZyb20gRWQgU3dpZXJrOiBmaXhlZCByZWFkaW5nIG9mCiAgIGlwQWRkcmVzc1RhYmxlIGZyb20gL3Byb2MvbmV0L2lmX2luZXQ2IG9uIExpbnV4CiAgIAogICBUaGUga2VybmVsIG1pZ2h0IHByb3ZpZGUgbG9uZ2VyIGZpZWxkcywgZXNwZWNpYWxseSBvbiA2NC1iaXQKICAgc3lzdGVtcy4KCjIwMTAtMDEtMjAgMTI6NDIgIGJ2YXNzY2hlCgogICAqIFBPUlRJTkcsIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGaXhlZCB0eXBvOiByZXBsYWNlZCAnbmVjaXNzYXJ5JyBieSAnbmVjZXNzYXJ5Jy4KCjIwMTAtMDEtMjAgMDg6NTMgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBGaXggbWlub3IgdHlwbyBpbiBtYW4gcGFnZSwgaXQncyBzbm1wbmV0c3RhdCAtQ3AsIG5vdCAtQ1AuCgoyMDEwLTAxLTE0IDEyOjM0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogZml4ZWQgbWVtb3J5IGxlYWsgaW4gUk1PTi1NSUIgYW5kIEVUSEVSTElLRS1NSUIgd2hlbgogICB0aGVyZSBhcmUgbXVsdGlwbGUgYWxpYXNlcyBvZiBhbiBuZXR3b3JrIGludGVyZmFjZQogICBSYXRpb25hbGU6IHRoZSBhbGlhc2VkIGludGVyZmFjZXMgaGF2ZSB0aGUgc2FtZSBpZkluZGV4IC0+CiAgIENPTlRBSU5FUl9JTlNFUlQgZmFpbHMsIGJ1dCB0aGUgcmVqZWN0ZWQgZW50cnkgd2FzIG5vdCBmcmVlZC4KCjIwMTAtMDEtMTMgMTE6MjEgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIGluIGlwQWRkcmVzc1ByZWZpeFRhYmxlCiAgIC0gbmV0X3NubXBfc2VhcmNoX3VwZGF0ZV9wcmVmaXhfaW5mbyByZXR1cm5zIGRpZmZlcmVudCBjb2RlLCB3aGVuCiAgIHRoZSBlbnRyeSB3YXMgbm90IGluc2VydGVkIHRvIGxpc3QgYW5kIGNhbiBiZSBmcmVlZC4KCjIwMTAtMDEtMTIgMDA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkOiBydW4gcnBtIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGhyX3N3aW5zdCByZXdyaXRlCiAgIChycG0KICAgdmVyc2lvbiBvbmx5KQoKMjAxMC0wMS0xMSAyMzo1OCAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIFBFUkxMRE9QVFNfRk9SX0FQUFMgdG8gYWdlbnR4dHJhcCBsaW5rIGxpbmUgKGZpeGVzCiAgICJsaWJwZXJsLnNvIG5vdAogICBmb3VuZCIgZXJyb3JzKQoKMjAxMC0wMS0xMSAwMDoxMSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIGdldCByaWQgb2YgdXNpbmcgZGVwcmVjYXRlZCBzeW50YXggZm9yIHRyYXAvaW5mb3JtIHNpbmtzCgoyMDEwLTAxLTA4IDA4OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogb2Jzb2xldGVkIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRy4KICAgRnJvbSBub3cgb24gdXNpbmcgU0lHQUxSTSB0byB0cmlnZ2VyIE5ldC1TTk1QIGFsYXJtIGhhbmRsZXJzIGlzCiAgIG5vIGxvbmdlciBzdXBwb3J0ZWQuCiAgIAogICBNb3RpdmF0aW9uOiBhcyBrbm93biBsaWJuZXRzbm1wIHN1cHBvcnRzIHRpbWUtYmFzZWQgYWxhcm1zIHZpYQogICB0aGUgZnVuY3Rpb25zCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSwgcnVuX2FsYXJtcygpIGFuZCBvdGhlciBmdW5jdGlvbnMuIFR3bwogICBkaWZmZXJlbnQgd2F5cyB0bwogICB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkgYXJlIHN1cHBvcnRlZCBpbnNpZGUKICAgbGlibmV0c25tcDoKICAgMS4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgdGltZW91dCBhcmd1bWVudCBvZiBzZWxlY3QoKSBpcyBzbWFsbAogICBlbm91Z2ggc3VjaAogICB0aGF0IHNlbGVjdCgpIHJldHVybnMgYmVmb3JlIHRoZSBuZXh0IGFsYXJtIG11c3QgYmUgaGFuZGxlZCAod2hlbgogICB0aGUKICAgdmFyaWFibGUgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldCB0byBvbmUsIHdoaWNoCiAgIGlzIHRoZQogICBkZWZhdWx0KS4KICAgMi4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUga2VybmVsIGZpcmVzIFNJR0FMUk0gYXQgdGhlIHRpbWUgd2hlbgogICBydW5fYWxhcm1zKCkKICAgc2hvdWxkIGJlIGNhbGxlZCAod2hlbiB0aGUgdmFyaWFibGUKICAgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldAogICB0byB6ZXJvLCB3aGljaCBoYXMgdG8gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5KS4KICAgCiAgIFRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlY29uZCBhcHByb2FjaDoKICAgMS4gQWxhcm0gZnVuY3Rpb25zIGFyZSB1c2VkIGluc2lkZSBOZXQtU05NUCB0byBlLmcuIHJlZnJlc2gKICAgY2FjaGVkIHRhYmxlCiAgIGNvbnRlbnRzLiBBcyBmYXIgYXMgSSBjYW4gc2VlIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlCiAgIHRoYXQgcHJldmVudHMgdGhlIGZvbGxvd2luZyBmcm9tIGhhcHBlbmluZzogYSB0YWJsZSByZWZyZXNoCiAgIHRyaWdnZXJlZCB2aWEKICAgU0lHQUxSTSB3aGlsZSBhIHJvdyBpcyBiZWluZyByZW1vdmVkIGZyb20gYSBjYWNoZWQgdGFibGUuIFRoaXMKICAgY2FuIHJlc3VsdAogICBpbiBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgZXZlbiBhIGNyYXNoLgogICAyLiBQT1NJWCByZXN0cmljdHMgc2lnbmFsIGhhbmRsZXJzIHRvIGNhbGxpbmcgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIGVpdGhlciByZWVudHJhbnQKICAgb3Igbm9uLWludGVycnVwdGlibGUKICAgKGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMveHNoX2NoYXAwMl8wNC5odG1sI3RhZ18wMl8wNCkuCiAgIFN0YW5kYXJkIEkvTyBmdW5jdGlvbnMgbGlrZSBwcmludGYoKSBhbmQgZnByaW50ZigpIGFyZSBuZWl0aGVyCiAgIHJlZW50cmFudCBub3IKICAgbm9uLWludGVycnVwdGlibGUuIHJ1bl9hbGFybXMoKSBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwKICAgaGFuZGxlciwgd2hpY2gKICAgbWVhbnMgdGhhdCB0aGlzIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKQogICBpdHNlbGYgYW5kCiAgIGFsbCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGl0ICh3aGljaCBpbmNsdWRlcyB0aGUgYWxhcm0gY2FsbGJhY2sKICAgZnVuY3Rpb25zKS4KICAgT3I6IGUuZy4gc25tcF9sb2coKSBhbmQgaXRzIGNhbGxlcnMgbXVzdCBub3QgYmUgY2FsbGVkIGZyb20KICAgaW5zaWRlIHJ1bl9hbGFybXMoKQogICB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzCiAgIGlzIGEgc2V2ZXJlCiAgIHJlc3RyaWN0aW9uLCBhbmQgb25lIHRoYXQgaXMgaGFyZCB0byB3b3JrIHdpdGguCiAgIDMuIE5vdCBhbGwgc29mdHdhcmUgZGV2ZWxvcGVycyBrbm93IGhvdyB0byBtYWtlIHN1cmUgdGhhdCBzaWduYWwKICAgZGVsaXZlcnkgd29ya3MKICAgY29ycmVjdGx5IGluIGEgbXVsdGl0aHJlYWRlZCBjb250ZXh0LiBQT1NJWCBkb2VzIG5vdCBndWFyYW50ZWUgdG8KICAgd2hpY2ggdGhyZWFkCiAgIGEgc2lnbmFsIGxpa2UgU0lHQUxSTSB3aWxsIGJlIGRlbGl2ZXJlZCwgdW5sZXNzIHRoYXQgc2lnbmFsIGhhcwogICBiZWVuIGJsb2NrZWQKICAgYmVmb3JlIHRocmVhZCBjcmVhdGlvbiBhbmQgaXMgdW5ibG9ja2VkIGFmdGVyIHRocmVhZCBjcmVhdGlvbgogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9wdGhyZWFkX3NpZ21hc2suaHRtbCkuCiAgIFRoaXMgaXMgcmVsZXZhbnQgZm9yIHRoZSBOZXQtU05NUCBwcm9qZWN0IG5vdCBvbmx5IGJlY2F1c2UgYQogICB3b3JrZXIgdGhyZWFkIGlzCiAgIGNyZWF0ZWQgaW5zaWRlCiAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYyBidXQgYWxzbwogICBiZWNhdXNlIGxpYm5ldHNubXAgaXMgb2Z0ZW4gdXNlZCBpbnNpZGUgbXVsdGl0aHJlYWRlZCBzb2Z0d2FyZS4KICAgQ3VycmVudGx5IG5vCiAgIGF0dGVtcHQgaXMgbWFkZSB0byBtYWtlIHN1cmUgdGhhdCBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSB0aGUKICAgTmV0LVNOTVAgZXZlbnQKICAgcHJvY2Vzc2luZyBsb29wIHRocmVhZC4gSWYgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgYW5vdGhlcgogICB0aHJlYWQsIHRoaXMgd2lsbAogICByZXN1bHQgaW4gb25lIG9yIG1vcmUgZGF0YSByYWNlcy4KICAgCiAgIEJlY2F1c2UgYWxsIHRoZSBkaWZmaWN1bHRpZXMgYXNzb2NpYXRlZCB3aXRoIHByb2Nlc3NpbmcgYWxhcm1zCiAgIGZyb20gaW5zaWRlIGEKICAgc2lnbmFsIGhhbmRsZXIgZnVuY3Rpb24sIGFuZCBiZWNhdXNlIGZpeGluZyB0aGVzZSB3b3VsZCByZXF1aXJlCiAgIG1vcmUgZWZmb3J0IHRoYW4KICAgaXQgaXMgd29ydGgsIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBoYXMgYmVlbgogICBkZXByZWNhdGVkIGFuZCBmcm9tIG5vdwogICBvbiBhcHByb2FjaCAoMSkgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGFwcHJvYWNoIHRvIHRyaWdnZXIgYWxhcm0KICAgaGFuZGxlcnMuCgoyMDEwLTAxLTA3IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUGF0Y2ggZnJvbSBTdGVwaGVuIEhlbW1pbmdlciB0byBmaXggYSBtaW5vciBtZW1sZWFrIGluIGNwdQogICBzeXNjdHJsIGZldGNoaW5nCgoyMDEwLTAxLTA3IDE2OjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgUmVtb3ZlZCByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCBhbmQgbWFkZSBzdXJlIHRoYXQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAnXDAnLXRlcm1pbmF0ZXMgdGhlIG91dHB1dCBidWZmZXIKICAgaW4gYWxsIGNhc2VzLgogICBVcGRhdGVkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMuCgoyMDEwLTAxLTA3IDE0OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFJlbW92ZWQgdGhyZWUgc3VwZXJmbHVvdXMgY2FzdHMgYmVjYXVzZSB0aGVzZSB0cmlnZ2VyZWQgYQogICBjb21waWxlciB3YXJuaW5nCiAgIHdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDLgoKMjAxMC0wMS0wNyAxMzoyOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgdGhlIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgY2hhbmdlcyBmcm9tIHIxNzk5MgogICBiZWNhdXNlIHRoZXNlCiAgIGNhdXNlZCB0aGUgZm9sbG93aW5nIFZhbGdyaW5kIGNvbXBsYWludCBkdXJpbmcgc25tcGQgc3RhcnR1cDoKICAgCiAgID09MjUyMDE9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkCiAgIHZhbHVlKHMpCiAgID09MjUyMDE9PSBhdCAweDQwNDdCMTQ6IG5ldHNubXBfc2VuZF90cmFwcyAoYWdlbnRfdHJhcC5jOjc5OCkKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODEyODogc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycwogICAoYWdlbnRfdHJhcC5jOjg1MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODE5RDogc2VuZF90cmFwX3ZhcnMgKGFnZW50X3RyYXAuYzo5NjMpCiAgID09MjUyMDE9PSBieSAweDQwNDgyNUI6IHNlbmRfZWFzeV90cmFwIChhZ2VudF90cmFwLmM6MTAxMSkKICAgPT0yNTIwMT09IGJ5IDB4ODA0QjVEMjogbWFpbiAoc25tcGQuYzozOTQpCgoyMDEwLTAxLTA3IDEyOjMwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA3IDEyOjE5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYXNzaWduaW5nIGEgY2hhciAqIHBvaW50ZXIgdG8KICAgc3lzT1JUYWJsZTo6T1JfZGVzY3IgZG9lcyBvciBkb2VzIG5vdCB0cmFuc2ZlcgogICBvd25lcnNoaXAuIFNvIHdoZXRoZXIgT1JfZGVzY3IgaXMgZGVjbGFyZWQgYXMgY2hhciAqIG9yIGFzIGNvbnN0CiAgIGNoYXIgKiwgdGhlcmUgd2lsbCBhbHdheXMgYmUgYXQKICAgbGVhc3Qgb25lIHN0YXRlbWVudCBvbiB3aGljaCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgY2hhcgogICAqICAvIGNvbnN0IGNoYXIgKiBtaXNtYXRjaC4gVGhlIG9ubHkgICAgc29sdXRpb24gaXMgdG8gY2FzdCBhd2F5CiAgICAgIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlIHRvIG1ha2Ugc3VyZSAgICB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICAgICBjb21wbGFpbiwgICAgYXMgaW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaC4gIDIwMTAtMDEtMDcgMTE6NDYgCiAgICAgIGJ2YXNzY2hlCgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzbV9zYXZlX3VzZXIoKTogd2hlbiB3cml0aW5nIHVzZXItPm5hbWUgYW5kIHVzZXItPnNlY05hbWUsIG9ubHkKICAgd3JpdGUgdGhlIEFTQ0lJIGRhdGEgYW5kIG5vdCB0aGUKICAgdGVybWluYXRpbmcgJ1wwJy4gU2luY2UgYm90aCBpdGVtcyBhcmUgcmVhZCBieSBjYWxsaW5nCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIHdyaXRpbmcKICAgdGhlIHRlcm1pbmF0aW5nICdcMCcgaXMgbm90IG5lY2Vzc2FyeSB0byBndWFyYW50ZWUgdGhhdCB0aGUgZGF0YQogICByZWFkIGJhY2sgaXMgdGVybWluYXRlZCBwcm9wZXJseS4KCjIwMTAtMDEtMDcgMDk6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCk6IHVudGlsCiAgIG5vdyB0aGlzCiAgIGZ1bmN0aW9uIHRlcm1pbmF0ZWQgdGhlIG91dHB1dCBidWZmZXIgaW4gc29tZSBjYXNlcyB3aXRoICdcMCcKICAgKHdoZW4gdGhlCiAgIGlucHV0IHdhcyBpbiB0aGUgZm9ybWF0IDB4Li4uIGFuZCBhIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCBhbmQKICAgYWxzbwogICB3aGVuIHRoZSBpbnB1dCB3YXMgaW4gQVNDSUkgZm9ybWF0LCBidXQgbm90IHdoZW4gdGhlIGlucHV0IHdhcyBpbgogICBmb3JtYXQKICAgMHguLi4gYW5kIG5vIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCkuIENoYW5nZWQgdGhpcyBzdWNoIHRoYXQKICAgdGhpcwogICBmdW5jdGlvbiBkb2VzIG5vIGxvbmdlciB0ZXJtaW5hdGUgdGhlIGlucHV0IGJ1ZmZlciB3aXRoICdcMCcuCiAgIFRoaXMKICAgY2hhbmdlIHdhcyBwb3NzaWJsZSBiZWNhdXNlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbGwKICAgY2FsbGVycyB0aGF0CiAgIG5lZWRlZCBhICdcMCcgdGVybWluYXRlZCBzdHJpbmcgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB1c2UKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBpbnN0ZWFkLgoKMjAxMC0wMS0wNiAxNzo1MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTY4IGFuZCByMTc5NzIuCgoyMDEwLTAxLTA2IDE1OjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiB0aGUgY29uc3QKICAga2V5d29yZC4KCjIwMTAtMDEtMDYgMTU6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNiAxNTozNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZCBpbiByMTc5NzUuCgoyMDEwLTAxLTA2IDE1OjMzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTU6MzEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB0aGUgZnVuY3Rpb25zIHJlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCkgYW5kCiAgIHNubXBkX3JlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCksIHdoaWNoCiAgIGFjY2VwdCBhIHBhcnNlciBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgc3RyaW5nIHRoYXQgaXQKICAgcGFyc2VzLiBVc2luZyB0aGVzZSBmdW5jdGlvbnMgcmVzdWx0cwogICBpbiBlYXNpZXIgdG8gcmVhZCBjb2RlIHRoYW4gdXNpbmcgdGhlIG5vbi1jb25zdCBoYW5kbGVyCiAgIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgYW5kIGNhc3RpbmcgdGhlIHBhcnNlcgogICBmdW5jdGlvbiBleHBsaWNpdGx5IGZyb20gKHZvaWQoKikoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKSkgdG8KICAgKHZvaWQoKikoY29uc3QgY2hhciosIGNoYXIqKSkuCgoyMDEwLTAxLTA2IDE1OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgcmVhZF9jb25maWdfcmVhZF9vYmppZF9jb25zdCgpLgoKMjAxMC0wMS0wNiAxNDo0MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDozNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBGb3IgdGhvc2UgVkFDTSBmdW5jdGlvbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSBzdHJpbmdzIHBhc3NlZCBhcwogICBhcmd1bWVudHMsCiAgIGNoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogdG8gY29uc3QgY2hhciAqLgoKMjAxMC0wMS0wNiAxNDoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYzoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAxMC0wMS0wNiAxNDoxNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmg6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0CiAgIHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE0OjA0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBuZXcgZnVuY3Rpb25zIHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSwKICAgc2tpcF90b2tlbl9jb25zdCgpLCBjb3B5X253b3JkX2NvbnN0KCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkuCiAgIC0gQ2hhbmdlZCByZXR1cm4gdHlwZSBvZiByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGZyb20KICAgY2hhciAqIHRvCiAgIGNvbnN0IGNoYXIgKi4gTm90ZTogdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgc2luY2UgdGhpcwogICBmdW5jdGlvbiBoYXMgbm90IHlldCBiZWVuIGluY2x1ZGVkIGluIGFueSByZWxlYXNlLgogICAtIEZpeGVkIGRvY3VtZW50YXRpb24gb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KICAgLSBSZWR1Y2VkIG51bWJlciBvZiBjYXN0LWF3YXktY29uc3QgY29uc3RydWN0cyBpbiByZWFkX2NvbmZpZy5jLgoKMjAxMC0wMS0wNiAxMzozNSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBSZWZpbmVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKToKICAgd2hlbiB1c2luZwogICB0aGUgZ2NjIGNvbXBpbGVyLCBpdCBpcyBub3cgdmVyaWZpZWQgd2hldGhlciB0aGUgdHlwZXMgKGNvbnN0IHQpCiAgIGFuZCB0eXBlb2YoZSkKICAgYXJlIGNvbXBhdGlibGUsIHdoZXJlIHQgaXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBlIHRoZSBzZWNvbmQKICAgYXJndW1lbnQgb2YKICAgdGhpcyBtYWNyby4KCjIwMTAtMDEtMDYgMTM6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oOgoKICAgQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2CiAgIGJ5dGVzIHRvIGF0VGFibGUuIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMKICAgd2l0aCA5IGFuZCBtb3JlIGJ5dGVzLgoKMjAxMC0wMS0wNiAxMjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MjQxNDA6IEZpeCB0ZXJtaW5hdGlvbiBvZiBDUFUvRlBVIHR5cGVzCgoyMDEwLTAxLTA2IDEyOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTIyMzkwOiBGaXggdGVzdCBmb3IgbWlzc2luZyBjb250ZXh0TmFtZQogICBwYXJhbWV0ZXIKCjIwMTAtMDEtMDYgMTE6NTcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9zbm1wX3BlcmwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ2hhbmdlczoKICAgLSBJbnRyb2R1Y2VkIGEgbmV3IG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgdGhhdCBhbGxvd3MgdG8KICAgY2FzdAogICBhd2F5IGNvbnN0bmVzcyB3aXRob3V0IHRoYXQgZ2NjIC1XY2FzdC1xdWFsIHJlcG9ydHMgYSB3YXJuaW5nLgogICAtIE1hZGUgY2FzdGluZyBhd2F5IGNvbnN0bmVzcyBleHBsaWNpdCBieSBpbnRyb2R1Y2luZyB0aGUKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBtYWNyby4gVGhpcyBzdXBwcmVzc2VzIHRoZSB3YXJuaW5nCiAgIGdjYyAtV2Nhc3QtcXVhbCBwcmludGVkIGZvciB0aGVzZSBzdGF0ZW1lbnRzLgoKMjAxMC0wMS0wNiAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDA5OjE0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBub3QgdXNlIDAgd2hlbiByZWZlcnJpbmcgdG8gTlVMTC4KCjIwMTAtMDEtMDYgMDg6MjYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZXMgb2YgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZAogICBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKICAgZnJvbSBzdHJ1Y3QgdGltZXZhbCAqIHRvIGNvbnN0IHN0cnVjdCB0aW1ldmFsICouIE5vdGU6IHRoaXMgZG9lcwogICBub3QgYWZmZWN0CiAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMC0wMS0wNiAwODoyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDaGFuZ2VzIChubyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vZGlmaWVkKToKICAgLSBSZW1vdmVkIGRpc2tpb19wYXJzZV9jb25maWcoKSBkZWNsYXJhdGlvbiBiZWNhdXNlIHRoYXQgZnVuY3Rpb24KICAgaXMgbmVpdGhlciBjYWxsZWQgbm9yIGRlZmluZWQgaW4gdGhlIHNvdXJjZSBmaWxlIGRpc2tpby5jLgogICAtIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBnZXRzdGF0cygpIHN1Y2ggdGhhdCBnY2MgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uLgogICAtIExpbnV4OiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgZ2V0c3RhdHMoKSBmcm9tIGdsb2JhbCB0byBzdGF0aWMKICAgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIEJTRCBhbmQgRGFyd2luIGltcGxlbWVudGF0aW9ucyBvZgogICBnZXRzdGF0cygpLgoKMjAxMC0wMS0wNiAwODowMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDAyOjE4ICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgbWFuL01ha2VmaWxlLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYXBwczogT25seSBidWlsZCBhZ2VudHh0cmFwIGlmIHRoZSBhZ2VudHggbGlicmFyaWVzIGFyZQogICBidWlsdC4gQWRkIGEgdGVzdCBjYXNlIGZvciBhZ2VudHh0cmFwLgogICAKICAgVGhlIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgaXMgaW5zcGllcmVkIGJ5IGF1dG9tYWtlIGNvbmRpdGlvbmFscwoKMjAxMC0wMS0wNiAwMTo1OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdGFydHRpbWUuCgoyMDEwLTAxLTA1IDIyOjU0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIENIQU5HRVM6IEhpZGUgbW9zdCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBpbiB0aGUgbG9nbWF0Y2gKICAgbW9kdWxlLiBDbGVhbmVkIHVwIHRoZSBoZWFkZXIgYWNjb3JkaW5nbHkuIFJlbW92ZSB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMgYnkgcmVvcmRlcmluZyB0aGUgZnVuY3Rpb25zLgoKMjAxMC0wMS0wNSAyMjozMyAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHUzogMjkxOTM3OTogSW5pdGlhbGlzZSBTTk1QIHNlc3Npb25zIHByb3Blcmx5CiAgIFByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDEwLTAxLTA1IDIyOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkxOTMyMDogQXZvaWQgYWNjZXNzaW5nIGZyZWVkIG1lbW9yeQogICBSZXBvcnRlZCBieSBUb21hc3ogTGlzCgoyMDEwLTAxLTA1IDE4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkxNDQxMDogRml4IGNyYXNoIG9uIGVtcHR5IGNvbW1hbmQgbGluZXMKCjIwMTAtMDEtMDUgMTU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTEyNTg0OiBGaXggbnVsbCBPSUQgaGFuZGxpbmcgaW4gQWdlbnR4CiAgIG9uIDY0Yml0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEx1dHogSmFlbmlja2UKCjIwMTAtMDEtMDUgMTA6MTEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogaHB1eDogZml4IGJ1aWxkIGVycm9yIG9uIEhQLVVYIDEwLjIwCgoyMDEwLTAxLTA1IDA4OjQyICBqc2FmcmFuZWsKCiAgICogbWFuLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBSZW1vdmUgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTA0IDE2OjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkIHRoYXQgb2NjdXJyZWQgd2hlbiBhbiBBU0NJSQogICBzdHJpbmcgd2FzCiAgIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAvCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgYW5kIHRoZSB0aGlyZCBhcmd1bWVudCAoKmxlbikKICAgZXF1YWxzIDAuCgoyMDEwLTAxLTA0IDE2OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgJ2NvbnN0Jy4KCjIwMTAtMDEtMDQgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KCjIwMTAtMDEtMDQgMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGNvcnJlY3Qgb2lkIGxlbmd0aCBpbiB0YWJsZSBpbmRleGVzLgoKMjAxMC0wMS0wNCAwODoxMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBNYWRlIHN1cmUgdGhhdCBzbm1wX2FsYXJtLmMgY2FuIGJlIGNvbXBpbGVkIGFnYWluIHdpdGggQzg5CiAgIGNvbXBpbGVyczogZm9yIEM4OQogICBpdCBpcyByZXF1aXJlZCB0aGF0IGluaXRpYWxpemVycyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuCgoyMDEwLTAxLTAzIDE2OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmM6CgogICBSZW5hbWUgbmV0c25tcF9hcmNoX3RjcGNvbm5fZGVsZXRlIHRvCiAgIG5ldHNubXBfYXJjaF90Y3Bjb25uX2VudHJ5X2RlbGV0ZSBpbiBvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGgKICAgdGhlIGhlYWRlciBmaWxlIGFuZCBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlLgoKMjAxMC0wMS0wMyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIEFkZCBtaXNzaW5nIGRlY2xhcmF0aW9ucy4KCjIwMDktMTItMzAgMTI6NDkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkzMzogZml4ZWQgdGhlIGlzc3VlIHRoYXQgaW5jbHVkaW5nIHRoZSBoZWFkZXIKICAgZmlsZQogICA8bmV0LXNubXAvbGlicmFyeS90eXBlcy5oPiBmcm9tIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAgIHRyaWdnZXJzCiAgIGNvbXBpbGVyIGVycm9ycyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzIChjb21wbGFpbnRzIGFib3V0CiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBub3QgYmVpbmcgaW5jbHVkZWQgYmVmb3JlCiAgIDxuZXQtc25tcC90eXBlcy5oPikuCiAgIE5vdGU6IHRoaXMgZG9lcyBub3Qgc29sdmUgdGhlIHVuZGVybHlpbmcgcHJvYmxlbSB0aGF0IE1JQiBjb2RlCiAgIG11c3Qgbm90CiAgIGluY2x1ZGUgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC90eXBlcy5oPiBiZWNhdXNlIGRvaW5nIHNvIHdvdWxkCiAgIHRyaWdnZXIgYQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGR1cmluZyB0aGUgY29uZmlndXJlIHN0ZXAgKE1JQiBjb2RlIGlzCiAgIGNvbXBpbGVkIGR1cmluZwogICB0aGUgY29uZmlndXJlIHN0ZXAsIHdoaWxlIHRoZSBjb25maWd1cmUgc3RlcCBnZW5lcmF0ZXMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IGFuZCA8bmV0LXNubXAvdHlwZXMuaD4gbmVlZHMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KCjIwMDktMTItMzAgMTE6NDggIGJ2YXNzY2hlCgogICAqIGFwcHMsIG1hbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE5OiB1cGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAwOS0xMi0yOCAxODowMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQuIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGNvbXBpbGVyCiAgIHdhcm5pbmdzLgogICBOb3RlOiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb24sIHJlZ2lzdGVyX3N0cmluZ19pbmRleCgpLCBpc24ndAogICBjYWxsZWQgZnJvbQogICBhbnl3aGVyZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgaXRzZWxmLgoKMjAwOS0xMi0yMyAwOTo0OSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGludmFsaWQgcmVhZCByZXBvcnRlZCBieSB2YWxncmluZDoKICAgSW52YWxpZCByZWFkIG9mIHNpemUgMQogICBtZW1jcHkgKG1jX3JlcGxhY2Vfc3RybWVtLmM6NDAyKQogICBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWRfdjQKICAgKGlwYWRkcmVzc19pb2N0bC5jOjI0MCkKICAgbmV0c25tcF9hcmNoX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2xpbnV4LmM6MTU4KQogICBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19jb21tb24uYzoxMTIpCiAgIAogICBSZXR1cm5pbmcgc3RydWN0dXJlIHdpdGggcG9pbnRlcnMgaW5zaWRlIGlzIG5vdCB0aGUgYmVzdCB0aGluZyB0bwogICBkby4KCjIwMDktMTItMjIgMTY6MDUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBGaXhlZCBzZXZlcmFsIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KCjIwMDktMTItMjIgMTI6MDIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgUmV2ZXJ0ZWQgdGhlIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlcyBvZiByMTc5MTM6CiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8uCiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBmdW5jdGlvbnMKICAgY2FsY3VsYXRlX3RpbWVfZGlmZigpLAogICB1YXRpbWVfcmVhZHkoKSwgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgogICAtIHN0YXJ0dGltZSBpcyBhZ2FpbiBhIGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIG9uZS4KICAgQWxzbyBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gTW92ZWQgdGhlIG1hcmtlcl90IHR5cGVkZWYgZnJvbSBuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggdG8KICAgbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLgogICAtIEFkZGVkIGEgbmV3IHR5cGVkZWYsIGNvbnN0X21hcmtlcl90LgogICAtIEZvciB0aG9zZSBhdGltZV8qKCkgLyB1YXRpbWVfKigpIC8gKl90dGlja3MoKSBmdW5jdGlvbnMgdGhhdCBkbwogICBub3QgY2hhbmdlCiAgIHRoZWlyIGFyZ3VtZW50cywgZGVjbGFyZWQgdGhlc2UgYXJndW1lbnRzIGNvbnN0X21hcmtlcl90IGluc3RlYWQKICAgb2YgbWFya2VyX3QuCiAgIC0gUmVuYW1lZCBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgdG8KICAgbmV0c25tcF9nZXRfYWdlbnRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X2FnZW50X3N0YXJ0dGltZSgpCiAgIHJlc3BlY3RpdmVseS4gTW92ZWQgdGhlc2UgZnVuY3Rpb25zIGZyb20gdG9vbHMuYyB0byBzeXN0ZW0uYy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbiBhdGltZV9oc3VidHJhY3QoKSAod2FzIGludHJvZHVjZWQgaW4KICAgcjE3OTEzKSBhbmQKICAgaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbiwgbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKCkuCgoyMDA5LTEyLTIyIDA3OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCByMTc5MjYsIHdoaWNoIG1hZGUgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlZC4gQSBuZXcgcGF0Y2ggd2lsbAogICBmb2xsb3cKICAgdGhhdCBmaXhlcyB0aGUgY2FsbGVycyBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHRoYXQKICAgd2VyZQogICBhc3N1bWluZyB0aGF0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVzIHRoZQogICBzdHJpbmcKICAgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0yMSAxNDoyOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggY3Jhc2ggaW4gSUYtTUlCIGFuZCBJUC1NSUIgd2hlbiB0aGVyZSBhcmUKICAgc29tZSBpbnRlcmZhY2VzIHdpdGggYnJvYWRjYXN0IElQIGFkZHJlc3MgYW5kIHNvbWUgd2l0aG91dC4KICAgCiAgIFJlc2V0IHRoZSBiY2FzdGVudHJ5IGluIHRoZSBsb29wLCBzbyBpdCBjYW5ub3QgYmUgaW5zZXJ0ZWQgdG8gdGhlCiAgIGNvbnRhaW5lcgogICB0d2ljZS4KICAgCiAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aG91dCBicm9hZGNhc3QgYWRkcmVzcwogICBpcyBwcm9jZXNzZWQsCiAgIHRoZSBiY2FzdGFkZHJlc3MgZnJvbSBwcmV2aW91cyBsb29wIGlzIGluc2VydGVkIGludG8gdGhlCiAgIGNvbnRhaW5lci4gVGhpcwogICBvYnZpb3VzbHkgZmFpbHMgYW5kIHRoZSBiY2FzdGVudHJ5IGlzIGZyZWVkLCBidXQgdGhlIGNvbnRhaW5lcgogICBzdGlsbCBjb250YWlucwogICByZWZlcmVuY2UgdG8gaXQgLT4gU0lHU0VHVi4KCjIwMDktMTItMjEgMTM6NTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI4OiB3aGlsZSByMTc5MjggZml4ZWQgYSBkYW5nbGluZyBwb2ludGVyCiAgIGRlcmVmZXJlbmNlCiAgIGRldGVjdGVkIGJ5IHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHNvZnR3YXJlIG9uIFdpbmRvd3MsIHRoYXQgcGF0Y2gKICAgaW50cm9kdWNlZAogICBhIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2UgYWJvdXQgd2hpY2ggb25seSBWYWxncmluZCBvbiBMaW51eAogICBjb21wbGFpbmVkLgogICBUaGlzIGZvbGxvdy11cCBwYXRjaCBmaXhlcyBib3RoIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzCiAgIHRyaWdnZXJlZCBieQogICBwYXJzaW5nIHRoZSBwZXJzaXN0ZW50RGlyIGtleXdvcmQuCgoyMDA5LTEyLTIxIDEzOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTAxMTIyLiBDaGFuZ2VzOgogICAtIE5ldyBmZWF0dXJlOiBzcGVjaWZ5aW5nIEFTTiB0eXBlIFNOTVBfTk9TVUNISU5TVEFOQ0UgYXMgdGhlCiAgIHRoaXJkIGFyZ3VtZW50CiAgIG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSB3aWxsIGNhdXNlIGFuIFNOTVAgR2V0UmVxdWVzdCAvCiAgIEdldE5leHRSZXF1ZXN0IHRvCiAgIHJldHVybiB0aGUgZXJyb3IgY29kZSBub1N1Y2hJbnN0YW5jZSAoU05NUHYyKSBvciBub1N1Y2hOYW1lCiAgIChTTk1QdjEpLiBUaGlzCiAgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgYSBjYWNoZWQgdGFibGUgd2l0aCBvbmUgb3IgbW9yZQogICAiaG9sZXMiLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4KICAgbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIHZhbHVlCiAgIHNocnVuaywgdXNlCiAgIHJlYWxsb2MoKSBpbnN0ZWFkIG9mIGZyZWUoKSBhbmQgbWFsbG9jKCkuCgoyMDA5LTEyLTIxIDEyOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkxMjA1NTogbWFrZSBzdXJlCiAgIHRoYXQKICAgcGFyc2luZyB0aGUgInBlcnNpc3RlbnREaXIiIGtleXdvcmQgaW4gc25tcC5jb25mIGRvZXMgbm90IHRyaWdnZXIKICAgYQogICBkYW5nbGluZyBwb2ludGVyLiBUbyBteSBzdXJwcmlzZSBCb3VuZHNDaGVja2VyIGNvbXBsYWluZWQgYWJvdXQKICAgdGhpcwogICAob24gV2luZG93cyksIGJ1dCBWYWxncmluZCBkaWQgbm90IHJlcG9ydCB0aGlzIGlzc3VlIChvbiBMaW51eCkuCgoyMDA5LTEyLTIxIDEyOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyNSAoZml4IG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwKTogd2hpbGUKICAgcjE3OTI1IGZpeGVkCiAgIG9ubHkgdGhlIGxlYWsgdHJpZ2dlcmVkIGZyb20gaW5zaWRlIHRoZSBmb3ItbG9vcCwgdGhpcyBwYXRjaCBkb2VzCiAgIG5vdyBhbHNvCiAgIGZpeCB0aGUgbGVhayB0cmlnZ2VyZWQgYnkgdGhlIG5ldHNubXBfdGFibGVfZGF0YXNldF9hZGRfcm93KCkKICAgY2FsbCBuZWFyCiAgIHRoZSBlbmQgb2YgbG9nX25vdGlmaWNhdGlvbigpLgoKMjAwOS0xMi0yMSAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2MjogbWFrZSBzdXJlIHRoYXQgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGlzIHByb3Blcmx5IHRlcm1pbmF0ZWQsIHN1Y2ggdGhhdAogICB0aGUKICAgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIGRvIG5vdCB0cmlnZ2VyIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KICAgRm91bmQKICAgdGhpcyBpc3N1ZSB2aWEgQm91bmRzQ2hlY2tlci4KCjIwMDktMTItMjEgMTE6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjgsIHdoaWNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXAuCiAgIFRoZQogICBmdW5jdGlvbiBsb2dfbm90aWZpY2F0aW9uKCkgYWRkcyBhIHJvdyB0byB0aGUgdGFibGUKICAgbmxtTG9nVmFyVGFibGUsIGJ1dAogICB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoYXQgdGFibGUgaGFzIGJlZW4KICAgaW5pdGlhbGl6ZWQuIElmCiAgIHRoYXQgaGFwcGVucywgbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3IgYSByb3cgYnV0IHRoYXQgbWVtb3J5IGlzCiAgIG5ldmVyCiAgIGFkZGVkIHRvIHRoZSBjYWNoZWQgdGFibGUgZGF0YS4gVGhlIEJvdW5kc0NoZWNrZXIgdG9vbCByZXBvcnRlZAogICB0aGlzIGFzCiAgIGEgIm1lbW9yeSBsZWFrIGxlYXZpbmcgc2NvcGUiLgoKMjAwOS0xMi0yMSAxMDo1NCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgdGhlIGZvbGxvd2luZyB0ZXh0IHRvIHRoZSAiTGltaXRhdGlvbnMiIHNlY3Rpb24gb2YKICAgUkVBRE1FLndpbjMyOgogICAiV2hlbiB1c2luZyB3aW5FeHRETEwsIHRoZXJlIGlzIGFuIG9mZnNldCBvZiB1cCB0byBvbmUgc2Vjb25kCiAgIGJldHdlZW4gdGhlCiAgIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUgdmFyYmluZCBpbmNsdWRlZCBpbiB0aGUgdHJhcHMgZ2VuZXJhdGVkIGJ5CiAgIFNOTVAKICAgZXh0ZW5zaW9uIERMTHMgKGUuZy4gbGlua1VwIGFuZCBsaW5rRG93bikgYW5kIHRoZSB2YWx1ZSBvZiB0aGUKICAgc3lzVXBUaW1lCiAgIHZhcmJpbmQgaW5jbHVkZWQgaW4gdHJhcHMgZ2VuZXJhdGVkIGJ5IE5ldC1TTk1QIGl0c2VsZiAoZS5nLgogICBjb2xkU3RhcnQpLiIKCjIwMDktMTItMjEgMTA6MDkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBTcGVsbGluZyBmaXg6IHJlcGxhY2VkIGFsbCBvY2N1cnJlbmNlcyBvZiAnc3BlY2lmYycgYnkKICAgJ3NwZWNpZmljJy4KCjIwMDktMTItMjEgMTA6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUmVmYWN0b3Jpbmc6IGVsaW1pbmF0ZWQgZHVwbGljYXRlZCBjb2RlIGJ5IHJlaW1wbGVtZW50aW5nCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSB1c2luZyBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyKCkuIE5laXRoZXIgdGhlCiAgIE5ldC1TTk1QIEFQSSBub3IgdGhlIGJlaGF2aW9yIG9mIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSBoYXMgYmVlbgogICBjaGFuZ2VkLgoKMjAwOS0xMi0yMCAxMToxMCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvYWdlbnR4dHJhcC5jLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9hZ2VudHh0cmFwLjEuZGVmOgoKICAgTkVXUzogYXBwczogQWRkIGNvbW1hbmQgdG8gc2VuZCBBZ2VudFggbm90aWZ5IHJlcXVlc3RzIHRvIGEKICAgbWFzdGVyIGFnZW50LgoKMjAwOS0xMi0xNyAxNjo0NCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTcgLS0gYnVpbGRzIGFnYWluIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMTcgMTY6MDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkwMyAvIHBhdGNoIDI5MTEzMjMgIkZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nCiAgIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24iIChzdWJtaXR0ZWQgYnkgbXlzZWxmKS4gVGhhdCBwYXRjaAogICBkaWQgbm90IG9ubHkKICAgZml4IHRoZSBsb2NrdXAgYnV0IGFsc28gbWFkZSBzbm1wZCBwcmludCBhIHdhcm5pbmcgZHVyaW5nIHN0YXJ0dXAKICAgd2hlbgogICBpcXVlcnlTZWNOYW1lIHdhcyBub3QgY29uZmlndXJlZC4gVGhpcyB3YXJuaW5nIHdhcyBwcmludGVkIGV2ZW4KICAgd2hlbiBubwogICBpbnRlcm5hbCBxdWVyaWVzIHdlcmUgcGVyZm9ybWVkLiBUaGlzIHdhcm5pbmcgaXMgbm93IG9ubHkgcHJpbnRlZAogICBqdXN0IGJlZm9yZQogICB0aGUgZmlyc3QgaW50ZXJuYWwgcXVlcnkgaXMgbWFkZSAoZHVyaW5nIHRoZSBmaXJzdCBjYWxsIG9mCiAgIG5ldHNubXBfcXVlcnlfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIGluc3RlYWQgb2YgZHVyaW5nIGNyZWF0aW9uIG9mCiAgIHRoZSBpbnRlcm5hbAogICBzZXNzaW9uKS4KCjIwMDktMTItMTcgMTM6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmM6CgogICBSTU9OIE1JQiBzb3VyY2UgY29kZSBjb21waWxlcyBhZ2FpbiAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpIGFuZAogICBBR1VUSUxfc3lzX3VwX3RpbWUoKSBzdWNoIHRoYXQgdGhlc2UgZnVuY3Rpb25zIG5vcm1hbGl6ZSB0aGUKICAgdHZfdXNlYyBmaWVsZCBvZgogICBzdHJ1Y3QgdGltZXZhbCBwcm9wZXJseS4gTm90ZTogdGhpcyBzb3VyY2UgY29kZSBtb2RpZmljYXRpb24gZG9lcwogICBub3QgYWZmZWN0CiAgIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHR3byBmdW5jdGlvbnMuCgoyMDA5LTEyLTE3IDEzOjExICBidmFzc2NoZQoKICAgKiBtYW4vbmV0c25tcF91dGlsLjM6CgogICBSZW1vdmVkIGRvY3VtZW50YXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8gLS0gc2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjA1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ29udmVydGVkIHN0YXJ0dGltZSBmcm9tIGEgZ2xvYmFsIHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgYW5kIGFwcGxpZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIEFkZGVkIHR3byBuZXcgbWFjcm9zOiBORVRTTk1QX1RJTUVSQUREKCkgYW5kCiAgIE5FVFNOTVBfVElNRVJTVUIoKS4KICAgLSBBZGRlZCB0aHJlZSBuZXcgZnVuY3Rpb25zOiBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSwKICAgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgYW5kIGF0aW1lX2hzdWJ0cmFjdCgpLgogICAtIFJlcGxhY2VkIGdldHRpbWVvZmRheSgpICsgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGNhbGxzIGJ5IGEgY2FsbAogICB0byBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKS4KICAgLSBSZW1vdmVkIHRoZSBtYWNybyBESUZGVElNRVZBTCgpIGJlY2F1c2UgaXQgd2FzIG5vdCB1c2VkIGluc2lkZQogICB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbmQgYmVjYXVzZSBpdCBjb250YWluZWQgYSBidWcuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb25zIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwgdWF0aW1lX3JlYWR5KCksCiAgIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KCjIwMDktMTItMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEJ1ZyBmaXg6IGFjY29yZGluZyB0byBSRkMgMjU3MSB0aGUgdW5pdCBvZiBzbm1wRW5naW5lVGltZSBpcyBvbmUKICAgc2Vjb25kLAogICBub3Qgb25lIGh1bmRyZWR0aCBvZiBhIHNlY29uZC4KCjIwMDktMTItMTcgMTA6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIEZpeCB0eXBvLgoKMjAwOS0xMi0xNiAxMjozMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cy1vbmx5IGJ1ZyBmaXhlczoKICAgLSBGaXhlZCB0aGUgc3RyYW5nZSBidWlsZCBlcnJvcnMgdGhhdCBvY2N1cnJlZCB3aGVuIGNvbXBpbGluZwogICBsaWJuZXRzbm1wIGFzIGEgRExMIGFuZCB3aGVuIGVpdGhlciA8c3RkbGliLmg+IG9yIDxzdHJpbmcuaD4gd2FzCiAgIGluY2x1ZGVkIGFmdGVyIDxuZXQtc25tcC1jb25maWcuaD4gaW5zdGVhZCBvZiBiZWZvcmUuCiAgIC0gRm9yIGRlYnVnIGJ1aWxkcyB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLCBmaXhlZCB0aGUKICAgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBfbWFsbG9jX2RiZygpIGNhbGwgaW52b2tlZCBieSBzdHJkdXAoKSBhbmQKICAgZnJlZSgpLWluZyBzdHJkdXAoKS1lZCBtZW1vcnkgYnkgaW5jbHVkaW5nIHRoZSA8Y3J0ZGJnLmg+IGhlYWRlcgogICBpbiB0b29scy5jIGFuZCBieSBkZWZpbmluZyB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBfQ1JUREJHX01BUF9BTExPQy4gRGV0ZWN0ZWQgdmlhIHRoZSBtZW1vcnkgY2hlY2tlciBpbmNsdWRlZCBpbgogICBJbnRlbCBQYXJhbGxlbCBTdHVkaW8uCgoyMDA5LTEyLTE0IDE3OjIzICB0YW5kZXJzCgogICAqICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBzeW5jIGRlZmluaXRpb24gb2YgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIFBlcmwgd2l0aCB0aGUgY2hhbmdlcwogICBpbgogICByMTc4NTUgYW5kIHIxNzkwOAoKMjAwOS0xMi0xNCAxMzo1NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgRml4IFRDUCB0cmFuc3BvcnQgYnJva2VuIGJ5IHJldi4gMTc4NTUgLSBjb3BpZXMgb2YKICAgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIHNubXBUQ1BEb21haW4uYyBhbmQgc25tcFVEUERvbWFpbi5jIG11c3QKICAgYmUgdGhlIHNhbWUuCgoyMDA5LTEyLTExIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBwYXRjaCBmcm9tIE1hcnRpbiBCam9ya2x1bmQgdG8gYWRkIGEgLUN3IG9wdGlvbgogICB0byB1c2UgY3JlYXRlQW5kV2FpdCBmb3IgYWdlbnRzIHRoYXQgYXJlIHN0cmljdCBhYm91dCBub3QKICAgYWxsb3dpbmcgYSByb3cgdG8gYmUgc2V0IHRvIGFjdGl2ZSB1bnRpbCB0aGUgYXV0aGVudGljYXRpb24KICAgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZDsgcGx1cyB3aGl0ZS1zcGFjZSBjbGVhbiB1cCwgbWFudWFsCiAgIGFkZGl0aW9ucyBhbmQgaGVscCBvdXRwdXQgbW9kaWZpY2F0aW9ucyBieSBoYXJkYWtlcgoKMjAwOS0xMi0xMSAxNDozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGEgZm9ybWF0IHNwZWNpZmllciBtaXNtYXRjaC4KCjIwMDktMTItMTEgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICB3aW5FeHRETEwgYnVncyBmaXhlZDoKICAgLSBzeXNVcFRpbWUuMCBkb2VzIG5vdyByZXBvcnQgdGhlIGNvcnJlY3QgdmFsdWUuCiAgIC0gYSBsaW5rVXAgb3IgbGlua0Rvd24gdHJhcCBpcyBub3cgc2VudCBhZnRlciB0aGUgc3RhdHVzIG9mIGEKICAgbmV0d29yayBpbnRlcmZhY2UKICAgaGFzIGNoYW5nZWQuCiAgIC0gdGhlIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUuMCB2YXJiaW5kIGluIGxpbmtVcCBhbmQgbGlua0Rvd24KICAgdHJhcHMgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDA5LTEyLTEwIDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSEVTOiAyOTExOTcwOiBQcm9wZXJseSB0ZXJtaW5hdGUgbGlua2VkIGxpc3QKICAgb2YgcmVnaXN0cmF0aW9ucy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWlya28gRGVja2VydC4KCjIwMDktMTItMTAgMTU6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTExMzIzOiBGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZyBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uCgoyMDA5LTEyLTEwIDEzOjU5ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IE1pY3Jvc29mdCdzIGltcGxlbWVudGF0aW9uIG9mCiAgIGhyU3lzdGVtVXB0aW1lLjAuCiAgIC0gRml4ZWQgYSBmZXcgdHlwb3MuCgoyMDA5LTEyLTEwIDEzOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQWRkZWQgbWlzc2luZyBuZXdsaW5lIGluIGEgbG9nZ2luZyBzdGF0ZW1lbnQuCgoyMDA5LTEyLTEwIDEyOjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgd2luRXh0RExMIGJ1Z3M6CiAgIC0gRml4ZWQgYnVnIGluIHRyYXAgZm9yd2FyZGluZzogbGlua0Rvd24gdHJhcHMgd2VyZSBzZW50IGFzCiAgIHdhcm1TdGFydCB0cmFwcwogICBhbmQgbGlua1VwIHRyYXBzIHdlcmUgc2VudCBhcyBsaW5rRG93biB0cmFwcy4KICAgLSBGaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBleHRlbnNpb24gRExMIGxvYWRpbmcuCiAgIC0gQSBkZWJ1ZyB0cmFjZSBzdGF0ZW1lbnQgaXMgbm93IGludm9rZWQgd2hlbmV2ZXIgYSBzZXJpb3VzIGVycm9yCiAgIGhhcyBiZWVuCiAgIGRldGVjdGVkLgoKMjAwOS0xMi0xMCAxMjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPSURzIGluIGRlYnVnIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSB0aGUgd2luRXh0RExMIG1vZHVsZSBhcmUgbm93CiAgIHByaW50ZWQgaW4KICAgc3ltYm9saWMgZm9ybSBpbnN0ZWFkIG9mIG51bWVyaWMgZm9ybS4KCjIwMDktMTItMTAgMDg6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFByb2plY3QgZGVwZW5kZW5jaWVzIHNob3VsZCBub3cgcmVhbGx5IGJlIGNvcnJlY3QuIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3ODczLgoKMjAwOS0xMi0xMCAwODo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzIChvbmx5IHNvdXJjZSBjb2RlIGNvbW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkKToKICAgLSBSZW1vdmVkIGEgbm90ZSB0aGF0IGNvbnRyYWRpY3RlZCB0aGUgaW5zdHJ1Y3Rpb25zIGluCiAgIFJFQURNRS53aW4zMi4KICAgLSBVcGRhdGVkIGJ1aWxkIGluc3RydWN0aW9ucyBhZnRlciB0aGUgYWRkaXRpb24gb2YgdGhlIGZpbGUKICAgd2luMzIvU25tcC13aW5FeHRETEwuaCBpbiByMTc4MzAuCgoyMDA5LTEyLTEwIDA4OjE3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIE1hZGUgZmlsZSBoZWFkZXIgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIHRoZSBkZXNjcmlwdGlvbnMgaW4gdGhlCiAgIHJlc3BlY3RpdmUgbWFuIHBhZ2VzLgoKMjAwOS0xMi0xMCAwMzowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudF9zeXNPUl9jYWxsYmFjayB3b24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuCiAgIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjay4gQ2hhbmdlIGFnZW50eF9yZW9wZW5fc3lzT1JUYWJsZSBpbgogICBvcmRlciB0byBhdm9pZCB3YXJuaW5ncyBvZiBjb25zdCByZW1vdmFsLgoKMjAwOS0xMi0wOSAxNTowNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gTW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScgaW5zaWRlIHRoZQogICBmdW5jdGlvbgogICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBiZWNhdXNlIHRoaXMgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5CiAgIHRoYXQgZnVuY3Rpb24uCiAgIC0gRG9jdW1lbnRlZCB0aGUgcHVycG9zZSBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnLgogICAtIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHRoZSBjYWxsIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGRvZXMKICAgbm90IHRyaWdnZXIgYW4KICAgaW52YWxpZCBtZW1vcnkgYWNjZXNzIChzdHJbLTFdKSB3aGVuIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgdG8KICAgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMDkgMTQ6MzcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MKICAgYmlnZ2VyIHRoYW4gNiBieXRlcyB0byBpcE5ldFRvTWVkaWFUYWJsZSBhbmQKICAgaXBOZXRUb1BoeXNpY2FsVGFibGUuCiAgIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMgd2l0aCA5IGFuZCBtb3JlCiAgIGJ5dGVzLiBTbm1wZCBvbiBMaW51eCB3YXMgbm90IGFibGUgdG8gcGFyc2UgL3Byb2MvbmV0L2FycCB0aGVuCiAgIGFuZCBwcm9kdWNlZCB1Z2x5ICdpb2N0bCAzNTEyMyByZXR1cm5lZCAtMScgdG8gbG9nLgoKMjAwOS0xMi0wOSAxMjoyNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgbWlzc2luZyAtTG8gaW4gYSBjb21tYW5kIGxpbmUgZXhhbXBsZS4KCjIwMDktMTItMDkgMTI6MTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFkZGVkIHNubXBhcGkubGliIHRvIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBzbm1wZC5leGUuCiAgIEFwcGFyZW50bHkgVmlzdWFsCiAgIFN0dWRpbyAyMDA1IGFuZCAyMDA4IG5lZWQgdGhpcyBsaWJyYXJ5IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdAogICB3aGVuIGxpbmtpbmcKICAgdGhlIGV4ZSwgd2hpbGUgZm9yIFZpc3VhbCBTdHVkaW8gNiBpdCBpcyBzdWZmaWNpZW50IHdoZW4gdGhpcwogICBsaWJyYXJ5IGlzCiAgIHByZXNlbnQgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIG5ldHNubXBtaWJzLmxpYi4KCjIwMDktMTItMDkgMDg6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NCBhbmQgcjE3ODczLCB0aGUgYnVpbGQKICAgcHJvY2VzcyBiZWNhbWUgc2ltcGxlci4KCjIwMDktMTItMDkgMDg6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRXhwb3J0IHN0cnRvdWxsIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE3ODg2LgoKMjAwOS0xMi0wOSAwODoyMSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUmV2ZXJ0ZWQgcjE3NzAwIGZvciBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg2LCBtb2RpZnlpbmcKICAgdGhlCiAgIHN0cnRvdWxsIGxpbmUgaW4gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgaXMgbm8gbG9uZ2VyCiAgIG5lY2Vzc2FyeS4KCjIwMDktMTItMDkgMDg6MTIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93czogc3dpdGNoZWQgZnJvbSBfc3RydG91aTY0KCkgdG8gc3RydG91bGwoKSBmb3IgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8KICAgMjAwMiBhbmQgbGF0ZXIgYmVjYXVzZSB0aGUgZm9ybWVyIGlzIG5vdCBmdWxseSBQT1NJWCBjb21wbGlhbnQuCiAgIFRoZSBzdHJ0b3VsbCgpCiAgIHVuaXQgdGVzdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCBmb3IgX3N0cnRvdWk2NCgpIHdpdGgKICAgTVNWQyAyMDA4OgogICB0ZXN0IDE0IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKICAgdGVzdCAxNiBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCgoyMDA5LTEyLTA4IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogTWFrZSBzdXJlIHRoYXQgYSBtYXNrIGlzIGdpdmVuIHRvIG9wZW4KICAgd2hlbiBPX0NSRUFUIGlzIHNwZWNpZmllZAoKMjAwOS0xMi0wOCAxNjoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgdGhpcyBvdXQuCgoyMDA5LTEyLTA4IDE1OjQ3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFVuaXggc3lzdGVtcyAoZml4ZWQgYSB0eXBvIGludHJvZHVjZWQgaW4gcjE3ODgxKS4KCjIwMDktMTItMDggMTU6MzcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4gV2l0aG91dCB0aGlzCiAgIGRlZmluZSB0aGUgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgYmVuaWduIHJlZGVmaW5pdGlvbiBvZgogICB0eXBlIHNvY2tsZW5fdC4KCjIwMDktMTItMDggMTU6MjggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW5lZCB1cCB0aGUgY29kZSBmb3Igc2V0dGluZyBsaW5lIGJ1ZmZlcmluZzoKICAgLSBJbnN0ZWFkIG9mIGhhdmluZyBjYWxscyB0byBzZXR2YnVmKCkgaW4gbXVsdGlwbGUgZmlsZXMsIHRoZXJlCiAgIGlzIG5vdyBvbmUgY2FsbAogICB0byBzZXR2YnVmKCkgZnJvbSB0aGUgbmV3IGZ1bmN0aW9uIG5ldHNubXBfc2V0X2ZpbGVsb2cuIFRoZXNlCiAgIHNvdXJjZSBmaWxlcwogICBhcmU6IHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMKICAgYW5kIGFnZW50XG1pYmdyb3VwXGRpc21hblx0cmFjZXJvdXRlXHRyYWNlUm91dGVDdGxUYWJsZS5jLgogICAtIFVzaW5nIC1MbyAvIC1MZSBkb2VzIG5vdyBlbmFibGUgbGluZSBidWZmZXJpbmcgZm9yIHN0ZG91dCAvCiAgIHN0ZGVyciByZXNwZWN0aXZlbHkuCiAgIC0gUmVtb3ZlZCBjb2RlIGluIHNubXBkLmMgYW5kIHNubXB0cmFwZC5jIGZvciBzZXR0aW5nIGxpbmUKICAgYnVmZmVyaW5nIG9uIHN0ZG91dAogICBzaW5jZSBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nIG9uIHN0ZG91dCBpcyBub3cgdHJpZ2dlcmVkIGJ5IHRoZQogICBjb21tYW5kLWxpbmUKICAgb3B0aW9uIC1Mby4KICAgQnVncyBmaXhlZDoKICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBhbHNvIHNldCBmb3Igc3RkZXJyIHdoZW4gdGhlCiAgIGNvbW1hbmQtbGluZSBvcHRpb24KICAgLUxlIGhhcyBiZWVuIHNwZWNpZmllZC4KICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBzZXQgY29ycmVjdGx5IGZvciBzdGRvdXQgb24gV2luZG93cwogICBzeXN0ZW1zCiAgIChjb21tYW5kLWxpbmUgb3B0aW9uIC1MbykuCgoyMDA5LTEyLTA4IDEyOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgbG9jYWwgdmFyaWFibGVzIHRoYXQgd2VyZSBkZWZpbmVkCiAgIGJ1dAogICBub3QgdXNlZCBieSBvbmx5IGVuYWJsaW5nIHRoZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9ucyBvbiB0aGUKICAgcGxhdGZvcm0gdGhhdCB1c2VzIHRoZXNlIHZhcmlhYmxlcyAoTGludXgpLgoKMjAwOS0xMi0wOCAxMjoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQWRkZWQgI2luY2x1ZGUgIm1pYmdyb3VwL3V0aWxfZnVuY3MuaCIuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDktMTItMDggMTI6MjUgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgSW5jbHVkZSB0aGUgZ2V0aG9zdGVudCgpIC8gc2V0aG9zdGVudCgpIGRlY2xhcmF0aW9ucyBiZWZvcmUgdXNpbmcKICAgdGhlc2UKICAgZnVuY3Rpb25zLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0wOCAxMjoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeGVkIGFuIGluY29uc2lzdGVuY3kgKHdoaWNoIGlzIGFsbG93ZWQgYnkgdGhlIEFOU0kgQyBzdGFuZGFyZCkKICAgYmV0d2VlbgogICBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbiBvZgogICBuZXRzbm1wX2FkZF9nbG9iYWxfdHJhcGhhbmRsZXIgYW5kCiAgIG5ldHNubXBfYWRkX2RlZmF1bHRfdHJhcGhhbmRsZXIgc3VjaAogICB0aGF0IHRoZSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBjb21waWxlciBkb2VzIG5vIGxvbmdlciBjb21wbGFpbgogICBhYm91dAogICB0aGlzLgoKMjAwOS0xMi0wOCAxMjowOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGltcGxpY2l0bHkgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMDktMTItMDggMTI6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT25seSBjb21waWxlIHRoZSB3aW5FeHRETEwgc291cmNlIGNvZGUgaWYgdGhlIHByZXByb2Nlc3NvciBtYWNybwogICBVU0lOR19XSU5FWFRETExfTU9EVUxFIGhhcyBiZWVuIGRlZmluZWQuCgoyMDA5LTEyLTA4IDEyOjAzICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLgoKMjAwOS0xMi0wOCAxMjowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgb3V0IHRoZSBidWlsZCBvcmRlci4KCjIwMDktMTItMDggMDk6NDYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzIC8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IGRpc2FibGVkIHRoZSBjb21waWxlciB3YXJuaW5nCiAgIGFib3V0CiAgIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzICg0MDE4KSBiZWNhdXNlIHRoaXMgd2FybmluZyBkb2VzIG5vdAogICB5aWVsZAogICBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLgoKMjAwOS0xMi0wOCAwOToxNyAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzYzOSAocGF0Y2ggMjc4MDQxMSAtLSBmaXggY29tcGlsZXIgd2FybmluZ3MpOgogICBhcHBsaWVkCiAgIHRoaXMgcGF0Y2ggdG8gbmV0LXNubXAtY29uZmlnLmguaW4gdG9vIHN1Y2ggdGhhdAogICBuZXQtc25tcC1jb25maWcuaCBhbmQKICAgbmV0LXNubXAtY29uZmlnLmguaW4gbWF0Y2ggYWdhaW4uCgoyMDA5LTEyLTA4IDA4OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50eF9zeXNPUl9jYWxsYmFjaygpIGRvZXMgbm90IHRyaWdnZXIgYQogICBjb21waWxlcgogICB3YXJuaW5nIHdoZW4gdGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuCiAgIGRlY2xhcmVkIGNvbnN0LgoKMjAwOS0xMi0wOCAwODoxNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ2hhbmdlZCB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RydG91bGwoKSBmcm9tICd1bnNpZ25lZCBsb25nIGxvbmcnCiAgICh3aGljaAogICBpcyBub3QgdmFsaWQgQzg5KSB0byAndWludDY0X3QnIChkZWNsYXJlZCBpbgogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KICAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGNvbXBpbGUgYWdhaW4gd2l0aAogICBNU1ZDIDYuMC4KCjIwMDktMTItMDcgMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBUd2VhayBtaXNzaW5nIHN1YmlkZW50aWZpZXIgcHJvY2Vzc2luZyB0byBiZSBtb3JlIHR5cGUtYXdhcmUuCiAgIChBbiBpc3N1ZSB3aXRoIEFJWCwgYXQgbGVhc3QpCgoyMDA5LTEyLTA2IDE4OjM4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogTWFrZSB0aGUgbGlzdHMgb2YgY29tMlNlYypFbnRyaWVzIHN0YXRpYwoKMjAwOS0xMi0wNiAxODozNCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGl0ZXJhdG9yIHZhcmlhYmxlIGluIG5ldHNubXBfKl9nZXRTZWNOYW1lIGNvbnN0CgoyMDA5LTEyLTA2IDE4OjI5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogQ2hhbmdlIHRoZSB0eXBlcyBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogICBuZXRzbm1wXypfZ2V0U2VjTmFtZSBmcm9tIGNoYXIqIHRvIGNvbnN0IGNoYXIqIHNpbmNlIHRoZXkgcG9pbnQKICAgaW50byBpbnRlcm5hbCBzdHJ1Y3R1cmVzLgoKMjAwOS0xMi0wNSAyMDoxOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggZGVjbGFyYXRpb24gb2Ygc3RydG91bGwKCjIwMDktMTItMDUgMTc6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjYWxsIG5ldHNubXBfcmVhZF9tb2R1bGUgaW5zdGVhZCBvZiByZWFkX21vZHVsZSB0byBtYWtlIGl0CiAgIGNvbXBpbGUgd2l0aAogICBORVRTTk1QX0NMRUFOX05BTUVTUEFDRQoKMjAwOS0xMi0wMiAxNTozOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgaW52YWxpZCBhY2Nlc3MgdG8gbWVtb3J5IGluIFRDUC1NSUIKICAgVGhpcyBwYXJ0bHkgcmV2ZXJ0cyBwYXRjaCAxNzcxOSAtIHRoZSBlbnRyaWVzICphcmUqIHVzZWQgYWZ0ZXIKICAgcmF3X2RhdGEgY29udGFpbmVyIGlzIGZyZWVkLiBUaGVzZSBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCB3aGVuCiAgIGFzc29jaWF0ZWQgcm93cmVxX2N0eCBpcyBmcmVlZC4KCjIwMDktMTItMDIgMDg6MzAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHVkcFRhYmxlIGluZGV4ZXMgb24gYmlnLWVuZGlhbiA2NGJpdCBMaW51eC4KICAgVGhlIGluZGV4IHdhcyBhbHdheXMgJzAuMC4wLjAnIGluc3RlYWQgb2YgcmVhbCBsb2NhbCBJUCBhZGRyZXNzLgoKMjAwOS0xMi0wMSAxMjozNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgVXBkYXRlIGEgcmVkdW5kYW50IChhbmQgcHJvYmFibHkgaW5hY2N1cmF0ZSkgY29tbWVudC4KCjIwMDktMTItMDEgMTI6MzEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODIyMzYwOiBGaXggbWVtb3J5IGxlYWsgd2hlbiBidWlsZGluZwogICB0YWJsZSBPSURzCgoyMDA5LTEyLTAxIDEyOjA4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBCVUdTOiAyODM3OTk4OiBIYW5kbGUgbWlzc2luZyBpbnN0YW5jZQogICBzdWJpZGVudGlmaWVycyBpbiByZXN1bHRzCgoyMDA5LTEyLTAxIDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg0MTAwODogUHJvdGVjdCBhZ2FpbnN0IGNyYXNoIGZvbGxvd2luZwogICBmYWlsZWQgQWdlbnRYIHJlc3BvbnNlCgoyMDA5LTEyLTAxIDA3OjM0ICBqc2FmcmFuZWsKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggcmVzcG9uZGluZyB0byBicm9hZGNhc3QgcmVxdWVzdHMuCiAgIFVEUCByZXNwb25zZXMgYXJlIHNlbnQgd2l0aCBzb3VyY2UgSVAgYWRkcmVzcyB3aGljaCB3YXMKICAgZGVzdGluYXRpb24gb2YKICAgYXBwcm9wcmlhdGUgcmVxdWVzdHMgKGltcGxlbWVudGVkIGluIFNWTiByZXYuIDE1MjE1KS4gQnV0IGlmIHRoZQogICBkZXN0aW5hdGlvbgogICBvZiBhIHJlcXVlc3QgaXMgYnJvYWRjYXN0IElQIGFkZHJlc3MsIHRoZSByZXF1ZXN0IHdhcyBzZW50IHdpdGgKICAgdGhlIGJyb2FkY2FzdAogICBhZGRyZXNzIGFzIHNvdXJjZS4gc2VuZG1zZygpIG9uIExpbnV4IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBhbmQKICAgcmV0dXJucyBlcnJvcgogICAtPiByZXNwb25zZSBpcyBub3Qgc2VudC4gSW4gb3JkZXIgdG8gc2VuZCByZXNwb25zZXMgZnJvbSB0aGUgc2FtZQogICBpbnRlcmZhY2UsCiAgIGludGVyZmFjZSBpbmRleCBvZiB0aGUgYXBwcm9wcmlhdGUgaW50ZXJmYWNlIG11c3QgYmUgdXNlZC4KCjIwMDktMTItMDEgMDA6MjkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg1Mi4KCjIwMDktMTItMDEgMDA6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg0Mi4KCjIwMDktMTEtMzAgMTY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODczODU4OiBGaXggaGFuZGxpbmcgb2Ygc2NoZWRPd25lciBpbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFNjaHViZXJ0LgoKMjAwOS0xMS0zMCAxNjo0NiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVR1M6IDI4ODg1Njk6IEZpeCBnZW5lcmF0aW9uIG9mIHRhYmxlIGNvbHVtbnMKICAgYXJyYXkKCjIwMDktMTEtMzAgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODk0MDU5OiBIYW5kbGUgZXJyb3JzIHdoZW4gY291bnRpbmcKICAgaW50ZXJmYWNlcwoKMjAwOS0xMS0zMCAxNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyODk3MDAwOiBTdXBwcmVzcyAzMi1iaXQgY291bnRlciB0cnVuY2F0aW9uCiAgIHdhcm5pbmdzLgoKMjAwOS0xMS0zMCAxNTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAzMDkyOiBGaXggYnJva2VuIGhhbmRsaW5nIG9mIGJyb2FkY2FzdAogICBlbnRyaWVzLgoKMjAwOS0xMS0zMCAxNToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDEwMjk6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uCiAgIENsb3NlSGFuZGxlKCkKICAgRW5kaWFuIHByb2JsZW1zIGFscmVhZHkgYWRkcmVzc2VkIGJ5IHBhdGNoICMyODM1NTc2CgoyMDA5LTExLTMwIDE1OjEzICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI4OTA5MzE6IEJldHRlciBoYW5kbGluZyBvZiBDb3VudGVyNjQKICAgdmFsdWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggUm9tYW5vdi4KCjIwMDktMTEtMzAgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODg3ODE2OiBQcm90ZWN0IGFnYWluc3QgZGl2aXNpb24tYnktemVybwogICBjcmFzaAoKMjAwOS0xMS0zMCAxNTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMjIwOiBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbgogICBpZlhUYWJsZSBpcyBub3QgaW5jbHVkZWQuCgoyMDA5LTExLTMwIDE0OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMTU1OiBGaXggbWVtb3J5IGxlYWsgaW4gcHJveHkKICAgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEdvd3RoYW0gVGhvbW1hbmRyYS4KCjIwMDktMTEtMzAgMTQ6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMwOTI6IFN1cHBvcnQgbW9uaXRvcmluZyBwcm9jZXNzZXMgdGhhdAogICBzaG91bGQgbm90IGJlIHJ1bm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IENocmlzdGlhbiAoY2c3NSkuCiAgIAogICBRbjogU2hvdWxkIHRoaXMgZnVuY3Rpb25hbGl0eSBiZSBiYWNrLXBvcnRlZCB0byBlYXJsaWVyIGxpbmVzPwoKMjAwOS0xMS0zMCAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4Nzc1MTg6IEZpeCBoYW5kbGluZyBvZiBzY29wZWQgQWdlbnRYCiAgIHZhcmlhYmxlcwoKMjAwOS0xMS0zMCAxNDowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4MzU1NzY6IEZpeCBlbmRpYW5uZXNzIGlzc3VlcyBpbgogICBwYXNzL3Bhc3NfcGVyc2lzdAoKMjAwOS0xMS0yNyAwODo1NCAganNhZnJhbmVrCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmM6CgogICBSZW1vdmUgZXhlY3V0YWJsZSBhdHRyaWJ1dGUgZnJvbSBzb3VyY2UgZmlsZXMuCgoyMDA5LTExLTI1IDIwOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgYWxsIHRoZSBvaWRzIGFuZCBvaWQgbGVuZ3RocyBpbiBhZ2VudF90cmFwLmMKICAgY29uc3QgYW5kIHVzZSB0aGVtIGZyb20gZXZlcnl3aGVyZS4KCjIwMDktMTEtMjUgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnN0YWxsIGxpYnJhcnkvb2lkLmguIFRoYW5rcyB0byAiVG9tYXN6IExpcyIKICAgd2hvIHNwb3R0ZWQgdGhlIGJ1Zy4KCjIwMDktMTEtMjUgMDk6NDcgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIENvbW1lbnQtb25seSBjaGFuZ2U6IGNoYW5nZWQgdGhlIG5hbWUgaW4gdGhlIGZpbGUgaGVhZGVyIGZyb20KICAgdGVzdGhhbmRsZXIuaAogICB0byBpbnN0YW5jZS5oIHN1Y2ggdGhhdCBpdCBub3cgbWF0Y2hlcyB0aGUgZmlsZW5hbWUuCgoyMDA5LTExLTI0IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdAoKMjAwOS0xMS0yMyAwNzowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBlbnRlcnByaXNlIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2VuZF90cmFwcyBhbmQgc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBjb25zdAoKMjAwOS0xMS0yMyAwNzowMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIG5hbWUgYXJndW1lbnQgdG8gZmluZF92YXJiaW5kX2luX2xpc3QKICAgY29uc3QKCjIwMDktMTEtMjIgMjM6MjUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBSZW1vdmUgc29tZSBsb2NhbCByZWRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMKCjIwMDktMTEtMjIgMDE6MDMgIG1hZ2ZyCgogICAqICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZywgV2luMzI6IFJlbW92ZSBhIGZldyB1bnVzZWQgY29uZmlndXJlIHN5bWJvbHMKCjIwMDktMTEtMjEgMDg6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBSZXBsYWNlZCBhbiBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUgYnkgdGhlIHByb3BlciBjb250ZW50cy4KCjIwMDktMTEtMjAgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUmV2ZXJ0ZWQgYWNjaWRlbnRhbGx5IG1lcmdlZCBjaGFuZ2VzLgoKMjAwOS0xMS0yMCAxNjoyNiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDA5LTExLTIwIDE2OjE4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBDIHNvdXJjZSBjb2RlIGNvbW1lbnRzOiByZXBsYWNlZCAncmV0cml2YWwnIGJ5CiAgICdyZXRyaWV2YWwnLgoKMjAwOS0xMS0yMCAxNjoxNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCBhIG5hbWluZyBpbmNvbnNpc3RlbmN5OiByZXBsYWNlZCB0d28gb2NjdXJyZW5jZXMgd2luRXh0RGxsCiAgIGJ5IHdpbkV4dERMTCBpbiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMDktMTEtMTkgMjI6NTIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5MDAwNzg6IEFkZCBzdXBwb3J0IGZvciBPSUQgdmFyaWFibGVzIHdpdGgKICAgc2l6ZSBpbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGJ5dGVzLCBjb3JyZWN0IHN5c09iamVjdElEIHRvIHVzZQogICB0aGlzLgoKMjAwOS0xMS0xMyAxMjo1OSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGxvZ2dpbmcgb2YgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyCiAgIGJpdHMnIGluIElQLU1JQiBhbmQgVENQLU1JQgogICBUaGUgY291bnRlcnMsIHdoaWNoIGdyb3cgZmFzdCBhcmUgbm93IGN1dCB0byAzMmJpdHMuCgoyMDA5LTExLTEyIDA4OjI2ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgVXNlIGJpZyBwcmludGYncyBpbnN0ZWFkIG9mIG1hbnkgc21hbGwgb25lcyB0byBzYXZlIGEgZmV3IGh1bmRyZWQKICAgYnl0ZXMgb24gdGhlIGZpbmFsIGV4ZWN1dGFibGUgc2l6ZS4KCjIwMDktMTEtMTIgMDI6MjQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsICAgCiAgICAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX1JFUExBQ0VfRlVOQ1MgdG8gaGFuZGxlIGNvZGUgdGhhdCBpcwogICBtaXNzaW5nIG9uIHNvbWUgcGxhdGZvcm1zLgoKMjAwOS0xMS0xMSAwOTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggY2FjaGUgZnJlZSByb3V0aW5lIHRvIG1hdGNoIGhlYWRlciBkZWNsYXJhdGlvbi4KICAgUmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSB2YWx1ZXMgZnJvbSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIFByb2JsZW0gaWRlbnRpZmllZCBieSBYdWFuLgoKMjAwOS0xMC0zMCAwOTo1MSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTkVXUzogc25tcGxpYjogUmV2ZXJ0IDE3ODA4LCBpbnN0ZWFkIGZhY3RvciBvdXQgdGhlIGRlY2xhcmF0aW9uCiAgIG9mIG9pZCB0byBpdCdzIG93biBmaWxlIGFuZCBpbmNsdWRlIHRoYXQgZmlsZSBmcm9tIGJvdGggdHlwZXMuaAogICBhbmQgYXNuMS5oCgoyMDA5LTEwLTMwIDA4OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHNubXBuZXRzdGF0OiBBZGQgY29ycmVjdCBzaXplIHByZWZpeGVzCiAgIHdoZW4gcHJpbnRpbmcgdmFyaWFibGVzIG9mIHR5cGUgb2lkLgoKMjAwOS0xMC0zMCAwODowNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIG9pZCB0byBiZSBhIDMyLWJpdCB0eXBlIG9uIElMUDY0IGFuZAogICBMUDY0IHBsYXRmb3Jtcy4KCjIwMDktMTAtMzAgMDg6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIG9pZCB0eXBlZGVmIGZyb20KICAgPG5ldC1zbm1wL2xpYnJhcnkvYXNuMS5oPi4gSXQgaXMgc3RpbGwgcHJlc2VudCBpbgogICA8bmV0LXNubXAvdHlwZXMuaD4sIHVzZSB0aGF0IGZpbGUuCgoyMDA5LTEwLTI4IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRvbid0IHJlcXVpcmUgc3ViYWdlbnRfaW5pdCgpIGlmIG5vdCBvbmx5IGJ1aWxkaW5nIG1hc3RlciBhZ2VudAogICBjb2RlCgoyMDA5LTEwLTI3IDA2OjQ0ICBtYWdmcgoKICAgKiAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cyB0byB1X2NoYXIqCgoyMDA5LTEwLTE0IDIzOjEyICBtYWdmcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuCiAgIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgoKMjAwOS0xMC0xMiAyMDoyOCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgcnAgdmFyaWFibGUgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIG9uZS4KCjIwMDktMTAtMDkgMTI6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoyODcxNzQ3OiBwbHVnIG1lbW9yeSBsZWFrIGluIE9JRAogICBwcm9jZXNzaW5nLgogICBUaGUgbWVtb3J5IGxlYWtlZCB3aGVuIHNtYWxsIE9JRCwgd2hpY2ggY291bGQgZml0IHByZS1hbGxvY2F0ZWQKICAgdnAtPm5hbWVfbG9jLCB3YXMgcGxhY2VkIGluIGRpZmZlcmVudCAoYWxsb2NhdGVkKSBvbmUuCgoyMDA5LTEwLTA5IDA1OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBCVUc6IDI4MzgyNDM6IENvcnJlY3QgdGhlIG91dHB1dCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKYWNrIEh1YW5nIG9mIFF1YWxjb21tIHdobyBwb2ludGVkIG91dCB0aGlzIGJ1Zy4KCjIwMDktMTAtMDkgMDU6MDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgcGFyc2luZyBvZiByYW5nZXMgdG8gYWNjZXB0IGFsbAogICB2YWxpZCB2YWx1ZXMuCgoyMDA5LTEwLTA3IDIyOjI0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbWlzYzogUEFUQ0g6IDI4MzYxMTI6IFVzZSB0aGUgcmlnaHQgbW9kaWZpZXIgd2hlbgogICBwcmludGluZyBzaXplX3QgYW5kIHNzaXplX3QgdmFyaWFibGVzLgoKMjAwOS0xMC0wNyAxMjo1MCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyZWF0aW9uIG9mIHZpZXdzIHVzaW5nIHNubXB1c20sIE9JRHMgd2l0aAogICBpbmRleGVzID4gMjU1IGFyZSBhbGxvd2VkIG5vdy4KICAgVGhpcyByZXZlcnRzIFNWTiBjb21taXQgIzc0OTIuCgoyMDA5LTEwLTA1IDE5OjE5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgc3BlbGxpbmcgb2YgX19jcGx1c3BsdXMgd2hlbgogICBjaGVja2luZyBpZiB0aGUgZmlsZSBzaG91bGQgYmUgd3JhcHBlZCBpbiBleHRlcm4gIkMiLgoKMjAwOS0xMC0wNSAwNjoxMyAgbWFnZnIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBlbmQgb2lkIGlzIGxvbmdlcgogICB0aGFuIHRoZSBjdXJyZW50IG9pZCBjb3JyZWN0bHkKCjIwMDktMDktMzAgMTA6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYWNrYWdlIHZlcnNpb24KICAgaW5mb3JtYXRpb24gY3Jhc2hpbmcgdGhlIGFnZW50LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IElueWF2ZW4gU2FrYXJhaS4KCjIwMDktMDktMjcgMTQ6NTkgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzI6IEJpbmFyeSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIHNjcmlwdCB1cGRhdGVzLgoKMjAwOS0wOS0yNCAwMDowOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcmVtb3ZlIFNWTiBicmFuY2ggd29yZGluZwoKMjAwOS0wOS0yMyAyMzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcHJvcGVyIHByb2plY3QgY2FwaXRhbGl6YXRpb24KCjIwMDktMDktMjMgMjM6MzUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjIgMjE6NTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggdHlwb3MKCjIwMDktMDktMTQgMjI6NDkgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjo0OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWl4LCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgUGF0Y2ggZnJvbSBtYWdmciBmb3IgNS41IHNwZWNpZmljIGFpeCBidWlsZCBmaXhlcwoKMjAwOS0wOS0wMiAwNzoxMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbmFtZSBNSUIgbWFjcm8gdG8gTkVUU05NUF9NSUIyX09JRCwgTUlCIGlzCiAgIHRvbyBnZW5lcmljIGFuZCBtYXkgY29uZmxpY3Qgd2l0aCBhcHBsaWNhdGlvbnMuCiAgIAogICBUaGUgb2xkIE1JQiBtYWNybyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1bmxlc3MKICAgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgaXMgZGVmaW5lZC4KCjIwMDktMDgtMzEgMTk6MzggIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGRpdGlvbmFsIFJGQyBtaWJzCgoyMDA5LTA4LTMxIDE5OjM3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBJQU5BIGZpeGVkIGEgYnVnCgoyMDA5LTA4LTI5IDA3OjI5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA5LTA4LTI5IDA3OjI4ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiByZXQgaXMgb25seSB1c2VkIGluIHNldHRhYmxlIHRhYmxlcyBzbyBvbmx5IGRlY2xhcmUgaXQKICAgdGhlbi4KCjIwMDktMDgtMjkgMDc6MjQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlcGxhY2UgdGhlIF9vaWRfbGVuIHZhcmlhYmxlIHdpdGggYW4gZXhwbGljaXQgY2FsbCBvZgogICBPSURfTEVOR1RILgoKMjAwOS0wOC0yOSAwNzoyMSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogTWFrZSBldmVyeSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBzdGF0aWMgc3RhdGljLiBSZW1vdmUgdGhlCiAgIGRlY2xhcmF0aW9ucyBvZiB0aGUgc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhlIHByaXZhdGUgZGVmaW5lcyBmcm9tCiAgIHRoZSBoZWFkZXIuCgoyMDA5LTA4LTI5IDA3OjE5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zLgoKMjAwOS0wOC0yOSAwNzoxNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogbmV0c25tcF90YWJsZV9yZWdpc3RlciBzaG91bGQgYmUgbmV0c25tcF9yZWdpc3Rlcl90YWJsZQogICBhbmQgdGFrZSBvbmx5IHR3byBhcmdtZW50cy4KCjIwMDktMDgtMjkgMDc6MTQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IGJ1aWxkX29pZCBleHBlY3RzIGEgcG9pbnRlciB0byBhbGxvY2F0ZWQgb2lkLiBDaGFuZ2UgdG8KICAgdXNlIGJ1aWxkX29pZF9ub2FsbG9jIGFuZCByZW1vdmUgb25lIGNvcHkgb2YgdGhlIGluZGljZXMuCgoyMDA5LTA4LTI5IDA3OjEwICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBUaGVyZSBpcyBubyBpbmRleF9vaWRfbGVuIG1lbWJlciBpbiBzdHJ1Y3QgZW50cnkuIFVzZSB0aGUKICAgaW50ZW5kZWQgbG9jYWwgdmFyaWFibGUgaW5kZXhfb2lkX2xlbi4KCjIwMDktMDgtMjkgMDc6MDYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IENvcnJlY3QgdGhlIHJldHVybiB0eXBlIG9mICR7aX1fZ2V0KmVudHJ5IHRvIG1hdGNoIHRoZQogICByZXR1cm5lZCB0eXBlLgoKMjAwOS0wOC0yNiAyMjozNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgd2h3b29wczsgYmxldyB0aGUgY2hhbmdlbG9nIGZvciByYzIKCjIwMDktMDgtMjYgMTc6MzggIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGVkIGJhc2VkIG9uIG5ldyBTRiB1cGxvYWQgbWV0aG9kczsgbm8gbG9uZ2VyIGFzIGF1dG9tYXRhYmxlCgoyMDA5LTA4LTI2IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIGZyb20gSmFuIHRvIGVuZGxlc3MgbG9vcCBpbiBkZWZhdWx0IHJvdXRlcwogICBvbiBsaW51eAoKMjAwOS0wOC0yNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBhcHBseSBwYXRjaCBmcm9tIEphbiB0byBmaXggQysrIHdyYXBwZXIKCjIwMDktMDgtMjYgMTQ6NTMgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIEluaXRpYWwgc3RhYiBhdCBhIG1pbmltYWwtaGVscGVyIChyYXcpIHRhYmxlIHRlbXBsYXRlLAogICBsZWF2aW5nIG1vc3Qgb2YgdGhlIHdvcmsgdG8gdGhlIHVzZXItcHJvdmlkZWQgTUlCIGhhbmRsZXIuCgoyMDA5LTA4LTI2IDE0OjUwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgYm9ndXMgZmFpbHVyZXMgKHJldHVybmluZyAwKSBhbmQgc3Vic2VxdWVudAogICBkb3VibGUtZnJlZXMsCiAgIGR1ZSB0byAxNS0vMzEtYml0IG1hc2tpbmcgd2hlbiBzZWxlY3RpbmcgcmVxdWVzdCBJRHMuIElkZW50aWZpZWQKICAgYnkga3JvbWVza3kuCgoyMDA5LTA4LTIwIDEzOjMwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGx1ZyBsZWFrcyBpbiBpcElmU3RhdHNUYWJsZSwKICAgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUuCiAgIAogICBJdCBzZWVtcyB0byBtZSB0aGUgdGFibGVzIHdlcmUgd3JvbmdseSBnZW5lcmF0ZWQgd2l0aAogICBtMmNfZGF0YV9hbGxvY2F0ZSBvcgogICBzb21lb25lIGZvcmdvdCB0byByZWxlYXNlIHRoZSB1c2VyIHByb3ZpZGVkIGRhdGEuCgoyMDA5LTA4LTEyIDE1OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBmaXggbGlidG9vbCB2ZXJzaW9uIGluIE5FV1MKCjIwMDktMDgtMTEgMDA6NDIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZzoKCiAgIHdob29wczsgYWRkIHJlYWwgY2hhbmdlbG9nIGVudGVyaWVzIGZvciAucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTEwIDIxOjIxICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0wNyAxMDozMiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIENvcnJlY3QsIGNvbnNvbGlkYXRlLCBjbGFyaWZ5IGFuZCBjbGVhbnVwIHRoZSBjYXRhbG9nIG9mIGN1cnJlbnQKICAgY2hhbmdlcy4KCjIwMDktMDgtMDYgMDc6NTcgIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBvbiBleGVjIHZzIGV4dGVuZC4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgV2hlbiBkZWxldGluZyByb3cgY29udGV4dCwgZGVsZXRlIGFsc28gYXNzb2NpYXRlZCBkYXRhLgoKMjAwOS0wOC0wNSAxNToxNSAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBUaGUgY29udGFpbmVyIHVzZWQgdG8gdHJhY2sgZW50cmllcyB0byBkZWxldGUgZnJvbSBjYWNoZSBzaG91bGQKICAgYmUgcmVsZWFzZWQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMjE6MTYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIHNubXBsaWI6IGZyb20gIkJhcnQgdmFuIEFzc2NoZSAmIE1hZ251cyBGcm9tcmVpZGUiOiBNb3JlIHVwZGF0ZXMKICAgdG8gc3RydG91bGwuYwoKMjAwOS0wOC0wNCAxMDo1NyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTmnotrZXJ0IjogZml4IHBvc3NpYmxlIGNyYXNoIHdoZW4KICAgNjQtYml0IGNvdW50ZXJzIGluIGlwU3lzdGVtU3RhdHNUYWJsZSBnZXQgYmlnZ2VyIHRoYW4gMl4zMgoKMjAwOS0wOC0wMyAxOToyNyAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyODI3NzIyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBJbXByb3ZlCiAgIHN0cnRvdWxsIHRvIGJlIGxlc3MgTVNWQy1zcGVjaWZpYwoKMjAwOS0wOC0wMyAxODozOCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlIGZyb20gdGhlIHNldCBvZiBmaWxlcyB0aGF0IHNob3VsZAogICBiZSBpbnN0YWxsZWQKCjIwMDktMDctMjcgMTI6NDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNy0yNyAxMjoxMSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjM6CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UKCjIwMDktMDctMjcgMTI6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBmcmVlYnNkOiBwYXRjaCBmcm9tIENlemFyeSBNb3JnYSB0byBmaXggYSBtYWtlIHRlc3Qgb24KICAgZnJlZWJzZAoKMjAwOS0wNy0yNyAxMjowMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNy0yNyAxMTo1MiAgaGFyZGFrZXIKCiAgICogIEZBUSwgTkVXUywgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA3LTI3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcmV2ZXJ0IGFjY2lkZW50aWFsbHkgYXBwbGllZCBwYXRjaAoKMjAwOS0wNy0yNyAwODozNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHVkcC9kdGxzCgoyMDA5LTA3LTI3IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByZXF1aXJlIGEgc2Vzc2lvbiB0byBjYXJyeSBhIHNlY05hbWUKCjIwMDktMDctMjYgMjE6MzQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyBmb3IgV29ya3NwYWNlIGJ1aWxkLgoKMjAwOS0wNy0yNiAxODoyMCAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC1BZGRlZCBzdHJ0b3VsbCBmdW5jdGlvbiBhbmQgY29uZmlndXJlIGNoZWNrIGZvciBzeXN0ZW1zIHdpdGhvdXQKICAgaXQgc3VjaCBhcyBXaW4zMiBNU1ZDIDYKICAgLVdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyAtIHJlcXVpcmVzIG5ldyBzdHJ0b3VsbC5jIGZpbGUKICAgLVdpbjMyOiBOZXcgYnVpbGQtYmluYXJ5IHNjcmlwdCB0byBzaW1wbGlmeSBidWlsZGluZyB0aGUgV2luZG93cwogICBiaW5hcnkgcGFja2FnZS4KCjIwMDktMDctMjUgMDU6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgTWFrZSBzdXJlIGEgbWVzc2FnZSBpcyB3cml0dGVuIGlmIHRoZSByZWxldmFudCB0YWJsZSBpcyBtaXNzaW5nLgoKMjAwOS0wNy0yMyAyMToyOSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCBhZGRyZXNzIGluIFJFQURNRS4KCjIwMDktMDctMjMgMDE6MDcgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDgrIGZpeGVzLgoKMjAwOS0wNy0yMyAwMDo1NSAgYWxleF9iCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDUrIGJ1aWxkIGZpeGVzLiBUaGFua3MgdG8gQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNy0yMSAxMjoyMiAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLnJvdy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBBZGQgc2ltcGxlIGRlYnVnIG91dHB1dCB0byBtaWIyYyB0ZW1wbGF0ZXMuCgoyMDA5LTA3LTIxIDEyOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggbWlzc2luZyBzZW1pY29sb24gdHlwb3MuCgoyMDA5LTA3LTIxIDA5OjE1ICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgc3VnZ2VzdGVkIGVudHJpZXMuCgoyMDA5LTA3LTIwIDE5OjI0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPRElORyBzZWN0aW9uLgoKMjAwOS0wNy0yMCAxMTowOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaDoKCiAgIEFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIGZyb20gcGF0Y2ggIzIwNTMyNzMuCgoyMDA5LTA3LTE5IDE1OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPTVBJTElORyBzZWN0aW9uLgoKMjAwOS0wNy0xNiAxMjozOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQWRkIElQdjYgb2N0ZXQgY291bnRlcnMuCiAgIE5ldyBMaW51eCBrZXJuZWxzIChlLmcuIDIuNi4zMS1yYzIsIG1heWJlIHNvbWUgZWFybGllcikgcHJvdmlkZQogICBjb3VudGVycyBmb3IKICAgaW5jb21pbmcvb3V0Z29pbmcgSVB2NiB0cmFmZmljIGZvciBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwSWZTdGF0c1RhYmxlLgoKMjAwOS0wNy0xNSAyMjo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcHV0IHRlbXBvcmFyeSBkYXRhIHRvIHdoZXJlIHRoZXkgYmVsb25nCgoyMDA5LTA3LTExIDIxOjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlZ2VuZXJhdGUgY29uZmlndXJlCgoyMDA5LTA3LTExIDIxOjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgYnVpbGQgZml4IChlLmcuIGZvciBGcmVlQlNEKTogYWRqdXN0IGt2bSBjb25maWd1cmUgdGVzdHMKCjIwMDktMDctMTAgMTI6MzUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGVjayBJUHY2IHBvcnQgcmFuZ2VzIGluIHRoZSBzYW1lIHdheSBhcyBJUHY0IHBvcnRzIGFyZSBjaGVja2VkLgoKMjAwOS0wNy0xMCAwNzo0NiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjOgoKICAgRml4IGFub3RoZXIgSVB2NCBhZGRyZXNzIHNpemUgLSBsb25nIGhhcyA4IGJ5dGVzIG9uIDY0Yml0IExpbnV4LgogICBBbHNvIGZpeCB0aGUgZGVmYXVsdCB0eXBlIGZvXkNBU05fSVBBRERSRVNTIGluIG1pYjJjLCBzbyB0aGUKICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYyBjYW4gYmUgc2FmZWx5IHJlZ2VuZXJhdGVkLgoKMjAwOS0wNy0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBjbGVhbnVwIG9mIHRlc3RpbmcgY2FzZXMgdG8gcmVtb3ZlIGRvdWJsZSBpbmNsdWRlIGFuZCBkb3VibGUKICAgZXhwb3J0cwoKMjAwOS0wNy0wOSAyMzowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHA6CgogICBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFRDUC9JUHY0IHRlc3QKCjIwMDktMDctMDkgMjI6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGRlZmluZWQgdHJhbnNwb3J0cwoKMjAwOS0wNy0wOSAyMjoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYSBDT05GSUdBUFAgbWFjcm8gZm9yIGFkZGluZyBzdHVmZiB0byBzbm1wLmNvbmYKCjIwMDktMDctMDggMTU6MTIgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBnZXRob3N0YnlhZGRyIHBhcmFtZXRlciwgbmV0c25tcF91ZHBfZm10YWRkciBuZXZlciByZXR1cm5lZCBhCiAgIGhvc3RuYW1lLgoKMjAwOS0wNy0wNyAxNTo0NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRml4IElQIGFkZHJlc3MgbGVuZ3RoIG9uIDY0IGJpdCBzeXN0ZW1zIGluIG1pYklJLCBwYXNzIGFuZAogICBwYXNzX3BlcnNpc3QgbW9kdWxlcy4KCjIwMDktMDctMDcgMTU6MjQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgVXNlIGNvcnJlY3RseSBzaXplZCBJUCBhZGRyZXNzZXMgaW4gYWRkcmVzcyB0cmFuc2xhdGlvbiB0YWJsZQogICBwcm9jZXNzaW5nIC0gdV9sb25nIGNhbiBtYWtlIHByb2JsZW1zIG9uIGJpbiBlbmRpYW4gNjQgYml0CiAgIHN5c3RlbXMKCjIwMDktMDYtMjkgMTM6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICByZW1vdmUgZW50cnkgZm9yIGEgcGF0Y2ggdGhhdCBnb3QgcmV2ZXJ0ZWQKCjIwMDktMDYtMjUgMTU6MjQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBNb3ZlIG5vbi1jb3JlIGRhdGEgdHlwZXMgaW50byBhIHNlcGFyYXRlIChsaWJyYXJ5IGludGVybmFscykKICAgaGVhZGVyIGZpbGUuCiAgIE1vdmUgdGhlIGxhcmdlX2ZkX3NldCBkYXRhIHN0cnVjdHVyZSBpbnRvIHRoaXMgaGVhZGVyIGZpbGUuCgoyMDA5LTA2LTE4IDIyOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFsbG93IGJ1aWxkaW5nIHdpdGggUGVybCB2ZXJzaW9ucyB0aGF0IGxhY2sKICAgUEVSTF9FWElUX0RFU1RSVUNUX0VORAoKMjAwOS0wNi0xOCAyMjoxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDSEFOR0VTOiBidWlsZDogYnVpbGQgZml4IGZvciBUcnU2NCBVbml4IGFuZCBJUklYOiBtb3ZlIF9YT1BFTioKICAgZGVmaW5pdGlvbnMgdG8gd2hlcmUgdGhleSBhcmUgaW4gNS40LnggYW5kIGVhcmxpZXIKCjIwMDktMDYtMTggMDY6MDIgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENsZWFuIHVwIC0td2l0aC1ubCBjb25maWd1cmF0aW9uCiAgICogIE1vdmUgdGhlIF9BUkdfV0lUSCB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSAgMjAwOS0wNi0xNiAxNToxNwogICAgICAgcnN0b3J5CgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBiZWZvcmUgZGVyZWYKCjIwMDktMDYtMTUgMjM6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBleHBsYWluaW5nIG5vdCBxdWl0ZSBvYnZpb3VzIGxhY2sgb2YgbWVtbW92ZQoKMjAwOS0wNi0xNSAxOTozMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgUmVtb3ZlICNpZiAwIGNvbW1lbnRlZCBjb2RlCgoyMDA5LTA2LTE1IDE1OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFHRU5UIHNlY3Rpb24uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucmMxIC0+IFY1LjYucmMyCgoyMDEwLTA5LTA0IDAxOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDktMDQgMDA6NTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0wMyAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0bHN0Y3AgcGFyc2luZyBvZiBob3N0IG5hbWVzLgoKMjAxMC0wOS0wMyAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBjaGVjayB0aGUgcmV0dXJuIGNvZGUgb2YgZmdldHMgYW5kIGZvcGVuIGJlZm9yZSBpbnNlcnRpbmcgdGhlCiAgIHJlc3VsdHMuCgoyMDEwLTA5LTAzIDIyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFBhdGNoIGZyb20gdGFuZGVycyB0byBmaXggYnJva2VuIGFsYXJtcyBhZnRlciB0aGUgcHJldmlvdXMKICAgcmUtZW50cmFudCBwYXRjaAoKMjAxMC0wOS0wMyAyMjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4NjQ1OiBmcm9tIGpvcmlzZXNhdHVybnVzOiBtb2RpZmllZAogICB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0byB1c2UgTVNHX0RPTlRXQUlUIGZvciB0aGUgdW5peCBkb21haW4KICAgc29ja2V0CgoyMDEwLTA5LTAzIDIxOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU4MTQwOiBmcm9tIHRha2V2b3M6IGNoZWNrIHRoYXQgaW5vZGUgaXMKICAgbm9uLXplcm8KCjIwMTAtMDktMDMgMjE6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0Mjg6IGZyb20gdGFrZXZvczogZml4CiAgIGdldF9waWRfZnJvbV9pbm9kZSB3aGVuIHRoZSBpbm9kZSBpcyBub3QgZm91bmQuCgoyMDEwLTA5LTAzIDIwOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIGR1cGxpY2F0ZSByZXR1cm4gYmVmb3JlIHRoZSBlcnJvciBjb2RlcyBnZXQgc2V0LgoKMjAxMC0wOS0wMSAxODowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IExvZyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMC0wOS0wMSAwMjo0MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBUTFMgc2VuZF9ub3RpZnkgb24gY2xvc3VyZSBhbmQgc29tZSBtZW1vcnkgY2xlYW4tdXAgcGF0Y2hlcwoKMjAxMC0wOC0zMSAxNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT25seSBwcmludCB0aGUgc2VjdXJpdHkvY29udGV4dCBFbmdpbmVJRCBtaXNtYXRjaCBub3RlIHVuZGVyIFVTTQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIENIQU5HRVM6CgogICByZW1vdmUgcmVmZXJlbmNlIHRvIHJldmVydGVkIHBhdGNoIDMwNDI3NjUKCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG5vdGUgb24gd2hlcmUgdG8gZmluZCBjb250ZW50IHVzZWQgdG8gZ2VuZXJhdGUKICAgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICByZXZlcnQgcjE5MzQyLCBwYXRjaCAzMDQyNzY1LCB3aGljaCBicm9rZSBjbGllbnQgdGNwIGRpc2Nvbm5lY3QKICAgaGFuZGxpbmcKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IG1vcmUgY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgY2hlY2sgZm9yIGNvbmYgZXJyb3JzIGFmdGVyIGFnZW50IHN0YXJ0dXA7IGVuYWJsZSBsb2dUaW1lc3RhbXA7CiAgIG1ha2Ugc3VyZQogICBhbGwgY2VydCBuYW1lL3RhZ3MgYXJlIHVuaXF1ZQoKMjAxMC0wOC0yNCAyMTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3Igc3RyaW5nIHRvIGRpc2N1c3MgdGhlIHJpZ2h0IGZhaWxlZCBvcGVuc3NsIG5ldwogICBpbnZvY2F0aW9uCgoyMDEwLTA4LTI0IDA1OjM3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IENvcnJlY3QgaWZkZWZzLCByZW1vdmUgZGVhZCB2YXJpYWJsZXMuCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucHJlMyAtPiBWNS42LnJjMQoKMjAxMC0wOC0xOSAyMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOC0xOSAyMToxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIC8vIC0+IEMgY29tbWVudHMKCjIwMTAtMDgtMTkgMjA6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzA0Mjc2NTogZnJvbSBtZWhhZjogbWFrZQogICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiKCkgcmUtZW50cmFudAoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICB0dXJuIG9mZiBjb29raWUgZXhjaGFuZ2VzIHVudGlsIGEgY29tcGxldGUgY29kZSBzZXQgY2FuIGJlCiAgIHdyaXR0ZW4gdG8gc3VwcG9ydCBpdCBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgZnVuY3Rpb24gY2FsbGJhY2tzCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFkZCBtaXNzaW5nIGNhbGwgdG8gc3RvcmUgcGVyc2lzdGVudCBkYXRhIGFzIG5lZWRlZAoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGRpc3BsYXlpbmcgYSBieXRlIGFzIHNpbmdsZSBkaWdpdCBoZXgKICAgdmFsdWUsIGRlZmF1bHQgdG8KICAgcHJlZml4aW5nIHdpdGggMCB1bmxlc3MgdGhlcmUgaXMgYSBzZXBlcmF0b3Igb3IgYWRkaXRpb24gaGludAogICBkYXRhCgoyMDEwLTA4LTE3IDEwOjMxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhbiB1bnVzZWQgbGFiZWwgdGhhdCB3YXMgdHJpZ2dlcmVkCiAgIHdoZW4KICAgY29tcGlsaW5nIHdpdGhvdXQgU1NMIHN1cHBvcnQuCgoyMDEwLTA4LTE2IDIzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjc5MDI0OTogZnJvbSB3aWxscHdpbGxwOiByZWR1Y2UgY2FjaGUgdGltZQogICBmb3IgdGhlIGlmdGFibGUgdG8gM3NlY29uZHMgdG8gaW5jcmVhc2UgYWNjdXJhY3kKCjIwMTAtMDgtMTYgMTY6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDYzNzE6IGZyb20gY2hyaXN0b3BoYjQ6IEZpeCBtZW1vcnkgbGVhawogICBpbiBTTk1QdjEgdHJhcCBoYW5kbGluZy4KCjIwMTAtMDgtMTYgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI4MjU2NTM6IGZyb20gYnJ1NWNlOiBmaXggc2VuZG1haWwuY2YKICAgcGFyc2luZyBpbiBjZXJ0YWluIGNvbmRpdGlvbnMKCjIwMTAtMDgtMTYgMTA6MTYgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEJ1aWxkIG5ldHNubXBfYWdlbnRfYXBpLjMgbWFuIHBhZ2UgZnJvbSB0ZW1wbGF0ZQoKMjAxMC0wOC0xNiAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogRG9jdW1lbnRhdGlvbiAoUHJvdmlkZWQgYnkgVG9tYXN6CiAgIExpcykKCjIwMTAtMDgtMTYgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlLW9yZGVyIGNvZGUgdG8gZ3JvdXAgcmVsYXRlZAogICBmdW5jdGlvbnMgdG9nZXRoZXIKCjIwMTAtMDgtMTYgMDc6NDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI5OTUwOTg6IEZpeCBjcmVhdGlvbiBvZiBTTk1QdjMgc2Vzc2lvbnMKICAgd2l0aCBBUElfU0lOR0xFCgoyMDEwLTA4LTE0IDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlcwoKMjAxMC0wOC0xNCAxNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTA0OTAwOiBEb2N1bWVudGF0aW9uIHBsdXMgYXNzb3J0ZWQKICAgaGFuZGxlciBjb2RlIGZpeGVzCgoyMDEwLTA4LTE0IDA5OjI4ICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICBSZXN0b3JlIGFnZW50IEFQSSBtYW4gcGFnZQogICBEb24ndCB0cnkgdG8gZXh0cmFjdCBtdWx0aXBsZSBtYW4gcGFnZSBsaW5rcyBwZXIgbGluZQogICAod2hpY2ggcnVucyBpbnRvIHByb2JsZW1zIHdpdGggT1Mtc3BlY2lmaWMgbGluZSBlbmRpbmdzKS4KICAgSW5zdGVhZCwgZW5zdXJlIHRoZSBtYW4gcGFnZSBOQU1FIHNlY3Rpb24gbGlzdHMgb25lCiAgIHJvdXRpbmUgcGVyIGxpbmUKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBicm9rZW4gTWFrZWZpbGUgYWZ0ZXIgbWFuIHBhZ2UgbW92ZXMKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCBUTFMgTUlCIHRvIGN1cnJlbnQgY29weQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlcGxhY2VkIFJGQyBjb21tZW50IG51bWJlcgoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaDogMzA0Mjc3MDogZnJvbSBtZWhhZjogTWFkZSBydW5fYWxhcm1zKCkKICAgcmVlbnRyYW50CgoyMDEwLTA4LTEzIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNDQ1MTI6IGZyb20gcGhpbHdlYnN0ZXI6IGZpeCBzeXNvYmplY3RpZAogICBkaXJlY3RpdmUuCgoyMDEwLTA4LTEzIDE5OjAwICByc3RvcnkKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeDoKCiAgIHVzZSAxMjcuMC4wLjEgaW5zdGVhZCBvZiBsb2NhbGhvc3QgYXMgZGVmYXVsdCBTTk1QX1RFU1RfREVTVCBzbwogICBUTFMgdGVzdHMgd29yawoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBpbXBsZW1lbnRlZCBhIGZpeCBmb3IgdGhlIGlzc3VlIHJlcG9ydGVkIGluCiAgIHBhdGNoICMzMDQyNzcwLiBDcmVhdGVkIGEgc25tcF9zZWxlY3RfaW5mb19mbGFncyBmdW5jdGlvbiwgYW5kCiAgIHNpbWlsYXIsIHRoYXQgYWxsb3cgZm9yIGFsYXJtcyB0byBub3QgYmUgcnVuLiBUaGlzIGlzIHRoZW4gdXNlZAogICBpbiB0aGUgc3luY2hfcmVzcG9uc2UgZnVuY3Rpb25zIHRvIGF2b2lkIDEwMCUgQ1BVIGxvb3BzCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhcHBzL3NubXB0cmFwZC5jOgoKICAgbWFrZSBzbm1wdHJhcGQgcmVnaXN0ZXIgdGhlIGNlcnR0b3NlY25hbWUgdGFibGUgaW4gdGhlIGFnZW50eAogICByZWdpc3RyYXRpb25zCgoyMDEwLTA4LTEzIDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgbWlub3Igd29yZGluZyBhZGRpdGlvbnMKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYzoKCiAgIENIQU5HRVM6IGFpeDogUEFUQ0g6IDI4ODY1OTg6IGZyb20gZXhzbmFmdTogSGVhZGVyIGZpeGVzIGZvcgogICBjb21waWxpbmcgb24gQUlYNgoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgTkVXUzogcG9ydHM6IFBBVENIOiAyODM2ODk1OiBmcm9tIHNlYW5ib3VkcmVhdTogc3VwcG9ydCBmb3IgUU5YNgoKMjAxMC0wOC0xMyAxNDozMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZjoKCiAgICdlbmZvcmNlIG5ldHNubXAgcHJlZml4ZXMKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vcGR1X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjIwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgRG9uJ3QgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBtYW4gcGFnZXMKCjIwMTAtMDgtMTMgMTQ6MTggIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgbWFuL3NubXBfc2Vzc19jbG9zZS4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX29wZW4uMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19yZWFkLjMsIG1hbi9zbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19zZW5kLjMsIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLCAgIAogICAgICBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBtYW4gcGFnZSBsaW5rcwogICAoU2hvdWxkIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LCBidXQgZG9uJ3QgZXhpc3QgYW55IG1vcmUKICAgYW55d2F5KQoKMjAxMC0wOC0xMyAxNDoxMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgIAogICAgICAgbWFuL2dldF9tb2R1bGVfbm9kZS4zLCBtYW4vaW5pdF9taWIuMywgbWFuL2luaXRfbWliX2ludGVybmFscy4zLCAKICAgICAgICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NldF9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAgCiAgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywgbWFuL3ByaW50X21pYi4zLCAgCiAgICAgICBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMsIG1hbi9wcmludF92YXJpYWJsZS4zLCAgIAogICAgICBtYW4vcmVhZF9hbGxfbWlicy4zLCBtYW4vcmVhZF9taWIuMywgbWFuL3JlYWRfbW9kdWxlLjMsICAgCiAgICAgIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsIG1hbi9yZWFkX29iamlkLjMsIG1hbi9zaHV0ZG93bl9taWIuMzoKCiAgIFJlbW92ZSBEb3h5Z2VuLWdlbmVyYXRlZCBtYW4gcGFnZXMsIGFuZCB0aG9zZSBsaW5raW5nCiAgIGluZGl2aWR1YWwgcm91dGluZXMgdG8gdGhlIGFwcHJvcHJpYXRlIG1hbiBwYWdlLgogICAoVGhlc2UgYXJlIGJldHRlciBnZW5lcmF0ZWQgZHluYW1pY2FsbHkpCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFByb21wdCBmb3Igd2hldGhlciB0byBnZW5lcmF0ZSBjYWNoaW5nIGNvZGUgb3Igbm90LgoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFJld29yayBndWlkYW5jZSBxdWVzdGlvbnMgd2hlbiBzZWxlY3RpbmcgdGhlIGJlc3QgdGFibGUgZnJhbWV3b3JrCiAgIHRvIHVzZS4KICAgRW5zdXJlIHRhYmxlIGhhbmRsaW5nIGNvZGUgZG9lc24ndCBvdmVyd3JpdGUgc2NhbGFyIGhhbmRsaW5nCiAgIGNvZGUuCiAgIENoZWNrIHRoYXQgdGhlIHN0YXJ0aW5nIHBvaW50IGlzIHN1aXRhYmxlIGZvciBNZkQgZnJhbWV3b3JrLgoKMjAxMC0wOC0xMiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMTIgMTU6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBhIGR1cGxpY2F0ZSB2YWx1ZSBjaGVjawoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIGFkZCBhIHRlc3Qgd2hlcmUgd2UgY2FuIHRydXN0IGEgQ0Etc2lnbmVkIGNlcnQgYW5kIHdlIGRvbid0IHRydXN0CiAgIHRoZSBDQQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHRlc3QgYSBkaXJlY3RseSBtYXBwZWQgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGNoYW5nZSB0aGUgbGFDb25maWcgdG8gcmVhZC13cml0ZSB0byBtYXRjaCB0aGUgcGF0Y2gKCjIwMTAtMDgtMTEgMjI6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjkzMTQ0NjogZnJvbSBhaG1ha2U6IG1ha2UgdGhlIGxvYWQgYXZlcmFnZXMKICAgd3JpdGFibGUuCgoyMDEwLTA4LTExIDA2OjQzICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBDSEFOR0VTOiBTaWxlbmNlIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MgZnJvbSB0ZXN0IGNhc2VzLgoKMjAxMC0wOC0wOSAyMTowOSAgbWFnZnIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBIYW5kbGUgZW1iZWRkZWQgJSdzIGluIHRoZSByZXN1bHQgbWVzc2FnZS4KCjIwMTAtMDgtMDkgMjE6MDcgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgQ0hBTkdFUzogRG8gbm8gZG91YmxlIGRlY2xhcmUgdGhlIGluZGV4IHZhbHVlcy4KCjIwMTAtMDgtMDUgMTE6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVXBkYXRlICJhdXRoKiIgdXNhZ2UgbWVzc2FnZSB3aXRoIGNvbnRleHQgc3VwcG9ydAoKMjAxMC0wOC0wMiAyMDowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRml4IHR3byBzaWxseSBtaXN0YWtlcy4KCjIwMTAtMDgtMDIgMTQ6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEFJWCBmaWxlc3lzdGVtIHR5cGVzIGFyZSB0YWdnZWQgYXMgaW50ZWdlcnMsIG5vdCBzdHJpbmdzLgoKMjAxMC0wOC0wMiAxMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIGZpeCBQZXJsIHN5c3RlbSgpIGNvbmZpZ3VyZSBjaGVjayB0byB3b3JrIHJlbGlhYmx5IG9uIHN5c3RlbXMKICAgdGhhdCBsYWNrCiAgIFBlcmwKCjIwMTAtMDgtMDIgMTE6MDggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBtYWRlIGl0IHBvc3NpYmxlIHRvIGFuYWx5emUgYWxsIGNvZGUgY292ZXJlZCBieQogICB0aGUgcmVncmVzc2lvbiB0ZXN0cyB3aXRoIGEgZHluYW1pYyBhbmFseXplciwgYXQgbGVhc3QgaWYgdGhhdAogICBhbmFseXplciBzdXBwb3J0cyBmb2xsb3dpbmcgY2hpbGQgcHJvY2Vzc2VzLiBBbiBleGFtcGxlOgogICAKICAgcm0gLXJmIC90bXAvc25tcC10ZXN0LSoKICAgbWFrZSAtcwogICBTTk1QX1NBVkVfVE1QRElSPXllcyBEWU5BTUlDX0FOQUxZWkVSPSJ2YWxncmluZAogICAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLXRyYWNrLW9yaWdpbnM9eWVzIiBtYWtlIC1zIHRlc3QKICAgZ3JlcCAtaSB1bmluaXRpYWxpc2VkIC90bXAvc25tcC10ZXN0LSogfCB4YXJncyBsZXNzCgoyMDEwLTA4LTAyIDExOjAyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHR3byBWYWxncmluZCBjb21wbGFpbnRzOgogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZENzAyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ5OUQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ3QTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RTE0NDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1RTVFMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDVFNjU3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1RTU2N0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NUUyNDc5QTogX3Nlc3NfcHJvY2Vzc19wYWNrZXQgKHNubXBfYXBpLmM6NTQ0MSkKICAgYnkgMHg1RTI1RTM3OiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjYwMzcpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1RTY1NzM5OiBuZXRzbm1wX3RjcF9hY2NlcHQgKHNubXBUQ1BEb21haW4uYzo4MikKICAgYnkgMHg1RTI1MzgzOiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjU3ODYpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZGN0IyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkZBNEQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkY4NTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg3MDFGNDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1NkZBMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDU3MDE3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1NkYyN0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NTZGMjk0RjogbmV0c25tcF90cmFuc3BvcnRfc2VuZCAoc25tcF90cmFuc3BvcnQuYzoyNDgpCiAgIGJ5IDB4NTZCQzQ4Nzogc25tcF9zZXNzX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NTIwNCkKICAgYnkgMHg1NkJDNjUxOiBzbm1wX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NDk5OCkKICAgYnkgMHg1NkJDNjc3OiBzbm1wX3NlbmQgKHNubXBfYXBpLmM6NDk4NCkKICAgYnkgMHg1Njk4NDQwOiBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiIChzbm1wX2NsaWVudC5jOjEwMDYpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDU3MDFCM0U6IG5ldHNubXBfdGNwX3RyYW5zcG9ydCAoc25tcFRDUERvbWFpbi5jOjE2MykKICAgYnkgMHg1NzAxRTZGOiBuZXRzbm1wX3RjcF9jcmVhdGVfdHN0cmluZyAoc25tcFRDUERvbWFpbi5jOjMwNSkKICAgYnkgMHg1NkYzODA0OiBuZXRzbm1wX3Rkb21haW5fdHJhbnNwb3J0X2Z1bGwKICAgKHNubXBfdHJhbnNwb3J0LmM6NjAxKQogICBieSAweDU2RjNBQ0M6IG5ldHNubXBfdHJhbnNwb3J0X29wZW5fY2xpZW50CiAgIChzbm1wX3RyYW5zcG9ydC5jOjY2OSkKICAgYnkgMHg1NDM0NEY2OiBzdWJhZ2VudF9vcGVuX21hc3Rlcl9zZXNzaW9uIChzdWJhZ2VudC5jOjc1OCkKICAgYnkgMHg1NDM0OUM4OiBhZ2VudHhfcmVvcGVuX3Nlc3Npb24gKHN1YmFnZW50LmM6ODY5KQogICBieSAweDU0MzREMDA6IHN1YmFnZW50X3N0YXJ0dXAgKHN1YmFnZW50LmM6OTkpCiAgIGJ5IDB4NTZFQUVCNzogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozMzgpCiAgIGJ5IDB4NTZERTZGQjogcmVhZF9jb25maWdzIChyZWFkX2NvbmZpZy5jOjEwMTgpCiAgIGJ5IDB4NTZDMjg3RTogaW5pdF9zbm1wIChzbm1wX2FwaS5jOjg1MCkKICAgYnkgMHg0MDQ3N0I6IG1haW4gKHNubXB0cmFwZC5jOjEwNDgpCgoyMDEwLTA4LTAxIDA2OjExICBidmFzc2NoZQoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgRml4ZWQgc3BlbGxpbmcgZXJyb3JzIHJlcG9ydGVkIGJ5IGlzcGVsbCAtbC4KCjIwMTAtMDgtMDEgMDY6MDAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfZW51bS5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgdGV4dCBzdHJpbmcgaW4gYSB1bml0IHRlc3Q6IHJlc3R1cmFudCAtPgogICByZXN0YXVyYW50LgoKMjAxMC0wOC0wMSAwNTo1MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oOgoKICAgRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcl90b19zbGlzdCgpLgoKMjAxMC0wNy0zMSAyMzo1MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oOgoKICAgRm9sbG93LXVwIGZvciByMTkyNjY6IGFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIHRvIHN1cHBvcnQgTWFjIE9TIFgKICAgMTAuNgogICAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUyIC0+IFY1LjYucHJlMwoKMjAxMC0wNy0zMSAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA3LTMxIDIwOjI0ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjE2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgY2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgcmVhZG1lIHNlY3Rpb24gdG8gY2FsbCBvdXQgTkVXUy10b28KCjIwMTAtMDctMzEgMjA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBtaXNzaW5nIG5ld3MgaXRlbXMKCjIwMTAtMDctMzAgMTM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0ggMzAzNTMyODogZnJvbTogc3dzOiBjaGVjayB0aGUgcmVzdWx0cyBvZgogICBzZXNzaW9uIGNyZWF0aW9uIGZvciBhIGZhaWx1cmUgY2FzZS4KCjIwMTAtMDctMzAgMTM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IHBhdGNoIDMwMzU1Nzg6IGZyb20gc3dzOiBrZWVwIGVycm9yIGNvZGVzIHVwIHRvCiAgIGRhdGUKCjIwMTAtMDctMjkgMTU6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTo0NyAgZHRzMTIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mICd2YV9saXN0JyBmb3IgdmFyYXJncy1iYXNlZCBBUElzCgoyMDEwLTA3LTI5IDE0OjU4ICBkdHMxMgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEFJWCA3CiAgIChvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgaWRlbnRpY2FsIHRvIEFJWCA2KQoKMjAxMC0wNy0yOSAxNDo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIERpc2FibGUgZW1iZWRkZWQgcGVybCBieSBkZWZhdWx0IG9uIGFyY2hpdGVjdXJlcyB3aGVyZQogICB0aGlzIHNlZW1zIHRvIGNhdXNlIHByb2JsZW1zIChIUC1VWCAmIE1hYyBPUyBYKQoKMjAxMC0wNy0yOSAxMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgR3VhcmQgYWdhaW5zdCBibGFuayAnaW5jbHVkZSonIGxpbmVzLgogICBIYW5kbGUgcmVsYXRpdmUgJ2luY2x1ZGVGaWxlJyBwYXRocwoKMjAxMC0wNy0yOSAxMDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldHVybiBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgY29uZmlnIGZpbGVzIGFyZSBhY3R1YWxseQogICBwcm9jZXNzZWQuCiAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIGZhaWxpbmcgdG8gaW5jbHVkZSBjb25maWcgZmlsZXMuCgoyMDEwLTA3LTI4IDE0OjQ0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgIAogICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBCcmluZyBtYW4gcGFnZSBkb2N1bWVudGF0aW9uLCBoZWFkZXIgZmlsZXMgYW5kIFdpbmRvd3MgRExMCiAgIGRlZmluaXRpb25zCiAgIG9mIHRvcC1sZXZlbCBwdWJsaWMgQVBJIGNhbGxzIGludG8gbGluZSB3aXRoIGVhY2ggb3RoZXIuCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERvbid0IG1peCBTTUl2MSBhbmQgU01JdjIgTUlCcyBpbiB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQnMgdG8KICAgbG9hZC4KICAgVXNlIG5ld2VyIFNNSXYyIHZlcnNpb25zICh3aGljaCBpbmNsdWRlIHN1aXRhYmxlIGRpc3BsYXkgaGludHMpCiAgIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBSRkMxMjEzIE1JQiAod2hpY2ggZG9lc24ndCkKCjIwMTAtMDctMjggMTQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgJ2luY2x1ZGVTZWFyY2gnIHByb2Nlc3NpbmcgY29kZS4KCjIwMTAtMDctMjggMTQ6MDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEV4dGVuZCAnaW5jbHVkZScgY29uZmlnIGZpbGUgcHJvY2Vzc2luZyB0byBjb3ZlciB0aHJlZQogICBkaWZmZXJlbnQgbW9kZXMgb2Ygd29ya2luZzoKICAgLSBsb29rIGZvciB0aGUgZmlsZSBvbiB0aGUgY29uZmlnIHNlYXJjaCBwYXRoCiAgIC0gaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGZpbGUgYnkgbmFtZQogICAtIGlvYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5CiAgIFVzZSBkaWZmZXJlbnQgY29uZmlnIHRva2VucyB0byBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcy4KCjIwMTAtMDctMjcgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjkxMjUyMDogZnJvbSBsaXN0b206IEZyZWUga21lbSByZWZlcmVuY2VzCiAgIG9uIHNodXRkb3duCgoyMDEwLTA3LTI3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NNVVgtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IHBhdGNoIDI5NzQ3MTY6IGZyb20gYnZhc3NjaGU6IGZpeCBpc3N1ZXMgaW4gdGhlCiAgIFNNVVgtTUlCCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBpbmNsdWRlIHRoZSBuZXcgc2VjdXJpdHktaGVkYWVycyBtb2R1bGUKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIHJlbW90ZSBkZWJ1Z2dpbmcvcHJvY2Vzc2luZyBzdGRlcnIgb3V0cHV0CgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDMwMjg5MjM6IGZyb20gamVuc286IG5ldyBjb3B5IG9mIHRoZQogICBicmlkZ2UtbWliIHBlcmwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXNlY3VyaXR5LWhlYWRlcnMuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIHNlY3VyaXR5IGhlYWRlci9pbml0IGdlbmVyYXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHM6CgogICB0cmFuc3BvcnQgY29uZmlndXJlIHBvcnRpb24KCjIwMTAtMDctMjcgMDg6MzAgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi10cmFuc3BvcnQtaGVhZGVycy5pbiwgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbjoKCiAgIG1vdmUgdHJhbnNwb3J0IGhlYWRlciBnZW5lcmF0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgY3JlYXRlIGFuCiAgIGV4dGVybmFsIHNlcGFyYXRlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyBpdAoKMjAxMC0wNy0yNyAwODoxNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgZ2ZzIGZpbGVzeXN0ZW1zIGluIGhyU3RvcmFnZVRhYmxlIGFuZAogICBockZTVGFibGUuCgoyMDEwLTA3LTI0IDE1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIHdhcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gcHJvY2Vzc2luZyBhbiBpbmNsdWRlZCBjb25maWcgZmlsZS4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjQgMTU6MzYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgaXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIG9wZW5pbmcgYSBuZXcgU05NUCBzZXNzaW9uLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yMyAwMzoxMiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGQgdGhlIFRMUyBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIHRlc3QgbW9kdWxlcwoKMjAxMC0wNy0yMSAxOToyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gZG94eWdlbiBjb21tZW50CgoyMDEwLTA3LTIxIDE5OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEZpeCB0eXBvIGluIHNwZWVkIGNvbXB1dGF0aW9uCgoyMDEwLTA3LTIxIDE5OjIxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSW5jbHVkZSBnZW5lcmF0ZWQgc2VjdXJpdHktaW5jbHVkZXMuaAoKMjAxMC0wNy0yMSAxOToyMCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oOgoKICAgRml4IGluaXQgZnVuYyBuYW1lIChjb3B5LXBhc3RlIGdsaXRjaCkKCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb24KCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIE91dCBvZiBvcmRlciBkZWNsYXJhdGlvbgoKMjAxMC0wNy0yMSAxOToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBMb2cgZXJyb3Igb24gZmlsZSBvcGVuIGVycm9yCgoyMDEwLTA3LTIxIDE5OjE2ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU3BlbGluZyBlcnJvcgoKMjAxMC0wNy0yMSAxODoxMCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgZm9yIGN1cnJlbnQgUkZDcwoKMjAxMC0wNy0yMSAxODowOCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCB2ZXJzaW9uIGZyb20gSUFOQQoKMjAxMC0wNy0yMSAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcjE3NDk1IGVycm9uZW91c2x5IGRpc2FibGVkIGRpc2tJT0xBeCBmb3IgbGludXgKCjIwMTAtMDctMjAgMTA6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGdlbmVyYXRpbmcKICAgdGVtcC4gZmlsZSBuYW1lcwoKMjAxMC0wNy0yMCAwNzozMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9zbm1wZC5jLCBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICB1cGRhdGUgZGlzcGxheSBoaW50IHRvIHNvbWUgbGVzcyBhbWJpZ3VvdXMgKGFuZCB0aGF0IHdvcmtzIHdpdGgKICAgb3VyIGxpYikKCjIwMTAtMDctMTcgMDQ6MTMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IHRlc3RzaW1wbGUgZm9yIGJ1aWxkZGlyIT1zcmNkaXIKCjIwMTAtMDctMTcgMDQ6MTIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgYWRkIHRlc3RzaW1wbGUgdGFyZ2V0CgoyMDEwLTA3LTE2IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWxlYXNlIGl0ZXJhdG9yIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDEwLTA3LTE1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBpc3N1ZSB3aXRoIFVTTSB1c2luZyBpbmFjdGl2ZSB1c2VycwoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGluY2x1ZGUgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcjsgZGVmaW5lIE5BTUVfTUFYIGlmIG5vdCBhbHJlYWR5CiAgIGRlZmluZWQ7CiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHRoYXQgc29tZSBuZXdlciBvcGVuc3NsIG1hY3JvcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcKICAgdGhlbTsgaW5jbHVkZQogICBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgZHRscyBkb21haW4gaWYgbm8gZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaWZkZWYgcHJvdGVjdGlvbiBmb3IgbGF0ZXIgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBkYXJ3aW4gb3BlbnNzbCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgcmVjZW50IHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgZml4IHR5cG8gaW4gaWZkZWYgdGVzdAoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBpbmNsdWRlZCBmaWxlIG5hbWUKCjIwMTAtMDctMTQgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZml4IHRoZSBmaXg6IHB1dCBQUkl6IHNwZWMgaW4gY29ycmVjdCBwbGFjZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBzcGVjaWZ5IFNOTVAgdmVyc2lvbiBvbiBjb21tYW5kbGluZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAxMC0wNy0xNCAxNTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbmNsdWRlIHNzbC5oIGJlZm9yZSBjZXJ0X3V0aWwuaAoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZGVidWcgb3V0cHV0IGZvciBmb3VuZCBjZXJ0CgoyMDEwLTA3LTEzIDE2OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbXNnCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMTIgMTA6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4ZWQgYSBkYW5nbGluZy1wb2ludGVyLXJlYWQgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTguIEluCiAgIHIxOTAxOCB0aGUgdHlwZSBvZiBncm91cFN1YnRyZWVMZW4gd2FzIGNoYW5nZWQgZnJvbSBpbnQgdG8KICAgc2l6ZV90LCB3aGljaCBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiB0aGUgbG9vcCAid2hpbGUKICAgKGdyb3VwU3VidHJlZUxlbi0tID4gMCkgLi4uIjogaW5zdGVhZCBvZiBub3QgZXhlY3V0aW5nIHRoZSBsb29wCiAgIGJvZHkgd2hlbiBncm91cFN1YnRyZWVMZW4gd2FzIG5lZ2F0aXZlLCByMTkwMTggY2F1c2VkIHRoZSBib2R5IG9mCiAgIHRoYXQgbG9vcCB0byBiZSBleGVjdXRlZC4gRGV0ZWN0ZWQgYnkgcnVubmluZyBzbm1wZCB1bmRlcgogICBCb3VuZHNDaGVja2VyIHdoaWxlIHBlcmZvcm1pbmcgYSBNSUIgd2Fsay4KCjIwMTAtMDctMTIgMTA6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBSZXZlcnRlZCByMTkwNDcgKHdoaWNoIHdhcyB3cm9uZykgYW5kIGltcGxlbWVudGVkIGEgcHJvcGVyIGZpeAogICBmb3IgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzLgoKMjAxMC0wNy0xMiAxMDowOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNy0xMiAxMDowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgU3VwcHJlc3NlZCBtb3JlIE1TVkMgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzOgoKICAgYWRkIGNvbW1lbnQgd2l0aCBvYmplY3QgbmFtZSBmb3IgbnVtZXJpYyBpZHMKCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gZ2V0IHNlcnZlcklkIGZyb20gc25tcFRsc3RtQWRkclRhYmxlIGRhdGE7IHVzZQogICBuZXcgYXBpCiAgIHRvIGNvbmZpZyBzZXJ2aWNlSWQgZm9yIHRyYXAgdHJhbnNwb3J0IHdoZW4gc2VuZGluZyB0cmFwcwoKMjAxMC0wNy0xMSAxMToxOCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ0hBTkdFUzogQlVHOiAzMDI3OTAwOiB3aGVuIGNyb3NzLWNvbXBpbGluZyBpdCBpcyBub3cgYXNzdW1lZAogICB0aGF0IG1lbWNtcCgpIGlzIGF2YWlsYWJsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgaXQgaXMgbm90CiAgIGF2YWlsYWJsZS4KCjIwMTAtMDctMTEgMTA6MzAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHIxOTE5Ny4KCjIwMTAtMDctMTAgMjA6MDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN5bmMgdXAgaGVscCBvdXRwdXQgYW5kIG9wdGlvbnMgcHJvY2Vzc2luZwoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBDeWd3aW4gc2VjdGlvbiBpbiBSRUFETUUud2luMzIuCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBXaW4zMjogU3VwcHJlc3NlZCAiaW1wbGljaXQgY2FzdCBmcm9tIGludCB0byB1X2NoYXIiCiAgIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBNU1ZDLgoKMjAxMC0wNy0wOSAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIFRlc3Rpbmc6IG1hZGUgdGhlIGRlYnVnIG91dHB1dCB0aGF0IGFwcGVhcnMgaW4gdGhlICJpbnZva2VkIiBmaWxlCiAgIGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMC0wNy0wOSAxNToxMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDEwLTA3LTA4IDE5OjMwICBtYXJ6CgogICAqICBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQsICAgCiAgICAgIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGFkZHMgcGVyIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZmlsZSBzdXBwb3J0IHNvIGRlZmF1bHRzIGNhbiBiZQogICBjdXN0b21pc2VkIG9uIGNtZGxpbmUgdyAtaSA8aWRlbnRpdHk+IC0gc2VlIG5ldC1zbm1wLWNlcnQuY29uZgogICBmb3IgZXhhbXBsZXMgYW5kIHNvbWUgaGVscCBpbmZvCgoyMDEwLTA3LTA4IDEyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAwMzk4MTogUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvdwoKMjAxMC0wNy0wOCAxMToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDE5MjQzOiBSZWdpc3RlciBleGVjRml4IGNvbXBhdGFiaWxpdHkKICAgZGlyZWN0aXZlIGNvcnJlY3RseS4KCjIwMTAtMDctMDcgMTA6MTkgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiBDeWd3aW4gYW5kIE1pbkdXOiB0ZXN0cyBUMTEwLCBUMTExLCBUMTEyLCBUMTIwLCBUMTIxIGFuZAogICBUMTIyIGRvIG5vdyBwYXNzIHdoZW4gc25tcGQgaXMgYnVpbHQgd2l0aCB3aW5FeHRETEwgc3VwcG9ydAogICBlbmFibGVkLgoKMjAxMC0wNy0wNiAxODo1OSAgYnZhc3NjaGUKCiAgICogIENoYW5nZUxvZywgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBNYWRlIHJlZ3Jlc3Npb24gdGVzdHMgZWFzaWVyIHRvIGRlYnVnIGJ5IGluY2x1ZGluZyBvayAvIG5vdCBvawogICBzdGF0dXMgaW4gdGhlICJpbnZva2VkIiBmaWxlLgogICBTcGVsbGluZyBmaXhlczogcmVtZWJlciAtPiByZW1lbWJlcjsgc2VwZXJhdG9yIC0+IHNlcGFyYXRvci4KCjIwMTAtMDctMDYgMTU6MDQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgVGVzdCBUMDY1IGRvZXMgbm93IHJlYWxseSBwYXNzIG9uIE1pbkdXLgoKMjAxMC0wNy0wNSAxMDowMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGN1cmx5IGJyYWNlcyBzdWNoIHRoYXQgJ3x8JyBhbmQgJyYmJyBhcmUgZXZhbHVhdGVkIGluIHRoZQogICBjb3JyZWN0IG9yZGVyLgoKMjAxMC0wNy0wNCAxMTozNyAgYnZhc3NjaGUKCiAgICogYXBwczoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDctMDQgMTE6MzQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBGYWxsIGJhY2sgZnJvbSBSVU5GVUxMVEVTVFMgdG8gUlVOVEVTVFMgaWYgbmVpdGhlciBUQVA6Okhhcm5lc3MKICAgbm9yIFRlc3Q6Okhhcm5lc3MgaXMgYXZhaWxhYmxlLgoKMjAxMC0wNy0wNCAxMToyMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHRlc3QgbnVtYmVyIGluIC90bXAvc25tcC10ZXN0cy0kdGVzdG51bSBpcyBzZXQKICAgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bCB0aGFuIGp1c3QgIjAiLgoKMjAxMC0wNy0wNCAxMToyMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNwbGl0IGEgbG9uZyBjb21tZW50IGxpbmUuCgoyMDEwLTA3LTA0IDEwOjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgc3JjZGlyIGlzIGNvbXB1dGVkIGNvcnJlY3RseSBpZiBgZGlybmFtZQogICAkMGAgPSAuCgoyMDEwLTA3LTAyIDE2OjI3ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgU2ltcGxpZmllZCByMTkxODEgKEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aAogICBub24tZW1wdHkgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cpLgoKMjAxMC0wNy0wMSAxODoxNSAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aCBub24tZW1wdHkKICAgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cuCgoyMDEwLTA3LTAxIDE4OjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDctMDEgMTc6NTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBGaXhlZCB0d28gcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMDEgMDA6MTkgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MDMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnByZTEgLT4gVjUuNi5wcmUyCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmY6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlzc2VkIHR3byB0b2tlbnMgaW4gdGhlIG1hbiBwZ2FlcwoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWYsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICByZW5hbWUgdGhlIGRlZlg1MDkgdG9rZW5zIHRvIHNvbWV0aGluZyBtb3JlIGZyaWVuZGx5OiBjbGllbnRDZXJ0CiAgIGFuZCBzZXJ2ZXJDZXJ0CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB0b3AtZmlsZSBjb21tZW50IHVwZGF0ZXMKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCBjYWxsIGNlcnRfZmluZCB3aXRoIGEgTlVMTCBhcmd1bWVudAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFsbG93IGRlZiBjZXJ0cyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBmaWxlbmFtZQoKMjAxMC0wNi0zMCAyMzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBmaXggc3ludGF4IGVycm9yCgoyMDEwLTA2LTMwIDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdHVybiBhIGNvdXBsZSBvZiBub24tY3JpdGljYWwgZXJyb3JzIGludG8gZGVidWcgc3RhdGVtZW50cyBwZXIKICAgZGlzY3Vzc2lvbiB3aXRoIHJzdG9yeQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWtlIHRoZSByZWdleHAgcGF0dGVybiBtYXRjaCBmb3IgdGVzdHMgdG8gcnVuIGNhc2UgaW5zZW5zaXRpdmUKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGltcG9ydCBzdGRlcnIgZnJvbSBzeXMsIHBlciBkaXNjdXNzaW9uIG9uIC11c2VycwoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIGJhY2sgaW4gdGhlIGRlZmF1bHQgcG9ydCBzcGVjaWZpZXIKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBlbmFibGUgcHVsbGluZyB0aGUgcHJpdmF0ZSBrZXkgb3ZlciBodHRwCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW92ZSBVUkwgY29sbGVjdGlvbiBpbnRvIGEgc3ViIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYWJpbGl0eSB0byBwdWxsIGEgY2VydCBmcm9tIGEgVVJMCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFyZ3VtZW50IGJ1ZyBpbiB0aGUgaXNfdXJsIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29kZQoKMjAxMC0wNi0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3RHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICByZW5hbWUgZmlsZSBmb3IgY29uc2lzdGVuY3kKCjIwMTAtMDYtMzAgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBzbm1wdGxzIGFwcAoKMjAxMC0wNi0zMCAyMDowMCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHJlbW92ZSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbnQgZGVidWcgY29kZQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGRlZmluZSBPSURzIGJhc2VkIG9uIFNOTVBfVExTX1RNX0JBU0UKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NyAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlOyBhZGQKICAgc25tcF9zdG9yZV9uZWVkZWQgb24gY29tbWl0CgoyMDEwLTA2LTMwIDE5OjU2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIG5ldyBmaW5nZXJwcmludCBwYXJzZS9idWlsZCBmdW5jdGlvbnM7IHJlbW92ZSBiYWQgbGVuZ3RoCiAgIGNoZWNrOyBhdXRvCiAgIHRyYW5zaXRpb24gYmV0d2VlbiBub3RSZWFkeSBhbmQgbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU1ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgcmVtb3ZlIHByZS1yZmMgbWliOyBzZWUgU05NUC1UTFMtVE0tTUlCLnR4dCBpbnN0ZWFkCgoyMDEwLTA2LTMwIDE5OjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgY29uc29saWRhdGUgbXVsdGlwbGUgZmlsZXMKCjIwMTAtMDYtMzAgMTk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIGhhc2ggdHlwZSBwYXJzZSByb3V0aW5lIHB1YmxpYzsgYWRkIHJvdXRpbmVzIHRvIGJ1aWxkL3BhcnNlCiAgIFNubXBUTFNGaW5nZXJwcmludAoKMjAxMC0wNi0zMCAxOTo1MSAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogc25tcHRsczogbmV3IGFwcCBmb3IgbWFuYWdpbmcgKEQpVExTIGNvbmZpZyB2aWEKICAgU05NUC1UTFMtVE0tTUlCIHRhYmxlcwoKMjAxMC0wNi0zMCAxOTo1MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBjYWxsIG5ldyBzbm1wX3N0b3JlX25lZWRlZCgpIGZ1bmN0aW9uIGFmdGVyIGEgY29tbWl0IGluIHRhYmxlcwogICB0aGF0CiAgIGhhdmUgcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0zMCAxOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHNpbXBsZSBzdGF0ZSBtYWNoaW5lCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgcm93IGNyZWF0aW9uIEFQSSB3aGljaCB1c2VzIGEKICAgc3RhdGUgbWFjaGluZQogICB0byB0cnkgcmVhbGx5IGhhcmQgdG8gY3JlYXRlIGEgcm93IGZyb20gYSBnaXZlbiB2YXJiaW5kIGxpc3QKCjIwMTAtMDYtMzAgMTk6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGQ6IG5ldyBBUEkgZm9yIGluZGljYXRpbmcgdGhhdCBwZXJzaXN0ZW50IHN0b3JlIG5lZWRzCiAgIHRvIGJlIHNhdmVkIGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgZmluaXNoZXMgcHJvY2Vzc2luZwoKMjAxMC0wNi0zMCAxOTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgYWRkIHNvbWUgbmV3IHdyYXBwZXIgbWFjcm9zCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNDTlNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNUR0bHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTZUbHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMThUbHNDTlNlc3Npb25fc2ltcGxlOgoKICAgYWRkZWQgY2hlY2tzIGZvciBjaGVja2luZyBkaXJlY3QgcGFzc2luZyBvZiBsb2NhbGhvc3QgdG8gdGhlCiAgIGV4cGVjdGVkIG5hbWUKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyOgoKICAgY2hlY2sgZm9yIHdpbGRjYXJkIHN1cHBvcnQKCjIwMTAtMDYtMzAgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3VwcG9ydCBTQU4gYW5kIENOIHdpbGRjYXJkIG1hdGNoaW5nIHBlciBzcGVjCgoyMDEwLTA2LTMwIDE1OjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc05hbWUsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFycywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxRHRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMlRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExRHRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJUbHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNEdGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTRUbHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxRHRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMlRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxRHRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJUbHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFEdGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJUbHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxRHRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJUbHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDBUbHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMUR0bHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFEdGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJUbHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICBtb3ZlZCB0ZXN0IGZpbGVzIGFyb3VuZCBmb3IgYmV0dGVyIG5hbWluZwoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGR0bHMgdHJhbnNwb3J0IGFkZHJlc3MgdG8gdGhlIGV4cGVjdGVkIGhvc3RuYW1lCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdGhlIGV4cGVjdGVkIGhvc3RuYW1lIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJpbmcgaWYgcG9zc2libGUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhIGJpdCBtb3JlIGhlbHAgb3V0cHV0IGJ5IGRlZmF1bHQKCjIwMTAtMDYtMjkgMjI6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgRm9sbG93LXVwIGZvciByMTkxMTY6IG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFnZW50IGNvbmZpZwoKMjAxMC0wNi0yOSAyMjoxOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIEFkZCBtaXNzaW5nIGNvbmZpZ19yZXF1aXJlcwoKMjAxMC0wNi0yOSAxNzozMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICByZXdvcmsgdGhlIHNubXBjbWQgbWFudWFsIHBhZ2UgdG8gc2VwYXJhdGUgb3V0IHRoZSBmbGFncyBpbnRvCiAgIHNlY3Rpb25zIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZSB0eXBlCgoyMDEwLTA2LTI5IDE2OjUxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBwb2QgZG9jcywgc29tZSBkZWZhdWx0IHZhbCBmaXhlcywgaW5mbyBvdXRwdXQgbm9ybWFsaXplZAoKMjAxMC0wNi0yOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgYWRkZWQgc3NoLmggaW5jbHVkZQoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICByZW9yZ2FuaXplIHRoZSBtYW51YWwgcGFnZSBhIGJpdCBmb3IgU05NUHYzIGFuZCBUTFMKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggZGVmYXVsdCB0bHMgcmVnaXN0cmF0aW9ucwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgdHJhbnNwb3J0cyBhZnRlciBhbiBvcGVuIGZhaWxzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmluZyBsb2dnaW5nIGFyb3VuZCBzbyB0aGF0IG9wZW5zc2wgZXJyb3JzIGFyZSBwcmludGVkIG9uCiAgIGZhaWx1cmVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXg6CgogICBmaXggc29tZSBub24taW50ZXJhY3RpdmUgaW52b2NhdGlvbiBpc3N1ZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gYSBjb21tb24gZnVuY3Rpb24KCjIwMTAtMDYtMjggMTk6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGU6CgogICBjaXBoZXIgc3VpdGUgc2VsZWN0aW9uIGFuZCB0ZXN0cyBmb3IgaXQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9MSUNFTlNFOgoKICAgbGljZW5zZSB1cGRhdGVzCgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCAgIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgU05NUHYzIG92ZXIgVExTIHN1cHBvcnQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBiZXR0ZXIgb3V0cHV0IHNob3dpbmcgdGVzdCB0eXBlcwoKMjAxMC0wNi0yOCAwMDo1NCAgdGFuZGVycwoKICAgKiAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgCiAgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yNyAyMzoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGNhbGwgdmFjbV9zdGFuZGFyZF92aWV3cygpIG9yCiAgIGluaXRfdmFjbV9jb25maWdfdG9rZW5zKCkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbW9kdWxlIHdhcyBub3QKICAgY29tcGlsZWQKICAgKGZyb20gRGViaWFuIHBhdGNoIDYxX3ZhY21fbWlzc2luZ19kZXBlbmRlbmN5X2NoZWNrKQoKMjAxMC0wNi0yNyAwMzoyMyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFwcCB0YWcgY29tcGxldGlvbnMKCjIwMTAtMDYtMjcgMDA6NTYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgaGFuZGxlIGNvbmZpZyBmaWxlIHNldHRpbmcgaW50ZXJhY3RpdmUsIHRydWUvZmFsc2UgdmFsdWVzIGhhbmRsZWQKICAgaW4gY29uZmlnCgoyMDEwLTA2LTI2IDIwOjU4ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggc29tZSBidWdzIHcvIHNwYWNlcyBpbiBuYW1lcyBhbmQgYXBwIHRhZyBoZWxwCgoyMDEwLTA2LTI2IDE5OjM4ICBtYXJ6CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdGVzdHMgdG8gdXNlIG5vbi1pbnRlcmFjdGl2ZSAtSQoKMjAxMC0wNi0yNiAxNzo0NiAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBiZXR0ZXIgaW50ZXJhY3RpdmUsID89aGVscCwgPHRhYj4gY29tcGwsIG1vcmUgaGVscCwgU0FOIGxvb3AKICAgZm9ybWF0IGFuZCB0ZXJtaW5hdGlvbiBmaXgsIHRvbGVyYXRlIHNwYWNlcyBpbiBmaWVsZHMgYW5kCiAgIGZpbGVuYW1lcywgbW9yZSBjb21wbGV0ZSBlcnJvciBvdXRwdXQsIGVtYnJ5b25pYyBpbXBvcnQgZnJvbSB1cmwKCjIwMTAtMDYtMjYgMTM6NDggIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0wNi0yNiAxMzo0NyAgYnZhc3NjaGUKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeGVkIHRoZSBlcnJvcnMgaW4gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZWQKICAgbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTA2LTI2IDEzOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSBTTVVYIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMDYtMjYgMDA6NDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZToKCiAgIGZpeGVzIGFuZCB0ZXN0aW5nIGZvciBjaGVja2luZyBTQU4gRE5TIG5hbWVzIGZyb20gdGhlIHNlcnZlcgoKMjAxMC0wNi0yNiAwMDo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgZ2VuZXJpY2l6ZSB0aGUgc2VydmVyIG5hbWUgdGVzdHMKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICB1c2VwcmVmaXggc2NhbGFyIHRlc3RpbmcgYW5kIHN1cHBvcnQKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICByZW1vdmUgZGVidWdnaW5nIGxpbmVzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcHV0IGluIG9ubHkgbWluaW1pYWwgZGVidWcgZmxhZ3MKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZToKCiAgIGNvZGUgYW5kIHRlc3QgY2FzZXMgZm9yIENSTCBoYW5kbGluZwoKMjAxMC0wNi0yNSAxNToyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZToKCiAgIEFkZGVkIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVhY2ggbGluZSBwcmludGVkIGJ5IHRoZSBQZXJsCiAgIGludGVycHJldGVyLgoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZWR1Y2UgbnVtYmVyIG9mIHJlc2VuZCBhdHRlbXB0cyBhbmQgdGltZW91dAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB3YXJuaW5nIGZpeGVzCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIGxvZ2ljIHR5cG8gZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGU6CgogICBJUHY2IGZpeGVzIGZvciBUQ1AKCjIwMTAtMDYtMjUgMTM6MDEgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRpbmcgMTkwOTUsIGl0IGJyZWFrcyB0ZXN0cwoKMjAxMC0wNi0yNSAwOTo0MCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFuc2xhdGU6IGZpeGVkIHByaW50aW5nIG9mIHJhbmdlcyB3aXRoIFVOU0lHTkVECiAgIHR5cGUuCgoyMDEwLTA2LTI0IDIzOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lcyBmb3Igc3RhdCBpbmNyZWFzZXMKCjIwMTAtMDYtMjQgMjM6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9ycyBpbiBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS40IGZvciBkdGxzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjMuMgoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGllbnQgc2lkZSBjb25uZWN0IGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvdW50ZXIgYW5kIGNvbW1lbnQgaW1wcm92ZW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHVwZGF0ZSBjb3VudGVyIGNhbGxzIGFuZCBjb21tZW50IHRleHQKCjIwMTAtMDYtMjQgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBNb3ZlZCBMRF9MSUJSQVJZX1BBVEggc2V0dXAgZnJvbSBpbmRpdmlkdWFsIHRlc3RzIHNjcmlwdHMgdG8KICAgc2ltcGxlX1RFU1RDT05GLnNoLgoKMjAxMC0wNi0yNCAxOTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgRml4ZWQgYSBjb21tZW50LgoKMjAxMC0wNi0yNCAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxOTA4NC4KCjIwMTAtMDYtMjQgMTc6NDcgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNi0yNCAxMjozMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgICJ0ZXN0IC1lIiBpc24ndCBwb3J0YWJsZTsgdXNlICJ0ZXN0IC14IiBpbnN0ZWFkIGZvciB0aGUgUGVybAogICBzeXN0ZW0oKQogICBjaGVjawoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAyMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgc3VwcG9ydCBmb3IgY2VydFNlY05hbWUgbWFwcGluZyBmcm9tIGEgbG9jYWwgY2VydCBmaWxlIG5hbWUgYW5kIGEKICAgdGVzdCBmb3IgaXQKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbmF0aW9uIHVwZGF0ZSB0byBjbGVhbiB1cCBhbmQgaW5jbHVkZSBUTFMgcGFyYW1ldGVycwoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBmb3IgcGFzc2luZyBpZGVudGl0aWVzIGFuZCBmdWxsIHdvcmtpbmcgdmVyc2lvbgoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudDoKCiAgIHBlcmwgVExTL0RUTFMgdGVzdHMKCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpcnN0IHB0YWNoIG9uIFNOTVAvVExTIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gZnVuY3Rpb24KCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmlyc3Qgd29ya2luZyBzdXBwb3J0IGZvciBhIGRlbGF5ZWQgY2xvc2UoKSB0byBhdHRlbXB0IHRvIHNlbmRpbmcKICAgb3V0c3RhbmRpbmcgcGFja2V0cyBpbiB0aGUgcXVldWU7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNubXB0cmFwCiAgIHRvIHdvcmsgYXQgYWxsIHdoZW4gc2VuZGluZyB0cmFwcyAobm90IGluZm9ybXMpIG92ZXIgRFRMUwoKMjAxMC0wNi0yMiAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdHMgVDA1OSBhbmQgVDA2NSBkbyBub3cgcGFzcy4KCjIwMTAtMDYtMjIgMTk6MDEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFRoZSB3aWR0aCBhcmd1bWVudCBmb3IgJS4qZCBtdXN0IGhhdmUgdHlwZSBpbnQsIG5vdCBzaXplX3QuIFRoaXMKICAgYnVnIHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxNC4KCjIwMTAtMDYtMjIgMTg6NTcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBDSEFOR0VTOiBNaW5HVzogcnVuX3NoZWxsX2NvbW1hbmQoKSB3aXRoIGVpdGhlciBpbnB1dCBvciBvdXRwdXQKICAgKGJ1dCBub3QgYm90aCkgZG9lcyBub3cgd29yay4KICAgVGhpcyBkaWQgbm90IHdvcmsgdW50aWwgbm93IGJlY2F1c2Ugb24gTWluR1cgbWtzdGVtcCgpIGdlbmVyYXRlcwogICBhIE1pbkdXLXN0eWxlIHBhdGggKC90bXAvLi4uKSB3aGlsZSBzeXN0ZW0oKSBpbnZva2VzIGNtZC5leGUgYW5kCiAgIGhlbmNlIGV4cGVjdHMgYSBXaW5kb3dzLXN0eWxlIHBhdGggKEM6XC4uLikuCgoyMDEwLTA2LTIyIDE3OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQWxzbyByZXBvcnQgdGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDAgXS4KCjIwMTAtMDYtMjIgMTc6MzggIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBSZXBsYWNlZCBhbiBleHBsaWNpdCB0ZXN0IGZvciBNaW5HVyBieSBhIHRlc3Qgb24gSEFWRV9TSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM2ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFJlcG9ydCB3aGljaCB0ZXN0cyBmYWlsZWQsIGlmIGFueS4KCjIwMTAtMDYtMjIgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4ZWQgYW4gZXJyb3IgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxMC0wNi0yMSAxOToyNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIFJlYXJyYW5nZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGVzdCBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeQogICB0byBpbnZva2Ugc2ltcGxlX2V2YWxfdG9vbHMuc2ggd2hlbiB0aGlzIHNjcmlwdCBpcyBpbnZva2VkIGFzIGEKICAgdHJhcCBoYW5kbGVyCiAgIGJ5IHNubXB0cmFwZC4KCjIwMTAtMDYtMjEgMDg6MDEgIGR0czEyCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgdG8gYWNjb21vZGF0ZSB0aGUgc3BlY2lmaWVkIHNvY2tldCBJRC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KCjIwMTAtMDYtMjAgMTk6MzIgIGR0czEyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsICAgCiAgICAgIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEF2b2lkIGR1cGxpY2F0ZSAodW51c2VkKSBzeW1ib2xzLgoKMjAxMC0wNi0yMCAxOTozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIENvbW1lbnRlZCBvdXQgZGVidWcgY29kZS4KCjIwMTAtMDYtMjAgMTk6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFJlc3RvcmVkIHN1bW1hcnkgc3VjY2Vzcy9mYWlsdXJlIGNvdW50IHJlcG9ydGluZy4KICAgQWxzbywgbW92ZWQga2lsbC5leGUgdGVzdCBiYWNrIHRvIFJVTlRFU1RTLgoKMjAxMC0wNi0yMCAxOToyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZCB0aGUgdGVzdCBuYW1lIHRvIHRoZSBzdGFydCBvZiB0aGUgZmlsZQogICAiaW52b2tlZCIuCgoyMDEwLTA2LTIwIDE5OjI3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IHNraXAgdGhlIHRlc3RzIHRoYXQgcmVxdWlyZSBTSUdIVVAgc2luY2UKICAgTWluR1cgZG9lcyBub3Qgc3VwcG9ydCBTSUdIVVAuCgoyMDEwLTA2LTIwIDE1OjE5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY29uZmlndXJlIHRlc3QgdGhhdCBkZXRlY3RzIHdoZXRoZXIgb3Igbm90IFBlcmwncwogICBzeXN0ZW0oKSBmdW5jdGlvbgogICBpbnZva2VzIGEgUE9TSVggc2hlbGwuICJtYWtlIHRlc3QiIGRvZXMgbm93IGZhbGwgYmFjayB0byBSVU5URVNUUwogICBpZiBub3QuCgoyMDEwLTA2LTIwIDE1OjE2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIG9uIE1pbkdXIC0tIGFkZGVkICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiB3aGVyZQogICBuZWNlc3NhcnkuCiAgIE5vdGU6IGFsdGhvdWdoIDxuZXQtc25tcC90eXBlcy5oPiBpcyBpbmNsdWRlZCBpbmRpcmVjdGx5IGZyb20gdGhlCiAgICogICAgICp0cmFuc3BvcnQuaCAgICBoZWFkZXIgZmlsZXMsIHRoZXNlICNpbmNsdWRlIHN0YXRlbWVudHMgYXJlCiAgICAgIG5lY2Vzc2FyeSBiZWNhdXNlIG9mICAgIGEgcGVza3kgICAgY2lyY3VsYXIgZGVwZW5kZW5jZSBiZXR3ZWVuCiAgICAgIDxuZXQtc25tcC90eXBlcy5oPiBhbmQgICAgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4uIAogICAgICAyMDEwLTA2LTIwIDE1OjEyICBidmFzc2NoZQoKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgQ0hBTkdFUzogTWluR1c6IHJlZnVzZSB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaWYga2lsbC5leGUKICAgY2Fubm90IGJlIGZvdW5kLgoKMjAxMC0wNi0yMCAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNob3J0ZW5lZCB0aGUgc3JjZGlyIHBhdGggYnkgbWFraW5nIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluCiAgIC8uLgoKMjAxMC0wNi0xOSAxODozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIFJVTkZVTExURVNUUyB3aXRoIFRlc3Q6Okhhcm5lc3MgaW4KICAgYW5vdGhlciBkaXJlY3RvcnkgdGhhbiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgY29tcGxldGUgcmV3cml0ZSBvZiBwYXJhbXMgdG8gdXNlIHRhYmxlX2RhdGFzZXQgaW5zdGVhZCBvZgogICBjcmVhdGUtZGF0YXNldAoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1c2UgdGV4dCBmb3IgaGFzaCB0eXBlIGluIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggbWlzc2luZyBzcGVjaWZpZXIgaW4gZGVidWcKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgZGVmaW5lIGluc3RlYWQgb2YgY29uc3RhbnQ7IGZpeCBjaGVjayBmb3Igcm93cyB0byBzYXZlCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHJlbW92ZS9maW5kIGZ1bmN0aW9uIGZvciBtYXBzL2FkZHJzL3BhcmFtczsgcmVuYW1lIHBhcmFtcwogICB0YWctPm5hbWU7CiAgIGRlc3Ryb3kgLT4gZnJlZTsgZ3JvdXAgcmVjZW50IHRydXN0IGZ1bmN0aW9ucyB0b2dldGhlciBpbiBzcmM7CiAgIGRvbid0IHN0b3JlCiAgIHBhcmFtcyBmcCBhcyBiaW5hcnk7IGhhbmQgdGV4dCBhcmdzIGZvciBoYXNoIHR5cGUgKGUuZyAtLXNoYTEpCgoyMDEwLTA2LTE4IDE1OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBjb3JyZWN0ZWQgZXJyb3IgaGFuZGxpbmcgaW4gbWliSUkvYXQuCgoyMDEwLTA2LTE4IDA3OjIzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDYtMTggMDE6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIERvIG5vdCBkZWZpbmUgcmV0IHR3aWNlIHdoZW4gTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPIGlzIHNldC4KCjIwMTAtMDYtMTggMDE6MzkgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDb3JyZWN0ZWQgdHlwby4KCjIwMTAtMDYtMTggMDA6MzEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBiZXR0ZXIgTkVXUyBhbmQgQ0hBTkdFUyBmaWxlcwoKMjAxMC0wNi0xNyAyMDozOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41IC0+IFY1LjYucHJlMQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHJlLWVuYWJsZSBzb21lIGNvbW1hbmRzCgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICBmb3Jnb3QgbWlzc2luZyBxdW90ZXMgaW4gU0VUIG91dHB1dAoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRscyB0ZXN0aW5nIGNsZWFudXAKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciBhZGRyZXNzIHByaW50aW5nOyBtb3JlIHRvIGNvbWUKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3N0bHkgcHJvcGVybHkgc2V0IHJlbW90ZS9sb2NhbCB0cmFuc3BvcnQgcGFyYW1ldGVycwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGU6CgogICB0ZXN0cyBmb3IgYWdlbnRzIHNlbmRpbmcgb2YgdHJhcHMgb3ZlciAoRClUTFMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgbW92ZSBleHBvcnQgc3RhdGVtZW50cyB0byB0aGUgc3VwcG9ydCBmaWxlIGZvciBzaW1wbGljaXR5CgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGxzIGJvb3RzdHJhcHBpbmcgdG8gcG9zdF9wcmVtaWIgc28gb3RoZXIgY29uZmlnIHRva2VucyBjYW4KICAgdXNlIHRoZSBjZXJ0IGxvYWRpbmcgcmVzdWx0cwoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIGFkZGVkIHNubXBfZW51bSB0ZXN0cyBwdWxsZWQgZnJvbSB0aGUgbWFpbigpIHRlc3QgYXQgdGhlIGJvdHRvbQogICBvZiB0aGUgb3JpZ2luYWwgLmMgZmlsZQoKMjAxMC0wNi0xNyAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFbGltaW5hdGUgImRpZmZlciBpbiBzaWduZWRuZXNzIiB3YXJuaW5nCgoyMDEwLTA2LTE3IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIHJldmVydCBVRFAgY2hhbmdlcyBmcm9tIHIxODk4NCBzaW5jZSBpdCBicm9rZSB0aGUgVURQIHRyYW5zcG9ydDsKICAgdGhlIHN0cnVjdCBwcm9iYWJseSBuZWVkcyB0byBtYXRjaCBhbm90aGVyIHN0cnVjdCBzb21ld2hlcmUgZWxzZQoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIG5ldyBLRVlXT1JEIG91dHB1dCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgY29uZmlnX2FuZF9vcGVuIGZvciBvcGVuaW5nIHRoZSB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZXh0cmEgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIGV4cGxpY2l0bHkgZGVjbGFyZSB0cnVzdCBjZXJ0aWZpY2F0ZXMgdG8gdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2xlYW51cCBzb21lIGxvc3QgbWVtb3J5IG9uIGNsb3NpbmcKCjIwMTAtMDYtMTYgMjE6NTYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwb3MKCjIwMTAtMDYtMTYgMjE6MzQgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBhZ2VudCBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMjA6MTYgIGR0czEyCgogICAqICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGxpYnJhcnkgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE5OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvbGRlciBuby1sb25nZXItbmVlZGVkLWR1cGxpY2F0ZS1jb25maWcgZW50cmllcwoKMjAxMC0wNi0xNiAxOToxNCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBGaXggcHJvY2Vzc2luZyBvZiB2aWV3IG1hc2tzIChtaXNwbGFjZWQgcGFyZW50aGVzZXMpCgoyMDEwLTA2LTE2IDE4OjQ1ICBkdHMxMgoKICAgKiAgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIGZyb20gYXBwIGNvZGUKICAgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0czoKCiAgIGNoZWNrIGZvciBpbmZvcm1zIHNlbnQgb3ZlciB0bHMgdHJhbnNwb3J0cwoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IG90aGVyIHZhbHVzZSBmcm9tIHBhcmVudCB0bHNiYXNlIGRhdGEKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIGFkZGVkIGJhc2ljIHRyYXAgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRlc3RzCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCB0ZW1wIGZpbGUgdG91Y2hlcwoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZ1bmN0aW9uIGFuZCB0cmFuc3BvcnQgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgZl9vcGVuCiAgIGNhbGwgaGFzIGJlZW4gY2FsbGVkIHlldAoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1bnVzZWQgdmFyIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGRlZCB0cnVzdENlcnQgY29uZmlndXJhdGlvbiB0b2tlbgoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgbWlub3IgdHdlYWtzIGZvciB0ZXN0aW5nIGNsYXJpdHkKCjIwMTAtMDYtMTYgMTc6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGU6CgogICBtb3ZlZCBjb21wbGV4IChEKVRMUyB0byBhIHNlcGFyYXRlIHNlY3Rpb24gYW5kIG1hZGUgdGhlIHRyYW5zcG9ydAogICB0ZXN0cyBvbmx5IHRlc3QgbWluaW1hbCBzdXBwb3J0CgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIG1lY2hhbmlzbXMgZm9yIHNwZWNpZnlpbmcgYW5kIGV4cGVjdGluZyB0aGUgaG9zdG5hbWUgb2YgdGhlCiAgIGZhciBzaWRlCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGVzdHMgZm9yIHZlcmlmeWluZyBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hlY2sgZmFpbHVyZXMKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIHRlc3RpbmcgZm9yIGNoZWNraW5nIGNsaWVudCBzaWRlIHZlcmlmaWNhdGlvbiBvZiBzZXJ2ZXIKICAgY2VydGlmaWNhdGVzCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoZWNrIHRvIG1ha2Ugc3VlciBzc2wgcG9pbnRlciBoYXMgYmVlbiBjcmVhdGVkIHZpYSBmX29wZW4gY2FsbAoKMjAxMC0wNi0xNiAxNTowMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9wZXJsLmgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWNsYXJlICdzaHV0ZG93bl9wZXJsJyBwcm9wZXJseS4KCjIwMTAtMDYtMTYgMTQ6MzcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIHR5cGUgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKICAgd2FybmluZ3MgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNDoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRWxpbWluYXRlICJ1bnVzZWQgdmFyaWFibGUiIHdhcm5pbmcKCjIwMTAtMDYtMTYgMTQ6MjIgIGR0czEyCgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgdmFyaW91cyAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTYgMTM6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHZhY20uYywgc25tcGxpYi90b29scy5jOgoKICAgRWxpbWluYXRlIChtb3N0KSBzaWduZWQtdnMtdW5zaWduZWQgd2FybmluZ3MgZnJvbSBudW1lcmljIHNjYW5mCiAgIHByb2Nlc3NpbmcgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTYgMDM6MjggIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB0aGUgZ3JlYXQgdW4tbmFtZWQgY29udGFpbmVyIGh1bnQKCjIwMTAtMDYtMTYgMDM6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHNoYXJlIGNhY2hlIGJldHdlZW4gdGFibGUgYW5kIGNvdW50IHNjYWxhcjsgd2hlbiByZWFkaW5nIGNvbmZpZywKICAgYWRkIHRvCiAgIGxpYnJhcnkgY29udGFpbmVycyBmb3IgYWN0aXZlIHJvd3MsIHRhYmxlIGNvbnRhaW5lcnMgZm9yIGluYWN0aXZlCiAgIHJvd3M7CiAgIHVzZXIgY2VydF91dGlsIGFwaXMgaW5zdGVhZCBvZiBkaXJlY3QgY29udGFpbmVyIG1hbmlwdWxhdGlvbjsKICAgd2hlbgogICBzYXZpbmcgaW5hY3RpdmUgbWFwIHJvd3MsIHNraXAgYWxsIGJ1dCBub25Wb2xhdGlsZQoKMjAxMC0wNi0xNiAwMzoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggZGVidWcgdG9rZW4gdHlwbwoKMjAxMC0wNi0xNiAwMzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhcGkgZm9yIGFkZGluZyBlbnRyaWVzIHRvIHRsdHNtIGFkZHIsIHBhcmFtcyBhbmQgY2VydCBtYXAKICAgY29udGFpbmVyczsKICAgcmVnaXN0ZXIgc2Ugc2xpc3QgcGFpciBlYXJsaWVyIHNvIHRoZXkgYXJlIGF2YWlsYWJsZSBkdXJpbmcKICAgY29uZmlnIHBhcnNpbmc7CiAgIG1ha2Ugc3VyZSBjb25maWcgc3RyaW5ncyBhcmUgbnVsbCB0ZXJtaW5hdGVkCgoyMDEwLTA2LTE1IDIxOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBTdXBwcmVzcyB3YXJuaW5nczoKICAgJ3N0cnVjdCBubG1zZ2hkciBkZWZpbmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCcgYW5kCiAgICdmdW5jdGlvbiBfbG9hZF92NiBkZWNsYXJlZCBidXQgbmV2ZXIgZGVmaW5lZCcKCjIwMTAtMDYtMTUgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9rZXJuZWwuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgRWxpbWluYXRlICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNSAwNzowNyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAzY29weV9ud29yZF9jbGliLmM6CgogICBBZGQgdGVzdCBvZiBjb3B5X253b3JkCgoyMDEwLTA2LTE0IDIxOjMyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgRWxpbWluYXRlICJvdmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIiB3YXJuaW5ncwogICBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNCAxNTo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEVsaW1pbmF0ZSAic3RyaW5nIGxlbmd0aCBncmVhdGVyIHRoYW4gNTA5IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAxNToxOSAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUiIHdhcm5pbmdzCiAgIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDA1OjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIGNvdW50IGhhbmRsZXJzIHRvIGNvdW50IG5vbi1hY3RpdmUgcm93cyB0b28KCjIwMTAtMDYtMTQgMDU6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBvbmx5IHR3ZWFrIHN0b3JhZ2VUeXBlIGZvciBhY3RpdmUgcm93czsgcmVzZXQgZW50cnkgZmxhZ3Mgd2hlbgogICByZW1vdmluZyBmcm9tCiAgIGNlcnRfdXRpbCBtYXBzOyB3aGVuIGNyZWF0ZWluZyByb3dzIGZyb20gY2VydF91dGlsIG1hcHMsIHNldAogICBzdHJhZ2V0VHlwZSB0bwogICB2b2xhdGlsZSBpZiBub25Wb2xhdGlsZSBmbGFnIG5vdCBzZXQ7IGRvbnQgZnJlZSBjYWNoZSBpbgogICBjYWNoZV9sb2FkIG9uIGVycgoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBtb3ZlIHRsc3RtQWRkciB0YWJsZSBjb25maWcgcGFyc2luZyB0byBjZXJ0X3V0aWw7IGFkZCBjYWNoZSB0bwogICBtZXJnZSBjZXJ0X3V0aWwKICAgYWRkcnMgKGFjdGl2ZSkgYW5kIG5vbi1hY3RpdmUgcm93czsKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgbm9uVm9sYXRpbGUgZmxhZyB0byB0bHN0bUFkZHIgdGFibGU7IHNldCBjb250YWluZXIgbmFtZTsgc2tpcAogICAnMHgnIGluIGZwCgoyMDEwLTA2LTE0IDA1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgTE9HX0VSUiB0byBMT0dfSU5GTyBmb3Igbm9uLWVycm9yIGxvZyBtc2cKCjIwMTAtMDYtMTMgMjE6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tCiAgIE1mRC1iYXNlZCBNSUIgbW9kdWxlIGNvZGUsIGFuZCBNZkQgdGVtcGxhdGUgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMjE6MzMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gKG5vbi1NZkQpCiAgIE1JQiBtb2R1bGUgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMTA6MjYgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIGxpYnJhcnksCiAgIGFwcHMgYW5kIGFnZW50IGZyYW1ld29yaytoZWxwZXJzIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEwIDIwOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgbG9va3VwIGNlcnQga2V5cyBmb3IgdGxzIGRvbWFpbnM7IHVzZSBTRUNfTU9ERUwgZGVmaW5lIGluc3RlYWQgb2YKICAgaGFyZGNvZGVkCiAgIGNvbnN0YW50OyBhZGQgU0VDX01PREVMX1RTTSB0byBhbGxvd2VkIHNlYyBtb2RlbHMgZm9yIG1wTW9kZWwKICAgU05NUF9WRVJTSU9OXzMKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBkZWZhdWx0IHRvIHJlYWRPbmx5L2FjdGl2ZSBmb3IgYmFkIGNvbmZpZwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkIGRlYnVnOyBzd2l0Y2ggdG8gU0VDX01PREVMX1RTTSBhbmQgd2FybiBpZiBvdGhlciBzZWNtb2RlIHNldCwKICAgaW5zdGVhZAogICBvZiBzaW1wbHkgbG9nZ2luZyB0aGF0IGl0IHdvbid0IHdvcmsKCjIwMTAtMDYtMTAgMTk6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHB0cnMgYmVmb3JlIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEwIDE5OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YSBtYW5hZ2VtZW50IHRvIGNlcnRfdXRpbDsgaW1wbGVtZW50CiAgIFRBUkdFVF9BRERSCiAgIGFuZCBUQVJHRVRfUEFSQU1TIGxvb2t1cCBpbiBjZXJ0IEFQSQoKMjAxMC0wNi0xMCAxOTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVwZGF0ZSBzZWMgbW9kZWwgZGVmaW5lIG1pc3NlZCBpbiBlYXJsaWVyIGNoZWNraW4KCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb25maWcgdHJhcHNlc3MgdHJhbnNwb3J0cyBvbiBjcmVhdGlvbjsgc2ltcGxpZnkgaWZkZWZzIGZvcgogICBESVNBQkxFX1NOTVBWMQoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wa3NtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGF1dG8gc3dpdGNoIHRvIHYzIGZvciAoZCl0bHMgc2Vzc2lvbnMgaW5zdGVhZCBvZiBsb2dnaW5nIHRoYXQKICAgb3RoZXJzIHdvbnQKICAgd29yazsgZGVmaW5lIFRTTSBzZWMgbW9kZWwgd2l0aCBvdGhlciBzZWMgbW9kZWxzOyBjb25zaXN0ZW50bHkKICAgdXNlCiAgIFNOTVBfU0VDX01PREVMXyogaW4gdGhlIGNvZGUsIHVzaW5nICNkZWZpbmVzIGZvciBiYWNrd2FyZHMKICAgY29tcGF0aWJpbGl0eQogICB3LypfU0VDVVJJVFlfTU9ERUwKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0VG9UU046IG1vdmUgbWliIHJlbGF0ZWQgcGVyc2lzdGVuY2UgYmFjayBpbnRvIG1pYiBtb2R1bGU7CiAgIGNlcnRfdXRpbDogYWRkIHRsc3RtUGFyYW1zIHBlcnNpc3RlbmNlOyB1c2Ugc2xpc3QgZm9yIGNlcnQgbWFwCiAgIHR5cGUgbmFtZQogICBtYXBwaW5nOwoKMjAxMC0wNi0xMCAxOTo0NSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZyAoY29uc3QpCgoyMDEwLTA2LTEwIDA0OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBBZGQgbWlzc2luZyBpbmRlbnRhdGlvbiBvZiBhIGRvLXdoaWxlIGxvb3AgdG8gbWFrZSB0aGUgY29kZQogICByZWFkYWJsZS4KCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBjb21tZW50IG91dCBrZXlVc2FnZSBzbyBwcm9wZXIgc2VsZi1zaWduZWQgY2VydHMgYXJlIGdlbmVyYXRlZAoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzb2xpZGlmeSBjZXJ0aWZpY2F0ZSBhY2NlcHRhbmNlIGZvciB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJyYXkgdHlwbwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvZyBvcGVuc3NsIGVycm9ycyBvbiBhY2NlcHQgZmFpbHVyZQoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVnaXN0ZXIgZGVmYXVsdCBwb3J0cyBmb3IgdGxzL2R0bHMKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkbyBwcm9wZXIgU1RPUkUgbG9hZGluZyBvZiB0cnVzdGVkIGNlcnRpZmljYXRlcyByYXRoZXIgdGhhbiBmaWxlCiAgIGJhc2VkIGxvYWRpbmcKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZGVkIHR3byBuZXcgQVBJczogbmV0c25tcF9jZXJ0X3RydXN0IGFuZCBuZXRzbm1wX2NlcnRfdHJ1c3RfY2EKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAndGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAnZHRscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDggMjE6MDUgIG1hZ2ZyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBhZ2VudF9yZWFkX2NvbmZpZy5oIGluIDUuNiBhcyB3ZWxsLiBJdCBkaXNhcHBlYXJlZCBpbgogICByMTg4NDMuCgoyMDEwLTA2LTA4IDA5OjI1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOgoKICAgUmVtb3ZlIChvciBhY3RpdmF0ZSkgdW51c2VkIHZhcmlhYmxlcy4KICAgRml4IG1pc25hbWVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgoKMjAxMC0wNi0wOCAwNzoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBBUEkgY2hhbmdlcyBmb3IgcHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrCiAgIG1vZHVsZS4KICAgKE9taXR0ZWQgZnJvbSByZXZpc2lvbiAxODkzMiBjaGVja2luKQoKMjAxMC0wNi0wOCAwNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdXBkYXRlIG1ha2VmaWxlIGZvciBtb3ZlZCBoZWxwZXIgaGVhZGVycwoKMjAxMC0wNi0wNyAyMDoxOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgUmV2ZXJ0aW5nIHJldi4gMTc2MTYsIHRoZSBuZWNlc3NhcnkgY2hlY2sgaXMgYWxyZWFkeSBpbiByZXYuCiAgIDE3NDE1LgoKMjAxMC0wNi0wNiAwMzo0NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRoczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbiBjYXNlIGV4ZWNfcHJlZml4IGlzIHVuc2V0IHRoZW4gc2V0IGl0IHRvCiAgICcke3ByZWZpeH0nIGluIG9yZGVyIHRvIHBpY2sgdXAgb3ZlcnJpZGVzIG9mICRwcmVmaXggaW4gbWFrZQogICBpbnN0YWxsLgoKMjAxMC0wNi0wNCAwNDowNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvIGEgYmV0dGVyIGpvYiBvZiB2ZXJpZnlpbmcgZmluZ2VycHJpbnRzIG9mIHJlbW90ZSBzZXJ2ZXJzCiAgIHB1bGxpbmcgZmluZ2VycHJpbnRzIGZyb20gYSBudW1iZXIgb2YgcG9zc2libGUgcGxhY2VzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgZ28gYWhlYWQgYW5kIGxvZyBvdXRwdXQgZmlsZSBmb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBlcnJvcnMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHR5cG8KCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBjb21tZW50IGFib3V0IHJhbmRvbSBiZWluZyBpbmFkZXF1YXRlOyB3ZSdyZSBkb2luZyB0aGUKICAgYmVzdCB3ZSBjYW4gYmFzZWQgb24gd2hhdCB3ZSBoYXZlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSBhbm90aGVyIHVzZXIgZm9yIHRlc3Rpbmcgc25tcGFwcCBkZWZhdWx0IGNlcnRpZmljYXRlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJ1biBhIGRlZmF1bHQgdGVzdCB3aXRob3V0IGEgbG9jYWwga2V5IHRvIGVuc3VyZSB0aGUgc25tcGFwcCB0eXBlCiAgIGlzIHBpY2tlZCB1cAoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIGxvY2FsIGlkZW50aXR5IGFuZCBwdWxsIGl0IGZyb20gYQogICBmaWxlbmFtZSBvZiB0aGUgaW5pdF9zbm1wKCkgcmVnaXN0ZXJlZCB0eXBlIG5hbWUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBkb2MgdXBkYXRlCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDV1bml4LnQ6CgogICB1bml4IHNvY2tldCB0ZXN0CgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAzdWRwNi50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDR0Y3A2LnQ6CgogICBpcHY2IHRlc3RzCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgbWVudGlvbiB0ZXN0IG5hbWUgaXMgSVB2NAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIGNoZWNrIHRoYXQgdHJhbnNwb3J0IHdhcyBjb25maWd1cmVkCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgYWRkIHN1cHBvcnQgZm9yIG5ldC1zbm1wLWNvbmZpZy5oIGNoZWNrcwoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvTmV0U05NUFRlc3RUcmFuc3BvcnQucG0sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIHNvbWUgYmFzaWMgdHJhbnNwb3J0IGNoZWNraW5nIGZvciBwZXJsOiB1ZHAgYW5kIHRjcAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybCwgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMDAxYmFzaWMudDoKCiAgIGJhc2ljIHRlc3RzIGZvciBwZXJsCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgaW5mcmFzdHJ1Y3R1cmUgbW9kdWxlIGZvciB0ZXN0aW5nIHBlcmwgc3VwcG9ydAoKMjAxMC0wNi0wMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBQb2ludCBMSUJ7Q1VSUkVOVCxBR0UsUkVWSVNJT059IGRvY3VtZW50YXRpb24gdG8gdGhlIGNvcnJlY3QKICAgZmlsZS4KICAgV2FybiBhYm91dCAnbWFrZWRlcGVuZCcgcGlja2luZyB1cCB0ZXN0aW5nIG1vZHVsZSBjb2RlLgogICBFbXBoYXNpcyB1cGRhdGUgb2YgJ2Rvd25sb2FkLmh0bWwnIHBhZ2UKICAgTWVudGlvbiB1cGRhdGUgb2YgT2ZmaWNpYWwgUGF0Y2hlcwogICBTdXBwcmVzcyBicm9rZW4gY29tbWFuZHMKCjIwMTAtMDYtMDMgMTU6MTYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzayBtb2R1bGUuCiAgIEVuc3VyZXMgY29uc2lzdGVudCByZXBvcnRpbmcgYmV0d2VlbiBVQ0QgYW5kIEhvc3RSZXMgRlN5cyB1c2FnZQogICBhbmQgZXh0ZW5kcyAnc2tpcE5GU0luSG9zdFJlc291cmNlcycgY29uZmlnIHRvIFVDRCBkaXNrIHN0YXRzLgoKMjAxMC0wNi0wMyAxNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmM6CgogICBGaXggYnJva2VuIHNpemUgY2FsY3VsYXRpb25zLgogICBTdXBwb3J0IDY0LWJpdCBzaXplL3VzYWdlIHZhbHVlcy4KCjIwMTAtMDYtMDIgMTQ6NTIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIC0td2l0aC1jYSBpbnN0ZWFkIG9mIC0tY2EKCjIwMTAtMDYtMDIgMTQ6NTEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIHRoZSBuZXcgLWJyaWVmIG9wdGlvbiBmb3IgZmluZ2VycHJpbnQgY2FwdHVyaW5nCgoyMDEwLTA2LTAyIDE0OjQwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggLS13aXRoLWNhIGhhbmRsaW5nLCBmaXggQ0EgbmV3Y2VydHMgYm9va2tlZXBpbmcKCjIwMTAtMDYtMDIgMTA6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBwYXJzaW5nIE9JRHMKICAgaW4gY29uZmlnIGZpbGVzLgoKMjAxMC0wNi0wMiAwMDoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjaGVjayB0aGF0IENBIGNlcnRpZmljYXRlcyBjcmVhdGVkIGFmdGVyIHNubXBkIHN0YXJ0cyBhcmUgc3RpbGwKICAgdXNhYmxlOyBjaGVjayBhbGwgb3V0cHV0IGZpbmdlcnByaW50cyB0byBlbnN1cmUgdGhleSB3ZXJlCiAgIHByb3Blcmx5IGNyZWF0ZWQKCjIwMTAtMDYtMDIgMDA6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGQgbWlzc2luZyBkaXJlY3RvcnkgYW5kIGZpbGUgc3VmZml4IHRvIGNhIGludm9jYXRpb25zCgoyMDEwLTA2LTAyIDAwOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjaGVjayB0aGF0IGNlcnRpZmljYXRlIG91dHB1dCBmaW5nZXJwcmludHMgd2VyZSBmb3VuZAoKMjAxMC0wNi0wMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIHR3byBuZXcgZnVuY3Rpb25zIGZvciB2YWx1ZSBjb21wYXJpc29uIHRlc3Qgb3V0cHV0CgoyMDEwLTA2LTAyIDAwOjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIHJlbW92ZSBuby1sb25nZXItdXNlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0b2tlbiBzcGVjaWZpZXIgKHdlCiAgIHJlcXVpcmUgYSBjb3B5IG9mIHRoZSBrZXkpCgoyMDEwLTA2LTAyIDAwOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIC0gY2hhbmdlZCAnZmluZ2VycHJpbnQnIHRva2VuIHRvIG1vcmUgZ2VuZXJpYyAnaWRlbnRpdHknIGtleXdvcmQKICAgLSBhZGRlZCB0aGUgYWJpbGl0eSBmb3IgbmV0c25tcF9jZXJ0X2ZpbmQgdG8gdHJ5IG11bHRpcGxlIHR5cGVzCiAgIChGUCAmIGZpbGUpCiAgIC0gYW5kIHByb3ZpZGUgdGVzdCBzdWl0ZSB0ZXN0IGZvciBpdC4KCjIwMTAtMDYtMDEgMjA6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBQZXJsIGV4dGVuc2lvbiBtb2R1bGVzIGNhbiBsb2FkIHRoZSBOZXQtU05NUAogICBETExzIHdoaWxlIHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHJlZ3Jlc3Npb24gdGVzdHMuCgoyMDEwLTA2LTAxIDE2OjQ3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ham9yIHVwZGF0ZSBidWcgZml4ZXMgYW5kIGZlYXR1cmVzIC0gaW50ZXJhY3RpdmUgbW9kZSwgc2VwYXJhdGUKICAgQ0EgZGlycywgZ2VuIGNzciBmcm9tIGNlcnQsIGZpbmdlcnByaW50IGRpc3BsYXkgLS1icmllZiwKICAgZWxpbWluYXRlIHNlZCwgb3BlbnNzbC5jb25mIG92ZXJ3cml0ZSBhbmQgdGVtcGxhdGluZwoKMjAxMC0wNi0wMSAxNDo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDYtMDEgMTQ6MjUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgSVAtTUlCOjppcElmU3RhdHNSZWFzbVJlcWRzIHZhbHVlLgogICAKICAgSnVzdCBmaXhpbmcgYSBzdHVwaWQgdHlwby4KCjIwMTAtMDUtMzEgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBlbmFibGVkIFVuaXggdHJhbnNwb3J0LgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg3IGZyb20gdGhlIFY1LjUgYnJhbmNoKS4KCjIwMTAtMDUtMzAgMjI6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgdG8gcnVuIHdpdGggb2xkZXIgUGVybCAoZS5nLiBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoCiAgIElSSVgKICAgNi41KQoKMjAxMC0wNS0zMCAyMjo0OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHBvbGlzaCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTMwIDIwOjE5ICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERvIG5vdCBsaW5rIHdpdGggbGlibmV0c25tcGhlbHBlcnMgYW55IG1vcmUgYXMKICAgaXQgaXMgZW1wdHkuCgoyMDEwLTA1LTMwIDE5OjE4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXAuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBhIHZvaWQgYXJndW1lbnQgZm9yIHRoZSBkYXRhIGFyZ3VtZW50IG9mCiAgIHhkdW1wLgoKMjAxMC0wNS0zMCAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBCVUc6IDIwNTE3NDI6IGFkZGVkIG1pc3NpbmcgUEVSTF9TWVNfSU5JVDMoKSBjYWxsIChzZWUKICAgYWxzbyBtYW4gcGVybGVtYmVkKS4KCjIwMTAtMDUtMzAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZnJlZSgpIGNhbGxlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCiAgIGZpcnN0KS4KCjIwMTAtMDUtMzAgMTY6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGxpYjogRG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBpbmNsdWRlZC4KCjIwMTAtMDUtMzAgMTI6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLiBSZW1vdmUKICAgdW5uZWNlc3NhcnkgaW5jbHVkZXMuCgoyMDEwLTA1LTMwIDA2OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2R1bW15LmM6CgogICBNYWRlIHN1cmUgdGhhdCBsaWJuZXRzbm1waGVscGVycyBpcyBub3QgZW1wdHkgc3VjaCB0aGF0IGJ1aWxkaW5nCiAgIE5ldC1TTk1QIG9uIEFJWCBhbmQgSVJJWCBpcyBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDUtMjkgMDk6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRm9sbG93LXVwIGZvciByMTg5MDI6IHdvcmtzIGFnYWluIHdpdGhvdXQgVEFQOjpIYXJuZXNzLgoKMjAxMC0wNS0yOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbG9uZy1hZ28gYnJva2VuIHZlcmJvc2l0eQoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbW9yZSBwcmV2aW91c2x5IGJyb2tlbiBvcHRpb24gcmVuYW1lczsgY2hhbmdlIC1kIHRvCiAgIG1hc3Rlci1kaXJlY3RvcnkgYW5kIGFkZCBhcyBhIHJlYWwgYXJndW1lbnQKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIG1vcmUgbWlzc2luZyBvbGR1Y2QgcmVuYW1lcwoKMjAxMC0wNS0yOCAyMjo1NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIHJlbmFtZWQgJ29sZHVjZCcgdG8gJ3NpbXBsZScgdG8gcHV0IGEgbW9yZSBwb3NpdGl2ZSBzcGluIG9uIHRoZW0KCjIwMTAtMDUtMjggMjI6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSB0ZXN0IHN1aXRlCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgcmV2ZXJ0IHVuaW50ZW50aW9uYW5hbGx5IGNvbW1pdHRlZCB0ZXN0IHRlc3QKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBmcmVlIHZhcmlhYmxlcyBhZ2FpbgoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxrcyBzbyB0aGF0IG11bHRpcGxlIHdhbGtzIHRlcm1pbmF0ZSBwcm9wZXJseQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIHBhdGNoIHRvIGhhbmRsZSB0ZXN0aW5nIG9mIGxvb3Bpbmcgb2YgbXVsdGlwbGUgdmFyYmluZHMgaW4gYSB3YWxrCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgaW5pdGFsIHBhdGNoIHRvIHByZXZlbnQgbG9vcGluZyB3YWxrcwoKMjAxMC0wNS0yOCAyMDo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGltcGxlbWVudCBjZXJ0IGxvb2t1cCBieSBmaWxlbmFtZQoKMjAxMC0wNS0yOCAwNzowMiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgY29uc3QgZGVjbGFyYXRpb25zIHRvIHRoZSBkaXNhYmxlZCB2ZXJzaW9ucwogICBvZiB0aGUgZGVidWdnaW5nIGNvZGUgYXMgd2VsbC4KCjIwMTAtMDUtMjggMDI6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhZGQgcGVyc2lzdGVuY2U7IGNoZWNrIGZvciBjb2wgbW9kcyB3aGlsZSByb3cgYWN0aXZlCgoyMDEwLTA1LTI4IDAyOjExICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50bGliOiBuZXcgZnVuY3Rpb25zIHRvIG1ha2Ugc3Rhc2ggcHRyIGFuZCBuZXdyb3cKICAgYXZhaWxhYmxlIHRvCiAgIHRhYmxlX2RhdGFzZXQgaGFuZGxlcnMKICAgbm9uZXdzOiBmaXggdHlwbzsgdGFicyB0byBzcGFjZXM7IHVzZSBzaXplb2YgaW5zdGVhZCBvZiBjb25zdGFudAoKMjAxMC0wNS0yNyAxODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNS0yNyAxODoyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICAibWFrZSB0ZXN0IiB3aXRob3V0IFRBUDo6SGFybmVzcyAod2FzIGJyb2tlbiBieSByMTg4MDIpLgoKMjAxMC0wNS0yNyAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4gTW9zdCBmaXhlcyBpbnZvbHZlZCBhZGRpbmcgdGhlCiAgICJjb25zdCIga2V5d29yZC4KCjIwMTAtMDUtMjcgMTM6NTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjk3MjU3OTogZml4ZWQgY2hlY2tpbmcgb2YKICAgc25tcFRhcmdldEFkZHJSb3dTdGF0dXMgU0VUIHJlcXVlc3RzLgoKMjAxMC0wNS0yNyAxMzo0MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICByZXZlcnQgcGFydCBvZiAxODg4NTogdGVzdCBmaWxlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBydW4gYnkKICAgdGhlbXNlbHZlcyB0b28KCjIwMTAtMDUtMjcgMTE6MTkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBjb3JyZWN0bHkgY2FsY3VsYXRlIGlmWFRhYmxlLmlmSENJblVjYXN0UGt0cyBvbiAzMi1iaXQKICAgTGludXgKICAgCiAgIExpbnV4IGRvZXMgbm90IHByb3ZpZGUgc3RhbmRhbG9uZSBjb3VudGVyIGZvciBpbmNvbWluZyB1bmljYXN0CiAgIHBhY2tldHMgKGl1Y2FzdCkKICAgLSBpdCBwcm92aWRlcyBjb3VudGVyIG9mIGFsbCBwYWNrZXRzIChpYWxsKSArIHNlcGFyYXRlIGNvdW50ZXIKICAgZm9yIHRoZSBtdWx0aWNhc3QKICAgb25lcyAoaW1jYXN0KS4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YgaWZUYWJsZSByZWFkIHRoZXNlCiAgIGNvdW50ZXJzIGFuZAogICBjYWxjdWxhdGVkIGl1Y2FzdCA9IGlhbGwgLSBpbWNhc3QgKmJlZm9yZSogdGhlc2UgdmFsdWVzIHdlcmUKICAgZXhwYW5kZWQgaW50bwogICA2NGJpdHMuIFRoaXMgcHJvZHVjZWQgZXJyb3JzIG9uIDMyYml0IHN5c3RlbXMgd2hlbiBpYWxsCiAgIG92ZXJmbG93ZWQgdG8gemVybyBhbmQKICAgaW1jYXN0IHdhcyBub3plcm8gLT4gaXVjYXN0IGdvdCBuZWdhdGl2ZSBhbmQgJ2M2NCAzMiBiaXQgY2hlY2sKICAgZmFpbGVkJyBlcnJvciBpbgogICBzbm1wZCBsb2cuIE5vdyB0aGUgYWdlbnQgZXhwYW5kcyB0aGVzZSB2YWx1ZXMgdG8gNjRiaXRzIGZpcnN0IGFuZAogICAqICAgICAqdGhlbiogcGVyZm9ybXMgICAgdGhlIGNhbGN1bGF0aW9uLCB1c2luZyBhIG5ldyBmbGFnLiAKICAgICAgMjAxMC0wNS0yNyAwODoxOCAgbWFnZnIKCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9SVU5URVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1vdmUgdGhlIHNldHRpbmcgb2YgTUlCRElSUyBmcm9tIHRoZSBzdXBwb3J0CiAgIHNjcmlwdCB0byB0aGUgZHJpdmVycyBzaW5jZSBpdCBpcyBuZWVkZWQgZm9yIHRoZSBDIHRlc3RzIGFzIHdlbGwuCgoyMDEwLTA1LTI3IDA4OjA5ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVXNlIG9sZHVjZF9ydW4sIG5vdCBydW5fb2xkdWNkLiBDaGFuZ2Ugc3JjZGlyCiAgIHRvIHJlZmVyIHRvIHRoZSB0b3AgZGlyZWN0b3J5IGFuZCBub3QgdGhlIHRlc3Rpbmcgc3ViZGlyZWN0b3J5IGFzCiAgIHRoYXQgaXMgd2hhdCBpcyBleHBlY3RlZCBpbiB0aGUgdGVzdCBzY3JpcHRzLgoKMjAxMC0wNS0yNyAwNToxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjcgMDU6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIva2V5dG9vbHMuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgbW9yZSBjb25zdCBjb3JyZWN0bmVzcwoKMjAxMC0wNS0yNyAwNDoxOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0cyBmb3IgYWdlbnQtbm90LWtub3duLXVzZXItY2VydGlmaWNhdGVzCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVmZXJlbmNlIHRoZSBpdG5lcm5hbCBzdXBwb3J0IGFuZCByZWxhdGVkIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbC9PUEVOU1NMLUxJQ0VOU0UsIHNubXBsaWIvb3BlbnNzbC9SRUFETUU6CgogICBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGxpYm5ldHNubXA6IFN1cHBvcnQgZm9yIGEgc3RyZWFtLWxpbmUgc3RyaXBwZWQgZG93biB2ZXJzaW9uCiAgIG9mIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCB1c2luZyAtLXdpdGgtb3BlbnNzbD1pbnRlcm5hbAoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgCiAgICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIG1vcmUgZGVwZW5kZW5jaWVzIGZvciBleHRlcm5hbCBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL29wZW5zc2wsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NvcmUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kMzJfY29tbW9uLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDVfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGEuaCwgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGFfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIG1vdmUgb3BlbnNzbCBjb2RlIGludG8gYSBzdWJkaXJlY3RvcnkKCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkOgoKICAgZml4IHRlc3Rpbmcgc28gaXQgdXNlcyBtdWx0aXBsZSB0eXBlcyBvZiBjcnlwdG8KCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5pdGlvbnMgYW5kIGZpbGVzIGZvciBkb2luZyBpbnRlcm5hbCBjcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgaW5jbHVkZSBpbnRlcm5hbCBhZXMvZGVzIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oOgoKICAgaW5pdGFsIGNvcGllcyBvZiBjZmIxMjggbW9kZXMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucyBvZiBhZXNfY29yZS5jIGFuZCBhZXNfbG9jbC5oCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBhZXMuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmM6CgogICBpbml0aWFsIGNvcHkgb2YgdGhlIG9wZW5zc2wgYWVzX2NmYi5jIGZpbGUKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBpbmNsdWRlIGxvY2FsaXplZCBjb3BpZXMgb2YgdGhlIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICB1c2UgaW50ZXJuYWwgREVTCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jOgoKICAgbG9jYWxpemVkIGNvcHkgb2YgdGhlIGNiY19lbmMuYyBmaWxlIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgZGVzL3Nwci5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGFkZGVkIGRlc19lbmMuYyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX3NoYS5oOgoKICAgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIG9wZW5zc2wncyBkZXMuaAoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBsb2NhbGl6ZWQgaGVhZGVyIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGluaXRhbCBjb3BpZXMgb2Ygc29tZSBvZiB0aGUgb3BlbnNzbCBERVMgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgZmluaXNoaW5nIHBvcnRpbmcgb2YgaW50ZXJuYWwgYXV0aCBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGludGVybmFsIGNyeXB0byBmaWxlcyB0byB0aGUgY2hlY2svdXNlIGxpc3QKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGxvY2FsaXplZCBmaWxlIG5hbWVzIHdpdGggb3BlbnNzbCBwcmVmaXhlcwoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1LmM6CgogICBsb2NhbGl6ZSB0aGUgbWQ1IGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBjb21wbGV0ZWx5IGxvY2FsaXplIHRoZSBvcGVuc3NsIFNIQSBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc2hhLmg6CgogICBpbml0aWFsIHZlcmlzb24gb2Ygc2hhLmggY29weQoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGFkZGVkIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBjcnlwdG8gZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBtYWtlIHVzZSBvZiBpbnRlcm5hbCBjcnlwdG8gaGFzaCBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDMgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY29uZmlndXJlIGNoZWNrcyBmb3IgaW50ZXJuYWwtY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjYgMjI6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBwcm9wZXJseSB2ZXJpZnkgZXhwZWN0ZWQgc2VydmVyIGNlcnRpZmljYXRlcyB1bmRlciBEVExTOyBhZGQgYQogICBuZXcgZmxhZyBpbiB0bHNiYXNlIHRvIGluZGljYXRlIHZlcmlmaWNhdGlvbiBoYXMgb2NjdXJyZWQKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIGNvbXBpbGVyIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIGFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIGEgZmV3IHBsYWNlcwoKMjAxMC0wNS0yNiAxOTo0NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wbWlicywgbGlibmV0c25tcGhlbHBlcnMgYW5kCiAgIGxpYm5ldHNubXBhZ2VudCBkbyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbiBjb25maWd1cmVkIHdpdGgKICAgLS1lbmFibGUtc2hhcmVkLgoKMjAxMC0wNS0yNiAxNzo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBORVdTOiBtb3ZlZCBhbGwgZnVuY3Rpb25zIGRlZmluZWQgaW4gbGlibmV0c25tcGhlbHBlcnMgdG8KICAgbGlibmV0c25tcGFnZW50LiBsaWJuZXRzbm1waGVscGVycyBpcyBub3cgYW4gZW1wdHkgbGlicmFyeS4KCjIwMTAtMDUtMjYgMTc6MjAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBSZXZlcnRlZCByMTg4MjkgaW4gb3JkZXIgdG8gbWluaW1pemUgZGlmZnMgd2l0aCBvbGRlciBicmFuY2hlcy4KCjIwMTAtMDUtMjUgMDc6MjMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIFRlbGwgbmV0LXNubXAtY2VydCB3aGVyZSBuZXQtc25tcC1jb25maWcgaXMgbG9jYXRlZAoKMjAxMC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ29ycmVjdCB0aGUgc2lnbmF0dXJlIG9mIG1haW4uIFVzZSAjaW5jbHVkZSBpbnN0ZWFkIG9mIHNvdXJjaW5nCiAgIHRvIGdldCB0aGUgY29kZSB1bmRlciB0ZXN0IGluIG9yZGVyIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMTAtMDUtMjUgMDc6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBBZGQgYXJndW1lbnRzIHRvIHNwcmludGYgc3RhdGVtZW50cyB0byBtYWtlIHRoZSB0ZXN0IHdvcmsKCjIwMTAtMDUtMjUgMDc6MDcgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNhYmxlZCBjb2RlCgoyMDEwLTA1LTI1IDA1OjIwICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNwbGl0IHNubXBJUEJhc2VEb21haW4gYW5kIG1vdmUgdGhlIElQdjQgcGFydHMKICAgdG8gSVB2NEJhc2UgYW5kIHRoZSBzb2NrZXQgZ2VuZXJpYyBwYXJ0cyB0byBTb2NrZXRCYXNlLgoKMjAxMC0wNS0yNCAyMDoyNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpbmlzaCB0bHN0bVBhcmFtc1RhYmxlIGxhc3RDaGFuZ2VkIHNjYWxhcgoKMjAxMC0wNS0yNCAxOToyOCAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQWRkIC0tZXh0ZXJuYWwtbGlicyBpbiBvcmRlciB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0ZXN0cyBvbgogICBzb2xhcmlzCgoyMDEwLTA1LTI0IDEzOjMzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhcmdoLi4gZml4IGZhbGxvdXQgZnJvbSBtYW51YWxseSAobWlzKWFwcGx5aW5nIHBhdGNoCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGZpcnN0IHBhc3MgYXQgdGxzdG1QYXJhbXNUYWJsZQoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBkZWZpbmVzIHRvIG1hdGNoIE1JQiBuYW1lcywgcGVyIGdyYW5kLXBvb2JhaAoKMjAxMC0wNS0yNCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYzoKCiAgIHVwZGF0ZSBPSUQgdG8gbWF0Y2ggdXBjb21pbmcgUkZDCgoyMDEwLTA1LTI0IDExOjQ4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcGFnZW50LCBsaWJuZXRzbm1waGVscGVyczogbW92ZWQgdGhlIGZ1bmN0aW9ucwogICBuZXRzbm1wX2J1bGtfdG9fbmV4dF9maXhfcmVxdWVzdHMoKSwKICAgbmV0c25tcF9nZXRfYnVsa190b19uZXh0X2hhbmRsZXIoKSwgbmV0c25tcF9yZWdpc3Rlcl9udWxsKCksCiAgIG5ldHNubXBfcmVnaXN0ZXJfbnVsbF9jb250ZXh0KCkgYW5kIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCiAgIGZyb20gbGlibmV0c25tcGhlbHBlcnMgdG8gbGlibmV0c25tcGFnZW50LgogICBOb3RlczoKICAgLSBUaGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwbGljYXRpb25zCiAgIHRoYXQgbGluayB3aXRoICQobmV0LXNubXAtY29uZmlnIC0tYWdlbnQtbGlicykgc2luY2UgdGhpcwogICBpbnZvbHZlcyBsaW5raW5nIHdpdGggYm90aCBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50LgogICAtIEZ1bmN0aW9ucyBoYXZlIGJlZW4gbW92ZWQgYmV0d2VlbiBsaWJyYXJpZXMgYnkgbW92aW5nIGVudGlyZQogICBzb3VyY2UgZmlsZXMuCgoyMDEwLTA1LTI0IDEwOjEwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFVzZSBwcm9wZXIgc3RyaW5nIHNpemVzIGFuZCBtYWtlIHN1cmUgc3RyaW5ncyBhcmUKICAgemVyby10ZXJtaW5hdGVkLgoKMjAxMC0wNS0yNCAwODowMSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXAgZG9lcyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbgogICBjb25maWd1cmVkIHdpdGggLS1lbmFibGUtc2hhcmVkLgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmwgbW9kdWxlcyBkbyBub3cgYnVpbGQgKC0td2l0aC1wZXJsLW1vZHVsZXMpLgogICBOb3RlOiB0aGUgVDA2MHRyYXBkcGVybF9vbGR1Y2QsIFQwNjFhZ2VudHBlcmxfb2xkdWNkIGFuZAogICBUMTE1YWdlbnR4cGVybF9vbGR1Y2QgdGVzdHMgc3RpbGwgZmFpbC4KCjIwMTAtMDUtMjMgMjM6MDYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXBkYXRlIGZpbGVuYW1lcy9wYXRzaCBmb3IgcmVjZW50IGZpbGUgcmVuYW1lczsgZml4IHR5cG9zCgoyMDEwLTA1LTIzIDIyOjA4ICBtYWdmcgoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgdGhlIHNhbWUgY29tcGlsZXIgY29tbWFuZCBhbmQgZmxhZ3MgZm9yCiAgIGJ1aWxkaW5nIG9mIHRlc3RzIGFzIGZvciBidWlsZGluZyBvZiB0aGUgY29kZSwgdGh1cyBlbmFibGluZyB0ZXN0CiAgIG9mIGUuZy4gMzItYml0IGNvZGUgY29tcGlsZWQgb24gYSA2NC1iaXQgcGxhdGZvcm0uCgoyMDEwLTA1LTIzIDIxOjQxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGluY2x1ZGUvY29uZmlnIGZpbGUvcGF0aHMgZm9yIHJlY2VudCByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjMxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICByZW5hbWUgZmlsZXMgZm9yIE1JQiByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZToKCiAgIHJlbmFtZSBkaXJlY3RvcmllcyB0byBtYXRjaCByZW5hbWVzIGluIE1JQgoKMjAxMC0wNS0yMCAwODo0OCAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3dhcHBlZCBsaW5rIG9yZGVyIG9mIC1sbmV0c25tcGhlbHBlcnMgLWxuZXRzbm1wbWliczogbmV0c25tcG1pYnMKICAgZGVwZW5kcyBvbiBuZXRzbm1waGVscGVycyBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMC0wNS0yMCAwODo0MiAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE5IDE4OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaGluZwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIG91dHB1dCBmaWxlbmFtZXMgb2YgZmFpbGVkIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHdpcGUgdHJhaWxpbmcgY29tbWVudCBDIG1hcmtlciBpZiBpdCBleGlzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgdGl0bGUgdGhlIFNOTVB2MyB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGVzdGluZyBvZiBidWlsdCB0aXRsZXMKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgb25seSBwcmludCBmYWlsdXJlIGhlYWRlciBpZiB0aGVyZSB3YXMgYXQgbGVhc3Qgb25lCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZDoKCiAgIG1ha2UgZGVzY3JpcHRpdmUgdGl0bGVzIHdvcmsgYWdhaW4KCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIHJlbmFtZSBmaWxlcyBzbyBwcmVmaXhpbmcgaXMgYmFzZWQgb24gdGhlIHN1aXRlIG5hbWUsIG5vdCBmaWxlCiAgIHR5cGUKCjIwMTAtMDUtMTkgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5zdWJzLnBsLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybDogYnVpbGRpbmcgdGhlIFBlcmwgbW9kdWxlcyB3aXRoIHRoZSBDeWd3aW4KICAgUGVybCBwYWNrYWdlIGlzIG5vdyBwb3NzaWJsZS4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4OCBmcm9tIHRoZSBWNS41IGJyYW5jaC4pCgoyMDEwLTA1LTE5IDE3OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xOSAxMjowNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRmlyc3QtZHJhZnQgc3VwcG9ydCBmb3IgQUlYIGZpbGVzeXN0ZW0gSEFMIG1vZHVsZSAodW50ZXN0ZWQpCgoyMDEwLTA1LTE5IDExOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBTdXBwb3J0IGZvciBTb2xhcmlzLXN0eWxlICdnZXRtbnRlbnQnIEFQSS4KCjIwMTAtMDUtMTkgMDk6NTcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIFNpbXBsaWZ5IHRoZSBoYW5kbGluZyBvZiB1bmtub3duL3Vud2FudGVkIGZpbGUgc3lzdGVtcy4KCjIwMTAtMDUtMTkgMDk6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBGaXggbWlzc2luZy9icm9rZW4gQVBJIGRlY2xhcmF0aW9ucy4KCjIwMTAtMDUtMTkgMDg6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIE1hZGUgZXJyb3IgbWVzc2FnZXMgbW9yZSBjbGVhciBpbiBjYXNlIG9mIGZhaWx1cmUgb3Igd3JvbmcKICAgaW52b2NhdGlvbi4KCjIwMTAtMDUtMTkgMDA6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdCBmb3IgdXNpbmcgYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgYSBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wNS0xOCAyMzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIHdlIGNhbGwgdGhlIHJpZ2h0IFBlcmwKCjIwMTAtMDUtMTggMjA6MzkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBpbmNsdWRlIGxvY2FsIHBvcnQgbnVtYmVyIGluIHBhY2tldCBkdW1wcy4gQW4KICAgZXhhbXBsZToKICAgCiAgIFJlY2VpdmVkIDM2IGJ5dGUgcGFja2V0IGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCAyMiAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMSAxNSAwMgogICAwIi4uLi4ucHVibGljLi4uCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDA3IDMwIDA1IDA2CiAgIC43Li4uLi4uLi4uMC4wLi4KICAgMDAzMjogMDEgMDEgMDUgMDAgLi4uLgogICAKICAgUmVjZWl2ZWQgU05NUCBwYWNrZXQocykgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIEdFVE5FWFQgbWVzc2FnZQogICAtLSBjY2l0dC4xCiAgIAogICBTZW5kaW5nIDExOCBieXRlcyB0byBVRFA6IFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDc0IDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEEyIDY3IDAyCiAgIDB0Li4uLi5wdWJsaWMuZy4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgNTkgMzAgNTcgMDYKICAgLjcuLi4uLi4uLi4wWTBXLgogICAwMDMyOiAwOCAyQiAwNiAwMSAwMiAwMSAwMSAwMSAwMCAwNCA0QiA0QyA2OSA2RSA3NSA3OAogICAuKy4uLi4uLi4uS0xpbnV4CiAgIDAwNDg6IDIwIDYxIDczIDc1IDczIDIwIDMyIDJFIDM2IDJFIDMzIDMzIDJFIDMyIDJEIDczIGFzdXMKICAgMi42LjMzLjItcwogICAwMDY0OiA2MyA3MyA3NCAyMCAyMyAzMSAyMCA1MyA0RCA1MCAyMCA1MCA1MiA0NSA0NSA0RCBjc3QgIzEgU01QCiAgIFBSRUVNCiAgIDAwODA6IDUwIDU0IDIwIDUzIDYxIDc0IDIwIDQxIDcwIDcyIDIwIDMzIDIwIDMyIDMxIDNBIFBUIFNhdCBBcHIKICAgMyAyMToKICAgMDA5NjogMzEgMzAgM0EgMzUgMzggMjAgNDMgNDUgNTMgNTQgMjAgMzIgMzAgMzEgMzAgMjAgMTA6NTggQ0VTVAogICAyMDEwCiAgIDAxMTI6IDc4IDM4IDM2IDVGIDM2IDM0IHg4Nl82NAoKMjAxMC0wNS0xOCAxOTo0MiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUFkZHJUYWJsZQogICAtIGRlYWwgd2l0aCBoYXNoIHR5cGUgcHJvcGVybHkgZm9yIGdldC9zZXQgYW5kIHBlcnNpc3RlbmNlCiAgIC0gYWRkIGNvdW50IGFuZCBsYXN0IGNoYW5nZWQgc2NhbGFycwoKMjAxMC0wNS0xOCAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljYWwgT0lEIGZyb20gdXBjb21pbmcgcmZjCgoyMDEwLTA1LTE4IDE2OjE2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNpYWwgT0lEcyBmcm9tIHVwY29taW5nIFJGQzsgYWRkIGNvdW50L2xhc3QgY2hhbmdlZAogICBzY2FsYXJzCgoyMDEwLTA1LTE4IDE0OjU2ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjAwMTY1NjogSGFuZGxlIG51bGwtdGVybWluYXRpb24gb2YKICAgc3RyaW5nIHZhbHVlcyBwcm9wZXJseS4KICAgQmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgdGhlIHBhdGNoIGZyb20gVG9tbXkgQmVhZGxlLgoKMjAxMC0wNS0xOCAxNDozOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgV29ya2luZyg/KSBIQUwtYmFzZWQgdmVyc2lvbiBvZiBockZTVGFibGUuCgoyMDEwLTA1LTE4IDE0OjEyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE3IDIxOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIHVzZSBwcm9wZXIgVFNNIHNlY3VyaXR5IGNvZGUgKDQpIG5vdyB0aGF0IGl0J3Mgb2ZmaWNpYWwKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgYmVnaW5uaW5nIG9mIGEgY29udGFpbmVyIHVuaXQgdGVzdAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rlc3RpbmcuaDoKCiAgIGEgYmFzaWMgQy1jb2RlIGJhc2VkIHRlc3QgcmVwb3J0aW5nIG1lY2hhbmlzbQoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBiYXNpYyBkZWZhdWx0X3N0b3JlIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWI6CgogICBhIGJ1aWxkIHN5c3RlbSBmb3IgYmFzaWMgbGlibmV0c25tcCB0ZXN0cwoKMjAxMC0wNS0xNyAxODoxNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGZpeCBmaW5nZXJwcmludCBiaW4vaGV4IGNvbnZlcnNpb247IGFkZC9yZW1vdmUgY2VydCBzZWMgbWFwcyB2aWEKICAgbWliIG5vdyB3b3JrcwoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9iaW5hcnlfdG9faGV4CgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmcHJpbnRmKHN0ZGVyciAtPiBERUJVR01TR1RMKCgKCjIwMTAtMDUtMTcgMTg6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBjaGVjayBmb3IgaGFzaCB0eXBlCgoyMDEwLTA1LTE3IDE2OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFrZSBSVU5URVNUUyB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZWRpcgoKMjAxMC0wNS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5URVNUUzoKCiAgIG1hZGUgYSBsaW1pdGVkIHJ1biB0ZXN0IHBvc3NpYmxlIGFnYWluIHdpdGhvdXQgcGVybAoKMjAxMC0wNS0xNyAxNTozMiAgZHRzMTIKCiAgICogIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVXNlIG5ld2VyIERpc01hbiBFdmVudCBNSUIgY29kZSBmb3IgTVNWQy1iYXNlZCBidWlsZHMKICAgKGluIGxpbmUgd2l0aCBhbGwgY29uZmlndXJlLWJhc2VkIGJ1aWxkcykKCjIwMTAtMDUtMTcgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0aGUgcmV0dXJuIG91dHNpZGUgdGhlIGlmIHN0YXRlbWVudAoKMjAxMC0wNS0xNyAxNToxOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyBwdWJsaWMgaW50ZXJmYWNlIHRvIEhBTC1iYXNlZCBmaWxlc3RvcmUgbW9kdWxlLgoKMjAxMC0wNS0xNyAxMDo0MSAgYnZhc3NjaGUKCiAgICogd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgRm9sbG93LXVwIGZvciByMTg3NTQgKHJldmVydCByMTg3MzgpOiByMTg3NTQgb25seSBwYXJ0aWFsbHkKICAgcmV2ZXJ0ZWQgcjE4NzM4CiAgIGFuZCBoZW5jZSBicm9rZSB0aGUgV2luMzItYnVpbGQuIEZpbmlzaGVkIHJldmVyc2FsIG9mIHIxODczOCBieQogICByZXN0b3JpbmcKICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgoKMjAxMC0wNS0xNiAxODoxNyAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgRm9sbG93LXVwIGZvciByMTg3MjY6IG9ubHkgcGFzcyAtZnN0YWNrLXByb3RlY3RvciogZmxhZ3MgdG8gdGhlCiAgIGxpbmtlciBpbnN0ZWFkIG9mIGFsbCAtZiogZmxhZ3Mgc3VjaCB0aGF0IGl0IGJlY29tZXMgbGVzcyBsaWtlbHkKICAgdGhhdCB0aGlzIG1vZGlmaWNhdGlvbiBjYXVzZXMgdHJvdWJsZSB3aXRoIG5vbi1HTlUgdG9vbGNoYWlucy4KCjIwMTAtMDUtMTYgMTg6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHNoZWxsIGNvZGUgZm9yIGNvbnZlcnRpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIGFuIGFic29sdXRlCiAgIHBhdGggbW9yZQogICByb2J1c3QgYW5kIGNvbnZlcnRlZCAiJHsuLi4jLi4ufSIgY29uc3RydWN0IGludG8gZWNobyArIGN1dC4KCjIwMTAtMDUtMTYgMTg6MTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTW9yZSBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSB0bwogICBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUgc3Vic3RpdHV0aW9ucywgbmVjZXNzYXJ5IHRvIG1ha2UKICAgdGVzdCAwNTkgYW5kIDA2NSBwYXNzLgoKMjAxMC0wNS0xNiAxNzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGZpeCB0ZXN0cyBmb3IgY2hlY2tpbmcgc2h1dGRvd24gb2YgYXBwbGljYXRpb25zIHRvIG5vdCByZXBvcnQKICAgZmFsc2UgbmVnYXRpdmVzCgoyMDEwLTA1LTE2IDEyOjE1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSB0ZXN0IFQwNTkgcGFzcyBhZ2Fpbi4gVGhpcyB0ZXN0IHdhcyByZWNlbnRseSBicm9rZW4gYnkKICAgcGFzc2luZyBhcmd1bWVudHMgdG8gaXQgd2l0aCBhYnNvbHV0ZSBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCiAgIHBhdGhzLgoKMjAxMC0wNS0xNiAxMjoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkOgoKICAgQWRkZWQgJ1NLSVBJRk5PVCBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUnLgoKMjAxMC0wNS0xNiAxMTo0MiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE2IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFwcHMvc3NodG9zbm1wLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIG9sZCBjb2RlLgoKMjAxMC0wNS0xNiAwOTo1OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBkb24ndCB0cmlnZ2VyIGEgbmV0c25tcF9hc3NlcnQoKSB3aGVuCiAgIG5vIGV4dGVuc2lvbiBETExzIGhhdmUgYmVlbiBsb2FkZWQuCgoyMDEwLTA1LTE1IDE3OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3RvcC1nYXAgZml4IHRvIHVuYnJlYWsgIm1ha2UgdGVzdCIgZm9yIHRoZSBuaWdodGx5IGJ1aWxkcwoKMjAxMC0wNS0xNSAxMDo1OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgUmV2ZXJ0ZWQgcjE4NzI3IGJlY2F1c2UgaXQgY2F1c2VkIGJ1aWxkIGVycm9ycyBvbiBTb2xhcmlzLCBBSVgKICAgYW5kIEhQLVVYLgoKMjAxMC0wNS0xNSAwMDo0MiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGw6CgogICByZXZlcnQgcjE4NzM4IHNpbmNlIG5ldyB0cmFuc3BvcnQgcmVxdWlyZSBkeW5hbWljbHkgYnVpbHQgaGVhZGVyCiAgIGZpbGVzCgoyMDEwLTA1LTE1IDAwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbG9nIGVudiB2YXJpYWJsZXMgdXNlZCB0byB0aGUgaW52b2tlZCBmaWxlCgoyMDEwLTA1LTE0IDIxOjI5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBmaXggc2NyaXB0IHNvIGl0IGNhbiBiZSBpbnZva2VkIG91dHNpZGUgdGhlIHRlc3QgZW52aXJvbm1lbnQKICAgYWdhaW4KCjIwMTAtMDUtMTQgMjE6MjggIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRMUy1UTS1NSUIgd2l0aCBmaW5hbCBJQU5BIGFzc2lnbm1lbnQgc2xvdHMKCjIwMTAtMDUtMTQgMjE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgVFNNIHByZWZpeGVzCgoyMDEwLTA1LTE0IDIxOjI2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBEb21haW4gbnVtYmVycwoKMjAxMC0wNS0xNCAyMToyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldCBkZWZhdWx0IHZlcnNpb24gYW5kIHNlY2xldmVsIGlmIHRscy9kdGxzCgoyMDEwLTA1LTE0IDE1OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayByYyBmcm9tIHNlY25hbWUgbWFwcGluZzsgY2xhcmlmeSBjb21tZW50CgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IHVzZSB1bnNvcnRlZCBjb250YWluZXI7IGRvbid0IGZyZWUgY2FsbGVyJ3MgY29udGFpbmVyCgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbGluZWFyX3NlYXJjaCBmb3IgdW5zb3J0ZWQgY29udGFpbmVycwoKMjAxMC0wNS0xNCAxMTo1NiAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJ5IHJlbW92aW5nIHRoZSBnZW5lcmF0ZWQgZmlsZQogICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KICAgQ29tbWVudGVkIG91dCB0aGUgY29kZSBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZwogICB0aGlzIGhlYWRlciBmaWxlLgogICBBZGRlZCBjb25maWd1cmUtdGltZSBjb2RlIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjb25zdHJ1Y3RvcnMKICAgZm9yIGFsbCBjb25maWd1cmVkCiAgIHRyYW5zcG9ydHMgYXJlIGludm9rZWQgZnJvbSBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMuCgoyMDEwLTA1LTE0IDExOjAwICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uOiB1cGRhdGVkIEN5Z3dpbiBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDEwLTA1LTE0IDA5OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAgCiAgICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTQgMDg6NTAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIC1uby11bmRlZmluZWQgZmxhZyB0byBsaWJyYXJ5IGxpbmsgY29tbWFuZHMgc3VjaCB0aGF0CiAgIGxpYnRvb2wgY2FuIGJ1aWxkIERMTHMgb24gV2luMzIuCiAgIE5vdGU6IGJ1aWxkaW5nIERMTHMgb24gV2luMzIgZG9lcyBub3QgeWV0IHdvcmsgYmVjYXVzZSBvZiB0aGUKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuCiAgIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQKICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL0xpYnJhcnlfbGF5ZXJpbmcpLgoKMjAxMC0wNS0xNCAwODo0MiAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgbGlidG9vbCBidWcgZml4OiBhbHNvIHBhc3MgZmxhZ3Mgc3RhcnRpbmcgd2l0aCAtZiB0byB0aGUgbGlua2VyCiAgIHNpbmNlIHRoZXNlIGNhbiBhZmZlY3QgbGlua2luZy4gVGhlIGZsYWcgLWZzdGFjay1wcm90ZWN0b3IgZS5nLgogICB0cmlnZ2VycyBpbmNsdXNpb24gb2YgbGlic3NwLgoKMjAxMC0wNS0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWJvcnQgaWYgdGhlIGZpbGUgcHJvZ3JhbSBjb3VsZCBub3QgYmUgZm91bmQsCiAgIHNpbmNlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGxpYnRvb2wuCiAgIENIQU5HRVM6IEN5Z3dpbjogbmVpdGhlciBjb21waWxlIG5vciBsaW5rIHdpbnBpcGUuYy4KCjIwMTAtMDUtMTMgMDg6NTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJhbiBhdXRvcmVjb25mLgoKMjAxMC0wNS0xMiAyMDoxNiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IExpbnV4OiBidWlsZHMgYWdhaW4gd2l0aCBlbWJlZGRlZCBQZXJsIGRpc2FibGVkIChidWcKICAgMjk4NTkxNSkuCgoyMDEwLTA1LTEyIDE5OjQ3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxODY4NDogdW4tYnJlYWsgdGhlIFdpbjMyIE1TVkMgYnVpbGQuCgoyMDEwLTA1LTEyIDE5OjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBXaW4zMjogZml4ZWQgYSB0eXBvIGFuZCBtYWRlIGluZGVudGF0aW9uIGNvbnNpc3RlbnQuCgoyMDEwLTA1LTEyIDE5OjExICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNvbnN0cnVjdCB0ZW1wIGJ1aWxkIGZpbGVzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5CgoyMDEwLTA1LTEyIDE5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCByZWNlbnRseSBicm9rZW4gb2xkIHBlcmwgZnVuY3Rpb25hbGl0eQoKMjAxMC0wNS0xMiAxODowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGEgLS1zaG9ydCBvcHRpb24gdG8gc2hvcnRlbiB0aGUgc2hvdyBvdXRwdXQgdG8gbWluaW1hbGlzdGljCgoyMDEwLTA1LTEyIDE0OjE0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gVENQLU1JQi4KCjIwMTAtMDUtMTIgMTM6MDIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG1lbW9yeSBsZWFrIHdoZW4gcmVhZGluZyBzZW5zb3JzIGZvcgogICBMTS1TRU5TT1JTLU1JQi4KCjIwMTAtMDUtMTIgMTI6NTcgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZXZlcnQgcmV2aXNpb24gMTg2ODkKICAgTGF0ZXN0IFdpbjMyIGJ1aWxkcyBpbmNsdWRlIHN1cHBvcnQgZm9yIHN0cnRvdWxsLgoKMjAxMC0wNS0xMiAxMjowNSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWRkZWQgZGV0ZWN0aW9uIG9mIGxtX3NlbnNvcnMgdmVyc2lvbi4KICAgSSBhbSBub3QgQXV0b2NvbmYgZ3VydSwgc28gSSBob3BlIEkgZ290IGl0IHJpZ2h0LiBUaGUgZ29hbCBpcyB0bwogICBkZWZpbmUgTkVUU05NUF9VU0VfU0VOU09SU19WMyAqYmVmb3JlKiBjb25maWdfbW9kdWxlc19hZ2VudAogICBwcm9jZXNzZXMgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLgoKMjAxMC0wNS0xMiAwNzowMyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLgoKMjAxMC0wNS0xMiAwMzowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGl0bGUgZ2VuZXJhdGlvbiBhZnRlciBjaGFuZ2UgdG8gd2hhdCBzcmNkaXIgbWVhbnQKCjIwMTAtMDUtMTIgMDI6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICB1bmRvIGxhc3QgY2hhbmdlIHdoaWNoIHR1cm5lZCBvdXQgdG8gb25seSBjYXVzZSBlcnJvcnMgaWYgeW91IGhhZAogICBhIG9sZCAuY29uZiBmaWxlIGFyb3VuZAoKMjAxMC0wNS0xMiAwMjoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCB2M19jYSBjcmVhdGlvbiBleHRlbnNpb24gbmFtZQoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBrZWVwIGZvcm1hdCB2ZXJzaW9uICMgaW4gY2VydCBpbmRleGVzOyBkb24ndCBzdG9yZSBoYXNoIHR5cGUKICAgc3RyaW5nIGluIGluZGV4OwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggaW52ZXJ0ZWQgY29udmVyc2lvbiBjYWxsOyBsZXNzIHZlcmJvc2UgZGVmYXVsdCBkZWJ1ZwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggcGFyc2luZyBvZiAtVCBuYW1lL3ZhbHVlIHBhaXJzCgoyMDEwLTA1LTExIDIzOjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYnVnIGZpeGluZyBhbmQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciAibWFrZSB0ZXN0IiB3aXRoCiAgIFRlc3Q6Okhhcm5lc3MKICAgKHN0aWxsIGRvZXNuJ3Qgd29yayBmb3IgbWUsIHRob3VnaCkKCjIwMTAtMDUtMTEgMjI6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBEbyBOT1QgaGFyZGNvZGUgL3Vzci9iaW4vcGVybCBhcyB0aGUgUGVybCBwYXRoCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaCBmaWxlIGhhbmRsaW5nCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGxvbmcgb3B0aW9ucyBzdWNrIDstKS4gcHJlZmVyIGRvdWJsZSBkYXNoZXMgZm9yIGxvbmcgb3B0aW9ucyB0bwogICBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgTmV0LVNOTVAgY29kZSBiYXNlCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcnVuIG9ubHkgdGhlIGZhaWxlZCB0ZXN0cyBmcm9tIHRoZSBsYXN0IHJ1bgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb24ndCBmb3JjZSBjb2xvcgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjbGVhbnVwIG9mIG9sZGVyCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIE1pbmltYWxseSBzdXBwb3J0IHRoZSBvbGRlciBUZXN0OjpIYXJuZXNzIHBlcmwgbW9kdWxlIGZvciBydW5uaW5nCiAgIHRoZSBvbGRlciB0ZXN0cyBhdCBsZWFzdAoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgYSBkZWZhdWx0IHNlY3VyaXR5TmFtZSBhbmQgc2VjdXJpdHlNb2RlbCBpZiBUTFMgb3IgRFRMUyBpcyBpbgogICB1c2Ugb24gdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBhbGxvdyBzZWN1cml0eSBtb2RlbHMgdG8gcGVyZm9ybSBtb3JlIG9mIHRoZSBzZXNzaW9uIHNldHVwOyBtb3ZlZAogICBtb3JlIFVTTSBzcGVjaWZpYyBzZXR1cCBpbnRvIGl0J3Mgc2V0dXAgcm91dGluZQoKMjAxMC0wNS0xMSAxODowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHBhcmFtIHRvIGxvb2t1cCBwZWVyIGNlcnQKCjIwMTAtMDUtMTEgMTY6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhbGxvdyAnLScgaW4gZnFkbjsgYWRkIGRlYnVnIG91dHB1dCBmb3IgaG9zdCBzcGVjaWZpYyBjb25maWcKCjIwMTAtMDUtMTEgMTU6NDYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRW5zdXJlICduZXRzbm1wX3JlYWRfbW9kdWxlJyBpcyBhdmFpbGFibGUgZm9yIHBlcmwgYnVpbGQuCgoyMDEwLTA1LTExIDE1OjQ0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4IHBlcmwgYnVpbGQgdW5kZXIgV2luZG93cyAoc3RydG91bGwgbm90IGF2YWlsYWJsZSkKCjIwMTAtMDUtMTAgMDc6MDcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3Npbmcgc3ltYm9sIG5ldHNubXBfc25tcFNTSERvbWFpbl9sZW4sCiAgIG1ha2UgbmV0c25tcF9zbm1wU1NIRG9tYWluIGNvbnN0LgoKMjAxMC0wNS0wOSAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgRG8gbm90IHJlcXVpcmUgcXVvdGVzIGFyb3VuZCB0aGUgQ1BVIHN0cmluZyBhcyB0aGF0IGRlcGVuZHMgb24KICAgaG93IHRoZSBhZ2VudCBpcyBjb25maWd1cmVkLgoKMjAxMC0wNS0wOSAyMTo0MyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogRXh0cmFjdCB0aGUgRXhpdCBhbmQgcmVzdGFydCogc3Vicm91dGluZXMgZnJvbQogICB1dGlsX2Z1bmMgaW4gb3JkZXIgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBsZXNzIGNvZGUgZm9yIHRoZQogICBtaW5pbWFsIGNhc2UuCgoyMDEwLTA1LTA5IDE2OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBmdW5jdGlvbgogICBnZXRfZXhlY19vdXRwdXQoKSByZXR1cm5zIGEgdmFsdWUgd2hlbiB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDUtMDkgMTY6NDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGJ1aWxkcyBub3cgYWxzbyB3aGVuIHRoZSBzb3VyY2UgZmlsZXMgYXJlCiAgIGxvY2F0ZWQgb24gYSBTYW1iYSBmaWxlc3lzdGVtIGluc3RlYWQgb2YgYSBsb2NhbCBmaWxlc3lzdGVtLgoKMjAxMC0wNS0wOSAxMzowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENvcnJlY3QgdGhlIGlmIHRoYXQgdHJpZXMgdG8gZmlndXJlIG91dCBpZiBhIHN1ZmZpY2llbnRseSBuZXcgZ2NjCiAgIGlzIGluIHVzZS4KCjIwMTAtMDUtMDkgMTI6NTAgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDaGVjayBmb3IgdGhlIG5lZWRlZCBtb2R1bGUgYW5kIG5vdCBzb21lIG90aGVyIG9uZS4KICAgTG9nIHRoZSBjb3JyZWN0IG1pc3Npbmcgc3ltYm9sLgoKMjAxMC0wNS0wOSAwOToyMSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogdXRpbGl0aWVzL2V4ZWN1dGUgZG8gbm90IG5lZWQgYW55dGhpbmcgZnJvbQogICB1dGlsX2Z1bmNzLCBzbyBzdG9wIGRlcGVuZGluZyBvbiBpdC4KCjIwMTAtMDUtMDkgMDk6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBORVdTOiBzbm1wZDogUmVtb3ZlZCB0aGUgdW51c2VkIGZ1bmN0aW9uIHh4X3Rva2VuaXplX2V4ZWNfY29tbWFuZAogICBmcm9tIHV0aWxpdGllcy9leGVjdXRlLgoKMjAxMC0wNS0wOSAwOTowMSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZXBsYWNlIHRoZSBkZWJ1Z2dpbmcgZnVuY3Rpb25zIHdpdGggZHVtbWllcwogICB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KCjIwMTAtMDUtMDkgMDg6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2Q6CgogICBDaGVjayB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGVuYWJsZWQKCjIwMTAtMDUtMDkgMDg6MDEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBGYWN0b3Igb3V0IGNoZWNrIGZvciBtaWJJSS9zeXN0ZW1fbWliCgoyMDEwLTA1LTA5IDA3OjU5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMKCjIwMTAtMDUtMDggMjM6MTYgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkaXRpb25hbGx5IGZpeCBtYWtlIHRlc3QgZm9yIHRoZSB1bmNvbW1vbiBjYXNlIHdoZXJlIGJ1aWxkZGlyCiAgID09IHNyY2RpcgoKMjAxMC0wNS0wOCAyMjo1NSAgbWFnZnIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgdGVzdCBzdWl0ZSBmcm9tCiAgIGFueXdoZXJlLgogICBDaGFuZ2UgdGhlIC1EIG9wdGlvbiB0byBleHBlY3QgdGhlIHBhdGggb2YgdGhlIHRvcCBzb3VyY2UKICAgZGlyZWN0b3J5LgogICBBZGQgYW4gLXNyY2RpciBvcHRpb24gdGhhdCBpcyBhbiBhbGlhcyBmb3IgLUQuCiAgIEFkZCBhbiAtYnVpbGRkaXIgb3B0aW9uIHRvIGRlc2lnbmF0ZSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0ZXN0CiAgIG9iamVjdCBpcy4KICAgUHV0IHNyY2RpciBhbmQgYnVpbGRkaXIgaW4gdGhlIGVudmlyb25tZW50IGZvciB0aGUgdGVzdCBzY3JpcHRzCiAgIEZhY3RvciBvdXQgdGhlIGdyZXAgcGFydCBvZiBTS0lQSUYgYW5kIFNLSVBJRk5PVCB0byBJU0RFRklORUQKICAgVXNlIG1vcmUgcmVhZGFibGUga2V5cyBpbiB0aGUgb3B0cyBoYXNoIGluIFJVTkZVTExURVNUUwogICBBZGp1c3QgZXZlcnl0aGluZyB0byB1c2Ugc3JjZGlyIGFuZCBidWlsZGRpcgoKMjAxMC0wNS0wOCAyMjo0MiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjA3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENvbnNvbGlkYXRlIHRoZSB0ZXN0IGFuZCB0ZXN0LW1pYnMgdGFyZ2V0cy4KICAgRXhwb3NlIHRoZSB0ZXN0YWxsIHRhcmdldCBpbiB0aGUgdG9wIG1ha2VmaWxlLgoKMjAxMC0wNS0wOCAyMjowNSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG8gbm90IGFib3J0IHdoZW4gc3RyIGlzIE5VTEwgYXMgdGhhdCBpcyBhIHBlcmZlY3RseSB2YWxpZCBpbnB1dC4KCjIwMTAtMDUtMDggMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBuZXdsaW5lCgoyMDEwLTA1LTA3IDIxOjExICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmFjCgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgZml4IGhhbmRsaW5nIG9mIGNlcnQgYWxnb3JpdGhtIGluIGZpbmdlcnByaW50czsgY29udmVydCBpbi9vdXQKICAgZmluZ2VycGludHMKICAgZnJvbS90byBoZXgKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvbnQgc3BlY2lmeSBoYXNoIHR5cGUgZm9yIGZpbmdlcnByaW50CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaGFuZGxlIGZpbmdlcnByaW50IHR5cGVzOyBkcm9wIHNhbiBmaWVsZHMgZnJvbSBjZXJ0IHN0cnVjdDsKICAgY29uc2lkZXIgZGlyZWN0b3J5CiAgIHdoZW4gcGFydG5lcmluZyBrZXlzL2NlcnRzCgoyMDEwLTA1LTA3IDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgbW92ZSBkZWZhdWx0IHByb21wdHMgZWFybGllcgoKMjAxMC0wNS0wNiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBiZXR0ZXIgU0FOIGV4dHJhY3Rpb247IHR3ZWFrIGR1Ymd1cyBtZXNzYWdlczsgcXVpZXQgY29tcGlsZXIKICAgd2FybmluZ3MKCjIwMTAtMDUtMDYgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgcmVkdWNlIGNlcnQgZGVidWcgb3V0cHV0OyBkZWJ1ZyBpbnN0ZWFkIG9mIGxvZ19pbmZvIGluIGR1bXBzCgoyMDEwLTA1LTA2IDE0OjQ5ICBkdHMxMgoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoZSBwcmVzZW5jZSBvZiA8c3RyaW5nLmg+CiAgIChicmluZyBpbnRvIGxpbmUgd2l0aCBhbGwgb3RoZXIgb2NjdXJhbmNlcykKCjIwMTAtMDUtMDYgMTQ6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBXaW5kb3dzOiBGaXggYnVpbGQgdW5kZXIgTWluR1cKICAgYmFjay9mb3J3YXJkIHBvcnQgb2YgcmV2aXNpb24gMTg2MzEKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHR5cGUgaW4gbG9nIG1zZwoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgaW1wb3J0IGZvciB1bnVzZWQgZnVuY3Rpb24KCjIwMTAtMDUtMDQgMDc6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBOZWdhdGUgcmVhc29uIGdpdmVuIGZyb20gU0tJUElGCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBsZW4gaW4gZW1haWwgY21wOyBtb3JlIGV4dHJhY3QgZGVidWdnaW5nCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNvcHkgb2NlcnQgdG8gYWRkaW9uYWwgbWFwcwoKMjAxMC0wNS0wMyAxNDoyMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGRlcGVuZGVuY3kgb24gcGVybCBtb2R1bGUgbm90IHByZXNlbnQgaW4gQ2VudE9TCgoyMDEwLTA1LTAzIDAzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGFjY2VzcyBzdHJ1Y3QgaW50ZXJuYWxzIGRpcmVjdGx5CgoyMDEwLTA1LTAzIDAzOjQ4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggY29tcGlsaW5nIHdpdGgtb3V0LW1pYm1vZHVsZXM9dXRpbGl0aWVzL2V4ZWN1dGUKCjIwMTAtMDUtMDEgMTk6MDggIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIENvcnJlY3QgdGhlIHNvdWdodCBzdHJpbmcgdG8gbWFrZSB0aGUgdGVzdCBwYXNzIHdoZW4gb2suCgoyMDEwLTA1LTAxIDE3OjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3JlIGNvbnNpc3RlbnQgdHJlYXRtZW50IG9mIGtleVVzYWdlLCBiYXNpY0NvbnN0cmFpbnRzLCBvdGhlcgogICB4NTA5djMgb3B0aW9ucwoKMjAxMC0wNC0zMCAyMzozNyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGw6CgogICBsYW1lIHRlc3Qgc2NyaXB0IGJ1dCBjb3ZlcnMgYSBjaHVuayBvZiB0aGUgY29kZQoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBta2luc3RhbGxkaXJzIGluc3RlYWQgaW5zdGVhZCBvZiBGaWxlOjpQYXRoCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGVuc3VyZSBuZXQtc25tcC1jb25maWcgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSB0aGUgYnVpbGQgZGlyCgoyMDEwLTA0LTMwIDIxOjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgZ2VuY2VydCAtLWNhCgoyMDEwLTA0LTMwIDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBoZWxwIGZvciBjZXJ0U2VjTmFtZTsgY29udGludWUgYnVpbGRpbmcgY2VydCBpbmRleGVzIGV2ZW4gaWYKICAgd2UgY2FudCBzYXZlCiAgIHRvIHBlcnNpc3RlbnQgZGlyCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBjaGVjayBjb3VudCBmb3IgODIyIG5hbWVzIGluIHRoZSBzbm1wZC5sb2cKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IG1hbGxvYyB1bm5kZXJsZW5ndGggYnkgMSBlcnJvcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjb21tZW50IG91dCB0aGUgODIyIHRlc3RzOyB0aGV5J3JlIGJyb2tlbiBhdCB0aGUgbW9tZW50CgoyMDEwLTA0LTMwIDE5OjM2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBkb24ndCBsb3NlIFNBTiB3aGVuIHNpZ25pbmcgdy8gQ0EKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIG5hbWUgY2hhbmdlIHRvIHJmYzgyMiBmcm9tIHR5cG9lZCA4MjIwCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3RzIHRvIGRvIG90aGVyIHN1YmplY3RBbHROYW1lIG1hcHBpbmcKCjIwMTAtMDQtMzAgMTc6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBpc3N1ZXMgMSwyLDQgYW5kIC1DIGhhbmRsaW5nCgoyMDEwLTA0LTI5IDAzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQ2VydFRvVFNOVGFibGUgdG8gdXNlIGNhY2hlICsgY2VydF91dGlsIG1hcHMKICAgY29udGFpbmVyCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgaW5zZXJ0IHJldHVybgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIHJlbW92ZSBmdW5jdGlvbiB0byBjb250YWluZXIgaXRlcmF0b3I7CiAgIGltcGxlbWVudCBpdCBmb3IKICAgYmluYXJ5X2FycmF5CgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBtYWtlIHN1cmUgY29udGFpbmVyIHN5bmMgaW5jcmVtZW50ZWQgb24gc29ydCwgaW5zZXJ0IGFuZCByZW1vdmUKCjIwMTAtMDQtMjggMDc6MjAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2VmaWxlIGZvciB0ZXN0IHRhcmdldAoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBtYWtlIHRoZSB0ZXN0IHN1aXRlIHJ1biBvdXRzaWRlIHRoZSBzb3VyY2UgZGlyZWN0b3J5IGFnYWluLgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgZGVhbCB3aXRoIG91dC1vZi1zb3VyY2UgdHJlZSBidWlsZGluZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0aW5nIHRvIGNoZWNrIGNlcnRpZmljYXRlIHRvIHNlY3VyaXR5bmFtZSBtYXBwaW5ncyBhbmQgZGVuaWFscwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY3JlYXRlZCBhIG1hcHBlZCB1c2VyCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBnZW5lcmF0ZSBvYmplY3QgY29kZSB3aXRoIC1nIGRlYnVnZ2luZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgbW9yZSBhY2N1cmF0ZSBjdXJyZW50IEFQSSB1c2FnZSBmb3Igc2NhcGkgY29kZQoKMjAxMC0wNC0yNyAyMToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY2VydCBpbml0IGR1cGxpY2F0ZSBjYWxsIGNoZWNrCgoyMDEwLTA0LTI3IDIwOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29udmVydCB1c2VyIGZpbmdlcnByaW50IHRvIGxvd2VyIGFuZCBzdHJpcCBjb2xvbnM7IGFkZCBleHRlcm4KICAgcHJvdG90eXBlCiAgIGZvciBjZXJ0IGluaXQgc28gd2UgZG9uJ3QgbmVlZCBoZWFkZXIKCjIwMTAtMDQtMjcgMjA6MTUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNlcGFyYXRlIGNlcnQgaW5pdCBhbmQgY2VydCBsb2FkaW5nOyBhZGQgY2VydFNlY05hbWUgY29uZmlnIHRva2VuCgoyMDEwLTA0LTI3IDAzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtZXJnZSBORVRTTk1QX0ZVTkNUSU9OIGFuZCAhTkVUU05NUF9GVU5DVElPTiBhc3NlcnQgY2FzZXMKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvdHMgb2YgbmV3IGNlcnQgZnVuY3Rpb25hbGl0eQogICAtIGFkZCBzc2wgZnVuY3MgZm9yIGNlcnQgZXh0ZW5zaW9ucyBhbmQgc3NsIGNlcnQgY2hhaW5zCiAgIC0gZnVuY3Rpb25zIGFuZCBuZXcgbmV0c21wX2NlcnRfbWFwIHN0cnVjdCBmb3IgbG9va2luZyB1cCBjZXJ0CiAgIG1hcHBpbmdzCiAgIC0gYWRkIGNlcnRpZmljYXRlIG1hcHBpbmcgZm9yIHNlY25hbWUKICAgLSBhZGQgY29kZSB0byBidWlsZCBjZXJ0IGNoYWlucwogICAtIGFkZCBzdWJqZWN0IHRvIGNlcnQgaW5kZXggY2FjaGUKICAgLSByZWJ1aWxkIGluZGV4ZXMgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXgKICAgLSByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnQgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgY2VydCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIG1vdmUgaXB2NiBzcGVjaWZpYyB2YXIgZGVjbCBpbnNpZGUgaWZkZWYKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBDSEFOR0VTOiBhZ2VudDogdGRhdGEgaGVscGVyIG5vdyBzYXZlcyBmbGFncyBwYXNzZWQgZHVyaW5nCiAgIGNyZWF0aW9uOyBhZGQgdGRhdGEKICAgZmxhZyB0byBOT1QgY3JlYXRlIHRoZSB0YWJsZSBjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBpbnRlcmZhY2UgZm9yIGR1cGxpY2F0aW5nIGEgY29udGFpbmVyCiAgIENIQU5HRVM6IHNubXBsaWI6IGNvbnRhaW5lciBjaGFuZ2VzOiBhZGQgZmxhZ3MgZmllbGQgdG8gY29udGFpbmVyCiAgIG1ldGEtZGF0YTsKICAgY2hnIGJpbmFyeV9hcnJheSBjb250YWluZXIgdG8gdXNlIGNvbnRhaW5lciBtZXRhLWRhdGEgZmxhZ3MKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBjb25maWd1cmVkIHdpdGgKICAgYSByZW1vdGUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQgdGhlIGNvbm5lY3Rpb24gaXMgZGVuaWVkCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBhZGRlZCB0ZXN0cyBmb3IgLVQgZmxhZyB1c2FnZSBhbmQgaW52YWxpZCB1c2VyIHVzYWdlCgoyMDEwLTA0LTI2IDIwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2Q6CgogICBoYXZlIHRoZSBhbGlhcyB0cmFuc3BvcnQgc291cmNlIHRoZSByaWdodCBTdjNjb25maWcgZmlsZQoKMjAxMC0wNC0yNiAyMDo1MCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgd29ya2luZyBzdXBwb3J0IG9mIFRMUy9EVExTIHRlc3RpbmcgaW5jbHVkaW5nIGNlcnQgZ2VuZXJhdGlvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhvbm9yIHRoZSBjb25maWcgZGlyIGlmIHNwZWNpZmllZCB2aWEgLUMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IHJlYWxsb2MgY2FsbCBmb3IgYnVmZmVyZWQgcGFja2V0cwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHByb3BlciBza2lwIG91dHB1dCBmb3IgcmVwb3J0aW5nIHJlYXNvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgYmFja3NsYXNoIGluIG1hY3JvCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5wcml2OgoKICAgdGVzdHMgZm9yIG1pbmltYWxseSB0ZXN0aW5nIGFsbCB0aGUgdHJhbnNwb3J0cwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBtaW5pbWFsbHkgZG9jdW1lbnQgbmV3IFJVTkZVTExURVNUUyBzY3JpcHQKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcywgICAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9taXNjdGVzdC5jLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZGVsZXRlZCBvbGQgZmlsZXMgbm90IHdvcnRoIHJlc3RvcmluZwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgcmVtb3ZlIG9ic29sdXRlIHRlc3QgbGlzdAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jOgoKICAgYSBoYXNoLXRlc3RpbmcgLmMgZmlsZSBJIGhhZCBsYXlpbmcgYXJvdW5kCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSB0ZXN0YWxsIHRhcmdldAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgbW92ZSBvbGQgQy1jb2RlIHRlc3RzIGluIHBsYWNlCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2Q6CgogICBza2lwIHNvbGFyaXMgY29tbWVudHMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggaW52b2NhdGlvbiBvZiBSVU5GVUxMVEVTVFMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjJjY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdhZ2VudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ3RyYXBkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXgsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBORVdTOiB0ZXN0aW5nOiBCcmFuZCBuZXcgdGVzdCBzdWl0ZSBkZXNpZ2VuZWQgdG8gZXZlbnR1YWxseSB0ZXN0CiAgIG1vcmUgZnVuY3Rpb25hbGl0eSwgcHJvdmlkZSBmb3Igc3VwcG9ydCBvZiB1bml0LXRlc3RzIGFuZCBzdXBwb3J0CiAgIG9mIEFQSSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHJlbW92ZWQgYSBkZWJ1Z2dpbmcgZWNobwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1vcmUgYnVnIGZpeGVzIGZvciBzdHJpbmcgc2VhcmNoZXMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBhZGRlZCBhIG5ldyBtYWNybyB0byBjaGVjayBhIHRyYXBkIGNvdW50CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGluZGl2aWR1YWwgb3V0cHV0IGZpbGVzIGFuZCBmaXggc29tZSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbWFkZSBleGlzdGluZyB0ZXN0IHN1aXRlIHB1dCBvdXQgVEFQIG91dHB1dAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9mdWxsdGVzdHMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBiZWdpbm5pbmcgb2YgbW92aW5nIFVDRCB0ZXN0IHN1aXRlIGludG8gYSBsYXJnZXIgc3ViZGlyZWN0b3J5CgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFsbG93IHJ1bm5pbmcgdGVzdHMgdGhhdCBtYXRjaCBhIHJlZ2V4cAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdW1tYXJpemUgdGVzdHMgdGhhdCBmYWlsZWQKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIHJ1bl8gc2NyaXB0cyBmb3IgZXhlY3V0aW5nIGNlcnRhaW4KICAgdHlwZXMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFkZSB0aGUgYnVpbGQtc2NyaXB0LWNoZWNrIHJvdXRpbmUgZ2VuZXJpYwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IGZvciBidWlsZCBzY3JpcHRzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHByb3ZpZGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIGJ1aWxkaW5nIGFuZCByZW5hbWluZyB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtb3JlIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2V0dXAKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCB0aGUga2V5d29yZCAnYWxsJwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgZ3JvdXAgZ2F0aGVyaW5nCgoyMDEwLTA0LTI2IDIwOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0aW5vIG9mIGEgbmV3IHRlc3RpbmcgaGFybmVzcwoKMjAxMC0wNC0yNSAxNzozNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDEwLTA0LTI1IDE1OjIxICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IHJldmVydGVkIGEgcmVjZW50IHVubmVjZXNzYXJ5IG1vZGlmaWNhdGlvbi4KCjIwMTAtMDQtMjUgMTU6MDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBtdWx0aXBsZSAtLXNhbiBhcmdzLCBjaGVjayBlcnJvciBjb2RlcyBvbiBvcGVuc3NsIGNtZHMgYW5kCiAgIGRpZSBvbiBmYWlsdXJlCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogcmVzdG9yZWQgY29uc2lzdGVuY3kgYmV0d2VlbiB3b3Jrc3BhY2UtYnVpbGQgYW5kIGJhdGNoCiAgIGJ1aWxkIC0tIG1hZGUgc3VyZSB0aGF0IG5vdGlmaWNhdGlvbl9sb2cuYyBpcyBvbmx5IGluY2x1ZGVkIGluCiAgIHRoZSBuZXRzbm1wbWlicyBwcm9qZWN0LgoKMjAxMC0wNC0yNSAxMzo1OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGZpeGVzIGZvciByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1aWxkIGJyZWFrYWdlLgoKMjAxMC0wNC0yNSAxMzo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL2Nsb3NlZGlyLmMsIHNubXBsaWIvb3BlbmRpci5jLCAgCiAgICAgICBzbm1wbGliL3JlYWRkaXIuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgV2luMzIgTVNWQyA2IG5vbi1TREsgYnVpbGQgd29ya3MgYWdhaW4uCgoyMDEwLTA0LTI1IDEzOjQyICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIHRyYW5zZm9ybWF0aW9uIHJ1bGUuCgoyMDEwLTA0LTI1IDEyOjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1hZGUgaXQgYWdhaW4gcG9zc2libGUgdG8gZGlzYWJsZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESyB3aGVuCiAgIGJ1aWxkaW5nIHZpYSB3aW4zMi9idWlsZC5iYXQuCgoyMDEwLTA0LTIzIDEzOjE0ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCAtLXNhbiBETlM6YS5iLmMgaGFuZGxpbmcsIGhlbHAgdGV4dCBmaXhlcywgb3RoZXIgYnVnIGZpeGVzLgogICBOb3RlIG11bHRpcGxlIC0tc2FuIG5vdCBzdXBwb3J0ZWQgeWV0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIHRoZSAubWFkZSB2ZXJzaW9uIG9mIG5ldC1zbm1wLWNlcnQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZCBhZnRlciBtb3ZpbmcgYWxsIHRoZSBmaWxlcyBhcm91bmQKCjIwMTAtMDQtMjEgMjA6MTYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYnVpbGQgdHJ1c3QgY2hhaW4gZm9yIGNsaWVudCBjZXJ0OyBhZGQgc3ViamVjdCB0byBpbmRleCBjYWNoZTsKICAgcmVidWlsZCBpbmRleGVzCiAgIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4OyByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnRUb1RTTl9lbnRyeSB0byBjZXJ0X3V0aWwgaGVhZGVyCiAgIC0gbW92ZSBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCiAgIC0gYWRkIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2R1bXBfZXh0ZW5zaW9ucywKICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfaXNzdWVkX2J5CgoyMDEwLTA0LTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSBzaW5nbGUtZGFzaCAvIHNubXAuY29uZiAvIGRvdWJsZS1kYXNoIHByZWNpZGVuY2UKCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdGhhdCB0aGUgdG9rZW5zIGNhbiBiZSB1c2VkIGZvcgogICBjb21tYW5kIGxpbmUgYXBwbGljYXRpb25zIHRvbwoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmaWxlIGxvYWRpbmcgb3JkZXIgYW5kIGhvdyB0byB0dXJuIG9mZiBob3N0LXNwZWNpZmljCiAgIGNvbmZpZwoKMjAxMC0wNC0yMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IEdlbmVyaWMgaG9zdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIHNubXAuY29uZiBmaWxlcwogICBhcmUgbm93IHJlYWQuIFNlZSB0aGUgSE9TVC1TUEVDSUZJQyBGSUxFUyBzZWN0aW9uIG9mIHRoZQogICBzbm1wLmNvbmYgbWFudWFsIHBhZ2UuCgoyMDEwLTA0LTIwIDEyOjQ0ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjk3MTI3MDogcmVmdXNlIHRvIHBhcnNlIEFTTi4xIHRva2VucwogICB3aXRoIHdyb25nIHR5cGUgZmllbGQuCiAgIFRoaXMgbWF5IHlpZWxkIHRvIHByb2JsZW1zIHdpdGggdGhpcmQtcGFydHkgYXBwbGljYXRpb25zIHdoaWNoCiAgIG1heSBkZXBlbmQgb24gcGFyc2luZyB1Z2x5IEFTTi4xIGRhdGEgLSB3ZSdsbCBzZWUuLi4KCjIwMTAtMDQtMjAgMDA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tYmluZSByZW1vdGUgZmluZ2VycHJpbnQgY2hlY2tpbmcgYW5kIGNoZWNrIGJvdGggc2lkZXMKCjIwMTAtMDQtMjAgMDA6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaWYgdGhlIHJlbW90ZSBmaW5nZXJwcmludCBpcyBzcGVjaWZpZWQsIHJlcXVpcmUgYW4gZXhhY3QgbWF0Y2gKCjIwMTAtMDQtMTkgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gb3V0cHV0IG1lc3NhZ2VzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGluZyBvZiBuZWVkZWQgUkZDIHN0ZXBzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY29udmVydCBpZiBlcnJvciBjaGVjayB0byByZXR1cm4gaW1tZWRpYXRlbHkgc28gb3RoZXIgY29kZSBjYW4gYmUKICAgb3V0ZGVudGVkCgoyMDEwLTA0LTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBSRkMgdGV4dAoKMjAxMC0wNC0xOCAxNToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvdHJhbnNwb3J0cywgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjcmVhdGVkIGEgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgc2VjdXJpdHlOYW1lIGZyb20gdGhlIGNlcnQKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBuZWVkIHRvIHNldCB0aGUgYWNjZXB0IHN0YXRlIGZvciBUTFMgKGp1c3QgRFRMUykKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIFRMUyBjb21tZW50IGRvY3VtZW50YXRpb24gYW5kIHN0ZXBzIHRha2VuIGZyb20gdGhlIFJGQwoKMjAxMC0wNC0xNiAxMzo1NSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbnVtZXJvdXMgZml4ZXMsIG1vcmUgdmVyYm9zZSBkZWZhdWx0IG91dHB1dCwgYWRkaXRpdmUgc2hvdyBmbGFncywKICAgYXJiaXRyYXJ5IGNvbmZpZyBwYXJhbSBoYW5kbGluZywgYmV0dGVyIGhlbHAgdGV4dAoKMjAxMC0wNC0xNiAxMzowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBkb24ndCBkb3VibGUgZGVjbGFyZSBhIHN0cnVjdAoKMjAxMC0wNC0xNiAwMzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0IHV0aWwgZml4ZXMKICAgLSByZW1vdmUgdW51c2VkIHZhcnMgYW5kIGR1cGxpY2F0ZSBjb2RlCiAgIC0gY2hlY2sgcHJ0IGJlZm9yZSBmcmVlCiAgIC0gbmV3IGZ1bmMgZm9yIHR5cGUgZnJvbSBmaWxlbmFtZQogICAtIG5ldyBmdW5jdGlvbnMgZm9yIGZpbmRpbmcgc3Vic2V0cyBmcm9tIGZpbGVuYW1lCiAgIC0gZml4IHR5cGVzIGluIGtleSBzZWFyY2ggZnVuY3Rpb24gYnV0IHRoZW4gaWZkZWYgaWYgKHVudXNlZAogICBmdW5jdGlvbikKCjIwMTAtMDQtMTUgMjI6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdXNlIGEgc3RydWN0dXJlIHJlZmVyZW5jZSB0byBwcmVkZWNsYXJlIHRoZSBzdHJ1Y3R1cmUKCjIwMTAtMDQtMTUgMjE6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgY29ycmVjdCBkZWNsYXJhdGlvbiBvZiB0aGUgZl9vcGVuIGNvbW1hbmQgbm93IHJlcXVpcmluZyByZXR1cm5pbmcKICAgYSB0cmFuc3BvcnQKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW5uZWVkZWQgY29uZmlnIGNvbnRhaW5lcgoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGZpbmdlcnByaW50IHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbnRvIG5ldyB0bHMgc3RydWN0dXJlCiAgIHdpdGhpbiBEVExTVURQIHNvIHBlci10cmFuc3BvcnQgZmluZ2VycHJpbnRzIGNhbiBiZSBzcGVjaWZpZWQKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVybHkgY2hlY2sgZm9yIHRsc2Jhc2UgcG9pbnRlcnMgaW4gZHRsc3VkcF9zZW5kKCkKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZ3JlcCB0aGUgdHJhbnNwb3J0IGxpc3QgZm9yIFRMUyBub3QganVzdCBEVExTIGZvciBjaGVja2luZyBmb3IKICAgLWxzc2wKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBidWcgZml4ZXMgYW5kIG1hZGUgVExTVENQIHdvcmsgd2l0aCB0aGUgLVQgZmxhZwoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWFrZSB0aGUgZl9vcGVuIGNhbGwgYXNzaWduIHRoZSBuZXcgdHJhbnNwb3J0IHBvaW50ZXIgdG8gdXNlIChhbmQKICAgY2hlY2sgaWYgTlVMTCBhcyBhIGZhaWx1cmUgY29uZGl0aW9uCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW4gd29yayBtb3ZpbmcgRFRMUyBjb25maWcgcm91dGluZSBpbiBwbGFjZQoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHBhc3MgdGhlIGVudGlyZSB0bHNiYXNlIHRvIHRoZSBjbGllbnRfc2V0dXAKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3RhcnRpbmcgdGhlIHN0b3Jpbmcgb2YgY29uZmlnIGRhdGEgaW50byB0aGUgdGxzYmFzZQoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgY2xpZW50IHNzbCBzZXR1cCB0byBhbGxvdyBmb3IgZGlyZWN0IGZpbmdlcnByaW50CiAgIHNwZWNpZmljYXRpb24gb2YgbXkvdGhlaXIgY2VydHMKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzcGxpdCBUTFMgaW50byBjcmVhdGlvbi9jbG9zZSBmdW5jdGlvbnMgZm9yIGV2ZW50dWFsIGNvbmZpZwogICBwYXNzaW5nIHN1cHBvcnQKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXNzIHRyYW5zcG9ydCBjb25maWcgZGF0YSB0byB0aGUgdHJhbnNwb3J0IGZfY29uZmlnKCkgZnVuY3Rpb24KCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldHVybiBOVUxMIG9uIHRyYW5zcG9ydCBjb25maWcgZXJyb3IKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogLVQgY29tbWFuZCBsaW5lIGZsYWcgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCiAgIHRyYW5zcG9ydHMKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNoZWNrIHRyYW5zcG9ydCBOVUxMbmVzcyBiZWZvcmUgdXNpbmcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYmVnaW5uaW5nIG9mIHdvcmsgdG8gbWFrZSB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSB3aXRoCiAgIHN1cHBsaW1lbnRhbCBjb25maWd1cmF0aW9uIGRhdGEgYW5kIG5ldyBjYWxscyBmb3IgZl9vcGVuL2ZfY29uZmlnCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgdGV4dCBpbiBjb21tZW50cyBmcm9tIGZ1dHVyZSBSRkMgdG8gZG9jdW1lbnQgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTA0LTE1IDE4OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1hcmsgcGVtIHcva2V5IGFzIGlkZW50aXR5OyB0d2VhayBwYXJ0bmVyIGRlYnVnOyBjb21wYXJlIGZpbGUKICAgY3RpbWUgYWdhaW5zdCBpbmRleCB0b28KCjIwMTAtMDQtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGxvY2FsIHNwYWNlIHRvIHJlZm9ybWF0IGNlcnQgZm9yIHNlYXJjaAoKMjAxMC0wNC0xNSAxNjo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTg0OTY6CiAgIC0gQ29tbWVudGVkIG91dCAjZGVmaW5lIE5FVFNOTVBfVVNFX0RMTCBhZ2FpbiBpbiBmaWxlCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIG9uIHRoZSA1LjQgYnJhbmNoLiBUaGlzIGNoYW5nZQogICBoYWQgYmVlbiBjb21taXR0ZWQgdW5pbnRlbnRpb25hbGx5LgogICAtIFJlLWVuYWJsZWQgI2RlZmluZQogICBVU0lOR19OT1RJRklDQVRJT05fTE9HX01JQl9OT1RJRklDQVRJT05fTE9HX01PRFVMRSBpbgogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oIG9uIHRoZSB0cnVuayBhbmQgdGhlCiAgIFY1LjUgYnJhbmNoLiBXaGlsZSBidWlsZC5iYXQgcmVwb3J0cyBhbiBlcnJvciBvbiBlYXJsaWVyIGJyYW5jaGVzCiAgIHdpdGggdGhpcyBzeW1ib2wgZW5hYmxlZCwgdGhlcmUgaXMgbm8gc3VjaCBwcm9ibGVtIG9uIHRoZSB0cnVuawogICBvciBWNS41IGJyYW5jaGVzIGFuZCBoZW5jZSB0aGVyZSB3YXMgbm8gcmVhc29uIHRvIGRpc2FibGUgdGhpcwogICBwcmVwcm9jZXNzb3Igc3ltYm9sLgoKMjAxMC0wNC0xNSAxNTowOCAgbWFyegoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXQtc25tcC1jZXJ0IHRvIG1ha2UvaW5zdGFsbAoKMjAxMC0wNC0xNSAxMDo1MiAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldDoKCiAgIFRlc3RzIG5vdCB3b3JraW5nIGZvciBUQ1Agc2hvdWxkIGJlIHNraXBwZWQgYWxzbyBmb3IgVENQNi4KCjIwMTAtMDQtMTQgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IHZhcnMvdGV4dCBmcm9tIGN1dC1uLXBhc3RlCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBjb21tZW50cwoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBsb3RzIG9mIGNlcnQgdXBkYXRlcwogICAtIGNoYW5nZSBjZXJ0IHN1YmRpciBzZWFyY2hpbmcgdG8gbWF0Y2ggbmV0LXNubXAtY2VydAogICAtIHVwZGF0ZSBrZXkgdHlwZSBoYW5kbGluZwogICAtIGlnbm9yZSB3b3JsZCByZWFkYWJsZSBrZXlzCiAgIC0ga2VlcCB0eXBlIGluIGluZGV4ZXMKICAgLSB0d2VhayBjZXJ0L2tleSBwcmludCBmb3JtYXQKCjIwMTAtMDQtMTQgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFrZSBuZXQtc25tcC1jZXJ0IGV4ZWN1dGFibGUKCjIwMTAtMDQtMTQgMTM6MTIgIGpzYWZyYW5lawoKICAgKiAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBGaXhlZCB0ZXN0cyAnUHJveHkgR0VUL1NFVCBzdXBwb3J0JyBhbmQgJ1NOTVB2MiB2YWNtIGRlbmlhbAogICBzdXBwb3J0JyB3aXRoIHVkcDYgdHJhbnNwb3J0LgoKMjAxMC0wNC0xNCAwOTo0NyAgZHRzMTIKCiAgICogIHdpbjMyLCB3aW4zMi9iaW4sIHdpbjMyL2Rpc3QsIHdpbjMyL2Rpc3QvaHRtbGhlbHAsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLCB3aW4zMi9kaXN0L3NjcmlwdHMsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIAogICAgICAgIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsIHdpbjMyL2xpYmhlbHBlcnMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgd2luMzIvbGlic25tcCwgd2luMzIvbGlic25tcF9kbGwsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMsIHdpbjMyL2xvY2FsLCB3aW4zMi9uZXQtc25tcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQsIHdpbjMyL25ldC1zbm1wL2xpYnJhcnksIHdpbjMyL25ldHNubXBtaWJzLCAgCiAgICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgRG9uJ3QgdHJ5IHRvIFNWTi1tYW5hZ2UgdGhlIFdpbmRvd3MgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUKICAgKGFkZCByZWxlYXNlLCBkZWJ1ZywgTWFrZWZpbGUgdG8gdGhlIHByZXZpb3VzIGlnbm9yZSBsaXN0KQoKMjAxMC0wNC0xNCAwODoxNiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggV2luZG93cyBiYXRjaCBidWlsZCB1c2luZyBWaXN1YWwgU3R1ZGlvIHdpdGggZHluYW1pYyBsaW5raW5nLgogICBVbnJlZmVyZW5jZWQgc3ltYm9sIGludHJvZHVjZWQgYnkgU1ZOIHJldmlzaW9uIDE4MzkzCgoyMDEwLTA0LTE0IDA4OjA4ICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IEZpeCBiYXRjaCBidWlsZCB1c2luZyByZWNlbnQgdmVyc2lvbnMgb2YgVmlzdWFsCiAgIFN0dWRpby4KICAgUGFydGlhbCBiYWNrIHBvcnQgb2YgU1ZOIHJldmlzaW9ucyAxNzU3MyBhbmQgMTc2OTYuCgoyMDEwLTA0LTE0IDAxOjQ3ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggcGVybXMgb24gY3JlYXRlZCBmaWxlcyAtcnctLS0tLS0tLCB1bWFzaygwNzcpCgoyMDEwLTA0LTEzIDIyOjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGZpeCBwZXJtcywgYWRkIC0tY24vLWMsIGJldHRlciBkYXRlcyBkZWZhdWx0cywgc25tcC10bHMgb3JnX3VuaXQsCiAgIGFkZGVkIGluaXRpYWwgZHVtbXkgY29uZmlnIGZpbGUKCjIwMTAtMDQtMTMgMTQ6MjEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeGVzIGZvciBzaG93IGNtZHMsIGNtZGxpbmUsIGhlbHAKCjIwMTAtMDQtMTMgMDI6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGtleStjZXJ0IGluIC5wZW0gZmlsZXM7IG1pc2MgdHdlYWtzCgoyMDEwLTA0LTEwIDIzOjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiBvbiBIUC1VWCAxMC4yMCkKCjIwMTAtMDQtMTAgMjI6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGluaXRpYWwgY3V0IGF0IHRsc3RtQ2VydFRvVFNOVGFibGUKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBhZGQgZGVmaW5lIG9mIG1heCBoYXNoIGNvbnN0YW50CgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1c2UgY2VydCB1dGlsIGNoZWNrIGZvciBmaW5nZXJwcmludCBsZW4vYWxnb3JpdGhtCgoyMDEwLTA0LTEwIDEyOjU5ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBzaG93IGNtZCBmaXhlcwoKMjAxMC0wNC0wOSAyMTozMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZmFpcmx5IGZ1bmN0aW9uYWwgKG5vbi1pbnRlcmFjdGl2ZSkgLSBiZSBpdCBrbm93bjogdGhlcmUgYXJlIGJ1Z3MKCjIwMTAtMDQtMDkgMjA6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaDoKCiAgIG1lcmdlIHNvbWUgdGFibGVfZGF0YS5jb25mIGNoYW5nZXM7IHJlbW92ZSB1bnVzZWQgY29kZSBhbmQgYQogICBidW5jaCBvZiB2ZXJib3NlIGNvbW1lbnRzCgoyMDEwLTA0LTA4IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdXNlIGZ1bGwgcGF0aAoKMjAxMC0wNC0wOCAxMDo1NSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ2hlY2sgcmVzdWx0cyBvZiBjYWxscyB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUgYW5kIGxvZwogICBhbiBlcnJvci4KICAgVGhpcyBhbGxvd3MgdXNlcnMgdG8gcmVsYXRlIHZhcmlvdXMgJ2M2NCAzMiBiaXQgY2hlY2sgZmFpbGVkJwogICBlcnJvcnMgd2l0aCBzcGVjaWZpYyBjb3VudGVyLgoKMjAxMC0wNC0wOCAwMTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldyBmdW5jdGlvbgoKMjAxMC0wNC0wOCAwMTowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiB0cmFuc2xhdGUgTk9TVUNIKi9FTkRPRk1JQiBlcnJvcnMgZHVyaW5nIFJFU0VSVkUxCiAgIHRvIE5PQ1JFQVRJT04KCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBORVdTOiBzbm1wZDogdGFibGVfZGF0YS90ZGF0YSBuZXh0IGhhbmRsZXIgd2lsbCBub3QgYmUgY2FsbGVkCiAgIGR1cmluZyBnZXQKICAgcHJvY2Vzc2luZyBpZiBubyB2YWxpZCByb3dzIGFyZSBmb3VuZCBmb3IgdGhlIGhhbmRsZXIKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogYWdlbnQgd2lsbCBubyBsb25nZXIgY2FsbCB0YWJsZSBoYW5kbGVycyBpZiBhIHNldAogICByZXF1ZXN0IGZvcgogICB0aGUgaGFuZGxlciBoYXMgaW52YWxpZCBpbmRleGVzCiAgIENIQU5HRVM6IHNubXBkOiBkb24ndCBjYWxsIGNsZWFudXAgb24gZmlyc3QgcmVxdWVzdCBvbiBiYWQKICAgaW5kZXhlcy4gaW5zdGVhZCwKICAgc2V0IGFjdHVhbCBlcnJvciBsYXRlciwgYW5kIGZyZWUgcmVxdWVzdCBkYXRhIHNldHMgb24gZmlyc3QKICAgcmVxdWVzdCBmb3Igc2V0cwoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBmaW5nZXJwcmludCB2YXJiaW5kCgoyMDEwLTA0LTA3IDIyOjU2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNvbGFyaXMgdHIgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlciByYW5nZXMgcmVsaWFibHkgKHNlZSB0aGUKICAgYXV0b2NvbmYgbWFudWFsKSwgY2hhbmdlIHRoZSBleHByZXNzaW9uIHRvIG9uZSB0aGF0IGlzIHNpbXBsZQogICBlbm91Z2ggdG8gYiBzdXBwb3J0ZWQuCgoyMDEwLTA0LTA3IDE0OjA1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbnNlcnQgdGhlIGNhY2hlIGhlbHBlciBjb3JyZWN0bHkuCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb25zIHRvIHJlbW92ZSBsaXN0L3JvdyBkYXRhIGZyb20KICAgcmVxdWVzdCBsaXN0CgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWZkZWYgdmFyIGRlY2wgZm9yIHZhcnMgb25seSB1c2VkIGluIGxhdGVyIGlmZGVmIGJsb2NrCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBSb3dTdGF0dXMgYW5kCiAgIFN0b3JhZ2VUeXBlIHZhcmJpbmRzCiAgIC0gYWxzbyByZW1vdmUgc29tZSBkdXBsaWNhdGUgY29kZSBhbmQgZml4IGNvbW1lbnRzIGluZGVudCBtYW5nbGVkCgoyMDEwLTA0LTA3IDEwOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlLCBtYW4vbWliMmMtdXBkYXRlLjEuZGVmOgoKICAgdXBkYXRlIG1hbiBwYWdlOyBmaXggc2hlbGwgcmVkaXJlY3Q7IGNyZWF0ZSBleGFtcGxlIHJjZmlsZSBpZgogICBtaXNzaW5nCgoyMDEwLTA0LTA3IDA3OjE1ICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFVzZSBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcgaW5zdGVhZCBvZiBESVNBQkxFX01JQl9MT0FESU5HCgoyMDEwLTA0LTA3IDAwOjM4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE9ubHkgZW5hYmxlIGhvc3RTd0luc3QgcnBtIHN1cHBvcnQgb24gbGludXggaG9zdHMKICAgd2l0aCBsaWJycG0uIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gbm9uLXJwbSBsaW51eAogICBkaXN0cmlidXRpb25zLgoKMjAxMC0wNC0wNyAwMDoxNCAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZSB0aGUgdGVzdCBzdWl0ZSB0byB3b3JrIGV2ZW4gaWYgbWliCiAgIGxvb2t1cCBpcyBkaXNhYmxlZC4KCjIwMTAtMDQtMDcgMDA6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2OgoKICAgQ2hlY2sgZm9yIGNvbTJzZWM2LCBub3QgY29tMnNlYy4KCjIwMTAtMDQtMDYgMjI6NTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgTW92ZSBkaXJlY3RvcnkgY3JlYXRpb24gYmVmb3JlIHRoZSBkaXJlY3RvcmllcyBhcmUgdXNlZC4KCjIwMTAtMDQtMDYgMTE6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIFB5dGhvbiBpcyBhcHBhcmVudGx5IGNsaWVudC1zaWRlIG9ubHkuCgoyMDEwLTA0LTA2IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIGJlZm9yZSBjaGFuZ2luZyBVSUQKICAgKHdoaWNoIHByb2JhYmx5IGludm9sdmVzIGdpdmluZyB1cCBwcml2aWxlZ2VzKQoKMjAxMC0wNC0wNiAwODo1NyAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgRG9jdW1lbnQgbGFyZ2UtZGlzayBzdGF0aXN0aWNzIGFzIGxhdGNoaW5nIGF0IDJUYiAocmF0aGVyIHRoYW4KICAgd3JhcHBpbmcpLgoKMjAxMC0wNC0wNiAwMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLCBtYW4vbWliMmMuMS5kZWY6CgogICBORVdTOiBtaWIyYzogbWliMmMgY2FuIG5vdyBvcHRpb25hbGx5IHJ1biBzZWQgb24gZ2VuZXJhdGVkIGNvZGUKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbnZlcnQgQysrIGNvbW1lbnRzIHRvIEMgY29tbWVudHMKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgcHRyIGNoZWNrIGJlZm9yZSBwcnQgdXNlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBvbiBuZXcgY2VydHM7IG1ha2Ugc3RhdGljIGZ1bmMgdG8gcmV0dXJuCiAgIG1vZGUgbmFtZXMKCjIwMTAtMDQtMDYgMDA6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWxsb3cgYSBmb3VuZCBmaW5nZXJwcmludCBzZWxmLXNpZ25lZCBjZXJ0IGZvciBub3c7IGV2ZW50dWFsbHkKICAgbmVlZCB0byByZXNwZWN0IHRoZSBNSUIgY29uZmlnIHRhYmxlCgoyMDEwLTA0LTA2IDAwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1rZGlyIHNubXBsaWIvdHJhbnNwb3J0cyB3aGVuIERORSBmb3IgYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlCiAgIGRpcgoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGVycm9yIGNvZGUgY2xlYW51cCBmb3IgdGxzYmFzZV93cmFwdXBfcmVjdgoKMjAxMC0wNC0wNSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vcmUgYmV0dGVyIGVycm9yL2RlYnVnIGNvZGVzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgZnV0dXJlLVJGQyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb247IHVzZQogICBmbGFncyBmb3Igc2VydmVyL2NsaWVudCBzcGVjaWZpY2F0aW9uIGZvciBleHBhbnNpb24KCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIHVzYWdlIGNvbnN0cmFpbnRzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBmdW5jdGlvbiBwcm90ZWN0aW9uIGxvZ2ljIGluIGEgdG9wLWxldmVsIGNoZWNrCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBpbml0IG9yZGVyaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbXYgdGxzYmFzZSBpbml0IGZ1bmN0aW9uIHRvIGEgcHJvcGVyIGN0b3IgZm9yIGF1dG8tY2FsbGluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBnZW5lcmF0ZSB0aGUgdHJhbnNwb3J0IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGxpc3QKICAgZHluYW1pY2FsbHkgYW5kIHVzZSBpdAoKMjAxMC0wNC0wMiAxNjozNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IG1vdmVkIHRyYW5zcG9ydCBjb2RlIGludG8gYSBzZXBhcmF0ZSBzdWJkaXJlY3RvcnkgaW4KICAgc25tcGxpYgoKMjAxMC0wNC0wMiAwOTowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBEbyBub3QgYXR0ZW1wdCB0byBjaGVjayBzaXplb2Ygdm9pZCB0byBvYnRhaW4gdGhlIGFtb3VudCBvZgogICBtZW1vcnkgdG8gY29weS4KCjIwMTAtMDQtMDEgMTc6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluc3RlYWQgb2YgZndkIGRlY2xhcmVzLCByZXF1aXJlIG90aGVyIGhlYWRlcgoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb3V0ZGF0ZWQgZGVidWcgbXNnCgoyMDEwLTA0LTAxIDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNlcnRhcGkgdG8gZmluZCBjZXJ0cy9rZXlzCgoyMDEwLTA0LTAxIDE0OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVnaXN0ZXIgZXh0cmFYNTA5U3ViRGlyIHRva2VuCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxMzoxMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGFkZCBwZXJzaXN0ZW50IHN0b3JhZ2U7IHRva2VuIGZvciBjcmVhdGluZyBlbnRyaWVzIGluIHNubXBkLmNvbmY7CiAgIGZpeCBpbmRleAoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBjZXJ0aWZpY2F0ZSBhcGkgdG8gc3VwcG9ydCB0bHMvZHRscwoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IGFkZCBmdW5jdGlvbnMgdG8gZ2V0IGZpbmdlcnByaW50IGZyb20gY2VydCBhbmQgbG9nCiAgIG9wZW5zc2wgZXJycwoKMjAxMC0wNC0wMSAxMjo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggdHlwbwoKMjAxMC0wNC0wMSAxMDozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTA0LTAxIDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IHRhYmxlX2RhdGEgdGVtcGxhdGUgZW5oYW5jZW1lbnRzCiAgIC0gYWRkIGVycm9yIGNoZWNrcyBkdXJpbmcgdGFibGUgaW5pdAogICAtIGNyZWF0ZSBjYWNoZSBlYXJsaWVyIHNvIHdlIGNhbiBiYWlsIG9uIGZhaWx1cmUKICAgLSBhZGQgb3B0aW9uIHRvIGNyZWF0ZS9kZWxldGUgcm93IHcvb3V0IGFkZGluZy9yZW1vdmluZyBmcm9tCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIGFkZCBoZWxwZnVsIHBhcmFtIG5hbWVzIGFzIGhpbnRzIGluIHByb3RvdHlwZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHNlYXJjaCBmb3IgY29udGFpbmVyIHNwZWNpZmljIGNvbnRhaW5lciBiZWZvcmUgZ2VuZXJpYwoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgTkVXUzogc25tcGxpYjogZW5oYW5jZSBmaWxlIHV0aWxzIGFuZCBkaXIgdXRpbHMKICAgLSBhZGQgb3B0aW9uYWwgc3RhdHMgc3RydWN0IHRvIG5ldHNubXBfZmlsZQogICAtIGdlbmVyYWxpemUgZGlyIGNvbnRhaW5lciBmaWx0ZXIsIGFkZCBjb250ZXh0IHRvIGNhbGxiYWNrCiAgIC0gYWRkIG9wdGlvbiB0byBzdG9yZSBuZXRzbm1wX2ZpbGVzICh3L3N0YXRzKSBpbiBjb250YWluZXIKICAgaW5zdGVhZCBvZiBqdXN0IG5hbWUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBwcm90b3R5cGUgdG8gaGVhZGVyOyBjaGVjayBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCjIwMTAtMDMtMzEgMTU6MzQgIGpzYWZyYW5lawoKICAgKiAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtYnJpZGdlLW1pYiwgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1pYnMvQlJJREdFLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDI5NTI3MDg6IGZyb20gSmVucyBPc3RlcmthbXA6IEFkZGVkIFBlcmwKICAgaW1wbGVtZW50YXRpb24gb2YgQlJJREdFLU1JQgoKMjAxMC0wMy0zMSAwMjoxMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXIgcGFja2V0IGxhYmVsaW5nIGZvciBEVExTVURQCgoyMDEwLTAzLTMxIDAyOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjb21tb24gY29udGV4dCBjcmVhdGlvbiBjb2RlCgoyMDEwLTAzLTMwIDIzOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBUTFMgbWV0aG9kIHRvIFRMU3YxIGZyb20gU1NMdjIzCgoyMDEwLTAzLTMwIDIzOjIzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgbW9yZSBjb21tb24gZGF0YSBhbmQgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZSBUTFMgYmFzZQoKMjAxMC0wMy0zMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtaW5vciBUTFMgY29kZSBjbGVhbnVwCgoyMDEwLTAzLTMwIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZXdvcmsgaWYoKSB3cmFwcGluZyBmb3IgbGVzcyBjb25mdXNpb24gaW4gZXJyb3IgaGFuZGxpbmcKCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvZGUgY29uc29saWRhdGlvbiBpbiBzdGFydF9uZXdfY2FjaGVkX2Nvbm5lY3RpbwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1lIGdlbmVyaWMgJ2JpbycgcG9pbnRlciB0byAncmVhZF9iaW8nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCjIwMTAtMDMtMzAgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgYnVmZmVyZWQgZGF0YSBjcmVhdGlvbiB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZQoKMjAxMC0wMy0zMCAxNzo1MiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IGdlbiB3cmFwcGVyIHNjcmlwdCAtIG5vdCB3b3JraW5nCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGVhbiB1cCBlcnJvciBvdXRwdXQgc28gaXQgZG9lc24ndCByZXBvcnQgd2FudF9yZWFkIGFuZAogICB3YW50X3dyaXRlIGVycm9ycwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1pbmcgb2Ygc2VuZGluZyBmdW5jdGlvbiBmb3IgY2xhcml0eSBhbmQgY2hlY2sgb25lIG1vcmUKICAgbG9jYXRpb24gZm9yIG5lZWRlZCBvdXRnb2luZyBwYWNrZXRzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBkdGxzdWRwIHRyYWNpbmcgdG9rZW5zCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ0hBTkdFUzogYWRkZWQgYSBuZXcgREVCVUdUUkFDRVRPSygpIG1hY3JvCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZXR0ZXIgY29tbWVudHMgYW5kIG1vcmUgd29yayBvbiBzZW5kaW5nIGJ1ZmZlcmVkIGRhdGEgaW4gdGhlCiAgIHJpZ2h0IHNwb3RzCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcmd1bWVudHMgdG8gZ2V0X2NvbW1vbk5hbWUKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2lubmluZyBvZiBjYWNoaW5nIG9mIHBhY2tldHMgYmVmb3JlIHRoZXkgY2FuIGJlIHNlbnQgdmlhIERUTFMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGhhbmRsZSBTU0xfV0FOVF9SRUFEL1dSSVRFIGJldHRlcjsgc3RpbGwgbmVlZCB0byBidWZmZXIgb3V0Z29pbmcKICAgd3JpdGUgZGF0YQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbWlub3IgY2hhbmdlIHRvIG91dHB1dCBlcnJvciBwcmludGluZwoKMjAxMC0wMy0yOSAxNToyMCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG1hdGNoaW5nIFZBQ00gZW50cmllcy4KICAgKFVzZSB0aGUgImJlc3QiIG1hdGNoLCByYXRoZXIgdGhhbiB0aGUgZmlyc3Qgb25lKS4KICAgUmVwb3J0ZWQgYnkgQWRhbSBMZXdpcy4KICAgTm90ZSB0aGF0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IHRoZSBiZWhhdmlvdXIgb2YKICAgZXhpc3RpbmcgYWNjZXNzIGNvbnRyb2wgY29uZmlndXJhdGlvbnMuCgoyMDEwLTAzLTI5IDE1OjE2ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpnZXRWYWx1ZSgpOiBkb24ndCByZXR1cm4KICAgYSBwb2ludGVyIHRvIGEgYnVmZmVyIG9uIHRoZSBzdGFjay4gSG93IGNhbiB0aGlzIGhhdmUgd29ya2VkCiAgIHJlbGlhYmx5ID8/CiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6c2V0VmFsdWUoKSwKICAgQVNOX0NPVU5URVI2NDogZml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2UgdGhpcyBtZXRob2QgdG8gZmFpbAogICBldmVuIHdoZW4gYSB2YWxpZCBudW1iZXIgd2FzIHByb3ZpZGVkLgoKMjAxMC0wMy0yOSAxNToxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYWdlbnQgY3Jhc2ggd2hlbiBzZW5kaW5nIGVuY3J5cHRlZCBTTk1QdjMKICAgdHJhcHMuCiAgIFJlcG9ydGVkIGJ5IFNyaWthcGlsYW4gR2FuZGhpCgoyMDEwLTAzLTI5IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2F0Y2ggc3RkZXJyIG9uIFdpbmRvd3MgdG9vLgoKMjAxMC0wMy0yOSAxMTo0OCAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wMy0yOSAxMToxOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZGVzdHJveWluZyBhCiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZmFpbHVyZSBvZgogICBjcmVhdGluZyBhIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZQogICBOZXRTTk1QOjpPSUQ6OmdldHRhYmxlKCkgc3Vicm91dGluZS4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgdHJpZ2dlcmVkIGJ5CiAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBhIFBEVSBwcm9jZXNzaW5nCiAgIGVycm9yIGluIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIG1lbW9yeSBsZWFrcyB0cmlnZ2VyZWQgYnkgY3JlYXRpbmcgYW4gU05NUHYzCiAgIHNlc3Npb24gdmlhIE5ldFNOTVA6OlNOTVAuCiAgIAogICBBbHNvIGZpeGVkIHRoZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGFjY2Vzc2VzIHRyaWdnZXJlZCBieQogICBhZGRpbmcgYSB2YXJiaW5kIHRvIGEgUERVIHZpYSBOZXRTTk1QOjpTTk1QIGludHJvZHVjZWQgYSBmZXcgZGF5cwogICBhZ28uCiAgIAogICBUaGUgYnVncyBtZW50aW9uZWQgYWJvdmUgaGF2ZSBiZWVuIGZvdW5kIGJ5IGluc3BlY3RpbmcgdGhlIG91dHB1dAogICBvZiB0aGUgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmQ6CiAgIGNkIHBlcmwgJiYgdmFsZ3JpbmQgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS1sZWFrLWNoZWNrPWZ1bGwgbWFrZQogICB0ZXN0CgoyMDEwLTAzLTI5IDEwOjU5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU3dpdGNoZWQgYmFjayB0byB0aGUgcHJldmlvdXMgd2F5IG9mIHN0YXJ0aW5nIHByb2Nlc3NlcwogICBhc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IGlzIG1vcmUgcmVsaWFibGUuCgoyMDEwLTAzLTI5IDA5OjI3ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgRG8gbm90IG9ubHkgc2F2ZSBzbm1wZCAvIHNubXB0cmFwZCBsb2dzIGJ1dCBhbHNvIHRoZSBzdGRvdXQgLwogICBzdGRlcnIgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGVzZSBwcm9jZXNzZXMuCgoyMDEwLTAzLTI4IDE2OjA5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2hhbmdlcyBpbiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgogICAtIEFkZGVkIGNvbW1hbmQtbGluZSBvcHRpb24gLWQgZm9yIHNubXBkIGFuZCBzbm1wdHJhcGQuCiAgIC0gc25tcGQgYW5kIHNubXB0cmFwZCBvdXRwdXQgaXMgbm93IHNhdmVkIHRvIGEgbG9nIGZpbGUgKG9uZSBwZXIKICAgdGVzdCkuCiAgIC0gUmV3cm90ZSBQZXJsIGNvZGUgZm9yIHN0YXJ0aW5nIHRoZSBzbm1wZC9zbm1wdHJhcGQgcHJvY2Vzc2VzCiAgIHN1Y2ggdGhhdCB0aGUgc2FtZSBjb2RlIHdvcmtzIG9uIFVuaXggYW5kIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI4IDEzOjM3ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX21hbGxvYygpLAogICBuZXRzbm1wX2NhbGxvYygpLCBuZXRzbm1wX3JlYWxsb2MoKSwgbmV0c25tcF9zdHJkdXAoKSBhbmQKICAgbmV0c25tcF9mcmVlKCkuCiAgIENIQU5HRVM6IFdpbjMyOiBzbm1wbGliOiByZW1vdmVkIHRoZSB0cm91Ymxlc29tZSAjZGVmaW5lIG1hbGxvYwogICBuZXRzbm1wX21hbGxvYyBldGMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGNhbGxpbmcgZnVuY3Rpb25zIGZyb20KICAgdGhlIE5ldC1TTk1QIERMTCBmcm9tIEMgb3IgQysrIGNvZGUgdGhhdCBpcyBiZWluZyBsaW5rZWQgYWdhaW5zdAogICBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMgcnVudGltZSBETEwgdGhhbiB0aGUgTmV0LVNOTVAgRExMLAogICBhbmQgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeSB0aGF0IHdpbGwgYmUgZnJlZWQgYnkgdGhlIE5ldC1TTk1QCiAgIERMTCwgeW91IHdpbGwgZWl0aGVyIGhhdmUgdG8gY2FsbCB0aGUgTmV0LVNOTVAgbWVtb3J5IGFsbG9jYXRpb24KICAgZnVuY3Rpb25zIGV4cGxpY2l0bHkgb3IgcmVkZWZpbmUgbWFsbG9jKCkgZXRjLiB5b3Vyc2VsZi4KCjIwMTAtMDMtMjggMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4ZWQgYSByZWNlbnRseSByZWludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDMtMjcgMTg6NDIgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjaGVjayBmb3IgaW52b2NhdGlvbiBvZiBjYWxsb2MoKSBmcm9tIFhTVUJzLgoKMjAxMC0wMy0yNiAxOToxNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBGb2xsb3ctdXAgZm9yIHIxODM2OCBhbmQgcjE4MzY5OiBtYWRlIHN1cmUgdGhhdCB0aGUgTmV0LVNOTVAgUGVybAogICBleHRlbnNpb25zIGNvbXBpbGUgd2l0aG91dCB0cmlnZ2VyaW5nIHByZXByb2Nlc3NvciB3YXJuaW5ncyBhYm91dAogICByZWRlZmluaW5nIG1hbGxvYyBldGMuIG5vciB0cmlnZ2VyICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycyBvbgogICBXaW5kb3dzLgoKMjAxMC0wMy0yNiAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUmVmYWN0b3Jpbmc6IGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb246CiAgIG5ldHNubXBfc2V0X25vbl9ibG9ja2luZ19tb2RlKCkuCgoyMDEwLTAzLTI2IDExOjU4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHVzaW5nIHZhcmlhYmxlcyBvZiB0eXBlIGNoYXIgYXMgYW4KICAgYXJyYXkgc3Vic2NyaXB0LiBOb3RlOiBhcyBmYXIgYXMgSSBrbm93IHRoZXNlIHdhcm5pbmdzIGFyZSBvbmx5CiAgIHJlcG9ydGVkIHdoZW4gdXNpbmcgdGhlIEN5Z3dpbiBnbGliYyBoZWFkZXJzLgoKMjAxMC0wMy0yNiAxMDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmUgKG9uIFdpbmRvd3MgTVNWQyB3YXMgY29tcGxhaW5pbmcKICAgYWJvdXQgc2l6ZV90IHdoaWxlIHByb2Nlc3NpbmcgPG5ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg+KS4KCjIwMTAtMDMtMjUgMjA6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBhZ2VudHg6IGNoYW5nZWQgZGVmYXVsdCBUQ1AgdGFyZ2V0IGZyb20gMC4wLjAuMDo3MDUgdG8KICAgbG9jYWxob3N0OjcwNS4gVGhpcyBpcyBub3Qgb25seSBhIG1vcmUgc2VjdXJlIGNob2ljZSBidXQgaXQgYWxzbwogICBtYWtlcyBpdCBwb3NzaWJsZSBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gbGV0IGFuIEFnZW50WCBzdWJhZ2VudAogICBjb25uZWN0IHRvIGFuIEFnZW50WCBtYXN0ZXIgYWdlbnQgcnVubmluZyBvbiB0aGUgc2FtZSBzeXN0ZW0KICAgd2l0aG91dCBoYXZpbmcgdG8gc2V0IHRoZSB2YXJpYWJsZSBORVRTTk1QX0RTX0FHRU5UX1hfU09DS0VULgoKMjAxMC0wMy0yNSAxNjoxMSAgYnZhc3NjaGUKCiAgICogIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBwZXJsOiBmaXhlZCBzZXZlcmFsICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycy4KICAgTm90ZTogc2luY2UgY2FsbG9jKCkgaXMgbm90IHJlZGVmaW5lZCBpbiA8Q09SRS9YU1VCLmg+IHVzaW5nCiAgIGNhbGxvYygpIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgbGVhZHMgdG8gIkZyZWUgdG8gd3JvbmcgcG9vbCIKICAgZXJyb3JzLCBhdCBsZWFzdCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxNjowNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBtb3JlIHNpbGVudCBieSBub3QKICAgcmVkZWZpbmluZyBtYWxsb2MoKSBvciBmcmVlKCkgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIFBlcmwKICAgZXh0ZW5zaW9ucyAocmVzdWx0ZWQgaW4gd2FybmluZ3MgYWJvdXQgbWFsbG9jKCkgLyBmcmVlKCkKICAgcmVkZWZpbml0aW9uIGluIHRoZSBQZXJsIGhlYWRlciBDT1JFL1hTVUIuaCkuCgoyMDEwLTAzLTI1IDE1OjA2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IEJVRzogMjk2OTg3MjogbWFkZSBzdXJlIHRoYXQgU09DS19TVEFSVFVQIGlzIGludm9rZWQKICAgYmVmb3JlIGluaXRfYWdlbnQoKSBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxMzozOSAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSBtYWNyb3MgaW5zdGVhZCBvZiBtYWdpYyBudW1iZXJzIGFzIG5ldHNubXBfcGFyc2VfYXJncyByZXR1cm4KICAgY29kZXMuCgoyMDEwLTAzLTI1IDEzOjMwICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIGJ1aWxkIHByb2Nlc3MgYnkKICAgcmVtb3ZpbmcgdGhlIGZpbGUgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4uIFdoaWNoIElQdjYKICAgZnVuY3Rpb25zIGFyZSBleHBvcnRlZCBmcm9tIG5ldHNubXAuZGxsIGlzIG5vdyBkZXRlcm1pbmVkIGJ5CiAgIHdoaWNoIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBETEwgaGF2ZSBiZWVuIGRlY2xhcmVkIGFzCiAgIE5FVFNOTVBfSU1QT1JULgoKMjAxMC0wMy0yNCAyMDoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBkb24ndCB1c2UgcGFzc2VkIHB0ciBhcyB0ZW1wIHZhcjsgdXNlIHNubXBfZW51bV9saXN0cyBpbiBpbml0CiAgIHRlc3QKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIE5FVFNOTVBfRFNfTElCX0NFUlRfRVhUUkFfU1VCRElSCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCBlYXJsaWVyIChoYXZlIHRsc19ib290c3RyYXAgY2FsbCBpdCkKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3M7IGFkZCBjZXJ0IGRlYnVnIG1zZ3MgaW4gc2VydmVyIHNldHVwOyBmcmVlCiAgIHNzbCBsb2cgZGF0YQoKMjAxMC0wMy0yNCAxMDo0NyAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IGFwcHM6IHJldHVybiBub3plcm8gZXhpdCBjb2RlIHdoZW4gcGFyc2luZyBvZiBjZXJ0YWluCiAgIHBhcmFtZXRlciBmYWlscy4KICAgRS5nLiAnLUEnIHBhcmFtZXRlciB3aXRoIHRvbyBzaG9ydCBwYXNzcGhyYXNlIG9yIEt1IGtleQogICBnZW5lcmF0aW9uIGluIGdlbmVyYWwuCgoyMDEwLTAzLTI0IDA3OjExICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIENvcnJlY3QgdGhlIHR5cGUgb2YgdGhlIGlkL2Rlc2NyaXB0aW9uIG9mIHRoZSBPcGVuLVBEVS4KCjIwMTAtMDMtMjIgMTg6MjkgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgVXBkYXRlcyBmb3IgIm1ha2UgY2hlY2tzIjoKICAgLSBNYWRlIHN1cmUgdGhhdCBleGl0IGNvZGUgMCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgaXMKICAgc3VjY2Vzc2Z1bCBhbmQgdGhhdAogICBleGl0IGNvZGUgMSBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgZmFpbGVkLgogICAtIE1hZGUgIm1ha2VmaWxlY2hlY2siIHNraXAgU3VidmVyc2lvbiBib29ra2VlcGluZyBmaWxlcyBhbmQgYWxzbwogICB0aGUgbWFrZWZpbGUKICAgdGhhdCBjb250YWlucyAibWFrZWZpbGVjaGVjayIuCgoyMDEwLTAzLTIyIDE2OjEwICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIEZpeCB0eXBvIGluIGRlZmF1bHQgSXBBZGRyZXNzIHZhbHVlCiAgIChTZWUgQnVnICMyOTcyMTQxKQoKMjAxMC0wMy0yMiAxNTo0NCAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9jYWxsYmFjay5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgY2hhbmdlIGFsbCBhc3NlcnQoKSB0byBuZXRzbm1wX2Fzc2VydCgpOyBhZGQgYXNzZXJ0Y2hlY2sgdG8gdG9wCiAgIGxldmVsIG1ha2VmaWxlCgoyMDEwLTAzLTIyIDE1OjI0ICBidmFzc2NoZQoKICAgKiBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzQ5OiBhZGRlZCBtaXNzaW5nIGNvbW1hIHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbgogICBwb3NzaWJsZSB0byBjb21waWxlIFVDRC1ESVNLSU8tTUlCLgoKMjAxMC0wMy0yMiAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEZpeCBidWlsZCB3aGVuIE1JQiBsb2FkaW5nIGlzIGRpc2FibGVkIChicm9rZW4gYnkgU1ZOIHJldmlzaW9uCiAgIDE4MzQxKQogICBSZXBvcnQgZGVmYXVsdCBNSUIgcGF0aCBmb3IgY2xpZW50IGFwcHMgdG9vLgoKMjAxMC0wMy0yMiAxMzo1OSAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIENIQU5HRVM6IG1hbjogQlVHOiAyOTcyODYwOiBVcGRhdGUgYnJva2VuIHJlZmVyZW5jZXMKCjIwMTAtMDMtMjIgMTM6NDkgIGR0czEyCgogICAqICBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgICAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogQlVHOiAyOTczODkwOiBGaXggaW1wb3J0cywgRGlza0lPRW50cnkgbGlzdCBhbmQKICAgcmV2aXNpb24gaGlzdG9yaWVzCgoyMDEwLTAzLTIyIDExOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBXaW4zMiwgd2luRXh0RExMOiBzb2x2ZWQgdGhlIG15c3Rlcnkgb2YgIkFTTiB0eXBlIHplcm8iLiBUaGUKICAgd2luRXh0RExMIGNvZGUgZG9lcyBub3cgbm8gbG9uZ2VyIHRyaWdnZXIgY29udmVyc2lvbnMgb2YgV2luZG93cwogICBBU04gdmFyYmluZHMgd2l0aCBBU04gdHlwZSB6ZXJvLiBOb3RlOiB0aGlzIGNvZGUgY2hhbmdlIGRvZXMgbm90CiAgIGNoYW5nZSB0aGUgYWdlbnQgYmVoYXZpb3IuCgoyMDEwLTAzLTIwIDIwOjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaDoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCgoyMDEwLTAzLTIwIDIwOjIwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBBZGRlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCAoc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBpbiB0aGUKICAgcHJldmlvdXMgY29tbWl0KS4KCjIwMTAtMDMtMjAgMTk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAKICAgICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoCiAgIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbgogICBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdAogICBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICoKICAgbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KCjIwMTAtMDMtMjAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IGdjYyAoTWluR1cpLgoKMjAxMC0wMy0yMCAxOTowNSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzaWdwcm9jbWFzay4KCjIwMTAtMDMtMjAgMDk6MTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgUmVmYWN0b3Jpbmc6IG1vdmVkIGR1cGxpY2F0ZWQgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLgoKMjAxMC0wMy0xOSAyMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBNSUIgYW5kIGNvbmZpZyBkaXJlY3RvcmllcyBzZWFyY2ggcGF0aHMgb24gZXJyb3JzCiAgIChhbmQgaW4gdGhlIGhlbHAgbWVzc2FnZSkKCjIwMTAtMDMtMTkgMTM6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIGxvZ2dlZCB3aGVuCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaXMgYXR0ZW1wdGVkIG1vcmUgZGV0YWlsZWQuCiAgIAogICBBbiBleGFtcGxlOgogICAoYmVmb3JlKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIChtaWJJSS9zbm1wLAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsKQogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCiAgIChhZnRlcikKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbjogTUlCIG1vZHVsZXMgbWliSUkvc25tcCBhbmQKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCAob2lkIC4xLjMuNi4xLjIuMS4xMSkuCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KCjIwMTAtMDMtMTkgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbXVsdGlwbGUgdmFyYmluZCBzZXQgcmVxdWVzdHMgYXJlIG5vdwogICBwcm9jZXNzZWQgY29ycmVjdGx5LgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtYWRlIGVycm9yIGNvZGVzIGluIFNOTVAgcmVzcG9uc2UgUERVcwogICBhcyBSRkMtY29tcGxpYW50IGFzIHBvc3NpYmxlLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBpZiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBETEwgZmFpbHMsIHRoZQogICByZWFzb24gd2h5IGxvYWRpbmcgZmFpbGVkIGlzIG5vdyBsb2dnZWQuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdGhhdCBvY2N1cnJlZCB3aGVuCiAgIFNubXBFeHRlbnNpb25RdWVyeShFeCkgZmFpbGVkLiBUaGlzIG1lbW9yeSBsZWFrIGhhcyBiZWVuIGZvdW5kCiAgIHZpYSBzb3VyY2UgcmVhZGluZy4gTm90ZTogaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgaXQgd2FzIHBvc3NpYmxlCiAgIHRvIHRyaWdnZXIgdGhpcyBtZW1vcnkgbGVhay4gVGhpcyBsZWFrIGlzIGNlcnRhaW5seSBub3QgdHJpZ2dlcmVkCiAgIGJ5IGV2ZXJ5IHJlcXVlc3QgZm9yIHdoaWNoIGEgcmVzcG9uc2Ugd2l0aCBub24temVybyBlcnJvciBzdGF0dXMKICAgaXMgc2VudCBiYWNrLgoKMjAxMC0wMy0xOCAxNjoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAga2VlcCBjb3VudCBvZiBlbmFibGVkIGxvZ3M7IHVzZSB0aGlzIGNvdW50IHRvIGRldGVybWluZSB3aGVuIHRvCiAgIGxvZyB0byBzdGRlcnIKCjIwMTAtMDMtMTggMTY6MjggIHJzdG9yeQoKICAgKiAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgc25tcCB0b2tlbiBsb2dPcHRpb24gYWxsb3dzIHNwZWNpZnlpbmcgbG9nCiAgIGRlc3RpbmF0aW9ucyB2aSBjb25mIGZpbGVzCiAgIC0gaWYgc3RkZXJyIGxvZyBlbmFibGVkIGJlY2F1c2Ugb2Ygbm8gbG9nIGRlc3RpbmF0aW9uLCB0dXJuIGl0CiAgIG9mZiB3aGVuIGEKICAgbG9nIGRlc3RpbmF0aW9uIGlzIGVuYWJsZWQKICAgLSBkb24ndCBjYWxsIG5ldHNubXBfZW5hYmxlX3N0ZGVycmxvZygpIGZyb20gYXBwcyBhbnltb3JlCgoyMDEwLTAzLTE4IDE1OjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICB1ZHAgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHR3ZWFrcwogICAtIG1vdmUgYmFzaWMgdWRwIHJlY3Zmcm9tL3NlbmR0byBjb2RlIGZyb20gVURQRG9tYWluIHRvCiAgIFVEUEJhc2VEb21haW4KICAgLSB0d2VhayB1cGQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzdGlvbgogICAtIHR3ZWFrIHVkcGlwdjQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzaW9uCiAgIC0gYWxzbyBmaXhlZCBuZXRzbm1wX2lwdjRfKiAtPiBuZXRzbm1wX3VkcGlwdjRfKgogICAtIHR3ZWFrIERUTFNVRFBEb21haW4gb3QgdXNlIHVkcGJhc2VfKiBpbnN0ZWFkIG9mIHVkcF8qCgoyMDEwLTAzLTE4IDE1OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm90ZWN0IGNlcnQgaGVhZGVyIGFuZCBpbml0IGNhbGwgd2l0aCBpZmRlZnMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdXNlIG5ldyB1dGlsaXR5IHJvdXRpbmUgZm9yIGNlcnQgbmFtZXMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wX29wZW5zc2wgaGVhZGVyIGFmdGVyIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFkZCByb3V0aW5lcyB0byBwdWxsL2R1bXAgbmFtZXMgZnJvbSBYNTA5IGNlcnRzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBlbnVtIGxpc3RzIHRvIG1hbmFnZSBkaXJlY3RvcnkgaW5kZXhlcwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBpbml0aWFsaXplIHN0YXRpYyBzdG9yYWdlIGJlZm9yZSB1c2U7IHByb3RlY3QgZW51bSBpbml0IGZyb20KICAgbXVsdGlwbGUgY2FsbHMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBpbmZvIGFib3V0IG5ldyB0c20vdGxzIG1pYnMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IHRvIHNubXAgaW5pdAoKMjAxMC0wMy0xNyAxMzozNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgVXBkYXRlZCBNSUIgcmV2aXNpb24gaGlzdG9yeS4KCjIwMTAtMDMtMTcgMTM6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBvbmUgbGVhay1hdC1leGl0LgoKMjAxMC0wMy0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBCVUc6IDI5NzEyNTc6IEZpeGVkIHdpbkV4dERMTCBoYW5kbGluZyBvZiBtdWx0aS12YXJiaW5kCiAgIGdldE5leHQgcmVxdWVzdHMgd2l0aCBPSURzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKMjAxMC0wMy0xNyAxMDoyNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNb3JlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgdHVuaW5nLgoKMjAxMC0wMy0xNiAxOTozMSAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQ29tcGlsZXMgbm93IHdpdGggTUlCIGNvbXBpbGVycyB0aGF0IGRvIG5vdCByZWNvZ25pemUgYSBkb3VibGUKICAgZGFzaCBhcyB0aGUgZW5kIG9mIGEgTUlCIGNvbW1lbnQuCgoyMDEwLTAzLTE2IDE5OjI3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4ZWQgdHdvIHN5bnRheCBlcnJvcnMuCgoyMDEwLTAzLTE2IDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgYnVnIGluIGdldE5leHQgaGFuZGxpbmcgdGhhdAogICBjb3VsZCBjYXVzZSB0aGUgTUlCIG91dHB1dCB0byBiZSB0cnVuY2F0ZWQuCgoyMDEwLTAzLTE2IDE4OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1hZGUgd2luRXh0RExMIGRlYnVnIG91dHB1dCBtb3JlIGRldGFpbGVkLgoKMjAxMC0wMy0xNiAxNToyNCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaDoKCiAgIE1hZGUgc3VyZSB0aGF0IEMrKyBwcm9ncmFtcyB0aGF0IGluY2x1ZGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzCiAgIGNvbXBpbGUgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZGVwcmVjYXRlZCBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MTkgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRGlzYWJsZSBhbGwgdGhlIHByaW50aW5nIGlmIGRlYnVnIG91dHB1dCBpcyBvZmYuCgoyMDEwLTAzLTE1IDAwOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNSAwMDowNyAgdGFuZGVycwoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgbWFrZSBzdXJlIGhlYWRlciBpZmRlZiBuYW1lIGlzIHVuaXF1ZQoKMjAxMC0wMy0xNCAyMTowNCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBhZGQgbWlzc2luZyBpbml0L3NodXRkb3duIHByb3RvdHlwZXMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTAzLTE0IDIxOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIG1vdmUgZGVidWcgbWVzc2FnZSBlYXJsaWVyCgoyMDEwLTAzLTE0IDIxOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX2luaXRfY29udGFpbmVyOyBmaXggY29tcGxlciB3YXJuaW5nCgoyMDEwLTAzLTE0IDIwOjUxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENvcnJlY3QgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuIGFuZCBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KICAgZm9yIHRoZSBORVRTTk1QX05PX0RFQlVHR0lORyBjYXNlCgoyMDEwLTAzLTE0IDE5OjEwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVuYW1lIGNlcnQgaW5pdC9zaHV0ZG93biBmdW5jczsgb25seSBjb21waWxlIGNlcnRfdXRpbHMgaWYKICAgdXNpbmcvaGF2ZSBTU0w7IGluaXQgY2VydHMgZnJvbSB0bHMgYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjYWxsIG5ldHNubXBfaW5pdF9vcGVuc3NsIGluc3RlYWQgb2YgbmV0c25tcF9pbml0X3Rsc2Jhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBvYmplY3RzIGluIHZlcnNpb24gMDggb2YgdGhlIGR0bHMgZHJhZnQKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLCBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24sICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIsIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGltcG9ydCBpbml0aWFsIGNvZGUgZm9yIGR0bHMgbWlicwoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIFRMU1RNLU1JQiBmcm9tIGRyYWZ0LWlldGYtaXNtcy1kdGxzLXRtLTA5LnR4dAoKMjAxMC0wMy0xNCAxNzoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBmZXcgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgRm9sbG93LXVwIGZvciByMTczODQ6IGNoYW5nZWQgTkVUU05NUF9EU19NQVhfU1VCSURTIGZyb20gNDAgdG8KICAgNDguCgoyMDEwLTAzLTE0IDEzOjUzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENoYW5nZXM6CiAgIC0gUmVtb3ZlZCAtV25vLWNoYXItc3Vic2NyaXB0cyBmcm9tIERFVkZMQUdTLiBVc2luZyBhIHZhcmlhYmxlIG9yCiAgIGV4cHJlc3Npb24gb2YKICAgdHlwZSBjaGFyIGFzIGFuIGFycmF5IGluZGV4IGlzIGFsbW9zdCBhbHdheXMgYW4gZXJyb3IuCiAgIEZ1cnRoZXJtb3JlLAogICAtV2NoYXItc3Vic2NyaXB0IGRvZXMgbm90IHRyaWdnZXIgYW55IHdhcm5pbmdzIG9uIHRoZSBOZXQtU05NUAogICBjb2RlIGJhc2UuCiAgIC0gUmVtb3ZlZCAtV2lubGluZSBmcm9tIERFVkZMQUdTLiBOb3Qgb25seSB3YXMgbm9ib2R5IHBheWluZwogICBhdHRlbnRpb24gdG8gdGhlCiAgIG1lc3NhZ2VzIHRyaWdnZXJlZCBieSAtV2lubGluZSwgYnV0IHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgZ2NjCiAgIGNvbXBpbGVyIGFyZQogICBiZXR0ZXIgdGhhbiBodW1hbnMgYXQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBpbmxpbmVkCiAgIGFuZCB3aGljaAogICBvbmVzIG5vdC4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvcmVjb25mLgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxMzozNiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZW1vdmVkIHRoZSAnMHgnIHByZWZpeCBhZ2FpbiBmcm9tIGEgZGVidWcgc3RhdGVtZW50IHRoYXQgd2FzCiAgIGludHJvZHVjZWQgaW4gcjE4MjgyLgoKMjAxMC0wMy0xMyAxOTowNyAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9wcHBvcnQuaCwgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUKICAgcGVybCBzdWJkaXJlY3RvcnkuCiAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4KCjIwMTAtMDMtMTMgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZSB0aGUgVExTVENQIERPTUFJTgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IGlmZGVmIHR5cG8KCjIwMTAtMDMtMTIgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBkZWJ1Z2dpbmcgc3ltYm9sIG5hbWVzIHRvIGEgZ2VuZXJpYyB0bHMgc3RyaW5nCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGluaXRpYWwgd29ya2luZyBTTk1QIG92ZXIgVExTIG92ZXIgVENQIGNvbm5lY3Rpb24KCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHByaW50IGEgbW9yZSBjb21wbGV0ZSBPcGVuU1NMIHN0YWNrCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCBhc3NlcnQgc3RhdGVtZW50cwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBhZGRlZCBhbiBhY2NlcHRlZF9iaW8gcG9pbnRlciBmb3IgdGhlIGJpbyBhZnRlciBTU0xfYWNjZXB0CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgdGhlIGFiaWxpdHkgZm9yIGZfY29weSBhbmQgZl9jb25maWcKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgbWlzc2luZyA7CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZCBhIGZfY29weSBwb2ludGVyCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHJldHVybiBpbnQgbm90IGludCAqIG9uIGVycm9yCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGEgZl9jb25maWcgZnVuY3Rpb24gZm9yIHRyYW5zcG9ydHMKCjIwMTAtMDMtMTIgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IFBBVENIOiAyODUwMDY3OiBTdXBwcmVzcyBleHRyYW5lb3VzICJpbmRleCIKICAgaGVhZGVyIHRva2VuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IERhbiBOZWxzb24KCjIwMTAtMDMtMTIgMTE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YKICAgZ2V0dWxvbmdmcm9tc3lzY2xhc3NuZXRzdGF0aXN0aWNzKCkKCjIwMTAtMDMtMTEgMTY6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGZvcm1hdCBvZiB0aGUgLWUvLUUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgoyMDEwLTAzLTExIDE2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAoYWJhbmRvbmVkKSAnZGF0YXNldDInIGhlbHBlci4KCjIwMTAtMDMtMTEgMTU6NTkgIGR0czEyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBEb24ndCBpbml0aWFsaXNlIHRoZSBUTFMgdHJhbnNwb3J0IHVubGVzcyBpdCdzIGFjdHVhbGx5IGJlZW4KICAgY29uZmlndXJlZCBpbi4KCjIwMTAtMDMtMTEgMTU6NDcgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICB1c2UgU05NUF9UTVBESVIgaW5zdGVhZCBvZiBUTVBESVIKCjIwMTAtMDMtMTEgMTU6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHF1ZXJ5IHJpZ2h0IGJvb2wgKHRzbSBwcmVmaXggaXMgbGliIGJvb2wsIG5vdCBhcHApCgoyMDEwLTAzLTExIDE1OjA4ICBkdHMxMgoKICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjk1MjAzNDogUmV0dXJuIG9mIHRoZSBHcmVhdCBTdVNFICdzcHJpbnRmJwogICBIdW50Li4uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxNDo1NSAgZHRzMTIKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBDSEFOR0VTOiBQQVRDSDogMjkzNzk5NjogQWRkIERhdGU6IGhlYWRlciB0byBlbWFpbCBzZW5kIGJ5CiAgIHRyYXB0b2VtYWlsCgoyMDEwLTAzLTExIDE0OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY3NDAwOiBSZXRyaWV2ZSBlcnJvciBjb3VudGVycyBmb3IgdGhlCiAgIEV0aGVyTGlrZS1NSUIKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMuCgoyMDEwLTAzLTExIDE0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njg2NDI6IENhdGNoIG92ZXJmbG93IG9mIHBhc3MtdGhyb3VnaAogICBjb21tYW5kIGJ1ZmZlci4KICAgUGF0Y2ggZnJvbSBBbmRyZWFzIEphZWdlci9MZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTI6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTU2NjU3OiBIYW5kbGUgb3Zlci1sZW5ndGggQWdlbnRYIE9JRHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYiBXZXN0CgoyMDEwLTAzLTExIDEyOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWJ1ZyBwYXJhbWV0ZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBQcm92aWRlIG1pc3NpbmcgKGR1bW15KSByZXR1cm4gdmFsdWUsIHRvIHN1cHByZXNzIGNvbXBpbGVyCiAgIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3Mgb2YgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93LgogICBUaGlzIGRvZXNuJ3QgX2FjdHVhbGx5XyBwcm90ZWN0IGFnYWluc3Qgc3VjaCBhbiBvdmVyZmxvdywKICAgc2luY2UgdGhlIHRhcmdldCBidWZmZXIgaXMgbm9uLWVtcHR5LCBzbyBzdHJuY2F0IGNhbid0CiAgIHVzZSBpdCBhbGwgYW55d2F5LiBCdXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgbWlzbGVhZCB0aGUKICAgY29tcGlsZXIgc3VmZmljaWVudGx5IHRvIHNodXQgaXQgdXAhCiAgIAogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTE6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgUmVwbGFjZSBiYWNrcXVvdGUgd2l0aCBzaW5nbGUgcXVvdGUgaW4gY29uZmlndXJlIG91dHB1dCBtZXNzYWdlLgogICBXaGlsZSB0aGlzIGNoYW5nZSBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBpdCBmZWVscwogICBzZW5zaWJsZSB0byBhdm9pZCB0aGlzIHBhcnRpY3VsYXIgdXNlIG9mIGJhY2txdW90ZXMsIEp1c3QgSW4KICAgQ2FzZS4KICAgU2VlIGRpc2N1c3Npb24gaW4gUGF0Y2ggIzI5NTIxNjkKCjIwMTAtMDMtMTEgMTE6NDMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjk1MjE0MDogT3ZlcmZsb3cgY291bnRlcjMyIGFuZCBnYXVnZTMyCiAgIG9uIDY0Yml0IHN5c3RlbXMgY29ycmVjdGx5CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyOTUyMDIwOiBFeHBsaWNpdGx5IHNldCBwZXJtaXNzaW9uIG9uCiAgIHRlbXBvcmFyeSB0ZXN0aW5nIG91dHB1dCBkaXJlY3Rvcmllcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvLgoKMjAxMC0wMy0xMSAxMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTA4NDU6IEZpeCBpZkhpZ2hTcGVlZCBjYWxjdWxhdGlvbgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMDg6MjYgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBNYWRlIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIG1vZHVsZSBOZXRTTk1QLnBtIG9uIFdpbmRvd3MgbW9yZQogICBzaWxlbnQ6IGFkZGVkIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MgYW5kIG1hZGUgc3VyZSB0aGF0ICNpbmNsdWRlCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gb2NjdXJzIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZSBmaWxlCiAgIHRoYXQgZGVmaW5lcyBfV0lOMzJfV0lOTlQuCgoyMDEwLTAzLTEwIDIzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNyZWF0ZSBpbmRleGVzIGZvciBjZXJ0aWZpY2F0ZXMgaW4gY29uZmlnIHBhdGgKCjIwMTAtMDMtMTAgMTg6NDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIEFkZGVkICIjaW5jbHVkZSA8dW5pc3RkLmg+IiBzdWNoIHRoYXQgb24gVW5peCBzeXN0ZW1zIHRoZQogICBjb21waWxlciBkb2VzIG5vdCBwcmludCBhIHdhcm5pbmcgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICB0aGUgZnVuY3Rpb24gY2xvc2UoKS4KCjIwMTAtMDMtMTAgMTg6MzAgIHJzdG9yeQoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS42LmRldgoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBDSEFOR0VTOiBidWlsZGluZzogdXBkYXRlIFZlcnNpb24tTXVuZ2UgZm9yIHJlbmFtZWQgY29uZmlndXJlLmFjCgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHNhdmUgY29uZmlndXJlIGNhY2hlIGV2ZXJ5IG9uY2UgaW4gd2hpbGUKCjIwMTAtMDMtMTAgMTY6MTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBSZW9yZGVyZWQgc29tZSBvZiB0aGUgTWFrZWZpbGUgcnVsZXMgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlCiAgIGRpZmZzIHdpdGggbGlic25tcF9kbGwvTWFrZWZpbGUuaW4uCgoyMDEwLTAzLTEwIDE2OjEwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyLCBiYXRjaCBidWlsZGluZzogRExMIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMTAgMTY6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcgYnkgYWRkaW5nIGEgZm9yd2FyZAogICBkZWNsYXJhdGlvbiBmb3IgdGhlIGZ1bmN0aW9uIF9jYWNoZV9mcmVlKCkuCgoyMDEwLTAzLTEwIDE2OjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFdpbjMyLgoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBtaXNzaW5nIGNvbnRyaWJ1dG9ycwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgZG91YmxlIGZyZWUgaW4gQ09OVEFJTkVSX0ZSRUUKICAgLSBhbHNvIGFkZGVkIHNldmVyYWwgY29tcGFyZSByb3V0aW5lcwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGZyZWVpbmcgYSBjYWNoZSwgc3RvcCB0aW1lciBhbmQgY2FsbCBjYWNoZQogICBmcmVlIGZ1bmMKICAgLSBhbHNvIGFkZCBuZXRzbm1wX2NhY2hlX3JlbW92ZQoKMjAxMC0wMy0xMCAwMzo1MiAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1bmRvIGNvbW1pdCAxODIzNAoKMjAxMC0wMy0xMCAwMzo0MSAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBNZXJnZSBicmFuY2ggJ3B1bGxtZScgb2YgLi4vdHJ1bmstc3RhZ2luZwoKMjAxMC0wMy0wOSAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9yZWFkX21vZHVsZSgpIGZyb20gbmV0c25tcC5kbGwKICAgc3VjaCB0aGF0IE5ldFNOTVAucG0gYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0wOSAxNzo0NyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgU2ltcGxpZmllZCB0d28gbWFrZWZpbGVzIHVzZWQgYnkgYnVpbGQuYmF0IChXaW4zMikuCgoyMDEwLTAzLTA5IDE3OjI0ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogYnVpbGRpbmcgTmV0U05NUC5wbSBkb2VzIG5vIGxvbmdlcgogICB0cmlnZ2VyIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHJlZGVmaW5pbmcgX1dJTjMyX1dJTk5UIG5vcgogICBOVERESV9WRVJTSU9OLgoKMjAxMC0wMy0wOSAxNzoyMiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIE5ldFNOTVAucG0gbW9yZSBzaWxlbnQgYnkKICAgYWRkaW5nIHRoZSBNU1ZDIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MuCgoyMDEwLTAzLTA5IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIGRlYnVnIG1zZyB1c2VkIGR1cmluZyBkZWJ1Z2dpbmcKCjIwMTAtMDMtMDkgMTc6MDIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCB3cmFwcGVyIC0gdGVzdGluZyByZXBvIHdyaXRlIHByaXZzCgoyMDEwLTAzLTA5IDEwOjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIGJ1aWxkIHJ1bGVzLiBUaGVzZSBkdXBsaWNhdGUgcnVsZXMgd2VyZQogICBoYXJtbGVzcyBidXQgdHJpZ2dlcmVkIGEgd2FybmluZy4KCjIwMTAtMDMtMDkgMDI6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkaXJlY3RvcnkgY29udGFpbmVyIGVuaGFuY2VtZW50cwogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKICAgLSBhZGQgZmlsdGVyIGNhbGxiYWNrIHRvIGZpbHRlciBmaWxlcyByZXR1cm5lZAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIHJlbGF0aXZlIGFuZCBub3QgZnVsbCBwYXRocwogICAtIGFkZCBvcHRpb24gdG8gc29ydCByZXR1cm5lZCBsaXN0CiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gZW1wdHkgY29udGFpbmVyIGluc3RlYWQgb2YgTlVMTCBpZiBubwogICBmaWxlcyBmb3VuZAogICAtIGNoYW5nZSBkZWZhdWx0IGNvbnRhaW5lciBuYW1lIHRvIGRpcmVjdG9yeSB0aGF0IHdhcyBzY2FubmVkCiAgIC0gdHdlYWsgZGVidWcvbG9nIG1lc3NhZ2VzCgoyMDEwLTAzLTA4IDIzOjA3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IGRlZmluZSBhbmQgdXNlIG5ldyBORVRTTk1QX0xPR09OQ0UgbWFjcm8KCjIwMTAtMDMtMDggMjI6NDQgIHJzdG9yeQoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNvbmYgZmlsZXMgY2FuIG5vdyBpbmNsdWRlIG90aGVyIGNvbmYgZmlsZXMKICAgLSBhbHNvIHR3ZWFrZWQgZGVidWcgdG9rZW5zIGhlcmUgYW5kIHRoZXJlCgoyMDEwLTAzLTA4IDIyOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR5cG8gKGNhdXNlZCBleHRlcm5hbCByZWZlcmVuY2Ugd2hlbiBEVExTVURQIGNvbmZpZ3VyZWQKICAgd2l0aG91dCBkdGxzdGNwKQoKMjAxMC0wMy0wNiAwMjoyNyAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldHNubXBfY29udGFpbmVyIGVuaGFuY2VtZW50czoKICAgLSBhZGQgZnJlZV9pdGVtIGZ1bmN0aW9uOyBkZWZhdWx0cyB0bwogICBuZXRzbm1wX2NvbnRhaW5lcl9zaW1wbGVfZnJlZQogICAtIGFkZCBDT05UQUlORVJfRlJFRV9BTEwgbWFjcm8vZnVuY3Rpb24gKGxpa2UgQ09OVEFJTkVSX0NMRUFSIGJ1dAogICBjYWxscyBjb250YWluZXIgZnJlZV9pdGVtIGZvciBlYWNoIGl0ZW0gaW4gcHJpbWFyeSBjb250YWluZXIpCiAgIC0gYWRkIGFiaWxpdHkgdG8gc2V0IG9wdGlvbnMgb24gYmluYXJ5X2FycmF5IGNvbnRhaW5lcnMKCjIwMTAtMDMtMDIgMTc6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBNYWRlIHN1cmUgdGhhdCB3aW4zMi9idWlsZC5iYXQgd29ya3MgYWdhaW4gYnkgYWRkaW5nIG1pc3NpbmcKICAgc291cmNlIGZpbGUgbmFtZXMuIFNvcnRlZCBzb3VyY2UgZmlsZSBuYW1lcyBhbHBoYWJldGljYWxseSB0b28uCgoyMDEwLTAzLTAyIDE2OjU0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IHRoZSBiYXRjaCBmaWxlIHdpbjMyL2J1aWxkLmJhdAogICB3b3JrcyBhZ2FpbiB3aXRoIHRoZSBQbGF0Zm9ybSBTREsgZW5hYmxlZC4KCjIwMTAtMDMtMDIgMTY6NTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL01ha2VmaWxlLWFwcHMuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODIxNSAocmVwbGFjZWQgdGhlIG9ic29sZXRlIGNsLmV4ZSBvcHRpb24gL0dYIGJ5CiAgIHRoZSBlcXVpdmFsZW50IC9FSHNjOyBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiLCBhZGRlZAogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiBhbmQgcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWCkuCgoyMDEwLTAyLTI4IDE1OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFdpbjMyOiBmaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcmVkZWZpbml0aW9uIG9mCiAgIF9XSU4zMl9XSU5OVCBieSBtYWtpbmcgc3VyZSB0aGF0IDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gaXMKICAgaW5jbHVkZWQgYmVmb3JlIDx3aW5kb3dzLmg+LgoKMjAxMC0wMi0yOCAxNToyNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSAvR1ggYnkgdGhlCiAgIGVxdWl2YWxlbnQgL0VIc2MuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIgogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiB0byBtYWtlIGJ1aWxkaW5nIHdpdGggTVNWQyAyMDA4CiAgIG1vcmUgc2lsZW50LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVguIFRoZXNlCiAgIG9wdGlvbnMgaW5mbHVlbmNlIGhvdyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMgYXJlIGdlbmVyYXRlZCwKICAgd2hpY2ggYXJlIG5vdCB1c2VkIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdC4gL1lYIGlzIG5vdAogICBzdXBwb3J0ZWQgYnkgTVNWQyAyMDA4LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgYSBkdXBsaWNhdGUgb2NjdXJyZW5jZSBvZgogICBzdHJ0b3VsbC5vYmouCgoyMDEwLTAyLTI4IDE0OjExICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiBhcHBsaWVkIHRoZSBuZWNlc3NhcnkgY2hhbmdlcyB0bwogICB0aGUgd2luMzIvQ29uZmlndXJlIHNjcmlwdCBhbmQgd2luMzIvTWFrZWZpbGUuaW4uCgoyMDEwLTAyLTI3IDEzOjExICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsICAgCiAgICAgIHNubXBsaWIvZ2V0b3B0LmMsIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGRlY2xhcmVkIGFsbCBmdW5jdGlvbnMgdGhhdCBhcmUgZXhwb3J0ZWQgZnJvbSB0aGUKICAgTmV0LVNOTVAgRExMIGFzIE5FVFNOTVBfSU1QT1JULiBUaGUgcmVzdWx0IGlzIGEgbWlub3IKICAgb3B0aW1pemF0aW9uOiBjb2RlIHRoYXQgdXNlcyB0aGUgTmV0LVNOTVAgRExMIHdpbGwgbm93IGNhbGwgdGhlCiAgIERMTC1leHBvcnRlZCBmdW5jdGlvbnMgZGlyZWN0bHkgaW5zdGVhZCBvZiBpbmRpcmVjdGx5IHZpYSB0aGUKICAgc3R1YiBpbiB0aGUgaW1wb3J0IGxpYnJhcnkuCgoyMDEwLTAyLTI3IDExOjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBSZW1vdmVkIGEgcmVkdW5kYW50IHN0cm5jYXNlY21wKCkgZGVjbGFyYXRpb24uCgoyMDEwLTAyLTI3IDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRva19yLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wMi0yNyAwOTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODkgKHJzdG9yeSk6IGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzLgoKMjAxMC0wMi0yNSAxNzo1MyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmV2ZXJ0ZWQgcjE4MjA3IChkc3AvZHN3IHRvIHZjcHJvai9zbG4gY29udmVyc2lvbikgZXhjZXB0IHRoZQogICBzdXBwcmVzc2lvbgogICBsaXN0IGNoYW5nZXMuIFRoZSBnb2FsIG9mIHRoaXMgY29udmVyc2lvbiB3YXMgdHdvZm9sZDogbm90IG9ubHkKICAgdG8gYmUgYWJsZQogICB0byBsb2FkIHRoZSBwcm9qZWN0IGZpbGVzIGluIE1TVkMgMjAwMiAtIDIwMDggYnV0IGFsc28gdG8gYmUgYWJsZQogICB0byBjb21taXQKICAgY2hhbmdlcyBtYWRlIGZyb20gaW5zaWRlIHRoZSBNU1ZDIDIwMDggSURFLiBVbmZvcnR1bmF0ZWx5CiAgIGNvbnZlcnRpbmcgZHNwL2RzdwogICBmaWxlcyB0byB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggTVNWQyAyMDA4IG1ha2VzIGl0IGltcG9zc2libGUgdG8KICAgbG9hZCB0aGUKICAgdmNwcm9qL3NsbiBmaWxlcyB3aXRoIGVhcmxpZXIgTVNWQyB2ZXJzaW9ucy4gV2h5IG9uIGVhcnRoIGRpZAogICBNaWNyb3NvZnQKICAgZGVjaWRlIHRvIHB1dCBhIHZlcnNpb24gbnVtYmVyIGluIFhNTCBmaWxlcyA/CgoyMDEwLTAyLTI0IDE5OjQxICBidmFzc2NoZQoKICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIHdpbjMyL2xpYmFnZW50LCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycywgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgd2luMzIvbGlibmV0c25tcHRyYXBkLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIHdpbjMyL2xpYnNubXAsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgd2luMzIvbmV0c25tcG1pYnMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCB3aW4zMi9zbm1wYnVsa2dldCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIHdpbjMyL3NubXBidWxrd2FsaywgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YSwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLAogICAgICAgICB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQsIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCB3aW4zMi9zbm1wbmV0c3RhdCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQsICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIHdpbjMyL3NubXB0YWJsZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIHdpbjMyL3NubXB0cmFwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIHdpbjMyL3NubXB1c20sICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgd2luMzIvc25tcHdhbGssICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICAocmV2ZXJ0ZWQpIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogY29udmVydGVkIC5kc3AvLmRzdyBmaWxlcyB0bwogICAudmNwcm9qLy5zbG4gZmlsZXMuIFRoaXMgaW1wbGllcyB0aGF0IHN1cHBvcnQgZm9yIE1TVkMgNi4wIGhhcwogICBiZWVuIGRyb3BwZWQgYW5kIHRoZSBtaW5pbXVtIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHZlcnNpb24KICAgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGlzIE1pY3Jvc29mdCBWaXN1YWwKICAgU3R1ZGlvIC5ORVQgKDIwMDIpLgoKMjAxMC0wMi0yMyAxOTowMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogd2hlbiBnZW5lcmF0aW5nIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHN5c3RlbQogICBsb2NhdGlvbiBhbmQgbm8gZG9tYWluIG5hbWUgaXMgZm91bmQgaW4gL2V0Yy9yZXNvbHYuY29uZiwgdXNlCiAgICJAbm8ud2hlcmUiIGluc3RlYWQgb2YgIiIuCgoyMDEwLTAyLTIzIDE4OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIzIDE4OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBSZW1vdmVkIGFsbCB0cmFuc3BvcnQgdGVzdHMgc2luY2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVybWluZQogICB3aGVyZSB0aGV5IGNhbiBzYWZlbHkgb3BlcmF0ZSAod2FzIHN0b3BwaW5nIHRhbmRlcnMnIG5pZ2h0bHkKICAgdGVzdHMgZnJvbSBzdWNjZWVkaW5nKQoKMjAxMC0wMi0yMyAxODo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGVycm9yIGFuZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdGhlIHNlcnZlciBjb250ZXh0IGdlbmVyYXRvciB0byBhY3R1YWxseSwgdW0sIHJldHVybiB0aGUKICAgY29udGV4dC4KCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluaXRpYWxpemUgdGhlICdyZXMnIHZhcmlhYmxlIHNpbmNlIGl0J3MgY2hlY2tlZAoKMjAxMC0wMi0yMyAxODozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIHByb2dyZXNzIHRvd2FyZCBhIHJlYWwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHRsc3RjcCBjdG9yIGludm9jYXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICByZXF1aXJlIFRMU0Jhc2UKCjIwMTAtMDItMjMgMTg6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgaG9zdCBpZGVudGlmaWVyIGFzIG91dHB1dAoKMjAxMC0wMi0yMyAxODozNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNpZ25pZmljYW50IG1vcmUgd29yayBvbiB0aGUgVExTIFRDUCBkb21haW4KCjIwMTAtMDItMjMgMTc6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTkzIChqc2FmcmFuZWspOiByZXJhbiBhdXRvcmVjb25mIGZvciB0aGUgdHJ1bmsKICAgYW5kIHRoZSA1LjUgYnJhbmNoLgoKMjAxMC0wMi0yMyAxNDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBORVRTTk1QX1BSSXogaW5zdGVhZCBvZiAlegoKMjAxMC0wMi0yMyAxMjoyNyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeGVkIGNvbXBpbGF0aW9uIHdpdGggcnBtLTQuNi4KICAgVHVybiBvbiB0aGUgbGVnYWN5IEFQSSB3aGVuIHJwbS00LjYgaXMgZGV0ZWN0ZWQuCgoyMDEwLTAyLTIzIDA3OjM4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4MDAwIChkaXNhYmxpbmcgU0lHQUxSTSBzdXBwb3J0KSBiZWNhdXNlIHRoaXMgaW52b2x2ZXMKICAgYSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZS4KCjIwMTAtMDItMjMgMDA6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDItMjMgMDA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWJ1ZyBtc2cgdHdlYWtzOyB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucwogICAtIGFkZCBkZWJ1ZyBoZWFkZXIgZm9yIHNubXAgdmVyc2lvbgogICAtIGFkZCBsZW5ndGggdG8gZGVidWcgc2VuZC9yZWNlaXZlIG1lc3NhZ2VzCiAgIC0gdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMgZm9yIHNlbmQvcmVjdi9maW5kaW5nIHBlZXIgYWRkcmVzcwoKMjAxMC0wMi0yMyAwMDoyNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nLCBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kICYKICAgbmV0c25tcF90cmFuc3BvcnRfcmVjdgogICAtIG1vdmVzIHRyYW5zcG9ydCBtYW5pcHVsYXRpb24gaW50byB0cmFuc3BvcnQgY29kZQogICAtIGNlbnRyYWwgcGxhY2UgZm9yIGxvZ2dpbmcvZGVidWdnaW5nIHNlbnQvcmVjZWl2ZWQgZGF0YQoKMjAxMC0wMi0yMiAxOTozMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMiAxOToyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg2LiBSZWdyZXNzaW9uIHRlc3QgMzQgKHdoZXRoZXIgYXV0aGVudGljYXRpb24KICAgZmFpbHVyZSB0cmFwcyBhcmUgc2VudCBieSBzbm1wZCkgcGFzc2VzIG5vdyBhZ2Fpbi4KCjIwMTAtMDItMjIgMDk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSBzdXJlIHRoYXQgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHVyZSBkb2VzCiAgIG5vdCBjcmVhdGUgZGFuZ2xpbmcgcG9pbnRlcnMgaW4gdGhlIE1JQiBzdWJ0cmVlIHJlZ2lzdHJ5LgoKMjAxMC0wMi0yMiAwOToxMSAgYnZhc3NjaGUKCiAgICogYWdlbnQsIGFwcHMsIGFwcHMvc25tcG5ldHN0YXQ6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTIyIDA4OjQyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmU6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjEzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1pbkdXIHdoZW4gSVB2NiBzdXBwb3J0IGlzIGVuYWJsZWQuCgoyMDEwLTAyLTIxIDE4OjU4ICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi93aW4zMmRsbC5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHJlbmFtZWQgbGlic2RsbC5kc3cgaW50byB3aW4zMmRsbC5kc3cuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCBsaW5raW5nIHRoZSBOZXQtU05NUAogICBhcHBsaWNhdGlvbnMgd2l0aCBuZXRzbm1wLmRsbCBieSBhZGRpbmcgYWxsIGFwcGxpY2F0aW9uIHByb2plY3RzCiAgIHRvIHRoZSBzYW1lIHdvcmtzcGFjZSB0aGF0IGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBETEwuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBuZXRzbm1wLmRsbCBsZXNzIGVycm9yCiAgIHByb25lIGJ5IGxldHRpbmcgdGhlIGNvbXBpbGVyIHByaW50IGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlCiAgIHByZXByb2Nlc3NvciBzeW1ib2wgTkVUU05NUF9VU0VfRExMIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wMi0yMSAxODo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBBZGRlZCBsaWJzbm1wLmRlZiB0byB0aGUgbGlzdCBvZgogICBsaWJzbm1wX2RsbC5kc3Agc291cmNlIGZpbGVzIHN1Y2ggdGhhdCB0aGUgRExMIGlzIHJlYnVpbHQgd2hlbgogICB0aGUgLmRlZiBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkLgoKMjAxMC0wMi0yMSAxODo0NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfc2V0X2xpbmVfYnVmZmVyaW5nKCkgZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTAtMDItMjEgMTc6MzkgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vcmUgV2luMzIgSVB2NiBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudHM6CiAgIC0gTW92ZWQgI3VuZGVmIEhBVkVfSUZfTkFNRVRPSU5ERVggZnJvbSBzbm1wbGliLyouYyB0bwogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC4KICAgLSBDaGFuZ2VkIHRoZSBnbG9iYWwgaW42YWRkcl9hbnkgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBzdWNoIHRoYXQKICAgbXVsdGlwbGUgZGVmaW5pdGlvbnMgZG8gbm90IHRyaWdnZXIgYSBsaW5rZXIgZXJyb3IuCiAgIC0gQWRkZWQgdHlwZWRlZnMgZm9yIHVpbnQ4X3QsIGludDhfdCwgdWludDE2X3QgYW5kIGludDE2X3QuCiAgIC0gUmVwbGFjZWQgJyNpZiBORVRTTk1QX0VOQUJMRV9JUFY2JyBieSAnI2lmZGVmCiAgIE5FVFNOTVBfRU5BQkxFX0lQVjYnLgoKMjAxMC0wMi0yMSAwODozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYzoKCiAgIG1ha2Ugc3VyZSB0aGF0IElOQUREUl9OT05FIGlzIGRlZmluZWQgKGZpeGVzIGJ1aWxkIGVycm9yIG9uCiAgIFNvbGFyaXMpCgoyMDEwLTAyLTE5IDE5OjM5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFN5bmNocm9uaXplZCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBhbmQKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTAyLTE5IDE0OjE4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBXaW4zMjogbGlic25tcCBidWlsZHMgYWdhaW4gYXMgYSBETEwgd2hlbiBJUHY2IGlzCiAgIGVuYWJsZWQuCgoyMDEwLTAyLTE5IDEzOjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MTY0OiBzeW5jaHJvbml6ZWQgbGlic25tcC5kZWYuaW4gd2l0aAogICBsaWJzbm1wLmRlZgoKMjAxMC0wMi0xOSAwOTowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYWRkZWQgI2luY2x1ZGUgPG1hbGxvYy5oPiBpbgogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQgdGhlIE1TVkMgY29tcGlsZXIKICAgZG9lc24ndCBnZXQgY29uZnVzZWQgYnkgdGhlIG1hbGxvYyByZWRlZmluaXRpb24gd2hlbiBidWlsZGluZwogICBsaWJzbm1wIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnRlZCBuZXRzbm1wX3BhcnNlX2FyZ3MoKSBzdWNoIHRoYXQgdGhlIE5ldC1TTk1QIGFwcGxpY2F0aW9ucwogICBidWlsZCBhZ2FpbiB3aGVuIGxpYnNubXAgaXMgYnVpbHQgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtb3ZlZCBNU1ZDIE9wZW5TU0wgbGlua2VyIHNldHRpbmdzIGZyb20KICAgc25tcGxpYi9rZXl0b29scy5jIHRvIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdAogICB0aGVzZSBzZXR0aW5ncyBhcmUgbm90IG9ubHkgZWZmZWN0aXZlIHdoZW4gYnVpbGRpbmcgc25tcGxpYiBhcyBhCiAgIHN0YXRpYyBsaWJyYXJ5IGJ1dCBhbHNvIHdoZW4gYW55IE5ldC1TTk1QIGFwcGxpY2F0aW9uIGlzIGJ1aWx0CiAgIHRoYXQgbGlua3Mgd2l0aCBzbm1wbGliIGFzIGEgc3RhdGljIGxpYnJhcnkgb3IgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjMyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBXaW4zMiBjbGVhbnVwOiBNU1ZDIC8gRExMIHRlc3RzIG5vdyB1c2UgdGhlIG9mZmljaWFsbHkgZW5kb3JzZWQKICAgbWFjcm8gbmFtZXMuCgoyMDEwLTAyLTE5IDA3OjUwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBCdWlsZHMgYWdhaW4uCgoyMDEwLTAyLTE5IDA2OjQ3ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogMjk0Mjk0MDogZnJvbSAiQmlsbCBGZW5uZXIiOiBBZGQgYSBuZXcKICAgZnVuY3Rpb24sIG5ldHNubXBfcGFyc2VfYXJncywgdGhhdCBpcyBsaWtlIHNubXBfcGFyc2VfYXJncyBidXQKICAgdGFrZXMgYW4gYWRkaXRpb25hbCBiaXRtYXNrLCBmbGFncywgdG8gYWZmZWN0IHRoZSBiZWhhdmlvdXIuIEFsc28KICAgcmVtb3ZlIHRoZSBtYWdpYyBoYW5kbGluZyBvZiBzb21lIGFwcGxpY2F0aW9uIG5hbWVzLgoKMjAxMC0wMi0xOCAxNDoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvYmluOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0xOCAxNDoyMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBTb3J0ZWQgbmFtZXMgb2Ygc291cmNlIGZpbGVzIGFscGhhYmV0aWNhbGx5LgoKMjAxMC0wMi0xOCAxMzowMyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHdpbjMyL25ldHNubXBtaWJzc2RrLCAgIAogICAgICB3aW4zMi9zbm1wZHNkaywgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBkcm9wcGVkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIE5ldC1TTk1QIHdpdGgKICAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wIHdpdGhvdXQgcGxhdGZvcm0gU0RLLiBCdWlsZGluZwogICBOZXQtU05NUCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCArIFBTREsgb3IgYW55IGxhdGVyCiAgIHZlcnNpb24gb2YgTVNWQyBpcyBzdGlsbCBwb3NzaWJsZSBob3dldmVyLgogICAKICAgTm90ZTogaWYgaW4gdGhlIGZ1dHVyZSBmb3Igd2hhdGV2ZXIgcmVhc29uIGl0IHNob3VsZCBiZWNvbWUKICAgbmVjZXNzYXJ5IGFnYWluIHRvIGJlIGFibGUgdG8gYnVpbGQgTmV0LVNOTVAgd2l0aCBNU1ZDIHdpdGhvdXQKICAgcmVseWluZyBvbiB0aGUgcGxhdGZvcm0gU0RLIGhlYWRlcnMsIHBsZWFzZSAjaWZkZWYgb3V0IHRoZSBNSUIKICAgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgUFNESyBoZWFkZXJzIGluc3RlYWQgb2Ygc3BsaXR0aW5nIHRoZQogICB3b3Jrc3BhY2UgZmlsZXMgYWdhaW4uCgoyMDEwLTAyLTE4IDEyOjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgZG9zMnVuaXguCgoyMDEwLTAyLTE4IDA5OjQ1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIFNvdXJjZSBjb2RlIGNsZWFudXA6CiAgIC0gTW92ZWQgZG9jdW1lbnRhdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldCBtZW1iZXJzIHRvIHRoZQogICBjb21tZW50CiAgIGJsb2NrIGp1c3QgYWJvdmUgdGhlIGRlZmluaXRpb24gb2YgdGhpcyB0eXBlLgogICAtIFJlbW92ZWQgc3VwZXJmbHVvdXMgJ2V4dGVybiAiQyInIHNwZWNpZmllcjogdGhpcyBsaW5rYWdlCiAgIHNwZWNpZmllcgogICBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBvZiBmdW5jdGlvbnMgYW5kCiAgIG5vdAogICBvbiB0eXBlZGVmcyBvciBzdHJ1Y3QgZGVmaW5pdGlvbnMuCiAgIC0gUmFuIHRoaXMgaGVhZGVyIGZpbGUgdGhyb3VnaCBpbmRlbnQuCgoyMDEwLTAyLTE4IDA5OjI2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENoYW5nZXM6CiAgIC0gQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KICAgLSBGaXhlZCBhIGZldyBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBNU1ZDIChwYXNzaW5nIGludAogICBpbnN0ZWFkIG9mIHVfc2hvcnQgdG8gaHRvbnMoKSAvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0aGF0IHdlcmUKICAgbWlzc2luZyBiZWNhdXNlIG9mIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlcykuCgoyMDEwLTAyLTE2IDE3OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBXaW4zMjogVGhlIGhlYWRlciBmaWxlIDxzeXMvdGltZWIuaD4gaXMgbm8gbG9uZ2VyCiAgIGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LiBPcjogdGhlIGhlYWRlciBmaWxlCiAgIDxzeXMvdGltZWIuaD4gd2lsbCBoYXZlIHRvIGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgaW4gc291cmNlIGZpbGVzCiAgIHRoYXQgbmVlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIGZ0aW1lKCkuCiAgIAogICBOb3RlOiBjb21wYXJlZCB0byByMTgwMjQgYW5kIGJlZm9yZSwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgYWZmZWN0CiAgIEJTRCBzeXN0ZW1zIC0tIDxzeXMvdGltZWIuaD4gd2FzIG9ubHkgaW5jbHVkZWQgZnJvbQogICA8bmV0LXNubXAvdHlwZXMuaD4gb24gQlNEIHN5c3RlbXMgaW4gcmV2aXNpb25zIHIxODAyNS4ucjE4MTUyLgoKMjAxMC0wMi0xNCAxOToyOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEJ1aWxkcyBub3cgb24gRnJlZUJTRCB2ZXJzaW9uIDguMC4KCjIwMTAtMDItMTMgMjA6NTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgOydzIGluIG9yZGVyIHRvCiAgIGEpIEF2b2lkIHdhcm5pbmdzIGFib3V0IHNwdXJpb3VzIHNlbWljb2xvbnMKICAgYikgTm90IGhhdmUgdW50ZXJtaW5hdGVkIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzCgoyMDEwLTAyLTEyIDAyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogdXBkYXRlIGlubGluZSBkb2N1bWVudGF0aW9uOyBhZGQgc3RvcmFnZXR5cGUgdGVzdAogICBmb3IgY29sdW1ucwoKMjAxMC0wMi0xMiAwMTo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHR5cG8gaW4gZGVmaW5lCgoyMDEwLTAyLTEyIDAxOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBzZWQgcHJvY2Vzc2luZyBvbiB3aGl0ZS1zcGFjZSBhZGRpbmcgc29sYXJpcyBtYWNoaW5lcwoKMjAxMC0wMi0xMCAyMzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBhZGQgdG9wIHNyY2RpciB0byBjcHAgc2VhcmNoIHBhdGgKCjIwMTAtMDItMTAgMjM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGZyZWVic2QgbmVlZHMgdGltZS5oIGFib3ZlIHRpbWViLmgKCjIwMTAtMDItMTAgMjM6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgdXNlIHNlZCB3aXRoIG11bHRpcmVwbGFjZSBvbiBhIGxpbmUgdG8gZml4IHBvc3NpYmxlIHdoaXRlc3BhY2UKICAgaXNzdWUgb24gc29sYXJpcwoKMjAxMC0wMi0xMCAyMzoyMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgd29yayBmb3IgVExTIHNlcGFyYXRpb24gaW50byBzZXBhcmF0ZSBmaWxlcyB3aXRoIGEgYmFzZQogICBmaWxlCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6CgogICBtb3ZlIGJhc2UgdHJhbnNwb3J0IGNyZWF0aW9uIGZ1bmN0aW9uIG91dCBvZiBsaW51eCBpZmRlZnMKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBhbm90aGVyIGVycm9yIGxvZ2dpbmcgZnVuY3Rpb24KCjIwMTAtMDItMTAgMjM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkZWQgVExTIG92ZXIgVENQCgoyMDEwLTAyLTEwIDE2OjM5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogTGludXg6IEltcHJvdmVkIEV0aGVyTGlrZS1NSUIgc3VwcG9ydAogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycwoKMjAxMC0wMi0xMCAxMDowNCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogU3VwcG9ydCBudWxsLWJ5dGVzIGluIG9jdGV0IHN0cmluZ3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgVG9tbXkgQmVhZGxlCgoyMDEwLTAyLTEwIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIFRMUyBpbmZyYXN0cnVjdHVyZSBpbnRvIGEgYmFzZSBkb21haW4gZmlsZQoKMjAxMC0wMi0xMCAwMDowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldDYgZnVuY3Rpb25zIHRvIHRoZSBpcHY2IGJhc2UKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdoaXRlIHNwYWNlIGZvcm1hdHRpbmcKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHVkcF9zZW5kL3JlY3YgdG8gdWRwYmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZSBuZXRzbm1wX3NvY2tfYnVmZmVyX3NldCBpbnRvIHNvY2tldGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBtb3ZlIGlwdjQgc3BlY2lmaWMgVURQIHRyYW5zcG9ydCBjcmVhdGlvbiB0byB1ZHBpcHY0IGJhc2UKCjIwMTAtMDItMTAgMDA6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbWFkZSBjb21tb24gZnVuY3Rpb25zIGJlIHJlZmVyZW5jZWQgZGlyZWN0bHkgYnkgdGhlIHRyYW5zcG9ydHMKICAgYW5kIHJlbW92ZWQgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eTsgdGhleSB3ZXJlIHN0YXRpYyBzbyB0aGVyZSBpcwogICBubyBiYWNrd2FyZHMgY29tcGF0IGlzc3VlcwoKMjAxMC0wMi0xMCAwMDowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldCBiYXNlZCBjbG9zZSB0byBhIHNvY2tldCBiYXNlZCBkb21haW4gY29tbW9uIHRvIG1hbnkKICAgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBtb3ZlIFRDUCBjb21tb24gZnVuY3Rpb25zIHRvIGEgVENQQmFzZSBkb21haW4gaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMDkgMjM6NTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB0bVN0YXRlUmVmZXJlbmNlIHNob3VsZCBiZSB1c2luZyB0aGUgaW5kZXhlZCBhZGRyX3BhaXIKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1ha2UgbmV0c25tcF9kdGxzdWRwX2Nsb3NlIG1ha2UgdXNlIG9mIG5ldHNubXBfYmFzZXVkcF9jbG9zZQoKMjAxMC0wMi0wOSAyMzo1NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBiYXNlIFVEUCBzb2NrZXQgY3JlYXRpb24gaW50byBhIGNvbW1vbiBiYXNlIGZ1bmN0aW9uIGFuZAogICBtYWRlIHVzZSBvZiBpdAoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaDoKCiAgIHByb3BlciBfSCBpZmRlZiBjaGVja3MKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIGFkZGVkIGEgcmF3IFVEUCBiYXNlIGRvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY3JlYXRlZCBhIFVEUCBJUHY0IGJhc2U7IG1vdmVkIGFuZCByZXVzZWQgbW9yZSBpbmZyYXN0cnVjdHVyZQoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgaXB2NCBhZGRyZXNzIGZvcm1hdHRpbmcgaW50byBzbm1wSVB2NEJhc2VEb21haW4KCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBOZXcgSVB2NCBhbmQgSVAgYmFzZSB0cmFuc3BvcnQgZmlsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGRvbid0IGRvdWJsZSBpbmNsdWRlIHRyYW5zcG9ydCBtb2R1bGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBhbmQgcmVwb3J0IGNvbmZpZ19lcnJvcnMgaW4gdHJhbnNwb3J0IGhlYWRlcnMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgYWxsb3cgYSBORVRTTk1QX1FVSUNLX0NIRUNLIGVudiB2YXJpYWJsZSB0byBieXBhc3MgaGVhZGVyIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYmV0dGVyIGNvbW1lbnRzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGluIHRyYW5zcG9ydCBoZWFkZXJzIGZvcgogICBmb3JjZS1pbmNsdWRpbmcgb2Ygb3RoZXIgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjQxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVmaW5lIGEgc3RhbmRhcmRpemVkIGluZGV4ZWQgYWRkcl9wYWlyIGluc3RlYWQgb2YgdXNpbmcgb25lCiAgIGxhYmVsZWQgb25seSBmb3IgVURQIGV2ZXJ5d2hlcmUKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHRyYW5zcG9ydCBwcmVmaXggbGlzdCBmb3IgaW5jb21pbmcgbWVzc2FnZXMKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcmVtb3ZlIHRoZSBzZWN1cml0eSBsZXZlbCBmcm9tIHRoZSBUU00gY2FjaGU7IHByZXZpb3VzIGV4aXN0ZW5jZQogICBmcm9tIGZyb20gYSBkcmFmdCBjb3B5IG9mIHRoZSBUU00gUkZDIGFuZCBpcyBub3cgc3RvcmVkIGVudGlyZWx5CiAgIGluIHRoZSB0bSByZWZlcmVuY2UKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IGluY29taW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgb3V0Z29pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIGNyZWF0ZSBkZWZpbmVkIHNpemVkIGFycmF5IGFuZCBsZW5ndGggdmFyaWFibGUKCjIwMTAtMDItMDUgMDk6NTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgZmlsZWRlc2NyaXB0aW9yIGxlYWsgaW4gRXRoZXJsaWtlLU1JQiBhbmQKICAgUk1PTi1NSUIKCjIwMTAtMDItMDQgMTU6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IHJlYWwgaWZTcGVlZCBvZiBuZXR3b3JrIGludGVyZmFjZSBldmVuIGl0CiAgIGlzIGRvd24uCiAgIFNvbWUgaW50ZXJmYWNlcyBjYW4gcmVwb3J0IHRoZWlyIHJlYWwgc3BlZWQsIGV2ZW4gdGhleSBhcmUgZG93bi4KICAgQW5kIGlmIHRoZXkgY2FuJ3QsIHRoZSBmYWxsYmFjayB0byAxME1icHMgaXMgc3RpbGwgdGhlcmUuCgoyMDEwLTAyLTAxIDE0OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgZmlsZQogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMuCgoyMDEwLTAyLTAxIDE0OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgcHJvY2VkdXJlIGZvciBidWlsZGluZwogICB3aXRoIFNOTVB2MyBzdXBwb3J0IGVuYWJsZWQgKE9wZW5TU0wpLgoKMjAxMC0wMi0wMSAxNDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFsbCBjYWxscyB0byBmcmVlKCkgYXJlIGludGVyY2VwdGVkIHdoZW4gYnVpbGRpbmcKICAgd2l0aCBkbWFsbG9jCiAgIHN1cHBvcnQgZW5hYmxlZC4gSW5jbHVkZWQgPGRtYWxsb2MuaD4gaW4gdGhvc2Ugc291cmNlIGZpbGVzIHdoZXJlCiAgIGl0IHdhcyBub3QKICAgeWV0IGluY2x1ZGVkLCBhbmQgcHJvdmlkZWQgYSB3cmFwcGVyIGZ1bmN0aW9uIGZvciBmcmVlKCkgd2hlcmUKICAgdGhlIGFkZHJlc3Mgb2YKICAgdGhpcyBmdW5jdGlvbiB3YXMgdGFrZW4gKERtYWxsb2MgY2FuIG9ubHkgaW50ZXJjZXB0IGZyZWUoKSB3aGVuCiAgIGl0IGlzIGNhbGxlZAogICBkaXJlY3RseSBidXQgbm90IHdoZW4gaXQgaXMgY2FsbGVkIHRocm91Z2ggYSBmdW5jdGlvbiBwb2ludGVyKS4KCjIwMTAtMDItMDEgMTA6NDkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBCdWlsZGluZyBOZXQtU05NUCB3aXRoIGRtYWxsb2Mgc3VwcG9ydCBlbmFibGVkIGlzCiAgIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wMi0wMSAwMTowNSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItUCB0Y3AiJyB3b3JrcyBmaW5lIG5vdwoKMjAxMC0wMS0zMSAwODowMiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzI6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgYW4gc2ggc3ludGF4IGVycm9yIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0CiAgIHRoYXQgd2FzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdpdGhvdXQgbGliY3J5cHRvIGFuZCB3aXRob3V0CiAgIGxpYmVheTMyLgogICBUaGUgZm9sbG93aW5nIGVycm9yIHdhcyByZXBvcnRlZDoKICAgY29uZmlndXJlWzMzMTM2XTogeDogdW5rbm93biB0ZXN0IG9wZXJhdG9yCgoyMDEwLTAxLTI5IDIwOjA3ICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRWxhYm9yYXRlIG9uIHJldi4gMTgwODkgYW5kIGFkanVzdCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB0aGUKICAgKiAgICAqcmVhbGx5IHdvcmtpbmcgb25lKi4gIDIwMTAtMDEtMjkgMTk6MTEgIGpzYWZyYW5lawoKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRml4IHRlc3QgMzUgd2hlbiBjb25maWd1cmUgb3B0aW9uICctLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4nIHdhcwogICB1c2VkIGFuZCB0aGUgZGlyZWN0b3J5IGZvciB0ZW1wLiBmaWxlcyBkb2VzIG5vdCBleGlzdCB5ZXQuCgoyMDEwLTAxLTI5IDE1OjA3ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvY2xvc2VkaXIuYywgICAKICAgICAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9vcGVuZGlyLmMsIHNubXBsaWIvcmVhZGRpci5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgTW92ZWQgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBvcGVuZGlyKCksIHJlYWRkaXIoKSwgY2xvc2VkaXIoKSBhbmQKICAgZ2V0dGltZW9mZGF5KCkgcmVwbGFjZW1lbnRzIGZvciBNU1ZDIGZyb20gc25tcGxpYi9zeXN0ZW0uYyB0bwogICBzZXBhcmF0ZSBzb3VyY2UgZmlsZXMgaW4gc25tcGxpYi4KCjIwMTAtMDEtMjkgMDg6NTcgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDb25maWd1cmUgc2NyaXB0IGNvbnNpc3RlbmN5IGltcHJvdmVtZW50OiByZW5hbWVkIHRoZSB2YXJpYWJsZQogICAic2F2ZWRfTElCUyIgaW50byAibmV0c25tcF9zYXZlX0xJQlMiLgoKMjAxMC0wMS0yOSAwNjozOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIHRoZSBzaXplIG9mIHN1bl9wYXRoIGFuZCB1c2UgdGhhdCB0bwogICBnZW5lcmF0ZSB0aGUgbWF4aW1hbCBzaXplIHN0cmluZ3MgZm9yIHN0cmVzc2luZyBjb20yc2VjdW5peC4KCjIwMTAtMDEtMjcgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIE5FV1M6IE1pbkdXOiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3Qgc3VpdGUgaXMgYWdhaW4gcG9zc2libGUKICAgKCdtYWtlIHRlc3QnKS4KCjIwMTAtMDEtMjcgMTQ6NDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBDeWd3aW46IGJ1aWxkaW5nIHdpdGggYW5vdGhlciBPcGVuU1NMIHBhY2thZ2UgdGhhbiB0aGUKICAgQ3lnd2luLXByb3ZpZGVkIHBhY2thZ2VzIG9wZW5zc2wgYW5kIG9wZW5zc2wtZGV2ZWwgaXMgYWdhaW4KICAgcG9zc2libGUuCiAgIE5FV1M6IE1pbkdXOiBidWlsZGluZyB3aXRoIE9wZW5TU0wgd29ya3MgYWdhaW4uCgoyMDEwLTAxLTI2IDIxOjI3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgY29udGV4dCBhcmd1bWVudCBvZiBzZW5kX3YzdHJhcCwKICAgc2VuZF90cmFwX3ZhcnNfd2l0aF9jb250ZXh0IGFuZCBuZXRzbm1wX3NlbmRfdHJhcHMgcmVmZXIgdG8gYQogICBjb25zdCBjaGFyKi4KCjIwMTAtMDEtMjYgMjE6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIENvcnJlY3QgbWlzc3BlbGxpbmcgLSAjZWxzaWYgdG8gI2VsaWYKCjIwMTAtMDEtMjYgMjE6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwYXJlbnRseSBub3QgYWxsIHN5c3RlbXMgZGVmaW5lIElORVRfQUREUlNUUkxFTiBzbyBhZGQgaXQgaWYgaXQKICAgaXMgbWlzc2luZy4KCjIwMTAtMDEtMjYgMTU6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBZGRlZCBuZXRzdGF0IHBhdGggZm9yIE1pbkdXLgoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggc3RhdCBuYW1lcwoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1cGRhdGUgY29tbWVudHMgdG8gcmVmbGVjdCBSRkM1NTkxIGFzIHRoZSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMS0yNiAxMTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmg6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogYnl0ZSBvcmRlciBvZiB1ZHBMb2NhbFBvcnQgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDEwLTAxLTI2IDEwOjQ2ICBidmFzc2NoZQoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogZml4ZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSAoIm1ha2UKICAgdGVzdCIpLiBUaGlzIGhhcyBiZWVuIGZpeGVkIGJ5IHVzaW5nIHRoZSBwcm9wZXIgZW52aXJvbm1lbnQKICAgc2VwYXJhdG9yIGNoYXJhY3RlciBhbmQgYnkgYWRkaW5nIHRoZSBwYXRoIG9mIHRoZSBuZXRzdGF0CiAgIGV4ZWN1dGFibGUgZm9yIEN5Z3dpbiBpbiB0ZXN0aW5nL1RFU1RDT05GLnNoLgoKMjAxMC0wMS0yNiAwOToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiByZWFkaW5nIFJQTQogICBkYXRhYmFzZS4KICAgT2xkIHJwbSB2ZXJzaW9ucyByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEhlYWRlciB3aGVuIGFub3RoZXIgUlBNCiAgIGluc3RhbmNlIGhvbGRzCiAgIGRhdGFiYXNlIGxvY2tzLiBJLmUuIHNubXBkIHNvbWV0aW1lcyBjcmFzaGVzIHdoZW4gcmVhZGluZwogICBocl9zd0luc3QgYW5kIHJwbSBpcwogICBpbnN0YWxsaW5nL3VwZGF0aW5nL3JlbW92aW5nIGFub3RoZXIgcGFja2FnZS4gQXMgYSBzb2x1dGlvbiwKICAgd2hvbGUgUlBNIGNhY2hlCiAgIGlzIHRocm93biBhd2F5IGFuZCByZS1yZWFkIHdoZW4gd2UgZ290IGFuIGVycm9yIGZyb20gbGlicnBtLiBUaGUKICAgd2hvbGUgcHJvY2VzcwogICBpcyByZXN0YXJ0ZWQgb25seSB0aHJlZSB0aW1lcywgdG8gcHJldmVudCBlbmRsZXNzIGxvb3AuCgoyMDEwLTAxLTI1IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogRG8gbm90IGNoZWNrIGlmIHZhbHVlcyBvZiB0eXBlIHNpemVfdAogICBhcmUgbGVzcyB0aGFuIDAuCgoyMDEwLTAxLTI1IDIyOjExICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBDaGVjayB0aGUgcmFuZ2Ugb2Ygb2lkIHZhbHVlcyB0b3dhcmRzIHRoZSBtYXhpbXVtCiAgIG9pZCB2YWx1ZSwgbm90VUxPTkdfTUFYCgoyMDEwLTAxLTI1IDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIG9ubHkgYmFpbCBvbiBtaXNzaW5nIGxpYmlwaGxwYXBpIGZvciB4d2luc29jazIKCjIwMTAtMDEtMjUgMTk6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVuYW1lIE1BWF9TVEFUUyB0byBORVRTTk1QX1NUQVRfTUFYX1NUQVRTCgoyMDEwLTAxLTI1IDE5OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljczsgY2hlY2sgZm9yIGluZGV4CiAgIG92ZXJmbG93CgoyMDEwLTAxLTI1IDE5OjQ0ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljcwoKMjAxMC0wMS0yNSAxNjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1c2UgKmN1cnJlbnQqIGNvcHkgb2YgdGhlIE1JQiB3aGVuIGdlbmVyYXRpbmcgc3RhdHMKCjIwMTAtMDEtMjUgMTY6MDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIG1vdmUgc25tcF9nZXRfc3RhdGlzdGljIGhlbHBlciB0byBoZWxwZXJzIGRpcjsgdXBkYXRlIGFsbF9oZWxwZXJzCiAgIGhlYWRlcgoKMjAxMC0wMS0yNSAxNDozNCAgYnZhc3NjaGUKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBSZXBsYWNlZCBleHBsaWNpdCBkZWNsYXJhdGlvbnMgb2Ygb3B0aW5kLCBvcHRvcHQgYW5kIG9wdGFyZyBieQogICAjaW5jbHVkZSA8dW5pc3RkLmg+IGJlY2F1c2UgZXhwbGljaXRseSBkZWNsYXJpbmcgdGhlc2UgdmFyaWFibGVzCiAgIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQ3lnd2luLgoKMjAxMC0wMS0yNSAxNDoyNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBDeWd3aW46IElQdjYgaXMgb25seSBzdXBwb3J0ZWQgdW5kZXIgQ3lnd2luIDEuNyBvciBsYXRlci4KICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQgaW4gTmV0LVNOTVAgdW5kZXIgQ3lnd2luCiAgIGludm9sdmVkIGEgc3RyYW5nZSBtaXh0dXJlIG9mIEN5Z3dpbiBhbmQgV2luc29jazIgc29ja2V0IGNhbGxzLAogICB3aGljaCB3YXMgdG9vIGhhcmQgdG8gbWFpbnRhaW4uCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRzIGFnYWluIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQKICAgKC0tZW5hYmxlLWlwdjYpLiBBdCBsZWFzdCBOZXQtU05NUCA1LjUgZG9lc24ndCBidWlsZCB1bmRlciBDeWd3aW4KICAgd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZC4gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgcmVwb3J0ZWQKICAgImNoZWNraW5nIGlwdjYgc3RhY2sgdHlwZSAuLi4gcmVzdWx0OiAidW5rbm93biwgbm8iIC4uLiBlcnJvcjoKICAgSVB2NiB0cmFuc3BvcnRzIG5vdCBhdmFpbGFibGUgaWYgSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkIi4KCjIwMTAtMDEtMjUgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIDxzdHJpbmcuaD4uCgoyMDEwLTAxLTI1IDE0OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgdGhlIElQdjYgc3RhY2sgaW5jbHVkZWQgaW4gQ3lnd2luCiAgIHZlcnNpb24gMS43LgogICBJUHY2IHN1cHBvcnQgaXMgb25lIG9mIHRoZSBuZXcgZmVhdHVyZXMgb2YgQ3lnd2luIDEuNy4gRm9yIG1vcmUKICAgaW5mb3JtYXRpb24sCiAgIHNlZSBhbHNvIGh0dHA6Ly9jeWd3aW4uY29tL2N5Z3dpbi11Zy1uZXQvb3YtbmV3MS43Lmh0bWwuCgoyMDEwLTAxLTI1IDEyOjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBDeWd3aW46IHRoZSBtZXNzYWdlICJjb25maWd1cmU6IFdBUk5JTkc6IHdpbnNvY2suaDoKICAgcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiBkb2VzIG5vIGxvbmdlciBhcHBlYXIgd2hlbgogICBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0LgogICBGb2xsb3ctdXAgZm9yIHIxODA1MDogcmUtZW5hYmxlZCBsaWJpcGhscGFwaSBhbmQgaXBobHBhcGkuaCB0ZXN0cwogICBmb3Igbm9uLU1pbkdXIHBsYXRmb3JtcyBzaW5jZSB0aGUgQ3lnd2luIGJ1aWxkIG5lZWRzIHRoZXNlLgoKMjAxMC0wMS0yNSAwNzoyOCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgc25tcGxpYi9pbmV0X250b3AuYywgIAogICAgICAgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgYXV0b2NvbmYgdG8gZGVjaWRlIGlmIGluZXRfbnRvcC5jIGFuZAogICBpbmV0X3B0b24uYyBhcmUgdG8gYmUgY29tcGlsZWQuCgoyMDEwLTAxLTI1IDA3OjA5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IE1pbkdXOiBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY29uZmlndXJlIHRlc3QKICAgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjUgMDU6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgVExTVE0gY291bnRlciBzdGF0cwoKMjAxMC0wMS0yNSAwNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgaW4gVFNNIG5lZWRlZCBjb3VudGVyIGRlZmluaXRpb25zCgoyMDEwLTAxLTI1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVFNNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRTTS1NSUIKCjIwMTAtMDEtMjQgMTQ6NDMgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIE5FV1M6IHNubXBkOiBNYWRlIHN1YnRyZWVfY29udGV4dF9jYWNoZTo6Y29udGV4dF9uYW1lIGEgY29uc3QKICAgY2hhciouCgoyMDEwLTAxLTI0IDE0OjI3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvcgogICBORVRTTk1QX1JFTU9WRV9DT05TVAoKMjAxMC0wMS0yNCAxMzoyNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBQcmVmZXIgdG8gdXNlIGEgdmFyaWFibGUgb2YgdGhlIHJpZ2h0IHR5cGUgb3ZlcgogICBhbiB1Z2x5IGNhc3QuIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIGFzIHdlbGwuCgoyMDEwLTAxLTI0IDEyOjU5ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbnRyb2R1Y2VkIHRoZSB2YXJpYWJsZSAnd2l0aF9zb2NrbGliJyBpbiB0aGUKICAgY29uZmlndXJlIHNjcmlwdC4gVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiBmb3IgTWluR1cKICAgYW5kIHRvICJkZWZhdWx0IiBmb3IgYWxsIG90aGVyIHN5c3RlbXMuIFdpbnNvY2syIHRlc3RzIGFyZSBvbmx5CiAgIHJ1biBpZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIChNaW5HVykuCgoyMDEwLTAxLTI0IDEyOjUzICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgZGVidWcgbG9ncy4KCjIwMTAtMDEtMjQgMTI6NDUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXhlczogZml4ZWQgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8KICAgdW5zaWduZWQgY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWtlIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKQogICBkZWNsYXJhdGlvbnMKICAgYXZhaWxhYmxlIHRvIHRoZSBjb21waWxlci4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFkZSBzdXJlIHRoYXQgPHdzMnRjcGlwLmg+IHdpbGwKICAgYmUgaW5jbHVkZWQKICAgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluCiAgIGFib3V0IHN0cnVjdAogICBzb2NrYWRkcl9pbjYgYmVpbmcgdXNlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTE6NDIgIGJ2YXNzY2hlCgogICAqIG1hbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDEtMjQgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa2dldC5jLCAgIAogICAgICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCAgIAogICAgICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgICAKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBDbGVhbnVwIChXaW5kb3dzKTogcmVtb3ZlZCBzdXBlcmZsdW91cyAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAgIGRpcmVjdGl2ZXMuIFRoaXMgaGVhZGVyIGZpbGUKICAgaGFzIG9ubHkgdG8gYmUgaW5jbHVkZWQgZnJvbSBzbm1wbGliL3N5c3RlbS5jIGJlY2F1c2Ugb2YgdGhlCiAgIF9mdGltZSgpIGNhbGwgaW4gdGhhdCBmaWxlLgoKMjAxMC0wMS0yNCAxMDo0MyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBUaGUgbWFjcm8gJ0MoKScgbm93IGNhc3RzIGl0cyByZXN1bHQgZnJvbSB1bnNpZ25lZCBsb25nIHRvCiAgIHVuc2lnbmVkIGludC4KICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBtaXNtYXRjaGVzCiAgIGFuZCBmaXhlcyBhIGJ1ZyAoaW5jb3JyZWN0IHNubXBuZXRzdGF0IG91dHB1dCkgb24gYmlnIGVuZGlhbgogICBzeXN0ZW1zLgoKMjAxMC0wMS0yNCAxMDozMyAgYnZhc3NjaGUKCiAgICogbWFuL2NvbmZpZ19hcGkuMzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTQ2OiByZW1vdmVkIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbQogICByZXBvc2l0b3J5LgoKMjAxMC0wMS0yNCAxMDozMSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNb3ZlZCB0d28gZGVjbGFyYXRpb25zIG9mIHN0YXRpYyBmdW5jdGlvbnMgZnJvbSAuaCB0byAuYy4KCjIwMTAtMDEtMjQgMTA6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCjIwMTAtMDEtMjQgMTA6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGJ1aWxkcyBhZ2FpbiB3aGVuIEhBVkVfR0VUQUREUklORk8gaXMgbm90CiAgIGRlZmluZWQuCgoyMDEwLTAxLTI0IDEwOjAzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgIAogICAgICBzbm1wbGliL2luZXRfbnRvcC5oLCBzbm1wbGliL2luZXRfcHRvbi5jLCBzbm1wbGliL2luZXRfcHRvbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0cyBmb3IgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpLgogICAtIEFkZGVkIGhlYWRlciBmaWxlcyBzbm1wbGliL2luZXRfbnRvcC5oIGFuZCBzbm1wbGliL2luZXRfcHRvbi5oLgogICAtIFJlcGxhY2VkICJleHRlcm4gaW5ldF9udG9wKC4uLik7IiBhbmQgImV4dGVybiBpbmV0X3B0b24oLi4uKTsiCiAgIGJ5ICNpbmNsdWRlICJpbmV0X250b3AvcHRvbi5oIi4KICAgLSBDb252ZXJ0ZWQgc25tcGxpYi9pbmV0X250b3AuYyBhbmQgc25tcGxpYi9pbmV0X3B0b24uYyBmcm9tIEsmUgogICBDIHRvIEFOU0kgQy4KICAgLSBSZXBsYWNlZCB0aGUgaW5ldF9hdG9uKCkgY2FsbHMgdGhhdCB3ZXJlIGludHJvZHVjZWQgaW4gcjE4MDMzCiAgIGluIHNubXBsaWIvc25tcFVEUERvbWFpbi5jIGJ5IGluZXRfcHRvbigpIGNhbGxzIHN1Y2ggdGhhdCBpdCBpcwogICBhZ2FpbiBwb3NzaWJsZSB0byBidWlsZCBOZXQtU05NUCBvbiBXaW5kb3dzLgoKMjAxMC0wMS0yNCAwNjowOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyB0aGF0IGRvbid0CiAgIGV4aXN0IG9yIGFyZSBkZWNsYXJlZCBlbHNld2hlcmUuCgoyMDEwLTAxLTI0IDA1OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmVkIHRoZSB1bnVzZWQgdmFyaWFibGVzIHdhcm1fc3RhcnRfb2lkLAogICBsaW5rX2Rvd25fb2lkLCBsaW5rX3VwX29pZCwgYXV0aF9mYWlsX29pZCBhbmQgZWdwX3h4eF9vaWQuCgoyMDEwLTAxLTIzIDIyOjA2ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmV0dGVyIHNldCBvZiBTS0lQSUYvU0tJUElGTk9UUwoKMjAxMC0wMS0yMyAyMDozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmUgY29ycmVjdCBpbiB3aGF0IGl0IGlzIHRoYXQgaXMgdGVzdGVkIGluIHRoZSBoZWFkZXIuCgoyMDEwLTAxLTIzIDIwOjI3ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgY29tMnNlYyBkaXJlY3RpdmVzIHRvIGZhaWwgaWYgdGhlcmUKICAgYXJlIHRvbyBmZXcgYXJndW1lbnRzLiBBZGRpdGlvbmFsbHkgY2hhbmdlZCB0aGUgc3RvcmFnZSBzdHJ1Y3R1cmUKICAgdG8gbm90IGFsbG9jYXRlIG1vcmUgc3BhY2UgdGhhbiBuZWNlc3NhcnkuCgoyMDEwLTAxLTIzIDIwOjIyICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgbmV3IHRlc3RzIGNoZWNraW5nIHRoZSBlcnJvciBoYW5kbGluZyBvZiB0aGUgY29tMnNlYyogZGlyZWN0aXZlcwoKMjAxMC0wMS0yMyAxOToxNyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDI1OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjMgMTc6NTEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IE9TIGhlYWRlciBkZXRlY3Rpb24gY2hlY2sgaXMgbm93IHJ1biBiZWZvcmUKICAgSVB2NiBzdGFjayBkZXRlY3Rpb24uCiAgIENIQU5HRVM6IFNvbGFyaXM6IHNvY2thZGRyX2luNi5zaW42X2FkZHIgY29uZmlndXJlIHRlc3QgZG9lcyBub3cKICAgd29yay4KCjIwMTAtMDEtMjMgMTc6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBGaXhlZCBhIFNvbGFyaXMtc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDEtMjMgMTc6MDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIE1pbkdXOiBhZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgPHN5cy90aW1lYi5oPiBhbmQgYWxzbyBmb3Igc3RydWN0CiAgIHRpbWV6b25lLgoKMjAxMC0wMS0yMyAxNjozMiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTWluR1c6IG1hZGUgc3VyZSB0aGF0IHRoZSBJUHY2LXJlbGF0ZWQgZGF0YXR5cGVzIGFyZSBhdmFpbGFibGUKICAgYmVmb3JlIGJlaW5nIHVzZWQuCgoyMDEwLTAxLTIzIDE2OjMwICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgI3VuZGVmIEhBVkVfV0lORE9XU19ILgoKMjAxMC0wMS0yMyAxNjoyOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nCiAgIHByb3RvdHlwZSBmb3IgaXNkaWdpdCgpLgoKMjAxMC0wMS0yMyAxNjoyNCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIE1pbkdXOiBpcGhscGFwaS5oIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTIzIDE1OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBSZW5hbWVkIHRoZSBXaW5zb2NrMiBJUHY2IHN0YWNrIGZyb20gJ21pbmd3JyBpbnRvICd3aW5zb2NrMicuCgoyMDEwLTAxLTIzIDE1OjA3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBiZXR3ZWVuIHRoZSBzdXBwb3J0ZWQgV2luMzIgY29tcGlsYXRpb24KICAgZW52aXJvbm1lbnRzIGFzIGZvbGxvd3M6CiAgIC0gTWFkZSBzdXJlIHRoYXQgdGhlIDx3aW5zb2NrMi5oPiBhbmQgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlcwogICBhcmUgb25seSBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBjb25maWd1cmUgY2hlY2sgZm9yIDxpcGhscGFwaS5oPi4KICAgLSBSZXBsYWNlZCBzZXZlcmFsIFdJTjMyIC8gY3lnd2luIHRlc3RzIGJ5IGEgSEFWRV9JUEhMUEFQSV9ICiAgIHRlc3QuCiAgIC0gRG9jdW1lbnRlZCB0aGF0IHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGlzIG9ubHkgdXNlZAogICBmb3IgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTAxLTIyIDE2OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxMDogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KICAgNi4KCjIwMTAtMDEtMjIgMTY6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oOgoKICAgRm9sbG93IHVwIGZvciByMTgwMTY6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMiAxNDoxMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDE2OiBtYWRlIE1pbkdXIGxpYmlwaGxwYXBpIGNoZWNrIG1vcmUgcm9idXN0LgoKMjAxMC0wMS0yMiAxMzozMiAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgYWNsb2NhbC5tNCwgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAKICAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBNaW5HVzogd2luRXh0RExMIGNvbXBpbGVzIG5vdyB1bmRlciBNaW5HVy4KICAgQ0hBTkdFUzogTWluR1c6IGJ1aWxkaW5nIE5ldC1TTk1QIHdvcmtzIGFnYWluLgogICAKICAgRGV0YWlsZWQgb3ZlcnZpZXc6CiAgICogQ2hhbmdlcyBpbiB0aGUgY29uZmlndXJlIHNjcmlwdDoKCiAgIC0gc29ja2V0KCkgbGlicmFyeSBjaGVjayBwYXNzZXMgYWdhaW4gb24gTWluR1cuCiAgIC0gQWRkZWQgbGlicmFyeSBjaGVja3MgZm9yIGxpYndzMl8zMiwgbGlicmVnZXggYW5kIGxpYnNubXBhcGkuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSB3aW5zb2NrMi5oIGFuZCB3czJ0Y3BpcC5oIGhlYWRlciBmaWxlcy4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIGNob3duKCkgYW5kIGxvY2FsdGltZV9yKCkgZnVuY3Rpb25zLgogICAtIHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNoZWNrIGRvZXMgbm93IHdvcmsgb24gTWluR1cuCiAgIC0gQWRkZWQgSVB2NiBzdGFjayB0eXBlIGNhbGxlZCAibWluZ3ciLgogICAqIFNvdXJjZSBjb2RlIGNoYW5nZXM6CgogICAtIEluY2x1ZGUgPHdpbnNvY2syLmg+IGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IGluc3RlYWQgb2YKICAgPHdpbnNvY2suaD4KICAgdW5kZXIgTWluR1cgc3VjaCB0aGF0IElQdjYgc3VwcG9ydCBpcyBhdmFpbGFibGUuCiAgIC0gTW92ZWQgI2luY2x1ZGUgPHdpbnNvY2suaD4gZnJvbSAuYyBmaWxlcyB0byA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgYSBjb3B5IG9mIHRoZSBNaW5HVyBoZWFkZXIgZmlsZSA8c25tcC5oPiAod2hpY2ggaXMgbm90CiAgIGNvcHlyaWdodGVkKQogICBhcyB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLgogICAtIGFnZW50OiBvbmx5IGNhbGwgY2hvd24oKSB3aGVuIGF2YWlsYWJsZSAoSEFWRV9DSE9XTikuCiAgICogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzOiB1cGRhdGVkIFJFQURNRS53aW4zMi4KCgoyMDEwLTAxLTIyIDA4OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY2FzdCBmcm9tIGNoYXIqIHRvIGNoYXIqCgoyMDEwLTAxLTIyIDAwOjM5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IGZpbGUgdXBkYXRlIGZvciBTUEFSVEEsIEluYy4KCjIwMTAtMDEtMjIgMDA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgYWRkIHByb3BlciBwcmVmaXhlcyBpbiBUU00gZm9yIFNTSCwgRFRMUywgZXRjLCBiYXNlZCBvbiB0aGUKICAgZG9tYWluCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgNS41IGJyYW5jaAoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtaW5vciBlY2hvIG91dHB1dCBjaGFuZ2UKCjIwMTAtMDEtMjEgMjA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNvbW1lbnQgbmV4dCB0byBjb2RlIGl0IGlzIHRhbGtpbmcgYWJvdXQ7IE5vIGNvZGUgY2hhbmdlCgoyMDEwLTAxLTIxIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5MjYzNzQ6IGZyb20gRWQgU3dpZXJrOiBmaXhlZCByZWFkaW5nIG9mCiAgIGlwQWRkcmVzc1RhYmxlIGZyb20gL3Byb2MvbmV0L2lmX2luZXQ2IG9uIExpbnV4CiAgIAogICBUaGUga2VybmVsIG1pZ2h0IHByb3ZpZGUgbG9uZ2VyIGZpZWxkcywgZXNwZWNpYWxseSBvbiA2NC1iaXQKICAgc3lzdGVtcy4KCjIwMTAtMDEtMjAgMTI6NDIgIGJ2YXNzY2hlCgogICAqIFBPUlRJTkcsIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGaXhlZCB0eXBvOiByZXBsYWNlZCAnbmVjaXNzYXJ5JyBieSAnbmVjZXNzYXJ5Jy4KCjIwMTAtMDEtMjAgMDg6NTMgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBGaXggbWlub3IgdHlwbyBpbiBtYW4gcGFnZSwgaXQncyBzbm1wbmV0c3RhdCAtQ3AsIG5vdCAtQ1AuCgoyMDEwLTAxLTE0IDEyOjM0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogZml4ZWQgbWVtb3J5IGxlYWsgaW4gUk1PTi1NSUIgYW5kIEVUSEVSTElLRS1NSUIgd2hlbgogICB0aGVyZSBhcmUgbXVsdGlwbGUgYWxpYXNlcyBvZiBhbiBuZXR3b3JrIGludGVyZmFjZQogICBSYXRpb25hbGU6IHRoZSBhbGlhc2VkIGludGVyZmFjZXMgaGF2ZSB0aGUgc2FtZSBpZkluZGV4IC0+CiAgIENPTlRBSU5FUl9JTlNFUlQgZmFpbHMsIGJ1dCB0aGUgcmVqZWN0ZWQgZW50cnkgd2FzIG5vdCBmcmVlZC4KCjIwMTAtMDEtMTMgMTE6MjEgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIGluIGlwQWRkcmVzc1ByZWZpeFRhYmxlCiAgIC0gbmV0X3NubXBfc2VhcmNoX3VwZGF0ZV9wcmVmaXhfaW5mbyByZXR1cm5zIGRpZmZlcmVudCBjb2RlLCB3aGVuCiAgIHRoZSBlbnRyeSB3YXMgbm90IGluc2VydGVkIHRvIGxpc3QgYW5kIGNhbiBiZSBmcmVlZC4KCjIwMTAtMDEtMTIgMDA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkOiBydW4gcnBtIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGhyX3N3aW5zdCByZXdyaXRlCiAgIChycG0KICAgdmVyc2lvbiBvbmx5KQoKMjAxMC0wMS0xMSAyMzo1OCAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIFBFUkxMRE9QVFNfRk9SX0FQUFMgdG8gYWdlbnR4dHJhcCBsaW5rIGxpbmUgKGZpeGVzCiAgICJsaWJwZXJsLnNvIG5vdAogICBmb3VuZCIgZXJyb3JzKQoKMjAxMC0wMS0xMSAwMDoxMSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIGdldCByaWQgb2YgdXNpbmcgZGVwcmVjYXRlZCBzeW50YXggZm9yIHRyYXAvaW5mb3JtIHNpbmtzCgoyMDEwLTAxLTA4IDA4OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogb2Jzb2xldGVkIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRy4KICAgRnJvbSBub3cgb24gdXNpbmcgU0lHQUxSTSB0byB0cmlnZ2VyIE5ldC1TTk1QIGFsYXJtIGhhbmRsZXJzIGlzCiAgIG5vIGxvbmdlciBzdXBwb3J0ZWQuCiAgIAogICBNb3RpdmF0aW9uOiBhcyBrbm93biBsaWJuZXRzbm1wIHN1cHBvcnRzIHRpbWUtYmFzZWQgYWxhcm1zIHZpYQogICB0aGUgZnVuY3Rpb25zCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSwgcnVuX2FsYXJtcygpIGFuZCBvdGhlciBmdW5jdGlvbnMuIFR3bwogICBkaWZmZXJlbnQgd2F5cyB0bwogICB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkgYXJlIHN1cHBvcnRlZCBpbnNpZGUKICAgbGlibmV0c25tcDoKICAgMS4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgdGltZW91dCBhcmd1bWVudCBvZiBzZWxlY3QoKSBpcyBzbWFsbAogICBlbm91Z2ggc3VjaAogICB0aGF0IHNlbGVjdCgpIHJldHVybnMgYmVmb3JlIHRoZSBuZXh0IGFsYXJtIG11c3QgYmUgaGFuZGxlZCAod2hlbgogICB0aGUKICAgdmFyaWFibGUgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldCB0byBvbmUsIHdoaWNoCiAgIGlzIHRoZQogICBkZWZhdWx0KS4KICAgMi4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUga2VybmVsIGZpcmVzIFNJR0FMUk0gYXQgdGhlIHRpbWUgd2hlbgogICBydW5fYWxhcm1zKCkKICAgc2hvdWxkIGJlIGNhbGxlZCAod2hlbiB0aGUgdmFyaWFibGUKICAgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldAogICB0byB6ZXJvLCB3aGljaCBoYXMgdG8gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5KS4KICAgCiAgIFRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlY29uZCBhcHByb2FjaDoKICAgMS4gQWxhcm0gZnVuY3Rpb25zIGFyZSB1c2VkIGluc2lkZSBOZXQtU05NUCB0byBlLmcuIHJlZnJlc2gKICAgY2FjaGVkIHRhYmxlCiAgIGNvbnRlbnRzLiBBcyBmYXIgYXMgSSBjYW4gc2VlIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlCiAgIHRoYXQgcHJldmVudHMgdGhlIGZvbGxvd2luZyBmcm9tIGhhcHBlbmluZzogYSB0YWJsZSByZWZyZXNoCiAgIHRyaWdnZXJlZCB2aWEKICAgU0lHQUxSTSB3aGlsZSBhIHJvdyBpcyBiZWluZyByZW1vdmVkIGZyb20gYSBjYWNoZWQgdGFibGUuIFRoaXMKICAgY2FuIHJlc3VsdAogICBpbiBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgZXZlbiBhIGNyYXNoLgogICAyLiBQT1NJWCByZXN0cmljdHMgc2lnbmFsIGhhbmRsZXJzIHRvIGNhbGxpbmcgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIGVpdGhlciByZWVudHJhbnQKICAgb3Igbm9uLWludGVycnVwdGlibGUKICAgKGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMveHNoX2NoYXAwMl8wNC5odG1sI3RhZ18wMl8wNCkuCiAgIFN0YW5kYXJkIEkvTyBmdW5jdGlvbnMgbGlrZSBwcmludGYoKSBhbmQgZnByaW50ZigpIGFyZSBuZWl0aGVyCiAgIHJlZW50cmFudCBub3IKICAgbm9uLWludGVycnVwdGlibGUuIHJ1bl9hbGFybXMoKSBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwKICAgaGFuZGxlciwgd2hpY2gKICAgbWVhbnMgdGhhdCB0aGlzIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKQogICBpdHNlbGYgYW5kCiAgIGFsbCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGl0ICh3aGljaCBpbmNsdWRlcyB0aGUgYWxhcm0gY2FsbGJhY2sKICAgZnVuY3Rpb25zKS4KICAgT3I6IGUuZy4gc25tcF9sb2coKSBhbmQgaXRzIGNhbGxlcnMgbXVzdCBub3QgYmUgY2FsbGVkIGZyb20KICAgaW5zaWRlIHJ1bl9hbGFybXMoKQogICB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzCiAgIGlzIGEgc2V2ZXJlCiAgIHJlc3RyaWN0aW9uLCBhbmQgb25lIHRoYXQgaXMgaGFyZCB0byB3b3JrIHdpdGguCiAgIDMuIE5vdCBhbGwgc29mdHdhcmUgZGV2ZWxvcGVycyBrbm93IGhvdyB0byBtYWtlIHN1cmUgdGhhdCBzaWduYWwKICAgZGVsaXZlcnkgd29ya3MKICAgY29ycmVjdGx5IGluIGEgbXVsdGl0aHJlYWRlZCBjb250ZXh0LiBQT1NJWCBkb2VzIG5vdCBndWFyYW50ZWUgdG8KICAgd2hpY2ggdGhyZWFkCiAgIGEgc2lnbmFsIGxpa2UgU0lHQUxSTSB3aWxsIGJlIGRlbGl2ZXJlZCwgdW5sZXNzIHRoYXQgc2lnbmFsIGhhcwogICBiZWVuIGJsb2NrZWQKICAgYmVmb3JlIHRocmVhZCBjcmVhdGlvbiBhbmQgaXMgdW5ibG9ja2VkIGFmdGVyIHRocmVhZCBjcmVhdGlvbgogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9wdGhyZWFkX3NpZ21hc2suaHRtbCkuCiAgIFRoaXMgaXMgcmVsZXZhbnQgZm9yIHRoZSBOZXQtU05NUCBwcm9qZWN0IG5vdCBvbmx5IGJlY2F1c2UgYQogICB3b3JrZXIgdGhyZWFkIGlzCiAgIGNyZWF0ZWQgaW5zaWRlCiAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYyBidXQgYWxzbwogICBiZWNhdXNlIGxpYm5ldHNubXAgaXMgb2Z0ZW4gdXNlZCBpbnNpZGUgbXVsdGl0aHJlYWRlZCBzb2Z0d2FyZS4KICAgQ3VycmVudGx5IG5vCiAgIGF0dGVtcHQgaXMgbWFkZSB0byBtYWtlIHN1cmUgdGhhdCBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSB0aGUKICAgTmV0LVNOTVAgZXZlbnQKICAgcHJvY2Vzc2luZyBsb29wIHRocmVhZC4gSWYgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgYW5vdGhlcgogICB0aHJlYWQsIHRoaXMgd2lsbAogICByZXN1bHQgaW4gb25lIG9yIG1vcmUgZGF0YSByYWNlcy4KICAgCiAgIEJlY2F1c2UgYWxsIHRoZSBkaWZmaWN1bHRpZXMgYXNzb2NpYXRlZCB3aXRoIHByb2Nlc3NpbmcgYWxhcm1zCiAgIGZyb20gaW5zaWRlIGEKICAgc2lnbmFsIGhhbmRsZXIgZnVuY3Rpb24sIGFuZCBiZWNhdXNlIGZpeGluZyB0aGVzZSB3b3VsZCByZXF1aXJlCiAgIG1vcmUgZWZmb3J0IHRoYW4KICAgaXQgaXMgd29ydGgsIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBoYXMgYmVlbgogICBkZXByZWNhdGVkIGFuZCBmcm9tIG5vdwogICBvbiBhcHByb2FjaCAoMSkgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGFwcHJvYWNoIHRvIHRyaWdnZXIgYWxhcm0KICAgaGFuZGxlcnMuCgoyMDEwLTAxLTA3IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUGF0Y2ggZnJvbSBTdGVwaGVuIEhlbW1pbmdlciB0byBmaXggYSBtaW5vciBtZW1sZWFrIGluIGNwdQogICBzeXNjdHJsIGZldGNoaW5nCgoyMDEwLTAxLTA3IDE2OjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgUmVtb3ZlZCByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCBhbmQgbWFkZSBzdXJlIHRoYXQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAnXDAnLXRlcm1pbmF0ZXMgdGhlIG91dHB1dCBidWZmZXIKICAgaW4gYWxsIGNhc2VzLgogICBVcGRhdGVkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMuCgoyMDEwLTAxLTA3IDE0OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFJlbW92ZWQgdGhyZWUgc3VwZXJmbHVvdXMgY2FzdHMgYmVjYXVzZSB0aGVzZSB0cmlnZ2VyZWQgYQogICBjb21waWxlciB3YXJuaW5nCiAgIHdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDLgoKMjAxMC0wMS0wNyAxMzoyOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgdGhlIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgY2hhbmdlcyBmcm9tIHIxNzk5MgogICBiZWNhdXNlIHRoZXNlCiAgIGNhdXNlZCB0aGUgZm9sbG93aW5nIFZhbGdyaW5kIGNvbXBsYWludCBkdXJpbmcgc25tcGQgc3RhcnR1cDoKICAgCiAgID09MjUyMDE9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkCiAgIHZhbHVlKHMpCiAgID09MjUyMDE9PSBhdCAweDQwNDdCMTQ6IG5ldHNubXBfc2VuZF90cmFwcyAoYWdlbnRfdHJhcC5jOjc5OCkKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODEyODogc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycwogICAoYWdlbnRfdHJhcC5jOjg1MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODE5RDogc2VuZF90cmFwX3ZhcnMgKGFnZW50X3RyYXAuYzo5NjMpCiAgID09MjUyMDE9PSBieSAweDQwNDgyNUI6IHNlbmRfZWFzeV90cmFwIChhZ2VudF90cmFwLmM6MTAxMSkKICAgPT0yNTIwMT09IGJ5IDB4ODA0QjVEMjogbWFpbiAoc25tcGQuYzozOTQpCgoyMDEwLTAxLTA3IDEyOjMwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA3IDEyOjE5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYXNzaWduaW5nIGEgY2hhciAqIHBvaW50ZXIgdG8KICAgc3lzT1JUYWJsZTo6T1JfZGVzY3IgZG9lcyBvciBkb2VzIG5vdCB0cmFuc2ZlcgogICBvd25lcnNoaXAuIFNvIHdoZXRoZXIgT1JfZGVzY3IgaXMgZGVjbGFyZWQgYXMgY2hhciAqIG9yIGFzIGNvbnN0CiAgIGNoYXIgKiwgdGhlcmUgd2lsbCBhbHdheXMgYmUgYXQKICAgbGVhc3Qgb25lIHN0YXRlbWVudCBvbiB3aGljaCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgY2hhcgogICAqICAvIGNvbnN0IGNoYXIgKiBtaXNtYXRjaC4gVGhlIG9ubHkgICAgc29sdXRpb24gaXMgdG8gY2FzdCBhd2F5CiAgICAgIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlIHRvIG1ha2Ugc3VyZSAgICB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICAgICBjb21wbGFpbiwgICAgYXMgaW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaC4gIDIwMTAtMDEtMDcgMTE6NDYgCiAgICAgIGJ2YXNzY2hlCgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzbV9zYXZlX3VzZXIoKTogd2hlbiB3cml0aW5nIHVzZXItPm5hbWUgYW5kIHVzZXItPnNlY05hbWUsIG9ubHkKICAgd3JpdGUgdGhlIEFTQ0lJIGRhdGEgYW5kIG5vdCB0aGUKICAgdGVybWluYXRpbmcgJ1wwJy4gU2luY2UgYm90aCBpdGVtcyBhcmUgcmVhZCBieSBjYWxsaW5nCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIHdyaXRpbmcKICAgdGhlIHRlcm1pbmF0aW5nICdcMCcgaXMgbm90IG5lY2Vzc2FyeSB0byBndWFyYW50ZWUgdGhhdCB0aGUgZGF0YQogICByZWFkIGJhY2sgaXMgdGVybWluYXRlZCBwcm9wZXJseS4KCjIwMTAtMDEtMDcgMDk6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCk6IHVudGlsCiAgIG5vdyB0aGlzCiAgIGZ1bmN0aW9uIHRlcm1pbmF0ZWQgdGhlIG91dHB1dCBidWZmZXIgaW4gc29tZSBjYXNlcyB3aXRoICdcMCcKICAgKHdoZW4gdGhlCiAgIGlucHV0IHdhcyBpbiB0aGUgZm9ybWF0IDB4Li4uIGFuZCBhIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCBhbmQKICAgYWxzbwogICB3aGVuIHRoZSBpbnB1dCB3YXMgaW4gQVNDSUkgZm9ybWF0LCBidXQgbm90IHdoZW4gdGhlIGlucHV0IHdhcyBpbgogICBmb3JtYXQKICAgMHguLi4gYW5kIG5vIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCkuIENoYW5nZWQgdGhpcyBzdWNoIHRoYXQKICAgdGhpcwogICBmdW5jdGlvbiBkb2VzIG5vIGxvbmdlciB0ZXJtaW5hdGUgdGhlIGlucHV0IGJ1ZmZlciB3aXRoICdcMCcuCiAgIFRoaXMKICAgY2hhbmdlIHdhcyBwb3NzaWJsZSBiZWNhdXNlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbGwKICAgY2FsbGVycyB0aGF0CiAgIG5lZWRlZCBhICdcMCcgdGVybWluYXRlZCBzdHJpbmcgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB1c2UKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBpbnN0ZWFkLgoKMjAxMC0wMS0wNiAxNzo1MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTY4IGFuZCByMTc5NzIuCgoyMDEwLTAxLTA2IDE1OjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiB0aGUgY29uc3QKICAga2V5d29yZC4KCjIwMTAtMDEtMDYgMTU6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNiAxNTozNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZCBpbiByMTc5NzUuCgoyMDEwLTAxLTA2IDE1OjMzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTU6MzEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB0aGUgZnVuY3Rpb25zIHJlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCkgYW5kCiAgIHNubXBkX3JlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCksIHdoaWNoCiAgIGFjY2VwdCBhIHBhcnNlciBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgc3RyaW5nIHRoYXQgaXQKICAgcGFyc2VzLiBVc2luZyB0aGVzZSBmdW5jdGlvbnMgcmVzdWx0cwogICBpbiBlYXNpZXIgdG8gcmVhZCBjb2RlIHRoYW4gdXNpbmcgdGhlIG5vbi1jb25zdCBoYW5kbGVyCiAgIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgYW5kIGNhc3RpbmcgdGhlIHBhcnNlcgogICBmdW5jdGlvbiBleHBsaWNpdGx5IGZyb20gKHZvaWQoKikoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKSkgdG8KICAgKHZvaWQoKikoY29uc3QgY2hhciosIGNoYXIqKSkuCgoyMDEwLTAxLTA2IDE1OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgcmVhZF9jb25maWdfcmVhZF9vYmppZF9jb25zdCgpLgoKMjAxMC0wMS0wNiAxNDo0MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDozNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBGb3IgdGhvc2UgVkFDTSBmdW5jdGlvbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSBzdHJpbmdzIHBhc3NlZCBhcwogICBhcmd1bWVudHMsCiAgIGNoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogdG8gY29uc3QgY2hhciAqLgoKMjAxMC0wMS0wNiAxNDoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYzoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAxMC0wMS0wNiAxNDoxNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmg6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0CiAgIHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE0OjA0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBuZXcgZnVuY3Rpb25zIHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSwKICAgc2tpcF90b2tlbl9jb25zdCgpLCBjb3B5X253b3JkX2NvbnN0KCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkuCiAgIC0gQ2hhbmdlZCByZXR1cm4gdHlwZSBvZiByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGZyb20KICAgY2hhciAqIHRvCiAgIGNvbnN0IGNoYXIgKi4gTm90ZTogdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgc2luY2UgdGhpcwogICBmdW5jdGlvbiBoYXMgbm90IHlldCBiZWVuIGluY2x1ZGVkIGluIGFueSByZWxlYXNlLgogICAtIEZpeGVkIGRvY3VtZW50YXRpb24gb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KICAgLSBSZWR1Y2VkIG51bWJlciBvZiBjYXN0LWF3YXktY29uc3QgY29uc3RydWN0cyBpbiByZWFkX2NvbmZpZy5jLgoKMjAxMC0wMS0wNiAxMzozNSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBSZWZpbmVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKToKICAgd2hlbiB1c2luZwogICB0aGUgZ2NjIGNvbXBpbGVyLCBpdCBpcyBub3cgdmVyaWZpZWQgd2hldGhlciB0aGUgdHlwZXMgKGNvbnN0IHQpCiAgIGFuZCB0eXBlb2YoZSkKICAgYXJlIGNvbXBhdGlibGUsIHdoZXJlIHQgaXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBlIHRoZSBzZWNvbmQKICAgYXJndW1lbnQgb2YKICAgdGhpcyBtYWNyby4KCjIwMTAtMDEtMDYgMTM6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oOgoKICAgQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2CiAgIGJ5dGVzIHRvIGF0VGFibGUuIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMKICAgd2l0aCA5IGFuZCBtb3JlIGJ5dGVzLgoKMjAxMC0wMS0wNiAxMjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MjQxNDA6IEZpeCB0ZXJtaW5hdGlvbiBvZiBDUFUvRlBVIHR5cGVzCgoyMDEwLTAxLTA2IDEyOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTIyMzkwOiBGaXggdGVzdCBmb3IgbWlzc2luZyBjb250ZXh0TmFtZQogICBwYXJhbWV0ZXIKCjIwMTAtMDEtMDYgMTE6NTcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9zbm1wX3BlcmwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ2hhbmdlczoKICAgLSBJbnRyb2R1Y2VkIGEgbmV3IG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgdGhhdCBhbGxvd3MgdG8KICAgY2FzdAogICBhd2F5IGNvbnN0bmVzcyB3aXRob3V0IHRoYXQgZ2NjIC1XY2FzdC1xdWFsIHJlcG9ydHMgYSB3YXJuaW5nLgogICAtIE1hZGUgY2FzdGluZyBhd2F5IGNvbnN0bmVzcyBleHBsaWNpdCBieSBpbnRyb2R1Y2luZyB0aGUKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBtYWNyby4gVGhpcyBzdXBwcmVzc2VzIHRoZSB3YXJuaW5nCiAgIGdjYyAtV2Nhc3QtcXVhbCBwcmludGVkIGZvciB0aGVzZSBzdGF0ZW1lbnRzLgoKMjAxMC0wMS0wNiAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDA5OjE0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBub3QgdXNlIDAgd2hlbiByZWZlcnJpbmcgdG8gTlVMTC4KCjIwMTAtMDEtMDYgMDg6MjYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZXMgb2YgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZAogICBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKICAgZnJvbSBzdHJ1Y3QgdGltZXZhbCAqIHRvIGNvbnN0IHN0cnVjdCB0aW1ldmFsICouIE5vdGU6IHRoaXMgZG9lcwogICBub3QgYWZmZWN0CiAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMC0wMS0wNiAwODoyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDaGFuZ2VzIChubyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vZGlmaWVkKToKICAgLSBSZW1vdmVkIGRpc2tpb19wYXJzZV9jb25maWcoKSBkZWNsYXJhdGlvbiBiZWNhdXNlIHRoYXQgZnVuY3Rpb24KICAgaXMgbmVpdGhlciBjYWxsZWQgbm9yIGRlZmluZWQgaW4gdGhlIHNvdXJjZSBmaWxlIGRpc2tpby5jLgogICAtIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBnZXRzdGF0cygpIHN1Y2ggdGhhdCBnY2MgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uLgogICAtIExpbnV4OiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgZ2V0c3RhdHMoKSBmcm9tIGdsb2JhbCB0byBzdGF0aWMKICAgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIEJTRCBhbmQgRGFyd2luIGltcGxlbWVudGF0aW9ucyBvZgogICBnZXRzdGF0cygpLgoKMjAxMC0wMS0wNiAwODowMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDAyOjE4ICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgbWFuL01ha2VmaWxlLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYXBwczogT25seSBidWlsZCBhZ2VudHh0cmFwIGlmIHRoZSBhZ2VudHggbGlicmFyaWVzIGFyZQogICBidWlsdC4gQWRkIGEgdGVzdCBjYXNlIGZvciBhZ2VudHh0cmFwLgogICAKICAgVGhlIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgaXMgaW5zcGllcmVkIGJ5IGF1dG9tYWtlIGNvbmRpdGlvbmFscwoKMjAxMC0wMS0wNiAwMTo1OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdGFydHRpbWUuCgoyMDEwLTAxLTA1IDIyOjU0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIENIQU5HRVM6IEhpZGUgbW9zdCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBpbiB0aGUgbG9nbWF0Y2gKICAgbW9kdWxlLiBDbGVhbmVkIHVwIHRoZSBoZWFkZXIgYWNjb3JkaW5nbHkuIFJlbW92ZSB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMgYnkgcmVvcmRlcmluZyB0aGUgZnVuY3Rpb25zLgoKMjAxMC0wMS0wNSAyMjozMyAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHUzogMjkxOTM3OTogSW5pdGlhbGlzZSBTTk1QIHNlc3Npb25zIHByb3Blcmx5CiAgIFByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDEwLTAxLTA1IDIyOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkxOTMyMDogQXZvaWQgYWNjZXNzaW5nIGZyZWVkIG1lbW9yeQogICBSZXBvcnRlZCBieSBUb21hc3ogTGlzCgoyMDEwLTAxLTA1IDE4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkxNDQxMDogRml4IGNyYXNoIG9uIGVtcHR5IGNvbW1hbmQgbGluZXMKCjIwMTAtMDEtMDUgMTU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTEyNTg0OiBGaXggbnVsbCBPSUQgaGFuZGxpbmcgaW4gQWdlbnR4CiAgIG9uIDY0Yml0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEx1dHogSmFlbmlja2UKCjIwMTAtMDEtMDUgMTA6MTEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogaHB1eDogZml4IGJ1aWxkIGVycm9yIG9uIEhQLVVYIDEwLjIwCgoyMDEwLTAxLTA1IDA4OjQyICBqc2FmcmFuZWsKCiAgICogbWFuLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBSZW1vdmUgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTA0IDE2OjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkIHRoYXQgb2NjdXJyZWQgd2hlbiBhbiBBU0NJSQogICBzdHJpbmcgd2FzCiAgIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAvCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgYW5kIHRoZSB0aGlyZCBhcmd1bWVudCAoKmxlbikKICAgZXF1YWxzIDAuCgoyMDEwLTAxLTA0IDE2OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgJ2NvbnN0Jy4KCjIwMTAtMDEtMDQgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KCjIwMTAtMDEtMDQgMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGNvcnJlY3Qgb2lkIGxlbmd0aCBpbiB0YWJsZSBpbmRleGVzLgoKMjAxMC0wMS0wNCAwODoxMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBNYWRlIHN1cmUgdGhhdCBzbm1wX2FsYXJtLmMgY2FuIGJlIGNvbXBpbGVkIGFnYWluIHdpdGggQzg5CiAgIGNvbXBpbGVyczogZm9yIEM4OQogICBpdCBpcyByZXF1aXJlZCB0aGF0IGluaXRpYWxpemVycyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuCgoyMDEwLTAxLTAzIDE2OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmM6CgogICBSZW5hbWUgbmV0c25tcF9hcmNoX3RjcGNvbm5fZGVsZXRlIHRvCiAgIG5ldHNubXBfYXJjaF90Y3Bjb25uX2VudHJ5X2RlbGV0ZSBpbiBvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGgKICAgdGhlIGhlYWRlciBmaWxlIGFuZCBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlLgoKMjAxMC0wMS0wMyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIEFkZCBtaXNzaW5nIGRlY2xhcmF0aW9ucy4KCjIwMDktMTItMzAgMTI6NDkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkzMzogZml4ZWQgdGhlIGlzc3VlIHRoYXQgaW5jbHVkaW5nIHRoZSBoZWFkZXIKICAgZmlsZQogICA8bmV0LXNubXAvbGlicmFyeS90eXBlcy5oPiBmcm9tIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAgIHRyaWdnZXJzCiAgIGNvbXBpbGVyIGVycm9ycyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzIChjb21wbGFpbnRzIGFib3V0CiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBub3QgYmVpbmcgaW5jbHVkZWQgYmVmb3JlCiAgIDxuZXQtc25tcC90eXBlcy5oPikuCiAgIE5vdGU6IHRoaXMgZG9lcyBub3Qgc29sdmUgdGhlIHVuZGVybHlpbmcgcHJvYmxlbSB0aGF0IE1JQiBjb2RlCiAgIG11c3Qgbm90CiAgIGluY2x1ZGUgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC90eXBlcy5oPiBiZWNhdXNlIGRvaW5nIHNvIHdvdWxkCiAgIHRyaWdnZXIgYQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGR1cmluZyB0aGUgY29uZmlndXJlIHN0ZXAgKE1JQiBjb2RlIGlzCiAgIGNvbXBpbGVkIGR1cmluZwogICB0aGUgY29uZmlndXJlIHN0ZXAsIHdoaWxlIHRoZSBjb25maWd1cmUgc3RlcCBnZW5lcmF0ZXMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IGFuZCA8bmV0LXNubXAvdHlwZXMuaD4gbmVlZHMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KCjIwMDktMTItMzAgMTE6NDggIGJ2YXNzY2hlCgogICAqIGFwcHMsIG1hbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE5OiB1cGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAwOS0xMi0yOCAxODowMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQuIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGNvbXBpbGVyCiAgIHdhcm5pbmdzLgogICBOb3RlOiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb24sIHJlZ2lzdGVyX3N0cmluZ19pbmRleCgpLCBpc24ndAogICBjYWxsZWQgZnJvbQogICBhbnl3aGVyZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgaXRzZWxmLgoKMjAwOS0xMi0yMyAwOTo0OSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGludmFsaWQgcmVhZCByZXBvcnRlZCBieSB2YWxncmluZDoKICAgSW52YWxpZCByZWFkIG9mIHNpemUgMQogICBtZW1jcHkgKG1jX3JlcGxhY2Vfc3RybWVtLmM6NDAyKQogICBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWRfdjQKICAgKGlwYWRkcmVzc19pb2N0bC5jOjI0MCkKICAgbmV0c25tcF9hcmNoX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2xpbnV4LmM6MTU4KQogICBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19jb21tb24uYzoxMTIpCiAgIAogICBSZXR1cm5pbmcgc3RydWN0dXJlIHdpdGggcG9pbnRlcnMgaW5zaWRlIGlzIG5vdCB0aGUgYmVzdCB0aGluZyB0bwogICBkby4KCjIwMDktMTItMjIgMTY6MDUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBGaXhlZCBzZXZlcmFsIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KCjIwMDktMTItMjIgMTI6MDIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgUmV2ZXJ0ZWQgdGhlIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlcyBvZiByMTc5MTM6CiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8uCiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBmdW5jdGlvbnMKICAgY2FsY3VsYXRlX3RpbWVfZGlmZigpLAogICB1YXRpbWVfcmVhZHkoKSwgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgogICAtIHN0YXJ0dGltZSBpcyBhZ2FpbiBhIGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIG9uZS4KICAgQWxzbyBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gTW92ZWQgdGhlIG1hcmtlcl90IHR5cGVkZWYgZnJvbSBuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggdG8KICAgbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLgogICAtIEFkZGVkIGEgbmV3IHR5cGVkZWYsIGNvbnN0X21hcmtlcl90LgogICAtIEZvciB0aG9zZSBhdGltZV8qKCkgLyB1YXRpbWVfKigpIC8gKl90dGlja3MoKSBmdW5jdGlvbnMgdGhhdCBkbwogICBub3QgY2hhbmdlCiAgIHRoZWlyIGFyZ3VtZW50cywgZGVjbGFyZWQgdGhlc2UgYXJndW1lbnRzIGNvbnN0X21hcmtlcl90IGluc3RlYWQKICAgb2YgbWFya2VyX3QuCiAgIC0gUmVuYW1lZCBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgdG8KICAgbmV0c25tcF9nZXRfYWdlbnRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X2FnZW50X3N0YXJ0dGltZSgpCiAgIHJlc3BlY3RpdmVseS4gTW92ZWQgdGhlc2UgZnVuY3Rpb25zIGZyb20gdG9vbHMuYyB0byBzeXN0ZW0uYy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbiBhdGltZV9oc3VidHJhY3QoKSAod2FzIGludHJvZHVjZWQgaW4KICAgcjE3OTEzKSBhbmQKICAgaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbiwgbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKCkuCgoyMDA5LTEyLTIyIDA3OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCByMTc5MjYsIHdoaWNoIG1hZGUgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlZC4gQSBuZXcgcGF0Y2ggd2lsbAogICBmb2xsb3cKICAgdGhhdCBmaXhlcyB0aGUgY2FsbGVycyBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHRoYXQKICAgd2VyZQogICBhc3N1bWluZyB0aGF0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVzIHRoZQogICBzdHJpbmcKICAgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0yMSAxNDoyOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggY3Jhc2ggaW4gSUYtTUlCIGFuZCBJUC1NSUIgd2hlbiB0aGVyZSBhcmUKICAgc29tZSBpbnRlcmZhY2VzIHdpdGggYnJvYWRjYXN0IElQIGFkZHJlc3MgYW5kIHNvbWUgd2l0aG91dC4KICAgCiAgIFJlc2V0IHRoZSBiY2FzdGVudHJ5IGluIHRoZSBsb29wLCBzbyBpdCBjYW5ub3QgYmUgaW5zZXJ0ZWQgdG8gdGhlCiAgIGNvbnRhaW5lcgogICB0d2ljZS4KICAgCiAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aG91dCBicm9hZGNhc3QgYWRkcmVzcwogICBpcyBwcm9jZXNzZWQsCiAgIHRoZSBiY2FzdGFkZHJlc3MgZnJvbSBwcmV2aW91cyBsb29wIGlzIGluc2VydGVkIGludG8gdGhlCiAgIGNvbnRhaW5lci4gVGhpcwogICBvYnZpb3VzbHkgZmFpbHMgYW5kIHRoZSBiY2FzdGVudHJ5IGlzIGZyZWVkLCBidXQgdGhlIGNvbnRhaW5lcgogICBzdGlsbCBjb250YWlucwogICByZWZlcmVuY2UgdG8gaXQgLT4gU0lHU0VHVi4KCjIwMDktMTItMjEgMTM6NTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI4OiB3aGlsZSByMTc5MjggZml4ZWQgYSBkYW5nbGluZyBwb2ludGVyCiAgIGRlcmVmZXJlbmNlCiAgIGRldGVjdGVkIGJ5IHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHNvZnR3YXJlIG9uIFdpbmRvd3MsIHRoYXQgcGF0Y2gKICAgaW50cm9kdWNlZAogICBhIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2UgYWJvdXQgd2hpY2ggb25seSBWYWxncmluZCBvbiBMaW51eAogICBjb21wbGFpbmVkLgogICBUaGlzIGZvbGxvdy11cCBwYXRjaCBmaXhlcyBib3RoIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzCiAgIHRyaWdnZXJlZCBieQogICBwYXJzaW5nIHRoZSBwZXJzaXN0ZW50RGlyIGtleXdvcmQuCgoyMDA5LTEyLTIxIDEzOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTAxMTIyLiBDaGFuZ2VzOgogICAtIE5ldyBmZWF0dXJlOiBzcGVjaWZ5aW5nIEFTTiB0eXBlIFNOTVBfTk9TVUNISU5TVEFOQ0UgYXMgdGhlCiAgIHRoaXJkIGFyZ3VtZW50CiAgIG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSB3aWxsIGNhdXNlIGFuIFNOTVAgR2V0UmVxdWVzdCAvCiAgIEdldE5leHRSZXF1ZXN0IHRvCiAgIHJldHVybiB0aGUgZXJyb3IgY29kZSBub1N1Y2hJbnN0YW5jZSAoU05NUHYyKSBvciBub1N1Y2hOYW1lCiAgIChTTk1QdjEpLiBUaGlzCiAgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgYSBjYWNoZWQgdGFibGUgd2l0aCBvbmUgb3IgbW9yZQogICAiaG9sZXMiLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4KICAgbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIHZhbHVlCiAgIHNocnVuaywgdXNlCiAgIHJlYWxsb2MoKSBpbnN0ZWFkIG9mIGZyZWUoKSBhbmQgbWFsbG9jKCkuCgoyMDA5LTEyLTIxIDEyOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkxMjA1NTogbWFrZSBzdXJlCiAgIHRoYXQKICAgcGFyc2luZyB0aGUgInBlcnNpc3RlbnREaXIiIGtleXdvcmQgaW4gc25tcC5jb25mIGRvZXMgbm90IHRyaWdnZXIKICAgYQogICBkYW5nbGluZyBwb2ludGVyLiBUbyBteSBzdXJwcmlzZSBCb3VuZHNDaGVja2VyIGNvbXBsYWluZWQgYWJvdXQKICAgdGhpcwogICAob24gV2luZG93cyksIGJ1dCBWYWxncmluZCBkaWQgbm90IHJlcG9ydCB0aGlzIGlzc3VlIChvbiBMaW51eCkuCgoyMDA5LTEyLTIxIDEyOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyNSAoZml4IG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwKTogd2hpbGUKICAgcjE3OTI1IGZpeGVkCiAgIG9ubHkgdGhlIGxlYWsgdHJpZ2dlcmVkIGZyb20gaW5zaWRlIHRoZSBmb3ItbG9vcCwgdGhpcyBwYXRjaCBkb2VzCiAgIG5vdyBhbHNvCiAgIGZpeCB0aGUgbGVhayB0cmlnZ2VyZWQgYnkgdGhlIG5ldHNubXBfdGFibGVfZGF0YXNldF9hZGRfcm93KCkKICAgY2FsbCBuZWFyCiAgIHRoZSBlbmQgb2YgbG9nX25vdGlmaWNhdGlvbigpLgoKMjAwOS0xMi0yMSAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2MjogbWFrZSBzdXJlIHRoYXQgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGlzIHByb3Blcmx5IHRlcm1pbmF0ZWQsIHN1Y2ggdGhhdAogICB0aGUKICAgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIGRvIG5vdCB0cmlnZ2VyIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KICAgRm91bmQKICAgdGhpcyBpc3N1ZSB2aWEgQm91bmRzQ2hlY2tlci4KCjIwMDktMTItMjEgMTE6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjgsIHdoaWNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXAuCiAgIFRoZQogICBmdW5jdGlvbiBsb2dfbm90aWZpY2F0aW9uKCkgYWRkcyBhIHJvdyB0byB0aGUgdGFibGUKICAgbmxtTG9nVmFyVGFibGUsIGJ1dAogICB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoYXQgdGFibGUgaGFzIGJlZW4KICAgaW5pdGlhbGl6ZWQuIElmCiAgIHRoYXQgaGFwcGVucywgbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3IgYSByb3cgYnV0IHRoYXQgbWVtb3J5IGlzCiAgIG5ldmVyCiAgIGFkZGVkIHRvIHRoZSBjYWNoZWQgdGFibGUgZGF0YS4gVGhlIEJvdW5kc0NoZWNrZXIgdG9vbCByZXBvcnRlZAogICB0aGlzIGFzCiAgIGEgIm1lbW9yeSBsZWFrIGxlYXZpbmcgc2NvcGUiLgoKMjAwOS0xMi0yMSAxMDo1NCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgdGhlIGZvbGxvd2luZyB0ZXh0IHRvIHRoZSAiTGltaXRhdGlvbnMiIHNlY3Rpb24gb2YKICAgUkVBRE1FLndpbjMyOgogICAiV2hlbiB1c2luZyB3aW5FeHRETEwsIHRoZXJlIGlzIGFuIG9mZnNldCBvZiB1cCB0byBvbmUgc2Vjb25kCiAgIGJldHdlZW4gdGhlCiAgIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUgdmFyYmluZCBpbmNsdWRlZCBpbiB0aGUgdHJhcHMgZ2VuZXJhdGVkIGJ5CiAgIFNOTVAKICAgZXh0ZW5zaW9uIERMTHMgKGUuZy4gbGlua1VwIGFuZCBsaW5rRG93bikgYW5kIHRoZSB2YWx1ZSBvZiB0aGUKICAgc3lzVXBUaW1lCiAgIHZhcmJpbmQgaW5jbHVkZWQgaW4gdHJhcHMgZ2VuZXJhdGVkIGJ5IE5ldC1TTk1QIGl0c2VsZiAoZS5nLgogICBjb2xkU3RhcnQpLiIKCjIwMDktMTItMjEgMTA6MDkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBTcGVsbGluZyBmaXg6IHJlcGxhY2VkIGFsbCBvY2N1cnJlbmNlcyBvZiAnc3BlY2lmYycgYnkKICAgJ3NwZWNpZmljJy4KCjIwMDktMTItMjEgMTA6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUmVmYWN0b3Jpbmc6IGVsaW1pbmF0ZWQgZHVwbGljYXRlZCBjb2RlIGJ5IHJlaW1wbGVtZW50aW5nCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSB1c2luZyBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyKCkuIE5laXRoZXIgdGhlCiAgIE5ldC1TTk1QIEFQSSBub3IgdGhlIGJlaGF2aW9yIG9mIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSBoYXMgYmVlbgogICBjaGFuZ2VkLgoKMjAwOS0xMi0yMCAxMToxMCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvYWdlbnR4dHJhcC5jLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9hZ2VudHh0cmFwLjEuZGVmOgoKICAgTkVXUzogYXBwczogQWRkIGNvbW1hbmQgdG8gc2VuZCBBZ2VudFggbm90aWZ5IHJlcXVlc3RzIHRvIGEKICAgbWFzdGVyIGFnZW50LgoKMjAwOS0xMi0xNyAxNjo0NCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTcgLS0gYnVpbGRzIGFnYWluIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMTcgMTY6MDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkwMyAvIHBhdGNoIDI5MTEzMjMgIkZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nCiAgIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24iIChzdWJtaXR0ZWQgYnkgbXlzZWxmKS4gVGhhdCBwYXRjaAogICBkaWQgbm90IG9ubHkKICAgZml4IHRoZSBsb2NrdXAgYnV0IGFsc28gbWFkZSBzbm1wZCBwcmludCBhIHdhcm5pbmcgZHVyaW5nIHN0YXJ0dXAKICAgd2hlbgogICBpcXVlcnlTZWNOYW1lIHdhcyBub3QgY29uZmlndXJlZC4gVGhpcyB3YXJuaW5nIHdhcyBwcmludGVkIGV2ZW4KICAgd2hlbiBubwogICBpbnRlcm5hbCBxdWVyaWVzIHdlcmUgcGVyZm9ybWVkLiBUaGlzIHdhcm5pbmcgaXMgbm93IG9ubHkgcHJpbnRlZAogICBqdXN0IGJlZm9yZQogICB0aGUgZmlyc3QgaW50ZXJuYWwgcXVlcnkgaXMgbWFkZSAoZHVyaW5nIHRoZSBmaXJzdCBjYWxsIG9mCiAgIG5ldHNubXBfcXVlcnlfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIGluc3RlYWQgb2YgZHVyaW5nIGNyZWF0aW9uIG9mCiAgIHRoZSBpbnRlcm5hbAogICBzZXNzaW9uKS4KCjIwMDktMTItMTcgMTM6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmM6CgogICBSTU9OIE1JQiBzb3VyY2UgY29kZSBjb21waWxlcyBhZ2FpbiAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpIGFuZAogICBBR1VUSUxfc3lzX3VwX3RpbWUoKSBzdWNoIHRoYXQgdGhlc2UgZnVuY3Rpb25zIG5vcm1hbGl6ZSB0aGUKICAgdHZfdXNlYyBmaWVsZCBvZgogICBzdHJ1Y3QgdGltZXZhbCBwcm9wZXJseS4gTm90ZTogdGhpcyBzb3VyY2UgY29kZSBtb2RpZmljYXRpb24gZG9lcwogICBub3QgYWZmZWN0CiAgIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHR3byBmdW5jdGlvbnMuCgoyMDA5LTEyLTE3IDEzOjExICBidmFzc2NoZQoKICAgKiBtYW4vbmV0c25tcF91dGlsLjM6CgogICBSZW1vdmVkIGRvY3VtZW50YXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8gLS0gc2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjA1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ29udmVydGVkIHN0YXJ0dGltZSBmcm9tIGEgZ2xvYmFsIHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgYW5kIGFwcGxpZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIEFkZGVkIHR3byBuZXcgbWFjcm9zOiBORVRTTk1QX1RJTUVSQUREKCkgYW5kCiAgIE5FVFNOTVBfVElNRVJTVUIoKS4KICAgLSBBZGRlZCB0aHJlZSBuZXcgZnVuY3Rpb25zOiBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSwKICAgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgYW5kIGF0aW1lX2hzdWJ0cmFjdCgpLgogICAtIFJlcGxhY2VkIGdldHRpbWVvZmRheSgpICsgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGNhbGxzIGJ5IGEgY2FsbAogICB0byBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKS4KICAgLSBSZW1vdmVkIHRoZSBtYWNybyBESUZGVElNRVZBTCgpIGJlY2F1c2UgaXQgd2FzIG5vdCB1c2VkIGluc2lkZQogICB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbmQgYmVjYXVzZSBpdCBjb250YWluZWQgYSBidWcuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb25zIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwgdWF0aW1lX3JlYWR5KCksCiAgIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KCjIwMDktMTItMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEJ1ZyBmaXg6IGFjY29yZGluZyB0byBSRkMgMjU3MSB0aGUgdW5pdCBvZiBzbm1wRW5naW5lVGltZSBpcyBvbmUKICAgc2Vjb25kLAogICBub3Qgb25lIGh1bmRyZWR0aCBvZiBhIHNlY29uZC4KCjIwMDktMTItMTcgMTA6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIEZpeCB0eXBvLgoKMjAwOS0xMi0xNiAxMjozMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cy1vbmx5IGJ1ZyBmaXhlczoKICAgLSBGaXhlZCB0aGUgc3RyYW5nZSBidWlsZCBlcnJvcnMgdGhhdCBvY2N1cnJlZCB3aGVuIGNvbXBpbGluZwogICBsaWJuZXRzbm1wIGFzIGEgRExMIGFuZCB3aGVuIGVpdGhlciA8c3RkbGliLmg+IG9yIDxzdHJpbmcuaD4gd2FzCiAgIGluY2x1ZGVkIGFmdGVyIDxuZXQtc25tcC1jb25maWcuaD4gaW5zdGVhZCBvZiBiZWZvcmUuCiAgIC0gRm9yIGRlYnVnIGJ1aWxkcyB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLCBmaXhlZCB0aGUKICAgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBfbWFsbG9jX2RiZygpIGNhbGwgaW52b2tlZCBieSBzdHJkdXAoKSBhbmQKICAgZnJlZSgpLWluZyBzdHJkdXAoKS1lZCBtZW1vcnkgYnkgaW5jbHVkaW5nIHRoZSA8Y3J0ZGJnLmg+IGhlYWRlcgogICBpbiB0b29scy5jIGFuZCBieSBkZWZpbmluZyB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBfQ1JUREJHX01BUF9BTExPQy4gRGV0ZWN0ZWQgdmlhIHRoZSBtZW1vcnkgY2hlY2tlciBpbmNsdWRlZCBpbgogICBJbnRlbCBQYXJhbGxlbCBTdHVkaW8uCgoyMDA5LTEyLTE0IDE3OjIzICB0YW5kZXJzCgogICAqICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBzeW5jIGRlZmluaXRpb24gb2YgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIFBlcmwgd2l0aCB0aGUgY2hhbmdlcwogICBpbgogICByMTc4NTUgYW5kIHIxNzkwOAoKMjAwOS0xMi0xNCAxMzo1NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgRml4IFRDUCB0cmFuc3BvcnQgYnJva2VuIGJ5IHJldi4gMTc4NTUgLSBjb3BpZXMgb2YKICAgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIHNubXBUQ1BEb21haW4uYyBhbmQgc25tcFVEUERvbWFpbi5jIG11c3QKICAgYmUgdGhlIHNhbWUuCgoyMDA5LTEyLTExIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBwYXRjaCBmcm9tIE1hcnRpbiBCam9ya2x1bmQgdG8gYWRkIGEgLUN3IG9wdGlvbgogICB0byB1c2UgY3JlYXRlQW5kV2FpdCBmb3IgYWdlbnRzIHRoYXQgYXJlIHN0cmljdCBhYm91dCBub3QKICAgYWxsb3dpbmcgYSByb3cgdG8gYmUgc2V0IHRvIGFjdGl2ZSB1bnRpbCB0aGUgYXV0aGVudGljYXRpb24KICAgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZDsgcGx1cyB3aGl0ZS1zcGFjZSBjbGVhbiB1cCwgbWFudWFsCiAgIGFkZGl0aW9ucyBhbmQgaGVscCBvdXRwdXQgbW9kaWZpY2F0aW9ucyBieSBoYXJkYWtlcgoKMjAwOS0xMi0xMSAxNDozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGEgZm9ybWF0IHNwZWNpZmllciBtaXNtYXRjaC4KCjIwMDktMTItMTEgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICB3aW5FeHRETEwgYnVncyBmaXhlZDoKICAgLSBzeXNVcFRpbWUuMCBkb2VzIG5vdyByZXBvcnQgdGhlIGNvcnJlY3QgdmFsdWUuCiAgIC0gYSBsaW5rVXAgb3IgbGlua0Rvd24gdHJhcCBpcyBub3cgc2VudCBhZnRlciB0aGUgc3RhdHVzIG9mIGEKICAgbmV0d29yayBpbnRlcmZhY2UKICAgaGFzIGNoYW5nZWQuCiAgIC0gdGhlIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUuMCB2YXJiaW5kIGluIGxpbmtVcCBhbmQgbGlua0Rvd24KICAgdHJhcHMgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDA5LTEyLTEwIDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSEVTOiAyOTExOTcwOiBQcm9wZXJseSB0ZXJtaW5hdGUgbGlua2VkIGxpc3QKICAgb2YgcmVnaXN0cmF0aW9ucy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWlya28gRGVja2VydC4KCjIwMDktMTItMTAgMTU6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTExMzIzOiBGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZyBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uCgoyMDA5LTEyLTEwIDEzOjU5ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IE1pY3Jvc29mdCdzIGltcGxlbWVudGF0aW9uIG9mCiAgIGhyU3lzdGVtVXB0aW1lLjAuCiAgIC0gRml4ZWQgYSBmZXcgdHlwb3MuCgoyMDA5LTEyLTEwIDEzOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQWRkZWQgbWlzc2luZyBuZXdsaW5lIGluIGEgbG9nZ2luZyBzdGF0ZW1lbnQuCgoyMDA5LTEyLTEwIDEyOjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgd2luRXh0RExMIGJ1Z3M6CiAgIC0gRml4ZWQgYnVnIGluIHRyYXAgZm9yd2FyZGluZzogbGlua0Rvd24gdHJhcHMgd2VyZSBzZW50IGFzCiAgIHdhcm1TdGFydCB0cmFwcwogICBhbmQgbGlua1VwIHRyYXBzIHdlcmUgc2VudCBhcyBsaW5rRG93biB0cmFwcy4KICAgLSBGaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBleHRlbnNpb24gRExMIGxvYWRpbmcuCiAgIC0gQSBkZWJ1ZyB0cmFjZSBzdGF0ZW1lbnQgaXMgbm93IGludm9rZWQgd2hlbmV2ZXIgYSBzZXJpb3VzIGVycm9yCiAgIGhhcyBiZWVuCiAgIGRldGVjdGVkLgoKMjAwOS0xMi0xMCAxMjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPSURzIGluIGRlYnVnIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSB0aGUgd2luRXh0RExMIG1vZHVsZSBhcmUgbm93CiAgIHByaW50ZWQgaW4KICAgc3ltYm9saWMgZm9ybSBpbnN0ZWFkIG9mIG51bWVyaWMgZm9ybS4KCjIwMDktMTItMTAgMDg6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFByb2plY3QgZGVwZW5kZW5jaWVzIHNob3VsZCBub3cgcmVhbGx5IGJlIGNvcnJlY3QuIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3ODczLgoKMjAwOS0xMi0xMCAwODo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzIChvbmx5IHNvdXJjZSBjb2RlIGNvbW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkKToKICAgLSBSZW1vdmVkIGEgbm90ZSB0aGF0IGNvbnRyYWRpY3RlZCB0aGUgaW5zdHJ1Y3Rpb25zIGluCiAgIFJFQURNRS53aW4zMi4KICAgLSBVcGRhdGVkIGJ1aWxkIGluc3RydWN0aW9ucyBhZnRlciB0aGUgYWRkaXRpb24gb2YgdGhlIGZpbGUKICAgd2luMzIvU25tcC13aW5FeHRETEwuaCBpbiByMTc4MzAuCgoyMDA5LTEyLTEwIDA4OjE3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIE1hZGUgZmlsZSBoZWFkZXIgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIHRoZSBkZXNjcmlwdGlvbnMgaW4gdGhlCiAgIHJlc3BlY3RpdmUgbWFuIHBhZ2VzLgoKMjAwOS0xMi0xMCAwMzowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudF9zeXNPUl9jYWxsYmFjayB3b24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuCiAgIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjay4gQ2hhbmdlIGFnZW50eF9yZW9wZW5fc3lzT1JUYWJsZSBpbgogICBvcmRlciB0byBhdm9pZCB3YXJuaW5ncyBvZiBjb25zdCByZW1vdmFsLgoKMjAwOS0xMi0wOSAxNTowNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gTW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScgaW5zaWRlIHRoZQogICBmdW5jdGlvbgogICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBiZWNhdXNlIHRoaXMgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5CiAgIHRoYXQgZnVuY3Rpb24uCiAgIC0gRG9jdW1lbnRlZCB0aGUgcHVycG9zZSBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnLgogICAtIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHRoZSBjYWxsIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGRvZXMKICAgbm90IHRyaWdnZXIgYW4KICAgaW52YWxpZCBtZW1vcnkgYWNjZXNzIChzdHJbLTFdKSB3aGVuIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgdG8KICAgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMDkgMTQ6MzcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MKICAgYmlnZ2VyIHRoYW4gNiBieXRlcyB0byBpcE5ldFRvTWVkaWFUYWJsZSBhbmQKICAgaXBOZXRUb1BoeXNpY2FsVGFibGUuCiAgIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMgd2l0aCA5IGFuZCBtb3JlCiAgIGJ5dGVzLiBTbm1wZCBvbiBMaW51eCB3YXMgbm90IGFibGUgdG8gcGFyc2UgL3Byb2MvbmV0L2FycCB0aGVuCiAgIGFuZCBwcm9kdWNlZCB1Z2x5ICdpb2N0bCAzNTEyMyByZXR1cm5lZCAtMScgdG8gbG9nLgoKMjAwOS0xMi0wOSAxMjoyNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgbWlzc2luZyAtTG8gaW4gYSBjb21tYW5kIGxpbmUgZXhhbXBsZS4KCjIwMDktMTItMDkgMTI6MTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFkZGVkIHNubXBhcGkubGliIHRvIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBzbm1wZC5leGUuCiAgIEFwcGFyZW50bHkgVmlzdWFsCiAgIFN0dWRpbyAyMDA1IGFuZCAyMDA4IG5lZWQgdGhpcyBsaWJyYXJ5IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdAogICB3aGVuIGxpbmtpbmcKICAgdGhlIGV4ZSwgd2hpbGUgZm9yIFZpc3VhbCBTdHVkaW8gNiBpdCBpcyBzdWZmaWNpZW50IHdoZW4gdGhpcwogICBsaWJyYXJ5IGlzCiAgIHByZXNlbnQgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIG5ldHNubXBtaWJzLmxpYi4KCjIwMDktMTItMDkgMDg6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NCBhbmQgcjE3ODczLCB0aGUgYnVpbGQKICAgcHJvY2VzcyBiZWNhbWUgc2ltcGxlci4KCjIwMDktMTItMDkgMDg6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRXhwb3J0IHN0cnRvdWxsIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE3ODg2LgoKMjAwOS0xMi0wOSAwODoyMSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUmV2ZXJ0ZWQgcjE3NzAwIGZvciBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg2LCBtb2RpZnlpbmcKICAgdGhlCiAgIHN0cnRvdWxsIGxpbmUgaW4gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgaXMgbm8gbG9uZ2VyCiAgIG5lY2Vzc2FyeS4KCjIwMDktMTItMDkgMDg6MTIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93czogc3dpdGNoZWQgZnJvbSBfc3RydG91aTY0KCkgdG8gc3RydG91bGwoKSBmb3IgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8KICAgMjAwMiBhbmQgbGF0ZXIgYmVjYXVzZSB0aGUgZm9ybWVyIGlzIG5vdCBmdWxseSBQT1NJWCBjb21wbGlhbnQuCiAgIFRoZSBzdHJ0b3VsbCgpCiAgIHVuaXQgdGVzdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCBmb3IgX3N0cnRvdWk2NCgpIHdpdGgKICAgTVNWQyAyMDA4OgogICB0ZXN0IDE0IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKICAgdGVzdCAxNiBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCgoyMDA5LTEyLTA4IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogTWFrZSBzdXJlIHRoYXQgYSBtYXNrIGlzIGdpdmVuIHRvIG9wZW4KICAgd2hlbiBPX0NSRUFUIGlzIHNwZWNpZmllZAoKMjAwOS0xMi0wOCAxNjoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgdGhpcyBvdXQuCgoyMDA5LTEyLTA4IDE1OjQ3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFVuaXggc3lzdGVtcyAoZml4ZWQgYSB0eXBvIGludHJvZHVjZWQgaW4gcjE3ODgxKS4KCjIwMDktMTItMDggMTU6MzcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4gV2l0aG91dCB0aGlzCiAgIGRlZmluZSB0aGUgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgYmVuaWduIHJlZGVmaW5pdGlvbiBvZgogICB0eXBlIHNvY2tsZW5fdC4KCjIwMDktMTItMDggMTU6MjggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW5lZCB1cCB0aGUgY29kZSBmb3Igc2V0dGluZyBsaW5lIGJ1ZmZlcmluZzoKICAgLSBJbnN0ZWFkIG9mIGhhdmluZyBjYWxscyB0byBzZXR2YnVmKCkgaW4gbXVsdGlwbGUgZmlsZXMsIHRoZXJlCiAgIGlzIG5vdyBvbmUgY2FsbAogICB0byBzZXR2YnVmKCkgZnJvbSB0aGUgbmV3IGZ1bmN0aW9uIG5ldHNubXBfc2V0X2ZpbGVsb2cuIFRoZXNlCiAgIHNvdXJjZSBmaWxlcwogICBhcmU6IHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMKICAgYW5kIGFnZW50XG1pYmdyb3VwXGRpc21hblx0cmFjZXJvdXRlXHRyYWNlUm91dGVDdGxUYWJsZS5jLgogICAtIFVzaW5nIC1MbyAvIC1MZSBkb2VzIG5vdyBlbmFibGUgbGluZSBidWZmZXJpbmcgZm9yIHN0ZG91dCAvCiAgIHN0ZGVyciByZXNwZWN0aXZlbHkuCiAgIC0gUmVtb3ZlZCBjb2RlIGluIHNubXBkLmMgYW5kIHNubXB0cmFwZC5jIGZvciBzZXR0aW5nIGxpbmUKICAgYnVmZmVyaW5nIG9uIHN0ZG91dAogICBzaW5jZSBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nIG9uIHN0ZG91dCBpcyBub3cgdHJpZ2dlcmVkIGJ5IHRoZQogICBjb21tYW5kLWxpbmUKICAgb3B0aW9uIC1Mby4KICAgQnVncyBmaXhlZDoKICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBhbHNvIHNldCBmb3Igc3RkZXJyIHdoZW4gdGhlCiAgIGNvbW1hbmQtbGluZSBvcHRpb24KICAgLUxlIGhhcyBiZWVuIHNwZWNpZmllZC4KICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBzZXQgY29ycmVjdGx5IGZvciBzdGRvdXQgb24gV2luZG93cwogICBzeXN0ZW1zCiAgIChjb21tYW5kLWxpbmUgb3B0aW9uIC1MbykuCgoyMDA5LTEyLTA4IDEyOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgbG9jYWwgdmFyaWFibGVzIHRoYXQgd2VyZSBkZWZpbmVkCiAgIGJ1dAogICBub3QgdXNlZCBieSBvbmx5IGVuYWJsaW5nIHRoZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9ucyBvbiB0aGUKICAgcGxhdGZvcm0gdGhhdCB1c2VzIHRoZXNlIHZhcmlhYmxlcyAoTGludXgpLgoKMjAwOS0xMi0wOCAxMjoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQWRkZWQgI2luY2x1ZGUgIm1pYmdyb3VwL3V0aWxfZnVuY3MuaCIuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDktMTItMDggMTI6MjUgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgSW5jbHVkZSB0aGUgZ2V0aG9zdGVudCgpIC8gc2V0aG9zdGVudCgpIGRlY2xhcmF0aW9ucyBiZWZvcmUgdXNpbmcKICAgdGhlc2UKICAgZnVuY3Rpb25zLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0wOCAxMjoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeGVkIGFuIGluY29uc2lzdGVuY3kgKHdoaWNoIGlzIGFsbG93ZWQgYnkgdGhlIEFOU0kgQyBzdGFuZGFyZCkKICAgYmV0d2VlbgogICBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbiBvZgogICBuZXRzbm1wX2FkZF9nbG9iYWxfdHJhcGhhbmRsZXIgYW5kCiAgIG5ldHNubXBfYWRkX2RlZmF1bHRfdHJhcGhhbmRsZXIgc3VjaAogICB0aGF0IHRoZSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBjb21waWxlciBkb2VzIG5vIGxvbmdlciBjb21wbGFpbgogICBhYm91dAogICB0aGlzLgoKMjAwOS0xMi0wOCAxMjowOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGltcGxpY2l0bHkgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMDktMTItMDggMTI6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT25seSBjb21waWxlIHRoZSB3aW5FeHRETEwgc291cmNlIGNvZGUgaWYgdGhlIHByZXByb2Nlc3NvciBtYWNybwogICBVU0lOR19XSU5FWFRETExfTU9EVUxFIGhhcyBiZWVuIGRlZmluZWQuCgoyMDA5LTEyLTA4IDEyOjAzICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLgoKMjAwOS0xMi0wOCAxMjowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgb3V0IHRoZSBidWlsZCBvcmRlci4KCjIwMDktMTItMDggMDk6NDYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzIC8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IGRpc2FibGVkIHRoZSBjb21waWxlciB3YXJuaW5nCiAgIGFib3V0CiAgIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzICg0MDE4KSBiZWNhdXNlIHRoaXMgd2FybmluZyBkb2VzIG5vdAogICB5aWVsZAogICBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLgoKMjAwOS0xMi0wOCAwOToxNyAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzYzOSAocGF0Y2ggMjc4MDQxMSAtLSBmaXggY29tcGlsZXIgd2FybmluZ3MpOgogICBhcHBsaWVkCiAgIHRoaXMgcGF0Y2ggdG8gbmV0LXNubXAtY29uZmlnLmguaW4gdG9vIHN1Y2ggdGhhdAogICBuZXQtc25tcC1jb25maWcuaCBhbmQKICAgbmV0LXNubXAtY29uZmlnLmguaW4gbWF0Y2ggYWdhaW4uCgoyMDA5LTEyLTA4IDA4OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50eF9zeXNPUl9jYWxsYmFjaygpIGRvZXMgbm90IHRyaWdnZXIgYQogICBjb21waWxlcgogICB3YXJuaW5nIHdoZW4gdGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuCiAgIGRlY2xhcmVkIGNvbnN0LgoKMjAwOS0xMi0wOCAwODoxNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ2hhbmdlZCB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RydG91bGwoKSBmcm9tICd1bnNpZ25lZCBsb25nIGxvbmcnCiAgICh3aGljaAogICBpcyBub3QgdmFsaWQgQzg5KSB0byAndWludDY0X3QnIChkZWNsYXJlZCBpbgogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KICAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGNvbXBpbGUgYWdhaW4gd2l0aAogICBNU1ZDIDYuMC4KCjIwMDktMTItMDcgMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBUd2VhayBtaXNzaW5nIHN1YmlkZW50aWZpZXIgcHJvY2Vzc2luZyB0byBiZSBtb3JlIHR5cGUtYXdhcmUuCiAgIChBbiBpc3N1ZSB3aXRoIEFJWCwgYXQgbGVhc3QpCgoyMDA5LTEyLTA2IDE4OjM4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogTWFrZSB0aGUgbGlzdHMgb2YgY29tMlNlYypFbnRyaWVzIHN0YXRpYwoKMjAwOS0xMi0wNiAxODozNCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGl0ZXJhdG9yIHZhcmlhYmxlIGluIG5ldHNubXBfKl9nZXRTZWNOYW1lIGNvbnN0CgoyMDA5LTEyLTA2IDE4OjI5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogQ2hhbmdlIHRoZSB0eXBlcyBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogICBuZXRzbm1wXypfZ2V0U2VjTmFtZSBmcm9tIGNoYXIqIHRvIGNvbnN0IGNoYXIqIHNpbmNlIHRoZXkgcG9pbnQKICAgaW50byBpbnRlcm5hbCBzdHJ1Y3R1cmVzLgoKMjAwOS0xMi0wNSAyMDoxOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggZGVjbGFyYXRpb24gb2Ygc3RydG91bGwKCjIwMDktMTItMDUgMTc6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjYWxsIG5ldHNubXBfcmVhZF9tb2R1bGUgaW5zdGVhZCBvZiByZWFkX21vZHVsZSB0byBtYWtlIGl0CiAgIGNvbXBpbGUgd2l0aAogICBORVRTTk1QX0NMRUFOX05BTUVTUEFDRQoKMjAwOS0xMi0wMiAxNTozOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgaW52YWxpZCBhY2Nlc3MgdG8gbWVtb3J5IGluIFRDUC1NSUIKICAgVGhpcyBwYXJ0bHkgcmV2ZXJ0cyBwYXRjaCAxNzcxOSAtIHRoZSBlbnRyaWVzICphcmUqIHVzZWQgYWZ0ZXIKICAgcmF3X2RhdGEgY29udGFpbmVyIGlzIGZyZWVkLiBUaGVzZSBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCB3aGVuCiAgIGFzc29jaWF0ZWQgcm93cmVxX2N0eCBpcyBmcmVlZC4KCjIwMDktMTItMDIgMDg6MzAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHVkcFRhYmxlIGluZGV4ZXMgb24gYmlnLWVuZGlhbiA2NGJpdCBMaW51eC4KICAgVGhlIGluZGV4IHdhcyBhbHdheXMgJzAuMC4wLjAnIGluc3RlYWQgb2YgcmVhbCBsb2NhbCBJUCBhZGRyZXNzLgoKMjAwOS0xMi0wMSAxMjozNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgVXBkYXRlIGEgcmVkdW5kYW50IChhbmQgcHJvYmFibHkgaW5hY2N1cmF0ZSkgY29tbWVudC4KCjIwMDktMTItMDEgMTI6MzEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODIyMzYwOiBGaXggbWVtb3J5IGxlYWsgd2hlbiBidWlsZGluZwogICB0YWJsZSBPSURzCgoyMDA5LTEyLTAxIDEyOjA4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBCVUdTOiAyODM3OTk4OiBIYW5kbGUgbWlzc2luZyBpbnN0YW5jZQogICBzdWJpZGVudGlmaWVycyBpbiByZXN1bHRzCgoyMDA5LTEyLTAxIDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg0MTAwODogUHJvdGVjdCBhZ2FpbnN0IGNyYXNoIGZvbGxvd2luZwogICBmYWlsZWQgQWdlbnRYIHJlc3BvbnNlCgoyMDA5LTEyLTAxIDA3OjM0ICBqc2FmcmFuZWsKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggcmVzcG9uZGluZyB0byBicm9hZGNhc3QgcmVxdWVzdHMuCiAgIFVEUCByZXNwb25zZXMgYXJlIHNlbnQgd2l0aCBzb3VyY2UgSVAgYWRkcmVzcyB3aGljaCB3YXMKICAgZGVzdGluYXRpb24gb2YKICAgYXBwcm9wcmlhdGUgcmVxdWVzdHMgKGltcGxlbWVudGVkIGluIFNWTiByZXYuIDE1MjE1KS4gQnV0IGlmIHRoZQogICBkZXN0aW5hdGlvbgogICBvZiBhIHJlcXVlc3QgaXMgYnJvYWRjYXN0IElQIGFkZHJlc3MsIHRoZSByZXF1ZXN0IHdhcyBzZW50IHdpdGgKICAgdGhlIGJyb2FkY2FzdAogICBhZGRyZXNzIGFzIHNvdXJjZS4gc2VuZG1zZygpIG9uIExpbnV4IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBhbmQKICAgcmV0dXJucyBlcnJvcgogICAtPiByZXNwb25zZSBpcyBub3Qgc2VudC4gSW4gb3JkZXIgdG8gc2VuZCByZXNwb25zZXMgZnJvbSB0aGUgc2FtZQogICBpbnRlcmZhY2UsCiAgIGludGVyZmFjZSBpbmRleCBvZiB0aGUgYXBwcm9wcmlhdGUgaW50ZXJmYWNlIG11c3QgYmUgdXNlZC4KCjIwMDktMTItMDEgMDA6MjkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg1Mi4KCjIwMDktMTItMDEgMDA6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg0Mi4KCjIwMDktMTEtMzAgMTY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODczODU4OiBGaXggaGFuZGxpbmcgb2Ygc2NoZWRPd25lciBpbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFNjaHViZXJ0LgoKMjAwOS0xMS0zMCAxNjo0NiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVR1M6IDI4ODg1Njk6IEZpeCBnZW5lcmF0aW9uIG9mIHRhYmxlIGNvbHVtbnMKICAgYXJyYXkKCjIwMDktMTEtMzAgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODk0MDU5OiBIYW5kbGUgZXJyb3JzIHdoZW4gY291bnRpbmcKICAgaW50ZXJmYWNlcwoKMjAwOS0xMS0zMCAxNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyODk3MDAwOiBTdXBwcmVzcyAzMi1iaXQgY291bnRlciB0cnVuY2F0aW9uCiAgIHdhcm5pbmdzLgoKMjAwOS0xMS0zMCAxNTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAzMDkyOiBGaXggYnJva2VuIGhhbmRsaW5nIG9mIGJyb2FkY2FzdAogICBlbnRyaWVzLgoKMjAwOS0xMS0zMCAxNToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDEwMjk6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uCiAgIENsb3NlSGFuZGxlKCkKICAgRW5kaWFuIHByb2JsZW1zIGFscmVhZHkgYWRkcmVzc2VkIGJ5IHBhdGNoICMyODM1NTc2CgoyMDA5LTExLTMwIDE1OjEzICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI4OTA5MzE6IEJldHRlciBoYW5kbGluZyBvZiBDb3VudGVyNjQKICAgdmFsdWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggUm9tYW5vdi4KCjIwMDktMTEtMzAgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODg3ODE2OiBQcm90ZWN0IGFnYWluc3QgZGl2aXNpb24tYnktemVybwogICBjcmFzaAoKMjAwOS0xMS0zMCAxNTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMjIwOiBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbgogICBpZlhUYWJsZSBpcyBub3QgaW5jbHVkZWQuCgoyMDA5LTExLTMwIDE0OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMTU1OiBGaXggbWVtb3J5IGxlYWsgaW4gcHJveHkKICAgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEdvd3RoYW0gVGhvbW1hbmRyYS4KCjIwMDktMTEtMzAgMTQ6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMwOTI6IFN1cHBvcnQgbW9uaXRvcmluZyBwcm9jZXNzZXMgdGhhdAogICBzaG91bGQgbm90IGJlIHJ1bm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IENocmlzdGlhbiAoY2c3NSkuCiAgIAogICBRbjogU2hvdWxkIHRoaXMgZnVuY3Rpb25hbGl0eSBiZSBiYWNrLXBvcnRlZCB0byBlYXJsaWVyIGxpbmVzPwoKMjAwOS0xMS0zMCAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4Nzc1MTg6IEZpeCBoYW5kbGluZyBvZiBzY29wZWQgQWdlbnRYCiAgIHZhcmlhYmxlcwoKMjAwOS0xMS0zMCAxNDowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4MzU1NzY6IEZpeCBlbmRpYW5uZXNzIGlzc3VlcyBpbgogICBwYXNzL3Bhc3NfcGVyc2lzdAoKMjAwOS0xMS0yNyAwODo1NCAganNhZnJhbmVrCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmM6CgogICBSZW1vdmUgZXhlY3V0YWJsZSBhdHRyaWJ1dGUgZnJvbSBzb3VyY2UgZmlsZXMuCgoyMDA5LTExLTI1IDIwOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgYWxsIHRoZSBvaWRzIGFuZCBvaWQgbGVuZ3RocyBpbiBhZ2VudF90cmFwLmMKICAgY29uc3QgYW5kIHVzZSB0aGVtIGZyb20gZXZlcnl3aGVyZS4KCjIwMDktMTEtMjUgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnN0YWxsIGxpYnJhcnkvb2lkLmguIFRoYW5rcyB0byAiVG9tYXN6IExpcyIKICAgd2hvIHNwb3R0ZWQgdGhlIGJ1Zy4KCjIwMDktMTEtMjUgMDk6NDcgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIENvbW1lbnQtb25seSBjaGFuZ2U6IGNoYW5nZWQgdGhlIG5hbWUgaW4gdGhlIGZpbGUgaGVhZGVyIGZyb20KICAgdGVzdGhhbmRsZXIuaAogICB0byBpbnN0YW5jZS5oIHN1Y2ggdGhhdCBpdCBub3cgbWF0Y2hlcyB0aGUgZmlsZW5hbWUuCgoyMDA5LTExLTI0IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdAoKMjAwOS0xMS0yMyAwNzowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBlbnRlcnByaXNlIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2VuZF90cmFwcyBhbmQgc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBjb25zdAoKMjAwOS0xMS0yMyAwNzowMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIG5hbWUgYXJndW1lbnQgdG8gZmluZF92YXJiaW5kX2luX2xpc3QKICAgY29uc3QKCjIwMDktMTEtMjIgMjM6MjUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBSZW1vdmUgc29tZSBsb2NhbCByZWRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMKCjIwMDktMTEtMjIgMDE6MDMgIG1hZ2ZyCgogICAqICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZywgV2luMzI6IFJlbW92ZSBhIGZldyB1bnVzZWQgY29uZmlndXJlIHN5bWJvbHMKCjIwMDktMTEtMjEgMDg6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBSZXBsYWNlZCBhbiBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUgYnkgdGhlIHByb3BlciBjb250ZW50cy4KCjIwMDktMTEtMjAgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUmV2ZXJ0ZWQgYWNjaWRlbnRhbGx5IG1lcmdlZCBjaGFuZ2VzLgoKMjAwOS0xMS0yMCAxNjoyNiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDA5LTExLTIwIDE2OjE4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBDIHNvdXJjZSBjb2RlIGNvbW1lbnRzOiByZXBsYWNlZCAncmV0cml2YWwnIGJ5CiAgICdyZXRyaWV2YWwnLgoKMjAwOS0xMS0yMCAxNjoxNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCBhIG5hbWluZyBpbmNvbnNpc3RlbmN5OiByZXBsYWNlZCB0d28gb2NjdXJyZW5jZXMgd2luRXh0RGxsCiAgIGJ5IHdpbkV4dERMTCBpbiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMDktMTEtMTkgMjI6NTIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5MDAwNzg6IEFkZCBzdXBwb3J0IGZvciBPSUQgdmFyaWFibGVzIHdpdGgKICAgc2l6ZSBpbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGJ5dGVzLCBjb3JyZWN0IHN5c09iamVjdElEIHRvIHVzZQogICB0aGlzLgoKMjAwOS0xMS0xMyAxMjo1OSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGxvZ2dpbmcgb2YgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyCiAgIGJpdHMnIGluIElQLU1JQiBhbmQgVENQLU1JQgogICBUaGUgY291bnRlcnMsIHdoaWNoIGdyb3cgZmFzdCBhcmUgbm93IGN1dCB0byAzMmJpdHMuCgoyMDA5LTExLTEyIDA4OjI2ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgVXNlIGJpZyBwcmludGYncyBpbnN0ZWFkIG9mIG1hbnkgc21hbGwgb25lcyB0byBzYXZlIGEgZmV3IGh1bmRyZWQKICAgYnl0ZXMgb24gdGhlIGZpbmFsIGV4ZWN1dGFibGUgc2l6ZS4KCjIwMDktMTEtMTIgMDI6MjQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsICAgCiAgICAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX1JFUExBQ0VfRlVOQ1MgdG8gaGFuZGxlIGNvZGUgdGhhdCBpcwogICBtaXNzaW5nIG9uIHNvbWUgcGxhdGZvcm1zLgoKMjAwOS0xMS0xMSAwOTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggY2FjaGUgZnJlZSByb3V0aW5lIHRvIG1hdGNoIGhlYWRlciBkZWNsYXJhdGlvbi4KICAgUmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSB2YWx1ZXMgZnJvbSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIFByb2JsZW0gaWRlbnRpZmllZCBieSBYdWFuLgoKMjAwOS0xMC0zMCAwOTo1MSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTkVXUzogc25tcGxpYjogUmV2ZXJ0IDE3ODA4LCBpbnN0ZWFkIGZhY3RvciBvdXQgdGhlIGRlY2xhcmF0aW9uCiAgIG9mIG9pZCB0byBpdCdzIG93biBmaWxlIGFuZCBpbmNsdWRlIHRoYXQgZmlsZSBmcm9tIGJvdGggdHlwZXMuaAogICBhbmQgYXNuMS5oCgoyMDA5LTEwLTMwIDA4OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHNubXBuZXRzdGF0OiBBZGQgY29ycmVjdCBzaXplIHByZWZpeGVzCiAgIHdoZW4gcHJpbnRpbmcgdmFyaWFibGVzIG9mIHR5cGUgb2lkLgoKMjAwOS0xMC0zMCAwODowNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIG9pZCB0byBiZSBhIDMyLWJpdCB0eXBlIG9uIElMUDY0IGFuZAogICBMUDY0IHBsYXRmb3Jtcy4KCjIwMDktMTAtMzAgMDg6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIG9pZCB0eXBlZGVmIGZyb20KICAgPG5ldC1zbm1wL2xpYnJhcnkvYXNuMS5oPi4gSXQgaXMgc3RpbGwgcHJlc2VudCBpbgogICA8bmV0LXNubXAvdHlwZXMuaD4sIHVzZSB0aGF0IGZpbGUuCgoyMDA5LTEwLTI4IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRvbid0IHJlcXVpcmUgc3ViYWdlbnRfaW5pdCgpIGlmIG5vdCBvbmx5IGJ1aWxkaW5nIG1hc3RlciBhZ2VudAogICBjb2RlCgoyMDA5LTEwLTI3IDA2OjQ0ICBtYWdmcgoKICAgKiAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cyB0byB1X2NoYXIqCgoyMDA5LTEwLTE0IDIzOjEyICBtYWdmcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuCiAgIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgoKMjAwOS0xMC0xMiAyMDoyOCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgcnAgdmFyaWFibGUgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIG9uZS4KCjIwMDktMTAtMDkgMTI6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoyODcxNzQ3OiBwbHVnIG1lbW9yeSBsZWFrIGluIE9JRAogICBwcm9jZXNzaW5nLgogICBUaGUgbWVtb3J5IGxlYWtlZCB3aGVuIHNtYWxsIE9JRCwgd2hpY2ggY291bGQgZml0IHByZS1hbGxvY2F0ZWQKICAgdnAtPm5hbWVfbG9jLCB3YXMgcGxhY2VkIGluIGRpZmZlcmVudCAoYWxsb2NhdGVkKSBvbmUuCgoyMDA5LTEwLTA5IDA1OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBCVUc6IDI4MzgyNDM6IENvcnJlY3QgdGhlIG91dHB1dCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKYWNrIEh1YW5nIG9mIFF1YWxjb21tIHdobyBwb2ludGVkIG91dCB0aGlzIGJ1Zy4KCjIwMDktMTAtMDkgMDU6MDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgcGFyc2luZyBvZiByYW5nZXMgdG8gYWNjZXB0IGFsbAogICB2YWxpZCB2YWx1ZXMuCgoyMDA5LTEwLTA3IDIyOjI0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbWlzYzogUEFUQ0g6IDI4MzYxMTI6IFVzZSB0aGUgcmlnaHQgbW9kaWZpZXIgd2hlbgogICBwcmludGluZyBzaXplX3QgYW5kIHNzaXplX3QgdmFyaWFibGVzLgoKMjAwOS0xMC0wNyAxMjo1MCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyZWF0aW9uIG9mIHZpZXdzIHVzaW5nIHNubXB1c20sIE9JRHMgd2l0aAogICBpbmRleGVzID4gMjU1IGFyZSBhbGxvd2VkIG5vdy4KICAgVGhpcyByZXZlcnRzIFNWTiBjb21taXQgIzc0OTIuCgoyMDA5LTEwLTA1IDE5OjE5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgc3BlbGxpbmcgb2YgX19jcGx1c3BsdXMgd2hlbgogICBjaGVja2luZyBpZiB0aGUgZmlsZSBzaG91bGQgYmUgd3JhcHBlZCBpbiBleHRlcm4gIkMiLgoKMjAwOS0xMC0wNSAwNjoxMyAgbWFnZnIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBlbmQgb2lkIGlzIGxvbmdlcgogICB0aGFuIHRoZSBjdXJyZW50IG9pZCBjb3JyZWN0bHkKCjIwMDktMDktMzAgMTA6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYWNrYWdlIHZlcnNpb24KICAgaW5mb3JtYXRpb24gY3Jhc2hpbmcgdGhlIGFnZW50LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IElueWF2ZW4gU2FrYXJhaS4KCjIwMDktMDktMjcgMTQ6NTkgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzI6IEJpbmFyeSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIHNjcmlwdCB1cGRhdGVzLgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzMgLT4gVjUuNQoKMjAwOS0wOS0yMyAyMzo0MiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcmVtb3ZlIFNWTiBicmFuY2ggd29yZGluZwoKMjAwOS0wOS0yMyAyMzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcHJvcGVyIHByb2plY3QgY2FwaXRhbGl6YXRpb24KCjIwMDktMDktMjMgMjM6MzUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjIgMjE6NTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggdHlwb3MKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzIgLT4gVjUuNS5yYzMKCQoyMDA5LTA5LTE0IDIyOjM5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFpeCwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFBhdGNoIGZyb20gbWFnZnIgZm9yIDUuNSBzcGVjaWZpYyBhaXggYnVpbGQgZml4ZXMKCjIwMDktMDktMDIgMDc6MTIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW5hbWUgTUlCIG1hY3JvIHRvIE5FVFNOTVBfTUlCMl9PSUQsIE1JQiBpcwogICB0b28gZ2VuZXJpYyBhbmQgbWF5IGNvbmZsaWN0IHdpdGggYXBwbGljYXRpb25zLgogICAKICAgVGhlIG9sZCBNSUIgbWFjcm8gaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdW5sZXNzCiAgIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TIGlzIGRlZmluZWQuCgoyMDA5LTA4LTMxIDE5OjM4ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkaXRpb25hbCBSRkMgbWlicwoKMjAwOS0wOC0zMSAxOTozNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgSUFOQSBmaXhlZCBhIGJ1ZwoKMjAwOS0wOC0yOSAwNzoyOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOS0wOC0yOSAwNzoyOCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogcmV0IGlzIG9ubHkgdXNlZCBpbiBzZXR0YWJsZSB0YWJsZXMgc28gb25seSBkZWNsYXJlIGl0CiAgIHRoZW4uCgoyMDA5LTA4LTI5IDA3OjI0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZXBsYWNlIHRoZSBfb2lkX2xlbiB2YXJpYWJsZSB3aXRoIGFuIGV4cGxpY2l0IGNhbGwgb2YKICAgT0lEX0xFTkdUSC4KCjIwMDktMDgtMjkgMDc6MjEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IE1ha2UgZXZlcnkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgc3RhdGljIHN0YXRpYy4gUmVtb3ZlIHRoZQogICBkZWNsYXJhdGlvbnMgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoZSBwcml2YXRlIGRlZmluZXMgZnJvbQogICB0aGUgaGVhZGVyLgoKMjAwOS0wOC0yOSAwNzoxOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDktMDgtMjkgMDc6MTYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IG5ldHNubXBfdGFibGVfcmVnaXN0ZXIgc2hvdWxkIGJlIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUKICAgYW5kIHRha2Ugb25seSB0d28gYXJnbWVudHMuCgoyMDA5LTA4LTI5IDA3OjE0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBidWlsZF9vaWQgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG9pZC4gQ2hhbmdlIHRvCiAgIHVzZSBidWlsZF9vaWRfbm9hbGxvYyBhbmQgcmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBpbmRpY2VzLgoKMjAwOS0wOC0yOSAwNzoxMCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogVGhlcmUgaXMgbm8gaW5kZXhfb2lkX2xlbiBtZW1iZXIgaW4gc3RydWN0IGVudHJ5LiBVc2UgdGhlCiAgIGludGVuZGVkIGxvY2FsIHZhcmlhYmxlIGluZGV4X29pZF9sZW4uCgoyMDA5LTA4LTI5IDA3OjA2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBDb3JyZWN0IHRoZSByZXR1cm4gdHlwZSBvZiAke2l9X2dldCplbnRyeSB0byBtYXRjaCB0aGUKICAgcmV0dXJuZWQgdHlwZS4KCjIwMDktMDgtMjYgMjI6MzcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHdod29vcHM7IGJsZXcgdGhlIGNoYW5nZWxvZyBmb3IgcmMyCgoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucmMxIC0+IFY1LjUucmMyCgkKMjAwOS0wOC0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZWQgYmFzZWQgb24gbmV3IFNGIHVwbG9hZCBtZXRob2RzOyBubyBsb25nZXIgYXMgYXV0b21hdGFibGUKCjIwMDktMDgtMjYgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBKYW4gdG8gZW5kbGVzcyBsb29wIGluIGRlZmF1bHQgcm91dGVzCiAgIG9uIGxpbnV4CgoyMDA5LTA4LTI2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gSmFuIHRvIGZpeCBDKysgd3JhcHBlcgoKMjAwOS0wOC0yNiAxNDo1MyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgSW5pdGlhbCBzdGFiIGF0IGEgbWluaW1hbC1oZWxwZXIgKHJhdykgdGFibGUgdGVtcGxhdGUsCiAgIGxlYXZpbmcgbW9zdCBvZiB0aGUgd29yayB0byB0aGUgdXNlci1wcm92aWRlZCBNSUIgaGFuZGxlci4KCjIwMDktMDgtMjYgMTQ6NTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBib2d1cyBmYWlsdXJlcyAocmV0dXJuaW5nIDApIGFuZCBzdWJzZXF1ZW50CiAgIGRvdWJsZS1mcmVlcywKICAgZHVlIHRvIDE1LS8zMS1iaXQgbWFza2luZyB3aGVuIHNlbGVjdGluZyByZXF1ZXN0IElEcy4gSWRlbnRpZmllZAogICBieSBrcm9tZXNreS4KCjIwMDktMDgtMjAgMTM6MzAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwbHVnIGxlYWtzIGluIGlwSWZTdGF0c1RhYmxlLAogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZS4KICAgCiAgIEl0IHNlZW1zIHRvIG1lIHRoZSB0YWJsZXMgd2VyZSB3cm9uZ2x5IGdlbmVyYXRlZCB3aXRoCiAgIG0yY19kYXRhX2FsbG9jYXRlIG9yCiAgIHNvbWVvbmUgZm9yZ290IHRvIHJlbGVhc2UgdGhlIHVzZXIgcHJvdmlkZWQgZGF0YS4KCjIwMDktMDgtMTIgMTU6MDAgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGZpeCBsaWJ0b29sIHZlcnNpb24gaW4gTkVXUwoKMjAwOS0wOC0xMSAwMDo0MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgQ2hhbmdlTG9nOgoKICAgd2hvb3BzOyBhZGQgcmVhbCBjaGFuZ2Vsb2cgZW50ZXJpZXMgZm9yIC5yYzEKCjIwMDktMDgtMTAgMjM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZml4IHR5cG8gaW4gc3ZuMmNsIGxpbmUKCjIwMDktMDgtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDgtMTAgMjE6MzIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMyAtPiBWNS41LnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0xMCAyMToyMSAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMDcgMTA6MzIgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBDb3JyZWN0LCBjb25zb2xpZGF0ZSwgY2xhcmlmeSBhbmQgY2xlYW51cCB0aGUgY2F0YWxvZyBvZiBjdXJyZW50CiAgIGNoYW5nZXMuCgoyMDA5LTA4LTA2IDA3OjU3ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgb24gZXhlYyB2cyBleHRlbmQuCgoyMDA5LTA4LTA1IDIwOjA3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyODIyMzU1OiBGaXggbWVtb3J5IGxlYWtzIG9uCiAgIHVkcEVuZHBvaW50VGFibGUgKGxpbnV4KQogICBQYXRjaCBzdXBwbGllZCBieSBGcmFuayBMaWNodGVuaGVsZAoKMjAwOS0wOC0wNSAxOTowNSAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI4MjIzMzc6IEZpeCBtZW1vcnkgbGVhayBpbgogICBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwOS0wOC0wNSAxNToxNiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFdoZW4gZGVsZXRpbmcgcm93IGNvbnRleHQsIGRlbGV0ZSBhbHNvIGFzc29jaWF0ZWQgZGF0YS4KCjIwMDktMDgtMDUgMTU6MTUgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgVGhlIGNvbnRhaW5lciB1c2VkIHRvIHRyYWNrIGVudHJpZXMgdG8gZGVsZXRlIGZyb20gY2FjaGUgc2hvdWxkCiAgIGJlIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgbmVlZGVkLgoKMjAwOS0wOC0wNSAxNToxMiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBVRFAtIGFuZCBUQ1AtTUlCLgogICBUaGUgZGF0YSBmcm9tIHJhd19kYXRhIGFyZSBjb3BpZWQgdG8gY2FjaGUsIHNvIGl0IHNob3VsZCBiZQogICBmcmVlZC4KCjIwMDktMDgtMDUgMTA6MTYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDI4MTE1Nzc6IEZpeCBidWcgaW4gR2V0QnVsayBoYW5kbGluZy4KICAgRG9uJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGluZGV4IHZhbHVlcyB0aGF0IGNvbnRhaW4gYSAnOicgY2hhcmFjdGVyLgoKMjAwOS0wOC0wNCAyMTo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAyODI3MjY5OiBTdXBwcmVzcyBub24tb3JkZXJlZCBUT0RPIGNvbW1lbnRzLgoKMjAwOS0wOC0wNCAyMTozNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBzaW5nbGUgdGFibGUsCiAgIGFzIHdlbGwgYXMgYSBsYXJnZXIgZ3JvdXAuCiAgIEFsc28gYWRkcmVzc2VzIGJ1ZyAyMTUwMjg1CgoyMDA5LTA4LTA0IDIxOjE2ICBtYWdmcgoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBzbm1wbGliOiBmcm9tICJCYXJ0IHZhbiBBc3NjaGUgJiBNYWdudXMgRnJvbXJlaWRlIjogTW9yZSB1cGRhdGVzCiAgIHRvIHN0cnRvdWxsLmMKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy05p6La2VydCI6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aGVuCiAgIDY0LWJpdCBjb3VudGVycyBpbiBpcFN5c3RlbVN0YXRzVGFibGUgZ2V0IGJpZ2dlciB0aGFuIDJeMzIKCjIwMDktMDgtMDMgMTk6MjcgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjgyNzcyMjogZnJvbSAiQmFydCBWYW4gQXNzY2hlIjogSW1wcm92ZQogICBzdHJ0b3VsbCB0byBiZSBsZXNzIE1TVkMtc3BlY2lmaWMKCjIwMDktMDgtMDMgMTg6MzggIG1hZ2ZyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZSBmcm9tIHRoZSBzZXQgb2YgZmlsZXMgdGhhdCBzaG91bGQKICAgYmUgaW5zdGFsbGVkCgoyMDA5LTA3LTI3IDEyOjQxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDctMjcgMTI6MTEgIGhhcmRha2VyCgogICAqIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlCgoyMDA5LTA3LTI3IDEyOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogZnJlZWJzZDogcGF0Y2ggZnJvbSBDZXphcnkgTW9yZ2EgdG8gZml4IGEgbWFrZSB0ZXN0IG9uCiAgIGZyZWVic2QKCjIwMDktMDctMjcgMTI6MDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDctMjcgMTE6NTIgIGhhcmRha2VyCgogICAqICBGQVEsIE5FV1MsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wNy0yNyAwODozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHJldmVydCBhY2NpZGVudGlhbGx5IGFwcGxpZWQgcGF0Y2gKCjIwMDktMDctMjcgMDg6MzcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIGFkZGVkIGEgdGVzdCBjYXNlIGZvciB1ZHAvZHRscwoKMjAwOS0wNy0yNyAwODozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgcmVxdWlyZSBhIHNlc3Npb24gdG8gY2FycnkgYSBzZWNOYW1lCgoyMDA5LTA3LTI2IDIxOjM0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgZm9yIFdvcmtzcGFjZSBidWlsZC4KCjIwMDktMDctMjYgMTg6MjAgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtQWRkZWQgc3RydG91bGwgZnVuY3Rpb24gYW5kIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzdGVtcyB3aXRob3V0CiAgIGl0IHN1Y2ggYXMgV2luMzIgTVNWQyA2CiAgIC1XaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgLSByZXF1aXJlcyBuZXcgc3RydG91bGwuYyBmaWxlCiAgIC1XaW4zMjogTmV3IGJ1aWxkLWJpbmFyeSBzY3JpcHQgdG8gc2ltcGxpZnkgYnVpbGRpbmcgdGhlIFdpbmRvd3MKICAgYmluYXJ5IHBhY2thZ2UuCgoyMDA5LTA3LTI1IDA1OjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIE1ha2Ugc3VyZSBhIG1lc3NhZ2UgaXMgd3JpdHRlbiBpZiB0aGUgcmVsZXZhbnQgdGFibGUgaXMgbWlzc2luZy4KCjIwMDktMDctMjMgMjE6MjkgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZW1haWwgYWRkcmVzcyBpbiBSRUFETUUuCgoyMDA5LTA3LTIzIDAxOjA3ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA4KyBmaXhlcy4KCjIwMDktMDctMjMgMDA6NTUgIGFsZXhfYgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA1KyBidWlsZCBmaXhlcy4gVGhhbmtzIHRvIEJhcnQgVmFuIEFzc2NoZS4KCjIwMDktMDctMjEgMTI6MjIgIGR0czEyCgogICAqICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5yb3cuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQWRkIHNpbXBsZSBkZWJ1ZyBvdXRwdXQgdG8gbWliMmMgdGVtcGxhdGVzLgoKMjAwOS0wNy0yMSAxMjoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IG1pc3Npbmcgc2VtaWNvbG9uIHR5cG9zLgoKMjAwOS0wNy0yMSAwOToxNSAgZHRzMTIKCiAgICogRkFROgoKICAgTmV3IHN1Z2dlc3RlZCBlbnRyaWVzLgoKMjAwOS0wNy0yMCAxOToyNCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT0RJTkcgc2VjdGlvbi4KCjIwMDktMDctMjAgMTE6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLmg6CgogICBBZGQgbWlzc2luZyBoZWFkZXIgZmlsZSBmcm9tIHBhdGNoICMyMDUzMjczLgoKMjAwOS0wNy0xOSAxNTowOSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT01QSUxJTkcgc2VjdGlvbi4KCjIwMDktMDctMTYgMTI6MzggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIEFkZCBJUHY2IG9jdGV0IGNvdW50ZXJzLgogICBOZXcgTGludXgga2VybmVscyAoZS5nLiAyLjYuMzEtcmMyLCBtYXliZSBzb21lIGVhcmxpZXIpIHByb3ZpZGUKICAgY291bnRlcnMgZm9yCiAgIGluY29taW5nL291dGdvaW5nIElQdjYgdHJhZmZpYyBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcElmU3RhdHNUYWJsZS4KCjIwMDktMDctMTUgMjI6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHB1dCB0ZW1wb3JhcnkgZGF0YSB0byB3aGVyZSB0aGV5IGJlbG9uZwoKMjAwOS0wNy0xMSAyMTo1MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICByZWdlbmVyYXRlIGNvbmZpZ3VyZQoKMjAwOS0wNy0xMSAyMTowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgRnJlZUJTRCk6IGFkanVzdCBrdm0gY29uZmlndXJlIHRlc3RzCgoyMDA5LTA3LTEwIDEyOjM1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hlY2sgSVB2NiBwb3J0IHJhbmdlcyBpbiB0aGUgc2FtZSB3YXkgYXMgSVB2NCBwb3J0cyBhcmUgY2hlY2tlZC4KCjIwMDktMDctMTAgMDc6NDYgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYzoKCiAgIEZpeCBhbm90aGVyIElQdjQgYWRkcmVzcyBzaXplIC0gbG9uZyBoYXMgOCBieXRlcyBvbiA2NGJpdCBMaW51eC4KICAgQWxzbyBmaXggdGhlIGRlZmF1bHQgdHlwZSBmb15DQVNOX0lQQUREUkVTUyBpbiBtaWIyYywgc28gdGhlCiAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMgY2FuIGJlIHNhZmVseSByZWdlbmVyYXRlZC4KCjIwMDktMDctMDkgMjM6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgY2xlYW51cCBvZiB0ZXN0aW5nIGNhc2VzIHRvIHJlbW92ZSBkb3VibGUgaW5jbHVkZSBhbmQgZG91YmxlCiAgIGV4cG9ydHMKCjIwMDktMDctMDkgMjM6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzAwdWRwOgoKICAgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBUQ1AvSVB2NCB0ZXN0CgoyMDA5LTA3LTA5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIG5ldyB0ZXN0cyBmb3IgdGVzdGluZyBkZWZpbmVkIHRyYW5zcG9ydHMKCjIwMDktMDctMDkgMjI6MTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGEgQ09ORklHQVBQIG1hY3JvIGZvciBhZGRpbmcgc3R1ZmYgdG8gc25tcC5jb25mCgoyMDA5LTA3LTA4IDE1OjEyICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggZ2V0aG9zdGJ5YWRkciBwYXJhbWV0ZXIsIG5ldHNubXBfdWRwX2ZtdGFkZHIgbmV2ZXIgcmV0dXJuZWQgYQogICBob3N0bmFtZS4KCjIwMDktMDctMDcgMTU6NDYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBJUCBhZGRyZXNzIGxlbmd0aCBvbiA2NCBiaXQgc3lzdGVtcyBpbiBtaWJJSSwgcGFzcyBhbmQKICAgcGFzc19wZXJzaXN0IG1vZHVsZXMuCgoyMDA5LTA3LTA3IDE1OjI0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFVzZSBjb3JyZWN0bHkgc2l6ZWQgSVAgYWRkcmVzc2VzIGluIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGUKICAgcHJvY2Vzc2luZyAtIHVfbG9uZyBjYW4gbWFrZSBwcm9ibGVtcyBvbiBiaW4gZW5kaWFuIDY0IGJpdAogICBzeXN0ZW1zCgoyMDA5LTA2LTI5IDEzOjUyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgcmVtb3ZlIGVudHJ5IGZvciBhIHBhdGNoIHRoYXQgZ290IHJldmVydGVkCgoyMDA5LTA2LTI1IDE1OjI0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTW92ZSBub24tY29yZSBkYXRhIHR5cGVzIGludG8gYSBzZXBhcmF0ZSAobGlicmFyeSBpbnRlcm5hbHMpCiAgIGhlYWRlciBmaWxlLgogICBNb3ZlIHRoZSBsYXJnZV9mZF9zZXQgZGF0YSBzdHJ1Y3R1cmUgaW50byB0aGlzIGhlYWRlciBmaWxlLgoKMjAwOS0wNi0xOCAyMjoyOSAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhbGxvdyBidWlsZGluZyB3aXRoIFBlcmwgdmVyc2lvbnMgdGhhdCBsYWNrCiAgIFBFUkxfRVhJVF9ERVNUUlVDVF9FTkQKCjIwMDktMDYtMTggMjI6MTMgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGJ1aWxkIGZpeCBmb3IgVHJ1NjQgVW5peCBhbmQgSVJJWDogbW92ZSBfWE9QRU4qCiAgIGRlZmluaXRpb25zIHRvIHdoZXJlIHRoZXkgYXJlIGluIDUuNC54IGFuZCBlYXJsaWVyCgoyMDA5LTA2LTE4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDbGVhbiB1cCAtLXdpdGgtbmwgY29uZmlndXJhdGlvbgogICAqICBNb3ZlIHRoZSBfQVJHX1dJVEggdG8gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgIDIwMDktMDYtMTYgMTU6MTcKICAgICAgIHJzdG9yeQoKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYmVmb3JlIGRlcmVmCgoyMDA5LTA2LTE1IDIzOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYWRkIGNvbW1lbnQgZXhwbGFpbmluZyBub3QgcXVpdGUgb2J2aW91cyBsYWNrIG9mIG1lbW1vdmUKCjIwMDktMDYtMTUgMTk6MzIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFJlbW92ZSAjaWYgMCBjb21tZW50ZWQgY29kZQoKMjAwOS0wNi0xNSAxNToyNSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBBR0VOVCBzZWN0aW9uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUyIC0+IFY1LjUucHJlMwoKMjAwOS0wNi0xMyAwMToxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI1NjQ1NTI6IGZyb20gYWhtYWtlOiBwcm92aWRlIGxpYm5ldGxpbmsKICAgc3VwcG9ydCBmb3IgbG9hZGluZyB0aGUgdGNwIHRhYmxlCgoyMDA5LTA2LTEyIDE5OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQwMDEwMTogcmVtb3ZlIGRlbGV0ZWQgaW50ZXJmYWNlcyBmcm9tCiAgIGlmVGFibGUKCjIwMDktMDYtMTEgMjM6MDkgIGhhcmRha2VyCgogICAqICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIENIQU5HRVM6IHdpbjMyOiBQQVRDSDogMjY5Mzc0NjogZnJvbSBidmFzc2NoZTogaW1wcm92ZWQgc29ja2V0CiAgIHN0YXJ0dXAgc3VwcG9ydAoKMjAwOS0wNi0xMSAyMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDEyNDAyOiBkb24ndCBmYWlsIG9uIGZhaWx1cmUgdG8gbG9vayB1cAogICBpbnRlcmZhY2UgZXJyb3IgY291bnRlcnMuCgoyMDA5LTA2LTExIDIyOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICByZXZlcnQgcHJldmlvdXMgY29tbWl0IHRvIG1ha2UgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJhY2sgdG8KICAgdGhlaXIgcmVndWxhciBpbnNhbmUgb3JkZXJpbmc7IEkgZG9uJ3QgbGlrZSB0aGlzIHNpdHVhdGlvbiBhdCBhbGwKCjIwMDktMDYtMTEgMjE6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbGFyZ2VfZmRfc2V0LmggYmVmb3JlIHR5cGVkZWZpbmcgc29tZXRoaW5nIGJhc2VkIG9uIHRoZQogICBzdHJ1Y3R1cmUKCjIwMDktMDYtMDMgMTI6MzUgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMjc5Mzg1NzogUmVwb3J0IGZhaWxlZCBhc3luY2hyb25vdXMKICAgcmVxdWVzdHMuCgoyMDA5LTA2LTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBSZW1vdmUgcGF0Y2ggIzIxODI1OTIgLSByZXZlcnQgdG8gU1ZOIHJldmlzaW9uIDE3NjQ2CiAgIFRoZSBjbGVhbnVwIHJvdXRpbmVzIGRvbid0IGFwcGVhciB0byBleGlzdC4KCjIwMDktMDYtMDMgMTA6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjE4MjU5MjogQ2xlYW4gdXAgdmFjbUNvbnRleHRUYWJsZSBhZnRlcgogICB1bnJlZ2lzdHJhdGlvbnMKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9obiBGb3JzeXRoCgoyMDA5LTA2LTAzIDEwOjEyICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjc5NzI1MTogU3VwcG9ydCBtdWx0aXBsZSBpbml0aWFsaXNhdGlvbiBhbmQKICAgc2h1dGRvd24sIGZpeCBtZW1vcnkgbGVha3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSXZvc2gKCjIwMDktMDYtMDEgMTU6NTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkVHUzogZG9jczogUEFUQ0hFUzogMjc4ODA3MjogRG9jdW1lbnQgJ2xvZ21hdGNoJwogICBmdW5jdGlvbmFsaXR5LgoKMjAwOS0wNi0wMSAxNTo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDI3ODA0MTE6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAwOS0wNi0wMSAxNTozNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwgbTQvbGlidG9vbC5tNCwgICAKICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3M6IFBBVENIOiAyNzk1NzM5OiBGaXggaW5jb3JyZWN0IGRpc2svZmlsZSBzaXplCiAgIGRlc2NyaXB0aW9ucyAmIHVuaXQgc3BlY2lmaWVycwoKMjAwOS0wNi0wMSAxMzoxMSAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFJld29yayBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBtYXRjaCBjdXJyZW50IHNubXBkLmNvbmYoNSkKICAgc3RydWN0dXJlLAogICBhbmQgbW9yZSBjbGVhcmx5IGlsbHVzdHJhdGUgY3VycmVudCBiZXN0IHByYWN0aXNlLgoKMjAwOS0wNS0zMCAwNjo1OCAgbWFnZnIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgaW5jbHVkZS4KCjIwMDktMDUtMjkgMDk6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaDoKCiAgIEF1dG9tYXRpY2FsbHkgbG9hZCB0aGUgZXhhbXBsZSBwYXNzdGVzdCBNSUIKCjIwMDktMDUtMjkgMDk6MDggIGR0czEyCgogICAqICBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvcGFzc3Rlc3QucGwsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0OgoKICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZXMgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cywKICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgTUlCIHN0cnVjdHVyZSBmb3Igb3V0cHV0LgogICBBZGQgYW4gZXhhbXBsZSBNSUIgdG8gZGVmaW5lIHRoYXQgc3RydWN0dXJlLgoKMjAwOS0wNS0yOCAxMjo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBNSUJzIHNlY3Rpb24KCjIwMDktMDUtMjggMTE6NTYgIGR0czEyCgogICAqIEZBUToKCiAgIFR3ZWFrIHBocmFzaW5nIG9mIGFuIChvdmVybG9uZykgcXVlc3Rpb24gaW4gdGhlIFBlcmwgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMTozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTmV3IGVudHJ5IGluIHRoZSBBcHBsaWNhdGlvbnMgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMDo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBBcHBsaWNhdGlvbnMgc2VjdGlvbgoKMjAwOS0wNS0yNyAxNToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBHRU5FUkFMIHNlY3Rpb24uCgoyMDA5LTA1LTE5IDE3OjUwICBhbGV4X2IKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgVXBkYXRlIFBlcmwgVHJhcFJlY2VpdmVyIGV4YW1wbGUgdG8gcHJvcGVybHkgb3V0cHV0IHRoZQogICBzZWN1cml0eUVuZ2luZUlEIGFuZCBjb250ZXh0RW5naW5lSUQuCgoyMDA5LTA1LTE4IDEwOjAzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgoKMjAwOS0wNS0xNSAxOToyMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAyNzgyNzAwOiBidWlsZCBmYWlsdXJlIHdoZW4gdXNpbmcKICAgLS13aXRoLXBrY3Mgb24KICAgU29sYXJpcwoKMjAwOS0wNS0xNSAxNDo1OSAganNhZnJhbmVrCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvZiBycG0gcGFja2FnZXMgb24gRmVkb3JhID49IDEwIC0gaXQgaGFzIG5ld2VyCiAgIFJQTSBhbmQgdGhlIG9sZCBBUEkgbmVlZHMgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGJ5IGEgbWFjcm8uCgoyMDA5LTA1LTE0IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFRoZSBzbm1wY21kIG1hbiBwYWdlIGlzIG5vdCBzcGVjaWZpYyBob3cgcmFuZ2Ugb2YgbG9nIHByaW9yaXRpZXMKICAgc2hvdWxkIGJlIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUsCiAgIGkuZS4gYm90aCAtTE8gNC0wIGFuZCAtTE8gMC00IGFyZSB2YWxpZC4gQWxsIHNubXAgY29tbWFuZHMgKGluY2wuCiAgIHNubXBkKSBzaG91bGQgcmVjb2duaXplIHRoYXQuCgoyMDA5LTA1LTE0IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBbGxvdyAibW9uaXRvciIgdG8gaGFuZGxlIG5lZ2F0aXZlIHRocmVzaG9sZAogICB2YWx1ZXMuCiAgIFJlcG9ydGVkIGJ5IFJpY2hhcmQgR2lwcHMuCgoyMDA5LTA1LTEzIDIyOjMyICB0YW5kZXJzCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNzkxNDE3OiBmaXggc25tcGQgc2VnZmF1bHQgd2hlbiBydW4gd2l0aAogICAtREFMTAogICBQYXRjaCBzdXBwbGllZCBieSBSb24gUm9za2Vucy4KCjIwMDktMDUtMTMgMDg6MDIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQnJpbmcgZG9jdW1lbnRhdGlvbiBvZiBub3RpZmljYXRpb25FdmVudCBzeW50YXggaW50byBsaW5lIHdpdGgKICAgcmVhbGl0eS4KICAgKFVzZXMgIi1tIiByYXRoZXIgdGhhbiAiLW4iIHRvIHJlZ2lzdGVyIHN0YW5kYXJkIE1JQiBwYXlsb2FkCiAgIG9iamVjdHMpCiAgIEluY29uc2lzdGVuY3kgcmVwb3J0ZWQgYnkgUmljaGFyZCBHaXBwcy4KCjIwMDktMDUtMTAgMjE6MTIgIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogQWRkZWQgYXV0b21hdGljIG1hbmlmZXN0IG1lcmdpbmcgd2l0aCBtdC5leGUgZm9yIE1TVkMgMjAwOAogICBldGMuCgoyMDA5LTA1LTA4IDEzOjEyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzOiBXaW4zMjogQWRkIHN1cHBvcnQgZm9yIFdpbmRvd3MgNywgVmlzdGEgYW5kIDIwMDggZm9yCiAgIHdpbkV4dERMTC4KCjIwMDktMDUtMDggMDI6MDcgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIERMTC4KCjIwMDktMDUtMDcgMjM6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmM6CgogICBidWlsZCBmaXggZm9yIEhQLVVYOiBpbmNsdWRlIDxzeXMvcGFyYW0uaD4gZm9yIERFVl9CU0laRQoKMjAwOS0wNS0wNyAwNToxMSAgbmJhCgogICAqIGFnZW50L3NubXBfcGVybC5oOgoKICAgVXBzLCBtaXNzZWQgYSBuZXcgcHJvdG90eXBlIGhlYWRlcgoKMjAwOS0wNS0wNiAyMjoyNiAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQSBtYW4gbGluZSBjYW5ub3Qgc3RhcnQgd2l0aCBhICcKCjIwMDktMDUtMDYgMjI6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBJUHY2IGFkcmVzc2VzIGFyZSBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkIHRoZW4gMzJiaXRzCgoyMDA5LTA1LTA2IDIyOjA2ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQKCjIwMDktMDUtMDYgMjI6MDIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgVHJpdmlhbCB3YXJuaW5nIGZpeGVzCgoyMDA5LTA1LTA2IDIyOjAwICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBIbW1tLCBJQU5BIGZpeGVkIHRoZWlyIGJ1ZyB0b28KCjIwMDktMDUtMDYgMjE6NTkgIG5iYQoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZW1haWwgdG8gY3VycmVudAoKMjAwOS0wNS0wNiAyMTo1OSAgbmJhCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBUcml2aWFsIHdhcm5pbmcgZml4ZXMKCjIwMDktMDUtMDYgMjE6NDkgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIGNvbnRleHRFbmdpbmVJRCBpcyBhIGhleHN0cmluZywgbm90IGFuIG9iamVjdCBpZGVudGlmaWVyCgoyMDA5LTA1LTA2IDIxOjQ1ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvaW50NjQuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGZvcm1hdCB3YXJuaW5ncyBmcm9tIGRlYnVnIG91dHB1dAoKMjAwOS0wNS0wNiAyMDo0NSAgbmJhCgogICAqIG1pYnMvc21pc3RyaXA6CgogICBQcm9wZXJseSByZWNvZ25pemUgbWVzc2FnZSBzeW50YXggbW9kdWxlcyAodG8gYmUgYWJsZSB0byBpZ25vcmUKICAgdGhlbSkKCjIwMDktMDUtMDYgMjA6MzYgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgdXBkYXRlcwoKMjAwOS0wNS0wNiAyMDozNSAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgU3ludGF4IGZpeCBmb3IgY3VycmVudCBJQU5BLVBSSU5URVItTUlCCgoyMDA5LTA1LTA2IDIwOjM0ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KCjIwMDktMDUtMDQgMTM6NDcgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIERMTC4KCjIwMDktMDUtMDEgMTU6NDMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTkVXUzogc25tcGxpYjogU3RvcCB1c2luZyBhIGZpeGVkIHN0cmluZyBmb3IgaW5kZW50YXRpb24uIFJlbW92ZQogICB0aGUgREVCVUdJTkRFTlQoKSBtYWNybyAodGhhdCBkaWQgbm90aGluZykuIENoYW5nZSB0aGUgbWVhbmluZyBvZgogICB0aGUgaW50ZXJuYWwgX19EQkdJTkRFTlQoKSBtYWNybyB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzcGFjZXMKICAgdG8gaW5kZW50IGluc3RlYWQgb2YgYSBzdHJpbmcgdGhhdCByZXByZXNlbnQgdGhlIGluZGVudGF0aW9uCiAgIGxldmVsLiBEZXByZWNhdGUgdGhlIGRlYnVnX2luZGVudCBmdW5jdGlvbi4KCjIwMDktMDQtMzAgMDY6NTcgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHN0YXRpYyB3YXRjaGVyX2luZm8gZm9yIGFsbCB3YXRjaGVkIHZhcmlhYmxlcwogICBhbmQgaW4gaW50X3dhdGNoLgoKMjAwOS0wNC0zMCAwNjo0MSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgaW5pdGlhbGl6YXRpb24gZnJvbSBhbGxvY2F0aW9uIGZvcgogICBuZXRzbm1wX3dhdGNoZXJfaW5mbyBzdHJ1Y3R1cmVzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gdXNlCiAgIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGRhdGEuCgoyMDA5LTA0LTMwIDA2OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBBZGQgbWlzc2luZyByZXR1cm4gdmFsdWUuCgoyMDA5LTA0LTMwIDAwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBEVExTIHN1cHBvcnQ7IHNlbWkgZG9jdW1lbnQgdGhlIFNTSCBzdXBwb3J0IGFuZAogICBkb2N1bWVudCB0aGUgLXMgc3dpdGNoIHRvIG1hbnkgVkFDTSBzZXR0aW5ncwoKMjAwOS0wNC0yOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IGNvbm5lY3Rpb24gb3BlbmluZyBlcnJvcnMgYW5kIGZyZWUgbWVtb3J5IG9uCiAgIGZhaWx1cmVzCgoyMDA5LTA0LTI5IDEyOjE5ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBVcGRhdGUgZGVmaW5lcyBmb3IgX1dJTjMyX1dJTk5UIGFuZCBOVERESV9WRVJTSU9OIHRvCiAgIHN1cHBvcnQgV2luZG93cyAyMDAwIGFuZCBoaWdoZXIgYW5kIGFkZCBJUFY2IGRlZmluZSB0byBhbGxvdyBJUFY2CiAgIGNvZGUgdG8gY29tcGlsZS4KCjIwMDktMDQtMjggMDY6MzQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgc25tcGQsIExpbnV4OiBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOS0wNC0yOCAwNjowNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIHNubXBkOiBBZGQgbWlzc2luZyBhcmd1bWVudCB0byBwcmludGYtbGlrZSBjYWxsLgoKMjAwOS0wNC0yOCAwNTo1MyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgc25tcGQ6IE1hcmsgbW9yZSBvaWRzIGFzIGNvbnN0LgoKMjAwOS0wNC0yOCAwNTo1MSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzCiAgIGxvY2F0ZWQuCgoyMDA5LTA0LTI4IDAxOjEyICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogTVNWQzogT25seSB1c2UgV2luZG93cyBBUEkgZnVuY3Rpb25zIGF2YWlsYWJsZSBvbiBXaW5YUCBvcgogICBiZWZvcmUgKElQVjYpIG9yIDIwMDAgb3IgYmVmb3JlIChubyBJUFY2KS4KCjIwMDktMDQtMjYgMjM6MzAgIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBSZW1vdmUgbWFjaGluZSB0eXBlIG9mIEkzODYgZnJvbSBMSU5LMzJfRkxBR1MgdG8gYWxsb3cKICAgY29tcGlsaW5nIHdpdGggTVNWQyAyMDA4IGFzIGVpdGhlciAzMiBvciA2NC1iaXQuCgoyMDA5LTA0LTI2IDE3OjM4ICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBNU1ZDIDIwMDguIENvcHkgYW5kIGNsZWFudXAKICAgbWFuaWZlc3QgZmlsZXMuCgoyMDA5LTA0LTI2IDE1OjIxICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBSZS1lbmFibGUgcGFzcyBhbmQgcGFzc19wZXJzaXN0IENvdW50ZXI2NCBmb3IgTVNWQy4KCjIwMDktMDQtMjYgMTQ6MzQgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCB3aW4zMi9idWlsZC5wbCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBNU1ZDIDIwMDguIElGVFlQRSBpcyBkZWZpbmVkIGJ5CiAgIE1TVkMgMjAwOCwgc28gaW50ZXJmYWNlcy5jIHZhcmlhYmxlcyB3ZXJlIGNoYW5nZWQgdG8gTkVUU05NUF8uCgoyMDA5LTA0LTI2IDEzOjA2ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogVXBkYXRlIGJ1aWxkIGluc3RydWN0aW9ucyBpbiBjb21tZW50cy4KCjIwMDktMDQtMjQgMTM6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggdGhlIEFTTl9PUEFRVUUgcGF0Y2ggdGhhdCB3YXMgY29tbWl0ZWQgd2l0aG91dCBwcm9wZXIgZGlmZgogICBjb250ZXh0CgoyMDA5LTA0LTI0IDA3OjMxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ0hBTkdFUzogSFAtVVg6IEJVRzogMjc3OTQ3MjogRmlsZXN5c3RlbXMgbWlzc2luZyBpbiBoclN0b3JhZ2UKICAgdGFibGUgb24gSFAtVVggMTEuMzEKICAgKGFsbG93IGZvciBtbnR0YWIgdGhhdCBpcyBhIGNoYXJhY3RlciBzcGVjaWFsIGRldmljZSkKCjIwMDktMDQtMjQgMDE6MzYgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBCVUc6IDI3Nzk1NDEgRml4ZWQgaGFuZGxlIGxlYWsgaW4gcGFzc19wZXJzaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUxIC0+IFY1LjUucHJlMgoKMjAwOS0wNC0yMyAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIGZpeCBDKysgc3R5bGUgY29tbWVudHMKCjIwMDktMDQtMjMgMjI6MjUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDQtMjMgMjI6MjMgIGhhcmRha2VyCgogICAqICBtYW4vY29uZmlnX2FwaS4zLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBpbml0aWFsIGRveHlnZW4gZXh0cmFjdHMgZm9yIHRoZSBuZXcgaGVhZGVycwoKMjAwOS0wNC0yMyAyMjoxOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA0LTIzIDIyOjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgaW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gZmFpbGluZyB0byBvcGVuIG1udHRhYgoKMjAwOS0wNC0yMyAyMjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENIQU5HRVM6IEhQLVVYOiBCVUc6IDI3Nzk0NzI6IEZpbGVzeXN0ZW1zIG1pc3NpbmcgaW4gaHJTdG9yYWdlCiAgIHRhYmxlIG9uCiAgIEhQLVVYIDExLjMxCgoyMDA5LTA0LTIzIDIxOjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAyNzUxNTg4OiBJbmNvbnNpc3RlbnQgZGF0YSAoZS5nLiBVRFAvVENQCiAgIE1JQgogICBzY2FsYXIgdmFsdWVzIG9mIHplcm8pIGNhbiBiZSByZXBvcnRlZCBvbiBTb2xhcmlzIDEwVTQrCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZGVycyBQZXJzc29uCgoyMDA5LTA0LTIzIDE3OjMwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkwMTc2NDogZnJvbSBrcmlzenRvZm9ybyBmb3Igc3VwcG9ydGluZwogICBsb2d3YXRjaCBmaWxlcyB0aGF0IGFyZSBkYXRlIGJhc2VkCgoyMDA5LTA0LTIzIDE3OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBQQVRDSCAxOTU2MTkzOiBmcm9tIGNhY295bGU6IGJldGEgdGhyZWFkYWJsZSBwZXJsCiAgIG1vZHVsZSBjb2RlIGZvciBTTk1QdjEvU05NUHYyYyB1c2FnZS4KCjIwMDktMDQtMjMgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IHNvbGFyaXM6IFBBVENIOiAyMDEyNDA0OiBkZWFsIHdpdGggbW9yZSB0aGFuIDEwCiAgIGludGVyZmFjZXMuIE5ldyBoYXJkY29kZWQgbGltaXQgaXMgNTAuIEEgYmV0dGVyIHNjYWxpbmcgcGF0Y2gKICAgd291bGQgYmUgYXBwcmVjaWF0ZWQgOi0pCgoyMDA5LTA0LTIzIDE2OjQ3ICBoYXJkYWtlcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBkb2N1bWVudCB0aGF0IHRoZSBldGhlcmxpa2UtbWliIGhhcyBhbiBpbXBsZW1lbnRhdGlvbgoKMjAwOS0wNC0yMyAxNjo0MCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyMDUzMjczOiBmcm9tIG5hcmVuZHJhX2tfZGVsbCB0byBpbWxwZW1lbnQKICAgdGhlIGV0aGVybGlrZSBtaWIgKGF0IGxlYXN0IG9uIGxpbnV4KQoKMjAwOS0wNC0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDIxMzY0Mzc6IG1ha2UgRkxBRyBkZWZpbmVzIG1vcmUgNjRiaXQKICAgZnJpZW5kbHkgd2hlbiBodWdlIHRhYmxlcyBhcmUgZW5jb3VudGVyZWQKCjIwMDktMDQtMjMgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jOgoKICAgQ0hBTkdFUzogaHB1eDogUEFUQ0g6IDIwODg3MjY6IGZyb20gcmF2aW5kcmExMTAzIHRvIGZpeCBhbiBpc3N1ZQogICB3aXRoIGhwdXggcmVwb3J0aW5nIG1lbW9yeSBpbiBuZWdhdGl2ZSB2YWx1ZXMuCgoyMDA5LTA0LTIzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMDc0ODE3OiBmcm9tIGZlbm5lciB0byBmaXggcmVnZXhwIGVuZ2luZQogICBDUFUgcGVyZm9ybWFuY2UgaXNzdWVzCgoyMDA5LTA0LTIzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjE2MjY1MjogcGF0Y2ggdG8gZml4IHNpbXBsZSBocmZzIGNoZWNrcwogICB3aGVuIE5GUyBpcyBpbiB1c2UuCgoyMDA5LTA0LTIzIDE2OjExICBoYXJkYWtlcgoKICAgKiAgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9Gb3JtYXQucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIxODIwNzk6IGFwcGx5IHBhdGNoIGZyb20gaW50MzIgdG8gZml4IGEKICAgbnVtYmVyIG9mIHBlcmwgd2FybmluZ3MgYW5kIGZpeCB0aGUgbW9kdWxlcyBzbyB0aGF0IHVzZSBzdHJpY3QgaXMKICAgcG9zc2libGUKCjIwMDktMDQtMjMgMTU6NTggIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIAogICAgICAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjE4NDAzOTogbWlzYyBmaXhlcyBmb3IgZnJlZWluZyBtZW1vcnkKICAgZHVyaW5nIGVycm9yIGNvbmRpdGlvbnMuCgoyMDA5LTA0LTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMzYxNzEyOiBmcm9tIGticmludCB0byBmaXggZ2V0YnVsawogICBvcHRpbWl6YXRpb24gZHVyaW5nIHdhbGtzIHdoZXJlIGVuZCBjb25kaXRpb25ucyBhcmUgbWV0IG9uIG1pZGRsZQogICBPSURzIGZpcnN0LgoKMjAwOS0wNC0yMyAxNTozNSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFJFQURNRSBUaGFua3MgdXBkYXRlCgoyMDA5LTA0LTIzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIFR1c2hhciBHb2hhZCB0byBjbGVhbiB1cCBub3RpZmljYXRpb24KICAgcmVnaXN0ZXJhdGlvbnMgZHVyaW5nIGRpc21hbiBldmVudCBtaWIgY2xlYW51cCBwcm9jZXNzaW5nLgoKMjAwOS0wNC0yMyAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gU0NUUCBjb250YWluZXJzLgoKMjAwOS0wNC0yMyAwODoyOSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV0c25tcF9sYXJnZV9mZF9zZXQgaXMgcHJvYmFibHkgYmVzdCByZWdhcmRlZCBhcyBhbiAib3BhcXVlIgogICBkYXRhCiAgIHN0cnVjdHVyZSwgYW5kIGlzbid0IHJlYWxseSBpbnRlbmRlZCBmb3IgZGlyZWN0IG1hbmlwdWxhdGlvbi4KICAgTW92ZSBpdCBiYWNrIGludG8gdGhlIDxsaWJyYXJ5L2xhcmdlX2ZkX3NldC5oPiBoZWFkZXIgZmlsZS4KICAgKExpa2UgaXQgd2FzIGJlZm9yZSBEYXZlIHN0dWNrIGhpcyBvYXIgaW4uLi4uKQoKMjAwOS0wNC0yMyAwODoxOSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGdWVydGhlciBpbXByb3ZlbWVudHMgdG8gdGhlIGxhcmdlIEZEIHNldCBzdXBwb3J0CiAgIChTZWUgcGF0Y2ggIzI3NzI3ODcpCgoyMDA5LTA0LTIzIDA2OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmg6CgogICBidWlsZGluZzogVXNlIGNvbmZpZ19lcnJvciguLi4pIGluc3RlYWQgb2YKICAgY29uZmlnX3JlcXVpcmUobm9uLWV4aXN0aW5nKSB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMyAwNjo0MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oOgoKICAgc25tcGxpYiwgTGludXg6IE1vdmUgZ2V0X3BpZF9mcm9tX2lub2RlIHRvIGl0J3Mgb3duIGZpbGUgYW5kIG9ubHkKICAgY29tcGlsZSBpdCBpZiBuZWVkZWQsIGFsc28gcmVuYW1lIGl0IHRvCiAgIG5ldHNubXBfZ2V0X3BpZF9mcm9tX2lub2RlLgoKMjAwOS0wNC0yMyAwNDozMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9zbm1wZC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDMxMzUzIGZyb20gaG5yb3NlIHRvIG1ha2Ugc29tZSBDKysKICAgY29tcGlsZXJzIGhhcHBpZXIKCjIwMDktMDQtMjMgMDM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MDU0ODg6IGZyb20gZGFib2tleSB0byBmaXggYWxhcm1zIG5vdAogICBiZWluZyB0cmlnZ2VyZWQgYXQgdGhlIHJpZ2h0IHRpbWVzIGR1ZSB0byBsYXJnZSBjbG9jayBza2V3cy4KCjIwMDktMDQtMjMgMDA6MDEgIGhhcmRha2VyCgogICAqICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBORVdTOiBzbm1wbmV0c3RhdDogUEFUQ0g6IDI1NjQ1Mzg6IGZyb20gYWhtYWtlIHRvIHN1cHBvcnQgR0VUQlVMSwogICBpbiB2MmMrIHNubXAgdmVyc2lvbnMKCjIwMDktMDQtMjIgMjM6NDkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHBvcnRzOiBQQVRDSDogMjY4ODM0MjogZnJvbSBhaG1ha2UgdG8gZml4IHZhcmlvdXMKICAgY29tcGlsZXIgd2FybmluZwoKMjAwOS0wNC0yMiAyMzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyNzYzNzE6IGZyb20gZmhldyB0byBhbGxvdyBwZXJsIHRvIHVzZQogICBPUEFRVUVzCgoyMDA5LTA0LTIyIDIzOjE3ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjc3NTgwMDogZnJvbSBBZGFtIFJvbWFuZWsgdG8gYWxsb3cKICAgcHl0aG9uIHRocmVhZGluZyB0byBjb250aW51ZSB3aGVuIGEgcmVxdWVzdCBpcyBzZW50CgoyMDA5LTA0LTIyIDIyOjExICBhbGV4X2IKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzI6CgogICBVcGRhdGUgVEhBTktTIHNlY3Rpb24uCgoyMDA5LTA0LTIyIDIxOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGb2xkIHRoZSBmdW5jdGlvbiBleHRyYWN0X2lub2RlLiB3aXRoIG9ubHkgb25lIHVzZXIsIGludG8gaXQncwogICB1c2VyLgogICBSZW1vdmUgdGhlICNkZWZpbmUgRklMRV9ESVNQLCB3aXRoIG9ubHkgb25lIHVzZXIsIHdpdGggdGhlIGFjdHVhbAogICB2YWx1ZS4KCjIwMDktMDQtMjIgMjE6MDMgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGggU01VWCBlbmFibGVkLgoKMjAwOS0wNC0yMiAxMzo0MyAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgQWRkIGEgbm90ZSBob3cgdGhlIG5ldyBSTU9OLU1JQiBpbXBsZW1lbnRhaW9uIHdvcmtzCgoyMDA5LTA0LTIyIDEzOjQxICBkdHMxMgoKICAgKiBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBGaWxsIG91dCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgVmFyYmluZC1yZWxhdGVkIEFQSSBjYWxscy4KCjIwMDktMDQtMjIgMTM6MzcgIGpzYWZyYW5lawoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi5oLCBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2VudW1zLmgsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfb2lkcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyMTAzNDkyOiBpbXBsZW1lbnQKICAgUk1PTi1NSUI6OmV0aGVyU3RhdHNKYWJiZXJzCiAgIFBhdGNoIGZyb20gTmFyZW5kcmEgSy4sIFNhbmRlZXAgSy4gU2hhbmRpbHlhIGFuZCBTaHlhbSBJeWVyCgoyMDA5LTA0LTIyIDEwOjA4ICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIENvcnJlY3QgYSBzZXJpb3VzbHkgbWlzbGVhZGluZyAoaS5lLiB3cm9uZykgZGVzY3JpcHRpb24gb2YgdGhlCiAgIHB1cnBvc2UKICAgYW5kIGJlaGF2aW91ciBvZiB0aGUgcHJpbnRfZGVzY3JpcHRpb24gZmFtaWx5IG9mIGNhbGxzLgoKMjAwOS0wNC0yMiAwOTozMiAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBGdXJ0aGVyIHBvbGlzaGluZyBvZiB0aGUgZGVzY3JpcHRpb25zIG9mIE1JQi1yZWxhdGVkIEFQSSBjYWxscy4KCjIwMDktMDQtMjIgMDc6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSByYW5nZSBjaGVja3MuCiAgIChUaGVzZSBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIGxhcmdlX2ZkX3NldCByb3V0aW5lcyB0aGVtc2VsdmVzKS4KCjIwMDktMDQtMjEgMjM6MjcgIGFsZXhfYgoKICAgKiAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgd2luMzI6IEZpeCBXaW5kb3dzIGJ1aWxkIGVudmlyb25tZW50IHRvIHN1cHBvcnQgcGF0Y2ggMjc3Mjc4Ny4KCjIwMDktMDQtMjEgMTU6MzMgIGR0czEyCgogICAqICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2aXNlZCB2ZXJzaW9uIG9mIHBhdGNoICMyNzcyNzg3CgoyMDA5LTA0LTIxIDE1OjE1ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgCiAgICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgVW5kbyByZXZpc2lvbiAxNzUxNQogICAoYnJva2VuL2luY29tcGxldGUgcGF0Y2gpCgoyMDA5LTA0LTIxIDE0OjM3ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgCiAgICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI3NzI3ODc6IENsZWFuZXIgYXBwcm9hY2ggdG8gaGFuZGxpbmcKICAgbGFyZ2UgZmRfc2V0cy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNC0yMSAxNDozNCAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgUHJvcGVybHkgZ2VuZXJhdGUgbmV3IGNvcmUgQVBJIG1hbiBwYWdlcy4KCjIwMDktMDQtMjEgMDk6MzggIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oOgoKICAgRmlyc3QtY3V0IGF0IGlkZW50aWZ5aW5nIHRoZSBjb3JlIE5ldC1TTk1QIEFQSSBjYWxscy4KICAgTW92ZSB0aGVzZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSB0b3AtbGV2ZWwgaGVhZGVyIGZpbGVzLgoKMjAwOS0wNC0yMSAwOTozNiAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgICAKICAgICAgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWY6CgogICBSZW5hbWUgY29uZmlnL3Nlc3Npb24gQVBJIG1hbiBwYWdlcywgaW4gbGluZSB3aXRoIG90aGVyIGNvcmUgQVBJCiAgIHN0cnVjdHVyZS4KCjIwMDktMDQtMjEgMDk6MzIgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIERvY3VtZW50IChvciByZXN0cnVjdHVyZSkgdGhlIGNvcmUgQVBJIGVsZW1lbnRzLgogICBBbGlnbiB0aGlzIG9yZ2FuaXNhdGlvbiB3aXRoIHRoZSBmaXJzdC1jdXQgcmVzdHJ1Y3R1cmluZwogICBvZiB0aGUgbWFpbiBoZWFkZXIgZmlsZXMuCgoyMDA5LTA0LTIwIDEwOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTa2lwIGZpbGUgaGFuZGxlcyB0aGF0IGFyZSB0b28gbGFyZ2UgZm9yIGZkX3NldCB0byBjb3BlIHdpdGguCiAgIEEgc2ltcGxlIGZpeCBmb3IgdGhlIGltbWVkaWF0ZSBwcm9ibGVtIGFkZHJlc3NlZCBieSBwYXRjaAogICAjMTYyNzA0OS4KCjIwMDktMDQtMjAgMTA6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnQgcGF0Y2ggIzE2MjcwNDkgKGV4dGVuc2lvbiB0byBkZWFsIHdpdGggbGFyZ2UgZmlsZQogICBoYW5kbGVycykuCiAgIFNlZSB0aGUgZGlzY3Vzc2lvbiBvbiB0aGF0IHRyYWNrZXIgZW50cnkgZm9yIGJhY2tncm91bmQgYXMgdG8KICAgd2h5LgoKMjAwOS0wNC0yMCAwMDo1OSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAKICAgICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgd2luMzI6IEJ1aWxkIGZpeGVzIGZvciBXaW5kb3dzLiBwYXNzIGFuZCBwYXNzX3BlcnNpc3Qgc3RpbGwgbmVlZAogICB0byBiZSBmaXhlZCB0byBzdXBwb3J0IENvdW50ZXI2NCBvbiBXaW5kb3dzLgoKMjAwOS0wNC0yMCAwMDo0OCAgYWxleF9iCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB3aW4zMjogU3luYyBuZXQtc25tcC1jb25maWcuaC5pbiBhbmQgbmV0LXNubXAtY29uZmlnLmgKCjIwMDktMDQtMTcgMjE6MjEgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbHRtYWluLnNoLCBtNC9saWJ0b29sLm00LCAKICAgICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBVcGdyYWRlIGxpYnRvb2wgdmVyc2lvbiB0byAyLjIuNiBpbiBvcmRlciB0byB3b3JrCiAgIGFyb3VuZCBhIGJ1Z2xldCB0aGF0IG1hZGUgYXV0b3JlY29uZiAtdmlmIGVyYXNlIGNvbmZpZy5zdWIgYW5kCiAgIGNvbmZpZy5ndWVzcy4KCjIwMDktMDQtMTQgMjE6NTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTk3Njc3MjogQ2hhbmdlZCB0aGUgbWliIHBhcnNlciB0byBoYW5kbGUKICAgbG9uZyBiaW5hcnkgYW5kIGhleCBzdHJpbmdzLgoKMjAwOS0wNC0xMSAxMjo1MiAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgc3VnZ2VzdCB0cnVuY2F0aW9uIG9mIENoYW5nZUxvZy5yZWFsbHlhZGQKCjIwMDktMDQtMTAgMjM6MTggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSCAyNjkxODc2OiBBcHBsaWVkIHBhdGNoIGJ5IHJkaWV6IHRvIGFsbG93CiAgIGNvbXBpbGluZyB0aGUgc2VydmljZXMgdXNpbmcgdW5pY29kZS4KCjIwMDktMDQtMTAgMjI6NTUgIGFsZXhfYgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgV2luMzI6IFBBVENIIDI2ODgzMDk6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlIHRvIHJlbW92ZQogICBNU1ZDIDIwMDUvMjAwOCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDktMDQtMTAgMjE6NDUgIGFsZXhfYgoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsICAgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIFdpbjMyOiBNaW5vciBidWlsZCBhbmQgcmVhZG1lIHVwZGF0ZXMuCgoyMDA5LTA0LTEwIDIxOjM4ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBORVdTOiBXaW4zMjogUEFUQ0ggMjY4NjI0ODogQXBwbGllZCBwYXRjaCBieSBCYXJ0IFZhbiBBc3NjaGUKICAgd2hpY2ggZml4ZXMgc2V2ZXJhbCB3aW5FeHRETEwgYnVncy4KCjIwMDktMDQtMTAgMjA6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlc3RvcmUgYW5ub3lpbmcgbG9nIG1lc3NhZ2UsIGJ1dCBmaXggY2F1c2Ugb2YgaXQgb24gIWZyZWVic2QKICAgc3lzdGVtcwoKMjAwOS0wNC0wOSAxMjoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTUwNzMwOiBSZXBvcnQgZXJyb3JzIGZyb20gaXRlcmF0b3ItYmFzZWQKICAgaGFuZGxlcnMuCiAgIEJhc2VkIG9uIGEgcGF0Y2ggcHJvdmlkZWQgYnkgV2F5bmUgR2xhbnR6CgoyMDA5LTA0LTA5IDExOjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTI0Mjg4OiBGaXggc2V0dGluZyBvZgogICB1c21Vc2VyUHJpdlByb3RvY29sIGF0IGNyZWF0aW9uLgogICBMb2dpYyBidWcsIHJlcG9ydGVkIGJ5IFJhbWVzaCBLb3RhYmFnaQoKMjAwOS0wNC0wOSAwOToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjI1ODIyOTogUmVtb3ZlIG1pc2xlYWRpbmcgY29tbWVudAogICBQYXRjaCBwcm92aWRlZCBieSBEYW4gQW5kZXJzb24KCjIwMDktMDQtMDkgMDk6MDggIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMjYwODI4OiBGaXggcHl0aG9uIHNubXB3YWxrIG1lbW9yeSBsZWFrCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEdhYnJpZWxlIE1lc3NpbmVvCgoyMDA5LTA0LTA5IDA4OjU4ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjI3MjM0NzogSW1wbGVtZW50ICJpbXBsaWVkIiBpbiBNSUIgaGFzaAogICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKMjAwOS0wNC0wOSAwODo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMjMxNjEyNzogRml4IGJ1ZyBpbiBpdGVyYXRlX2FjY2VzcwogICBnZW5lcmF0ZWQgY29kZS4KCjIwMDktMDQtMDkgMDg6NDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDM1NjgxOiBFbmFibGUgaWYtbWliIHJld3JpdGUgKHdpdGgKICAgc3lzY3RsIGJhY2tlbmQpIG9uIE5ldEJTRAoKMjAwOS0wNC0wOSAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzNTc5MzogU3VwcG9ydCA2NC1iaXQgSUYtTUlCIGNvdW50ZXJzIG9uCiAgIHN5c2N0bCAoKkJTRCkgc3lzdGVtcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgSmFuIEFuZHJlcwoKMjAwOS0wNC0wOSAwODowMCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzCgoyMDA5LTA0LTA4IDIzOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBtb3ZlIGNvbW1lbnRzIHRvIGEgcGxhY2Ugd2hlcmUgdGhleSBhcmUgbGVnYWwKCjIwMDktMDQtMDggMjM6MDMgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gcmVuYW1lIG5ldyBnZXRSZXF1ZXN0b3JJcCB0byBnZXRTb3VyY2VJUCBhbmQgZ2V0VGFyZ2V0SXAgdG8KICAgZ2V0RGVzdElwCiAgIC0gcmVtaW5kIHRoYXQgdGhpcyBpcyBmdWxseSB0cmFuc3BvcnQtc3BlY2lmaWMsIGkuZS4gVURQL0lQdjQKICAgb25seSEKCjIwMDktMDQtMDggMTY6MDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjM4NDc3OTogRml4IGhhbmRsaW5nIG9mIEdldEJ1bGsgd2l0aAogICBOPjAsTT09MAogICBQYXRjaCBwcm92aWRlZCBieSBBbmd1cyBTYWxrZWxkCgoyMDA5LTA0LTA4IDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MDYzNzg6IEZpeCBoclNXUnVuUGVyZk1lbSBvbiA2NC1iaXQKICAgU29sYXJpcyBzeXN0ZW1zCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5Ud29PCgoyMDA5LTA0LTA4IDE1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI0Nzk3MDA6IEZpeCB6b25lZCBJUCBhZGRyZXNzIHVzZWQgYXMKICAgdGFibGUgaW5kaWNlcwogICBQYXRjaCBwcm92aWRlZCBieSBCcmlhbiBSZXRmb3JkLgoKMjAwOS0wNC0wOCAxNTozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNDkyMzc3OiBGaXggdHlwby9idWcgaW4KICAgc25tcF9lbmFibGVfY2FsbGJhY2soKQogICBSZXBvcnRlZCBieSBqb3ljZWFubWFjaGluZQoKMjAwOS0wNC0wOCAxNToyOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjUwNzI0OTogc2N0cC1taWIgc3VwcG9ydCBmb3IgRnJlZUJTRC4KCjIwMDktMDQtMDggMTU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNTM4MTY5OiBQcmV2ZW50IGluZmluaXRlIHJldHJpZXMgZm9yIGFuCiAgIGludmFsaWQgZXJyb3ItaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERvdWcgTWFubGV5CgoyMDA5LTA0LTA4IDE0OjU4ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjU4MDk3OTogRml4IHB5dGhvbiBzZXNzaW9uIHBvaW50ZXJzIG9uCiAgIDY0LWJpdCBzeXN0ZW1zLgogICBQYXRjaCBwcm92aWRlZCBieSBKb2huIEtodmF0b3YuCgoyMDA5LTA0LTA4IDE0OjQ5ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNjY3NDE1OiBTdXBwb3J0ICJVc2VOdW1lcmljIiBvcHRpb24uCiAgIFJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IGluICJzbm1wd2FsayIgY29tbWFuZC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRGllZ28gQmlsbGkKCjIwMDktMDQtMDggMTQ6MzQgIGR0czEyCgogICAqICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDI3MjYzMDI6IFBhc3MgcmVzdWx0cyBvZiBQZXJsIHRyYXAKICAgaGFuZGxlcnMgdG8gdHJhcCBkYWVtb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWljaGFlbCBTY2htaXR6CgoyMDA5LTA0LTA4IDE0OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNzEzODQxOiBGaXggcnVudGltZSBlcnJvcnMgdHJpZ2dlcmVkIGJ5CiAgIGhpZ2gtQVNDSUkgY2hhcnMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCgoyMDA5LTA0LTA4IDE0OjI0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI3MDk3MDU6IFJldHJpZXZlIHNyYy90YXJnZXQgSVAgYWRkcmVzcyBpbgogICBQZXJsLWJhc2VkIGFnZW50cwogICBQYXRjaCBwcm92aWRlZCBieSBmaGV3CgoyMDA5LTA0LTA4IDE0OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjY4OTM2MjogRml4IGhhbmRsaW5nIG9mIElQdjYgaG9zdG5hbWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBOZXN0b3IgTWVsby4KCjIwMDktMDQtMDggMTQ6MDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI2ODgzNDU6IEZpeCBuZXRzbm1wX2Fzc2VydCgpIGZvciBWaXN1YWwKICAgU3R1ZGlvCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQoKMjAwOS0wNC0wOCAxMzozNSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjY4NjI4MDogUmVwb3J0IGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIGFzCiAgIGFuIGVycm9yIChyYXRoZXIgdGhhbiBhIGZhaWxlZCBhc3NlcnRpb24pLgogICBGaXggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCiAgIAogICBRbjogRG9lcyB0aGlzIGV2ZW4gcXVhbGlmeSBhcyBhbiBlcnJvcj8gV291bGRuJ3QgYSB3YXJuaW5nIGJlCiAgIHN1ZmZpY2llbnQ/CgoyMDA5LTA0LTA2IDE5OjMzICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgc25tcGxpYjogTWFrZSB0aGUgbm9kZSBzdHJ1Y3QgcHJpdmF0ZS4gSGlkZSB0aGUgb3JoYW5fbm9kZXMKICAgdmFyaWFibGUuCgoyMDA5LTA0LTA2IDE4OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIHNubXBkLHBlcmw6IElmIG15X3BlcmwgaXMgTlVMTCB3aGVuIHBhc3NlZCB0byBwZXJsX2Rlc3RydWN0IHRoZW4KICAgdGhhdCBmdW5jdGlvbiBjcmFzaGVzIGZvciBzb21lIHBlcmwgdmVyc2lvbnMgc28gY2hlY2sgdGhhdCBpdCBpcwogICBub24tbnVsbCBiZWZvcmUgZGVzdHJveWluZyBpdC4KCjIwMDktMDQtMDYgMTg6NDIgIG1hZ2ZyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBwZXJsOiBBdm9pZCBzdXJwcmlzZXMgaWYgdGhlIHBlcmwgc3RyaW5nIGNvbnRhaW5zIHByaW50ZiBlc2NhcGUKICAgY2hhcmFjdGVycy4KCjIwMDktMDQtMDYgMTg6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFByb3BlciBjaGVjayBmb3IgZW1wdHkgcHJvY2VzcyBzdGF0dXMgZmlsZS4KICAgKEF2b2lkcyB0cnVuY2F0ZWQgd2FsayBvZiBoclNXUnVuUGF0aCBvbiBTdVNFIHN5c3RlbXMpCiAgIFJlcG9ydGVkIGJ5IEthbWlsIEtpc2llbC4KCjIwMDktMDQtMDYgMTE6NTggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90eXBlbWFwOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IGZyb20geGFuY286IHJldmlzZWQgZml4IGZvciB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvCiAgIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuIE5vdyBwYXNzZXMgIm1ha2UgdGVzdCIgYW5kICJtYWtlCiAgIHBlcmx0ZXN0Ii4KCjIwMDktMDQtMDUgMTA6MDUgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDktMDQtMDUgMDk6NTMgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIE1ha2UgZXZlbiBtb3JlIHZhcmlhYmxlcyBhbmQgdGVtcGxhdGVzIGNvbnN0LgoKMjAwOS0wNC0wNCAyMjoxMyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oOgoKICAgc25tcGQ6IE1ha2UgbW9yZSBsb2NhbCB2YXJpYWJsZXMgY29uc3QgYW5kIGxvY2FsLgoKMjAwOS0wNC0wNCAxMDowNyAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywgbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFyayB0aGUgcmVjb25maWcgdmFyaWFibGUgYXMgc3RhdGljIHNpbmNlIGl0IGlzIHByaXZhdGUgdG8gdGhlCiAgIG1vZHVsZS4KCjIwMDktMDQtMDQgMTA6MDMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgTWFyayB0aGUgZmlsZSBzY29wZSBwcml2YXRlIHZhcmlhYmxlIG1pbmltdW1fc3dhcCBhcyBzdGF0aWMuCgoyMDA5LTA0LTA0IDA5OjU4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgc25tcGxpYjogTWFrZSBtb3JlIHN5bWJvbHMgY29uc3QgaW4gb3JkZXIgdG8gbW92ZSB0aGVtIHRvCiAgIHJlYWRvbmx5IG1lbW9yeS4KCjIwMDktMDQtMDIgMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IEJVRyAxMTI2OTQ6IFBhdGNoIGZyb20gQmlsbCBGZW5uZXI6IGRvbid0IG9wZW4gKGFuZAogICBjbG9iYmVyKSBhbiBhZ2VudHggc29ja2V0IGlmIHRoZSBvdGhlciB0cmFuc3BvcnRzIGZhaWwgdG8gb3BlbgoKMjAwOS0wNC0wMSAyMzo0MSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMzowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA0LTAxIDIzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICBjb252ZXJ0IGNvbW1lbnRzIHRvIEFOU0kgY29tbWVudHMKCjIwMDktMDQtMDEgMjI6MjEgIGhhcmRha2VyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMjowMyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNCAtPiBWNS41LnByZTEKCjIwMDktMDQtMDEgMjE6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIHVwZGF0ZXMgZm9yIFNTSAoKMjAwOS0wNC0wMSAxOTozOSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgdGhlIHNyYyBwb2ludGVyIG9mIHNubXBfY2xvbmVfbWVtIGEgcG9pbnRlciB0byBjb25zdGFudC4KCjIwMDktMDQtMDEgMTg6MjMgIGhhcmRha2VyCgogICAqIGFwcHM6CgogICBpZ25vcmUgJ3NzaHRvc25tcCcKCjIwMDktMDQtMDEgMTc6MzEgIGhhcmRha2VyCgogICAqICBhcHBzL3NzaHRvc25tcC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBtYW4vc25tcGQuOC5kZWYsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jOgoKICAgTWFrZSBzc2ggdHJhbnNwb3J0IHN1cHBvcnQgdXNlIGEgdW5peCBzb2NrZXQgd2l0aCBwcm9wZXIKICAgY3JlZGVudGlhbCBwYXNzaW5nCgoyMDA5LTA0LTAxIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBtYWtlIHRoZSBleGVjIGNhY2hlIHJlYWRhYmxlIG9ubHkgYnkgdGhlIHVzZXIKCjIwMDktMDQtMDEgMTc6MjggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBtb3ZlIHN0cmluZyB0byB1aWQvZ2lkIGZ1bmN0aW9uYWxpdHkgdG8gc25tcGxpYiBmb3IgcmV1c2UKCjIwMDktMDMtMzEgMTU6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJhbGFuY2UgcGFyZW50aGVzZXMgaW4gY2FjaGUtYmFzZWQgcmVnaXN0cmF0aW9uIGNvZGUuCgoyMDA5LTAzLTMxIDE1OjA3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCdXQgdGhleSdyZSBub3QgQyBjb21tZW50cyBhdCBhbGwsIERhdmUuCiAgIFRoZXkgYXJlIG1pYjJjIHRlbXBsYXRlIGNvbW1lbnRzLAogICBhbmQgc2hvdWxkIGJlIG9taXR0ZWQgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvZGUuCiAgIDxzaWdoPgoKMjAwOS0wMy0zMSAxNTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQyBjb21tZW50cyB1c2UgLyogLi4uICovLCBub3QgIwoKMjAwOS0wMy0zMSAwODowNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aXRoIGdsaWJjIDwgMi40LCBJQ01QdjYgbWVzc2FnZSB0eXBlcyBzdGFydGluZwogICB3aXRoIE1MRF8qIGhhdmUgZGlmZmVyZW50IG5hbWUgdGhlcmUuCgoyMDA5LTAzLTI0IDA2OjA0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRG8gbm90IGNvbXBpbGUgdGhlIHBhcnRzIHRoYXQgZGVwZW5kIG9uIGxpYnNzbCBpZiBsaWJzc2wgaXMKICAgbWlzc2luZy4KCjIwMDktMDMtMjMgMDk6MjEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIE5FV1M6IHNubXBkOiBpcE5ldFRvUGh5c2ljYWxMYXN0VXBkYXRlZCBPSUQgaW1wbGVtZW50ZWQKICAgCiAgIFRoZSB2YWx1ZSBpcyBlc3RpbWF0ZWQgd2l0aCBldmVyeSBjYWNoZSByZWxvYWQsIHdoaWNoIGlzIG9uY2UgaW4KICAgNjAgc2Vjb25kcyBieSBkZWZhdWx0LgogICBUaGF0IG1lYW5zIHRoZSB2YWx1ZSByZXBvcnRlZCBieSBzbm1wZCBtYXkgZGlmZmVyIGZyb20gcmVhbGl0eSBieQogICBvbmUgbWludXRlLgogICBJZiBhbnlib2R5IG5lZWRzIGJldHRlciBwcmVjaXNpb24sIHRoZSBjYWNoZSB0aW1lb3V0IGNhbiBiZQogICBjb25maWd1cmVkIGJ5IHNldHRpbmcKICAgTkVULVNOTVAtQUdFTlQtTUlCOjpuc0NhY2hlVGltZW91dC4xLjMuNi4xLjIuMS40LjM1IHRvCiAgIGFwcHJvcHJpYXRlIHZhbHVlIGJ5IHNubXBzZXQuCgoyMDA5LTAzLTIwIDE5OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgZml4IGxhY2sgb2Ygd3JhcHBpbmcgbGluZXMgcHJvYmxlbQoKMjAwOS0wMy0yMCAxODozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGNvbmZpZyBvcHRpb25zLCBldGMsIGZvciBTU0ggYW5kIERUTFMKCjIwMDktMDMtMjAgMTg6MjQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICBjdXJyZW50bHkgbWluaW1hbCBkb2N1bWVudGF0aW9uIG9uIGR0bHMgYW5kIHNzaAoKMjAwOS0wMy0yMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc3NodG9zbm1wLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBBZGRlZCBhbHBoYSBzbm1wIG92ZXIgc3NoIHN1cHBvcnQKCjIwMDktMDMtMjAgMTY6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHRoZSBzZWMgbmFtZSBsZW5ndGgsIG5vdCBqdXN0IHRoZSBjb250ZW50cwoKMjAwOS0wMy0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBzZXF1ZW5jZSBwYXJzaW5nIGZpeAoKMjAwOS0wMy0yMCAxNTo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZsYWcgdG8gYWxsb3cgZm9yIHNpZ25hbGxpbmcgb2YgbGVnYWwgZW1wdHkgcGFja2V0cwogICBmcm9tIGEgdHJhbnNwb3J0CgoyMDA5LTAzLTE4IDE5OjQyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbXBpbGUgYWdhaW4uCgoyMDA5LTAzLTE4IDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBjcHVfbGludXg6IGF2b2lkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE4IDEwOjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBsaW51eDogaW5jcmVhc2Ugc2l6ZSBvZiBpbml0aWFsIHByb2MgaS9vIGJ1ZmZlcgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdzCgoyMDA5LTAzLTE4IDEwOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBtZW1vcnlfbGludXg6IGF2b2lkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xOCAxMDoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4IHZhbGdyaW5kIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE3IDIyOjU3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgUEFUQ0g6IDI2ODgzNDI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IFVzZSBwcm9wZXIgZnVuY3Rpb24KICAgcG9pbnRlcnMKCjIwMDktMDMtMTMgMjE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUHJvY2VzcyBock1lbW9yeVNpemUgKHNjYWxhcikgc2VwYXJhdGVseSBmcm9tIGhyU3RvcmFnZVRhYmxlLgogICBUaGlzIHNpbXBsaWZpZXMgdGhlIGhhbmRsZXIgY29kZSBzdHJ1Y3R1cmUuCgoyMDA5LTAzLTEzIDIxOjIzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUmVnaXN0ZXIgQ1BVL21lbW9yeSBoYXJkd2FyZSBtb2R1bGVzIHdpdGgKICAgbnNDYWNoZVRhYmxlLgogICBBbGxvd3MgbW9uaXRvcmluZyBmcmVxdWVuY3kgdG8gYmUgY29uZmlndXJlZCBkeW5hbWljYWxseS4KCjIwMDktMDMtMTMgMjE6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXZvaWQgZGl2MCBjcmFzaC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBOaWNrIEhpbmRsZXkKCjIwMDktMDMtMTMgMjE6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIFNraXAgbmV3IENQVXMsIHRoYXQgaGF2ZSBhcHBlYXJlZCBzaW5jZSB0aGUgYWdlbnQgZmlyc3Qgc3RhcnRlZC4KICAgKEFuIGFsdGVybmF0aXZlIG1pZ2h0IGJlIHRvIGNyZWF0ZSBhIG5ldyBlbnRyeSBpbnN0ZWFkKS4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBOaWNrIEhpbmRsZXkKCjIwMDktMDMtMTAgMTU6MjUgIGpzYWZyYW5lawoKICAgKiBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIE5FV1M6IHNubXBkOiBpcEFkZHJlc3NTcGluTG9jayBpbXBsZW1lbnRlZAoKMjAwOS0wMy0wMiAxMToyMyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIEZpeCBhdHRyaWJ1dGlvbiBvZiBsYXRlc3QgY29weXJpZ2h0IG5vdGljZS4KCjIwMDktMDItMjggMTg6MjEgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW92ZSB0aGUgI2RlZmluZSBjb25maWdfKiguLi4pIGZyb20gYWNjb25maWcuaCB0byB0aGUgY29uZmlndXJlCiAgIHNjcmlwdCBzbyB0aGF0IHRoZXkgYXJlIG5leHQgdG8gdGhlIGNvZGUgdGhhdCBoYW5kbGUgdGhlCiAgIGNvcnJlc3BvbmRpbmcgY29uZmlnXyogdG9rZW4uCgoyMDA5LTAyLTI3IDEzOjIwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBHZXQgcmlkIG9mIGFubm95aW5nICdkaXNraW8uYzogZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIDkKICAgcmVxdWVzdCcgaW4gbG9nLgogICBJdCdzIGJlaW5nIHdyaXR0ZW4gdG8gbG9nIGV2ZXJ5dGltZSBzb21lb25lIHF1ZXJpZXMKICAgVUNELVNOTVAtRElTS0lPIE1JQi4KCjIwMDktMDItMjUgMDY6NDEgIG1hZ2ZyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIFVzZSB0aGUgZmVhdHVyZSB0ZXN0IG1hY3JvcyB0byBzZXQgd2hhdCBpcyBuZWVkZWQuCiAgIERvIG5vdCB1c2UgdGhlIGludGVybmFsIEdOVSBsaWJjIG1hY3JvcyB0aGF0IGFyZSBzZXQgYnkgc2V0dGluZwogICB0aGUgZmVhdHVyZSB0ZXN0IG1hY3Jvcy4KCjIwMDktMDItMjUgMDY6MzggIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGUuCgoyMDA5LTAyLTI0IDA3OjI2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogTWFrZSAtTE4gc3RvcCBkdW1waW5nIGNvcmUuIE1ha2UgYmFkIGRlYnVnIGxldmVscyByZXBvcnQKICAgdGhlIG9mZmVuZGluZyBzeW1ib2wuCgoyMDA5LTAyLTI0IDA2OjUwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTW92ZSB0aGUgZGlyZWN0b3J5IGNyZWF0aW9uIGNvZGUgdG8gaGFwcGVuIGFmdGVyIHRoZSBkb21haW4KICAgc2VsZWN0aW9uIGNvZGUgc28gdGhhdCB0aGUgZGlyZWN0b3J5IGNyZWF0aW9uIGNvZGUga25vd3Mgd2hhdAogICBkaXJlY3RvcnkgdG8gY3JlYXRlLgoKMjAwOS0wMi0yNCAwNjo0NyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENoYW5nZSB0aGUgZXJyb3IgY2hlY2tpbmcgb3B0aW9uIC0tZW5hYmxlLW15c3FsIHRvIHN1Z2dlc3QgdGhhdAogICB0aGF0IC0td2l0aC1teXNxbCBpcyB1c2VkIHJhdGhlciB0aGF0IC0td2l0aC1vcGVuc3NsLgoKMjAwOS0wMi0yNCAwNjo0NCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZSBhdXRvY29uZiBhcnRpZmFjdHMuCgoyMDA5LTAyLTIzIDE4OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfc3FsLmM6CgogICBhZGQgZm9yZ290dGVuIGZpbGUKCjIwMDktMDItMjAgMDQ6NDEgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGFkZGVkIGVtYWNzIGF1dG9jb25mIG1vZGUgc3BlY2lmaWVyCgoyMDA5LTAyLTE5IDE4OjMyICByc3RvcnkKCiAgICogUkVBRE1FLnNxbCwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbmV3IHNxbCB0cmFwIGxvZ2dpbmcKCjIwMDktMDItMTkgMTg6MjAgIHJzdG9yeQoKICAgKiAgQ09QWUlORywgTkVXUywgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwgY29uZmlndXJlLCAgCiAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGRpc3Qvc2NoZW1hLXNubXB0cmFwZC5zcWwsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wdHJhcGQ6IGFkZCB0cmFwIGhhbmRsZXIgZm9yIGxvZ2dpbmcgdHJhcHMgdG8gYSBteXNxbAogICBkYXRhYmFzZQoKMjAwOS0wMi0xOSAxNzo1OCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkZWQgaXRlcmF0b3IgZm9yIHNpbmdseSBsaW5rZWQgbGlzdHM7IGFkZAogICBjb250YWluZXIgbmFtZSBpbiBtb3JlIGVycm9yIG1zZ3MKCjIwMDktMDItMTggMTg6NTIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB1c20uYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogY2hhbmdlIE1BWF9FTkdJTkVJRF9MRU5HVEggdG8gMzIsIHBlcgogICBTTk1QLUZSQU1FV09SSy1NSUIgU25tcEVuZ2luZUlEIFRDCgoyMDA5LTAyLTE4IDE0OjQxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYzoKCiAgIENvbmZpZ3VyZSBzY3JpcHQgZG9lcyBub3QgbGlrZSBuZXQtc25tcC1jb25maWcuaCBiZWluZyBpbmNsdWRlZAogICBmcm9tIGhlYWRlcgogICBmaWxlcywgd2hpY2ggYXJlIGFkZGVkIGJ5IC0td2l0aC1taWItbW9kdWxlcz0sIGxldCdzIHJlbW92ZSBpdAogICBmcm9tIHRoZXJlLgoKMjAwOS0wMi0xNiAyMToyNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRyAxNTU0ODE3OiBQYXRjaCBmcm9tIHhhbmNvOiBmaXggdGhlIGNsYXNzCiAgIGFzc2lnbWVudCBzbyBnZXRSb290T0lEIHdvcmtzIHByb3Blcmx5LgoKMjAwOS0wMi0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWNjb25maWcuaDoKCiAgIENvcnJlY3QgY29weS9wYXN0ZSBtaXN0YWtlCgoyMDA5LTAyLTEyIDAwOjI1ICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jOgoKICAgQW4gZWFybHkgZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEVExTIG92ZXIgVURQCiAgIHRyYW5zcG9ydCBmcm9tIHRoZSBJRVRGIElTTVMgd29ya2luZyBncm91cAoKMjAwOS0wMi0xMSAyMzozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZWQgcmVsZWFzZSBpbnN0cnVjdGlvbnMKCjIwMDktMDItMDYgMjE6MzYgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgYXMgQysrIGFnYWluLgoKMjAwOS0wMi0wNSAyMjo1NiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBBc3N1bWUgdGhhdCB0aGUgdGFyZ2V0IHBsYXRmb3JtIHN1cHBvcnRzIG1lbWNweSwKICAgbWVtbW92ZSwgbWVtc2V0LCBzdHJjaHIgYW5kIHN0cnJjaHIuCgoyMDA5LTAyLTA0IDA2OjU3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NucHJpbnRmLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IFJlbW92ZSBzdXBwb3J0IGZvciB1c2Ugb2YgdmFyYXJncy5oLiBOb3cgYXNzdW1lcyB0aGF0CiAgIHN0ZGFyZy5oIGlzIGF2YWlsYWJsZS4KCjIwMDktMDItMDQgMDY6NDkgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3RyYXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBORVdTOiBzbm1wbGliOiBJbnRyb2R1Y2UgcHJpbnRmLWxpa2UgdmVyc2lvbnMgb2YgY29uZmlnX3BlcnJvcgogICBhbmQgY29uZmlnX3B3YXJuIChuZXRzbm1wX2NvbmZpZ19lcnJvciBhbmQgbmV0c25tcF9jb25maWdfd2FybikuCiAgIFJlcGxhY2UgbWFueSBpbnN0YW5jZXMgb2YgeyB0bXBidWZbLi4uXTsgc3ByaW50Zih0bXBidWYsIC4uLik7CiAgIGNvbmZpZ19wKih0bXBidWYpOyB9IHdpdGggbmV0c25tcF9jb25maWdfKiguLi4pOwoKMjAwOS0wMi0wMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgYWRkIHRoZSByZWdpbmZvIGFuZCBhbmQgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSBSRUdJU1RFUl9PSUQKICAgY2FsbGJhY2sKCjIwMDktMDItMDMgMDA6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBmaXhlZCAtbHNzbCBjaGVjawoKMjAwOS0wMS0yOSAwODozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV0dXJuIGEgbGVzcyBtaXNsZWFkaW5nIGVycm9yIHdoZW4gYWRkaW5nIGFuIHVucmVjb2duaXNlZCB2YWx1ZS4KCjIwMDktMDEtMjggMTA6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IHNyYy9kc3QgY29uZnVzaW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEtyenlzenRvZiBPbOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMtuWbmHpraQoKMjAwOS0wMS0yOCAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBGaXggdHdvIGJ1Z3Mgd2l0aCBzbXV4IHBhc3N3b3JkIHN1cHBvcnQuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEtyenlzenRvZiBPbOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMtuWbmHpraQoKMjAwOS0wMS0yMyAxNDo1MyAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXggcGFyc2luZyBvZiBsZXZlbCByYW5nZXMgaW4gJy1MPGNhcGl0YWw+Jy4KCjIwMDktMDEtMjAgMTQ6NTEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgPHJwbS9ycG1maWxldXRpbC5oPiBiZWZvcmUgaW5jbHVkaW5nCiAgIGl0LgoKMjAwOS0wMS0xOSAyMDo1MCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRob3V0IElQdjYgYWdhaW4uCgoyMDA5LTAxLTE5IDE1OjAxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTI3NzUxOiBmcm9tIE1pdHN1cnUgQ2hpbmVuOiBpbXBsZW1lbnQKICAgaWNtcE1zZ1N0YXRzVGFibGUgb24gTGludXgKCjIwMDktMDEtMTkgMDk6NDEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsICAgCiAgICAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjQ0OTIxMDogYWRkIDY0LWJpdCBkaXNrIHVzYWdlIHN0YXRpc3RpY3MgdG8KICAgVUNELVNOTVAtTUlCOjpkc2tUYWJsZQoKMjAwOS0wMS0xOCAwNzo0MCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IEJVRzogMjE2ODE4MDogQ2hhbmdlZCAtLWRpc2FibGUtcmVlbnRyYW50IHRvIG5vdAogICBhY3RpdmF0ZSB0aGUgcmVlbnRyYW50IGNvZGUgYW5kIG1hZGUgLS1lbmFibGUtcmVlbnRyYW50IGFjY2VwdCBubwogICB2YWx1ZXMgb3RoZXIgdGhhbiB5ZXMgYW5kIG5vLiBEaWQgdGhlIHNhbWUgZm9yCiAgIC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tzLCAtLWVuYWJsZS1taWItY29uZmlnLWRlYnVnLAogICAtLXdpdGgtZGVmYXVsdHMsIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgLS1lbmFibGUtdGVzdGluZy1jb2RlIGFzCiAgIHdlbGwuCgoyMDA5LTAxLTEzIDA5OjE3ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDaGVjayBlbmNvZGluZyBvZiBPSURzLgogICAKICAgQkVSIGVuY29kZWQgT0lEcyBzaG91bGQgaGF2ZSBoaWdoIGJpdCBjbGVhciBpbiB0aGUgbGFzdCBieXRlIG9mCiAgIGVhY2ggc3ViaWRlbnRpZmllci4gVGhpcyBpcyBub3cgY2hlY2tlZCBhbmQgcGFyc2luZyBvZiBPSUQgZmFpbHMsCiAgIGlmIHRoaXMgY29uZGl0aW9uIGlzIG5vdCBtZXQuCgoyMDA5LTAxLTExIDIxOjU0ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IENoZWNrIHRoYXQgdGhlIHRlbXAtZmlsZS1wYXR0ZXJuIGVuZHMgaW4gNiBYJ3MKICAgYXMgbWtzdGVtcCBhbmQgbWt0ZW1wIHJlcXVpcmUgdGhhdC4KCjIwMDktMDEtMTEgMjE6MzggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEJlIGEgbG90IG1vcmUgc3RyaWN0IG9uIHRoZSB2YWx1ZXMgdGhhdCBhcmUKICAgYWNjZXB0YWJsZSBmb3IgLS13aXRoLXBlcnNpc3RlbnQtbWFzayAob25seSBhbGxvdyB0aHJlZSBvY3RhbAogICBkaWdpdHMpCgoyMDA5LTAxLTExIDIwOjQyICBtYWdmcgoKICAgKiAgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgbTQvbmV0c25tcF9hcmcubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogV2UgYXJlIGN1cnJlbnRseSB1c2luZyB0aGUgcHJhY3RpY2Ugb2YgYWRkaW5nCiAgIGEgbWlycm9yaW5nIEFDX0FSR19XSVRIL0VOQUJMRSB0byBlYWNoIEFDX0FSR19FTkFCTEUvV0lUSC4gVGhpcwogICBwYXRjaCBhZGRzIE5FVFNOTVBfQVJHX1dJVEgvRU5BQkxFIG1hY3JvcyB0aGF0IGF1dG9tYXRpY2FsbHkgYWRkcwogICB0aGUgbWlycm9yIHZhcmlhYmxlIGFuZCB0aGVuIGNvbnZlcnRzIHRoZSBjb25maWd1cmUgbWFjaGluZXJ5IHRvCiAgIHVzZSB0aGVtLgoKMjAwOS0wMS0xMSAyMDozNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE1vdmUgQUNfREVGSU5FUyBpbiBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSB0byBiZSBsb2NhdGVkIG5leHQKICAgdG8gdGhlIEFDX0FSR18uLi4gdGhleSBkZXBlbmQgb24uCgoyMDA5LTAxLTExIDIwOjM0ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ2hhbmdlIHRoZSBkZWZhdWx0IHZlcnNpb24gbnVtYmVyIGNoZWNraW5nIHRvIGJlIGVhc2llciB0byByZWFkCgoyMDA5LTAxLTExIDE5OjE5ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE1vdmUgdGhlIGxhc3QgQUNfQVJHXy4uLidzIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLgoKMjAwOS0wMS0xMSAxOTowOCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDaGFuZ2UgdGhlIG1hY3JvIGZvciAtLXdpdGgtZmVhdHVyZXMtb2YgZnJvbQogICBBQ19BUkdfRU5BQkxFIHRvIEFDX0FSR19XSVRIIGluIG9yZGVyIHRvIG1ha2UgdGhlIG9wdGlvbiBiZQogICAtLXdpdGgtZmVhdHVyZXMtb2YuCgoyMDA5LTAxLTA4IDEwOjQ1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBhcHBzOiBQYXJzZXIgb2YgLUxTIGNvbW1hbmQgbGluZSBhcmd1bWVudCBub3cKICAgYWNjZXB0cyBib3RoICctTFMgPGxldmVsPiA8ZmFjaWxpdHk+JyBhbmQgJy1MUwogICA8bGV2ZWw+PGZhY2lsaXR5PicuCiAgIAogICBCZWZvcmUgcGF0Y2ggIzE4MDYzMzYgdGhlIGZpcnN0IHN5bnRheCB3YXMgdGhlIG9ubHkgb25lCiAgIHN1cHBvcnRlZC4gVGhlIHBhdGNoCiAgIGNoYW5nZWQgdGhlIHN5bnRheCB0byB0aGUgc2Vjb25kIG9uZSwgY2F1c2luZyBpbmNvbXBhdGliaWxpdGllcwogICBpbiBzdGFibGUKICAgYnJhbmNoZXMuIFdlIG5vdyBzdXBwb3J0IGJvdGggb2YgdGhlbS4KCjIwMDktMDEtMDggMDM6NTEgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIERvIG5vdCBkZXBlbmQgb24gdGhlIGV4aXN0YW5jZSBvZiAvYmluL3NoLiBBbHNvIGZvbGxvdyB0aGUgYWR2aWNlCiAgIG9mIHRoZSBhdXRvY29uZiBtYW51YWwgYW5kIGZpbmFsbHkgYWxsb3cgZm9yIGxpYnRvb2wgdGhhdCBhZG9wdHMKICAgdGhlIGdlbmVyYXRlZCBzY3JpcHQgYWZ0ZXIgdGhlIGNhcGFiaWxpdGllcyBvZiBTSEVMTC4KCjIwMDktMDEtMDcgMTY6MDIgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgUmVvcmRlciB0aGUgbmV0aW5ldC9pY21wX3Zhci5oIGFuZCBuZXRpbmV0L2lwX2ljbXAuaCwgdGhlIGxhdGVyCiAgIG9uZSBtdXN0IGJlIGNoZWNrZWQgZmlyc3Qgb24gRnJlZUJTRCA3CgoyMDA5LTAxLTA2IDIyOjIzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgdXBkYXRlIFNQQVJUQSBmb3IgMjAwOQoKMjAwOS0wMS0wMyAyMDoyMyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBtNC9hY19wcm9tcHRfdXNlci5tNDoKCiAgIFVwZ3JhZGUgdGhlIEFDX1BST01QVF9VU0VSIG1hY3JvcyB0byBhdXRvY29uZiAyLjYzIHdoZXJlCiAgIEFDX0ZEX01TRyBpcyBkZXByZWNhdGVkIGFuZCBBU19NRVNTQUdFX0ZEIGlzIHJlY29tbWVuZGVkLgoKMjAwOS0wMS0wMyAxNDoyMCAgbWFnZnIKCiAgICogIGFjaW5jbHVkZS5tNCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBtNC9hY19hZGRfc2VhcmNoX3BhdGgubTQsICAgCiAgICAgIG00L2FjX21zZ19jYWNoZS5tNCwgbTQvYWNfbXNnX21vZHVsZV9kYmcubTQsICAgCiAgICAgIG00L2FjX3Byb21wdF91c2VyLm00LCBtNC9uZXRzbm1wX3NlYXJjaF9saWJzLm00OgoKICAgU3BsaXQgYWNpbmNsdWRlLm00IGludG8gc21hbGxlciBwYXJ0cyBieSBmdW5jdGlvbi4KCjIwMDktMDEtMDMgMTQ6MTUgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmFtOgoKICAgTWFrZSBhdXRvcmVjb25mIHdvcmsgYWdhaW4uCgoyMDA5LTAxLTAzIDE0OjExICBtYWdmcgoKICAgKiAgYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbnN0YWxsLXNoLCBsdG1haW4uc2gsIG00LCAKICAgICAgICBtNC9saWJ0b29sLm00LCBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNCwgCiAgICAgICAgbTQvbHR+b2Jzb2xldGUubTQ6CgogICBVcGRhdGUgdG8gbGlidG9vbC0yLjIuNAoKMjAwOS0wMS0wMyAxMzoyOCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOiBDaGVjayBmb3IgYSBmdW5jdGlvbiwgbm90IGEgbWFjcm8uCiAgIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZQoKMjAwOS0wMS0wMyAwMTowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICByZXF1aXJlIC1sc3NsOyB3aWxsIGJlIGNoYW5nZWQgbGF0ZXIgdG8gZG8gJ2lmIG5lZWRlZCcKCjIwMDktMDEtMDMgMDA6MTkgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmg6CgogICBDSEFOR0VTOiBzbm1wZDogVW5pZnkgYWxsIHNubXBkIHN0YXRpc3RpYyB2YXJpYWJsZXMgYW5kIG1ha2UgdGhlCiAgIGhhbmRsZXJzIGluc3RhbmNlcyBvZiBhIGNvbW1vbiBoYW5kbGVyLgoKMjAwOS0wMS0wMSAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBjbGVhbiB1cCBhIGZldyBjb21tZW50cyBhbmQgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoKMjAwOS0wMS0wMSAxNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggdmFyaW91cyBtaW5vciBtZW1vcnkgbGVhayBpc3N1ZXMKCjIwMDktMDEtMDEgMTQ6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywgCiAgICAgICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBORVdTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIG9pZCBhcmd1bWVudHMgZnJvbSBvaWQqIHRvCiAgIGNvbnN0IG9pZCouIFVwZGF0ZSBtaWIyYyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgY2hhbmdlLgoKMjAwOS0wMS0wMSAxMzo1NiAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2hlY2sgcmV0dXJuIHZhbHVlcyBhbmQgZnJlZSBhbGxvY2F0ZWQgcmVzb3VyY2VzIG9uIGVycm9yLgoKMjAwOS0wMS0wMSAxMjo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgRG8gbm90IGxlYWsgYWxpYXNfbGlzdCBvbiByZXR1cm4gZnJvbSBfbmV4dF9hbGlhcy4KCjIwMDktMDEtMDEgMTE6MjYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIE1ha2UgdmFyaWFibGUgY29uc3QgYXMgaXQgbmV2ZXIgaXMgY2hhbmdlZC4KCjIwMDktMDEtMDEgMTE6MjUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMDgtMTItMzEgMjE6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCB1c2UgdGhlIGZ1bmN0aW9ucyBpZiB3ZSdyZSBub3QgbGlua2VkIHdpdGggb3BlbnNzbAoKMjAwOC0xMi0zMSAyMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYzoKCiAgIG5ld2VyIHBlcmwgZ2VuZXJhdGVkIHVwZGF0ZXMKCjIwMDgtMTItMzEgMTg6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgZmV3IG1vcmUgcmVjdi9zZW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA4LTEyLTMxIDE4OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFsbG93IHF1b3RlZCBzZWN1cml0eSBuYW1lcyBmb3Igb25lcyBjb250YWluaW5nIHNwYWNlcwoKMjAwOC0xMi0zMSAxODowMSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFuIG9wZW5zc2wgaW5pdGlhbGl6YXRpb24gd3JhcHBlcgoKMjAwOC0xMi0zMCAwMDowMyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdGVzdC5jLCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgVXNlIHNubXBfZHVwbGljYXRlX29iamlkIGluc3RlYWQgb2YgdmFyaW91cyBtYWxsb2MrbWVtY3B5CiAgIHZhcmlhbnRzIGluIG9yZGVyIHRvIG1ha2UgY2xlYXJlciBjb2RlLgoKMjAwOC0xMi0yOSAyMzozNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9hc24xLmM6CgogICBVc2UgZm9ybWF0IHN0cmluZ3MgZm9yIHByaW50Zi1saWtlIGZ1bmN0aW9ucy4KICAgUHJlZmVyIHN0cmNweSBvdmVyIHNwcmludGYoZGVzdCwgIiVzIiwgc3JjKQogICBQcmVmZXIgREVCVUdNU0dUTCgoZm9ybWF0LCBhcmdzKSkgb3ZlciBzcHJpbnRmKGxvY2FsLCBmb3JtYXQsCiAgIGFyZ3MpOyBERUJVR01TR1RMKCgiJXMiLCBsb2NhbCkpCgoyMDA4LTEyLTE4IDE3OjA0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBleHBvcnQgb3V0IG9mIHRoZSBmaWxlIHNvbWUgaGVscGZ1bCBnZW5lcmljIHVkcCBmdW5jdGlvbnMKCjIwMDgtMTItMTYgMDA6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgY2hhbmdlIGxvY2Fsc20gc2VjdXJpdHkgbW9kZWwgdG8gdHNtIChhbmQgYWRkIDEpCgoyMDA4LTEyLTE1IDIzOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmM6CgogICBQYXRjaCB0byBjaGFuZ2UgYSB0eXBlZGVmIG5hbWUgZnJvbSBsaW5rIHRvIG5vZGVsaW5rIHRvIGF2b2lkCiAgIG5hbWluZyBjb25mbGljdCBpc3N1ZXMuCgoyMDA4LTEyLTA5IDAxOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgdXNlIGludDMyX3QgaW5zdGVhZCBvZiBpbnRfMzIgd2hpY2ggZG9lc24ndCB3b3JrIGF0IGFsbCBvbiBGMTAKCjIwMDgtMTItMDkgMDE6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZW1vdmUgdGhlIG5vdGUgdGhhdCB3ZSBtb3ZlZCB0byBzdm4uLi4gb2Jzb2xldGUgYXQgdGhpcyBwb2ludCwKICAgdG8gc2F5IHRoZSBsZWFzdAoKMjAwOC0xMi0wOSAwMTowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbgoKMjAwOC0xMi0wOSAwMDo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmbGFnIHNvbWUgc3RlcHMgYW5kIG1hbmRhdG9yeQoKMjAwOC0xMi0wOSAwMDo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIHJlbW92ZSBhY2NpZGVudGlhbCBuZXcgZGVmaW5lcyB0aGF0IGFyZW4ndCBuZWVkZWQgeWV0CgoyMDA4LTEyLTA5IDAwOjU2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wbG9jYWxzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCBzbm1wbGliL3NubXBsb2NhbHNtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcmVtb3ZlIG9sZGVyIGxvY2Fsc20gc2VjdXJpdHkgbW9kZWwgYW5kIHJlcGxhY2Ugd2l0aCBhIG5ld2VyIFRTTQogICBiYXNlZCBvbiB0aGUgdXBjb21pbmcgSUVURiBzcGVjCgoyMDA4LTEyLTA5IDAwOjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggaXNzdWUgd2l0aCBjb250ZXh0IHByb2JpbmcKCjIwMDgtMTItMDQgMTI6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGFlbW9uaXplIGFmdGVyIHRyYW5zcG9ydHMgYXJlIGNyZWF0ZWQgYW5kIGxpc3RlbmluZyBzb2NrZXRzIGFyZQogICBib3VuZCB0byBhcHByb3ByaWF0ZSBwb3J0cy4gVGhpcyBhbGxvd3MgdG8gZXhpdCB3aXRoIG5vemVybyBleGl0CiAgIGNvZGUgd2hlbiB0aGUgYmluZGluZyBmYWlscy4KCjIwMDgtMTItMDQgMTE6NDQgIGpzYWZyYW5lawoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBQcmludCBwb3J0cyBhcyB1bnNpZ25lZCBudW1iZXJzLgoKMjAwOC0xMS0yNCAxOTowOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBfX0VYVEVOU0lPTlNfXyBpcyBub3cgaGFuZGxlZCBieSBjb25maWd1cmUKCjIwMDgtMTEtMjIgMTg6MzYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBEbyBub3QgdHJ5IHRvIHVzZSB0aGUgbW9kdWxlIGxpc3QgYXMgYSBmaWxlIHRoYXQgc2hvdWxkIGJlCiAgIGluY2x1ZGVkIGluIHRoZSBidWlsZCwgdGh1cyBtYWtpbmcgaXQgcG9zc2libGUgdG8gYnVpbGQgb24KICAgU29sYXJpcy4KCjIwMDgtMTEtMjAgMjI6MzAgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3RyYXAuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIAogICAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSZXBsYWNlIG1lbWR1cCgodV9jaGFyKiopJngsICh1X2NoYXIqKXksIHogKiBzaXplb2Yob2lkKSkgd2l0aCB4CiAgID0gc25tcF9kdXBsaWNhdAogICBlX29iamlkKHksIHopIHNpbmNlIHRoZSBsYXRlciBpcyBlYXNpZXIgdG8gcmVhZCBhbmQgZXhwcmVzc2VzIHRoZQogICBpbnRlbnRpb24gb2YgdAogICBoZSBjb2RlIGNsZWFyZXIuCgoyMDA4LTExLTIwIDIyOjAxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgbWVtY3B5IGluc3RlYWQgb2YgbWVtbW92ZSB0byBjb3B5IG9pZHMgYXMgaXQgaXMga25vd24gdGhhdAogICB0aGUgYXJlYXMgYXJlIG5vbm92ZXJsYXBwaW5nLgoKMjAwOC0xMS0yMCAyMDo1MSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICBNYWtlIGxvZyByZWZlciB0byB0aGUgcmlnaHQgZnVuY3Rpb24uCgoyMDA4LTExLTIwIDIwOjQ2ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogRG8gbm90IHVzZSAlbSBpbiBwcmludGYtZm9ybWF0dGVkIHN0cmluZ3Mgc2luY2UgJW0gaW4KICAgcHJpbnRmIGlzIGEgZ2xpYmMgZXh0ZW5zaW9uLgoKMjAwOC0xMS0xNiAyMjowMSAgbWFnZnIKCiAgICogY29uZmlndXJlLmFjOgoKICAgQnVtcCB0aGUgcmVxdWlyZWQgYXV0b2NvbmYgdmVyc2lvbiB0byAyLjYzIGFzIHBlciAxNzMwMS4KCjIwMDgtMTEtMTYgMjE6NTUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgZnVuY3Rpb24gZnJvbSB0aGUgY29uZmlndXJlIHRlc3QgZm9yIF9fZnVuY19fLgoKMjAwOC0xMS0xNiAyMTo1MSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE00IHVzZXMgZG5sLCBub3QgXCBmb3IgbGluZSBjb25jYXRlbmF0aW9uLgogICBcIGludHJvZHVjZWQgYSBzcHVyaW91cyBkZWZpbmUgaW4gbmV0LXNubXAtY29uZmlnLmguaW4sIHRodXMgdGhpcwogICBjaGFuZ2UuCiAgIFJlcmFuIGF1dG9jb25mIGFuZCBhdXRvaGVhZGVyLgoKMjAwOC0xMS0xMyAyMjoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBORVdTOiBidWlsZDogdXBkYXRlIHRvIGF1dG9jb25mIDIuNjMKCjIwMDgtMTEtMTMgMDA6MzAgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAyMjU4OTM1OiBQeXRob24gRXh0ZW5zaW9uIE1vZHVsZSBmYWlscyBvbgogICBTb2xhcmlzCgoyMDA4LTExLTEzIDAwOjI2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgZml4IHR5cG8KCjIwMDgtMTEtMTMgMDA6MjYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBmaXggdHlwbwoKMjAwOC0xMS0xMyAwMDoxOSAgdGFuZGVycwoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgbWFrZSBzY3JpcHRzIGV4ZWN1dGFibGUKCjIwMDgtMTEtMTIgMTc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZml4IHR5cG8vc3BlbGxpbmcgaW4gYW4gZW1iZWRkZWQgcGVybCBlcnJvciBtZXNzYWdlCgoyMDA4LTExLTExIDEzOjEzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIG9uIG9sZGVyIExpbnV4ZXMgd2l0aG91dCBTUEVFRF8xMDAwMCBhbmQKICAgU1BFRURfMjUwMC4KCjIwMDgtMTEtMDEgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIE5FV1M6IHNubXBkOiBBcHBseWluZyBwYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gZml4IHRoZQogICBnZXRidWxrIGlzc3VlIHJlcG9ydGVkIGJ5IE9zY2FyIE1pcmEtU2FuY2hlegoKMjAwOC0xMC0zMCAyMjozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHJlbW92ZSB0aGUgb2xkZXIgKG9ic29sZXRlKSBtYWtlcmVsZWFzZSBzY3JpcHQKCjIwMDgtMTAtMjIgMTc6MjQgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB0aGUgbGliIHVzaW5nIGEgQysrIGNvbXBpbGVyIG9uY2UgbW9yZS4KCjIwMDgtMTAtMjIgMDc6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERvbid0IGNsZWFyIHNlc3Npb24gZmxhZ3Mgd2hlbiB0ZXN0aW5nIG9uZSBiaXQuCgoyMDA4LTEwLTIxIDIxOjEwICBtYWdmcgoKICAgKiAgQUdFTlQudHh0LCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZiwgICAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9GQVEuaHRtbDoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAxNzM3NzI3OiBmcm9tIGpveWNlYW5tYWNoaW5lOiBBZGQgYQogICBORVRTTk1QX09MREFQSV8gcHJlZml4IHRvIHRoZSBhY2Nlc3MgbWFjcm9zIHRoYXQgYXJlIHVzZWQgaW4gdGhlCiAgIG9sZC1hcGkgaGVscGVyLgogICBJIGRpZCBhZGQgdGhlIHByZWZpeCB0byBhbGwgdXNlcnMgaW4gb3VyIGNvZGUuCgoyMDA4LTEwLTIxIDIxOjAwICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgCiAgICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDE3Mzc3Mjc6IGZyb20gam95Y2Vhbm1hY2hpbmU6IFJlcGxhY2UgYWxsIHVzZXMKICAgb2YgTkVUU05NUF9DTEVBTl9OQU1FU1BBQ0Ugd2l0aCBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUwoKMjAwOC0xMC0xNiAwOTo1NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjA4MjcyNjogY29ycmVjdGx5IHJlcG9ydCBOSUMgc3BlZWRzCiAgIGhpZ2hlciB0aGFuIDRHYml0L3MKCjIwMDgtMTAtMTYgMDg6MDAgIGpzYWZyYW5lawoKICAgKiBtYW46CgogICBTY3JhdGNoIHByZXZpb3VzIGNvbW1pdCwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuMSB0byBiZSBpZ25vcmVkLgoKMjAwOC0xMC0xNiAwNzozNyAganNhZnJhbmVrCgogICAqIG1hbjoKCiAgIEFkZCBjb21waWxlZCBuZXQtc25tcC1jb25maWcuMSB0byBzdm46aWdub3JlIGxpc3QKCjIwMDgtMTAtMTUgMTI6NTcgIGpzYWZyYW5lawoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2VudW1zLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfb2lkcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDE3OTcxMTE6IGltcGxlbWVudCBJUC1NSUI6OmlwSWZTdGF0c1RhYmxlCgoyMDA4LTEwLTE1IDA5OjI3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeDogYXZvaWQgdmFyaWFibGUgZGVjbGFyYXRpb25zIGluIHRoZSBtaWRkbGUgb2YKICAgY29kZQoKMjAwOC0xMC0xNCAxODo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjA0MzAxODogZml4IHJlY3Zmcm9tIGhhbmdzCiAgIEFsc28gYWRkcmVzc2VzIChjbG9zZWQpIGJ1Z3MgMTE3MTkwNCBhbmQgMTM0NTI5NgoKMjAwOC0xMC0xNCAwOTo0NCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggbWVtb3J5IGxlYWsgd2hlbiBtdWx0aXBsZSBpbnRlcmZhY2VzIGhhdmUgdGhlCiAgIHNhbWUgSVB2NiBhZGRyZXNzCgoyMDA4LTEwLTE0IDA5OjM3ICBqc2FmcmFuZWsKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY5MzAzOTogYmUgc2lsZW50IHdoZW4gaW5zZXJ0IGZhaWxzLgoKMjAwOC0xMC0xMyAxOTowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5Nzc0Mzk6IEZpeCBwYXNzL19wZXJzaXN0IGJ1ZyB3aXRoIFNFVAogICBvaWQgdmFsdWUKCjIwMDgtMTAtMTIgMTc6MjQgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUmVpbXBsZW1lbnRhdGlvbiBvZiBzbm1wTVBEU3RhdHMuCgoyMDA4LTEwLTEwIDIxOjEzICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBDb25zb2xpZGF0ZSBjaGVja3Mgb24gZ2VuZXJhbCBPL1MgY2hhcmFjdGVyaXN0aWNzCgoyMDA4LTEwLTA3IDA4OjUwICBqc2FmcmFuZWsKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEJVRzogMjA5NTk4MzogZml4IHN5bnRheCBlcnJvciBpbgogICBmaW5kLXJlcXVpcmVzIGhlbHBlciBzY3JpcHQgYW5kIG1ha2UgaXQgZXhlY3V0YWJsZQoKMjAwOC0xMC0wNiAxOTozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBpZmRlZiBzeXMvcG9sbAoKMjAwOC0xMC0wMyAxNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBwYXRjaCBmcm9tIFNoYWNoYXIgU2NoZW1lc2ggdG8gZml4IGEgcXVvdGUgZXNjYXBpbmcKCjIwMDgtMDktMzAgMjI6MTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZGRlZCBhIG5lZWRlZCB0cmFpbGluZyBuZXdsaW5lCgoyMDA4LTA5LTMwIDIyOjExICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjI5NDg6IEZpeCBmb3IgQ291bnRlcjY0IGluIHBlcmwgc3ViYWdlbnQKCjIwMDgtMDktMzAgMjE6NDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBORVdTOiBzbm1wbGliOiBJbXBsZW1lbnRlZCBSRkM1MzQzIGNvbnRleHRFbmdpbmVJRCBwcm9iaW5nLgogICBUaGlzIGFsbG93cyBmb3IgcHJvYmluZyBvZiB0aGUgY29udGV4dEVuZ2luZUlEIHdpdGhvdXQgcmVxdWlyaW5nCiAgIHRoZSBVU00gc2VjdXJpdHkgbW9kZWwuCiAgIC0gaW1wbGVtZW50ZWQgZW50aXJlbHkgd2l0aGluIHRoZSBsaWJyYXJ5IGZvciBib3RoIGNsaWVudHMgYW5kCiAgIHNlcnZlcnMuCgoyMDA4LTA5LTMwIDIxOjMzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIEFkZCBhIGxvY2FsIGRlZmluaXRpb24gZm9yIGhhdmluZyBzZWN1cml0eSBtb2RlbHMgZGVmaW5lIHRoZWlyCiAgIG93bgogICBjb250ZXh0RW5naW5lSUQgcHJvYmUKCjIwMDgtMDktMzAgMjE6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGQgYSBkZWZpbml0aW9uIGZvciB0aGUgU1NIIGRvbWFpbgoKMjAwOC0wOS0zMCAyMTowOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAxMjU3MzQ3OiBOb24tZml4ZWQgc2l6ZSBjb25uZWN0aW9uIGJ1ZmZlcgoKMjAwOC0wOS0zMCAwNzozMiAganNhZnJhbmVrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IFBBVENIOiAyMDkxMTU2OiBjb3JyZWN0bHkgZGVjbGFyZSBkZXBlbmRlbmNpZXMgaW4KICAgTWFrZWZpbGUuCiAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgoKMjAwOC0wOS0yNCAyMDo1OCAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBJZGVudGlmeSB3aGVyZSBwYXJ0aWN1bGFyIGNoZWNrcyBhcmUgYWN0dWFsbHkgdXNlZAogICAobGlicmFyeSwgYWdlbnQsIGFwcGxpY2F0aW9ucyBvciBub3QgYXQgYWxsKQoKMjAwOC0wOS0yNCAxMjo1MyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmM6CgogICBVc2UgdGhlIGxvbmdlc3QgaW50ZWdlciBmb3IgaW5vZGUgbnVtYmVycyBhbmQgKHBvc3NpYmx5IDY0IGJpdCkKICAgY291bnRlcnMuCgoyMDA4LTA5LTIwIDA5OjAxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMzoKCiAgIE5FV1M6IGJ1aWxkOiBEbyBub3QgcmVxdWlyZSB1c2Ugb2YgLS13aXRoLWVuZGlhbm5lc3Mgd2hlbgogICBjcm9zcy1jb21waWxpbmcuCgoyMDA4LTA5LTE5IDE1OjE5ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgQ29ycmVjdCBsb2NhdGlvbiBvZiBkb2N1bWVudGF0aW9uIGZpbGVzLgoKMjAwOC0wOS0xOSAwNToyOCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQW5kIGFkZCB0aGUgY2h1bmsgdGhhdCBJIGxvc3QuCgoyMDA4LTA5LTE5IDA1OjIzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW92ZSBtb3JlIHRoaW5ncyBmcm9tIGFjY29uZmlnLmggdG8gdGhlIHRlbXBsYXRlcyBpbiB0aGUKICAgY29uZmlndXJlIGlucHV0IGZpbGVzLgoKMjAwOC0wOS0xNyAxMzozMSAganNhZnJhbmVrCgogICAqIGRpc3QvZmluZC1yZXF1aXJlczoKCiAgIG1ha2UgZmluZC1yZXF1aXJlcyBleGVjdXRhYmxlIHNvIGl0J3MgYWN0dWFsbHkgdXNhYmxlIGJ5IHRoZQogICBuZXQtc25tcC5zcGVjCgoyMDA4LTA5LTE3IDEyOjA4ICBqc2FmcmFuZWsKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuMS5kZWY6CgogICBhZGQgbWFuIHBhZ2UgZm9yIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyCgoyMDA4LTA5LTE2IDE4OjAyICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGdXJ0aGVyIG1pbmltaXphdGlvbiBvZiBhY2NvbmZpZy5oCgoyMDA4LTA5LTExIDIyOjI4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgYSBmZXcgbW9yZSB2YXJpYWJsZXMgb3V0IG9mIGFjY29uZmlnLmgKCjIwMDgtMDktMTEgMjA6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTczNzQzOTogZnJvbSBlbWl5OiBhdXRvbWF0aWMgbGluayB1cC9kb3duCiAgIHRyYXBzIG9uIGEgd2Fsazsgc3RpbGwgbmVlZCBhIGJldHRlciBpbnRlcmZhY2UgZm9yIG1hbnVhbGx5IGRvaW5nCiAgIHRoaW5ncyBvbiBhbiBvY2Nhc2lvbmFsIGJhc2lzCgoyMDA4LTA5LTExIDIwOjI1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogNzAwNjgxOiBsaW1pdGVkIHN1cHBvcnQgZm9yIFVEUHY0IGJyb2FkY2FzdAogICBhZGRyZXNzZXMKCjIwMDgtMDktMTAgMDY6MzkgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19DSEVDS19UWVBFUyBpbnN0ZWFkIG9mIGEgaG9tZWdyb3duCiAgIGFsdGVybmF0aXZlIHRvIGNoZWNrIGZvciB0eXBlcwoKMjAwOC0wOS0wOSAyMDoyNyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgYWxsIHRoZSBwYXJ0cyBvZiBjb25maWd1cmUuYWMgdG8gdGhlIGRlcGVuZGVuY3kgbGlzdAoKMjAwOC0wOS0wOSAxODoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICB1cGRhdGUgdG8gcmVmbGVjdCBjb25maWd1cmUuaW4gLT4gY29uZmlndXJlLmFjIGNoYW5nZQoKMjAwOC0wOS0wOSAxNjoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGRlZmF1bHQgdG8gLXAwCgoyMDA4LTA5LTA4IDIzOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBsb2NhbHNtLmM6CgogICBjaGVjayBmb3IgYSBzZXNzaW9uIHR1bm5lbGVkIGZsYWcgYmVmb3JlIHJldHVybmluZyBhbgogICBhdXRoZW50aWNhdGlvbiBmYWlsdXJlCgoyMDA4LTA5LTA4IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTZXQgdGhlIHR1bm5lbGVkIGZsYWcgd2hlbiBkZWFsaW5nIHdpdGggYSB0dW5uZWwtYmFzZWQgdHJhbnNwb3J0OwogICBkb24ndCByZXF1aXJlIGEgc2VjdXJpdHlFbmdpbmVJRCBpZiB0aGUgc2VjdXJpdHkgbW9kZWwgZG9lc24ndAogICBoYXZlIG9uZSAoanVzdCBVU00gbmVlZHMgaXQpCgoyMDA4LTA5LTA4IDIwOjI0ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMjA5OTk4NTogQWRkZWQgY29uc3QgcXVhbGlmaWVycyB0byB0aW1lCiAgIGNvbnZlcnNpb24gcm91dGlucwoKMjAwOC0wOS0wNSAwNzo1MSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIFVwZGF0ZSByZWxlYXNlIGluc3RydWN0aW9ucywgaW4gbGluZSB3aXRoIG1ha2VyZWxlYXNlLnhtbAogICAoUW46IFdoeSBpc24ndCBtYWtlcmVsZWFzZS54bWwgYmVpbmcgcGlja2VkIHVwIGhlcmU/KQoKMjAwOC0wOS0wNCAyMjo1MiAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDE4NjgyNzg6IFB5dGhvbiBzZWdmYXVsdCAoaW50cm9kdWNlZCBieQogICByMTY5NjIpCgoyMDA4LTA5LTAzIDEzOjQzICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyMDAwODc0OiBDbGVhbnVwIHRyYW5zcG9ydCBzZWxlY3Rpb24uCgoyMDA4LTA5LTAzIDEzOjI5ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgVGlkeSB1cCBwZXJsL3B5dGhvbiBhbmQgTy9TIGRhdGEgc3RydWN0dXJlIHRlc3RzLgoKMjAwOC0wOC0zMSAxODoxNCAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIFRpZHkgdXAgKG1vc3Qgb2YpIHRoZSBpbmRpdmlkdWFsIGNvbXBvbmVudHMgb2YgdGhlIGNvbmZpZ3VyZQogICBmcmFtZXdvcmsuCiAgIFRoaXMgaXMgbW9zdGx5IHJlLWluZGVudGF0aW9uLCByZS1jb21tZW50aW5nLCBhbmQgYSBjZXJ0YWluCiAgIGFtb3VudAogICBvZiBqdWRpY2lvdXMgcmUtb3JkZXJpbmcgb2YgdGhlIHRlc3RzIHdpdGhpbiBpbmRpdmlkdWFsCiAgIHN1Yi1zY3JpcHQuCgoyMDA4LTA4LTMxIDE3OjMwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIEFubm90YXRlIGNvbmZpZ3VyZSB0ZW1wbGF0ZSB3aXRoIHN1Z2dlc3RlZCBiZXN0IHByYWN0aWNlCiAgIHN0cnVjdHVyZS4KICAgTm90ZSB0aGF0IG5vbmUgb2YgdGhlc2UgY2hhbmdlcyBoYXMgYWx0ZXJlZCB0aGUgY29kZSB3aXRoaW4KICAgJ2NvbmZpZ3VyZScgaXRzZWxmIChvdGhlciB0aGFuIGFmZmVjdGluZyBsaW5lIG51bWJlcnMpCgoyMDA4LTA4LTMxIDE3OjI2ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGNvbmZpZ3VyZS5kLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBORVdTOiBidWlsZDogc3BsaXQgY29uZmlndXJlIHRlbXBsYXRlIGludG8gc2VwYXJhdGUgcGllY2VzLgogICAoTW9zdGx5KSBzZWxmLWNvbnRhaW5lZCwgYW5kIHNpZ25pZmljYW50bHkgbGVzcyBjb25mdXNpbmchCgoyMDA4LTA4LTMxIDE3OjIzICBkdHMxMgoKICAgKiBjb25maWd1cmUuYWMsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbmFtZSBjb25maWd1cmUgdGVtcGxhdGUgaW4gbGluZSB3aXRoIGN1cnJlbnQgYmVzdCBwcmFjdGljZS4KCjIwMDgtMDgtMjkgMTk6NTQgIGR0czEyCgogICAqIGRpc3QvY2hhbmdlbG9nZml4OgoKICAgUmV0YWluIGZpbGVuYW1lcyB3aGljaCBkb24ndCBpbmNsdWRlIHRoZSBleHBlY3RlZCBwcmVmaXguCgoyMDA4LTA4LTI3IDIxOjU1ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3M6CgogICBpZ25vcmUgLmxpYnMgZGlyZWN0b3JpZXMKCjIwMDgtMDgtMjcgMTM6MzkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBTLzM5MCB1c2VzIHNsaWdodGx5IGRpZmZlcmVudCBmb3JtYXQgb2YgdGhlIC9wcm9jL2NwdWluZm8gZmlsZToKICAgcHJvY2Vzc29yIDA6IHZlcnNpb24gPSBGRiwgaWRlbnRpZmljYXRpb24gPSAwNjBBRkUsIG1hY2hpbmUgPQogICAyMDk0CgoyMDA4LTA4LTIyIDIzOjQ3ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIHVwZGF0ZSBsaXN0IG9mIHN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtcwoKMjAwOC0wOC0yMiAyMzoyNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiBCVUc6IDIwMjM4MDM6IENvbXBpbGF0aW9uIHByb2JsZW1zIG9uIEhQLVVYIDExLjMxCiAgIENIQU5HRVM6IGJ1aWxkOiBMaW1pdCB0aGUgdXNlIG9mIF9LRVJORUwgZGVmaW5pdGlvbnMgaW4gY29uZmlndXJlCiAgIHRlc3RzIHRvIG1hdGNoIHRoZSB1c2UKICAgb2YgX0tFUk5FTCBpbiBvdXIgY29kZWJhc2UKCjIwMDgtMDgtMjIgMDA6MTggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgRml4IGJ1aWxkIGZhaWx1cmUgb24gSFAtVVggMTEuMzE6IHVzZSBnZXRwYWdlc2l6ZSgpIGluc3RlYWQgb2YKICAgUEdTSElGVC4KICAgU3VjY2Vzc2Z1bGx5IHRlc3RlZCBvbiBIUC1VWCAxMC4yMCwgMTEuMDAsIDExLjExLCAxMS4yMyBhbmQKICAgMTEuMzEuCgoyMDA4LTA4LTIxIDEwOjAzICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIFNDVFAtTUlCCgoyMDA4LTA4LTIwIDE3OjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEhhdmUgb25seSBvbmUgdmFyaWFibGUgbmFtZWQgcGFzc3dkIGluIHNtdXhfYXV0aF9wZWVyLgoKMjAwOC0wOC0xOSAyMzoyMiAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQ6CgogICB1cGRhdGUgUkVBRE1FIGZvciBUcnU2NCBhZnRlciB0aGUgc2VuZHRvL3JlY3Zmcm9tIGZpeGVzCgoyMDA4LTA4LTE5IDIwOjI3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIGZpeCBzaWduaWZpY2FudCB0eXBvCgoyMDA4LTA4LTE5IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBGb3JjZSB1c2Ugb2YgL3Byb2MvJWQvcHNpbmZvIGludGVyZmFjZSBvbiBTb2xhcmlzLgogICBUZW1wb3JhcnkgaGFjayB3aGlsZSB3ZSBpbnZlc3RpZ2F0ZSB0aGUgaXNzdWVzIHdpdGgKICAgdGhlIGt2bV9wcm9jKCkgY29kZS4KICAgCiAgIFRoZSAnY29uZmlnX3JlcXVpcmUnIHByb2Nlc3NpbmcgZG9lc24ndCBjdXJyZW50bHkKICAgcGljayB1cCB0aGUgZnVsbCAjaWZkZWYgZW52aXJvbm1lbnQsIHNvIGRlZmF1bHRzCiAgIHRvIHVzaW5nIGt2bV9wcm9jKCkuIEknbSBub3QgY29udmluY2VkIHRoaXMgd2FzCiAgIHdvcmtpbmcgYmVmb3JlIGFueXdheSwKCjIwMDgtMDgtMTkgMTM6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jOgoKICAgRml4IHByb2JsZW1zIGluIC9wcm9jLyVkL3BzaW5mbyBpbnRlcmZhY2UgcHJvY2Vzc2luZy4KCjIwMDgtMDgtMTkgMDg6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3M6CgogICBJZ25vcmUgbGlicmFyeSBhbmQgb2JqZWN0IGZpbGVzCgoyMDA4LTA4LTE5IDA4OjM2ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEFjdGl2YXRlIHN0YXRpc3RpY3MgdGhhdCBhcmUgc3VwcG9ydGVkIG9uIFNvbGFyaXMgYW5kL29yIExpbnV4CiAgIElQdjYKCjIwMDgtMDgtMTkgMDg6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSW1wcm92ZWQgdHJhY2luZyBvZiBTTVVYIGF1dGhlbnRpY2F0aW9uIHByb2JsZW1zLgoKMjAwOC0wOC0xOSAwODowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYzoKCiAgIEJldHRlciB0cmFjaW5nIG9mIERpc01hbiBvYmplY3QgcHJvY2Vzc2luZy4KCjIwMDgtMDgtMTggMjI6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaDoKCiAgIHJlbW92ZSBib2d1cyB3aGl0ZSBzcGFjZQoKMjAwOC0wOC0xOCAyMjowMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjAyMTQ0NDogU3VwcG9ydCBTTk1QdjJjIGluIGdldHRhYmxlCiAgIHByb2Nlc3NpbmcKCjIwMDgtMDgtMTggMjE6NDQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIwMDM0NTA6IEZpeCBhIGNvdXBsZSBvZiA2NC1iaXQKICAgcHJvYmxlbXMuCgoyMDA4LTA4LTE4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIHJldmVydCAxNzE1NyBzaW5jZSBpdCBicm9rZSBzb21ldGhpbmcKCjIwMDgtMDgtMTggMDc6MDYgIGpzYWZyYW5lawoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBTQ1RQLU1JQiBpbXBsZW1lbnRhdGlvbiAoTGludXggb25seSkKCjIwMDgtMDgtMTcgMjE6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDIyOTM2OiBGaXggQWdlbnRYIENvdW50ZXI2NCBkZWNvZGluZyBvbgogICA2NC1iaXQgYXJjaGl0ZWN0dXJlcwoKMjAwOC0wOC0xNyAyMDo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAxNDIwNDogU3VwcG9ydCAtZyB7Z3JvdXBuYW1lfQoKMjAwOC0wOC0xNSAxMzo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBORVdTOiBzbm1wdXNtOiBQQVRDSDogMTU5MTM1NTogZnJvbSBwcGFzc2VyYTogQWxsb3cgY2xvbmluZyB0bwogICBlbmdpbmVJRHMgdGhhdCBhcmUgZGlmZmVyZW50IGZyb20gdGhlIGFnZW50J3MgZW5naW5lSUQKCjIwMDgtMDgtMTQgMTU6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYzoKCiAgIFNXUnVuIHByb2Nlc3NpbmcgbmVlZHMgYWNjZXNzIHRvIHRoZSBpbnRlcm5hbHMgb2YgJ3N0cnVjdCB1c2VyJwogICAoU29sYXJpcykKCjIwMDgtMDgtMTMgMTM6MDIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgQ29ycmVjdGx5IHBhcnNlIGludGVyZmFjZSBpbmRleGVzIGhpZ2hlciB0aGFuIDB4ZmYuCgoyMDA4LTA4LTEyIDA4OjI3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ2xvc2UgZmlsZSB3aGVuIHBhcnNpbmcgb2YgL3Byb2MvWFhYL3N0YXR1cyBmYWlscy4KCjIwMDgtMDgtMTIgMDc6MjcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIsIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYywgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvU0NUUC1NSUIudHh0OgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyMDIzNjMzOiBhZGQgU0NUUC1NSUIgaW1wbGVtZW50YXRpb24gKExpbnV4CiAgIG9ubHkpCgoyMDA4LTA4LTA3IDEwOjAzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgRml4IGluZXROZXRUb01lZGlhVGFibGUgdGFibGUgcHJvY2Vzc2luZyAtIGNvbnRpbnVlIHdpdGggbmV4dAogICBlbnRyeSB3aGVuIGZpbGx1cF9lbnRyeV9pbmZvKCkgZmFpbHMuCgoyMDA4LTA4LTA3IDA5OjAwICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggZG9jdW1lbnRhdGlvbiBvZiBleGVjIHN0YXRhbWVudCAtIGl0IGRvZXMgbm90IGNhY2hlIHJlc3VsdHMKICAgYW55bW9yZS4gUmVsYXRlZCB0byBidWcgODgzMTM0CgoyMDA4LTA3LTMxIDIzOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmM6CgogICBGaXggYSB0eXBvLCBhbmQgYSBib2d1cyBmaWVsZCBuYW1lIGluIHRoZSBBSVggcHJvY2luZm8gc3RydWN0dXJlLgoKMjAwOC0wNy0zMSAyMzozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jOgoKICAgSW5jbHVkZSBtaXNzaW5nIGhlYWRlcnMsIGFuZCBmaXggb25lIGJvZ3VzIGZpZWxkIG5hbWUgaW4gU29sYXJpcwogICBwcm9jIHN0cnVjdHVyZS4KCjIwMDgtMDctMzAgMTc6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjAwMzE0NDogSW5jcmVhc2Ugc2l6ZSBvZiBBZ2VudFggcGFja2V0CiAgIGJ1aWxkIGJ1ZmZlcgoKMjAwOC0wNy0zMCAwNzo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMjAyNzgzNDogRXh0ZW5kIHN0cmluZyBwcmludCBidWZmZXIgYnkgdGhlCiAgIG1pbmltdW0gbmVjZXNzYXJ5LgoKMjAwOC0wNy0yOSAyMzozNCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BycHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYzoKCiAgIEZpeCBhc3NvcnRlZCBzaWxseSB0eXBvcyAtIHVuYmFsYW5jZWQgcGFyZW50aGVzZXMKICAgYW5kIHRoZSB3cm9uZyB0eXBlIGVudW1lcmF0aW9uIHZhbHVlIG5hbWVzLgoKMjAwOC0wNy0yOSAyMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jOgoKICAgRW5zdXJlIHN3cnVuIGRhdGEgaXMgYXZhaWxhYmxlIGZvciB0aGUgcHJUYWJsZSBjYWxscywKICAgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBoclNXUnVuVGFibGUgdG8gdHJpZ2dlciB0aGlzLgoKMjAwOC0wNy0yOSAxNjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhKSBGaXggdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpbiBqdXN0IG9uZSBwbGFjZQogICAobWFrZXMgaXQgZWFzaWVyIHRvIGNoYW5nZSBpZiBuZWNlc3NhcnkpCiAgIGIpIEZpeCB2YXJpb3VzIHVuZm9ydHVuYXRlIGxpbmUtYnJlYWtzICh3aXRoaW4gInBkdS0+ZmxhZ3MiKQoKMjAwOC0wNy0yOSAxNjowNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgSWYgdGhlIHJlLXdyaXR0ZW4gU1dSdW4gbW9kdWxlIGlmIGF2YWlsYWJsZSwgdGhlbiB1c2UgaXQgZm9yCiAgIHRoZSBVQ0Qtc3BlY2lmaWMgcHJUYWJsZSBhcyB3ZWxsIGFzIHRoZSBoclNXUnVuVGFibGUuCiAgIENvbnNpc3RlbmN5IGlzIGdvb2QuLi4uCgoyMDA4LTA3LTI5IDE1OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIFN1cHByZXNzIGp1bmsgaW4gaHJTV1J1bk5hbWUgJiBoclNXUnVuUGFyYW1ldGVycyB2YWx1ZXMKCjIwMDgtMDctMjkgMTA6MjcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmM6CgogICBUaGUgY2FjaGUvY29udGFpbmVyIHJlbGF0ZSB0byB0aGUgZGF0YSBpdHNlbGYsIHNvIHNob3VsZAogICBtb3JlIG5hdHVyYWxseSBiZSBoYW5kbGVkIGJ5IHRoZSBkYXRhX2FjY2VzcyBtb2R1bGUsCiAgIHJhdGhlciB0aGFuIGEgcGFydGljdWxhciBNSUIgdGFibGUgbW9kdWxlLgoKMjAwOC0wNy0yOCAyMToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgJ3VzZWQnIGFuZCAnZnJlZScgYXJlIG5vdCB0aGUgc2FtZSB0aGluZywgRGF2ZS4gUGF5IGF0dGVudGlvbiBhdAogICB0aGUgYmFjay4uLi4KCjIwMDgtMDctMjggMTQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjAyMzgwMzogRW5zdXJlIGNvbXBpbGF0aW9uIGlzIG5vdCBkZXBlbmRlbnQKICAgb24gYW4gaXJyZWxldmFudCBjb25maWd1cmUgY2hhcmFjdGVyaXN0aWMgZm9yIEhQLVVYIDExCgoyMDA4LTA3LTI4IDEwOjU2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMTk2NDEzNjogRHJvcCBOVUxMIHR5cGUgZnJvbSBzbm1wc2V0IHVzYWdlCiAgIG1lc3NhZ2UuCgoyMDA4LTA3LTI1IDE0OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmg6CgogICBVc2UgJy0tZW5hYmxlLW5ldy1mZWF0dXJlcycgbWVjaGFuaXNtIHRvIGluY2x1ZGUgaHJTVyogcmUtd3JpdGVzCgoyMDA4LTA3LTI1IDE0OjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9jeWd3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9udWxsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BycHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYzoKCiAgIFByZWxpbWluYXJ5IE9TLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBSdW5uaW5nIGFuZCBJbnN0YWxsZWQKICAgU29mdHdhcmUgZGF0YSBhY2Nlc3MuCgoyMDA4LTA3LTI0IDIzOjIyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAyMDI3MTI5OiBmaXggdHlwbyBpbiBzbm1wY21kLjEKCjIwMDgtMDctMjQgMTA6MDAgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzZWRzY3JpcHQuaW46CgogICByZWZsZWN0IGRlZmF1bHQgdGVtcCBmaWxlIHBhdHRlcm4gaW4gbWFuIHBhZ2UgaWYgaXQncyBtb2RpZmllZCBieQogICAuL2NvbmZpZ3VyZSBzY3JpcHQKCjIwMDgtMDctMjQgMDg6MzYgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBhZGQgLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuIGNvbmZpZ3VyZSBvcHRpb24KCjIwMDgtMDctMjQgMDY6NTMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODIzODAwOiByZWxlYXNlIGFuZCByZWxvYWQgYWxsIHRyYXAKICAgZGVzdGluYXRpb25zIG9uIFNJR0hVUAoKMjAwOC0wNy0yMiAxNDozMyAganNhZnJhbmVrCgogICAqIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluOgoKICAgZml4IG5ldC1zbm1wLWNyZWF0ZS12My11c2VyIHRvIHJ1biB3aXRob3V0IGFyZ3VtZW50cwoKMjAwOC0wNy0yMiAxNDoyMSAganNhZnJhbmVrCgogICAqICAuLCBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbiwgICAKICAgICAgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW46CgogICBORVdTOiBtaXNjOiBzZXBhcmF0ZSB1c2VyIG1hbmFnZW1lbnQgZnJvbSBuZXQtc25tcC1jb25maWcgaW50bwogICBuZXcgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIgc2NyaXB0CgoyMDA4LTA3LTIxIDEzOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAxOTQ0NTgxOiBQcm90ZWN0IGFnYWluc3QgY29yZSBkdW1wcyB3aXRoCiAgIGxvbmcgc3RyaW5nIGluZGV4IHZhbHVlcy4KCjIwMDgtMDctMTggMTU6MTkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbmV3IHNpZ25pbmcga2V5CgoyMDA4LTA3LTE3IDEwOjA1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjAxODAzMTogRG9uJ3QgcHJvYmUgZW5naW5lSUQgaW4gaW50ZXJuYWwKICAgbW9uaXRvciBzZXNzaW9ucy4KCjIwMDgtMDctMTAgMTk6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZml4IGEgcmVnZXhwIHF1b3RlCgoyMDA4LTA3LTEwIDE0OjEyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBidWlsZCBmaXggZm9yIHN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIGdldGFkZHJpbmZvIChlLmcuIEhQLVVYCiAgIDExLjAgYW5kIGVhcmxpZXIsIFNvbGFyaXMgNyBhbmQgZWFybGllcikKCjIwMDgtMDctMTAgMTM6NTAgIGFsZXhfYgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCVUc6IDIwMTQ1MjY6IFdpbjMyOgogICBzbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaCBub3QgaW5zdGFsbGVkCgoyMDA4LTA3LTA2IDE1OjA1ICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9idWlsZC5wbCwgICAKICAgICAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1bGRpbmc6IEFkZCBzdXBwb3J0IGZvciB3aW5FeHRETEwgdG8gYnVpbGQuYmF0ICh3aW4zMikKCjIwMDgtMDctMDYgMTI6MzggIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMiBidWlsZCBmaXhlcyAtIGFkZCBtaXNzaW5nIGZ1bmN0aW9uIGZvciBETEwgYnVpbGQuCgoyMDA4LTA3LTAyIDEyOjM5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDIwMDY3ODY6IEludGVyZmFjZSBuYW1lIGNhbiBoYXZlIG1vcmUgdGhhbiA4CiAgIGNoYXJhY3RlcnMuCgoyMDA4LTA2LTI1IDE3OjM5ICB0YW5kZXJzCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5MTY4NDA6IG5ldyBjb25maWcgb3B0aW9uIHRvIHNldCBTTk1QdjEgdHJhcAogICBhZ2VudCBhZGRyZXNzCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxOTE2ODQwOiBpbnRyb2R1Y2UKICAgbmV0c25tcF9nZXRob3N0YnluYW1lX3Y0CgoyMDA4LTA2LTI1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYXNzZXJ0aW9uIHdoZW4gdXNlZCB3aXRoIHBlcmwgNS4xMAoKMjAwOC0wNi0yNCAwNTowMSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IEJVRzogMjAwMTEyNDogQWxsb3cgZW1iZWRkZWQgTlVMCiAgIGNoYXJhY3RlcnMgaW4gdXNtVXNlclB1YmxpYwoKMjAwOC0wNi0yMyAxOTo1NyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgT25seSByZXNlcnZlIHNwYWNlIGZvciB0aGUgZXh0cmEgXDAgYWZ0ZXIgdGhlIGRhdGEgZm9yIE9DVEVUCiAgIFNUUklORyB2YWx1ZWQgZW50aXRpZXMKCjIwMDgtMDYtMjMgMTk6MTMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIHRlc3RzIGlmIHRoZSBhZ2VudCBpcyBidWlsdCB3aXRob3V0CiAgIHRoZSBtaWIgbW9kdWxlIHRoZXkgZGVwZW5kIG9uLgoKMjAwOC0wNi0yMSAxMjoxNCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZW1vdmUgc3B1cmlvdXMgQUNfTVNHX1JFU1VMVCBpbnNpZGUgYW4gQUNfQ0FDSEVfQ0hFQ0sKCjIwMDgtMDYtMTggMDU6MDcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSGFuZGxlIHNvbGFyaXMgYXdrIGFzIHdlbGwuCgoyMDA4LTA2LTE3IDE2OjAxICB0YW5kZXJzCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTk5NTc1MzogZnJvbSB2b2xrb3ZfcGV0ZXI6IG1pbm9yIGNsZWFudXAKICAgYWdlbnQvYXV0b19ubGlzdC5jCgoyMDA4LTA2LTE3IDA4OjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBGaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBzcHJpbnRmIGZvciBUQ1AvSVB2NgogICBDcm9zcy1wb3J0IG9mIHJldmlzaW9uIDE2NjY4CgoyMDA4LTA2LTE2IDIzOjU1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE5OTUxNzI6IGZpeCAtLXdpdGhvdXQtZWxmIGNvbmZpZ3VyZSB1c2FnZQogICBtZXNzYWdlCgoyMDA4LTA2LTEzIDIyOjE2ICBkdHMxMgoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXMsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBJbXByb3ZlZCBSUE0gc3BlYyBmaWxlcywgZm9yIGJldHRlciBjb25zaXN0ZW5jeQogICB3aXRoIHZlbmRvci1wcm92aWRlZCBwYWNrYWdlcy4KICAgUHJvdmlkZWQgYnkgSmFuIFNhZnJhbmVrCgoyMDA4LTA2LTEzIDIxOjAzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTg5OTc2MjogVHdlYWsgZW1iZWRkZWRfcGVybCBjb25maWd1cmUKICAgY2hlY2tzLgoKMjAwOC0wNi0xMyAwNTo0MyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBidWlsZGluZzogUmV0aXJlIHRoZSBjb25maWdfb2xkL25ld19yZXF1aXJlIGZlYXR1cmUgYW5kCiAgIHJlcGxhY2UgaXQgd2l0aCBjb25maWdfdmVyc2lvbl9yZXF1aXJlIHRoYXQgY29tcGFyZXMgdmVyc2lvbgogICBudW1iZXJzIHRvIGFjaGlldmUgYSBzaW1pbGFyIHRoaW5nCgoyMDA4LTA2LTEyIDEyOjUwICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgT25seSBhZGQgbm9uLWRlZmF1bHQgTUlCIG1vZHVsZXMgdG8gdGhlIHRlc3QgYnVpbGRzLgogICBTcGVjaWZ5aW5nIHRoZSBob3N0IG1vZHVsZSBpcyBub3QgbmVlZGVkIG9uIExpbnV4IHN5c3RlbXMsCiAgIGFuZCBtYXkgYnJlYWsgb24gb3RoZXIgTy9Tcy4gU3BlY2lmeWluZyB0aGUgZGlzbWFuL2V2ZW50CiAgIE1JQiBpcyB1bm5lY2Vzc2FyeSBvbiBhbnkgc3lzdGVtLgoKMjAwOC0wNi0xMSAxMDoxNiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIE9ubHkgZW5hYmxlIElQWCB0cmFuc3BvcnQgb24gTGludXggc3lzdGVtcwoKMjAwOC0wNi0xMCAxNDozNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHNubXBkOiBQQVRDSDogMTkxODM4MzogRml4IERpc01hbiBtb25pdG9yaW5nIG9mIEFnZW50WCBzdWJhZ2VudHMKICAgTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBhY3R1YWxseSB1c2UgdGhlIGNvZGUgc3VibWl0dGVkIGluIHRoYXQKICAgcGF0Y2guCiAgIEluc3RlYWQgaXQgaW5zZXJ0cyBhIGNhbGxiYWNrIGhvb2sgaW50byB0aGUKICAgc25tcF9zeW5jaF9yZXNwb25zZV9jYgogICByb3V0aW5lICh1c2luZyB0aGUgbXl2b2lkIHBvaW50ZXIgYW5kIGEgbmV3IHNlc3Npb24gZmxhZyksIHdoaWNoCiAgIGhhcwogICB0aGUgc2FtZSBlZmZlY3Qgd2l0aG91dCBuZWVkaW5nIHRvIGR1cGxpY2F0ZSBhbnkgY29kZS4KCjIwMDgtMDYtMTAgMTI6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBGaXggbG9naWMgZXJyb3JzIGluIGhhbmRsaW5nIG9mIG9sZC9jdXJyZW50IHZhcmJpbmQgbGlzdHMuCiAgIFJlcG9ydGVkIGJ5IEZyZWQgR2FvIGluIHBhdGNoICMxOTE4MzgzCgoyMDA4LTA2LTA5IDE5OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICB1cGRhdGUgdG8gbWF0Y2ggcHVibGlzaGVkIHJlbGVhc2UKCjIwMDgtMDYtMDkgMTY6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWRkZWQgc25tcF92ZXJzaW9uLmMKCjIwMDgtMDYtMDkgMDk6MDUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmM6CgogICBBIGNvdXBsZSBtb3JlIG1pc3NpbmcgZXJyb3IgY2hlY2tzLgogICBCYXNlZCBvbiB0aG9zZSByZXBvcnRlZCBieSBCb3lhIFN1bgoKMjAwOC0wNi0wNiAxMjowMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBCZXR0ZXIgaGFuZGxpbmcgb2YgZW1iZWRkZWQgcGVybCBvbiBNYWMgT1MvWAogICAobmVhcmx5IHdvcmtpbmcgb24gTGVvcGFyZCBub3cpCgoyMDA4LTA2LTAzIDIzOjE0ICB0YW5kZXJzCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmM6CgogICBORVdTOiBhaXg6IEFkZCBzdXBwb3J0IGZvciBBSVggNi54CgoyMDA4LTA2LTAzIDIyOjQ2ICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICBORVdTOiBidWlsZDogVXBkYXRlIHRvIGxpYnRvb2wgMS41LjI2IChmcm9tIDEuNS4yNCksIGUuZy4gdG8KICAgYmV0dGVyIHN1cHBvcnQgQUlYIDYuMSBhbmQgTWFjIE9TIFggTGVvcGFyZAoKMjAwOC0wNi0wMyAyMjozOSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgd2h5IGFkZCBsZWdhY3kgZGVmaW5pdGlvbnMgZm9yIG5ldyBzdHVmZj8KCjIwMDgtMDYtMDMgMDk6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEVuc3VyZSB0aGUgZGVmYXVsdCBpbnRlcm5hbCBxdWVyeSBzZXNzaW9uIGhhcyBhIHZhbGlkIGVuZ2luZUlELAogICB0byBhdm9pZCBoYXZpbmcgdG8gcHJvYmUgZm9yIGl0IG9uIHRoZSBmaXJzdCB1c2UuCgoyMDA4LTA2LTAyIDIyOjE3ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IENvbnZlcnQgZ2VuZXJpYyBzb3VyY2UgYXJndW1lbnRzIGZyb20gY29uc3QKICAgdV9jaGFyKiB0byBjb25zdCB2b2lkKiBmb3Igc25tcF9wZHVfYWRkX3ZhcmlhYmxlLAogICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlLCBzbm1wX3NldF92YXJfdmFsdWUsCiAgIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZSBhbmQgbWVtZHVwLgoKMjAwOC0wNi0wMiAxMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAidHJpZ2dlciBhcm1lZCIgZmxhZyBpcyBjbGVhcmVkIHdoZW5ldmVyIHRoZQogICBtYXRjaGluZwogICBleHByZXNzaW9uIGlzIGZvdW5kIHRvIGhvbGQgLSBldmVuIGlmIHRoZSB0cmlnZ2VyIGRvZXNuJ3QKICAgYWN0dWFsbHkgZmlyZS4KICAgVGhpcyBhZmZlY3RzIHRoZSBiZWhhdmlvdXIgb2YgaW5pdGlhbGx5LXRydWUgZXhwcmVzc2lvbnMsIHdoZW4KICAgdGhpcwogICBpbml0aWFsIGZpcmluZyBpcyBzdXBwcmVzc2VkIHVzaW5nIHRoZSBtdGVUcmlnZ2VyKlN0YXJ0dXAgb2JqZWN0LgogICBXaXRob3V0IHRoaXMgdHdlYWssIHRoZSB0cmlnZ2VyIHdpbGwgZmlyZSBvbiB0aGUgc2Vjb25kIHNhbXBsaW5nCiAgIChhcyBpZiB0aGUgZXhwcmVzc2lvbiBoYWQgZXZhbHVhdGVkIGZhbHNlIGZpcnN0IHRpbWUgcm91bmQpLgoKMjAwOC0wNi0wMSAyMDowMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oOgoKICAgSGFuZGxlIHZhcmJpbmQgcGF5bG9hZCBmb3IgaW50ZXJuYWwgbGlua1VwL0Rvd24gbm90aWZpY2F0aW9ucy4KCjIwMDgtMDYtMDEgMDY6NDUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgTkVXUzogc25tcHRyYXBkOiBCVUc6IDE5NTUyMjc6IE1lbW9yeSBsZWFrIGZvciBlbWJlZGRlZCBQZXJsIG9uCiAgIHg4Nl82NAoKMjAwOC0wNS0zMSAxMjowOCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBUaGUgc2NhbGFyIGhlbHBlciB0aGF0IHdhcyBjYWxsZWQgZnJvbSB0aGUKICAgc2NhbGFyX2dyb3VwIGhlbHBlciBkaWQgbm90aGluZyBzYXZlIGFkZGluZyBhIHRyYWlsaW5nIDAgdG8gdGhlCiAgIGFyZ3VtZW50LiBSZW1vdmUgdGhlIHVzZSBvZiB0aGUgc2NhbGFyIGhlbHBlciBmcm9tIHRoZQogICBzY2FsYXJfZ3JvdXAgYW5kIGFkZCB0aGUgdHJhaWxpbmcgMCBpbiB0aGUgc2NhbGFyX2dyb3VwIGhlbHBlci4KCjIwMDgtMDUtMzAgMTM6NTYgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBUd2VhayBsaXN0IG9mIG9uLWxpbmUgc29mdHdhcmUgZGlyZWN0b3JpZXMgdG8gYmUgdXBkYXRlZC4KCjIwMDgtMDUtMjkgMDk6NTkgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIGFwcHMvc25tcHRlc3QuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBWYXJpb3VzIG1pc3NpbmcgZXJyb3IgY2hlY2tzLCBldGMuCiAgIFJlcG9ydGVkIGJ5IEJveWEgU3VuLgoKMjAwOC0wNS0yOCAxMTo0OCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFJlcG9ydCBjYWNoZWQgbWVtb3J5IHNpemUvdXNhZ2UgcHJvcGVybHkgKHBhcnRpY3VsYXJseSBvbgogICBGcmVlQlNEKS4KCjIwMDgtMDUtMjggMTE6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQnJpbmcgbWVtQnVmZmVyIGNvZGUgaW50byBsaW5lIHdpdGggcmV2aXNpb24gMTY5NzUuCgoyMDA4LTA1LTI4IDExOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBMaW51eCAyLjYga2VybmVsIGRvZXMgbm90IHJlcG9ydCBzaGFyZWQgbWVtb3J5IGluZm9ybWF0aW9uLgoKMjAwOC0wNS0yOCAwOToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTkzMTM5MTogRml4IHJlcG9ydGluZyBvZiBNZW1vcnkgYnVmZmVycyBhbmQKICAgY2FjaGVkIG1lbW9yeS4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBkb2NvbmVpbGwuCgoyMDA4LTA1LTI4IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFR3ZWFrIHRoZSBmaXggZm9yIGJ1ZyAjMTkxMjY0NwoKMjAwOC0wNS0yOCAwNjo1NiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBFbmZvcmNlIHRoZSBsb3dlciBsaW1pdCBvbiBzY2FsYXJfZ3JvdXBzCiAgIFRoaXMgZml4ZXMgdGhlIGNhc2Ugb2YgZ2V0bmV4dCBpY21wLjAgcmV0dXJuaW5nIGljbXAuMC4wIGluc3RlYWQKICAgb2YgdGhlCiAgIGV4cGVjdGVkIGljbXBJbk1zZ3MuMAoKMjAwOC0wNS0yNyAyMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE5MTI2NDc6IEZpeCBtZW1vcnkgbGVhayBmb2xsb3dpbmcgZmFpbGVkCiAgIHJlcXVlc3RzLgogICBGaXggcHJvdmlkZWQgYnkgQW50b24gUGFrCgoyMDA4LTA1LTI3IDIxOjIyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE5NTgwNDE6IEVuc3VyZSBJRHMgYXJlIG5vdCB0cnVuY2F0ZWQuCgoyMDA4LTA1LTI3IDE0OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYzoKCiAgIE1vbml0b3IgbWVtb3J5IGJ1ZmZlcnMgb24gRnJlZUJTRCBzeXN0ZW1zLgogICBBUEkgc3VnZ2VzdGVkIGJ5IENocmlzCgoyMDA4LTA1LTI3IDEyOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgRml4IGNhcmVsZXNzIHR5cG8gd2hlbiBhcHBseWluZyBNYXhpbSdzIHBhdGNoLgoKMjAwOC0wNS0yNSAyMTozNyAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBSZWltcGxlbWVudGF0aW9uIG9mIHVzbVN0YXRzLgoKMjAwOC0wNS0yNSAwNzoyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jOgoKICAgUmVtb3ZlIGEgbG9jYWwgdmFyaWFibGUgb25seSB1c2VkIHRvIHRyYWNrIGEgbG9jYWwgc3RyaW5nCiAgIGNvbnN0YW50IGFuZCByZXBsYWNlIHQgd2l0aCBhIGRpcmVjdCByZWZlcmVuY2UgdG8gdGhlIHN0cmluZwogICBjb25zdGFudC4KICAgTWFyayB0d28gbG9jYWwgZnVuY3Rpb25zIHN0YXRpYyBhcyB3ZWxsLgoKMjAwOC0wNS0yNSAwNzoxNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgUmVvcmRlciB0byBhdm9pZCBvbmUgc3RybGVuIGNhbGwuCiAgIEFkZCBtaXNzaW5nIGNhc3QuCgoyMDA4LTA1LTI1IDA3OjE0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgTWFrZSBpcGZ3X25hbWUgYSBzdGF0aWMgYXJyYXkgaW5zdGVhZCBvZiBhIHBvaW50ZXIgYXMgaXQgaXMKICAgcHJpdmF0ZSB0byB0aGlzIG1vZHVsZS4KCjIwMDgtMDUtMjUgMDc6MDUgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIFdoZW4gY2FzdGluZywgY2FzdCB0byB0aGUgcmlnaHQgdHlwZS4KCjIwMDgtMDUtMjUgMDY6MDggIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBSZW1vdmUgd2FybmluZ3MgYWJvdXQgdW5yZWFjaGFibGUgY29kZSBvbiBzb2xhcmlzLgoKMjAwOC0wNS0yNCAyMDozMCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAxODI2MTc0OiBDaGVjayBmb3IgYnVmZmVyIG92ZXJmbG93IHdoZW4KICAgcHJpbnRpbmcgdmFsdWVzLgogICBBZGRyZXNzZXMgQ1ZFLTIwMDgtMjI5MgoKMjAwOC0wNS0yNCAxMzoxMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBPbiBBSVggbmV0aW5ldC9pbl9wY2IuaCBkZXBlbmRzIG9uIG5ldC9yb3V0ZS5oLiBBZGQgdGhlIGluY2x1ZGUKICAgZm9yIGNvbmZpZ3VyZS4KCjIwMDgtMDUtMjQgMDk6MDYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1ha2UgdGhlIGNoZWNrcyBmb3IgbmV0aW5ldC9pbl9wY2IuaCBhbmQgc3lzL2Rpc2tsYWJlbC5oIHVzZSB0aGUKICAgbm9ybWFsCiAgIG1hY2hpbmVyeS4KICAgQWRkIGEgbmV0c25tcCBwcmVmaXggdG8gdGhlIGNhY2hlIHZhcmlhYmxlCiAgIGN2X3N5c19pb2N0bF9oX2hhc19TSU9DR0lGQUREUiB0bwogICBwYWNpZnkgYWNsb2NhbC4KCjIwMDgtMDUtMjMgMjA6MjcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogRml4IGZvciBDUFUgc3RhdHMgb24gRnJlZUJTRAogICBQcm92aWRlZCBieSBNYXhpbSBTb2JvbGV2CgoyMDA4LTA1LTIzIDIwOjEyICBkdHMxMgoKICAgKiBkaXN0L3NubXBkLWluaXQuZCwgZGlzdC9zbm1wdHJhcGQtaW5pdC5kOgoKICAgQ0hBTkdFUzogaW5zdGFsbDogUEFUQ0g6IDE5Njk2Mjc6IEhhbmRsZSBlbXB0eQogICAvZXRjL3N5c2NvbmZpZy9uZXR3b3JrIGZpbGUKICAgRml4IHByb3ZpZGVkIGJ5IEpvc2ggV2lsbWVzCgoyMDA4LTA1LTIzIDIwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTk2NzE5NDogUmVjb2duaXNlIE5GUzQgbW91bnRzCiAgIFN1Ym1pdHRlZCBieSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwOC0wNS0yMiAyMDo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBEb24ndCBjaGFuZ2UgbGVuZ3RoIG9mIE9JRCBidWZmZXIgaWYgcGFyc2luZyB0aGUgT0lEIGZhaWxzLgogICBSZXBvcnRlZCBieSBzYWlmdWxsYSBNb2hkIEFiZHVsLgoKMjAwOC0wNS0yMiAxMzozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGUgdGhlIGFkdmVydGlzaW5nIHNlY3Rpb24gYW5kIGNoYW5nZSBub3RlIGFib3V0IGhvdyB0bwogICB1cGxvYWQgZmlsZXMgKGFkZGluZyBhbiBhdXRvbWF0dGVkIHJzeW5jIGNvbW1hbmQpCgoyMDA4LTA1LTIyIDA0OjA4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGUuCgoyMDA4LTA1LTIxIDIwOjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB0aGUgYWxpYXMgbW9kdWxlIHdpdGggYSBDKysgY29tcGlsZXIuCgoyMDA4LTA1LTIxIDEzOjQwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZGVkIEZTRiBkaXJlY3RvcnkgaW5mbwoKMjAwOC0wNS0yMSAwOToyMSAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIEFkZCBGcmVlIFNvZnR3YXJlIERpcmVjdG9yeSB0byB0aGUgbGlzdCBvZiBwbGFjZXMgdG8gYmUgdXBkYXRlZC4KCjIwMDgtMDUtMjAgMjM6MDAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogVGhlIG1ham9yaXR5IG9mIHRoZSBkZXBlbmRlbmNpZXMgb24gdXRpbF9mdW5jcyBpcwogICBmb3IgdGhlIGhlYWRlcl8qIGZ1bmN0aW9ucy4gRmFjdG9yIG91dCB0aGUgaGVhZGVyXyogZnVuY3Rpb25zIGFuZAogICBhZGp1c3QgdGhlIHJlcXVpcmVtZW50cy4KCjIwMDgtMDUtMjAgMjI6NDAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogRG8gbm90IGNvbmZpZ19yZXF1aXJlKHV0aWxfZnVuY3MpIGlmIG5vdGhpbmcgZnJvbQogICB1dGlsX2Z1bmNzIGlzIHVzZWQKCjIwMDgtMDUtMTQgMTM6MzUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgZml4IGJ1aWxkIGZhaWx1cmVzIHdpdGggZWFybGllciBMaW51eCBrZXJuZWxzIChlLmcuIHdpdGggUkg3LjEpCiAgIGludHJvZHVjZWQgYnkgcjE2OTA5CgoyMDA4LTA1LTEzIDE4OjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IGNvbW1lbnQgdHlwbwoKMjAwOC0wNS0xMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IHRoZSAtdCBzd2l0Y2ggY2hhbmdlCgoyMDA4LTA1LTEzIDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSBhbGlhcyBrZXl3b3JkCgoyMDA4LTA1LTEzIDE1OjQxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGFsbG93IGZsb2F0aW5nIHBvaW50IG51bWJlcnMgdG8gYmUgdXNlZCBmb3IgdGltZW91dCB2YWx1ZXMKCjIwMDgtMDUtMTIgMjE6MTEgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0LCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jOgoKICAgQWRkZWQgYSByZWFsIHNubXBBbGlhc0RvbWFpbiBPSUQgZGVmaW5pdGlvbgoKMjAwOC0wNS0xMiAyMTowNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZWQgTkVXUyB3aXRoIG5ldyBhbGlhcyBibHVyYgoKMjAwOC0wNS0xMiAyMTowNyAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFsaWFzRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IEFkZGVkIGEgYWxpYXMgdHJhbnNwb3J0IGZvciBtYXBwaW5nIGNvbXBsZXgKICAgdHJhbnNwb3J0IHN0cmluZ3MgdG8gc2ltcGxlIG5hbWUgZGVmaW5pdGlvbnMKCjIwMDgtMDUtMTIgMTk6MzggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgc3RyaXAgb2ZmIHRyYWlsaW5nIG1vZHVsZSBuYW1lCgoyMDA4LTA1LTEyIDA2OjAzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgTWFrZSBtaWJJSS9zbm1wIHdvcmsgYWdhaW4uCgoyMDA4LTA1LTEwIDIxOjQ3ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA4LTA1LTEwIDA5OjU1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogUmVwbGFjZSB0aGUgaW52YWxpZCAlMDhwIGZvcm1hdAogICBzcGVjaWZpZXIgd2l0aCB0aGUgY29ycmVjdCAlOHAuCgoyMDA4LTA1LTEwIDA5OjUxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbmV0c3RhdCwgc25tcHRyYXBkLCBzbm1wZGVsdGE6IFVzZSBOVUxMCiAgIGluc3RlYWQgb2YgMCBmb3IgTlVMTCBwb2ludGVycy4gVXNlIGNhc3RlZCAwJ3MgaW5zdGVhZCBvZiAwIGZvcgogICBOVUxMIGZ1bmN0aW9uIHBvaW50ZXJzLgoKMjAwOC0wNS0xMCAwOTo0MCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDUtMTAgMDk6MzkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGluY2x1ZGUgZmlsZXMuCgoyMDA4LTA1LTEwIDA5OjMzICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWIsIG1pYjJjOiBNb3ZlIHRoZSBkZWZpbml0aW9uIG9mIGlubGluZQogICBmdW5jdGlvbnMgc28gdGhhdCB0aGUgY29tcGlsZXIgc2VlcyB0aGVtIGJlZm9yZSBpdCBzZWVzIHVzZXMgb2YKICAgdGhlbS4KCjIwMDgtMDUtMTAgMDk6MzAgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFJlbW92ZSB0aGUgaW5saW5lIGRlY2xhcmF0aW9ucyBmb3IKICAgZnVuY3Rpb25zIHRoYXQgbGFjayBhbiBpbmxpbmUgZGVmaW5pdGlvbi4KCjIwMDgtMDUtMDkgMjE6MzUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAKICAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgCiAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgIAogICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBVc2UgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgcG9pbnRlcnMuCiAgIFVzZSBjYXN0ZWQgMCdzIGluc3RlYWQgb2YgMCBmb3IgTlVMTCBmdW5jdGlvbiBwb2ludGVycy4KCjIwMDgtMDUtMDkgMjE6MjcgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAKICAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogZml4dXBzIGZvciBwcm90b3R5cGUgWyh2b2lkKSByZXBsYWNpbmcKICAgKCldLgoKMjAwOC0wNS0wOSAyMToyMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmM6CgogICBSZW1vdmUgZGVhZCBjb2RlLgoKMjAwOC0wNS0wOSAxOToxNiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIE1pc3NpbmcgTUQ1IHNpZ25hdHVyZSBmaWxlIGZvciB6aXAgcmVsZWFzZQoKMjAwOC0wNS0wOSAxOToxNSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIEJhc2ljIGRvY3VtZW50YXRpb24gYW5kIGhlbHAvdXNhZ2UgbWVzc2FnZXMuCgoyMDA4LTA1LTA4IDE0OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBEcm9wIHN1cHBvcnQgZm9yIHRoZSBpbnRlcmltIFNJT0NERVZQUklWQVRFLWJhc2VkIGlvY3RsIGNhbGxzLgogICBTSU9DR01JSVBIWS9TSU9DR01JSVJFRyBoYXZlIGJlZW4gZGVmaW5lZCBzaW5jZSBhdCBsZWFzdCBTZXB0CiAgIDIwMDEgKGtlcm5lbCAyLjQuMTApLAogICBzbyB0aGUgcmlzayBvZiBjYWxsaW5nIGFuIGluYXBwcm9wcmlhdGUgcHJpdmF0ZSBpb2N0bCBpcyBwcm9iYWJseQogICBncmVhdGVyIHRoYW4KICAgdGhhdCBvZiBtaXNzaW5nIGluZm9ybWF0aW9uIGZyb20gYW4gYW5jaWVudCBzeXN0ZW0uCgoyMDA4LTA1LTA4IDA5OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEb24ndCB0cnkgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYW5vbnltb3VzIHVzZXJzLgogICAoQW4gaW52YWxpZCB0cmFwc2VzcyBkaXJlY3RpdmUgbWF5IGNyYXNoIHRoZSBhZ2VudCkKCjIwMDgtMDUtMDYgMDg6MzggIGpzYWZyYW5lawoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHJlbW92ZSAle2xpYmN1cnJlbnR9CiAgIC0gYWRkIG9wZW5zc2wtZGV2ZWwgdG8gYnVpbGQgcmVxdWlyZW1lbnRzCiAgIC0gZG9uJ3QgdXNlIFByb3ZpZGVzOiB1bmxlc3MgbmVjZXNzYXJ5LCBsZXQgcnBtYnVpbGQgY29tcHV0ZSB0aGUKICAgcHJvdmlkZWQgbGlicmFyaWVzCiAgIC0gZG9uJ3Qgc3BlY2lmeSBQUkVGSVggZm9yIHBlcmwKCjIwMDgtMDUtMDYgMDg6MzggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF90cmFwLmM6CgogICByZXZlcnRpbmcgYWNjaWRlbnRhbHkgY29tbWl0ZWQgZmlsZXMKCjIwMDgtMDUtMDYgMDg6MzQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIHJlbW92ZSAle2xpYmN1cnJlbnR9CiAgIC0gYWRkIG9wZW5zc2wtZGV2ZWwgdG8gYnVpbGQgcmVxdWlyZW1lbnRzCiAgIC0gZG9uJ3QgdXNlIFByb3ZpZGVzOiB1bmxlc3MgbmVjZXNzYXJ5LCBsZXQgcnBtYnVpbGQgY29tcHV0ZSB0aGUKICAgcHJvdmlkZWQgbGlicmFyaWVzCiAgIC0gZG9uJ3Qgc3BlY2lmeSBQUkVGSVggZm9yIHBlcmwKCjIwMDgtMDUtMDUgMjE6NDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTWVjaGFuaXNtIHRvIHNlbGVjdCB1cGNvbWluZyBtb2R1bGUgcmUtd3JpdGVzIGFuZC9vcgogICByZWNlbnRseS1kZXByZWNhdGVkIG1vZHVsZXMuCgoyMDA4LTA1LTAyIDEwOjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBIYW5kbGUgdWRwVGFibGUgaW5kZXhpbmcgb24gYm90aCBQUEMgYW5kIEludGVsIGhhcmR3YXJlLgoKMjAwOC0wNC0zMCAxOTo0NSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgdGhlIHN1cHBvcnQgZm9yIGdlbmVyYXRpb24gb2Ygc3RhdGlzdGljcwogICBvZiBob3cgb2Z0ZW4gYSBjZXJ0YWluIGRlYnVnIGxvZyBsZXZlbCBpcyB0cmlnZ2VyZWQuCgoyMDA4LTA0LTMwIDE5OjQxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgdmFyaWFibGUgZGVidWdfbnVtX2V4Y2x1ZGVkLgogICBUaGVyZSBpcyBub3RoaW5nIHRoYXQgc2V0cyBkZWJ1Z19udW1fZXhjbHVkZWQgYW5kIHRoZXJlIGlzIG5vIHdheQogICB0byBmb3IgaXQKICAgdG8gYWZmZWN0IHRoZSByZXN1bHQgb2YgYW55IGZ1bmN0aW9uLgoKMjAwOC0wNC0zMCAwNToyOCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBSZW1vdmUgdW5uY2Vzc2FyeSBwcm90b3R5cGVzCgoyMDA4LTA0LTIzIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFjdHVhbGx5IHVzZSB0aGUgYnJhbmNoIHBhdGgsIGRvbid0IGp1c3Qgc2F5IHlvdSdyZSBnb2luZyB0bwoKMjAwOC0wNC0xOSAyMjoyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIGRvbid0IGRlcGVuZCBvbiBPSUQgcmVzb2x1dGlvbiBmb3IgZGlzbWFuIGxpbmtVcERvd25Ob3RpZmljYXRpb25zCgoyMDA4LTA0LTA4IDIwOjQzICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIEFjY2VwdCB0aGF0IHBlb3BsZSB3aWxsIHRyeSB0byBjb21waWxlIHRoaXMgY29kZSB3aXRoIHByZS1BTlNJCiAgIGNvbXBpbGVycyBhbmQgY2hhbmdlIGl0IHRvIGhhbmRsZSB0aGF0IGNhc2UuCgoyMDA4LTA0LTA4IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYW4gZXh0cmEgYnJhY2UgaW4gdGhlIGRvY3MgcG9pbnRlZCBvdXQgYnkKICAgSmFzb24gTWFydGluCgoyMDA4LTA0LTA4IDIwOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZSBhbmQgcmVzdHJ1Y3R1cmUgYSBiaXQgdG8gZml4IGEgZmV3IHByb2JsZW1zCgoyMDA4LTA0LTA3IDIwOjA2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBcyB0aGUgbnVsbCBoYW5kbGVyIGlzIHBlcmZlY3RseSBjYXBhYmxlIG9mCiAgIGhhbmRsaW5nIEdFVF9CVUxLIHJlcXVlc3RzIGl0IGlzIG5vdyBtYXJrZWQgYXMgc3VjaCBpbiB0aGUKICAgcmVnaXN0cmF0aW9uLgoKMjAwOC0wNC0wNyAxNDowMCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQW5vdGhlciBvdmVyLXNob3J0IERFU0NSSVBUSU9OIGJ1ZmZlci4KCjIwMDgtMDQtMDcgMTM6NTcgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEhhbmRsZSBsb25nZXIgREVTQ1JJUFRJT04vUkVGRVJFTkNFIHN0cmluZ3MgaW4gQ2FwYWJpbGl0aWVzCiAgIHN0YXRlbWVudHMuCiAgIChDb25zaXN0ZW50IHByb2Nlc3Npbmcgd2l0aCBvdGhlciBNSUIgZGVmaW5pdGlvbiBtYWNyb3MpLgogICBGaXggcHJvdmlkZWQgYnkgQWxla3NhbmRyIExvbWFub3YuCgoyMDA4LTA0LTAyIDE5OjM1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtZW50aW9uIGxpYmVsZiBwYWNrYWdlIHJlbmFtZQoKMjAwOC0wMy0yOSAwOToyOSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgCiAgICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIE5FV1M6IHNubXBkOiBFbmFibGUgYXV0b21hdGljIHJlcmVnaXN0ZXJpbmcgb2Ygc3lzT1JUYWJsZSBlbnRyaWVzCiAgIGZyb20gQWdlbnRYIHN1YmFnZW50cy4gQWRkIHRoZSBzeXNPUlRhYmxlIGludGVyZmFjZSB0byB0aGUKICAgaW5jbHVkZSBkaXJlY3RvcnkuIFJld3JpdGUgdGhlIHN5c09SVGFibGUgbW9kdWxlIHRvIHVzZSB0aGUKICAgdGFibGVfY29udGFpbmVyIGhhbmRsZXIuCgoyMDA4LTAzLTI3IDAzOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLCBkaXN0L25ldC1zbm1wLnNwZWMsIGRpc3QvcGF0bWU6CgogICB1bmNvbW1pdCAzIGFjY2lkZW50YWwgbXVsdGlwbGUgZmlsZSBjb21taXRzCgoyMDA4LTAzLTI3IDAzOjE4ICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZSwgZGlzdC9tYWtlcmVsZWFzZS54bWwsIGRpc3QvbmV0LXNubXAuc3BlYywgICAKICAgICAgZGlzdC9wYXRtZToKCiAgIHZhcmlvdXMgcmV3b3JkaW5nLCByZXN0cnVjdHVyaW5nIGFuZCBwcm9wZXIgZmlsZSByZXBsYWNlbWVudAogICBzY2hlbWUKCjIwMDgtMDMtMjYgMDc6NTIgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGZyb20gIkFsZWtzYW5kciBMb21hbm92IjogQ29ycmVjdGVkIHJlZ2lzdGVyaW5nIG9mCiAgIG11bHRpcGxlIHByZW1pYiBjb25maWcgaGFuZGxlcnMgc28gdGhhdCBhbGwgb2YgdGhlbSBnZXQKICAgcmVnaXN0ZXJlZCBhcyBwcmVtaWIgaGFuZGxlcnMgYXMgb3Bwb3NlZCB0byB0aGUgZWFybGllciBiZWhhdmlvdXIKICAgd2hlcmUgdGhleSBhbHdheXMgZ290IHJlZ2lzdGVyZWQgYXMgbm9ybWFsIGNvbmZpZyBpdGVtcy4KCjIwMDgtMDMtMjYgMDc6MTYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogR2V0IHRoZSB0YWJsZV9jb250YWluZXIgZGF0YSBmcm9tIHRoZSByaWdodAogICBoYW5kbGVyIHdoZW4gdW5yZWdpc3RlcmluZyBhIHRhYmxlX2NvbnRhaW5lci4KCjIwMDgtMDMtMjUgMDY6MDcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZW1vdmUgc3B1cmlvdXMgcHJpbnRmIGZyb20gdW5yZWdpc3Rlcl9taWJfY29udGV4dAoKMjAwOC0wMy0yNCAxNzo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxODc0MDU5LDE3MzcwNjg6IEhhbmRsZSBNSUIgb2JqZWN0cyB3aXRoCiAgIGVtYmVkZGVkIGh5cGhlbnMKCjIwMDgtMDMtMjQgMTc6MjkgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxODY2NjU1OiBIYW5kbGUgcGFyc2luZyBpbnZhbGlkIE9JRAogICBzdWJpZGVudGlmaWVycwoKMjAwOC0wMy0yNCAxNjo1MyAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMTkyMTg2MTogQXZvaWQgZW5kbGVzcyBsb29wIGFmdGVyCiAgIHRydW5jYXRpbmcgNjRiaXQgaW50CgoyMDA4LTAzLTI0IDE1OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4MjMzODE6IFZhbGlkIE1JQiBkaXJlY3Rvcnkgc2VhcmNoIHBhdGggb24KICAgV2luZG93cwoKMjAwOC0wMy0yMiAwODo0MiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgc25tcHRyYXBkIHdpdGhvdXQgZW1iZWRkZWQgcGVybCBhZ2Fpbi4KCjIwMDgtMDMtMjEgMTc6NTUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jOgoKICAgTkVXUzogbGlic25tcDogUEFUQ0g6IDE4OTU5Mjc6IGZyb20gamh1bTgxMTE6IGNoYW5nZSBvYnNvbGV0ZQogICByZWN2L3NlbmQgdG8gcmVjdmZyb20vc2VuZHRvCgoyMDA4LTAzLTIxIDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMTg2MjE3NzogZnJvbSB3YWZmbGVzb3VmZmxlOiBtYWRlIGNvZGUKICAgbW9yZSB3aW5kb3dzL2N5Z3dpbiBjb21waWxlciBmcmllbmRsCgoyMDA4LTAzLTIxIDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAxODc3ODQwOiBmaXggTUlCIGxhYmVsIGFuZCBpbmRleGluZyBkdWUKICAgdG8gc2xpZ2h0bHkgYnJva2VuIHJlZ2V4cAoKMjAwOC0wMy0yMSAxNzozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkyMDM5MDogZnJvbSB3aWxtZXNqOiBmaXggcmVnaXN0cmF0aW9uIG9mCiAgIHRhYmxlcyB3aXRoIC4wIGFzIElJRHMKCjIwMDgtMDMtMjEgMTc6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MTQ2NDU6IGZyb20gd2lsbWVzajogYmV0dGVyIGVuZCBvZiBtaWIKICAgc3VwcG9ydAoKMjAwOC0wMy0yMSAxNzoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0NjQzOiBmcm9tIHdpbG1lc2o6IGZpeCBpc3N1ZXMgd2l0aAogICBlbWJlZGRlZCBwZXJsIHJldHVybmluZyAwIGJlaW5nIHJlY2xhc3NpZmllZCBhcyBhIHdyb25nIGRhdGEgdHlwZQogICB3aGVuIGFuIGludCB3b3Jrcy4KCjIwMDgtMDMtMjEgMTc6MjIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIIDE5MTQzOTg6IGZyb20gd2lsbWVzajogaW5zdGFsbAogICBtaWIyYy5wZXJsLmNvbmYKCjIwMDgtMDMtMjEgMTc6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MTQzOTM6IGZyb20gd2lsbWVzajogcmVnaXN0ZXJBZ2VudCBjYW4KICAgbm93IGJlIHJ1biBtdWx0aXBsZSB0aW1lcwoKMjAwOC0wMy0yMSAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTA5ODEzOiBmaXggdGFibGVfaXRlcmF0b3IgaGludCB0byBnZXRfZmlyc3QKICAgd2hlbiBTT1JURUQgZmxhZyBpcyBzZXQKCjIwMDgtMDMtMjEgMTY6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgTkVXUzogc25tcHRyYXBkOiBQQVRDSDogMTkwODI4ODogZnJvbSBhbmVkZWw6IElmIHNubXB0cmFwZCAtZgogICBpbnRlcnJ1cHRlZCB3aXRoIGN0cmwtQyBydW4gcGVybCBFTkQgYmxvY2sKCjIwMDgtMDMtMjEgMTY6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxOTAyMTEzOiBmcm9tIGpzYWZyYW5lazogZml4IGVycm9yIGxvZyBpbgogICBpbmV0TmV0VG9NZWRpYXRhYmxlCgoyMDA4LTAzLTIxIDE2OjEyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxOTAyMTA1OiBmcm9tIGpzYWZyYW5lazogaGlkZSBhbmQgaW1wcm92ZSBkZWJ1ZwogICBsb2cgbWVzc2FnZXMgY3JlYXRlZCBieSBwYXRjaCAxNzA1NTk0CgoyMDA4LTAzLTA3IDE1OjQyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oOgoKICAgSEFMLWJhc2VkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBockZTVGFibGUuCgoyMDA4LTAzLTA3IDE1OjQwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21vdW50cy5oOgoKICAgSW5pdGlhbCBIQUwgaW1wbGVtZW50YXRpb24gb2YgRmlsZVN5c3RlbSBpbmZvcm1hdGlvbgoKMjAwOC0wMy0wNyAxNTozNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3IgZ2V0dmZzc3RhdCgpCgoyMDA4LTAzLTA3IDE1OjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4MjMzODE6IFVzZSBhIHNlbnNpYmxlIGRlZmF1bHQgTUlCRElSIHBhdGgKICAgb24gQ3lnd2luL01pbkdXCiAgIChTaG91bGQgdGhpcyBiZSBhcHBsaWVkIHRvIG90aGVyIGJyYW5jaGVzPyBJZiBzbywgd2hpY2g/KQoKMjAwOC0wMi0yNyAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIEZpeCBDKysgc3R5bGUgY29tbWVudAoKMjAwOC0wMi0yNyAwNzo0OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBUaGUgTFZNIGRpc2sgcGF0Y2ggaW50cm9kdWNlZCBhIG1lbW9yeSBsZWFrLiBUaGlzIHJlbW92ZXMgdGhlCiAgIGxlYWsuCgoyMDA4LTAyLTI2IDIzOjI3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG1ha2UgdGhlIHNjcmlwdCBtb3JlIGhpZXJhcmNoaWFsL3N0cnVjdHVyZWQKCjIwMDgtMDItMjYgMjE6MzYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIENIQU5HRVM6IEluaXRhbGl6ZSBsb2cgc3Vic3lzdGVtCgoyMDA4LTAyLTI2IDIxOjM0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogRml4IGZvciByZWZzIHRvIE9CSkVDVC1HUk9VUCBpbiBhbm90aGVyIE1JQgoKMjAwOC0wMi0yNiAyMToyMyAgbmJhCgogICAqICBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0LCBtaWJzL0RJU01BTi1FWFBSRVNTSU9OLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSVAtRk9SV0FSRC1NSUIudHh0LCBtaWJzL0lQLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQsIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0LCAgIAogICAgICBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBtaWJzL1NOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgICAKICAgICAgbWlicy9UUkFOU1BPUlQtQUREUkVTUy1NSUIudHh0LCBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgVXBkYXRlIHRvIGF1dG9leHRyYWN0ZWQgbWliIGZpbGVzIChibGFuayBsaW5lIGNoYW5tZ2VzKQoKMjAwOC0wMi0yNiAyMDo0NiAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL2lhbmFsaXN0LCBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgZm9yIGN1cnJlbnRseSByZWxlYXNlZCBSRkMgTUlCUwoKMjAwOC0wMi0yNiAyMDo0NSAgbmJhCgogICAqICBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCAgIAogICAgICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BLVJUUFJPVE8tTUlCLnR4dCwgICAKICAgICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgSUFOQSBNSUJTIHRvIGN1cnJlbnQgdmVyc2lvbgoKMjAwOC0wMi0yNSAyMjoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBhZGQgbWlzc2luZyAjaW5jbHVkZTxwdGhyZWFkLmg+IGZvciBwdGhyZWFkX211dGV4X3QKCjIwMDgtMDItMjUgMjI6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBhIGJldHRlciBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMjMgMDA6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzA1NTk0OiBmcm9tIGNfdmFydW46IEZpeCB2YXJpb3VzIGFzcGVjdHMgb2YKICAgbGludXggaXBBZGRyZXNzUHJlZml4VGFibGUgcmVwb3J0aW5nLgoKMjAwOC0wMi0yMiAyMzo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODk2MTE4OiBwYXRjaCBmcm9tIGpzYWZyYW5lazogZml4IGlmVGFibGUKICAgMzJiaXQgY291bnRlcnMgb24gbGludXgKCjIwMDgtMDItMjIgMjM6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBwYXRjaCBmcm9tIGpzYWZyYW5lazogQ3JlYXRlIGlwdjZTY29wZVpvbmVFbnRyeSBvbmx5IGZvcgogICBsaW5rLWxvY2FsIGFkZHJlc3NlcyBhbmQgb25seSBvbmNlIHBlciBpbnRlcmZhY2UuCgoyMDA4LTAyLTIyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTg5ODIwNDogZnJvbSBNaWtlIFdlc2NvdHQ6IGZpeCBidWcKICAgMTg5ODE5OCBpbiBwYXJzZS5jIHRvIGF2b2lkIGEgc2VnZmF1bHQgd2hlbiBwYXJzaW5nIGJyb2tlbiBtaWJzLgoKMjAwOC0wMi0xOCAxMjoxMSAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDbGFyaWZ5IHRoZSBuZWVkIHRvIHJlc2V0IGJ1ZmZlciBsZW5ndGggd2hlbiBjYWxsaW5nICdyZWFkX29iamlkJwogICByZXBlYXRlZGx5LgoKMjAwOC0wMi0xOCAxMDozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0xOCAwNzozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYzoKCiAgIG1ha2Ugc3VyZSB0aGF0IG5ldHNubXBfaXF1ZXJ5X3VzZXJfc2Vzc2lvbiBldCBhbC4gYXJlIHByb3Blcmx5CiAgIGRlY2xhcmVkCgoyMDA4LTAyLTE3IDE4OjAxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwOC0wMi0xNyAwODozOCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE1IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBsb3dlcmVkIGZhaWx1cmUgbWVzc2FnZSB0byBpbnNlcnQgdG8gZGVidWc7IHJlbW92ZWQgQ1ZTIElEIGZyb20KICAgdG9wIG9mIGxpbmUKCjIwMDgtMDItMTUgMTc6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGRvbid0IGluc2VydCBlbXB0eSBlbnRyaWVzCgoyMDA4LTAyLTE1IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBwYXRjaCBmcm9tIGpzYWZyYW5lIG9uIGlyYzogbWFrZSBpcHY2IGVudHJpZXMgd29yayBvbiA2NCBiaXQKICAgbWFjaGluZXMKCjIwMDgtMDItMTUgMTY6MjQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcGFzcyAxIGF0IGEgbmV3IG1ha2VyZWxlYXNlIHNjcmlwdDsgY3VycmVudGx5IGp1c3QgY29udmVydGVkIGNvZGUKICAgbW9zdGx5CgoyMDA4LTAyLTE1IDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIHJlbW92ZSBsaW51eCBjaGVja3MKCjIwMDgtMDItMTUgMTU6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIFJEQV9SVEEKCjIwMDgtMDItMTUgMTU6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGRvbid0IGNvbXBpbGUgaW4gdGhlIGlwdjYgY29kZSBpZiBOREFfUlRBIGlzbid0IGRlZmluZWQKCjIwMDgtMDItMTUgMTM6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0xNSAwNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgbWlub3IgYnVnIHVwZGF0ZSBmcm9tIGNfdmFydW4KCjIwMDgtMDItMTUgMDU6MTMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MDQxMDU6IGZyb20gY192YXJ1bjogQWRkIElQdjYgc3VwcG9ydCB0bwogICB0aGUgaW5ldE5ldFRvTWVkaWFUYWJsZSBmb3IgbGludXgKCjIwMDgtMDItMTUgMDU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgcmVxdWlyZSBuZXcgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUgdGFibGUKCjIwMDgtMDItMTUgMDU6MDAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9lbnVtcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX29pZHMuaCwKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zY29wZXpvbmUuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcxNTQwNTogZnJvbSBjX3ZhcnVuOiBJbXBsZW1lbnQgdGhlCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlIG9uIGxpbnV4CgoyMDA4LTAyLTE1IDA0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzE2NTQ4OiBmcm9tIG15YW1hdG86IEZpeCBoZWxwIG91dHB1dCBzbwogICBubyBzcGFjZSBpcyBwcmludGVkIGJldHdlZW4gLUQgYW5kIGFyZ3VtZW50cy4KCjIwMDgtMDItMTUgMDQ6MjcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcyMzYxMTogZnJvbSBFbWkgWWFuYWdpOiBOZXcgaW1wbGVtZW50YXRpb24KICAgb2YgdGhlIHJtb24gYWxhcm1UYWJsZQoKMjAwOC0wMi0xNSAwMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTg5MzQ2ODogZnJvbSBna29lbmlnOiBmaXhlZCByZWdpc3RyYXRpb24gb2YKICAgT0lEcyB3aXRoIHJhbmdlcwoKMjAwOC0wMi0xNCAyMTo0MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIGRlY2xhcmF0aW9uICh1bmJyZWFrcyB0aGUgYnVpbGQgb24gYSBmZXcKICAgc3lzdGVtcykKCjIwMDgtMDItMTQgMDA6MjkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZSBmb3Igc3BhcnRhCgoyMDA4LTAyLTEzIDIzOjM3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBORVdTOiBzbm1wbGliOiBDaGFuZ2UgQ09OVEFJTkVSX0lOU0VSVCB0byBub3QgZG8gcGFydGlhbCBpbnNlcnRzCiAgIGluIGNvbnRhaW5lcnMgd2l0aCBtdWx0aXBsZSBpbmRpY2VzIHdoZW4gb25lIGluc2VydCBmYWlscy4KCjIwMDgtMDItMTMgMjM6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4ZWQgdGhlIGNyZWF0ZVVzZXIgbGluZSB0byBzcGVjaWZ5IHRoZSAtZSBmbGFnIChyZXNwb25kaW5nIHRvIGEKICAgY29tcGxhaW50IGFib3V0IGl0IGJlIG1pc3NpbmcpCgoyMDA4LTAyLTEzIDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTc3OTU1ODogZnJvbSBicnVtYnM6IEltcGxlbWVudCB0aGUKICAgZGlza0lPTEExLDUsMTAgb2JqZWN0aW9ucyBpbiB0aGUgZGlza2lvLW1pYiB1bmRlciBsaW51eAoKMjAwOC0wMi0xMyAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc4MzczMzogUHV0IHRoZSBwYWNrYWdlIHZlcnNpb24gbnVtYmVyCiAgIGludG8gdGhlIGhyU1dJbnN0IHRhYmxlIGZvciBzb2xhcmlzLgoKMjAwOC0wMi0xMyAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzgzNDIzOiBmcm9tIGpzYWZyYW5lazogcmV0dXJuIGEgY29ycmVjdAogICBpcHY2SW50ZXJmYWNlSWRlbnRpZmllciBvZiBsb29wYmFjayBvbiBsaW51eAoKMjAwOC0wMi0xMyAxNjoxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc4NDc0NzogZnJvbSBqc2FmcmFuZWs6IEZpeCBsb25nIHVzYWdlCiAgIGZvciBpcCBhZHJlc3NlcyBvbiA2NCBiaXQgc3lzdGVtcyBpbiB2YXJpb3VzIE1JQi1JSSB0YWJsZXMuCgoyMDA4LTAyLTEzIDE2OjA3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTgwNjUwMTogZnJvbSBqbWFnZGVyOiBBZGQgYSBzbm1wX3YzdHJhcAogICBmdW5jdGlvbiBmb3Igc2VuZGluZyB0cmFwcyB3aXRoIGEgc25tcHYzIGNvbnRleHQKCjIwMDgtMDItMTMgMTY6MDIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI2MTAyOiBmcm9tIGpzYWZyYW5lazogc3VwcG9ydCBsb25nZXIKICAgaW50ZXJmYWNlIG5hbWVzIG9uIGxpbnV4CgoyMDA4LTAyLTEyIDIzOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4MDc0ODk6IGZpeCBpZ25vcmluZyBvZiBkaXNwbGF5IGhpbnRzLgoKMjAwOC0wMi0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgCgoyMDA4LTAyLTEyIDIzOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMTgyMzQ2NSBmcm9tIGpzYWZyYW5lazogZml4IGljbXAgY2FjaGUKICAgcmVnaXN0cmF0aW9uCgoyMDA4LTAyLTEyIDIyOjE2ICBoYXJkYWtlcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4Mjg2MDI6IGZyb20gdGdvaGFkOiBTdXBwb3J0IGlwRGVmYXVsdFRUTAogICBhbmQgaXBGb3J3YXJkaW5nIFNFVHMgb24gbGludXgKCjIwMDgtMDItMTIgMjI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODY2ODIzOiBmcm9tIGpzYWZyYW5lazogdHJ1bmNhdGUgMzIgYml0CiAgIGNvdW50ZXIgdmFsdWVzIG9uIDY0IGJpdCBtYWNoaW5lcyB0byBhdm9pZCBib2d1cyB3YXJuaW5ncy4KCjIwMDgtMDItMTIgMTk6MDUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg0OTkwMzogZnJvbSBqc2FmcmFuZWs6IGRvIG5vdCBzcGFtIGxvZwogICB3aXRoIGFzc2VydHMgd2hlbiBYRU4gaXMgdXNlZAoKMjAwOC0wMi0xMiAxODo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4NzUwMjI6IGZyb20gc2VtX3ByZzogaW1wcm92ZSBjYWxsYmFjawogICBsb2NraW5nIG1lY2hhbmlzbXMKCjIwMDgtMDItMTIgMTc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODc5MjYxOiBmcm9tIGFtZXNidXJ5OiBBZGQgaW4gaW5hY3RpdmUKICAgbWVtb3J5IHRvIHRoZSBjYWNoZWQgcmVwb3J0IGZvciBmcmVlYnNkCgoyMDA4LTAyLTEyIDE1OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIHNubXBsaWIvc25tcHYzLmM6CgogICBORVdTOiBsaWJzbm1wOiBQYXRjaDogMTg4MjA2OTogZnJvbSBuc2NocmVuazogQWRkIGEgZXhhY3RFbmdpbmVJRAogICB0b2tlbiBmb3Igc3BlY2lmeWluZyBhbiBleGFjdCBTTk1QdjMgZW5naW5lSUQgdG8gdXNlCgoyMDA4LTAyLTEyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIG1pbm9yIGNsZWFudXBzIGZyb20gcmV2aWV3aW5nIHBhcnRzIG9mIHRoZSBjb2RlCgoyMDA4LTAyLTEyIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTg4MjYyMTogZnJvbSBqc2FmcmFuZWs6IEFkZCBMVk0gc3VwcG9ydCB0bwogICB0aGUgcGFydGl0aW9uIHRhYmxlCgoyMDA4LTAyLTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBxdW90ZWQgc3RyaW5ncyBpbiBoZWxwIG91dHB1dAoKMjAwOC0wMS0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGRlZCB2YWNtX2NvbmYgdG8gZXhpc3RpbmcgY29uZmlndXJlIGZpbGVzIChmb3IgdHJhcGQgdG9vKQoKMjAwOC0wMS0yMCAwNzo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4NzIyNjY6IFBFUkxDQyBjaGVjayBmYWlscyBmb3IgQ0Mgd2l0aAogICBvcHRpb25zCgoyMDA4LTAxLTE3IDAxOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIGZpeCBkZWZhdWx0IG1pYnMgdG8gaW5jbHVkZSB2YWNtX2NvbmYgdG9vCgoyMDA4LTAxLTE3IDAwOjA5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MjYwODg6IGZyb20gSmFuIFNhZnJhbmVrOiBVc2UgdGhlIHJpZ2h0CiAgIGludGVyZmFjZSB0IHJlYWQgdGhlIG5ldG1hc2sKCjIwMDgtMDEtMTYgMjE6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IEhhbmRsZSBkZXZpY2UgbmFtZXMgd2l0aCBlbWJlZGRlZCBzcGFjZXMgaW4KICAgVUNELVNOTVAtTUlCOjpkc2tEZXZpY2UKCjIwMDgtMDEtMTYgMDA6NDcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyODgzOTogZnJvbSBqc2FmcmFuZWsgdG8gcHJvdmlkZSBiZXR0ZXIKICAgaGFuZGxpbmcgb2YgZGlza3MgbW91bnRlZCBvbiBwYXRocyB3aXRoIGVtYmVkZGVkIHNwYWNlcwoKMjAwOC0wMS0xNSAxNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBjb3Zlcml0eSBidWcgMjA1OiBkb3VibGUgY2hlY2sgcG9pbnRlciB0aGF0IHNob3VsZCBuZXZlciBiZSBudWxsCgoyMDA4LTAxLTE0IDIzOjU1ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuaDoKCiAgIFVwZGF0ZSB0aGUgc25tcCBhbmQgc3lzdGVtIG1pYnMgdG8gYmUgaGFuZGxlciBiYXNlZAoKMjAwOC0wMS0xMyAwMDowMCAgbWFnZnIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUywgIAogICAgICAgZG94eWdlbi5jb25mLCBsb2NhbC9WZXJzaW9uLU11bmdlLnBsLCBzZWRzY3JpcHQuaW4sICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBMZXNzZW4gdGhlIG51bWJlciBvZiBwbGFjZXMgdGhhdCBuZWVkIHRvIGJlIGNoYW5nZWQgaW4gb3JkZXIgdG8KICAgZG8gYSByZWxlYXNlLgogICBDaGFuZ2UgdG8gdXNlIHRoZSBjb25maWd1cmUgdmVyc2lvbiBudW1iZXIgYXMgdGhlIHBhY2thZ2UgdmVyc2lvbgogICBudW1iZXIuCgoyMDA4LTAxLTA5IDIxOjU4ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIERlbGV0ZSB1bnVzZWQgc3RhdGljIGZ1bmN0aW9ucwoKMjAwOC0wMS0wNiAxMzowMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTWFrZSBlcnJvcl9zdHJpbmcgcHJpdmF0ZSBhbmQgcmVhZG9ubHkKCjIwMDctMTItMjIgMTk6MjIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxODI2MTc0OiBDaGVjayBmb3IgYnVmZmVyIG92ZXJmbG93IHdoZW4KICAgcHJpbnRpbmcgdmFsdWVzLgoKMjAwNy0xMi0yMSAyMzoxOSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE3NDc3MzM6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIHVuZGVmaW5lZAogICB2YWx1ZXMuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1hdHRpIExpbm5hbnZ1b3JpCgoyMDA3LTEyLTIxIDIxOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc0ODIwNjogUHJvdGVjdCBhZ2FpbnN0IGZhaWx1cmVzIHRvIG9wZW4KICAgL2V0Yy9tdGFiIChvciBlcXVpdikKCjIwMDctMTItMjEgMTg6NDIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEJyaW5nIG9yZGVyIG9mIGFnZW50IGxpYnJhcnkgbGlua2luZyBpbnRvIGxpbmUgd2l0aCBhZ2VudAogICBNYWtlZmlsZS4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTdGV2ZSBNY0NhcnRoeS4KICAgUW46IFNob3VsZCA1LjIueCBhbmQgNS4zLnggYWxzbyB1c2UgdGhlIHNhbWUgb3JkZXI/CiAgIChmb3IgYm90aCBhZ2VudCBNYWtlZmlsZSBhbmQgbmV0LXNubXAtY29uZmlnKQoKMjAwNy0xMi0yMSAxMzoxMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODAyODMzOiBFbnN1cmUgc25tcHRyYXBkIGJ1aWxkcyB3aXRoCiAgIC0tZGlzYWJsZS1zbm1wdjEvMmMKCjIwMDctMTItMjAgMTY6MjYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxODM0NTM5OiBDb25zaXN0ZW50IGhhbmRsaW5nIG9mIE9JRCBwYXJzaW5nLgogICBBcHBsaWVzIHBhdGNoICMxODM0OTgzLCBwcm92aWRlZCBieSBEbWl0cnkgS2FyYXNpawoKMjAwNy0xMi0yMCAxNjowNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTW9yZSBpbnRlcm5hbCBxdWVyeSBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNy0xMi0yMCAxNDoyMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxODIyMzYwOiBGaXggc3BpbmxvY2sgaGVscGVyIGVycm9yIGhhbmRsaW5nLgoKMjAwNy0xMi0yMCAxNDoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE3OTU4NDA6IFNpZ25lZCAzMi1iaXQgdHJ1bmNhdGlvbiBsb2dnZWQKICAgYXMgZGVidWcgbWVzc2FnZSByYXRoZXIgdGhlbiBlcnJvci4KCjIwMDctMTItMjAgMTQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc5Mjg5MDogaW5jbHVkZSBDSUZTIG1vdW50cyB3aGVuIHNraXBwaW5nCiAgIHJlbW90ZSBmaWxlc3lzdGVtcwoKMjAwNy0xMi0yMCAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc3MTIyMTogUmV0YWluIGlmTGFzdENoYW5nZSBpbmZvcm1hdGlvbiBvbgogICBkYXRhIHJlbG9hZC4KCjIwMDctMTItMjAgMTQ6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NTgyMTI6IEhhbmRsaW5nIG1pc3NpbmcgdmFyaWFibGUgdHlwZXMKICAgKElwQWRkcmVzcyxDb3VudGVyLE9wYXF1ZSkKCjIwMDctMTItMTkgMjI6MzkgIG1hZ2ZyCgogICAqICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIHNubXBsaWIvZGF0YV9saXN0LmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENvcnJlY3QgZG94eWdlbiB3YXJuaW5ncwoKMjAwNy0xMi0xOSAyMjozMSAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybCwgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBVc2UgTkVUU05NUF8tcHJlZml4ZWQgc3ltYm9scyB3aGVuIGRlY2lkaW5nIHdoYXQgdGVzdHMgdG8gcnVuIGFzCiAgIHRoZSBjb21wYXQgc3ltYm9scyBhcmVuJ3QgZGVmaW5lZC4KCjIwMDctMTItMTkgMjI6MDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEJVRyAxODMxNTY4OiBzdHJkdXAgbWlnaHQgZmFpbCBhbmQgcmV0dXJuIE5VTEwgLSB0YWtlIGNhcmUgb2YgaXQKICAgaW4gdGhpcyBjYXNlIGF0IGxlYXN0LgoKMjAwNy0xMi0xOSAyMTo0OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEJVRyAxODI0ODgzOiBSZW1vdmUgbWVtb3J5IGxlYWsKCjIwMDctMTItMTkgMjA6NDYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogQlVHOiAxODUxMDQ3OiBEbyBub3QgdHJ5IHRvIGRvIG1vcmUgaGFuZGxpbmcgb2YgYSB2YWx1ZQogICBvbmNlIGl0IGlzIGZvdW5kIHRvIGJlIGNvcnJ1cHQgYnkgdGhlIHdhdGNoZXIgaGVscGVyLCB0aHVzCiAgIGF2b2lkaW5nIGNvZGUgdGhhdCBjb3VudHMgb24gZ2V0dGluZyB0aGUgcmlnaHQgdHlwZS4gVGhpcyBidWcgd2FzCiAgIGZvdW5kIGJ5IENoYXJsaWUgTWlsbGVyLCBJbmRlcGVuZGVudCBTZWN1cml0eSBFdmFsdWF0b3JzLgoKMjAwNy0xMS0yNyAwOTo1NiAgZHRzMTIKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIENsYXJpZnkgdXNlIG9mIHRoZSAtQSAobG9nIGFwcGVuZCkgb3B0aW9uLgoKMjAwNy0xMS0yMiAxNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgY2hlY2sgcmVxdWVzdCwgbm90IHJlcXVlc3RzLiByZXBvcnRlZCBieSB1bGltIG9uIGlyYwoKMjAwNy0xMS0yMiAxNToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jOgoKICAgY2hlY2sgcmVxdWVzdCwgbm90IHJlcXVlc3RzLiByZXBvcnRlZCBieSB1bGltIG9uIGlyYwoKMjAwNy0xMS0xOSAyMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTgzNDY5OTogZnJvbSBhcGVyc3NvbjogRml4IDE4MzMyOTQ6CiAgIERMUEkgcHJvYmxlbXMgb24gU29sYXJpcyAyLjYKCjIwMDctMTEtMTcgMTY6MjYgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHRoZSB3b3JrZXIgaGVscGVycyBmcm9tIHRoZQogICByZWdpc3Rlcl8qX2luc3RhbmNlIGhlbHBlcnMgYW5kIHNjaGVkdWxlIHRoZSBpbnN0YW5jZSBoZWxwZXJzIGZvcgogICByZW1vdmFsIGluIDUuNgoKMjAwNy0xMS0xNCAxMjoyMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmg6CgogICBTdXBwb3J0IHYzIGxtc2Vuc29ycyBBUEkuCgoyMDA3LTExLTE0IDEyOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYzoKCiAgIEZpeCBtaXNsZWFkaW5nIGRlYnVnIG91dHB1dCBtZXNzYWdlLgoKMjAwNy0xMS0xMyAxMzo1OSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9kdW1teV9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL3NlbnNvcnMuaDoKCiAgIFByZWxpbWluYXJ5IHJlLXdvcmtpbmcgb2YgdGhlIExNLVNFTlNPUlMtTUlCLCB0byBzZXBhcmF0ZSBvdXQKICAgdGhlIHNlbnNvciBoYXJkd2FyZSBwcm9jZXNzaW5nIGZyb20gdGhlIE1JQiB0YWJsZXMgdGhlbXNlbHZlcy4KCjIwMDctMTEtMDggMjM6MTcgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxODI0MTk2OiB7aWZPcGVyU3RhdHVzLGlwQWRFbnRJZkluZGV4fQogICByZXBvcnRlZCBpbmNvcnJlY3RseQogICBQYXRjaCBzdXBwbGllZCBieSBBbmRlcnMgUGVyc3Nvbi4gRml4ZXMgQnVncyAxODIyMjc1IGFuZCAxODE5MTg5LgoKMjAwNy0xMC0yNiAyMToyMiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgTkVXUzogc25tcGQ6IEFkZGVkIHN1cHBvcnQgZm9yIGEgdXNlciBwcm92aWRlZCBsZW5ndGggdmFyaWFibGUKICAgYW5kIEMgc3RyaW5nIHZhbHVlcyB0byB0aGUgd2F0Y2hlciBoZWxwZXIuCgoyMDA3LTEwLTE2IDIyOjM5ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKICAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBVc2UgJXAgdG8gcHJpbnQgcG9pbnRlcnMuIERvIG5vdCB1c2UgJXAgdG8gcHJpbnQgbnVtYmVycy4KCjIwMDctMTAtMTYgMDc6MzEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1ha2UgdGhlIGxpYnJhcnkgYnVpbGRhYmxlIGFzIEMgYWdhaW4uCgoyMDA3LTEwLTE2IDA3OjE3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IG1pc2M6IGF2b2lkIGNhbGxpbmcgZGVidWcgbWFjcm9zIHdpdGggdG9vIG1hbnkKICAgYXJndW1lbnRzLgoKMjAwNy0xMC0xNiAwNjoxOCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTWFrZSB0aGUgbGlicmFyeSBidWlsZGFibGUgYXMgQysrIGFnYWluLgoKMjAwNy0xMC0xNSAyMDo1MiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgZGVjbGFyZSBuZXRzbm1wX2JpbmFyeV9hcnJheV9vcHRpb25zX3NldDsgaW5jbHVkZSBoZWFkZXIgZm9yIGl0CiAgIGFzIG5lZWRlZAoKMjAwNy0xMC0xNSAyMDozOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jOgoKICAgQ29udmVydCBhbiBpbmZpbml0ZSBsb29wIHRvIGEgZmluaXRlIG9uZS4KICAgUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMDctMTAtMTQgMjI6MTAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogbWlzYzogQXZvaWQgY2FsbGluZyBkZWJ1ZyBtYWNyb3Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cy4KCjIwMDctMTAtMTQgMjA6NTEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE4MTE0Njk6IHJlYWRfY29uZmlnX2ZpbGVzX2luX3BhdGgoKQogICByZWFkcyBwYXN0IG1hbGxvYydkIGJ1ZmZlcgoKMjAwNy0xMC0xNCAyMDo0MSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxODExNDYzOiBwZXJsIGFzeW5jIGNhbGxiYWNrIGNvcmVkdW1wCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTYwNjA2MjogcGVybCBidWxrd2FsayAoYXN5bmMpIGNvcmVkdW1wCgoyMDA3LTEwLTE0IDE5OjA3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTgwNjMzNjogZml4IC1MUyBvcHRpb24gcGFyc2luZwoKMjAwNy0xMC0xNCAxMjoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgZml4IGNvbW1lbnQKCjIwMDctMTAtMTMgMjM6MjggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBDSEFOR0VTOiB0ZXN0OiBlbmhhbmNlIHNubXBuZXRzdGF0IHRlc3QgdG8gY2hlY2sgdGNwVGFibGUgaW4gVENQCiAgIG1vZGUKCjIwMDctMTAtMTMgMjI6MjggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IEJVRzogMTgxMDgxNDogdGNwVGFibGUgbWlzc2luZyBlbnRyaWVzIGFuZAogICB3cm9uZyBwb3J0cwoKMjAwNy0xMC0xMiAyMTo0NiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDSEFOR0VTOiBTb2xhcmlzOiAjZGVmaW5lIE5FV19NSUJfQ09NUExJQU5UIHRvIHN1cHBvcnQgU29sYXJpcwogICAxMFU0KwoKMjAwNy0xMC0xMSAyMDo0NiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgbGVhayBtZW1vcnkgd2hlbmV2ZXIgYW4gdWRwIGFkZHJlc3MgaXMKICAgZm9ybWF0dGVkLgoKMjAwNy0xMC0wMyAwMTowMiAgYWxleF9iCgogICAqICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvQWRkMlBhdGgubnNpLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICAtRml4IGZvciBidWcgMTc2ODc5Ny4gTlNJUyBJbnN0YWxsZXIgc2NyaXB0IG5vdyB3YXJucyB0aGUgdXNlciBpZgogICB0aGUgUEFUSAogICBpcyA+IDEwMjQgYXMgTlNJUyBjYW4gbm90IGhhbmRsZSB2YXJpYWJsZXMgbGFyZ2VyIHRoYW4gMTAyNC4KICAgLVVwZGF0ZXMgdG8gYnVpbGQgaW5zdHJ1Y3Rpb25zLgoKMjAwNy0wOS0zMCAyMDo1OSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBDSEFOR0VTOiBCVUc6IDE4MDE4MzU6IEFkZGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgZGVmYXVsdAogICB0cmFuc3BvcnRzIGZvciBhbiBhcHBsaWNhdGlvbi4gT24gb3BlbiB0aGUgZGlmZmVyZW50IHRyYW5zcG9ydHMKICAgd2lsbCBiZSB0cmllZCBpbiBvcmRlci4gQXMgYSBjb25zZXF1ZW5jZSBzbm1wIGFuZCBzbm1wdHJhcCBub3cKICAgd2lsbCB0cnkgZmlyc3QgdWRwIGFuZCB0aGVuIHVkcDYgYW5kIGFnZW50eCB3aWwgdHJ5IGZpcnN0IHVuaXgKICAgYW5kIHRoZW4gdGNwLgoKMjAwNy0wOS0yOSAxMzoxMCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IHRyeSB0byBsb29rIHVwIGVtcHR5IHN0cmluZ3MgYXMKICAgaG9zdG5hbWVzIGZvciBJUHY2CiAgIEFkZGl0aW5hbGx5LCBwcmludCB3aGF0IHN0cmluZyBmaWxlZCB0byByZXNvbHZlIHVzaW5nIGdldGFkZHJpbmZvCiAgIGZvciBJUHY2CgoyMDA3LTA5LTI5IDA2OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODA0NDQ1OiBmcm9tIGFwZXJzc29uOiBIaWdoIG9yZGVyIGJpdHMgb2YKICAgSENJbk9jdGV0cyBub3Qgc2V0IG9uIFNvbGFyaXMKCjIwMDctMDktMjQgMjA6NDMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQoKMjAwNy0wOS0yMyAwNjowMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgZml4ICNlbGlmCgoyMDA3LTA5LTIxIDIyOjA0ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGF0dGVtcHQgdG8gZml4IGJ1aWxkIGZvciBTb2xhcmlzL0FJWC9IUC1VWAogICBicm9rZW4gYnkgcjE2Njg0CgoyMDA3LTA5LTIwIDIxOjU1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc0NjgzMTogZnJvbSBjdW5uaWpkOiBmaXggcHJvY2VzcwogICBjaGVja2luZyByYWNlCiAgIGNvbmRpdGlvbiB1bmRlciBMaW51eCBhbmQgcGxhdGZvcm0gI2lmZGVmcwoKMjAwNy0wOS0xOSAyMTowOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogQ292ZXJpdHkgIzE4MzogZml4IG1lbW9yeSBsZWFrIGlmCiAgIElQX1BLVElORk8gZmFpbHMKCjIwMDctMDktMTkgMTk6NTcgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBGaXggbWlzbnVtYmVyaW5ncyBvZiBzdGVwcy4KICAgSXQgaXMgKnNvKiBkaWZmaWN1bHQgdG8gZmluZCBwcm9wZXJseSBudW1lcmF0ZSBzdGFmZiB0aGVzZQogICBkYXlzLi4uLgoKMjAwNy0wOS0xNiAwOTo1MSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgUmVtb3ZlIGJhc2hpc21zLiBUaGlzIGlzIG5ldGJzZCBwYXRjaC1ldCBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwOTo0NSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIFVzZSBjb25zdCBjaGFyKiBmb3IgdGVtcG9yYXJ5IGNvbnN0YW50IHN0cmluZyB2YXJpYWJsZS4gVGhpcyBpcwogICBuZXRic2QgcGF0Y2gtZWEgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDk6NDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSB0aGUgbmF0dXJhbCB0eXBlIG9mIGluX2FkZHJfdCdzIGZvciBjb21wYXJpc2lvbnMuIFRoaXMgaXMKICAgbmV0YnNkIHBhdGNoLWVhIGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA3OjA2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBDSEFOR0VTOiBCVUc6IDE3OTM1NDU6IFRha2UgdGhlIG5hbWUgZnJvbSB0aGUgc29ja2FkZHJfdW4gaW4KICAgb3JkZXIgdG8gYXZvaWQgdHJhbnNwb3J0IHNwZWNpZmllcnMgYW5kIG90aGVyIGRlY29yYXRpb25zLgoKMjAwNy0wOS0xNCAxMzoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBoZWFkZXIgZm9yIHN3cnVuIHJld3JpdGUKCjIwMDctMDktMTQgMTM6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gYWRkIHV0aWxpdHkgbWFjcm8KICAgLSBhY3RpdmF0ZSBuZXcgaG9zdCByZXNvdXJjZSByZXdyaXRlcwoKMjAwNy0wOS0xNCAxMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBjb25maWdfcmVxdWlyZSBmb3IgbmV3IHJld3JpdGVzLCBpZiBlbmFibGVkCgoyMDA3LTA5LTE0IDEzOjExICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBhZGQvZml4IGRpc2svcGFydGl0aW9uIHRhYmxlcyBvbiBkYXJ3aW4KCjIwMDctMDktMTQgMTM6MDkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gYWRkIGhyU1dJbnN0YWxsZWRUYWJsZSBmb3IgZGFyd2luCgoyMDA3LTA5LTE0IDA4OjQ0ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVuZXhwZWN0ZWQgY29tbWFuZCBhcmd1bWVudHMuCgoyMDA3LTA5LTE0IDA4OjAwICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRG9jdW1lbnQgdXNlIG9mICJzdm4gZXhwb3J0IiByYXRoZXIgdGhhbiAic3ZuIGNoZWNrb3V0Ii4KICAgQ292ZXIgZ2VuZXJhdGlvbiBvZiB0aGUgemlwIGFyY2hpdmUgYXMgd2VsbCBhcyB0aGUgdGFyYmFsbC4KCjIwMDctMDktMTMgMjE6MjUgIHRhbmRlcnMKCiAgICogUkVBRE1FOgoKICAgZHJvcCBvYnNvbGV0ZSBtaXJyb3JzCgoyMDA3LTA5LTEzIDE3OjI5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3MsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaG9zdCByZXNvdXJjZXMgU1dSdW4gYW5kIFNXUnVuUGVyZiBUYWJsZSBmb3IgZGFyd2luOQoKMjAwNy0wOS0xMyAxNzoyMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGltcHJvdmUgZXJyb3IgaGFuZGxpbmcgYW5kIGNsZWFudXAgaW4gcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucwoKMjAwNy0wOS0xMyAxNzoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gZm9yIGRhcndpbjksIHJleGVjIGFmdGVyIGZvcmsgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBzb21lIG1hY2gKICAgY2FsbHMKCjIwMDctMDktMTIgMTg6NTEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIG5ldyB1dGlsaXR5IGZ1bmN0aW9uIHRvIHJlYWQgYSBkaXJlY3RvcnkgaGllcmFyY3kgaW50byBhCiAgIGNvbnRhaW5lcgoKMjAwNy0wOS0xMiAxNzo1NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgc3RyaW5nIGNvbXBhcmUgY2FsbGJhY2sKCjIwMDctMDktMTIgMTc6NTMgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIG5ldyBuZXRzbm1wX2NhY2hlX2ZyZWUgZnVuY3Rpb24KCjIwMDctMDktMTIgMTc6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcgbXNnCgoyMDA3LTA5LTEyIDE3OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmY6CgogICBQYXRjaGVzIGZyb20gQXBwbGUKICAgLSBhZGQgb3B0aW9uYWwgY2FjaGUKICAgLSBjaGVjay9oYW5kbGUgZXJyb3JzIGZvciBhbGwgZnVuY3Rpb25zIGluIGluaXQgZnVuYwogICAtIHR5cGVkZWYgZ2VuZXJhdGVkIHN0cnVjdAogICAtIHNraXAgcHJvY2Vzc2VkIHJlcXVlc3RzCiAgIC0gY2hlY2sgZm9yIG51bGwgd2hlbiBleHRyYWN0aW5nIHJvdwoKMjAwNy0wOS0xMiAxNzozNSAgcnN0b3J5CgogICAqIENPUFlJTkc6CgogICBhZGQgbmV3IGNvcHlyaWdodC9jb250cmlidXRvcgoKMjAwNy0wOS0wNSAyMDoxMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ29tYmluZSBzeXN0ZW1fcGFyc2VfY29uZmlnX3N5c3tsb2MsY29uLG5hbWV9IGludG8gb25lIGZ1bmN0aW9uCiAgIHNpbmNlIHRoZXkgYWxsIGRvIHRoZSBzYW1lIHRoaW5nCgoyMDA3LTA4LTI1IDE0OjI0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBNYWtlIG1vc3Qgb2Ygbm90aWZpY2F0aW9uX2xvZyBzdGF0aWMuIE1pbmltaXplIHRoZSBoZWFkZXIgZmlsZS4KCjIwMDctMDgtMjIgMjE6NTYgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIE5FV1M6IGFnZW50OiBzdXBwcmVzcyBhbm5veWluZyAicmVnaXN0cmF0aW9uICE9IGR1cGxpY2F0ZSIKICAgd2FybmluZyBmb3Igcm9vdCBvaWRzCiAgIChvdGhlcndpc2UsIHlvdSdsbCBnZXQgdGhpcyBtZXNzYWdlIG9uIGFsbW9zdCBldmVyeSBzdGFydHVwKQoKMjAwNy0wOC0yMCAwODowNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBzbm1wbGliOiBmaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBzcHJpbnRmIGZvcgogICBVRFAvSVB2NgoKMjAwNy0wOC0xNyAwOToxMCAgZHRzMTIKCiAgICogRkFROgoKICAgU3VidmVyc2lvbiwgbm90IENWUy4KCjIwMDctMDgtMTcgMDg6NTkgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgaGFuZGxpbmcgb2YgdW5rbm93biBjb21tdW5pdGllcwoKMjAwNy0wOC0xNiAxNTozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBEb24ndCBqdXN0IHJlcG9ydCB0aGUgcHJvYmxlbSAtIGl0IG1pZ2h0IGJlIHNlbnNpYmxlIHRvIGF2b2lkCiAgIGNyYXNoaW5nIHRoZSBhZ2VudCBhcyB3ZWxsIQoKMjAwNy0wOC0xNiAxNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NDQxNTc6IFJlcG9ydCBkdXBsaWNhdGUgImV4dGVuZC9leGVjIgogICBpZGVudGlmaWVycy4KCjIwMDctMDgtMTYgMTU6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhcHBzL3NubXB0cmFwZF9kcy5oOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTc0Njk5MjogSW1wcm92ZSBzbm1wdHJhcGQKICAgYWNjZXNzLWNvbnRyb2wgZXJyb3IgbWVzc2FnZXMuCgoyMDA3LTA4LTE2IDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTI5MzQ6IEZpeCBvZmYtYnktb25lIHFzb3J0IGVycm9yIGluCiAgIHRhYmxlIHV0aWxpdGllcy4KCjIwMDctMDgtMTYgMTM6MzEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQzNzogRml4IGVycm9yIGluZGV4IG9uIGZhaWxpbmcgU0VUCiAgIHJlcXVlc3RzCgoyMDA3LTA4LTE2IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0NDk6IEZpeCBBZ2VudFggZXJyb3IgcHJvcGFnYXRpb24KCjIwMDctMDgtMTYgMTI6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDYzOiBGaXggQWdlbnRYIHN1YmFnZW50IHBpbmcgYWxhcm0KICAgaGFuZGxpbmcKCjIwMDctMDgtMTYgMTI6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1ODIwODogRml4IG1lbW9yeSBsZWFrCgoyMDA3LTA4LTE2IDEyOjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NzQ2MTI6IE1vcmUgcmVzaWxpZW50IHByb2Nlc3Mgc3RhdHVzCiAgIGhhbmRsaW5nCgoyMDA3LTA4LTE2IDExOjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNzc1MTI0OiBGaXggY2xpZW50YWRkciBmdW5jdGlvbmFsaXR5CgoyMDA3LTA4LTE2IDA5OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTc2ODI4NTogQ291bnQgTUlCIGZpbGVzIGNvcnJlY3RseSBpbgogICBhZGRfbWliZGlyKCkKCjIwMDctMDgtMTYgMDk6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNzY3NzI1OiBDbG9zZSBhbGwgbm9uIHN0YW5kYXJkIGZpbGUKICAgaGFuZGxlcwoKMjAwNy0wOC0xNiAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYzoKCiAgIERlY2xhcmUgaW5pdGlhbGlzYXRpb24gcm91dGluZSBjb3JyZWN0bHksIGFuZCBvbWl0IHVudXNlZAogICB2YXJpYWJsZXMuCiAgIFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDgtMTYgMDg6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIFJlYWQgaW4gYWdlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyAqYmVmb3JlKiB0aGUgaGVhZGVyCiAgIGZpbGVzIHRoYXQgbWlnaHQgcmVseSBvbiB0aGVtLgoKMjAwNy0wOC0wNSAxNjoxNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgQ2hhbmdlIHdpbjMyIGJ1aWxkIHJlYWRtZSBmaWxlcyB0byBDUkxGLgoKMjAwNy0wOC0wNSAxNDoxNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFdpbjMyOiBDaGFuZ2UgYnVpbGQgZG9jcyB0byB1c2UgZHluYW1pYyAoRExMKSBpbnN0ZWFkIG9mIHN0YXRpYy4KCjIwMDctMDgtMDIgMTM6NDYgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEl0IG1pZ2h0IGJlIHNsaWdodGx5IGxlc3MgY29uZnVzaW5nIGlmIHRoZSBuZXRTbm1wRXhhbXBsZVN0cmluZwogICBNSUIgb2JqZWN0IGRpZCBhY3R1YWxseSB0YWtlIHN0cmluZyB2YWx1ZXMuIFBpY2t5LCBJIGtub3cuLi4uCgoyMDA3LTA3LTI4IDEzOjAyICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIGZpeCB0YWcgZXh0cmFjdGlvbjsgY2hlY2sgZm9yIGVtcHR5IHRhZyBlYXJsaWVyCgoyMDA3LTA3LTI1IDIyOjQxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc2MDYzMzogZml4IHR5cG8gaW4gZGVidWcgbWVzc2FnZQoKMjAwNy0wNy0yMSAyMTozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggZm9yd2FyZGluZyBlbmNvZGluZwoKMjAwNy0wNy0yMCAwODoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgVHdlYWsgd2FybmluZyBtZXNzYWdlIGZvciAob2xkLXN0eWxlLCBpbnZhbGlkIGZvcm1hdCkgImV4ZWMgT0lEIgogICBkaXJlY3RpdmVzLgoKMjAwNy0wNy0xNiAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIEFwcGx5IChjb3JyZWN0KSBwYXRjaCBmcm9tIE1hcmN1cyBSdWVja2VydCB0byByZW1vdmUgYXNzZXJ0cwogICB1c2luZyBzb3J0LW8taWxsZWdhbCBDIHN0cmluZyBjb21wYXJlcwoKMjAwNy0wNy0xNiAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIFJlbW92ZSBwcmV2aW91cyBwYXRjaCB3aGljaCB3YXMgdGhlIHdyb25nIHZlcnNpb24KCjIwMDctMDctMTYgMjM6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIE1hcmN1cyBSdWVja2VydCB0byByZW1vdmUgYXNzZXJ0cyB1c2luZwogICBzb3J0LW8taWxsZWdhbCBDIHN0cmluZyBjb21wYXJlcwoKMjAwNy0wNy0xMyAxOToyNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGdlbmVyYXRlIHppcCBmaWxlcwoKMjAwNy0wNy0xMiAyMTo1MSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZml4IHN1YmFnZW50IGV4YW1wbGUgKGRvY3VtZW50YXRpb24pCgoyMDA3LTA3LTEyIDIxOjI3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgc25tcF9zZXNzX3JlYWQgcmV0dXJucyBpbnQsIG5vdCB2b2lkCgoyMDA3LTA3LTA2IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHVzZSBsaWJ0b29sIGNsZWFuIGZvciByZW1vdmluZyBmaWxlcyB0byBlbnN1cmUgd2UKICAgZGVsZXRlIGFsbCBsaWJ0b29sIHRlbXBvcmFyeSBmaWxlcy4KCjIwMDctMDctMDYgMjM6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICB1c2UgYSByZWN1cnNpdmUgcmV2ZXJ0IGluc3RlYWQgb2Ygcm0vdXBkYXRlOyByZW1vdmUgZG91YmxlIC8gZnJvbQogICBlZGl0aW5nIGNhbGxzCgoyMDA3LTA3LTA2IDIxOjIyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc3RvcCBzZWFyY2hpbmcgcGF0aHMgd2hlbiBkb25lCgoyMDA3LTA3LTA2IDIxOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgZG8gbm90IGZyZWUgaW50ZXJmYWNlIGVudHJ5IGp1c3QgYmVjYXVzZSB3ZSBjYW4gbm90IGdldCBzdGF0cyBmb3IKICAgaXQKCjIwMDctMDctMDYgMTU6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAxNzQ1MTEzOiBIYW5kbGUgc2luZ2xlLWxpbmUgKGFuZCB6ZXJvLWxpbmUpCiAgIG91dHB1dCBpbiBVQ0QgY29tcGF0YWJpbGl0eSBtb2RlLgoKMjAwNy0wNy0wNiAwOTowOCAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIIDE3MjgyNDc6IGZyb20gTWl0c3VydSBDaGluZW46IGNsZWFucyB1cAogICB0aGUgaW50NjQgdHlwZSBjaGVja2luZyBhbmQgdXNhZ2UgZm9yIGJ1aWxkaW5nIHBhY2tldHMgZXNwZWNpYWxseQogICB1bmRlciBNU1ZDLgoKMjAwNy0wNy0wNSAxNDo0NSAgcnN0b3J5CgogICAqIC4sIFJFQURNRS5vc1g6CgogICByMjAwNDRAZGhjcDIxMTogcnN0b3J5IHwgMjAwNy0wNy0wNSAxMDo0NDowMSAtMDQwMAogICByZW1vdmUgZGlzYWJsZS1zdGF0aWMgZnJvbSByZWNvbW1lbmRlZCBvcHRpb25zCgoyMDA3LTA3LTA1IDExOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgc2tpcCBzdGF0cyBwYXJzaW5nIG9uIGludGVyZmFjZXMgd2l0aCBubyBzdGF0aXN0aWNzCgoyMDA3LTA3LTA1IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgY2hlY2sgZm9yIGRpciBleGlzdGVuY2UKCjIwMDctMDctMDQgMjM6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBwZXJsOiBpbnN0YWxsIGVtYmVkZGVkIHBlcmwgaW5pdCBmaWxlcyBmb3IKICAgc25tcGQvc25tcHRyYXBkIHdpdGggbW9kZSA2NDQgaW5zdGVhZCBvZiA3NTUKCjIwMDctMDctMDQgMjE6NDIgIHRhbmRlcnMKCiAgICogUkVBRE1FLm9zWDoKCiAgIFBlcmwgcHJvYmxlbXMgKGJlbGlldmVkIHRvIGJlKSBmaXhlZAoKMjAwNy0wNy0wMyAxMjo1NiAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIHJlbW92ZSBleGVjdXRhYmxlIGZsYWcgZnJvbSBTVk4gcHJvcGVydGllcwoKMjAwNy0wNy0wMiAwNjo1MyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdmFjbS5jOgoKICAgUmVtb3ZlIHVudXNlZCBvaWQgZGVjbGFyYXRpb25zCgoyMDA3LTA3LTAyIDA2OjAyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIEFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZSB0byBfbXRlRXZlbnRfZmlyZV9ub3RpZnkuCgoyMDA3LTA3LTAyIDA1OjMxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CgogICBSZW1vdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGFuIHVuZGVmaW5lZCBzdGF0aWMgZnVuY3Rpb24uCgoyMDA3LTA3LTAxIDIwOjMyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLW5pZ2h0bHksIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtYWtlIGdldG9wdHMgd29yayBvbiBUcnU2NCBieSByZXNwYXduaW5nIGluIFBvc2l4IG1vZGUKCjIwMDctMDctMDEgMTk6NTYgIHRhbmRlcnMKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IC0tZGlzYWJsZS1hcy1uZWVkZWQgbm93IGFsbG93cyB0byByZXZlcnQgdG8gdGhlCiAgIGZvcm1lciBkZWZhdWx0IGJlaGF2aW91ciBvZiBsaW5raW5nIGxpYnBlcmwgdG8gYXBwbGljYXRpb25zCiAgIHJhdGhlciB0aGFuIE5ldC1TTk1QIExpYnJhcmllcyAoaW4gY2FzZSBvZiBhbnkgcHJvYmxlbXMpCgoyMDA3LTA2LTMwIDA2OjE3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWN0dWFsbHkgY2FsbCByZW1vdmVmaWxlcwoKMjAwNy0wNi0yOCAyMzo1MCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIE5FV1M6IHNubXBsaWI6IEFkZGVkIEdDQyBmb3JtYXQgY2hlY2tpbmcgYXR0cmlidXRlcyB0byB0aGUgZGVidWcKICAgZnVuY3Rpb25zLgoKMjAwNy0wNi0yOCAyMzozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBSZW1vdmUgY2FzdHMgb2YgdW51c2VkIHZhbHVlcwoKMjAwNy0wNi0yOCAyMzozNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgoyMDA3LTA2LTI4IDIyOjA5ICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHJlbmFtZSBsYXN0IG9jY3VyZW5jZSBvZiBERUZBVUxUX01JQltESVJdUyB0bwogICBORVRTTk1QX0RFRkFVTFRfTUlCW0RJUl1TCgoyMDA3LTA2LTI4IDA4OjE1ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRG8gbm90IHRyYW5zZm9ybSB0aGUgaWdub3JlZCByZXN1bHQgb2YgcmVhbGxvY19mb3JtYXRfdHJhcAoKMjAwNy0wNi0yNiAyMjoxMiAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHdvcmsgYXJvdW5kIGxpYm5ldHNubXBhZ2VudC9saWJuZXRzbm1waGVscGVycwogICBkZXBlbmRlbmN5IGlzc3VlcyB3aGVuIGxpbmtpbmcgc25tcHRyYXBkCgoyMDA3LTA2LTI2IDIxOjQ1ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHVzZSBMREZMQUdTIHdoZW4gYnVpbGRpbmcgYWdlbnQsIGhlbHBlcnMgYW5kIG1pYgogICBsaWIgdG8gYmUgY29uc2lzdGVudCB3aXRoIGxpYm5ldG5tcAoKMjAwNy0wNi0yNiAyMToyOCAgdGFuZGVycwoKICAgKiBJTlNUQUxMOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNy0wNi0yNiAxNToxMCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBkb24ndCBpbml0aWFsaXplIHZhciBpbiBleHRlcm4gZGVjbDsgaW5zdGVhZCwgaW5pdGlhbGl6ZSBhY3R1YWwKICAgdmFyCgoyMDA3LTA2LTI1IDIxOjI5ICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICBORVdTOiBidWlsZDogdXBkYXRlIHRvIGxpYnRvb2wgMS41LjI0IChmcm9tIDEuNS4yMikKCjIwMDctMDYtMjQgMTI6NTcgIHRhbmRlcnMKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSEFWRV9TU0laRV9UIGNsZWFudXAKCjIwMDctMDYtMjMgMjI6NTYgIHRhbmRlcnMKCiAgICogUkVBRE1FLmhwdXgxMToKCiAgIGRvbid0IHN1Z2dlc3QgLS13aXRoLWxpYnM9LWxubQoKMjAwNy0wNi0yMiAxNTowNSAgZHRzMTIKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsIHdpbjMyL2xpYnNkbGwuZHN3LCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3OgoKICAgRW5mb3JjZSBET1Mtc3R5bGUgbGluZSBlbmRpbmdzLCB0byBrZWVwIFZpc3VhbCBTdHVkaW8gaGFwcHkuCgoyMDA3LTA2LTIxIDE0OjAxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBkZWZhdWx0IHRvIHVzaW5nIGlmVGFibGUgcmV3cml0ZXMKCjIwMDctMDYtMjAgMjE6MzQgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgZml4IHR5cG8KCjIwMDctMDYtMTkgMjI6MjMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggUGVybC1yZWxhdGVkIGF1dG9jb25mIG1lc3NhZ2VzCgoyMDA3LTA2LTE5IDE1OjA4ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhZGQgIkJ1aWxkUmVxdWlyZXM6IHBlcmwtRXh0VXRpbHMtRW1iZWQiIHRvIHRoZQogICBzcGVjIGZpbGUsIGUuZy4gZm9yIEZlZG9yYSA3CgoyMDA3LTA2LTE4IDIyOjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBicm9rZW4gY29tbWVudC4KCjIwMDctMDYtMTggMjE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICByZXZlcnQgZG91YmxlIGxpbmtpbmcgb2YgbGlibmV0c21ucCBwYXJ0IG9mIHBhdGNoIHRoYXQgd2FzCiAgIHN1cHBvc2VkIHRvIGJlIHB1bGxlZCBib2ZlciBhcHBseWluZyBpbiByMTY1MzggKHRoYW5rcyB0YW5kZXJzCiAgIGZvciBjYXRjaGluZyBpdCkKCjIwMDctMDYtMTggMjE6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogcGF0Y2ggZnJvbSBhcHBsZSB0byBzaW1wbGlmeSBtYWtlZmlsZSB0YXJnZXQKICAgcmVmZXJlbmNlcyBpbiBzb21lIHJ1bGVzLgoKMjAwNy0wNi0xOCAyMToxNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGdldC4xLmRlZjoKCiAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gZml4IG1pbm9yIGRvY3VtZW50YXRpb24gYnVncy4KCjIwMDctMDYtMTggMjE6MTMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIAoKMjAwNy0wNi0xOCAyMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYzoKCiAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gaW1wcm92ZSBtZW1vcnkgcmVwb3J0aW5nCgoyMDA3LTA2LTE4IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGZpeCBjcm9zcy1jb21waWxlIGJ1aWxkcyBpbiBhcHBsZXMKICAgYnVpbGQgZW52aXJvbm1lbnQuCgoyMDA3LTA2LTE4IDIwOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ0hBTkdFUzogcGF0Y2g6IDE3MzcwODU6IGZyb20ganNhZnJhbmVrOiBmaXggdGhlIC1NIHN3aXRjaCBmb3IKICAgbWliIHBhcnNpbmcgYnkgbG9hZGluZyBkZWZhdWx0cyBmaXJzdCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgc2V0CiAgIHNvIGl0IGRvZXMgbm90IGdldCBvdmVyd3JpdHRlbiBieSB0aGUgZGVmYXVsdHMgbGF0ZXIuCgoyMDA3LTA2LTE4IDIwOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIE5FV1M6IHBlcmw6IHBhdGNoOiAxNzI1MDQ5OiBmaXggYnVsa3dhbGsgaW4gY2FzZXMgb2Ygbm9uLXJlcGVhdGVyCiAgIHVzYWdlLgoKMjAwNy0wNi0xOCAxNDoxMCAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBwcmVyZXF1aXNpdGVzIGZvciBOZXRTTk1QOjpUcmFwUmVjZWl2ZXIKCjIwMDctMDYtMTggMTM6MzkgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBmaXggc3ludGF4IGVycm9yIGluIE5ldFNOTVA6OmFnZW50OjpTdXBwb3J0CgoyMDA3LTA2LTE2IDIzOjAxICB0YW5kZXJzCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE5FV1M6IHBlcmw6IEJVRzogMTYxOTgyNzogbGluayBsaWJuZXRzbm1wYWdlbnQvbGlibmV0c25tcHRyYXBkCiAgIChyYXRoZXIgdGhhbiBzbm1wZC9zbm1wdHJhcGQpIGFnYWluc3QgbGlicGVybC4KCjIwMDctMDYtMTQgMTU6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHR5cG8gaW4gdXNlciBvdXRwdXQsIGFzIG5vdGVkIG9uIGNvZGVycwoKMjAwNy0wNi0xNCAxNTozNiAgcnN0b3J5CgogICAqIGRpc3QvY3Zzc2hvdzoKCiAgIHVzZSAnc3ZuIGluZm8nIHRvIHF1ZXJ5IGZvciB1cmwKCjIwMDctMDYtMTQgMDQ6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgQWRkIG1pc3NpbmcgYXJndW1lbnQgdHlwZSBpbiBvcmRlciB0byBzaWxlbmNlIGEgZ2NjIHdhcm5pbmcKCjIwMDctMDYtMTMgMDY6MzcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG8gbm90IHRyeSB0byBiZSBjbGV2ZXIgaW4gdGhlIGhhbmRpbmcgb2YgLWxrdm0gaW4gTEFHRU5UTElCUy4KICAgSW5jbHVkZSBpdCBpZiBhbnkgc291Z2h0IGZ1bmN0aW9uIGlzIGluIGl0LgoKMjAwNy0wNi0xMSAxMDoxMSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZG9jdW1lbnQgeGxjPC0+Y2NfciBjb21waWxlciBpc3N1ZXMgd2l0aCBQZXJsIG9uIEFJWCAoc2VlIGJ1ZwogICAjMTYwMDA5OSkKCjIwMDctMDYtMTAgMjI6MjkgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDc6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZCB0eXBlCiAgIGNoZWNrIGZvciBpbnQ/P190IGFuZCB1aW50Pz9fdAoKMjAwNy0wNi0xMCAyMjoyMiAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODI0NDogZnJvbSBtaXRzdXJ1X2NoaW5lbjogQWRkCiAgIGNvbmZpZ3VyZSBjaGVjayBmb3Igc2luNl9zY29wZV9pZAoKMjAwNy0wNi0xMCAyMjoxNSAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE3MjgyNDE6IGZyb20gbWl0c3VydV9jaGluZW46IGFkZCBjb25maWd1cmUgY2hlY2sKICAgZm9yIDxzeXMvdWlvLmg+IChtYWtlIHN1cmUgaW92IHN0cnVjdHVyZSBpcyBkZWNsYXJlZCkKCjIwMDctMDYtMTAgMDY6MzMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3Igc3lzdGVtIHNwZWNpZmljCiAgIGxpYnJhcmllcwoKMjAwNy0wNi0xMCAwNjoyNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sc2Vuc29ycwoKMjAwNy0wNi0xMCAwNjoxOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGRldnN0YXQKCjIwMDctMDYtMTAgMDY6MTMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGRsCgoyMDA3LTA2LTA5IDA4OjU4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxrdm0KCjIwMDctMDYtMDggMjA6MzIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIGRpc3QvbWFrZXJlbGVhc2U6CgogICBGaXggcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IHIxNjQ3OTogJ21ha2UgdGVzdCBURVNUT1BUUz0iLVQKICAgdGNwIicgbm93CiAgIHdvcmtzIGFnYWluLiBtYWtlcmVsZWFzZSBub3cgdXNlcyB0aGUgcmlnaHQgb3B0aW9uLgoKMjAwNy0wNi0wOCAxMDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogRkVBVFVSRTogNzQxMzc1OiBFeHRlbmQgLUYgZmxhZyB0byBjb3ZlcgogICBzeXNsb2cvZXhlY3V0ZSBmb3JtYXQgc3RyaW5ncy4KCjIwMDctMDYtMDggMTA6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBJbXByb3ZlIG1lbW9yeSBoYW5kbGluZyBvZiBzdHlsZS1zcGVjaWZpYyBmb3JtYXQgc3RyaW5ncy4KCjIwMDctMDYtMDggMTA6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRGVmYXVsdCB0byByZXBvcnRpbmcgTkZTIG1vdW50cyBhcyBOZXR3b3JrRGlzay4KCjIwMDctMDYtMDggMDY6MDIgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbHJwbSBhbmQKICAgdGhpbmdzIGl0IGRlcGVuZHMKICAgb24KCjIwMDctMDYtMDggMDU6NTkgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBBZGQgbWlzc2luZyBcCgoyMDA3LTA2LTA4IDA1OjMxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxrc3RhdAoKMjAwNy0wNi0wOCAwNToyOCAgbWFnZnIKCiAgICogYWNpbmNsdWRlLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBhIHZhcmlhdGlvbiBvZiBBQ19TRUFSQ0hfTElCUyB3aGVyZSB0aGUKICAgcmVzdWx0IHZhcmlhYmxlIGlzIHNldHRhYmxlLgoKMjAwNy0wNi0wOCAwNToxNiAgbWFnZnIKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlbW92ZSB0aGUgdW51c2VkIHVuZGVmIEhBVkVfUEVSTF9FVkFMX1BWLgogICBUaGUgUGVybF9ldmFsX3B2IGZ1bmN0aW9ucyBhcmUgaGFuZGxlZCBieSB0aGUKICAgSEFWRV9QRVJMX0VWQUxfUFZfW1VMXUMgZGVmaW5lcywKICAgdGhpcyBvbmUgaXMgbmV2ZXIgc2V0IGJ5IG91ciBjb25maWd1cmUgc2NyaXB0LgoKMjAwNy0wNi0wNyAxNjowMiAgZHRzMTIKCiAgICogIC5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvUm1vbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvbWlzYy8uY3ZzaWdub3JlLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy8uY3ZzaWdub3JlLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgZGlzdC8uY3ZzaWdub3JlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wLy5jdnNpZ25vcmUsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZSwgCiAgICAgICAgbG9jYWwvLmN2c2lnbm9yZSwgbWFuLy5jdnNpZ25vcmUsIG1pYnMvLmN2c2lnbm9yZSwKICAgICAgb3YvLmN2c2lnbm9yZSwgICAgcGVybC8uY3ZzaWdub3JlLCBwZXJsL0FTTi8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC8uY3ZzaWdub3JlLCBwZXJsL09JRC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL1NOTVAvLmN2c2lnbm9yZSwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvLmN2c2lnbm9yZSwgcGVybC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZSwgICAKICAgICAgc25tcGxpYi8uY3ZzaWdub3JlLCB0ZXN0aW5nLy5jdnNpZ25vcmUsIHdpbjMyLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2Jpbi8uY3ZzaWdub3JlLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYi8uY3ZzaWdub3JlLCB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzLy5jdnNpZ25vcmUsIHdpbjMyL2xpYm5ldHNubXB0cmFwZC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWJzbm1wLy5jdnNpZ25vcmUsIHdpbjMyL2xpYnNubXBfZGxsLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMvLmN2c2lnbm9yZSwgd2luMzIvbmV0LXNubXAvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCB3aW4zMi9uZXRzbm1wbWlicy8uY3ZzaWdub3JlLCAgCiAgICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wYnVsa2dldC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBkZi8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZ2V0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBzZXQvLmN2c2lnbm9yZSwgd2luMzIvc25tcHN0YXR1cy8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRlc3QvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvLmN2c2lnbm9yZSwgd2luMzIvc25tcHVzbS8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wd2Fsay8uY3ZzaWdub3JlOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBDVlMtYWRtaW4gZmlsZXMuCgoyMDA3LTA2LTA3IDEyOjU2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBIYW5kbGUgdW5yZWdpc3RlcmluZyB0aGUgZmlyc3QgU2VjdXJpdHkgTW9kZWwgaW4gdGhlIGxpc3QuCiAgIFJlcG9ydGVkIGJ5IEFsZWtzYW5kciBMb21hbm92LgoKMjAwNy0wNi0wNyAwOToxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgaGVhZGVyIGZpbGVzIGZvciBzdGFzaF9jYWNoZSBhbmQgc3Rhc2hfdG9fbmV4dCBoZWxwZXJzLgoKMjAwNy0wNi0wNyAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFNlcGFyYXRlIG91dCBoZWFkZXIgZmlsZXMgdGhhdCBkb24ndCBoYXZlIGEgY29ycmVzcG9uZGluZyBDCiAgIHNvdXJjZSBmaWxlLgoKMjAwNy0wNi0wNyAwODo1OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFNvcnQgbGlzdHMgb2YgaGVscGVycyAoc291cmNlIGNvZGUsIG9iamVjdCBmaWxlcyBhbmQgaGVhZGVycykuCiAgIFRoaXMgc2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIHNwb3QgZmlsZXMgdGhhdCBoYXZlIGJlZW4gb21pdHRlZC4KCjIwMDctMDYtMDcgMDg6NDIgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBzeXN0ZW1zIHdpdGhvdXQgU19JU0RJUi4KCjIwMDctMDYtMDYgMjI6MzYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgV2UgYXJlbid0IHVzaW5nIGxpYnRvb2xzIGRsb3BlbiBzdXBwb3J0LCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvCiAgIGNvbmZpZ3VyZSBmb3IgaXQKCjIwMDctMDYtMDYgMTI6MzcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBBSVg6IHVzZSAiLVdsLC1icnRsIiB3aGVuIGNvbXBpbGluZyB3aXRoIGdjYwoKMjAwNy0wNi0wNiAxMDoyNiAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlbW92ZSB0aGUgdW51c2VkIHVuZGVmIEhBVkVfUEVSTF9FVkFMX1BWLgogICBUaGUgUGVybF9ldmFsX3B2IGZ1bmN0aW9ucyBhcmUgaGFuZGxlZCBieSB0aGUKICAgSEFWRV9QRVJMX0VWQUxfUFZfW1VMXUMgZGVmaW5lcywKICAgdGhpcyBvbmUgaXMgbmV2ZXIgc2V0IGJ5IG91ciBjb25maWd1cmUgc2NyaXB0LgoKMjAwNy0wNi0wNiAxMDoyMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEVuc3VyZSBvdXRwdXQgaXMgcHJvcGVybHkgZGlyZWN0ZWQgdG8gc3lzbG9nLgogICBPdGhlcndpc2UsIHByb2JsZW1zIGluIHRoZSBjb25maWcgZW52aXJvbm1lbnQgY2FuIHRyaWdnZXIKICAgZXJyb3JzIGJlaW5nIGRpcmVjdGVkIHRvIHN0ZGVyciwgYW5kIHN1YnNlcXVlbnQgbG9nZ2luZwogICBvdXRwdXQgZ2V0cyBsb3N0LgoKMjAwNy0wNi0wNiAxMDoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTW9yZSBoZWxwZnVsIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTA2LTA2IDA1OjUzICBtYWdmcgoKICAgKiAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIENIQU5HRVM6IG1pc2M6IERvbid0IHVzZSB0aGUgbGVnYWN5IHN5bWJvbAogICBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKCjIwMDctMDYtMDUgMTc6NDkgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIGV4cGxpY2l0IGRlZmluaXRpb25zIG9mIGl0ZW1zIHRoYXQKICAgYXV0b2hlYWRlciBhbHNvIGRlZmluZXMKCjIwMDctMDYtMDUgMTU6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE3Mjk2Mjk6IEZpeCBtZW1vcnkgbGVhayBpbiBkaXNtYW4KICAgYWdlbnQuCgoyMDA3LTA2LTA1IDE0OjUyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBTdXBwb3J0IHBlci10cmFwIGZvcm1hdCBzcGVjaWZpY2F0aW9ucwoKMjAwNy0wNi0wNSAwNjo1NyAgbWFnZnIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTkVXUzogbWlzYzogQWRkIGNvbmZpZyByZXJlYWRpbmcgc3VwcG9ydCB0byB0aGUgc3ViYWdlbnQKICAgZ2VuZXJhdGVkIGJ5IG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQKCjIwMDctMDYtMDQgMjI6MjkgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaW1wbGlmeSB0aGUgZGV0ZWN0aW9uIG9mIGxpYnJhcmllcyBuZWVkZWQgZm9yCiAgIGdldGhvc3RieW5hbWUKCjIwMDctMDYtMDQgMjI6MDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSBzbm1wX3Nlc3NfYWRkX2V4IHRvIGNvbnNpc3RlbnRseSBjbG9zZSBhbmQKICAgZGVsZXRlIHRoZSB0cmFuc3BvcnQgYXJndW1lbnQgb24gZmFpbHVyZSwgZWFybGllciB0aGUgbGl2ZW5lc3Mgb2YKICAgdGhlIHRyYW5zcG9ydCBhcmd1bWVudCB3YXMgdW5kZWNpZGVkLgoKMjAwNy0wNi0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGRpc3QvbWFrZXJlbGVhc2UsIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0OiBzdXBwb3J0IGEgLW4gZmxhZyB0byBSVU5URVNUUyB0byBwcmludCB0aGUgdGVzdAogICBudW1iZXIgZm91bmQgaW4gdGhlIHRlc3QgZmlsZSBhcyBvcHBvc2VkIHRvIHRoZSBudW1lcmljYWwgY291bnQKCjIwMDctMDYtMDQgMTM6MDkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMzc6IGZyb20gbWl0c3VydV9jaGluZW46IE1vdmUKICAgdmFyaWFibGUgZGVjbGFyYXRpb24gYXQgdGhlIHRvcCBvZiBuZXRzbm1wX3VkcF9zZW5kdG8KCjIwMDctMDYtMDQgMTI6NTIgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMzM6IGZyb20gbWl0c3VydV9jaGluZW46IG1ha2Ugc3VyZQogICB0eXBlIG5mZHNfdCBpcyBkZWZpbmVkCgoyMDA3LTA2LTA0IDEyOjEzICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMzA6IGZyb20gbWl0c3VydV9jaGluZW46IGFkZAogICBjb25maWd1cmUgY2hlY2sgZm9yIGdhaV9zdHJlcnJvcigpCgoyMDA3LTA2LTA0IDEwOjM1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIyNjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWFrZSBzdXJlCiAgIElGX05BTUVTSVpFIGlzIGRlZmluZWQKCjIwMDctMDYtMDQgMTA6MjggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMjM6IGZyb20gbWl0c3VydV9jaGluZW46IGFkZAogICBjb25maWd1cmUgY2hlY2sgZm9yIG5ldGxpbmsgc29ja2V0CgoyMDA3LTA2LTA0IDA5OjQ3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWxzbyBza2lwIHRoaXMgdGVzdCBvbiBJUklYNjQKCjIwMDctMDYtMDIgMTY6MTMgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeCBjb21waWxhdGlvbiBvbiBJUklYCgoyMDA3LTA2LTAyIDA4OjI0ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wYXBpOiBEbyBub3QgdXNlIGdldHNlcnZieW5hbWUgdG8gZmluZCBkZWZhdWx0IHBvcnQKICAgbnVtYmVycywganVzdCBoYXJkY29kZSB0aGVtIGFuZCBsZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlbSBpZgogICBuZWVkZWQuCgoyMDA3LTA2LTAxIDIyOjU1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IExpbmsgbGliZGwgYWdhaW5zdCBsaWJuZXRzbm1wbWlicyBpbnN0ZWFkIG9mCiAgIHNubXBkLgogICBGaXhlcyB0aGUgYnVpbGQgb24gKHNvbWUpIFNvbGFyaXMgc3lzdGVtcy4KCjIwMDctMDYtMDEgMjI6MzQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUwgY29uZmlndXJlIGNoZWNrIG9uIElSSVgKICAgKHJlZ3Jlc3Npb24gZnJvbSByMTY0NTEpCgoyMDA3LTA2LTAxIDE0OjMzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTkVXUzogc25tcHRyYXBkOiBXaXRoZHJhdyBkZXByZWNhdGVkIG9wdGlvbnMuCiAgIChUaHJlZSBhbmQgYSBoYWxmIHllYXJzJyB3YXJuaW5nIHNob3VsZCBiZSBlbm91Z2ggZm9yIGFueW9uZSEpCgoyMDA3LTA1LTMxIDIzOjUxICB0YW5kZXJzCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBMaW5rIGxpYmt2bSBhbmQgbGlid3JhcCB0byBsaWJuZXRzbm1wYWdlbnQKICAgaW5zdGVhZCBvZiBzbm1wZC4KICAgRml4ZXMgdGVzdCAjNDQgKFBlcmwgc3ViYWdlbnQpIG9uIHN5c3RlbXMgdXNpbmcgb25lIG9mIHRob3NlCiAgIGxpYnJhcmllcy4KCjIwMDctMDUtMzEgMjM6NDIgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBNb3ZlIHN5c09STGFzdENoYW5nZSBmcm9tIG1pYklJL3N5c3RlbV9taWIgdG8KICAgbWliSUkvc3lzT1JUYWJsZSBpbiBvcmRlciB0byBrZWVwIHRoZSBkYXRhIGFuZCB0aGUgdXNlIHRvZ2V0aGVyLgoKMjAwNy0wNS0zMSAxNDozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggbG9nZ2luZyBvZiBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbi4KCjIwMDctMDUtMzEgMTA6MTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgUmVtb3ZlIGJvZ3VzIGRlYnVnIG91dHB1dC4KCjIwMDctMDUtMzEgMDk6NDggIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IGNvZGUuCgoyMDA3LTA1LTMxIDA5OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGRUFUVVJFOiAxMTU5OTQ3OiBBbGxvdyBjb250cm9sIG9mIHRyYXBoYW5kbGUKICAgZGF0YSBmb3JtYXQKCjIwMDctMDUtMzAgMjI6NTMgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9PSUQvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IEFJWDogYnVpbGQgZml4ZXMgZm9yIGVtYmVkZGVkIFBlcmwKCjIwMDctMDUtMzAgMjI6MzQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBIUC1VWCAxMS54IGFuZCBJUklYIDYuNSBidWlsZCBmaXggKHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieQogICByMTY0NTEpCgoyMDA3LTA1LTI5IDIzOjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IG1ha2UgdXNlIG9mIEFDX1BST0dfU0VEL0FDX1BST0dfR1JFUCBhbmQgLyB0bwogICBmdXJ0aGVyIG1pbmltaXplIHNlZC9ncmVwIHByb2JsZW1zCgoyMDA3LTA1LTI5IDIyOjQyICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgdGhlIGRlZmF1bHRfdGFyZ2V0IGFyZ3VtZW50IGlmIGl0IGlzCiAgIG5vbi1OVUxMLCBub3QgaWYgaXQgaXMgTlVMTC4KCjIwMDctMDUtMjkgMTA6MzAgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIG1vcmUgbmV0LXNubXAgc3BlY2lhbHMgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHRzIHRvIGVhc2UgbWFpbnRlbmFuY2UuCiAgIEFsc28gY2hhbmdlIHJlY2VudGx5IGFkZGVkIFNUUlVDVF9TT0NLQUREUl9TVE9SQUdFX0hBU19TU19GQU1JTFkuCgoyMDA3LTA1LTI5IDEwOjI3ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIHJlY2VudCBtZmQgcmV3cml0ZXMKCjIwMDctMDUtMjkgMTA6MjIgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIG1vcmUgbmV0LXNubXAgc3BlY2lhbHMgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHRzIHRvIGVhc2UgbWFpbnRlbmFuY2UuCiAgIEFsc28gY2hhbmdlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGZvciBjb25zaXN0ZW5jeS4KCjIwMDctMDUtMjggMjM6MzAgIG1hZ2ZyCgogICAqICBQT1JUSU5HLCBhY2NvbmZpZy5oLCBhY2luY2x1ZGUubTQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgIAogICAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgbW9yZSBuZXQtc25tcCBzcGVjaWFscyBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdHMgdG8gZWFzZSBtYWludGVuYW5jZS4KCjIwMDctMDUtMjggMTY6MzEgIGR0czEyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDE0MDc0NzY6IFJlbmFtZSAnc3RyaWN0Q29tbWVudFRlcm0nCiAgIHRvIHJlZmxlY3QgdGhlIGFjdHVhbCBiZWhhdmlvdXIuCgoyMDA3LTA1LTI4IDE1OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogMTA0MTg4ODogQ2hlY2sgZGlyZWN0b3J5IHBhdGhzIGZvcgogICBjb25maWcgZmlsZXMuCgoyMDA3LTA1LTI4IDEzOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogODUxODg3OiBSZXBvcnQgcmFuZ2UgaW5mb3JtYXRpb24gZm9yCiAgIGludmFsaWQgU0VUIHJlcXVlc3RzLgoKMjAwNy0wNS0yOCAxMjowOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYzoKCiAgIE5FV1M6IFNvbGFyaXM6IFBBVENIOiAxNzE5NzMwOiBmcm9tIGFwZXJzc29uOiBzdXBwb3J0IGZvcgogICBpcFN5c3RlbVN0YXRzVGFibGUgYW5kIGlwQWRkcmVzc1RhYmxlCiAgIFBhcnQgMiAoU29sYXJpcy1zcGVjaWZpYyBuZXcgZmlsZXMpCgoyMDA3LTA1LTI4IDEyOjAyICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oOgoKICAgTkVXUzogTGludXg6IFBBVENIOiAxNzI0NjAyOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtZmQtYmFzZWQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUgaW1wbGVtZW50YXRpb24KCjIwMDctMDUtMjggMTI6MDAgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9vaWRzLmg6CgogICBORVdTOiBMaW51eDogUEFUQ0g6IDE3MjQ2MDI6IGZyb20gbWl0c3VydV9jaGluZW46IG1mZC1iYXNlZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZSBpbXBsZW1lbnRhdGlvbgoKMjAwNy0wNS0yOCAxMTo1OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgTkVXUzogTGludXg6IFBBVENIOiAxNzI0NjAyOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtZmQtYmFzZWQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUgaW1wbGVtZW50YXRpb24KCjIwMDctMDUtMjggMTA6MDkgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIC1DRSBvcHRpb24uCgoyMDA3LTA1LTI3IDIxOjQyICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgU29tZSBsYW1lIGxpbmtlcnMgKGUuZy4gb24gSFAtVVggMTEuMjMvSUE2NCkgbmVlZCBxdWl0ZSBhIGJpdCBvZgogICBoZWxwIHRvIHN1Y2Nlc3NmdWxseSBsaW5rIHRoZSBQZXJsIG1vZHVsZXMuCgoyMDA3LTA1LTI3IDIxOjMzICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBDSEFOR0VTOiBzbm1wd2FsazogUEFUQ0g6IDE3MjM2MjA6IFNwZWNpZnkgYW4gZXhwbGljaXQgZW5kLXBvaW50CiAgIGZvciB0aGUgd2Fsay4KICAgQW4gYWx0ZXJuYXRpdmUgKG1vcmUgZmxleGlibGUpIGFwcHJvYWNoIHRvIHRoZSBwcm9wb3NlZCBwYXRjaCwKICAgYnV0IG9uZSB0aGF0CiAgIHByb3ZpZGVzIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eS4gQWxzbyBhZGRyZXNzZXMgRmVhdHVyZSBSZXF1ZXN0CiAgICM3MjI3ODQuCgoyMDA3LTA1LTI3IDIwOjUyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkIGRlc2NyaXB0aW9ucyB0byBBQ19ERUZJTkU7IGRyb3Agb2Jzb2xldGUgQUNfQ0hFQ0tfTElCKG0sCiAgIGFzaW4pLgoKMjAwNy0wNS0yNyAxOToyOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiA0NTQwMjg6IERldGVjdCBlbXB0eSBNSUIgaW5kZXggZmlsZXMuCgoyMDA3LTA1LTI3IDE5OjA2ICBkdHMxMgoKICAgKiAgYWdlbnQvc25tcGQuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogRkVBVFVSRVM6IDEwMTk0Mjk6IFNldCBzdXBwbGVtZW50YXJ5IGdyb3VwcyB2aWEKICAgaW5pdGdyb3VwcygzKQoKMjAwNy0wNS0yNyAwNjoyNyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIE5FV1M6IFNvbGFyaXM6IFBBVENIOiAxNzE5NzMwOiBmcm9tIGFwZXJzc29uOiBzdXBwb3J0IGZvcgogICBpcFN5c3RlbVN0YXRzVGFibGUgYW5kIGlwQWRkcmVzc1RhYmxlCgoyMDA3LTA1LTI3IDA2OjIwICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBncmFtbWFyIGZpeAoKMjAwNy0wNS0yNiAxNjo0MSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIElQdjYgYnVpbGQgZml4ZXMuIElQdjYgbm93IHJlcXVpcmVzIFBTREsuCgoyMDA3LTA1LTI2IDE1OjE2ICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSVB2NiBidWlsZCBmaXhlcyBmb3IgYnVpbGQuYmF0LCBDb25maWd1cmUgYW5kIFJFQURNRS53aW4zMi4KCjIwMDctMDUtMjUgMjM6MDMgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS50cnU2NDoKCiAgIERvY3VtZW50YXRpb24gdXBkYXRlIHcuci50LiByZWNlbnQgY2hhbmdlcyAobWliSUkvaXB2NiBhbmQgQUlYCiAgIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkaW5nKS4KCjIwMDctMDUtMjUgMTg6NTQgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1cGRhdGUgZm9yIG5ldyB1cmwgZm9ybWF0IGluIHN2biBlbnRyaWVzCgoyMDA3LTA1LTI1IDE1OjI4ICB0YW5kZXJzCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIFNvbWUgc3lzdGVtcyAoZS5nLiBIUC1VWCAxMS4yMy9JQTY0KSBjdXJyZW50bHkgc3RpbGwgbmVlZAogICAibmV0LXNubXAtY29uZmlnIC0tbGlicyIgKGluc3RlYWQgb2YganVzdCAtLW5ldHNubXAtbGlicykgZm9yCiAgIGxpbmtpbmcKICAgbGlibmV0c25tcCB0byBhIFBlcmwgbW9kdWxlLgoKMjAwNy0wNS0yNCAyMzo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBvbmx5IGVuYWJsZSBtaWJJSS9pcHY2IHRocm91Z2ggLS1lbmFibGUtaXB2NiBvbgogICBzeXN0ZW1zIGl0IGJ1aWxkcyBwcm9wZXJseSBvbiAoTGludXggYW5kICpCU0QpCgoyMDA3LTA1LTI0IDIzOjE1ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIFNvbWUgc3lzdGVtcyAoZS5nLiBIUC1VWCAxMS4yMy9JQTY0KSBjdXJyZW50bHkgc3RpbGwgbmVlZAogICAibmV0LXNubXAtY29uZmlnIC0tbGlicyIgKGluc3RlYWQgb2YganVzdCAtLW5ldHNubXAtbGlicykgZm9yCiAgIGxpbmtpbmcgbGlic25tcGFnZW50IHRvIGEgUGVybCBtb2R1bGUuCgoyMDA3LTA1LTI0IDIyOjAxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBDb3JyZWN0IG9idmlvdXNseSBicm9rZW4gdXNlIG9mIHRoZSBLTE9PS1VQIG1hY3JvIHRvIGJlCiAgIGNvbnNpc3RlbnQgYXQgbGVhc3QKCjIwMDctMDUtMjQgMjA6NTEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDcuaDoKCiAgIENIQU5HRVM6IEZyZWVCU0Q6IGFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIHVwY29taW5nIEZyZWVCU0QgNwoKMjAwNy0wNS0yNCAxNDowNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgbGliY3VycmVudCB0byAyMCB0byBsZWF2ZSBzcGFjZSBmb3IgNS40LnggcmVsZWFzZXMKCjIwMDctMDUtMjQgMTI6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggbGlicmFyeSBsaW5raW5nIG9uIEhQLVVYIDExLjIzL0lBNjQKCjIwMDctMDUtMjMgMTk6MDUgIHRhbmRlcnMKCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBORVdTOiBzbm1wbGliOiBCVUc6IDE2MTk4Mjc6IGxpbmsgbmV0LXNubXAgbGlicmFyaWVzIGFuZCBiaW5hcmllcwogICBhZ2FpbnN0IHRoZSBuZXQtc25tcCBsaWJyYXJpZXMgdGhleSByZWFsbHkgZGVwZW5kIG9uCiAgIC0gcmVmbGVjdCBsaWJyYXJ5IGludGVyZGVwZW5kZW5jaWVzIGF0IGxpbmsgdGltZQogICAtIGZpeCBkZXBlbmRlbmNpZXMgb24gbGliY3J5cHRvLCBsaWJwa2NzMTEgYW5kIGxpYmtzdGF0CiAgIC0gaW5zdGFsbCBsaWJyYXJpZXMgaW4gY29ycmVjdCBvcmRlciAoaW1wb3J0YW50IGZvciBsaWJ0b29sCiAgIHJlbGlua2luZykKICAgTkVXUzogUGVybDogbGluayBQZXJsIG1vZHVsZXMgYWdhaW5zdCB0aGUgZXhhY3Qgc2V0IG9mIGxpYnJhcmllcwogICB0aGV5IGRlcGVuZCBvbgoKMjAwNy0wNS0yMiAxNjoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHVzZSBzdm4gZXhwb3J0IGluc3RlYWQgb2YgY2hlY2tvdXQKCjIwMDctMDUtMjIgMDA6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaWdub3JlIHdpbkV4dERMTCBpbiBjb21tZW50IGNoZWNrCgoyMDA3LTA1LTIxIDIzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uYzoKCiAgIC8vIC0+IEMgY29tbWVudAoKMjAwNy0wNS0yMSAyMzozMyAgdGFuZGVycwoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuMTAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgIHN5bmMgd2l0aCA1LjQsIHRoZXNlIGFyZSBvYnNvbGV0ZSBub3cKCjIwMDctMDUtMjEgMjM6MTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERpc2FibGUgaW5saW5pbmcgb24gc29sYXJpcyBhcyB0aGVyZSBhcmUgc29tZQogICBsaW5raW5nIGVycm9ycyB0aGF0IHNob3cgdXAgaWYgdGhlIGlubGluZSBzdXBwb3J0IGlzIGxlZnQKICAgZW5hYmxlZC4KCjIwMDctMDUtMjEgMDY6MDUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEF0IGxlYXN0IFN1biBDIDUuNyBmYWlscyBpZiBvbmUgdHJpZXMgdG8KICAgYWNjZXNzIF9fZnVuY19fIGluIGEgZXh0ZXJuIGlubGluZSBmdW5jdGlvbiwgc28gdGVzdCBmb3IgdGhhdAogICBjYXNlLgoKMjAwNy0wNS0yMCAyMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBzbm1wbGliOiBCVUc6IDE2MTk4Mjc6IGxpbmsgYWdhaW5zdCBuZWVkZWQgZXh0ZXJuYWwKICAgbGlicmFyaWVzIGF0IGxpYnJhcnkgbGluayB0aW1lICh3aGVyZSB0aGV5IGFyZSByZWZlcmVuY2VkKSwKICAgcmF0aGVyIHRoYW4gYXBwbGljYXRpb24gbGluayB0aW1lLgogICBBbHJlYWR5IGNvdmVycyBtb3N0IG9mIGxpYm5ldHNubXBtaWJzJyBleHRlcm5hbCBkZXBlbmRlbmNpZXMuCiAgIEZpeGVzIGJ1aWxkIGlzc3VlcyBvbiBzb21lIHBsYXRmb3JtcyAoZS5nLiBidWlsZGluZyB3aXRoIHNoYXJlZAogICBsaWJyYXJpZXMgb24gQUlYKS4gVGVzdGVkIG9uIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiBMaW51eCwKICAgU29sYXJpcywgSFAtVVgsIEFJWCBhbmQgSVJJWC4KCjIwMDctMDUtMTkgMTU6MjcgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDaGVjayBmb3Igc3VwcG9ydCBvZiBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucwogICBpbnN0ZWFkIG9mIG5lc3RlZCBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyB3aGVuIGRldGVybWluaW5nIGlmCiAgIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIHdvcmsKCjIwMDctMDUtMTkgMDg6NDAgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdXNlIG9mIHRoZSBDOTkgcHJlZGVmaW5lZCB2YXJpYWJsZQogICBfX2Z1bmNfXyBpbiBhZGRpdGlvbiB0byB0aGUgR0NDIHN5bWJvbCBfX0ZVTkNUSU9OX18gdG8gZ2V0IHRoZQogICBuYW1lIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uCgoyMDA3LTA1LTE4IDE4OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcyMTA5NjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogcmVtb3ZlCiAgIHVudXNlZCB2YXJpYWJsZSBzdGF0cyBmcm9tIGtlcm5lbCBleHRyYWN0aW9uIGZvciBiZXR0ZXIKICAgcG9ydGFiaWxpdHkuCgoyMDA3LTA1LTE4IDE4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxOTI1NDogZnJvbSAiQ2hyaXN0YW4gSnVuZyI6IHVwZGF0ZQogICBIUkZTX2lnbm9yZSBsaXN0IHRvIGN1cnJlbnQgbGludXggbGlrZWx5aG9vZHMKCjIwMDctMDUtMTggMTg6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzE5MjUzOiBmcm9tICJDaHJpc3RpYW4gSnVuZyI6IGZpeAogICBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzIHNvIGl0IGRvZXMgbm90IGJyZWFrIG9uIHRoZSBzZWNvbmQgd2FsayBvZgogICB0aGUgdGFibGUuCgoyMDA3LTA1LTE4IDE3OjU1ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVyYW4gYXV0b2hlYWRlciBhbmQgYWRqdXN0ZWQgYWNjb25maWcuaCBhZnRlciBjaGFuZ2VzIGluIHIxNjM4NwoKMjAwNy0wNS0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE1NDA2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiByZWdpc3RyYXRpb24KICAgb3JkZXJpbmcgZml4ZXMgZm9yIGljbXBTdGF0c1RhYmxlCgoyMDA3LTA1LTE4IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTUzOTU6IGZpeCBpY21wIHRhYmxlIGVycm9ycyBpbiBuZXcgaWNtcAogICBjb2RlCgoyMDA3LTA1LTE4IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICAKCjIwMDctMDUtMTggMTU6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBBSVg6IGZpeCBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGJ1aWxkaW5nIGluc3RlYWQgb2YgZm9yY2luZwogICBzdGF0aWMKCjIwMDctMDUtMTggMTQ6MTggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19DSEVDS19NRU1CRVJTIGluc3RlYWQgb2YKICAgQUNfQ0hFQ0tfU1RSVUNUX0ZPUiB3aGVuIGNoZWNraW5nIGZvciBzdHJ1Y3QgaXBzdGF0IG1lbWJlcnMgaW4KICAgb3JkZXIgdG8gbWFrZSBjb25maWd1cmUuaW4gc21hbGxlcgoKMjAwNy0wNS0xOCAxMDoyMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBmb3IKICAgaG9zdC9ocl9zdG9yYWdlCgoyMDA3LTA1LTE4IDA5OjU3ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogRG8gbm90IHRlcm1pbmF0ZSBvbiBTSUdDSExEIHNpbmNlIGRhc2ggYW5kCiAgIHNvdW1lIGJvdXJuZSBzaGVsbHMgd2lsbCBleGl0IHRoZSBtYWluIHNoZWxsIHdoZW4gYSBzdWJzaGVsbAogICB0ZXJtaW5hdGVzIGluIHRoYXQgY2FzZS4KCjIwMDctMDUtMTggMDk6MjIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBVbmRvaW5nIGFjY2lkZW50YWwgY2hhbmdlIGNvbW1pdHRlZCBpbiByMTYzNzMuCgoyMDA3LTA1LTE3IDIzOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMzNzogSW1wbGVtZW50IF9zZXNzX29wZW4gaW4gdGVybXMKICAgb2Ygc25tcF9zZXNzX2FkZAoKMjAwNy0wNS0xNyAyMjoxNiAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gc2VuZGluZyBzbyB0aGF0CiAgIGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gcmVjZXB0aW9uIHNvCiAgIHRoYXQgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKICAgQ0hBTkdFUzogYXBwczogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gc2VuZGluZyBzbyB0aGF0CiAgIGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjIwNDI0OiBIb25vcgogICBORVRTTk1QX0RTX0xJQl9ERUZBVUxUX1BPUlQgb3ZlciB0aGUgZGVmYXVsdCBzeXN0ZW0KCjIwMDctMDUtMTcgMjE6NTMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTA2MzI6IGZyb20gbWF2YXJsZXk6IGZpeCBtZW1vcnkgbGVhayBvbgogICBicm9rZW4gY29udGFpbmVyIGluc2VydGlvbnMgZm9yIHRoZSBpcEFkZHJlc3NUYWJsZQoKMjAwNy0wNS0xNyAxODowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE3MTkyNDQ6IGZpeCBtZmQgZ2VuZXJhdGluZyBtYXAgZnVuY3Rpb24KCjIwMDctMDUtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MDgyNDM6IGZyb20gbmhvcm1hbjogaW1wbGVtZW50IHRoZQogICBpcERlZmF1bHRSb3V0ZVRhYmxlIG9uIGxpbnV4CgoyMDA3LTA1LTE3IDE2OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBORVdTOiBwb3J0czogcGF0Y2g6IDE3MDYzNDQ6IGZyb20gbmF5bG9yOiBmaXggY29tcGlsYXRpb24gd2l0aAogICBjeWd3aW4KCjIwMDctMDUtMTcgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcwMDE1NzogZnJvbSBhZnJpa2E6IGZpeGVzIG9yZGVyaW5nIG9mIGV4ZWMKICAgdG9rZW5zIGluIHRoZSByZXN1bHRpbmcgbWliIHRyZWUKCjIwMDctMDUtMTcgMTU6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNjE3MjU1OiBmaXggbGVuZ3RoIG9mIHRoZSBoaXN0b3J5IGFycmF5CiAgIHRvIG1hdGNoIGNvZGUuCgoyMDA3LTA1LTE3IDEzOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxMjI1NDQwOiBBcHBseSBpbnRlbnQgb2YgcGF0Y2g6IHRvIGRlbGF5CiAgIHNpZ2h1cCB0aWxsIGl0IGlzIHNhZmUuCiAgIENIQU5HRVM6IHNubXB0cmFwZDogcGF0Y2g6IDEyMjU0NDA6IEFwcGx5IGludGVudCBvZiBwYXRjaDogdG8KICAgZGVsYXkgc2lnaHVwIHRpbGwgaXQgaXMgc2FmZS4KCjIwMDctMDUtMTcgMTM6MzUgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIGNvbmZpZ19lcnJvciBpbnN0ZWFkIG9mIGNvbmZpZ19yZXF1aXJlIG9mCiAgIGEgYm9ndXMgZmlsZS8jZXJyb3IgdG8gZ2VuZXJhdGUgZXJyb3IgbWVzc2FnZXMgYXQgY29uZmlndXJlIHRpbWUuCgoyMDA3LTA1LTE3IDA0OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaDogMTY0NTY5ODogZml4IDY0LWJpdCBzaWduZWQgaW50ZWdlcgogICBlbmNvZGluZwoKMjAwNy0wNS0xNiAyMzo1MyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBDSEFOR0VTOiBIUC1VWDogSFAtVVggbmVlZHMgX1JFRU5UUkFOVCBkZWZpbmVkIHRvIHBpY2sgdXAKICAgc3RydG9rX3IuCiAgIE90aGVyd2lzZSwgYXQgbGVhc3QgZm9yIDY0LWJpdCBjb2RlLCBzdHJ0b2tfciB3aWxsIG5vdCB3b3JrCiAgIGFuZCB3aWxsIG1ha2UgbmV0LXNubXAgc2VnZmF1bHQuCgoyMDA3LTA1LTE2IDIzOjM5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHBhdGNoIDE2MjUwNjkgKHIxNjM2NSkgdG8gbm90IGJyZWFrIHRoZSBidWlsZCBvbiBTb2xhcmlzCiAgIDIuNi83CgoyMDA3LTA1LTE1IDE3OjMzICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIC0gYWRkIHdhcm5pbmcgaWYgc3RhciBub3QgYXZhaWxhYmxlCiAgIC0gZml4IHBhdHRlcm4gdG8gZXhjbHVkZSAuc3ZuIGRpcnMgZnJvbSB0YXJiYWxscwoKMjAwNy0wNS0xNSAxNTo1NSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB3YXJuIGlmIHN0YXIgbm90IGF2YWlsYWJsZQoKMjAwNy0wNS0xNSAxNDozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTA1LTE0IDIxOjQ5ICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBhZGQgbWlzc2luZyBDRkxBR1MgdG8gbGluayBsaW5lCgoyMDA3LTA1LTE0IDIxOjQ4ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBhZGQgbWlzc2luZyBDRkxBR1MgdG8gbGluayBsaW5lCgoyMDA3LTA1LTE0IDE1OjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTYyNTA2OTogc3BlZWQgaW1wcm92ZW1lbnRzIGZvciBzb2xhcmlzCiAgIHJvdXRpbmcgdGFibGUgYWNjZXNzCgoyMDA3LTA1LTE0IDE0OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE1OTU1Njg6IGZyb20gY3lyaWxfbWFyZ2FyaWE6IGZpeAogICBkZWxlZ2F0ZWQgU0VUIHJlcXVlc3RzIGZyb20gYWdlbnR4IHN1YmFnZW50cwoKMjAwNy0wNS0xNCAxNDowNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSB0byBwb2ludCB0byB3aWtpIGFuZCBhIGZldyBtb3JlIGN2cyAtPiBzdm4gY2hhbmdlcwoKMjAwNy0wNS0xMyAxNDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlYWQgdGhlIGNvbmZpZyBwYXJhbWV0ZXJzIGRlZlRhcmdldCBhbmQKICAgZGVmRG9tYWluIGZyb20gc25tcC5jb25mIGFzIHdlbGwgYXMgZnJvbSA8YXBwbGljYXRpb24+LmNvbmYKCjIwMDctMDUtMTIgMTE6MTcgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEZWFsbG9jYXRlIHRoZSBfbWliaW5kZXhlcyBjYWNoZSBpbgogICBzaHV0ZG93bl9taWIgdG8gbWFrZSBmb3IgYSBjbGVhbmVyIGV4aXQgb2YgdGhlIGxpYnJhcnkKCjIwMDctMDUtMTIgMTE6MTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEZWFsbG9jYXRlIHRoZSBjb25mbWlicyBhbmQgY29uZm1pYmRpcnMKICAgdmFyaWFibGVzIGluIHNodXRkb3duX21pYiB0byBtYWtlIGZvciBhIGNsZWFuZXIgZXhpdCBvZiB0aGUKICAgbGlicmFyeQoKMjAwNy0wNS0xMSAyMTowNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4NzMzNjogU3RhcnQgdXNpbmcgdGhlIGVuaGFuY2VkCiAgIHJlYWRfY29uZmlnIGludGVyZmFjZQoKMjAwNy0wNS0xMSAyMDozMyAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUEFUQ0ggMTY4NzMyOTogQXBwbGllZCBwYXJ0IDIgb2YgdGhlIHBhdGNoIC0gV2hlbiByZWdpc3RlcmluZwogICBtdWx0aXBsZSBwcmVtaWIgaGFuZGxlcnMgb25seSB0aGUgbGFzdCBvbmUgd2FzIHJlZ2lzdGVyZWQgcHJlbWliLAogICB0aGUgb3RoZXJzIHdlcmUgcmVnaXN0ZXJkIGF0IHRoZSBub3JtYWwgdGltZS4gVGhpcyBwYXRjaCBwdXRzIGFsbAogICByZWdpc3RyYXRpb24gaW4gb25lIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIHByb2JsZW1hdGljIHZhbHVlIGFzCiAgIGFuIGFyZ3VtZW50IGFuZCBtYWtlcyB0aGUgb2xkIGZ1bmN0aW9ucyB0aGluIHdyYXBwZXJzIG9mIHRoZSBuZXcKICAgb25lCgoyMDA3LTA1LTExIDIwOjI0ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0U6IHNubXBsaWI6IFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAzIG9mIHRoZSBwYXRjaCAtIHVzZQogICB0aGUgc2FtZSBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHdoYXQgdG8gdW5yZWdpc3RlciBhcyBpcyB1c2VkIHRvCiAgIGRldGVybWluZSB3aGF0IHRvIHJlZ3N0ZXIKCjIwMDctMDUtMTEgMTY6MzIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgRG9uJ3QgbG9nIGhvc3QvaHJfcHJvYyBldmVudHMgaW4gdGhlIHNubXBkIGRvbWFpbgoKMjAwNy0wNS0xMSAxNjoyNyAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBEZWNvcmF0ZSBtb3JlIGRlYnVnIGxpbmVzIHdpdGggdGhlIHRhZyB0aGF0IGNvbnRyb2xzIHRoZSBsb2cKCjIwMDctMDUtMTEgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYyODYxMzogUmVzdG9yZSBtZW1Ub3RhbEZyZWUuMCBvbiBTb2xhcmlzCgoyMDA3LTA1LTEwIDIxOjUyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBweXRob24vc2V0dXAucHk6CgogICBORVdTOiBweXRob246IFBBVENIOiAxNzE2MTE0OiBMZXQgcHl0aG9uIGJ1aWxkIGluIHNvdXJjZSB0cmVlCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEpvY2hlbiBGcmllZHJpY2ggKERlYmlhbiBwYXRjaCAjMzgpLgoKMjAwNy0wNS0xMCAwNToxOCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUEFUQ0ggMTY4NzMyOTogQXBwbGllZCBwYXJ0IDEgb2YgdGhlIHBhdGNoIC0gbGVzc2VucyB0aGUgc2NvcGUgb2YKICAgdGhlIGx0bXAyIHZhcmlhYmxlCgoyMDA3LTA1LTA5IDIzOjU3ICB0YW5kZXJzCgogICAqIFJFQURNRS5pcml4OgoKICAgZG9jdW1lbnQgb3B0aW1pemVkIElSSVggY3B1IHN0YXRzCgoyMDA3LTA1LTA5IDIzOjQ5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5oOgoKICAgTkVXUzogaXJpeDogUEFUQ0g6IDE3MDk3NDg6IE9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMToyMyAgcnN0b3J5CgogICAqIGRpc3QvY3Zzc2hvdzoKCiAgIHVwZGF0ZSB0byBzaG93IHN2biByZXBvIHRvbwoKMjAwNy0wNS0wOSAxNTozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBpY21wU3RhdHNUYWJsZSBpcyBvbmx5IGltcGxlbWVudGVkIGZvciBMaW51eAoKMjAwNy0wNS0wOCAxOTo0OCAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmV2ZXJ0IG1pc3Rha2VubHkgY29tbWl0dGVkIGV4dHJhIHRyYWNlIGxvZ3MKCjIwMDctMDUtMDcgMjA6NDYgIGhhcmRha2VyCgogICAqICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdXBkYXRlIGFnZW50OjpkZWZhdWx0X3N0b3JlIHBlcmwgbW9kdWxlIGZvciBuZXcgZGVmcwoKMjAwNy0wNS0wNyAyMDoyNCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIG1vcmUgc3ZuIGNvbnZlcnNpb24gZml4ZXMKCjIwMDctMDUtMDcgMjA6MjMgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNzEyOTg4OiBkZWZhdWx0IGFuZCBjb25maWd1cmFibGUgbWF4aW11bQogICBudW1iZXIgb2YgdmFyYmluZHMgcmV0dXJuYWJsZSB0byBhIEdFVEJVTEsgcmVxdWVzdAoKMjAwNy0wNS0wNyAyMDowNSAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIHJlbmFtZSBvZiBicmFuY2ggZGlycwoKMjAwNy0wNS0wNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGF0dGVtcHRlZCAodW50ZXN0ZWQpIHVwZGF0ZQoKMjAwNy0wNS0wNyAxMzo1NSAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBkb24ndCBkZWxldGUgdGFyYmFsbCBpZiBzY3AgZmFpbHMKCjIwMDctMDUtMDQgMjA6MjcgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBmaXggU05NUCBTRVQgZm9yIElQIGFkZHJlc3NlcyBvbiA2NC1iaXQKCjIwMDctMDUtMDQgMTA6MjIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGRyYWdvbmZseS5oCgoyMDA3LTA1LTAzIDIzOjAxICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RyYWdvbmZseS5oOgoKICAgQ0hBTkdFUzogQlVHOiAxNzEwOTEwOiBpbml0aWFsIHN1cHBvcnQgZm9yIERyYWdvbkZseSBCU0QKCjIwMDctMDUtMDMgMjI6MTAgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBmaXggU05NUCBTRVQgZm9yIElQIGFkZHJlc3NlcyBvbiA2NC1iaXQKICAgUGF0Y2ggcHJvcG9zZWQgYnkgSmVmZiBMYW5nZS4KCjIwMDctMDUtMDMgMTY6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgYnVpbGQgZml4IChlLmcuIGZvciBlYXJseSBBSVgpOiB1c2UgdWludDMyX3QgaS5zLm8uIF9fdWludDMyX3QKCjIwMDctMDUtMDIgMTM6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IHByb2JsZW1zIHdpdGggc2luZ2xlLWxpbmUgZXh0ZW5kIHNjcmlwdHMuCgoyMDA3LTA1LTAxIDE5OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSB0ZXN0IGZvciBJRkFfRl9URU1QT1JBUlkgYmVmb3JlIHVzaW5nCiAgIC0gcmVtb3ZlIHJlZHVuZGFudCBpZmRlZgoKMjAwNy0wNS0wMSAxMTozNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogU3VwcG9ydCBmb3IgZm9yd2FyZGluZyB0cmFwcyBieSBPSUQgc3VidHJlZS4KICAgKENvbnNpc3RlbnQgd2l0aCBzdWJ0cmVlLWJhc2VkIHNjcmlwdCBwcm9jZXNzaW5nKS4KCjIwMDctMDQtMzAgMTQ6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAzMDA0OiBDb25zb2xpZGF0ZSBzbm1wNiBoYW5kbGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTmVpbCBIb3JtYW4sIHBsdXMgc29tZSBleHRyYSB0aWR5aW5nIHVwLgoKMjAwNy0wNC0zMCAxNDozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDIzNjY6IFN1cHBvcnQgZm9yIGljbXBTdGF0c1RhYmxlCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5laWwgSG9ybWFuCgoyMDA3LTA0LTMwIDE0OjMxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDIzNjE6IFJlYWQgc3RhdHMgZnJvbSAvcHJvYy9uZXQvc25tcDYKCjIwMDctMDQtMzAgMTQ6MTQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aGVuIElQdjYgc3VwcG9ydCBpcyBub3QgZW5hYmxlZC4KCjIwMDctMDQtMzAgMTM6MjYgIGR0czEyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczNzogVGlkeSB1cCBzZXRTZXJpYWxObwogICBpbXBsZW1lbnRhdGlvbnMuCgoyMDA3LTA0LTMwIDEzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczMjogRml4IGRlYnVnIG91dHB1dCBzdGF0ZW1lbnRzLgoKMjAwNy0wNC0zMCAxMzowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAwNzMwOiBSZW1vdmUgdW51c2VkIGV4dGVybiBkZWNsYXJhdGlvbi4KCjIwMDctMDQtMzAgMTE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY5ODE4NDogUmVnaXN0ZXIgbm9uLWRlZmF1bHQgY29udGV4dAogICBpbnRlZ2VycyBhcyB3cml0YWJsZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFyayBOYXlsb3IuCgoyMDA3LTA0LTMwIDExOjI2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTgxNzogSW1wcm92ZWQgUkZDIDQyOTMgc3VwcG9ydC4KICAgSW5jbHVkZXMgbm9uLXVuaWNhc3QgYW5kIHJhbmRvbWx5IGNob3NlbiBJUCBhZGRyZXNzZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFZhcnVuIENoYW5kcmFtb2hhbgoKMjAwNy0wNC0zMCAxMTowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY5Mjc2ODogRml4IGNvcHlpbmcgb2Ygbm9uLW9jdGV0LWFsaWduZWQKICAgSVAgYWRkcmVzcyBwcmVmaXhlcy4KCjIwMDctMDQtMzAgMTA6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NzA1MTE6IEltcGxlbWVudCBuZXR3b3JrIGNvbm5lY3Rpb24KICAgcHJvY2VzcyBJRCBvYmplY3RzLgogICBQYXRjaCBwcm92aWRlZCBieSBWYXJ1biBDaGFuZHJhbW9oYW4KCjIwMDctMDQtMzAgMTA6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgRml4IGRlY2xhcmF0aW9uIG9mIHNubXBfc2Vzc19yZWFkX2V4dGQoKQoKMjAwNy0wNC0zMCAxMDoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMyNTogRml4IHByb2JsZW0gd2l0aCBvcGVyYXRvcgogICBwcmVjZWRlbmNlLgoKMjAwNy0wNC0zMCAxMDoyMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxOTogRGVjbGFyZSBzbm1wX3Nlc3NfcmVhZF9leHRkKCkKCjIwMDctMDQtMzAgMTA6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzE4OiBNYWtlIF9zZXNzX3NlbHBvbF9pbmZvIHN0YXRpYy4KCjIwMDctMDQtMzAgMTA6MDkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzE3OiBSZW1vdmUgYW4gdW51c2VkIGxvY2FsIHZhcmlhYmxlCgoyMDA3LTA0LTMwIDEwOjA3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzE2OiBEb24ndCBkcm9wIGNvbnN0IGZyb20gY2FzdHMuCgoyMDA3LTA0LTI3IDEwOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgQnJpbmcgZHluYW1pYyBtb2R1bGUgdW5sb2FkIHByb2Nlc3NpbmcgbW9yZSBpbnRvIGxpbmUgd2l0aAogICAibm9ybWFsIiBNSUIgbW9kdWxlcy4gU3VnZ2VzdGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCiAgIFNlZSBjb2RlcnMgdGhyZWFkICJzaHV0ZG93bl9mb28gb3IgZGVpbml0X2ZvbyIuCgoyMDA3LTA0LTI3IDEwOjE3ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVXBkYXRlIHBvc3QtcmVsZWFzZSBhbm5vdW5jZW1lbnQgaW5zdHJ1Y3Rpb25zLgoKMjAwNy0wNC0yNCAxMjozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggaW5jb21wbGV0ZSBPSUQgaGFuZGxpbmcgb2Ygc2luZ2xlLWxpbmUgZXh0ZW5kIHNjcmlwdHMuCiAgIFJlcG9ydGVkIGJ5IE1heCBvbiBjb2RlcnMgbGlzdCwgN3RoIEFwcmlsLiBTZWUgdGhyZWFkCiAgICIuLi4gc2VnZmF1bHQgLi4gd2hlbiBhdHRlbXB0aW5nIFNOTVAgR0VUIG9uIGV4dGVuZCBvciBleGVjIGl0ZW0iCgoyMDA3LTA0LTIwIDA4OjMwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBiZWhhdmlvdXIgb2YgYSBsb2FkIHRocmVzaG9sZCBvZiAwLgogICBSZXBvcnRlZCBieSBGb25nIFRzdWkuCgoyMDA3LTA0LTIwIDA4OjIxICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBMb25nLXRlcm0gbG9hZCBhdmVyYWdlIGlzIGNhbGN1bGF0ZWQgb3ZlciAxNSBtaW51dGVzLCBub3QgMTAuCiAgIFJlcG9ydGVkIGJ5IEZvbmcgVHN1aQoKMjAwNy0wNC0xOSAxMjo1MyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFR3ZWFrIENoYW5nZUxvZyBpbnN0cnVjdGlvbnMgZm9yIFNWTgoKMjAwNy0wNC0xMCAxNDoxNiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBEZXRlY3QgT0lEIHJldHJhY2tpbmcgKGFzIHdlbGwgYXMgc2ltcGxlIHJlcGV0aXRpb25zKSB3aGVuCiAgIGJ1bGt3YWxraW5nIGFuIE9JRCB0cmVlLgogICBTZWUgdXNlcnMgdGhyZWFkICJtaXNzaW5nIGluZGljZXMgaW4gYnVsa3dhbGsgcmVzdWx0Ii4KCjIwMDctMDQtMTAgMTE6NDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIENsYXJpZnkgY29weXJpZ2h0IHN0YXR1cyBvZiBXaW4zMiBBUEkgZGVmaW5pdGlvbnMuCgoyMDA3LTA0LTEwIDExOjI3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oOgoKICAgQ2xhcmlmeSBjb3B5cmlnaHQgc3RhdHVzIG9mIEJTRC1kZXJpdmVkIFRDUFRWKiBkZWZpbml0aW9ucy4KCjIwMDctMDQtMDkgMTQ6MDIgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgLSByZW1vdmUgZGVidWdnaW5nCiAgIC0gY2hlY2sgcmMgZm9yIHRhciwgZ3ppcCBhbmQgc2NwIHN0ZXBzCgoyMDA3LTA0LTA2IDE4OjM4ICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIHN2biBlcXVpdmFsZW50IG9mIGN2c3VwCgoyMDA3LTA0LTAzIDA4OjU0ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEVtcGhhc2lzZSB0aGUgdXNlIG9mIFNOTVB2MyBpbiBEaXNNYW4gbW9uaXRvcmluZy4KICAgRml4IHRoZSBzeW50YXggb2Ygbm9uLWV4aXN0YW5jZS92YWx1ZS1jaGFuZ2UgdGVzdHMuCgoyMDA3LTA0LTAyIDE0OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMDQ2MzI3OiBSZXNldCAiaW5jbHVkZUFsbERpc2tzIiBmbGFnIHdoZW4KICAgcmVsb2FkaW5nLgoKMjAwNy0wNC0wMiAxNDo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYwMjI4NjogRG9uJ3QgbGV0IHRhYmxlIGhvbGVzIGJsb2NrIGxhdGVyCiAgIHJvd3MuCgoyMDA3LTA0LTAyIDEzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMDczNzgyOiBSZXN0b3JlIFBlcmZTdGF0IHZhbHVlcyBmb3IgRnJlZUJTRAogICA1Lnggc3lzdGVtcy4KICAgSXQncyB1bmNsZWFyIHdoeSB0aGUgIm5ldyIgY2FsY3VsYXRpb24gd2FzIGEpIHByb3Bvc2VkLCBiKQogICB3aXRoZHJhd24sCiAgIGFuZCBjKSB3aGF0IHdhcyB3cm9uZyB3aXRoIHRoZSBwcmV2aW91cyBjYWxjdWxhdGlvbiAod2hpY2ggc2VlbXMKICAgdG8KICAgbWF0Y2ggdGhlIG91dHB1dCBvZiAncHMnKQoKMjAwNy0wNC0wMiAxMzowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiA5MDI2MTA6IERvbid0IGRpc2NhcmQgcGVuZGluZyBkYXRhIGZvbGxvd2luZwogICBhIFRSQVAuCgoyMDA3LTA0LTAyIDEyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDkwMjgwMTogRml4IG9yZGVyaW5nIG9mIFNNVVgtcmVnaXN0ZXJlZAogICBzdWJ0cmVlcy4KCjIwMDctMDQtMDIgMTI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY4NTA2NzogTW9yZSBwcmVjaXNlIGhhbmRsaW5nIG9mCiAgIFNOTVB2My1hZG1pbiBNSUIgdGFibGVzLgogICBUaGlzIGFjdHVhbGx5IGZpeGVzIHRocmVlIHNlcGFyYXRlIHByb2JsZW1zOgogICAqICBBIEdFVCByZXF1ZXN0IGZvciAndmFjbUFjY2Vzc1N0YXR1cy4iZ3JvdXAiLiIiLjMuNCcgd2lsbCAgIAogICAgICBzdWNjZWVkICAgIChzaW5jZSBWQUNNIGNoZWNrcyBhY2NlcHQgdGhlIGdpdmVuIHNlY3VyaXR5IGxldmVsCiAgICAgICpvcipoaWdoZXIqKSAgMjAwNy0wNC0wMiAxMjoyNiAgZHRzMTIKCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ2hlY2sgdGhhdCBHRVQgcmVxdWVzdHMgbWF0Y2ggYSB2YWxpZCBPSUQuCiAgIChPdGhlcndpc2UgYSByZXF1ZXN0IGZvciBoclN0b3JhZ2V7Q29sdW1ufS57aW5kZXh9Lnthbnl0aGluZ30KICAgd2lsbCBpZ25vcmUgdGhlIGV4dHJhIHN1YmlkcywgYW5kIHJldHVybiBzdWNjZXNzKQoKMjAwNy0wNC0wMiAxMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jOgoKICAgUHJldmVudCBjcmFzaCB3aGVuIHdhbGtpbmcgKGludmFsaWQ/KSBFdmVudC1NSUIgT2JqZWN0cyBUYWJsZS4KCjIwMDctMDQtMDIgMTE6MzAgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MgaW4gdGhlIHJlLXdvcmtlZCBtYWtlcmVsZWFzZSBzY3JpcHQuCgoyMDA3LTAzLTI5IDEyOjE0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHN5bnRheCBlcnJvciAoIj09IiBpcyBiYWQpCgoyMDA3LTAzLTI3IDA4OjU1ICBkdHMxMgoKICAgKiBhY2luY2x1ZGUubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVhZCB1c2VyLXByb21wdGVkIHZhbHVlcyBmcm9tIG9yaWdpbmFsIHN0ZGluIChub3QgL2Rldi9udWxsKQoKMjAwNy0wMy0yNyAwODozOCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBY2NlcHQgJzJjJyBhcyBhIHZhbGlkIHJlc3BvbnNlIHdoZW4gY2hvb3NpbmcgdGhlIGRlZmF1bHQgdmVyc2lvbgoKMjAwNy0wMy0yNyAwODoyOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBjb25maWd1cmU6IEJVRzogMTU2NzMyNDogQ2xhcmlmeSBwcm9tcHRpbmcgZm9yCiAgIHVzZXItc3VwcGxpZWQgdmFsdWVzLgogICBOb3cgb25seSByZW1lbWJlcnMgKGFuZCB1c2VzKSBwcmV2aW91cyB2YWx1ZXMgd2hlbiBleHBsaWNpdGx5CiAgIHRvbGQgdG8gZG8gc28sCiAgIGUuZy4gY29uZmlndXJlIC1DCgoyMDA3LTAzLTI3IDA4OjIzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBpbmNvbnNpc3RlbmN5IGluIHBhdGNoICMxNjI3MDQ5IC0gPHBvbGwuaD4gdnMgPHN5cy9wb2xsLmg+CgoyMDA3LTAzLTI1IDIyOjMxICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgVmFyaWFibGUtbGVuZ3RoIHN0cmluZyB2YWx1ZXMgYXJlIG1vcmUgbGlrZWx5IHRoYW4gZml4ZWQgbGVuZ3RoLgoKMjAwNy0wMy0yNSAyMjoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogODMzNjczOiBNb3JlIGZvY3VzZWQgc2l6ZSBjaGVja3MuCgoyMDA3LTAzLTI1IDIxOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjc3MDYzOiBDaGVjayBmb3IgZmFpbGVkIG1hbGxvYyBjYWxscy4KCjIwMDctMDMtMjUgMTk6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBDaGVjayBTRVQgcmVxdWVzdHMgYWdhaW5zdCB0aGUgY29ycmVjdCB0eXBlIChJUCBBZGRyZXNzICE9IE9jdGV0CiAgIFN0cikKCjIwMDctMDMtMjUgMTg6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjg1MDgxOiBDaGVjayBmb3IgdmFsaWQgT0lEIG9uIEZyZWUvVW5kbwogICBwYXNzZXMuCgoyMDA3LTAzLTIzIDA5OjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIENIQU5FR1M6IHNubXBsaWI6IEJVRzogMTY4NjM4NDogRG9jdW1lbnQgbm9uLXVzZSBvZiAncmVtb3RlX3BvcnQnCiAgIGZpZWxkLgoKMjAwNy0wMy0yMyAwOToxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBBbGxvdyBzcGFjZSBmb3IgZXh0ZXJuYWwgaW5kZXhlcyB3aGVuIHNhdmluZyB0YWJsZSBlbnRyaWVzLgogICAoU2VlIHBhdGNoICMxNjQyMjU1KQoKMjAwNy0wMy0yMyAwOToxNCAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQyMjU1OiBIYW5kbGUgc2F2aW5nIGxvbmcKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlIGVudHJpZXMuCgoyMDA3LTAzLTIzIDA5OjA5ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4MTk3NzogQWRkIGNhbGxiYWNrcyBwcmlvciB0byByZWFkaW5nCiAgIGNvbmZpZy4KCjIwMDctMDMtMjMgMDk6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NzY0Nzg6IGZpeCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY3NjQ3NjogZml4IHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzcwoKMjAwNy0wMy0yMyAwOTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NTM2NzA6IENvbnNpc3RlbnQgU05NUHYzIGJlaGF2aW91cgogICB3aGVuIG9wZW5pbmcgc2Vzc2lvbnMuCgoyMDA3LTAzLTIzIDA4OjU3ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYyNzA0OTogTmV3IEFQSSB0byBoYW5kbGUgbGFyZ2UgbnVtYmVycwogICBvZiBmaWxlIGRlc2NyaXB0b3JzLgoKMjAwNy0wMy0yMiAxOToxNCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODEwMzA6IEJldHRlciBoYW5kbGluZyBvZiBlbXB0eQogICBhcHB0eXBlIGNvbmZpZ3MuCgoyMDA3LTAzLTIyIDE5OjEyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCAgIAogICAgICBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjc4Nzg4OiBCZXR0ZXIgaGFuZGxpbmcgb2YgU01VWCBzb2NrZXQKICAgZGVzY3JpcHRvcnMuCgoyMDA3LTAzLTIyIDE5OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjgzMDU0OiBzZXQgdWRwRW5kcG9pbnRJbnN0YW5jZSB0bwogICBpZGVudGlmeSBkaWZmZXJlbnQgcHJvY2Vzc2VzLgoKMjAwNy0wMy0yMSAxMjozNSAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRGVjbGFyZSBPSUQgY29uc3RhbnRzIGFzIHN1Y2ggKHJhdGhlciB0aGFuIEFQSSBjYWxscykuCiAgIFByb3Bvc2VkIGJ5IEFsZXggQnVyZ2VyCgoyMDA3LTAzLTIwIDIwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE2NjY3Mzc6IGluY2x1ZGUgaXB2NiBjb3VudHMgaW4KICAgdWRwSW5EYXRhZ3JhbXMsIHVkcE5vUG9ydHMsIHVkcEluRXJyb3JzLCB1ZHBPdXREYXRhZ3JhbXMKCjIwMDctMDMtMTkgMjI6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYzoKCiAgIHVzZSBwbUZyZWVSZXN1bHQoKSBpbnN0ZWFkIG9mIGZyZWUoKQoKMjAwNy0wMy0xOSAwOTozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAzLTE2IDE0OjA0ICBkdHMxMgoKICAgKiAgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUywgZGlzdC9jaGFuZ2Vsb2dmaXgsIGRpc3QvbWFrZXJlbGVhc2UsICAgCiAgICAgIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBDb252ZXJ0IGJ1aWxkIHN5c3RlbSB0byBTVk4gdmVyc2lvbi4KCjIwMDctMDMtMTUgMTA6NTkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2ODEwNzM6ICNpZmRlZiBiYXNlZCBjb25maWdfZXJyb3IgaW5zdGVhZAogICBvZiBzcGVjaWFsIGNhc2VzIGluIGNvbmZpZ3VyZQoKMjAwNy0wMy0xNSAxMDo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMy0xNCAyMzozMSAgdGFuZGVycwoKICAgKiAgUkVBRE1FLmlyaXgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5oOgoKICAgTkVXUzogSVJJWDogUEFUQ0g6IDE2NzU4Njk6IGZyb20gYmJpY2U6IENQVSBzdGF0aXN0aWNzIGZvciBJUklYCiAgIGJhc2VkIG9uIFBDUAoKMjAwNy0wMy0xNCAyMjowOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9udWxsLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODEwNDM6IGZyb20gbWFnZnI6IGNsZWFuIHVwIGhlbHBlcgogICBpbmNsdWRlcwoKMjAwNy0wMy0xNCAyMTo1NCAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBQQVRDSDogMTY4MTAzNTogZnJvbSBtYWdmcjogaW1wcm92ZSBuZXQtc25tcC1jb25maWcKICAgL2Jpbi9zaCBjb21wYXRpYmlsaXR5CgoyMDA3LTAzLTE0IDE4OjMxICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTY3ODMwMDogZnJvbSBtYWdmcjogY29tcGlsZS1zdWJhZ2VudAogICBkb2Vzbid0IGNhbGwgc2h1dGRvd25fIG1ldGhvZHMKCjIwMDctMDMtMTQgMTY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQ0MjgwOiBEb24ndCBhdXRvbWF0aWNhbGx5IHByb2JlIGZvcgogICB2MyBFbmdpbmVJRHMuCgoyMDA3LTAzLTEzIDEwOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDaGVjayBmb3IgemVyby1zaXplIHBzZXVkby1maWxlc3lzdGVtcy4gUmVwb3J0IHRoZW0gYXMgZW1wdHkKICAgcmF0aGVyIHRoYW4gZnVsbCwgc28gdGhleSB3b24ndCBiZSB0cmVhdGVkIGFzIGFuIGVycm9yLgoKMjAwNy0wMy0xMyAwNTo1OSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1Lmg6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNTogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgY2FjaGUgaW4KICAgaGFyZHdhcmUvY3B1L2NwdSBvbiBzaHV0ZG93biAoaGVhZGVyIHBhcnQpCgoyMDA3LTAzLTEyIDIzOjA5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA2OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBsb2cgaW4KICAgbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZwoKMjAwNy0wMy0xMiAyMzowNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNTogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgY2FjaGUgaW4KICAgaGFyZHdhcmUvY3B1L2NwdSBvbiBzaHV0ZG93bgoKMjAwNy0wMy0xMiAyMjo1NyAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDI6IGZyb20gbWFnZnI6IG5ldHNubXBfbWliaW5kZXhfbG9hZCBsZWFrcwogICBtZW1vcnkKCjIwMDctMDMtMTIgMjI6NTAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDE6IGZyb20gbWFnZnI6IGRlYWxsb2NhdGUgZG9tYWluIHJlZ2lzdHJ5CiAgIGF0IHNodXRkb3duCgoyMDA3LTAzLTEyIDIyOjMxICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4Mjk4OiBmcm9tIG1hZ2ZyOiBjb21waWxlLXN1YmFnZW50IGNoZWNrcyBmb3IKICAgYmFkIEhBVkVfU0lHTkFMX0gKCjIwMDctMDMtMTIgMjE6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY5MDQ4OiBBZGQgc3VwcG9ydCBmb3IKICAgaXB2NkludGVyZmFjZUlkZW50aWZpZXIKCjIwMDctMDMtMTIgMjE6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE0MTM3Mjg6IFJlZmVyZW5jZSBpbmRleCB2YWx1ZXMgaW4gZGVidWcKICAgb3V0cHV0IGNvcnJlY3RseS4KCjIwMDctMDMtMTIgMjE6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDExMDIwNTg6IFNraXAgbm9uLW1vdW50ZWQgZGlza3MgKGUuZy4gc3dhcAogICBwYXJ0aXRpb25zKQoKMjAwNy0wMy0xMiAyMTozMCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjgxOTM6IFVwZGF0ZSByZWdpc3RyYXRpb24gb2YKICAgUmVhc21NYXhTaXplIHN1cHBvcnQuCgoyMDA3LTAzLTEyIDIxOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjgxOTM6IEZpeCBjaGVjayBmb3IgdjYgUmVhc21NYXhTaXplCiAgIHN1cHBvcnQuCgoyMDA3LTAzLTEyIDE5OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2ODk1MjogSWdub3JlIHpvbWJpZSBwcm9jZXNzZXMuCgoyMDA3LTAzLTEyIDE5OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjU5ODU6IEltcGxlbWVudCBpcFJlYXNtVGltZW91dAogICBUaG91Z2ggdGhpcyByZWdpc3RlcnMgYW4gaW5zdGFuY2UsIHJhdGhlciB0aGFuIHRoZSBmdWxsIHNjYWxhcgogICBvYmplY3QKCjIwMDctMDMtMTIgMTk6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIRVM6IDE2NjU1NDM6IEhhbmRsZSBWQUNNIGNoZWNrcyBjb3JyZWN0bHkuCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY1NTQ5OiBIYW5kbGUgY3JlYXRpbmcgVkFDTSBlbnRyaWVzCiAgIGNvcnJlY3RseS4KICAgW0JvdGggcGF0Y2hlcyBhcmUgcmVxdWlyZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uXQoKMjAwNy0wMy0xMiAxOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY1OTYyMzogSGFuZGxlIFNNVVggcGVlcnMgd2l0aCBhbiBlbXB0eQogICBwYXNzd29yZC4KCjIwMDctMDMtMTIgMTk6NDQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NTc3NDE6IEhhbmRsZSA2NC1iaXQgdHlwZXMgdmlhIHBhc3MKICAgbWVjaGFuaXNtLgoKMjAwNy0wMy0xMiAxOTo0MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDQyODA6IFVzZSB0aGUgY29ycmVjdCBlbmdpbmVJRCB3aGVuCiAgIHNlbmRpbmcgdjMgdHJhcHMuCgoyMDA3LTAzLTEyIDE5OjMyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSEVTOiAxNjQyMDcxOiBEb24ndCBmaWRkbGUgd2l0aCB0aGUgc3RvcmFnZQogICBvZiBwcmUtZXhpc3RpbmcgdXNlcnMuCgoyMDA3LTAzLTEyIDE5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0MTg2NTogRG9uJ3QgZG91YmxlIGNoZWNrIHNubXBUcmFwT0lECiAgIGluIHRoZSBmaWx0ZXIgdGFibGUuCgoyMDA3LTAzLTEyIDE5OjI1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTYzOTcyNjogUmVwb3J0IHBoeXNpY2FsIG1lbW9yeQogICBjb3JyZWN0bHkgb24gKkJTRAoKMjAwNy0wMy0wOSAyMTozMSAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQyOTk6IGZyb20gbWFnZnI6IExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHpvbmUKICAgdmFyaWFibGUgaW4gZHVtcF9yZWFsbG9jX29pZF90b19pbmV0YWRkcmVzcwoKMjAwNy0wMy0wOSAyMToyOSAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDMwMjogZnJvbSBtYWdmcjogTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgbGVuCiAgIHZhcmlhYmxlIGluIGNvbnZlcnRfdjJwZHVfdG9fdjEKCjIwMDctMDMtMDggMTU6NTIgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oOgoKICAgSW5jbHVkZSBIb3N0IFJlc291cmNlcyBNSUIgb24gTmV0QlNEIGFuZCBPcGVuQlNECgoyMDA3LTAzLTA3IDA5OjQzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0Mjk4OiBmcm9tIG1hZ2ZyOiBSZW1vdmUgdW51c2VkIHNpbmtwb3J0CiAgIHZhcmlhYmxlCgoyMDA3LTAzLTA2IDEzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMTU5OTA4OiBGaXggbWVtb3J5IGxlYWsKCjIwMDctMDMtMDIgMjI6NDAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9NU0cwMDAwMS5iaW46CgogICBubyBlb2wtc3R5bGUgZm9yIGJpbmFyeSBmaWxlcwoKMjAwNy0wMy0wMiAyMjoyNiAgdGFuZGVycwoKICAgKiBkb2MvcmZjL3NtaVYyL3JmYzI1NzkuZXJyYXRhfjoKCiAgIGRvbid0IHNoaXAgZWRpdG9yIGJhY2t1cCBjb3BpZXMKCjIwMDctMDMtMDIgMTY6MjAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9NU0cwMDAwMS5iaW46CgogICBmbGFnIGFzIGJpbmFyeQoKMjAwNy0wMy0wMiAxMjo0NCAgdGFuZGVycwoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGZpeCB0eXBvCgoyMDA3LTAzLTAyIDA5OjU3ICBkdHMxMgoKICAgKiBUT0RPOgoKICAgTWlub3IgdHdlYWsgLSBwbGF5aW5nIHdpdGggU1ZOIGFzIG11Y2ggYXMgYW55dGhpbmcuLi4uCgoyMDA3LTAzLTAxIDIzOjU3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiB0aGF0IHdlIG1vdmVkIHRvIFNWTgoKMjAwNy0wMi0yOCAxNToyNyAgZHRzMTIKCiAgICogQ0hBTkdFUywgQ2hhbmdlTG9nLCBORVdTOgoKICAgQ2hlY2twb2ludCBzdW1tYXJ5IG9mIENWUyBjaGFuZ2VzLCBwcmVwYXJhdG9yeSBmb3IgdGhlIFNWTgogICBzd2l0Y2guCgoyMDA3LTAyLTI3IDEzOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBMaW51eDogQlVHOiAxNjY2MDA1OiBGYWlsIHRvIHdhbGsgaXB2NkludGVyZmFjZVRhYmxlIG9uIExpbnV4CgoyMDA3LTAyLTI3IDEzOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAxNjY4MTcxOiBza2lwIHVua25vd24gY29scyBpbiBtaW4vbWF4IHJhbmdlIGZvciB0YWJsZXMsIGluc3RlYWQgb2YgZXJyb3IKCjIwMDctMDItMjcgMTI6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUuaDoKCiAgIGFkZCBoZWFkZXIgZm9yIGVhc2llciBjb25maWd1cmUgLS13aXRoLW1pYi1tb2R1bGUKCjIwMDctMDItMjYgMTQ6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUmUtY29ycmVjdCBpbnRlcnByZXRhdGlvbiBvZiAibnVsbCBPSUQiIGluIHRoZSBBZ2VudFggc3BlY3MuCiAgIChmb3IgdGhlIGxhc3QgdGltZSwgSSB0cnVzdCEpCgoyMDA3LTAyLTI2IDE0OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIEZpeCByZWZlcmVuY2UgdG8gTmV0LVNOTVAgaW5jbHVkZSBsb2NhdGlvbnMKCjIwMDctMDItMjYgMTI6NDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIFByb21wdGluZyBmb3IgYSBzaW5nbGUgZGlyZWN0b3J5LCBub3QgYW4gYXJyYXkuCgoyMDA3LTAyLTI2IDExOjMyICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYsCiAgICAgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMTQyOTQ3MjogUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgaW5zdGFuY2VzIChhbmQgaW52YWxpZCBvYmplY3RzKQoKMjAwNy0wMi0yNiAxMToyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICBGaXggaW52YWxpZCBtaWIyYyBkaXJlY3RpdmUuCgoyMDA3LTAyLTI2IDExOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDE2Mjc2OiBIYW5kbGUgZGVwZW5kZW5jeSBvbiBNSUIgcGFyc2luZyBBUEkuCgoyMDA3LTAyLTIzIDIxOjUzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWRkIHF1b3RlcyB0byBmaXggc2hlbGwgc3ludGF4IGVycm9yIHdoZW4gZW1wdHkKCjIwMDctMDItMjIgMjI6MzUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBMYXN0IGNvbW1pdCBicm9rZSB0aGUgYnVpbGQuIE5vdyBlc2NhcGUgYmFja3NsYXNoZXMgcHJvcGVybHkuCgoyMDA3LTAyLTIyIDE1OjM4ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTI0NzE2NDogRG9jdW1lbnQgdXNlIG9mIE9JRCBtYWNyb3MKCjIwMDctMDItMjIgMDA6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsCiAgICAgdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogQUlYOiBQQVRDSDogMTY2NTA3OTogZnJvbSAiTWljaGFlbCBLdWthdCI6IEFJWCBwYXRjaGVzIGZvciBjcHUgc3RhdHMgYW5kIHByb2Nlc3MgbW9uaXRvcmluZwoKMjAwNy0wMi0yMSAxNjozNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggbGFtZS1tYWtlIHN5c3RlbXMgdGhhdCBjYW4ndCBoYW5kbGUgd2hpdGVzcGFjZSB0ZXJtaW5hdGluZyB3cmFwcGVkIGxpbmVzCgoyMDA3LTAyLTIxIDE1OjMzICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IFdpbjMyOiBCVUc6IDE2NjI5ODc6IGNvbXBpbGUgZXJyb3Igb24gQ3lnd2luCgoyMDA3LTAyLTIxIDEzOjU2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHRvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE2NjAwNjE6IFZhbGlkYXRlIGVuZ2luZUlEcyBtb3JlIHN0cmljdGx5LgoKMjAwNy0wMi0yMSAxMzo0OSAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xLmRlZiwgc25tcC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxNDA3NDc2OiBDbGFyaWZ5IE1JQiBwYXJzaW5nIHRvZ2dsZSBvcHRpb25zIGFuZCBNSUIgY29tbWVudCBoYW5kbGluZy4KCjIwMDctMDItMjEgMTM6MzcgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTA5NjE2NjogSGFuZGxlIC0td2l0aG91dC1sb2dmaWxlIGNvcnJlY3RseS4KCjIwMDctMDItMTkgMTY6MzQgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBNZW50aW9uIHJlbW92YWwgZnJvbSBDVlMgb2YgZGVsZXRlZCBmaWxlcwoKMjAwNy0wMi0xOSAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFJld29yayByZWxlYXNlIGluc3RydWN0aW9ucyB0byB0YWtlIGFjY291bnQgb2YgIm1ha2VyZWxlYXNlIiBzY3JpcHQKCjIwMDctMDItMTkgMTA6NDkgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBEb24ndCBhc3N1bWUgbG9jYWwgdXNlcm5hbWVzIG1hdGNoIENWUyBhY2NvdW50IG5hbWVzLgoKMjAwNy0wMi0xOSAxMDo0MSAgZHRzMTIKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIEltcHJvdmUgbGF5b3V0IG9mIENIQU5HRVMgaW5mb3JtYXRpb24uCgoyMDA3LTAyLTE5IDEwOjA2ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIERvbid0IGludm9rZSAndmVyc2lvbnRhZycgZm9yIHRhZ2dpbmcgdGhlIENWUyB0cmVlLgogICBJdCBkb2Vzbid0IGhhbmRsZSB0aGlzIGFueSBtb3JlLiAgKFVzZSAnbWFrZXJlbGVhc2UnIGluc3RlYWQpCgoyMDA3LTAyLTE5IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgRG9uJ3QgZmFpbCBzaWxlbnRseSB3aGVuIGNhbGxlZCB0byB0YWcgdGhlIENWUyB0cmVlLgogICBSZXR1cm4gaW5kaWNhdGlvbiBvZiBmYWlsdXJlIHRvIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIChlLmcuIG1ha2UpCgoyMDA3LTAyLTE2IDEyOjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFJldmVydCB0byBwcmV2aW91cyAibnVsbCBPSUQiIGludGVycHJldGF0aW9uIChidXQgd2l0aCB0aGUgY29ycmVjdCBlbmNvZGluZykuCgoyMDA3LTAyLTE1IDExOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjAwMjYxOiBIYW5kbGUgbm9uLXg4NiAvcHJvYy9jcHVpbmZvIGZvcm1hdAogICAoQSB3b3JrYXJvdW5kLCByYXRoZXIgdGhhbiBhIGZpeCAtIHdlIHJlYWxseSBuZWVkIHRvIHBhcnNlIHRoZXNlCiAgICBvdGhlciBmb3JtYXRzIHByb3Blcmx5IGluIHRoZSBpbml0IHJvdXRpbmUpCgoyMDA3LTAyLTE1IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENvcnJlY3QgbWlzaW50ZXJwcmV0YXRpb24gb2YgIm51bGwgT0lEIiBpbiBBZ2VudFggc3BlY3MuCgoyMDA3LTAyLTE1IDA5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZWplY3Qgb3Zlcmx5LXNob3J0IFRyYXAgT0lEcy4KICAgRG9uJ3QgY3Jhc2ggb3V0IGNvbXBsZXRlbHkgb24gZmFpbGVkIHYxPC0+djIgdHJhcCBjb252ZXJzaW9ucy4KCjIwMDctMDItMTIgMTI6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYzMzU5NTogRml4IEFnZW50WCBoYW5kbGluZyBvZiBDb3VudGVyNjQgdmFsdWVzCgoyMDA3LTAyLTA5IDIxOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTM5Nzg5NTogaW5jbHVkZSBtaXNzaW5nIGludGVyZmFjZSBkZWNsYXJhdGlvbnMKCjIwMDctMDItMDggMTc6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoIGZyb20gV29qdGVrIEphd29yIHRvIGhhbmRsZSByb3cgZGVsZXRpb24gaXNzdWVzIGluIGRhdGFzZXQgdGFibGVzCgoyMDA3LTAyLTA3IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwuaCwgbWlicy9JUFY2LUZMT1ctTEFCRUwtTUlCLnR4dAo6CgogICBhZGRlZCB0aGUgZmxvdyBsYWJsZSBtaWIsIHdoaWNoIHRoZSB0dW5uZWwtbWliIHJlZmVycyB0bwoKMjAwNy0wMi0wNSAyMzowMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHBvcnRhYmlsaXR5IGZpeGVzCgoyMDA3LTAyLTA1IDIyOjUwICB0YW5kZXJzCgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIHVzZSAvYmluL3NoIHVubGVzcyBiYXNoIGZlYXR1cmVzIGFyZSByZWFsbHkgbmVlZGVkCgoyMDA3LTAyLTA1IDIxOjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbm90ZSB0aGF0IGN1cnJlbnQgc2hvdWxkIGJlIGJ1bXBlZCBieSA1IHdoZW4gYnVtcGVkCgoyMDA3LTAyLTA1IDIxOjQ5ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gbm90ZSB0aGF0IGN1cnJlbnQgc2hvdWxkIGJlIGJ1bXBlZCBieSA1IHdoZW4gdXBkYXRlZAogICAtIGFkZCBwb2ludGVyIHRvIG5ldyBjaGVjay1hcGktY2hhbmdlcyBzY3JpcHQKCjIwMDctMDItMDUgMjE6NDYgIHJzdG9yeQoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICBzaW1wbGlzdGljIG5ldyBzY3JpcHQgdG8gaGVscCBjaGVjayBmb3IgYXBpIGNoYW5nZXMgYmV0d2VlbiByZWxlYXNlcwoKMjAwNy0wMi0wNSAyMTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oOgoKICAgbWFrZSBuZXcgc3RydWN0IG1lbWJlciBjb25kaXRpb25hbCwgc2luY2UgdXNlIGlzIGNvbmRpdGlvbmFsCgoyMDA3LTAyLTA1IDIxOjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIG1vdmUgZnVuY3Rpb24gY2FsbCBvdXQgb2YgYXNzZXJ0CgoyMDA3LTAyLTA1IDE1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQxODk1OiBFeHRlbmQgc2hvcnQgdmlldyBtYXNrcyAoYXMgcGVyIFJGQyBzcGVjcykKICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMi0wNSAxNDozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzOTM2MDogRml4IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUgcm93IGNyZWF0aW9uLgogICBQYXRjaCBzdXBwbGllZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAyLTA1IDExOjAxICBkdHMxMgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBGaXggY29tcGlsYXRpb24gaWYgTE9DS19QRVJfQ0FMTEJBQ0tfU1VCSUQgbm90IGRlZmluZWQuCiAgIFJlcG9ydGVkIGJ5IEVtaSBZYW5hZ2kKCjIwMDctMDItMDUgMDk6NDggIGR0czEyCgogICAqIEZBUToKCiAgIFNwZWxsaW5nIGNvcnJlY3Rpb246ICdzdXBlcmNlZGVkJyAtPiAnc3VwZXJzZWRlZCcKICAgKE9oLCB0aGUgc2hhbWUgb2YgaXQhKQoKMjAwNy0wMS0zMSAxMzo1MSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxNjQ3OTc2OiBDeWd3aW4vTWluR1cgV2luZG93cyBidWlsZCBmYWlscyBkdWUgdG8gbGlidG9vbCBlcnJvcgoKMjAwNy0wMS0zMCAxMzozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBidWlsZDogeWV0IGFub3RoZXIgZml4IHRvIGFkZHJlc3MgYnVpbGQgaXNzdWVzIHdpdGggZXRodG9vbCAob24gUkg5KS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMzAgMDk6MTAgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgd2hlbiBzeW1saW5rIGZpeCBpcy9pc24ndCBhcHByb3ByaWF0ZS4gIFN5bmNoIHdpdGggV2lraS4KCjIwMDctMDEtMjkgMTE6MTIgIGR0czEyCgogICAqIEZBUToKCiAgIEF1dGhlbnRpY2F0ZWQgU05NUHYzIHJlcXVlc3RzIHN0aWxsIG5lZWQgYSB1c2VybmFtZS4gIChTeW5jaCB3aXRoIFdpa2kpCgoyMDA3LTAxLTI5IDExOjAzICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwo6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yOCAxMzozNiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggYmFkIHRlc3QKCjIwMDctMDEtMjggMTM6MDYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVuYW1lIHZhcmlhYmxlIHRvIHJlc29sdmUgbmFtZSBjbGFzaCBhbmQgdG8gdW5icmVhayBuaWdodGx5IGJ1aWxkcyBvbiBTb2xhcmlzCgoyMDA3LTAxLTI4IDEyOjUyICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTI3IDE0OjQwICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggdHlwbwoKMjAwNy0wMS0yNyAxNDoyMyAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTI2IDExOjE1ICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseQosIG5zYi1wYWNrYWdlOgoKICAgbW9yZSBCb3VybmUgc2hlbGwgY29tcGF0aWJpbGl0eSBmaXhlcwoKMjAwNy0wMS0yNSAyMjo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEZyZWVCU0Q6IGZpeCBjb25maWd1cmUgd2FybmluZyBmb3Igc3lzL2NvbmYuaAoKMjAwNy0wMS0yNSAyMjoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmU6CgogICByZXBsYWNlIGJ5IG1vcmUgcmVhc29uYWJsZSBjb250ZW50CgoyMDA3LTAxLTI1IDIyOjA1ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwosIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBmaXggdHlwbwoKMjAwNy0wMS0yNSAyMTozMSAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjQ0NzM1OiBmcm9tICJCcmVudCBCaWNlIjogYWRkIGdjYyBidWlsZCBpbnN0cnVjdGlvbnMgZm9yIElSSVgKCjIwMDctMDEtMjUgMjE6MTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQ0NzE0OiBmcm9tICJMZWxhbmQgV2FsbGFjZSI6IHJlcGxhY2UgbGFzdCByZW1haW5pbmcgaW5zdGFuY2Ugb2YgZGVwcmVjYXRlZCBjb3B5X3dvcmQgYnkgY29weV9ud29yZAoKMjAwNy0wMS0yNSAxNTozMCAgdGFuZGVycwoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZSwgbnNiLXBsYXRmb3JtOgoKICAgbWFueSBCb3VybmUgc2hlbGwgcG9ydGFiaWxpdHkgZml4ZXMKCjIwMDctMDEtMjQgMTY6MzkgIGR0czEyCgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseQosIG5zYi1wYWNrYWdlLCBuc2ItcGxhdGZvcm06CgogICBQcmUtUG9zaXggQm91cm5lIHNoZWxsIGNvbXBhdGFiaWxpdHkuCgoyMDA3LTAxLTI0IDE0OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBUd2VhayBkZWJ1ZyBvdXRwdXQKCjIwMDctMDEtMjQgMTM6NTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIFNoZWxsc2NyaXB0IHBvcnRhYmlsaXR5LiAgKEV2ZXJ5dGhpbmcgaGFzIC9iaW4vc2gpCgoyMDA3LTAxLTI0IDEzOjQ5ICBkdHMxMgoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXAsIG5zYi1jb25maWcsCiAgICAgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlLAogICAgIG5zYi1wbGF0Zm9ybToKCiAgIEltcHJvdmUgc2hlbGwtc2NyaXB0IHBvcnRhYmlsaXR5LiAoRXZlcnl0aGluZyBoYXMgL2Jpbi9zaCEpCgoyMDA3LTAxLTI0IDEzOjQwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wX2NsaWVudC5jOgoKICAgRXh0cmEgZGVidWdnaW5nIG91dHB1dAoKMjAwNy0wMS0yNCAxMzozOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIFByZWxpbWluYXJ5IHRhYmxlIHVucmVnaXN0cmF0aW9uIEFQSS4KCjIwMDctMDEtMjQgMTM6MTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgTW92ZSBob3N0bmFtZSB0cmFuc2xhdGlvbiBpbnRvIHRoZSB0cmFuc3BvcnQtc3BlY2lmaWMgbGlicmFyeSByb3V0aW5lcy4KICAgKFdoZXJlIGl0IGJlbG9uZ3MhKQoKMjAwNy0wMS0yNCAxMzowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBCYXNpYyBmcmFtZXdvcmsgZm9yIHRyYW5zcG9ydC1zcGVjaWZpYyB0cmFuc2xhdGlvbiBvZiBob3N0bmFtZXMuCgoyMDA3LTAxLTI0IDEyOjI3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFN1cHByZXNzIGFzc29ydGVkIHdhcm5pbmdzLgoKMjAwNy0wMS0yNCAxMjoxOCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBtYWtlIHN1cmUgdWludHB0cl90IGlzIGFsd2F5cyBkZWZpbmVkIGFzIHVuc2lnbmVkLiBTcG90dGVkIGJ5IERhdmlkIEZvcmQuCgoyMDA3LTAxLTIzIDIyOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBkb24ndCB0cnkgdG8gcmVtb3ZlIGEgcm93IHRoYXQgd2FzIG5ldmVyIGluc2VydGVkCgoyMDA3LTAxLTIzIDIyOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhIHJvdyB0aGF0IHdhcyBuZXZlciBpbnNlcnRlZAoKMjAwNy0wMS0yMyAxNjoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM5MjgyOiBTYXZlIHBlcnNpc3RlbnQgc25tcFRhcmdldFBhcmFtc1RhYmxlIHNldHRpbmdzIGNvcnJlY3RseS4KICAgRml4IHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzcyODc6IEhhbmRsZSBtdWx0aXBsZSB0YXJnZXQgdGFncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE2MzcyODc6IEhhbmRsZSBtdWx0aXBsZSB0YXJnZXQgdGFncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE1OjQ0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYzNDYyMDogRml4IGxlYWtzIGZyb20gY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIGZhaWx1cmUuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTQ6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBCVUc6IDE2MzgyMjU6IEZpeCBpbnRlcnByZXRhdGlvbiBvZiB0cmFuc3BvcnQgYWRkcmVzcyBkYXRhLgogICAoS2VlcCB0aGlzIGNvbnNpc3RlbnQgd2l0aCBzbm1wVURQRG9tYWluLmMpCiAgIFRoaXMgZG9lcyBub3QgZmVlbCB0aGUgcmlnaHQgd2F5IHRvIGhhbmRsZSB0aGlzIQoKMjAwNy0wMS0yMyAxNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQnJpbmcgdHJhcCBoYW5kbGluZyBpbiBsaW5lIHdpdGggUkZDIDI1NzYvMzU4NCAtIGRyb3AgU05NUHYxIHRyYXBzCiAgIGNvbnRhaW5pbmcgQ291bnRlcjY0IHZhcmJpbmRzLiAgUmVxdWVzdGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTIyIDIyOjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQxOTcyOiBmcm9tIG1hZ2ZyOiBhZGQgbWlzc2luZyBjb25zdAoKMjAwNy0wMS0yMiAxNjo0MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxMzMyOiBJbmNsdWRlIG1pc3NpbmcgYWdlbnQgY29uZmlnIGRlZmluaXRpb25zLgoKMjAwNy0wMS0yMiAxNjoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIGZpeCB0eXBvIG92ZXJ3cml0aW5nIGNvbnRhaW5lciBuYW1lCgoyMDA3LTAxLTIyIDE2OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDE2ODU6IEhhbmRsZSB1bnJlc3BvbnNpdmUgQWdlbnRYIHN1YmFnZW50cyBtb3JlIHJlbGlhYmx5LgogICBGaXggcHJvdmlkZWQgYnkgSm9zZWYgTW9lbGxlcnMKCjIwMDctMDEtMjIgMTU6NTEgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDAxMTQ6IERvbid0IHN0b3JlIHRyYWlsaW5nIG51bGwgY2hhcmFjdGVyLgogICBSZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTE5IDE2OjUzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYzoKCiAgIE5FV1M6IEJVR1MgMTYzMzQ4MzogU3VwcG9ydCBDUFUgSEFMIG9uIEZyZWVCU0Q0LngKICAgKGJlZm9yZSBDUFUgZGVmaW5pdGlvbnMgd2VyZSBtb3ZlZCB0byA8c3lzL3Jlc291cmNlLmg+KQoKMjAwNy0wMS0xOSAxNjo1MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBGcmVlQlNEOiBCVUc6IDE2MzM0ODM6IFN1cHBvcnQgQ1BVIEhBTCBvbiBGcmVlQlNENC54CiAgIChiZWZvcmUgQ1BVIGRlZmluaXRpb25zIHdlcmUgbW92ZWQgdG8gPHN5cy9yZXNvdXJjZS5oPikKCjIwMDctMDEtMTkgMTY6MTUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogKm1vdmUqIChyYXRoZXIgdGhhbiBjb3B5KSBnbG9iYWwgdmFyaWFibGVzCiAgIGZyb20gc25tcHRyYXBkIHRvIGxpYm5ldHNubXB0cmFwZAoKMjAwNy0wMS0xOSAxNDoxOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBMaW51eDogZml4IGV0aHRvb2wgY29uZmlndXJlIGNoZWNrIGZvciByZWNlbnQgc3lzdGVtcyAoZS5nLiBGQzYsIFJIRUw1KS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMTkgMTE6MjUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhZGQgY29uZmlndXJlIGNoZWNrIGZvciBoYXNtbnRvcHQgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW1zIHRoYXQgbGFjayBpdAoKMjAwNy0wMS0xOCAxMjo1MCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6IG1vdmUgZ2xvYmFsIHZhcmlhYmxlcyBmcm9tIHNubXB0cmFwZCB0byBsaWJuZXRzbm1wdHJhcGQKCjIwMDctMDEtMTggMTE6MTMgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkcm9wICItZSIvcHJpbnRFdmVudE51bWJlcnMgc3VwcG9ydCBmb3Igc25tcHRyYXBkIChvYnNvbGV0ZSwgZGVwcmVjYXRlZCBhbmQgYnJlYWtzIGxpYnJhcnkgbGF5ZXJpbmcpCgoyMDA3LTAxLTE2IDEwOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBSZXNldCAnc2VuZCcgZmxhZyB0byBjb25zaWRlciBlYWNoIHNpbmsgaW5kaXZpZHVhbGx5LgogICBSZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTE2IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcm90ZWN0IGFnYWluc3Qgc2VuZGluZyBtaXNtYXRjaGVkIHRyYXBzICh2MSB0cmFwIG9uIHYyIHNpbmspLgogICBSZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTE2IDA5OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIERvbid0IGhhcmRjb2RlIHRoZSBzaXplIG9mIGNvdW50ZXI2NCBzdHJ1Y3R1cmUgKG1heSBiZSB3cm9uZyBvbiA2NC1iaXQgYm94ZXMpCgoyMDA3LTAxLTE2IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNy0wMS0xMSAyMjoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgQ0hBTkdFUzogc25tcGxpYjogbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6IGludHJvZHVjZSBuZXRzbm1wX21rdGVtcCB0byBwcmV2ZW50IGxpYm5ldHNubXBhZ2VudCBmcm9tIGRlcGVuZGluZyBvbiBsaWJuZXRzbm1wbWlicwoKMjAwNy0wMS0xMSAyMTozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hhbmdlZCBhdXRvY29uZiByZXEgdG8gMi42MQoKMjAwNy0wMS0xMSAyMToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgICBzbm1wU1RERG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9zZXJ2aWNlLmMsCiAgICAgc25tcF90cmFuc3BvcnQuYzoKCiAgIFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSB0byBtYWtlIHRoZSB0cmFuc3BvcnQgc3lzdGVtcyBDKysgY29tcGF0aWJsZQoKMjAwNy0wMS0xMSAwOToxNyAgZHRzMTIKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEZpeCBzb21lIG1hbmdsZWQgdGV4dC4KCjIwMDctMDEtMTAgMjA6NTggIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxNjE0MTA0OiBicm9rZW4gc25tcGQoOCkgbWFudWFsIHBhZ2UgaW4gNS40CgoyMDA3LTAxLTA5IDIxOjUwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IElGLU1JQiBmaXg6IGFkZCBtaXNzaW5nIHJldHVybiBhdCBlbmQgb2YgZ2V0X2lmX3N0YXRzCgoyMDA3LTAxLTA4IDA4OjMwICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBidWlsZCBsaWJyYXJpZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgKGxpYm5ldHNubXBhZ2VudCBiZWZvcmUgbGlibmV0c25tcGhlbHBlcnMgYmVmb3JlIGxpYm5ldHNubXBtaWJzKQoKMjAwNy0wMS0wNyAxOTo0NyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmg6CgogICBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgbmV0c25tcF9yZWdpc3Rlcl9zZXJ2aWNlX2hhbmRsZXJzIChmcm9tIG1hZ2ZyKQoKMjAwNy0wMS0wNiAwMDo1NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBCVUc6IDE2MjYxNTM6IG5vIGhyU1dSdW4gaW5mb3JtYXRpb25zIG9uIFNvbGFyaXMgem9uZXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgS2xhdXMgTXVlaGxmZWxkCgoyMDA3LTAxLTA2IDAwOjMwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE0NTA2Njk6IFBBVENIOiAxNjI3OTQ5OiBmcm9tIG1hcnRpbjk4NzogYSBwZXJsIGFnZW50eCBjb25zdW1lcyBtZW1vcnkKCjIwMDctMDEtMDMgMjI6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0wMiAyMzozMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTczOiByZW1vdmUgc3VwZXJmbHVvdXMgTlVMTCBjaGVjayAoYWxyZWFkeSBkZXJlZmVyZW5jZWQgZWFybGllciBhbnl3YXkpCgoyMDA3LTAxLTAyIDIzOjA4ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBvbmx5IGxvZyBhIG1lc3NhZ2Ugd2hlbiB0aGUgbWliX2luZGV4ZXMgZGlyZWN0b3J5IGlzICpyZWFsbHkqIGNyZWF0ZWQKCjIwMDctMDEtMDIgMjI6NTMgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBCVUc6IENvdmVyaXR5ICMxNzg6IG5ldmVyIHBhc3MgYSBOVUxMIG9pZF9hcnJfbGVuIHBvaW50ZXIgdG8gX19jb25jYXRfb2lkX3N0ciAod2hpY2ggZGVyZWZlcmVuY2VzIGl0KQoKMjAwNy0wMS0wMiAyMjowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCVUc6IENvdmVyaXR5ICMxOTM6IHByb3Blcmx5IGluaXRpYWxpemUgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2UKCjIwMDctMDEtMDIgMjA6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGJhY2sgb3V0IHByZXZpb3VzIGJhZCBjaGFuZ2UgdG8gYWdlbnQgcmVnaXN0cnkKCjIwMDctMDEtMDIgMTk6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjAxNDUzOiBmcm9tICJSb2JlcnQgV2lsY294IjogRHluYW1pYyBNZW1vcnkgZmFpbHVyZSBoYW5kbGluZyBpbXByb3ZlbWVudHMKCjIwMDctMDEtMDIgMTk6NTIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXB1c20uYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jCiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTYwMTQ1MzogZnJvbSAiUm9iZXJ0IFdpbGNveCI6IER5bmFtaWMgTWVtb3J5IGZhaWx1cmUgaGFuZGxpbmcgaW1wcm92ZW1lbnRzCgoyMDA3LTAxLTAyIDE3OjU2ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIExEX1JVTl9QQVRIIGNvbW1lbnQgZm9yIHB5dGhvbgoKMjAwNy0wMS0wMiAxNzozOCAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1cGRhdGUgdG8gYXV0b2NvbmYgMi42MQoKMjAwNy0wMS0wMiAxNzoyMyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0va2ZyZWVic2QuaDoKCiAgIE5FV1M6IFBvcnRzOiBQQVRDSDogMTYyMzg3NDogZnJvbSAiUGV0ciBTYWxpbmdlciI6IGFkZCBHTlUva0ZyZWVCU0Qgc3VwcG9ydAoKMjAwNy0wMS0wMiAxNzoxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkIHdvcmthcm91bmQgZm9yIEFDX0ZVTkNfR0VUTU5URU5UKCkgYnVnIGluIGF1dG9jb25mIDIuNjBiIGFuZCAyLjYxIChzZWUgRGViaWFuIGJ1Z3MgIzQwMzI0MywgIzQwMzA3OSkKCjIwMDctMDEtMDIgMTY6NDggIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMTU4Mjk3MjogSGFuZGxlIEB3aGlsZUAvQGVuZEAgcHJvcGVybHkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERvdWdsYXMgRGVhbgoKMjAwNy0wMS0wMiAxNjowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjAwMTcxOiBTdXBwb3J0IGxvbmdlciBjb21tdW5pdHkgc3RyaW5ncyBpbiBWQUNNIGNvbmZpZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUm9iZXJ0IFdpbGNveAoKMjAwNy0wMS0wMiAxMToyNCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTU0NjgxNzogRml4IHNubXBFbnRlcnByaXNlIHZhcmJpbmQgd2hlbiBmb3J3YXJkaW5nIHYxIHRyYXBzLgogICBQYXRjaCBwcm92aWRlZCBieSBQYWJsbyBQYXNzZXJhLgoKMjAwNy0wMS0wMiAxMDozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2MjUxMzU6IGNvbmZpZ3VyZSBsb2NhdGlvbiBvZiBweXRob24gaW50ZXJwcmV0ZXIKICAgUHJvdmlkZWQgYnkgQW5kcmV3IExhbmdtZWFkCgoyMDA3LTAxLTAyIDEwOjM0ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgTkVXUzogY29uZmlndXJlOiBQQVRDSCAxNjI1MTM1OiBjb25maWd1cmUgbG9jYXRpb24gb2YgcHl0aG9uIGludGVycHJldGVyCiAgIFByb3ZpZGVkIGJ5IEFuZHJldyBMYW5nbWVhZAoKMjAwNy0wMS0wMiAxMDoyMiAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2MjQ0MDY6IG9wdGlvbiB0byBoYXJkY29kZSBsb2NhdGlvbiBvZiBtb3VudCB0YWJsZQogICBTdWJtaXR0ZWQgYnkgSm9jaGVuCgoyMDA3LTAxLTAxIDE3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MDExODgsIEJVRzogMTYwMDQzMjogSGFuZGxlIHNpZ25hbHMgcHJvcGVybHkgd2hlbiByZXN0YXJ0aW5nIHRoZSBhZ2VudC4KICAgRml4IHByb3ZpZGVkIGJ5IExvaWMgRG9tYWlnbmUuCgoyMDA3LTAxLTAxIDE3OjM1ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgSGFuZGxlIG5vbi13cml0YWJsZSBNSUIgaW5kZXhlcyAoZS5nLiBydW4gYXMgbm9uLXByaXZpbGVnZWQgdXNlcikKCjIwMDctMDEtMDEgMTY6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0hFUyAxNTkyNzA2OiBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbG9uaW5nIHZhcmJpbmRzLgogICBCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gYnkgU3RldmVuIERvcmlnb3R0aS4KCjIwMDctMDEtMDEgMTY6MDkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTkyNzA2OiBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbG9uaW5nIHZhcmJpbmRzLgogICBCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gYnkgU3RldmVuIERvcmlnb3R0aS4KCjIwMDctMDEtMDEgMTU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIE5FV1M6IGFnZW50OiBQQVRDSCAxNTg1MTQ2OiBFeHRlbmQgcmFuZ2Ugb2YgYXZhaWxhYmxlIGVycm9yIGNvZGVzCiAgIFN1Ym1pdHRlZCBieSBBbnRob255IE5vdmF0c2lzLgoKMjAwNy0wMS0wMSAxNToyOSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTQ4NjcwOiBGaXggcmFuZ2UgY2hlY2tzIGZvciB1bnNpZ25lZCBpbnRlZ2VycwogICBGcm9tIEtldmluIEh1bXBocmllcy4gU2VlIGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz0zODMzODAKCjIwMDctMDEtMDEgMTU6MTYgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYzoKCiAgIE1vdmUgZ2xvYmFsICdmYWlsdXJlcycgdmFyaWFibGUgY2xvc2VyIHRvIHdoZXJlIGl0IGlzIHVzZWQuCiAgIENIQU5HRVM6IGFwcHM6IFBBVENIOiAxNTI5NTIzOiBDbG9zZSBTTk1QIHNlc3Npb24gb24gZmFpbHVyZS4KCjIwMDctMDEtMDEgMTQ6MzggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgcG90ZW50aWFsIGRvdWJsZSBkZWxldGUuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTAxIDE0OjIyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jOgoKICAgTWFpbnRhaW4gTUlCIGRpcmVjdG9yeSBpbmRleCBmaWxlcyB1bmRlciAvdmFyL25ldC1zbm1wCiAgIChpbiBsaW5lIHdpdGggRmlsZSBIaWVyYXJjaHkgU3RhbmRhcmQgc3BlY2lmaWNhdGlvbnMpCiAgIFNlZSBodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9Mzg5NDM0CiAgIGFuZCBkaXNjdXNzaW9uICJNSUJzIGluIG5ldC1zbm1wIiBvbiBjb2RlcnMgbGlzdCAoT2N0IDIwMDYpCgoyMDA3LTAxLTAxIDExOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBFbnN1cmUgc3lzT1JEZXNjcmlwdGlvbnMgYXJlIG51bGwtdGVybWluYXRlZCwgc28gdGhleSBjYW4gYmUKICAgc2FmZWx5IHBhc3NlZCB0byAnc3RyZHVwKCknLiAgUmVwb3J0ZWQgYnkgV29sZmdhbmcgUGVkb3QuCgoyMDA2LTEyLTI5IDE3OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBTeW5jaHJvbmlzZSB3aXRoIFdpa2kgdmVyc2lvbi4KCjIwMDYtMTItMjggMjM6MjkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYxNjkxMjogZnJvbSAiTWFnbnVzIEZyb21yZWlkZSI6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wX3VkcF90cmFuc3BvcnQKCjIwMDYtMTItMjggMjM6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE2MjM0NDc6IGZyb20gIkhydm9qZSBIYWJqYW5pYyI6IGhyU1dSdW4gZml4OiA8ZXhpdGVkPiBpbnN0ZWFkIG9mIGVuZE9mVGFibGUgZm9yIHRlcm1pbmF0ZWQgcHJvY2Vzc2VzCgoyMDA2LTEyLTI3IDE5OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBleHRlcm5hbCByZWZlcmVuY2UgdG8gTkVUU05NUF9LTE9PS1VQIG9uIEhQLVVYIDEwLjIwIChtYXliZSBvdGhlcnMpCgoyMDA2LTEyLTI2IDE2OjUyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDE2MjIwODA6IGZyb20gR3J1ZW5pbmdlciBBOiBwYXNzIFdpbjMyIGhhbmRsZXMgcmVtYWluIG9wZW4uCgoyMDA2LTEyLTE3IDE4OjAxICBhbGV4X2IKCiAgICogd2luMzIvOiBNYWtlZmlsZS1hcHBzLmluLCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICBzbm1wZC9NYWtlZmlsZS5pbiwgc25tcGRzZGsvTWFrZWZpbGUuaW4sCiAgICAgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIEFkZCBnZGkzMi5saWIgdG8gZml4IGxpbmtpbmcgcHJvYmxlbSB3aGVuIHVzaW5nIHRoZSBzdGF0aWMgdmVyc2lvbiBvZiB0aGUKICAgU1NMIGxpYnJhcmllcy4gIFRoYW5rcyB0byBTaW1vbiBFZHdhcmRzIGZvciB0aGUgZml4LgoKMjAwNi0xMi0xNyAxNjo1MSAgYWxleF9iCgogICAqIEZBUToKCiAgIFVwZGF0ZSBXaW5kb3dzIGluZm8gaW4gdGhlIEZBUQoKMjAwNi0xMi0xMiAyMzo1MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDE1ODEyOTQ6IGZyb20gIk1pY2hhZWwgVGF0YXJpbm92IjogaG9zdC1yZXNvdXJjZXMgaW1wcm92ZW1lbnRzCgoyMDA2LTEyLTEyIDIxOjI3ICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIHJlLWFkZCBVRFBfQUREUkVTU0VTX0lOX0hPU1RfT1JERVIKCjIwMDYtMTItMTIgMjE6MDEgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBzeW5jIHdpdGggd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKCjIwMDYtMTItMTIgMjA6MzEgIHRhbmRlcnMKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgQ0hBTkdFUzogV2luMzI6IGZpeCB3aW4zMi9Db25maWd1cmUgLS13aXRoLWlwdjYKCjIwMDYtMTItMTIgMTg6MTAgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBORVdTOiBXaW4zMjogZml4IEFFUyBzdXBwb3J0CgoyMDA2LTEyLTEyIDAzOjAxICBhbGV4X2IKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBBZGQgdmVyc2lvbiB0byBGQVEuaHRtbC4KCjIwMDYtMTItMDkgMTc6MTEgIGFsZXhfYgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbWFrZV9pbmRleC5wbCwgbWFuX3NlY3Rpb25zLnR4dAo6CgogICAtQ3JlYXRlIGh0bWwgcGFnZXMgZm9yIEFMTCBtYW4gcGFnZXMuCiAgIC1JbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBjcmVhdGluZyB0aGUgaW5kZXguaHRtbCBmaWxlLgoKMjAwNi0xMi0wOSAxNzowNiAgYWxleF9iCgogICAqIGxvY2FsLzogaHRtbC1hZGQtaGVhZGVyLWZvb3Rlci5wbCwgaHRtbC10ZXh0ZmlsZS1maXgucGwKOgoKICAgQWRkIHRpZHkgY29tbWFuZCBsaW5lIG9wdGlvbiBhbmQgYWRkIG1pc3NpbmcgUkVBRE1FIGZpbGVzLgoKMjAwNi0xMi0wOSAwMDoxNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBQQVRDSDogMTYwMDQ1MzogZnJvbSAiQ2hyaXMgSmFsYmVydCI6IE9TIFggY29tcGlsZS10aW1lIGVuZGlhbiBkZXRlcm1pbmF0aW9uCgoyMDA2LTEyLTA4IDIyOjQ3ICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCBzb21lIG1vcmUgcG9zdC1yZWxlYXNlIHRhc2tzCgoyMDA2LTEyLTA4IDIyOjI2ICB0YW5kZXJzCgogICAqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMwosIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zCiwgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMwosIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgICBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKLCBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zCiwgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMKLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zCiwgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zCiwgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zCiwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zCiwgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMKLCBtYW4vbmV0c25tcF93YXRjaGVyLjMsIHBlcmwvQVNOL0FTTi5wbSwKICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sCiAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbQosIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtCiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZiwgc2Vkc2NyaXB0LmluLAogICAgIGRpc3QvTWFrZWZpbGUsIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsIFJFQURNRToKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjUuZGV2ICkKCjIwMDYtMTItMDggMjI6MjAgIHRhbmRlcnMKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGZpeCBkaXN0L01ha2VmaWxlIG11bmdpbmcKCjIwMDYtMTItMDggMTQ6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIE5FV1M6IEJVRzogMTYxMTUyNDogZml4IHRjcCBjb25uZWN0aW9uIHRhYmxlIGZkIGxlYWsKCjIwMDYtMTItMDggMTM6MTcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICByZXZlcnQgdW5pbmZvcm1lZCB2ZXJzaW9uIGNoYW5nZQoKMjAwNi0xMi0wNyAyMTo1MCAgdWlkMzkwMzkKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG0sIFNOTVAueHMsCiAgICAgdC9jb25mLnQ6CgogICBjbGVhbiB1cCBjb21waWxlIGFuZCBmaXggdGVzdHMKCjIwMDYtMTItMDcgMTY6NDggIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjb21tZW50IGZpeAoKMjAwNi0xMi0wNyAxNTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBjcHUvY3B1X21hY2guYywKICAgICBjcHUvY3B1X21hY2guaDoKCiAgIE5FV1M6IE1hY09TWDogUEFUQ0g6IDE2MDA1MjI6IGZyb20gIkJpbGwgRmVubmVyIjogQ1BVIEhBTCBpbXBsZW1lbnRhdGlvbiBmb3IgbWFjaC9kYXJ3aW4KCjIwMDYtMTItMDcgMTM6MTAgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBQQVRDSDogMTYwNDU4MDogU05NUCgzKSBtYW51YWwgcGFnZSBjb3JyZWN0aW9ucyAoc3BvdHRlZCBieSB0ZWstb3BzKQoKMjAwNi0xMi0wNiAyMDozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHZhcmlvdXMgYXNwZWN0cyBvZiBwb3N0LXJlbGVhc2UgdGhpbmdzIHRvIGRvCgoyMDA2LTEyLTA2IDE1OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgYWRkIG5lZWRlZCBoZWFkZXIKCjIwMDYtMTItMDYgMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIE5FV1M6IHNubXBkOiBCVUc6IDE1NTg4MjM6IGZpeCBpcEFkZHJlc3NUYWJsZSBtZW1vcnkgbGVhawoKMjAwNi0xMi0wNiAxNTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmM6CgogICBORVdTOiBCVUc6IDE1OTY2Mzg6IG1lbW9yeSBsZWFrIGluIGlwQ2lkclJvdXRlVGFibGUsIGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNi0xMi0wNiAxNDozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIHR3ZWFrL2FkZCBkZWJ1ZyBtc2dzIGluIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9pZmluZGV4X2dldAoKMjAwNi0xMi0wNSAyMzo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICBmaXggZGVidWcgbWVzc2FnZQoKMjAwNi0xMi0wNSAyMzoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEJVRzogMTYwMDA5MzogYXV0b2NvbmYgMi42MCBicmVha3MgdGhlIGJ1aWxkCgoyMDA2LTEyLTA0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY2hhbmdlIHRvcCB0ZXh0IHRvIHJlbW92ZSBoaXN0b3J5IHNlY3Rpb24gd2hpY2ggd2FzIG91dCBvZiBkYXRlCgoyMDA2LTEyLTAzIDIzOjIwICBhbGV4X2IKCiAgICogd2luMzIvOiBkaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzI6ICBXb3Jrc3BhY2UgY29tcGlsZSBmaXgsIGJ1aWxkIGluc3RydWN0aW9ucyB1cGRhdGUuCgoyMDA2LTExLTI0IDE3OjUzICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNCApCgoyMDA2LTExLTI0IDE3OjUyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDYtMTEtMjQgMTc6NDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnJjMyAtPiBWNS40CgoyMDA2LTExLTI0IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMS0yNCAwOTo0MyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNCApCgoyMDA2LTExLTI0IDA5OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyIHRvIGZpeCBNU1ZDIGlzc3VlcwoKMjAwNi0xMS0yNCAwODowOSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgQ09ESU5HIHNlY3Rpb24uCiAgIEknbSBzdXJlIHRoZXJlIGFyZSBtb3JlIGNoYW5nZXMgdGhhdCBjb3VsZCB1c2VmdWxseSBiZSBtYWRlLAogICBidXQgTGlmZSdzIFRvbyBTaG9ydC4gICBPSywgV2VzIC0gaXQncyBhbGwgeW91cnMuLi4uCgoyMDA2LTExLTI0IDA3OjM4ICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBUd2VhayB3ZWIgbGlua3Mgc2xpZ2h0bHksIGFuZCBtZW50aW9uIHRoZSBXaWtpLgoKMjAwNi0xMS0yNCAwNzowOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvYyB1cGRhdGUgYmFzZWQgb24gcGVybCBjaGFuZ2VzCgoyMDA2LTExLTI0IDA2OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBEcm9wIG9ic29sZXRlIGVudHJpZXMuCgoyMDA2LTExLTI0IDA2OjIzICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSBDT01QSUxJTkcgc2VjdGlvbi4KCjIwMDYtMTEtMjQgMDY6MDIgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIHJlc3Qgb2YgdGhlIEFHRU5UUyBzZWN0aW9uLgoKMjAwNi0xMS0yNCAwNTo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgQ29tbWl0IHJldmlzaW9ucyB0byB0aGUgTUlCUyBhbmQgKG1vc3Qgb2YpIHRoZSBBR0VOVFMgc2VjdGlvbnMuCiAgIDQzIHBhZ2VzIGRvd24sIDE4IHRvIGdvLi4uLgoKMjAwNi0xMS0yNCAwNToxMyAgdGFuZGVycwoKICAgKiBGQVE6CgogICBhZGQgc29tZSBtb3JlIHdvcmtpbmcgcGxhdGZvcm1zOyBwZXJsIC0+IFBlcmwKCjIwMDYtMTEtMjQgMDM6MjEgIGR0czEyCgogICAqIEZBUToKCiAgIFJldmlzaW9uIG9mIHRoZSBmaXJzdCB0aHJlZSBzZWN0aW9ucyAoR0VORVJBTCwgQVBQTElDQVRJT05TLCBQRVJMKS4KICAgUHJvYmFibHkgcmFjaW5nIGEgbG9zaW5nIGJhdHRsZSBhZ2FpbnN0IHBhY2thZ2luZyB0aGUgdXBjb21pbmcgcmVsZWFzZSEKCjIwMDYtMTEtMjMgMTk6MzAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGVzIGFuZCBjbGVhbnVwIGZvciA1LjQKCjIwMDYtMTEtMjMgMTc6MTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXg6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBQQVRDSDogMTYwMTI2MTogZnJvbSAiU3RlcGhlbiBKLiBGcmllZGwiOiB1cGRhdGUgUkVBRE1FLnNtdXgKCjIwMDYtMTEtMjMgMTY6MzggIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogbWlzYzogUlBNIHNwZWMgZmlsZSBmaXhlcyBmb3IgNjQtYml0IHBsYXRmb3JtcwoKMjAwNi0xMS0yMyAwMTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBSZW1vdmUgaXJyZWxldmFudCBjb21tZW50cyAobGVmdCBvdmVyIGZyb20gdGhlIGRldmVsb3BtZW50IHBoYXNlKS4KCjIwMDYtMTEtMjIgMTY6MDYgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICB1c2UgLS13aXRob3V0IGZvciBwZXJsIG5vdyBpZiBvZmYKCjIwMDYtMTEtMjIgMTU6NTQgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaW5hbCB2ZXJpc29uIGNoYW5nZQoKMjAwNi0xMS0yMiAxNToyNSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICByZXZlcnQgdG8gY29ycmVjdCB2ZXJzaW9uCgoyMDA2LTExLTIyIDE1OjIzICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gcmVtb3ZlIGJhZCBwYXRjaCByZWZlcmVuY2UKICAgLSBlbmFibGUgUGVybCBieSBkZWZhdWx0LCBidXQgYWxsb3cgZm9yIC0td2l0aG91dCBwZXJsX21vZHVsZXN8ZW1iZWRkZWRfcGVybAogICAtIGFkZCBuZXRzbm1wXyBwcmVmaXggZm9yIGxvY2FsIGRlZmluZXMKCjIwMDYtMTEtMjIgMDg6NDkgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIENsYXJpZmljYXRpb24gb2YgdGhlIGJlaGF2aW91ciBvZiBvYmplY3RzIGluIHRoZSBtZW1vcnkgJiBzeXN0ZW1TdGF0cyBncm91cHMsCiAgIGFuZCBvYmplY3RzIHVzZWQgZm9yIHJlcG9ydGluZy9maXhpbmcgZXJyb3JzLgoKMjAwNi0xMS0yMiAwNzowNyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW46CgogICBtYW5hbGlhcyBhbHdheXMtbWFkZSBmaXg7IG5vdyB0b3VjaGVzIGEgdGVtcCBmaWxlIChhbmQgY2xlYW5zIGxhdGVyKQoKMjAwNi0xMS0yMiAwNToyNSAgdGFuZGVycwoKICAgKiAuY3ZzaWdub3JlOgoKICAgYWRkIG5ldyAnbWsnIHN1YmRpcgoKMjAwNi0xMS0yMiAwNToyNCAgdGFuZGVycwoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCBuZXcgbWFudWFsIHBhZ2VzCgoyMDA2LTExLTIyIDA1OjAzICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1OTg5NjY6IGZyb20gIlBldGVyIEVja2VsIjogRml4IGJ1ZyAjMTU5ODkyNzogI2VsaWYgYnVpbGQgZml4CgoyMDA2LTExLTIyIDA0OjU4ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNTk4OTY4OiBmcm9tICJQZXRlciBFY2tlbCI6IEZpeCBidWcgIzE1ODc3NTk6IHNubXB0cmFwZCBkb2Vzbid0IHJlY29nbml6ZSAtQSBvcHRpb24KCjIwMDYtMTEtMTggMDk6NTYgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeGVzIGZvciBOb25lIHJldHVybiB0cHllIGFuZCBvY3RldCB2YWwgaGFuZGxpbmcKCjIwMDYtMTEtMTggMDc6MjggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnJjMiAtPiBWNS40LnJjMwoKMjAwNi0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMTggMDc6MTMgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMzICkKCjIwMDYtMTEtMTggMDY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgZml4IG1pc3NpbmcgbWVtQ2FjaGVkLjAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzCgoyMDA2LTExLTE2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gZml4IHBlcmwgQ0MgZXh0cmFjdGlvbiB0byBhbGxvdyBmb3IgcGF0aHMKCjIwMDYtMTEtMTYgMjA6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggcGVybCBDQyBleHRyYWN0aW9uIHRvIGFsbG93IGZvciBwYXRocwoKMjAwNi0xMS0xNiAxMzozOCAgdGFuZGVycwoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBhZGQgbmV3IG1hbnVhbCBwYWdlcyB0byB0aGUgYnVpbGQgcHJvY2VzcwoKMjAwNi0xMS0xNiAwMTozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcHJvcGVybHkgcHJvdGVjdCBubGlzdCBjb2RlIHRvIGZpeCBidWlsZCBpc3N1ZXMgdy8gLS13aXRob3V0LWttZW0tdXNhZ2UKCjIwMDYtMTEtMTUgMTY6MjIgIHRhbmRlcnMKCiAgICogbWFuLzogZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgZml4cHJvYy4xLmRlZiwKICAgICBtaWIyYy11cGRhdGUuMS5kZWYsIG5ldC1zbm1wLWNvbmZpZy4xLmRlZiwKICAgICB0a21pYi4xLmRlZiwgdHJhcHRvZW1haWwuMS5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDE1Nzc5MTM6IGFkZCBtaXNzaW5nIG1hbnVhbCBwYWdlcyBmb3IgZXhlY3V0YWJsZXMsIHN1cHBsaWVkIGJ5IERlYmlhbgoKMjAwNi0xMS0xNSAxNTozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBVcGRhdGUgdG8gdGhlIG5ldyBzeW50YXggb2YgdGhlIHNubXBuZXRzdGF0IHJld3JpdGUuIEluc3BpcmVkIGJ5IERlYmlhbi4KCjIwMDYtMTEtMTUgMTQ6NDUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBzZXQuMS5kZWY6CgogICBmb3JtYXQgZml4IChmcm9tIERlYmlhbiBwYXRjaCAwN19kb2NmaWxlcy5wYXRjaCkKCjIwMDYtMTEtMTUgMTE6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBQdXQgZGVzY3JpcHRpb24gb24gYSBzaW5nbGUgbGluZS4gVGFrZW4gZnJvbSBEZWJpYW4gcGF0Y2ggMDdfZG9jZmlsZXMucGF0Y2gKCjIwMDYtMTEtMTQgMTY6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYzoKCiAgIEZpeCBpbml0aWFsaXNhdGlvbiBwcm9ibGVtICh3aGljaCByZXN1bHRzIGluIHRoZSBhZ2VudCBmYWlsaW5nCiAgIHRvIHN0YXJ0IG9uIEZyZWVCU0Qgc3lzdGVtcywgd2hlbiBydW4gYXMgYW4gdW5wcml2aWxlZ2VkIHVzZXIpLgoKMjAwNi0xMS0xNCAxNTo0NCAgdGFuZGVycwoKICAgKiBkb2MvcmZjL3NtaVYyL3JmYzI1NzkuZXJyYXRhfjoKCiAgIGRvIHdlIGFncmVlIHRvIG5vdCBzaGlwIGVkaXRvciBiYWNrdXAgY29waWVzPwoKMjAwNi0xMS0xNCAwMzoxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIHVkcFRhYmxlIHJlcXVpcmVzIC9kZXYva21lbSBhY2Nlc3Mgb24gSVJJWCBhbmQgVHJ1NjQgVW5peAoKMjAwNi0xMS0xNCAwMTo1NiAgdGFuZGVycwoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIENIQU5HRVM6IFBBVENIOiAxNTk2MDI4OiBmcm9tICJTdGVwaGVuIEouIEZyaWVkbCI6IGNvbnN0IGZpeGVzIGZvciB0aGUgbWliX2FwaSgzKSBtYW51YWwgcGFnZQoKMjAwNi0xMS0xMyAxNjoxNyAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBTb2xhcmlzIDIuNiBhbmQgZWFybGllcgoKMjAwNi0xMS0xMyAxNTo1NCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIE5FV1M6IHBlcmw6IFNOTVAucG0gZml4ZXMgZm9yIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDYtMTEtMTMgMTU6NDkgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IHBlcmw6IG1ha2UgcGVybHRlc3QgZml4ZXMgZm9yIEhQLVVYCgoyMDA2LTExLTEzIDE1OjI2ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIERyb3AgRGF0YTo6RHVtcGVyIHNpbmNlIFBlcmwgNS4wMDQwNSBhcyBzaGlwcGVkIHdpdGggSVJJWCA2LjUgZG9lc24ndCBpbmNsdWRlIGl0LgoKMjAwNi0xMS0xMyAxNDo1MSAgdGFuZGVycwoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgRHJvcCB1bm5lZWRlZCBkZXBlbmRlbmN5IG9uIERhdGE6OkR1bXBlci4KCjIwMDYtMTEtMTMgMTQ6NDYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IHBlcmw6IG1ha2UgcGVybHRlc3QgZml4ZXMgZm9yIElSSVgKCjIwMDYtMTEtMTIgMTc6NTMgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sCiAgICAgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSB3YXJuaW5ncyBhYm91dCBjb21waWxpbmcgd2l0aCB0aGUgU05NUCBsaWJyYXJ5IERMTC4KCjIwMDYtMTEtMTAgMDM6MjQgIHRhbmRlcnMKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlbW92ZSAtLWVuYWJsZS1taW5pLWFnZW50IHJlY29tbWVuZGF0aW9uIGJlY2F1c2UgLS13aXRob3V0LWttZW0tdXNhZ2Ugbm8gbG9uZ2VyIHJlcXVpcmVzIGl0CgoyMDA2LTExLTEwIDAxOjIxICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBSZWZlcmVuY2UgdGhlIGNvcnJlY3QgbWFuIHBhZ2UgZm9yIHNubXBfdHJhcF9hcGkgYWxpYXNlcy4KICAgUmVwb3J0ZWQgYW5kIGZpeGVkIGJ5IENocmlzIEphbGJlcnQuCgoyMDA2LTExLTA4IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMyICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMxIC0+IFY1LjQucmMyCgoyMDA2LTExLTA4IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMS0wOCAwNzo1NSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzIgKQoKMjAwNi0xMS0wOCAwNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIFBhdGNoIGZyb20gUm9iZXJ0IHRvIGNoZWNrIHByb2Nlc3NlZCBmbGFnIGJlZm9yZSBwcm9jZWVkaW5nCgoyMDA2LTExLTA3IDE1OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEZpeCBkdXBsaWNhdGUgY2FzZSBzdGF0ZW1lbnRzIChhbmQgaW5kaWNhdGUgd2hpY2ggYXJlIHRoZSBkZXByZWNhdGVkIG9iamVjdHMpCgoyMDA2LTExLTA3IDE0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIENsYXJpZnkgbWVhbmluZyBvZiBtZW0qVGV4dCBvYmplY3RzIChhbmQgZGVmaW5lIG5ldyBjb25zaXN0ZW50IHZlcnNpb25zKS4KCjIwMDYtMTEtMDcgMDY6NTQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkIGEgbWlzc2luZyBwYXJlbiB0byBhIGRlc2NyaXB0aW9uIGZpZWxkCgoyMDA2LTExLTA3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW4sCiAgICAgbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIHRvIGZpeCBzZWQgdXNhZ2Ugb24gc3lzdGVtcyB3aXRoIGEgdmVyeSBvbGQgc2VkCgoyMDA2LTExLTA2IDE1OjUwICB0YW5kZXJzCgogICAqIFJFQURNRS5pcml4OgoKICAgbWVudGlvbiAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0wNiAxNTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXBBZGRyLmMKLCBpcHY2LmMsIHRjcFRhYmxlLmMsIHVkcFRhYmxlLmMsCiAgICAgdmFyX3JvdXRlLmM6CgogICBpbXByb3ZlZCBrbG9va3VwIGVycm9yIGhhbmRsaW5nCgoyMDA2LTExLTA2IDE1OjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgUkVBRE1FLmFpeCwgY29uZmlndXJlLmluLAogICAgIGFnZW50L2tlcm5lbC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IGJ1aWxkIGZpeCBmb3IgLS13aXRob3V0LWttZW0tdXNhZ2UKCjIwMDYtMTEtMDYgMDc6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBzaCBkb2Vzbid0IGxpa2UgIj09Iiwgb2YgY291cnNlLgoKMjAwNi0xMS0wNiAwMzoxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHNraXAgcHJveHkgdGVzdHMgZm9yIFRDUCBiZWNhdXNlIHRoZSBwcm94eSBjb2RlIGRvZXNuJ3Qgc3VwcG9ydCBUQ1AgeWV0CgoyMDA2LTExLTAzIDE3OjM5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU4YWdlbnRhdXRodHJhcCwgVDA2NWFnZW50ZXh0ZW5kLAogICAgIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIENIQU5HRVM6IG1pc2M6ICJtYWtlIHRlc3QiIGZpeGVzIGZvciBub24tVURQIHRyYW5zcG9ydHMKCjIwMDYtMTEtMDMgMDg6NDAgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnQucHksIGNsaWVudF9pbnRmLmM6CgogICBtZW1vcnkgbGVhayBmaXhlcyBmb3IgcHl0aG9uIGludGVyZmFjZQoKMjAwNi0xMS0wMiAxNTozMCAgdGFuZGVycwoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCBuZXcgbWFuIHBhZ2UgYWxpYXNlcwoKMjAwNi0xMS0wMSAxNTo1MyAgdGFuZGVycwoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cgc2hhbGwgb25seSBkb2N1bWVudCBjaGFuZ2VzIG9mIHRoZSBicmFuY2ggaXQncyBjb250YWluZWQgaW4KCjIwMDYtMTEtMDEgMDg6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBDSEFOR0VTOiBCVUc6IDE1ODU4MTU6IGZpeCBtZmQgYml0cyBsZW5ndGggY2FsY3VsYXRpb24KCjIwMDYtMTAtMzEgMTQ6MjkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMSApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTQgLT4gVjUuNC5yYzEKCjIwMDYtMTAtMzEgMTI6NTEgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTEwLTMxIDEyOjUxICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMSApCgoyMDA2LTEwLTMxIDEyOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIHJlbW92ZSB0aGUga2xvb2t1cCBkZWZpbmUgYXMgKDApIHNpbmNlIERhdmUgZm91bmQgZGVmaW5pdGUgc3BvdHMgd2hlcmUgdGhpcyB3YXMgdW5zYWZlCgoyMDA2LTEwLTMxIDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIFBhdGNoIGZyb20gVGhvbWFzIEFuZGVycyB0byBhdHRlbXB0IHRvIGZpeCBsYWNrIG9mIGttZW0gc3VwcG9ydCBmb3IgdmFyaW91cyBwbGF0Zm9ybXMgd2hlbiBrbWVtIGlzbid0IGF2YWlsYWJsZQoKMjAwNi0xMC0zMSAwNzoyNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGEgcHJvYmxlbSB3aXRoIHRoZSBtYW4gZ2VuZXJhdGlvbiBwYXRjaCBhcyBwb2ludGVkIG91dCBieSBDaHJpcyBKYWxiZXJ0CgoyMDA2LTEwLTMxIDA3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIG1pbm9yIHBhdGNoIGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggbG1zZW5zb3JzIDI0MCBjbGFzcyBtYWNoaW5lcwoKMjAwNi0xMC0zMCAxMzo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtZW1Ub3RhbEZyZWUgc2hvdWxkIHJlcG9ydCB0b3RhbCB2aXJ0dWFsIGluc3RlYWQgb2YgcGh5c2ljYWwgbWVtb3J5CgoyMDA2LTEwLTMwIDA5OjUyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jOgoKICAgbWVtIEhBTCBmaXhlcyBmb3IgSVJJWAoKMjAwNi0xMC0zMCAwNzo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgdXNlIGdlbmVyYXRlZCBhbGlhcyBtYW4gcGFnZXMKCjIwMDYtMTAtMjggMTg6MjMgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCAtLWRpc2FibGUtZW1iZWRkZWQtcGVybCAtLXdpdGhvdXQtcGVybC1tb2R1bGVzIGZvciBNaW5HVyAvIEN5Z3dpbi4KCjIwMDYtMTAtMjcgMTM6MTkgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgICAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvYnVpbGQucGwsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluCiwgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbgo6CgogICAtQWxsb3cgYnVpbGRpbmcgb2YgYXBwbGljYXRpb25zIHdpdGggbGlicmFyeSBETEwgaW4gYnVpbGQuYmF0IGJ1aWxkIHN5c3RlbS4KICAgLUZpeCBETEwgZXhwb3J0L2ltcG9ydCB2YXJpYWJsZXMgZm9yIGxpYnJhcnkgRExMCgoyMDA2LTEwLTI3IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4IHdhbGtpbmcgb2ZmIG9mIGEgY2xpZmYKCjIwMDYtMTAtMjcgMDc6MzIgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgY2xpZW50LnB5CgoyMDA2LTEwLTI3IDAyOjA0ICB0YW5kZXJzCgogICAqIGxvY2FsL3NubXAtdWNkLnNoOgoKICAgQ0hBTkdFUzogbWlzYzogQlVHUzogMTU4NTI1MDogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9ucyBpbiBzdGFydCBzY3JpcHQKCjIwMDYtMTAtMjYgMTc6NTAgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiAgQWRkIGEgY291cGxlIERFQlVHIGxpbmVzLgoKMjAwNi0xMC0yNiAxNzoxNSAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgV2luMzI6IFJFQURNRSB1cGRhdGUsIGJ1aWxkIHN0ZXBzIHVwZGF0ZS4KCjIwMDYtMTAtMjYgMDk6MjEgIHRhbmRlcnMKCiAgICogQ29kaW5nU3R5bGU6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTEwLTI2IDA0OjE0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWlub3IgZml4ZXMgZm9yICJjb25maWd1cmUgLS1oZWxwIiBvdXRwdXQsIGVzcGVjaWFsbHkgZm9yIE1JQiBtb2R1bGVzCgoyMDA2LTEwLTI2IDAzOjI0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZGFyd2luOC5oLCBkYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBNYWNPU1g6IGJ1aWxkIGZpeCBmb3IgbWliSUkvdWRwVGFibGUKCjIwMDYtMTAtMjUgMTE6NTEgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBORVRTTk1QXyBwcmVmaXggbWlzc2luZyBmb3IgT1BFTlNTTC4KCjIwMDYtMTAtMjUgMDk6MTYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBwZXJsL09JRC9PSUQueHMsCiAgICAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IHJlbmFtZSBpbml0X21pYiB0byBuZXRzbm1wX2luaXRfbWliIHRvIGF2b2lkIHN5bWJvbCBjbGFzaCB3aXRoIEhQLVVYJ3MgbGlibm0KCjIwMDYtMTAtMjMgMTQ6MDAgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIEFJWCBzaGlwcyBob3N0IGJ5IGRlZmF1bHQKCjIwMDYtMTAtMjIgMTg6MDEgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9EZXZlbG9wZXJfRkFRLmh0bWwsIGh0bWxoZWxwL0ZBUS5odG1sLAogICAgIGh0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXBkLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wdHJhcGQuY29uZi53aW4zMi5odG1sLCBpbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIFVwZGF0ZSBXaW5kb3dzIGJpbmFyeSBidWlsZCBmaWxlcy4KCjIwMDYtMTAtMjEgMDk6NDIgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICB3aW5FeHRETEwgdXBkYXRlLgoKMjAwNi0xMC0yMSAwOTozNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVhZG1lIHVwZGF0ZSBmb3Igd2luRXh0RExMLCBjaGFuZ2UgY29tbWFuZCBsaW5lIGZvciB3aW5FeHRETEwuCgoyMDA2LTEwLTIxIDA3OjA3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDb2RlIGNsZWFudXAuICBBZGQgc3VwcG9ydCBmb3IgeFNubXBFeHRlbnNpb25RdWVyeUV4IGZvciBTRVQvR0VUTkVYVC4KCjIwMDYtMTAtMjEgMDU6NDUgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6IHNubXBzZXQgc3RyaW5nLCBETEwgbG9hZGluZyBhbmQgc25tcHdhbGsgZml4ZXMuCgoyMDA2LTEwLTIxIDA1OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHJlbW92ZSBub3QtZXhpc3RlbnQgU0JTTSBkZWZpbml0aW9uIGZyb20gdGVzdCBjYXNlcwoKMjAwNi0xMC0yMCAxNzoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmU0ICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMyAtPiBWNS40LnByZTQKCjIwMDYtMTAtMjAgMTY6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoIGZyb20gQW5kZXJzIFBlcnNzb24gdG8gY2hhbmdlIHRfdXNjYWxhcl90IHRvIHNvbWV0aGluZyBtb3JlIHBvcnRhYmxlICh1aW50MzJfdCkKCjIwMDYtMTAtMjAgMTM6NDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9kc19hZ2VudC5oLAogICAgIGxpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgRG9jdW1lbnQgdGhlIG5lZWQgdG8gdXBkYXRlIHRoZSBjb3JyZXNwb25kaW5nIHBlcmwgaW50ZXJmYWNlcwogICB3aGVuIGNoYW5nZXMgYXJlIG1hZGUuCgoyMDA2LTEwLTIwIDA4OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICB1c2UgY3B1X251bGwgZm9yIGFsbCBkYXJ3aW4sIHVudGlsIGNvZGUgd29ya3MKCjIwMDYtMTAtMjAgMDg6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9ubGlzdC5jLCBjcHVfc3lzY3RsLmMKOgoKICAgQ2xhcmlmeSBjb21tZW50cyB0byByZWZsZWN0IHJlYWxpdHkuCgoyMDA2LTEwLTIwIDA4OjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgZml4IHN5bnRheCBlcnJvcjsgbWFrZSBzdXJlIHdlIGdldCBjcHVfbnVsbCBmb3IgZGFyd2luNi83LCBjcHVfc3lzY3RsIGZvciBkYXJ3aW44KwoKMjAwNi0xMC0yMCAwNzo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgdXNlIGNwdV9udWxsIGZvciBkYXJ3aW43IGFuZCBkYXJ3aW42CgoyMDA2LTEwLTIwIDAxOjQ0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgb3BlbmJzZDQgYW5kIGRhcndpbiBzaG91bGQgdXNlIGNwdV9zeXNjdGwKCjIwMDYtMTAtMTkgMjI6MTAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTQgKQoKMjAwNi0xMC0xOSAxNjo0NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBmaXggdXAgaGVhZGVyIGluY2x1c2lvbiBhIGJpdAoKMjAwNi0xMC0xOSAxNTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgdGVzdCBmb3IgZGFyd2luZyBiZWZvcmUgZnJlZWJzZCwgc2luY2UgZGFyd2luIGRlZmluZXMgZnJlZWJzZAoKMjAwNi0xMC0xOSAxNDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGZpeCBicm9rZW4gYmFkIGV2aWwgaWZUYWJsZS5oIHVzYWdlCgoyMDA2LTEwLTE5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oCiwgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlX2RlZnMuaCwKICAgICBpZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG9uJ3QgbGV0IGlmVGFibGUuaCByZWRlZmluZSByYW5kb20gc3ltYm9scyBhZmZlY3Rpbmcgb3RoZXIgY29kZQoKMjAwNi0xMC0xOSAwODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgbGliaGVscGVycyBmcm9tIHRoZSBsaW5rIGxpbmUgb2YgbGliYWdlbnRzCgoyMDA2LTEwLTE5IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggdHJhbnNwb3J0IHNvY2sgcGF0Y2gKCjIwMDYtMTAtMTkgMDc6MTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZGFyd2luOC5oLCBkYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NzkzNjQ6IGZyb20gamFsYmVydDogVXBkYXRlZCBkYXJ3aW4gcGF0Y2ggdG8gZml4IGNvbXBpbGF0aW9uIG9uIFRpZ2VyIGFuZCBMZWFwb3JkCgoyMDA2LTEwLTE4IDE2OjUyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgRmluaXNoIGFkZGluZyBzdXBwb3J0IGZvciBETExzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZQogICByYW5nZXMuCgoyMDA2LTEwLTE4IDE0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudENvbmYuYywKICAgICBtdGVFdmVudENvbmYuaCwgbXRlT2JqZWN0c0NvbmYuYywgbXRlT2JqZWN0c0NvbmYuaAosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJDb25mLmg6CgogICBDbGVhbmx5IGhhbmRsZSByZS1sb2FkaW5nICJtb25pdG9yIiAoYW5kIHJlbGF0ZWQpIGRpcmVjdGl2ZXMuCgoyMDA2LTEwLTE4IDE0OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEhhbmRsZSBpbnZhbGlkIHBheWxvYWQgb2JqZWN0IE9JRHMuCgoyMDA2LTEwLTE4IDEyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENsZWFubHkgaGFuZGxlIHJlLWxvYWRpbmcgImV4dGVuZCIgZGlyZWN0aXZlcy4KCjIwMDYtMTAtMTggMDc6NDUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgLSB1c2VyIC91c3IvYmluL2VudiBmb3IgcG9ydGFiaWxpdHkKICAgLSBvbmx5IHRlc3QgZm9yIHRhciBpZiB3ZSdyZSBnb2luZyB0byB1c2UgaXQKCjIwMDYtMTAtMTggMDM6MjkgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBuZXcgcGFzc19wZXJzaXN0IGVycm9yIG1lc3NhZ2VzIGludHJvZHVjZWQgYnkgcGF0Y2ggMTU2ODE1MAoKMjAwNi0xMC0xNyAyMToxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLm9zWDoKCiAgIHVwZGF0ZSBmcm9tIENocmlzIEphbGJlcnQKCjIwMDYtMTAtMTcgMjA6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDE1NjU3MDM6IHBhdGNoIHRvIGZpeCByYXBpZCByZWdpc3RyYXRpb25zL2RlcmVnaXN0cmF0aW9uIGlzc3VlcwoKMjAwNi0xMC0xNyAyMDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0ggMTU2MjY4ODogZml4IHBpbmcvcmVhdHRhY2ggYWdlbnR4IGNvZGUKCjIwMDYtMTAtMTcgMjA6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDE1NjIxNjg6IGNoZWNrIGZvciBhIHNvY2sgZmQgbGVzcyB0aGFuIDAuCgoyMDA2LTEwLTE3IDE5OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKOgoKICAgdXNpbmcgdmZvcmsgYW5kIG5hbWVkIHBpcGVzOiBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NTE5NDg6IGZyb20gYXByb2VtZWw6IE1ha2UgcGFzc19wZXJzaXN0IHVzYWJsZSBvbiB1Q2xpbnV4CgoyMDA2LTEwLTE3IDE5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU2ODE1MDogZnJvbSBnYXZpbl9oYW46IEV4dGVuZCBwYXNzX3BlcnNpc3QgZXJyb3IgbWVzc2FnZXMgdGhhdCBjYW4gYmUgcGFzc2VkIGJhY2sgZnJvbSB0aGUgc2NyaXB0CgoyMDA2LTEwLTE3IDE5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1NzA2NTA6IGZyb20gIkJlbm9pdCBBbWlhdXgiOiBjcmVhdGUgYSBsb2dnaW5nIHNodXRkb3duIGZ1bmN0aW9uIHRvIHByb3Blcmx5IGNsZWFuIHVwIGxvZyByZWdpc3RyYXRpb25zIGlmIG5lZWRlZC4KCjIwMDYtMTAtMTcgMTk6MDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3MDY1MDogZnJvbSAiQmVub2l0IEFtaWF1eCI6IG1ha2UgZGVsZXRlIHRhYmxlIGZ1bmN0aW9uIHB1YmxpYwoKMjAwNi0xMC0xNyAxODo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTU3NTkzNzogZnJvbSBtYXJ0aW45ODc6IGZpeCB1c2VudW1lcmljIG91dHB1dCBpbiBhc3luYyB2YXJiaW5kcyBzbyB0aGV5IHJldHVybiBPSURzIGluc3RlYWQgb2YgZW1wdHkgc3RyaW5ncy4KCjIwMDYtMTAtMTcgMTg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NzU5ODQ6IGZyb20gcnR5bGU6IGJsb2NrIFNJR0hVUCBkdXJpbmcgcmVjb25maWcKCjIwMDYtMTAtMTcgMTg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICByZW1vdmUgY29ycmVjdCBzdWIgZGlyZWN0b3J5CgoyMDA2LTEwLTE3IDE4OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICAgIGRlZmF1bHRfc3RvcmUueHMsIGdlbiwgdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byBsYXRlc3QgZHNfYWdlbnQuaCBkZWZpbmVzCgoyMDA2LTEwLTE3IDE2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgZ2VuLCB0ZXN0LnBsOgoKICAgc3VwcG9ydCBsYXRlc3QgaDJ4czsgTkVXUzogcGVybDogdXBkYXRlIGRlZmF1bHRfc3RvcmUgbW9kdWxlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGMtYmluZGluZyB0b2tlbnMKCjIwMDYtMTAtMTcgMTY6MDUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGNvbmZpZyBnZW5lcmF0ZWQgZmlsZXMgb24gYSBtYWtlIGRpc3RjbGVhbgoKMjAwNi0xMC0xNyAxNTo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIHByb3Blcmx5IGZpeCB0aGUgc2VkIGlzc3VlcyB3aXRob3V0IHJlbW92aW5nIGZ1bmN0aW9uYWxpdHkgYnkgdXNpbmcgZmlsZXMgaW5zdGVhZCBvZiBzZWQgZXhwcmVzc2lvbnMKCjIwMDYtMTAtMTcgMTQ6MDggIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBtYWtlIGtsb29rdXAgZGVidWdnaW5nIGxlc3MgdmVyYm9zZQoKMjAwNi0xMC0xNyAxMzozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIGFkZCBrbG9va3VwIGRlYnVnZ2luZwoKMjAwNi0xMC0xNyAxMDozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBzdGlsbCBidWlsZCBpZiBrZXJuZWwgc3ltYm9scyB1bmRlZmluZWQKCjIwMDYtMTAtMTcgMDk6MTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgQXNzb2NpYXRlIGVycm9ycyBmcm9tIGRlbGVnYXRlZCByZXF1ZXN0cyB3aXRoIHRoZSBjb3JyZWN0IHZhcmJpbmQsCiAgIGFuZCBmaXggcHJvYmxlbXMgd2l0aCBmYWlsZWQgcHJveGllZCByZXF1ZXN0cyB0aW1pbmcgb3V0LgogICBSZXBvcnRlZCBieSBQYWJsbyBQYXNzZXJhICAoU2VlIGNvZGVycyBsaXN0IC0gNXRoIE9jdCBmZikKCjIwMDYtMTAtMTcgMDk6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IC0tZW5hYmxlLWFzLW5lZWRlZCB3aWxsIHRyeSB0byBsaW5rIGJ1aWx0IGxpYnJhcmllcyBhZ2FpbnN0IG5lZWRlZCBsaWJyYXJpZXMgYXQgbGlicmFyeSBsaW5rIHRpbWUsIHJhdGhlciB0aGFuIGFwcGxpY2F0aW9uIGxpbmsgdGltZS4KCjIwMDYtMTAtMTcgMDc6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgJ2NvbXBpbGVyIG9wdGlvbnMnIGhlYWRlciBpbiBoZWxwIG91dHB1dAoKMjAwNi0xMC0xNyAwNzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBiYWNrIG91dCBob3N0L2hyX3N3cnVuIHBhcnQgb2YgdGhlIEFJWCBqdW1ibyBwYXRjaCBzaW5jZSBpdCBvdmVyd3JvdGUgYSBtb3JlIGNvbXBsZXRlLCB3b3JraW5nIGltcGxlbWVudGF0aW9uIHdpdGggYSBzZWdmYXVsdGluZyBvbmUKCjIwMDYtMTAtMTYgMTY6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgQ0hBTkdFUzogSVJJWDogcHJvcGVyIGltcGxlbWVudGF0aW9uIGZvciBVQ0QtU05NUC1NSUI6OmxhVGFibGUgKGF2b2lkaW5nIG5saXN0KQoKMjAwNi0xMC0xNiAxMTo0MyAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgdGVzdHMvdGVzdC5weToKCiAgIG51bWVyaWMgYW5kIE9JRCBzZXRzIHdpdGggdGVzdGluZwoKMjAwNi0xMC0xNiAwODo1NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBkaXNhYmxpbmcgbmxpc3Qgc2hvdWxkbid0IGRpc2FibGUgcGVyZnN0YXQKCjIwMDYtMTAtMTYgMDg6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGRlYWwgd2l0aCBtaXNzaW5nIEFSUFRBQl9TSVpFX1NZTUJPTAoKMjAwNi0xMC0xNiAwNzo1NCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBDSEFOR0VTOiBUcnU2NDogLSBmaXggImF1dG9fbmxpc3QgZmFpbGVkIG9uIGFycHRhYl9zaXplIGF0IGxvY2F0aW9uIDAiIGVycm9ycwoKMjAwNi0xMC0xNSAxNzoyMyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTCBmaXhlcyBmb3Igc25tcHdhbGsgLyBzbm1wZ2V0bmV4dC4KCjIwMDYtMTAtMTUgMTQ6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBEb24ndCBtb2FuIGFib3V0IG5vcm1hbCBjb25uZWN0aW9uLWJhc2VkIHRyYW5zcG9ydCBhY3Rpdml0eQogICAoYW5kICpkbyogbW9hbiBzZW5zaWJseSBhYm91dCBmYWlsZWQgc2VuZHMpLgoKMjAwNi0xMC0xNSAxNDo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBTdG9yZSBUQ1AvSVB2NCBhZGRyZXNzIGluZm9ybWF0aW9uIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBVRFAvSVB2NC4KICAgVGhpcyBhbGxvd3MgdGhlIGNvbW11bml0eSAtPiBzZWN1cml0eSBuYW1lIG1hcHBpbmcgdG8gd29yayBjb3JyZWN0bHkuCiAgIEZpeGVzIEJ1ZyAjMTU3MTk0NS4KICAgICAgQSBiZXR0ZXIgKG1vcmUgbW9kdWxhcikgc29sdXRpb24gd291bGQgYmUgcHJlZmVyYWJsZSAoc2VlIGRpc2N1c3Npb25zCiAgIG9uIHRoZSBtYWlsaW5nIGxpc3RzKSwgYnV0IHRoaXMgc2hvdWxkIGF0IGxlYXN0IGFsbG93IDUuNCB0byBwcm9jZWVkLgoKMjAwNi0xMC0xNSAxMDowMyAgdGFuZGVycwoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIGtsb29rdXAgdGFrZXMgdGhyZWUgYXJndW1lbnRzLCBub3Qgb25lCgoyMDA2LTEwLTE0IDE0OjI4ICB0YW5kZXJzCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBrZXJuZWwuaCwKICAgICBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYwosIG1pYmdyb3VwL21pYklJL2lwdjYuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBwcmVwYXJlIGZvciA2NC1iaXQgbmxpc3QgY2hhbmdlcwoKMjAwNi0xMC0xNCAxMDozNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEZpeCBPSUQgc2V0cywgbWVtb3J5IGxlYWtzLgoKMjAwNi0xMC0xNCAwNjo0OSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogVXNlIGFsYXJtIGluc3RlYWQgb2YgdGhyZWFkIGZvciB0cmFwcy4gIFZhcmlvdXMgdHJhcAogICBmaXhlcy4KCjIwMDYtMTAtMTMgMTY6MTMgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBBZGQgdHJhcCBzdXBwb3J0IGZvciByZW1haW5pbmcgdHlwZXMsIGZpeAogICBBU05fSVBBRERSRVNTIEdFVCBzdXBwb3J0LgoKMjAwNi0xMC0xMyAxNToxNiAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIHNtdXhzb2NrZXQgbmVlZHMgdG8gYmUgYW4gSVB2NCBhZGRyZXNzCgoyMDA2LTEwLTEzIDE0OjQ5ICBkdHMxMgoKICAgKiBSRUFETUUub3NYOgoKICAgVXBkYXRlIHdpdGggcmVjZW50IGJ1aWxkIHJlcG9ydHMgZnJvbSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMC0xMyAxNDo0NSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBTdjN1c21jb25maWdhZ2VudCwKICAgICBTdmFueWNvbmZpZzoKCiAgIHNtdXhzb2NrZXQgbmVlZHMgdG8gYmUgYW4gSVB2NCBhZGRyZXNzCgoyMDA2LTEwLTEzIDE0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEhhbmRsZSBlcnJvcnMgZnJvbSByZWN2KCkgLSBzZWUgQnVnICMxNTI3OTMwCgoyMDA2LTEwLTEzIDE0OjI1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEV4cGxpY2l0bHkgcmVmZXJlbmNlZCBWTkFNRSB0b2tlbiB3aGVuIGRlc2NyaWJpbmcgInZpZXciIHRva2VuIHVzYWdlLgogICAoU3VnZ2VzdGVkIGJ5IEpvaG4gUm91aWxsYXJkKQoKMjAwNi0xMC0xMyAxMzo1MCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICAgIGRlZmF1bHRfc3RvcmUueHM6CgogICByZW1vdmUgTkVUU05NUF9EU19BR0VOVF9IIHdoaWNoIGlzbid0IGEgZGVmYXVsdCBzdG9yZSB2YXJpYWJsZQoKMjAwNi0xMC0xMyAwNzoxNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmaXggc3ludGF4IHR5cG8KCjIwMDYtMTAtMTMgMDI6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBkb24ndCBjb21taXQgYm9vbGVhbiBsb2dpYyBsYXRlIGF0IG5pZ2h0CgoyMDA2LTEwLTEzIDAxOjI4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENsYXJpZnkgdGhlIHBhcnNpbmcgb2YgYm9vbGVhbiAibW9uaXRvciIgZXhwcmVzc2lvbnMuCgoyMDA2LTEwLTEyIDE1OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICB1c2UgbWVtb3J5X2RhcndpbiBmb3IgZGFyd2luNwoKMjAwNi0xMC0xMiAxNToyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRW5zdXJlIGludGVybmFsIHF1ZXJ5IGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlIChhbmQgYWN0aXZlKQogICAqYmVmb3JlKiBtb25pdG9yIGRpcmVjdGl2ZXMgYXR0ZW1wdCB0byB1c2UgaXQuCgoyMDA2LTEwLTEyIDE1OjE5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgYnVpbGQgZml4IGZvciBzeXN0ZW1zIHdpdGggbm8gUlRIT1NUX1NZTUJPTCBvciBubyBSVE5FVF9TWU1CT0wgKGxpa2UgQUlYKQoKMjAwNi0xMC0xMiAwOToxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmaXggdHlwbwoKMjAwNi0xMC0xMiAwOTowMyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIENIQU5HRVM6IEFJWDogdXNlIGNvcnJlY3QgQVJQVEFCX1NZTUJPTCBhbmQgQVJQVEFCX1NJWkVfU1lNQk9MCgoyMDA2LTEwLTEyIDA4OjEzICB0YW5kZXJzCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBDSEFOR0VTOiBBSVg6IEJVRyAxMjA1MzAwOiBubGlzdCBlcnI6IG5laXRoZXIgbnByb2Mgbm9yIF9ucHJvYyBmb3VuZCAoc2FtZSBmb3IgcnRfdGFibGUsIHJ0aGFzaHNpemUsIHJ0aG9zdCwgcnRuZXQpCgoyMDA2LTEwLTEyIDA0OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgU3VwcHJlc3MgdGhlIHN1YnN0aXR1dGlvbiBvZiB0aGUgbGlzdCBvZiBtb2R1bGUgaGVhZGVyIGZpbGVzLgogICBUaGlzIGlzIHB1cmVseSBhIHRlbXBvcmFyeSBzdG9wLWdhcCBmaXgsIHRvIGhhbmRsZSBzZWQgY29tbWFuZHMgd2hpY2gKICAgY2hva2Ugb24gb3Zlci1sb25nIHN1YnN0aXR1dGlvbnMuICBBIGJldHRlciBhcHByb2FjaCBpcyBuZWVkZWQuCgoyMDA2LTEwLTEyIDA0OjQwICBkdHMxMgoKICAgKiBORVdTOgoKICAgRG9jdW1lbnQgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKGluY2x1ZGluZyBiZWhhdmlvdXIgY2hhbmdlcykuCgoyMDA2LTEwLTEyIDAzOjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmM6CgogICBGaXggaGFuZGxpbmcgb2YgYXNzaWdubWVudHMgdG8gbXRlVHJpZ2dlclZhbHVlSUQKICAgICAgIFtCdWcgIzE1NzQ3MTMsIFBhdGNoICMxNTc0NzQzLCBmcm9tIFJvc3MgVHlsZXJdCgoyMDA2LTEwLTEyIDAyOjU0ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIFR3ZWFrcyBmb3IgRGFyd2luIDkgc3VwcG9ydCAtIFtQYXRjaCAjMTU3NTQzMywgZnJvbSBDaHJpcyBKYWxiZXJ0XQoKMjAwNi0xMC0xMiAwMjo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oOgoKICAgVXBkYXRlZCBzeXN0ZW0gaGVhZGVyIGZpbGUgZm9yIERhcndpbjggLSBbUGF0Y2ggMTU3NTQzMCwgYnkgQ2hyaXMgSmFsYmVydF0KCjIwMDYtMTAtMTIgMDI6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIG1lbW9yeS5oOgoKICAgSW5jbHVkZSB0aGUgYXBwcm9wcmlhdGUgSEFMIG1vZHVsZXMgZm9yIERhcndpbiAoRGFyd2luOSkgc3lzdGVtcy4KICAgU3VwcGxpZWQgYnkgQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTAtMTEgMDk6MjEgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBhZGQgbm90ZSB0aGF0IC0tZW5hYmxlLW1mZC1yZXdyaXRlcyBpcyBuZWVkZWQgZm9yIGV4cGVyaW1lbnRhbCBpZi1taWIgcG9ydHMKICAgLSByZW1vdmUgbGluZSBvbiBwYXRjaCB0byBwcmV2aW91c2x5IHVucmVsZWFzZSBjb2RlCgoyMDA2LTEwLTExIDA5OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBmcmVlYnNkLmgsIG9wZW5ic2QuaDoKCiAgIGluY2x1ZGUgaWYtbWliIHJld3JpdGVzIGlmIG1mZCByZXdyaXRlcyBpcyBkZWZpbmVkCgoyMDA2LTEwLTExIDA4OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgaW5jbHVkZSBpZi1taWIgcmV3cml0ZXMgaWYgbWZkIHJld3JpdGVzIGlzIGRlZmluZWQKCjIwMDYtMTAtMTAgMTc6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUHJpdm94eVdpbmRvd09wZW4/IE11c3QgaGF2ZSBiZWVuIG1pc3NpbmcgYSBtYWpvciBmZWF0dXJlIGFkZGl0aW9uOi0pCgoyMDA2LTEwLTEwIDE1OjMyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCB0eXBvcwoKMjAwNi0xMC0xMCAxNDoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYzoKCiAgIE5FV1M6IFNvbGFyaXM6IFBBVENIOiAxNTY5NTM3LDE1Njk1Mzk6IG5ldyBVRFAtTUlCIGFuZCBUQ1AtTUlCIGltcGxlbWVudGF0aW9uIChlbmFibGUgdGhyb3VnaCAtLXdpdGgtbWliLW1vZHVsZXM9dWRwLW1pYix0Y3AtbWliKQoKMjAwNi0xMC0xMCAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU3MDk4MiBTb2xhcmlzIElGLU1JQjogU3VwcG9ydCBmb3IgSVB2Ni1vbmx5IGludGVyZmFjZXMKCjIwMDYtMTAtMTAgMDc6MzIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBwcmVhZDY0IChBSVgpIGFuZCBubGlzdDY0IChJUklYKQoKMjAwNi0xMC0xMCAwNjoxNiAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIG1pc3NpbmcgU1RSVUNUX05MSVNUNjRfSEFTX05fVkFMVUUgdmFyaWFibGUgc28gdGhhdCB0aGUgdGVzdCByZXN1bHQgaXMgYWN0dWFsbHkgc2F2ZWQKCjIwMDYtMTAtMTAgMDM6NTIgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IHNoZWxsIHN5bnRheCBlcnJvcnMgcmVwb3J0ZWQgYnkgUmljaGFyZCBDaG9uYWsKCjIwMDYtMTAtMDkgMDY6MTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHU6CgogICBtb3JlIHJvYnVzdCBTb2xhcmlzIENQVSB0ZXN0aW5nOiB0aGUgaW5kZXggZm9yIHRoZSBmaXJzdCBDUFUgbWF5IHZhcnkgYWNyb3NzIHN5c3RlbXMgKENQVSAwID0gaW5kZXggNzY4LCBDUFUgMSA9IGluZGV4IDc2OSBldGMuKQoKMjAwNi0xMC0wOSAwNDoyMSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBmYWlsIG9uIERFQlVHTVNHKgoKMjAwNi0xMC0wOCAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9wc3RhdC5jOgoKICAgQWN0aXZhdGUgcHN0YXQtYmFzZWQgQ1BVIGhhbmRsaW5nIG9uIEhQLVVYIHN5c3RlbXMuCgoyMDA2LTEwLTA4IDEzOjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBEb24ndCByZWRlZmluZSBhbiBleGlzdGluZyB0b2tlbiB3aXRob3V0IHVuZGVmaW5pbmcgaXQgZmlyc3QuCgoyMDA2LTEwLTA4IDEzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEVuc3VyZSB0aGF0IGhpc3RvcmljYWwgZGF0YSBpcyBhdmFpbGFibGUgYmVmb3JlIHdlIGF0dGVtcHQgdG8gdXNlIGl0LgoKMjAwNi0xMC0wNyAxNDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBGaXggc2l6ZSBjaGVjayBmb3Igc3BlY2lhbGlzZWQgaW50ZWdlci1iYXNlZCBhc3NpZ25tZW50cy4KICAgKEJ1ZyAjMTU3MjM5NCAtIHBhdGNoIHByb3ZpZGVkIGJ5IFBoaWwgV2lsc29uKQoKMjAwNi0xMC0wNyAwNjo0OSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgQWRqdXN0IHRvIGNoYW5nZXMgaW4gY2VydGFpbiBIb3N0UmVzIGluZGV4aW5nLgoKMjAwNi0xMC0wNSAxNTo0NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBXaGF0J3MgYSBzdHJheSB1bmRlcnNjb3JlIGhlcmUgb3IgdGhlcmUgYmV0d2VlbiBmcmllbmRzPwoKMjAwNi0xMC0wNSAwODo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1LmMsIGNwdV9rc3RhdC5jOgoKICAgRGVidWdnaW5nIGNvZGUuCgoyMDA2LTEwLTA1IDA4OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBCZSBjb25zaXN0ZW50IGluIHRoZSB1c2Ugb2YgQ1BVIGluZGV4aW5nLgoKMjAwNi0xMC0wNCAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBtZW1vcnkuaCwgbWVtb3J5L21lbW9yeV9udWxsLmMKOgoKICAgQWxsb3cgc3lzdGVtcyB3aXRob3V0IGFuIGV4cGxpY2l0IEhBTCBtZW1vcnkgbW9kdWxlIHRvIGNvbXBpbGUKICAgKGV2ZW4gaWYgdGhlIGFnZW50IGNhbid0IHJlcG9ydCB0aGUgcmVsZXZhbnQgc3RhdGlzdGljcykuCgoyMDA2LTEwLTA0IDE0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBjcHUvY3B1X2tzdGF0LmM6CgogICBJbmNsdWRlIGtzdGF0LWJhc2VkIENQVSBwcm9jZXNzaW5nIG9uIFNvbGFyaXMgc3lzdGVtcywgYW5kIGFtZW5kIHRoaXMgY29kZQogICB0byBhY3R1YWxseSBjb21waWxlL3dvcmsuICAoTXVjaCBvZiB0aGlzIHN1cHBsaWVkIGJ5IEJydWNlIFNoYXcpCgoyMDA2LTEwLTAzIDExOjMwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFRlc3QgZm9yIHRoZSBhY3R1YWwgYmVoYXZpb3VyIG9mIC1VeCAtRHg9eCwgYW5kIG9ubHkgdXNlIHRoaXMgaWYgaXQgd29ya3MgYXMgZXhwZWN0ZWQuCgoyMDA2LTEwLTAxIDA4OjQzICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzI6ICBBZGQgTlNJUyBpbnN0YWxsZXIgb3B0aW9uIGZvciBpbnN0YWxsaW5nIHdpbkV4dERMTCB2ZXJzaW9uIG9mCiAgIHNubXBkLmV4ZQoKMjAwNi0xMC0wMSAwNjo0MiAgYWxleF9iCgogICAqIE5FV1MsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMKOgoKICAgV2luMzI6ICBBZGQgdHJhcCBzdXBwb3J0IHRvIHdpbkV4dERMTCBhbmQgY2xlYW4gdXAgZGVidWdnaW5nIG91dHB1dC4KCjIwMDYtMDktMjkgMTk6MDAgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6ICBSZW1vdmUgd2luRXh0RExMIHNubXBkLmNvbmYgb3B0aW9uLCBhZGQgU05NUCB2MiBzdXBwb3J0LgoKMjAwNi0wOS0yOSAxMzoyOCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudF9pbnRmLmMsIHRlc3RzL3Rlc3QucHk6CgogICB0ZXN0IGZpeAoKMjAwNi0wOS0yOSAxMzoxOCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCBjbGllbnRfaW50Zi5jOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA2LTA5LTI5IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgdGVzdGluZyB1cGRhdGVzCgoyMDA2LTA5LTI5IDEzOjAzICBoYXJkYWtlcgoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50LnB5LAogICAgIG5ldHNubXAvY2xpZW50X2ludGYuYywgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgc3VwcG9ydCBmb3IgYSBnZW5lcmljIHdhbGsgd3JhcHBlcgoKMjAwNi0wOS0yOSAxMjozMSAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudF9pbnRmLmMsIHRlc3RzL3Rlc3QucHk6CgogICBjbGVhbnVwCgoyMDA2LTA5LTI4IDE4OjUwICBtYXJ6CgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgYWRkZWQgJ3NldCcgbWV0aG9kLCBmaXhlcy9hZGRpdGlvbnMgdG8gcmVhZG1lCgoyMDA2LTA5LTI3IDIzOjAyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBDSEFOR0VTOiBNYWNPU1g6IFBBVENIOiAxNTY2Nzc3OiBmcm9tIGphbGJlcnQ6IGJ1aWxkIGZpeGVzIGZvciBtZW1vcnlfZGFyd2luLmMKCjIwMDYtMDktMjcgMTU6MjEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciByZXdvcmRpbmcKCjIwMDYtMDktMjcgMTQ6MzIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUyIC0+IFY1LjQucHJlMwoJCjIwMDYtMDktMjcgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTI3IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTMgKQoKMjAwNi0wOS0yNyAxNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXg6Y2ZsYWdzIC0+OmNjZmxhZ3MKCjIwMDYtMDktMjcgMTM6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTY2NTIzOiBmcm9tIGFwZXJzc29uOiBNZW1vcnkgbGVhayBpbiBpZi1taWIgKFNvbGFyaXMpCiAgIC0gdGFrZSBhZHZhbnRhZ2Ugb2YgaWZfbmFtZXRvaW5kZXgoKSB3aGVuIHBvc3NpYmxlCiAgIC0gZ3JhYiB0aGUgSVB2NiBpbnRlcmZhY2UgSWRlbnRpZmllciBpZiBhdmFpbGFibGUKCjIwMDYtMDktMjcgMTA6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgLSB1cGRhdGUgZm9yIG5ldyByZWFzbV9tYXggdjQvdjYgc3BsaXQKICAgLSBhZGQgJ2wnIHRvIHByaW50ZiBzcGVjIGZvciBzaXplX3QgcGFyYW0KCjIwMDYtMDktMjcgMTA6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGxhcmdlZmlsZSBzdXBwb3J0IG9uIHNvbGFyaXMgYW5kIGRpc2FibGUgZW1iZWRkZWQgcGVybCB3aGVuIG9uCgoyMDA2LTA5LTI3IDA5OjUxICB0YW5kZXJzCgogICAqIEZBUToKCiAgIHVwZGF0ZSBwbGF0Zm9ybSBsaXN0CgoyMDA2LTA5LTI3IDA2OjU2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aG91dC1weXRob24tbW9kdWxlcwoKMjAwNi0wOS0yNiAxNjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBvcGVuYnNkNCB0byBzeXNjdGwgaW50ZXJmYWNlIGxpc3QKCjIwMDYtMDktMjYgMTU6NDQgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBzdXBwb3J0IGZvciBvcGVuYnNkNAoKMjAwNi0wOS0yNiAxNTozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIGFkZCBzdXBwb3J0IGZvciBvcGVuYnNkNAoKMjAwNi0wOS0yNiAxNDo0MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENvbnNpc3RlbnRseSBzYXkgIlBlcmwiLCBub3QgInBlcmwiLgoKMjAwNi0wOS0yNiAxNDoyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBuZWVkIHRvIGRvdWJsZSBjbGVhbiBweXRob24KCjIwMDYtMDktMjYgMTQ6MTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRob3V0LXBlcmwtbW9kdWxlcwoKMjAwNi0wOS0yNiAxMjo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYzoKCiAgIEluY2x1ZGUgc29tZSAocHJvYmFibHkgbm90IGFsbCkgbmVjZXNzYXJ5IGhlYWRlciBmaWxlcy4KCjIwMDYtMDktMjYgMTI6MjMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeGVkIHB5dGhvbiBtYWtlIGNsZWFuIHdoZW4gbm8gcHl0aG9uIHN1cHBvcnQgd2FzIHJlcXVlc3RlZAoKMjAwNi0wOS0yNiAwOTozOSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBzZXQgdXAgc3ltbGlua3MgYmVmb3JlIHJ1bm5pbmcgY29uZmlndXJlIHRvIHN1cnZpdmUgdGhlIG5ldyBwZXJsIHRlc3RzCgoyMDA2LTA5LTI2IDA5OjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZSB0aGUgcGVybCB0ZXN0cyB0byBhbGxvdyBmb3Igc3ltbGlua3MKCjIwMDYtMDktMjYgMDk6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4ZWQgcnBtIGNoZWNrcy4uLiAgb3BwcHMKCjIwMDYtMDktMjYgMDk6MDkgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGRvY3VtZW50ZWQgQUlYIHNlZCBpc3N1ZXMKCjIwMDYtMDktMjYgMDc6NDkgIG1hcnoKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudC5weSwKICAgICBuZXRzbm1wL2NsaWVudF9pbnRmLmMsIG5ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGNsZWFudXAsIHdlaXJkIGxlYWYgb2JqIGhhbmRsaW5nLCBhZGRlZCBzbm1wZ2V0YnVsawoKMjAwNi0wOS0yNSAyMTo1OCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTEgLT4gVjUuNC5wcmUyCgoyMDA2LTA5LTI1IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOS0yNSAyMTo0OSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUyICkKCjIwMDYtMDktMjUgMjE6MzcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBmaXhlZCBzeW50YXggZXJyb3IKCjIwMDYtMDktMjUgMTc6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByYW4gYXV0b2hlYWRlcgoKMjAwNi0wOS0yNSAxNzoyNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXBkYXRlIGZvciBhIC0td2l0aC1weXRob24tbW9kdWxlcyBmbGFnOyB3aWxsIHJ1biBpbnRvIHNvbWUgb2YgdGhlIHNhbWUgYnVpbGQtaW4tcGxhY2UgaXNzdWVzIHRoYXQgcGVybCBoYXMgYnV0IGl0J3MgYSBzdGFydAoKMjAwNi0wOS0yNSAxNzowNCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKMjAwNi0wOS0yNSAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNTU5MzU4OiBmcm9tIHRyYW1rZXI6IGNoZWNrIHNjYW5mIHJlc3VsdHMgZm9yIGRpc2tpbyBzY2FubmluZwoKMjAwNi0wOS0yNSAxNjo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTU2NDIzMzogSGF2ZSBjb25maWd1cmUgdGVzdCBmb3IgcnBtIGhlYWRlcnMgbm90IGp1c3QgdGhlIGxpYnJhcmllcwoKMjAwNi0wOS0yNSAxNDo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCB3YXJuIGFib3V0IGV4Y2x1ZGluZyByZXF1aXJlZCBtb2R1bGVzIHdoZW4gdGhlIGN1cnJlbnQgZmlsZSBpcyBkZWZhdWx0X21pYnMKCjIwMDYtMDktMjUgMTQ6MzMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1NjUyOTM6IGZyb20gYWRwOiBVRFBJUHY2IHRyYW5zcG9ydCByZXBvcnRzIHdyb25nIHBvcnQgbnVtYmVyCgoyMDA2LTA5LTI1IDEwOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHRlc3RzIHRvIHNlZSBpZiB3ZSdyZSBpbiB0aGUgbWFpbiBzb3VyY2UgdHJlZSBzbyB3ZSBjYW4gaW5zdGFsbCB0aGUgcGVybCBtb2R1bGVzIG9yIG5vdAoKMjAwNi0wOS0yNSAwOToyNSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGJ1bGt3YWxrLnQsIGNvbmYudCwKICAgICBnZXQudCwgZ2V0bmV4dC50LCBtaWIudCwgbWlibG9hZC50LAogICAgIG5vdGlmeS50LCBzZXNzaW9uLnQsIHNldC50OgoKICAgTWFrZSBwZXJsIHRlc3Qgc3VpdGUgd29yayBldmVuIGlmIG5ldC1zbm1wIGlzbid0IGluc3RhbGxlZCB5ZXQuCgoyMDA2LTA5LTI1IDA4OjQ4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIE5ldFNOTVA6OmFnZW50IHRlc3RzIG5laXRoZXIgbmVlZCBjb25maWcgbm9yIE1JQnMKCjIwMDYtMDktMjUgMDg6MjEgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZXhjbHVkZSBDVlMgZmlsZXMgZnJvbSBuaWdobHkgdGFyYmFsbHMKCjIwMDYtMDktMjUgMDc6MzAgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnQucHksIGNsaWVudF9pbnRmLmMsCiAgICAgdGVzdHMvdGVzdC5weToKCiAgIGFkZGluZyBnZXRidWxrLCByZW1vdmluZyBzb21lIGRlYnVnCgoyMDA2LTA5LTI1IDA1OjM1ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBEb24ndCBtaXggdGFicyBhbmQgc3BhY2VzIGZvciBpbmRlbnRhdGlvbi4gQ29udmVydCBhbGwgKHJhcmVseSB1c2VkKSB0YWJzIHRvIHNwYWNlcy4KCjIwMDYtMDktMjUgMDE6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgKLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBEaXN0aW5ndWlzaCBiZXR3ZWVuICJPSUQuKiIgYW5kICJPSUQqIiB3aWxkY2FyZCBzeW50YXggKGV4Y2x1c2l2ZSBhbmQKICAgaW5jbHVzaXZlIHN1YnRyZWUgbWF0Y2hlcyByZXNwZWN0aXZlbHkpLgoKMjAwNi0wOS0yNSAwMTozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmCjoKCiAgIEltcGxlbWVudCAoYW5kIGRvY3VtZW50KSAiT0lELioiIHN5bnRheCBmb3Igc3VidHJlZSBtYXRjaGluZy4KCjIwMDYtMDktMjQgMTU6MjggIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEwgLSBGaXggYnVnIHdpdGggc2V0IHJlcXVlc3RzLCBzdGFydCB0byBhZGQgU05NUHYyIHN1cHBvcnQuCgoyMDA2LTA5LTIzIDAwOjEzICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBPSUQucG0gdGVzdHMgc2hvdWxkbid0IGRlcGVuZCBvbiAqaW5zdGFsbGVkKiBNSUJzCgoyMDA2LTA5LTIyIDE0OjE4ICB0YW5kZXJzCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBzb21lIG5pdC1waWNraW5nCgoyMDA2LTA5LTIyIDEzOjU2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBTTk1QLnBtIHBlcmwgdGVzdHMgc2hvdWxkbid0IGRlcGVuZCBvbiAqaW5zdGFsbGVkKiBNSUJzCgoyMDA2LTA5LTIyIDEyOjQ3ICBtYXJ6CgogICAqIHB5dGhvbi9SRUFETUU6CgogICBSRUFETUUgZWRpdHMKCjIwMDYtMDktMjIgMTI6MDMgIG1hcnoKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIG1vZHMgdG8gUkVBRE1FIHdpdGggc29tZSB1c2FnZSBpbmZvCgoyMDA2LTA5LTIyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBweXRob24vUkVBRE1FOgoKICAgcHJvcGVyIG5hbWluZwoKMjAwNi0wOS0yMiAxMDoyNSAgaGFyZGFrZXIKCiAgICogcHl0aG9uLzogTElDRU5TRSwgUkVBRE1FOgoKICAgYWRkZWQgYSByZWFkbWUgYW5kIGxpY2Vuc2UgZmlsZQoKMjAwNi0wOS0yMiAxMDoyMCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGRhdGUgdXBkYXRlCgoyMDA2LTA5LTIyIDA3OjU4ICBtYXJ6CgogICAqIHB5dGhvbi86IHNldHVwLnB5LCBuZXRzbm1wL19faW5pdF9fLnB5LAogICAgIG5ldHNubXAvY2xpZW50LnB5LCBuZXRzbm1wL2NsaWVudF9pbnRmLmMsCiAgICAgbmV0c25tcC90ZXN0cy9fX2luaXRfXy5weSwgbmV0c25tcC90ZXN0cy9zbm1wZC5jb25mLAogICAgIG5ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIEFkZGluZyBpbml0aWFsIGFscGhhIHN1cHBvcnQgZm9yIG5ldC1zbm1wIHB5dGhvbiBiaW5kaW5nCgoyMDA2LTA5LTIyIDA0OjQ3ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIERvbid0IGZhaWwgb24gIkxPR19FUlIiLgoKMjAwNi0wOS0yMiAwMzoyOSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC86IG5vdGlmeS50LCBzdGFydGFnZW50LnBsOgoKICAgZml4IFNOTVAucG0gbm90aWZ5IHRlc3QgKHN0YXJ0IHNubXB0cmFwZCB3aXRoIHZhbGlkIG9wdGlvbnMpCgoyMDA2LTA5LTIxIDA5OjE1ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIFdpbmRvd3MgYnVpbGQgZml4ZXMuCgoyMDA2LTA5LTIxIDA3OjQzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmg6CgogICBTeW5jIHN0cnVjdCBuZXRzbm1wX3RyYXBkX2hhbmRsZXJfcyB3aXRoIHRoZSBsaWJyYXJ5IGNvZGUgYWdhaW4gKGFkZCAiZmxhZ3MiKS4KCjIwMDYtMDktMjEgMDY6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgZml4IHBvdGVudGlhbCBzZWdmYXVsdCBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE1NjEyNzcKCjIwMDYtMDktMjEgMDU6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPiBmb3IgU05NUF9TVFJPUk5VTEwKCjIwMDYtMDktMjEgMDM6NDkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAqcmVhbGx5KiBrZWVwIHByZVgvcmNYIGluIHZlcnNpb24gc3RyaW5ncwoKMjAwNi0wOS0yMCAxOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIGNoYW5nZSBhZ2VudHggc29ja2V0IGRlZmluZSB0byBORVRTTk1QXyBwcmVmaXhlZAoKMjAwNi0wOS0yMCAxMzoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIENoZWNrIGluY29taW5nIHRyYXAgT0lEcyBhcyBhbiBleHRlbnNpb24gb2YgdGhlIHRyYXBoYW5kbGUgT0lECiAgIChidXQgbm90IHRoZSBvdGhlciB3YXkgcm91bmQhKQoKMjAwNi0wOS0yMCAwOTo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBjaGFuZ2UgcHJlIHRhZ3MgdG8gMC4gdG8gYXZvaWQgYmFkbHkgZ2VuZXJhdGVkIHZlcnNpb24gbnVtYmVycwoKMjAwNi0wOS0yMCAwNzo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGF1dG9tYXR0ZWQgdGVzdGluZyBvZiB0aGUgcHJvZHVjZWQgdGFyLWJhbGwKCjIwMDYtMDktMTkgMjI6MjMgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBmaXggcGF0aCB0byBleHRyYWN0bmV3cwoKMjAwNi0wOS0xOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgY29uZmlndXJlLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMSApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4zIC0+IFY1LjQucHJlMQoKMjAwNi0wOS0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOS0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUxICkKCjIwMDYtMDktMTkgMTc6MTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNhdmUgdG8gcHV0dGluZyBpbiBzb21lIGJ1ZmZlciBzcGFjZSBmb3IgbGliY3VycmVudDsgNS4zIHdhcyAxMCBhbmQgaW5jcmVtZW50cyBvZiA1IG1ha2UgaXQgZWFzeSwgc28gNSBpdCBpcy4KCjIwMDYtMDktMTkgMTc6MDggIGhhcmRha2VyCgogICAqIGRpc3QvOiBleHRyYWN0bmV3cywgbWFrZXJlbGVhc2U6CgogICB5ZXQgbW9yZSB1cGRhdGVzIGZvciBtYWtpbmcgcmVsZWFzZXMKCjIwMDYtMDktMTkgMTY6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW9yZSBmaXhlcyBmb3IgdWRwIGRvbWFpbnM6IHJlbW92ZSByZXF1aXJlbWVudCBmb3IgaW5ldF9hdG9uIHdoaWNoIG9uIHNvbWUgc3lzdGVtcyBleGlzdHMgaW4gbGlicmVzb2x2CgoyMDA2LTA5LTE5IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHVkcCBkb21haW4gZml4ZXMKCjIwMDYtMDktMTkgMTY6MDQgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBidWlsZCBmaXggZm9yIElSSVggd2l0aCBTR0kncyBjYwoKMjAwNi0wOS0xOSAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaAosIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIE5FV1M6IHNubXB0cmFwZDogdGhlIHRyYXBoYW5kbGUgZGlyZWN0aXZlIG5vdyBzdXBwb3J0cyBhIC10IHN3aXRjaCB0byBpbmRpY2F0ZSBtYXRjaGluZyBhbnkgT0lEIGluIHRoZSB0cmVlIGJlbG93IHRoZSBzcGVjaWZpZWQgT0lECgoyMDA2LTA5LTE5IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIGNsZWFuZWQgdXAgcGVybCB2YXJzIGZvciBzdXBwb3J0IG9uIG9sZGVyIHBlcmwgdmVyc2lvbnMKCjIwMDYtMDktMTkgMTQ6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGVycm9yIGxvZ2ljIGluIHBlcmwgdGVzdHMKCjIwMDYtMDktMTkgMTQ6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc21hcnQgZGV0ZWN0aW9uIG9mIGF2YWlsYWJsZSBwZXJsIHN1cHBvcnQKCjIwMDYtMDktMTkgMTE6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHBlcmwgY2MgdGVzdCB0byBhbGxvdyBmb3IgZGFzaCBvcHRpb25zCgoyMDA2LTA5LTE5IDEwOjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXBvcnQgdGhlIGFwcHJvcHJpYXRlIHByZWZpeCBtYXRjaCB3aGVuIG9uZSBPSUQgaXMgYSBwcmVmaXggb2YgdGhlIG90aGVyLgogICBUaGUgcHJldmlvdXMgY29kZSB0cmVhdGVkIHRoaXMgYXMgYSBub24tbWF0Y2ggKHJldHVybmluZyAwKS4KICAgSSdtIG5vdCBhdCBhbGwgY29udmluY2VkIGJ5IHRoZSAiKzEiIGhhbmRsaW5nIGVpdGhlci4KCjIwMDYtMDktMTkgMTA6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYW5vdGhlciBhdHRlbXB0IHRvIGZpeCB0aGUgaXRlbXMgY2FsY3VsYXRpb24gd2l0aG91dCBwb3BwaW5nIGEgbWFyawoKMjAwNi0wOS0xOSAwOTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU1MDcyNTogZnJvbSAnV2F5bmUgR2xhbnR6JzogQSBuZXcgdWludCBpbnN0YW5jZSBoZWxwZXIgdG8gbWF0Y2ggdGhlIGV4aXN0aW5nIGludCwgbG9uZyBhbmQgdWxvbmcgaGVscGVycwoKMjAwNi0wOS0xOSAwOTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIE5FV1M6IHNubXBkOiBCVUc6IDE1Mjc5MzA6IGZpeCBzbXV4IGF1dGhlbnRpY2F0aW9uCgoyMDA2LTA5LTE5IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogUkVMRUFTRS1JTlNUUlVDVElPTlMsIGV4dHJhY3RuZXdzOgoKICAgcmVtb3ZlIGZyb20gdXNlciBzdHJpbmdzIGluIE5FV1MgYW5kIENIQU5HRVMgbGluZXMKCjIwMDYtMDktMTkgMDg6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICByZW1vdmUgcm9iZXJ0J3Mgc2VsZi1jYWxsZWQgaGFjayBmb3IgbWFraW5nIHNubXB0cmFwZCBoYW5kbGUgcGFydGlhbCBPSURzLiAgQXMgYWdyZWVkIHRvIG9uIGNvZGVycyB0aGlzIGNhbid0IGJlIGRvbmUgYXMgaXMgYmVjYXVzZSBpdCBjb21wbGV0ZWx5IGNoYW5nZXMgZXhpc3RpbmcgdXNhZ2UuICBBIG5ldyBtZWNoYW5pc20gaXMgbmVlZGVkIHRvIHN1cHBvcnQgdGhpcyBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpdHkgd2l0aCBwb3RlbnRpYWwgc2VjdXJpdHkgcmFtaWZpY2F0aW9ucwoKMjAwNi0wOS0xOSAwNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywKICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogMTI4MjU2NjogZnJvbSBtYWdmciB0byByZXdvcmsgdHJhbnNwb3J0IGNyZWF0aW9uIHRvIGFsbG93IGZvciBhbHRlcm5hdGl2ZSBpbnRlcnByZXRhdGlvbnMgb2YgdGhlIGFkZHJlc3MgYW5kIGEgbW9yZSBmbGV4aWJsZSB0cmFuc3BvcnQgcmVnaXN0cmF0aW9uIHN5c3RlbQoKMjAwNi0wOS0xOSAwNjoxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NjEyNzc6IHVzZSBuZXQuaXB2Ni5uZWlnaC5sby5iYXNlX3JlYWNoYWJsZV90aW1lX21zIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBiYXNlX3JlYWNoYWJsZV90aW1lCgoyMDA2LTA5LTE5IDA0OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudC5jLCBtdGVPYmplY3RzLmMKOgoKICAgRG9uJ3QgcmUtaW5pdGlhbGlzZSBidWlsdC1pbiBFdmVudC1NSUIgZXZlbnRzLCBldGMuCgoyMDA2LTA5LTE5IDAzOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgRmlyc3Qgc3RlcHMgaW4gc3VwcG9ydGluZyBzaW5nbGUtaW5zdGFuY2UgcmVnaXN0cmF0aW9ucy4KCjIwMDYtMDktMTggMjE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE0NzQ0Njg6IGlmQ29ubmVjdG9yUHJlc2VudCBhbHdheXMgcmV0dXJucyAwCgoyMDA2LTA5LTE4IDIwOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIG1vZGlmaWVkIHRoZSBob3N0IHJlc291cmNlcyBza2lwIE5GUyBwYXRjaCB0byBmaXggYSBidWcgYW5kIHRvIHVzZSB0aGUgZGVmYXVsdCBzdG9yYWdlIGNvbmZpZyBpbnN0ZWFkCgoyMDA2LTA5LTE4IDIwOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTI0NzU1OiBmcm9tIGFwZXJzc29uIHRvIGJldHRlciBzdXBwb3J0IHRoZSBVRFBUYWJsZSBmb3IgdW5rbm93biBhZGRyZXNzIHR5cGVzCgoyMDA2LTA5LTE4IDIwOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTM0ODc3OiBmcm9tIGJ1Y2toIHRvIGFkZCBzdXBwb3J0IGZvciBza2lwcGluZyBORlMgZW50cmllcyBpbiB0aGUgaG9zdCByZXNvdXJjZXMgaHJTdG9yYWdlVGFibGUuICBTZWUgdGhlIHNraXBORlNJbkhvc3RSZXNvdXJjZXMgdG9rZW4gaW4gdGhlIHNubXBkLmNvbmYgZmlsZSBmb3IgZGV0YWlscy4KCjIwMDYtMDktMTggMjA6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCBhY2NlcHRpbGUgTkVXUyB0b2tlbnMKCjIwMDYtMDktMTggMTc6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCB0aGUgbmV3IENWUyBORVdTIHRhZyBzeXN0ZW0KCjIwMDYtMDktMTggMTY6MDUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogLSBQQVRDSDogMTUzNjc3Mzogc3VwcG9ydCBwYXJ0aWFsIG9pZCBtYXRjaGluZwoKICAgV2UgY2FuIHN0aWxsIGFkZC9yZXF1aXJlIGEgc3BlY2lhbCB0b2tlbi9zeW50YXggZm9yIHRoaXMgYWZ0ZXIgcHJlMQogICBpZiB0aGlzIHdhcyB0aGUgY29uc2Vuc3VzLgoKMjAwNi0wOS0xOCAxNToyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIGZpeCByZWNlbnQgYnVpbGQgaXNzdWVzIG9uIFNvbGFyaXMgNyAocGF0Y2ggcHJvdmlkZWQgYnkgQW5kZXJzIFBlcnNzb24pCgoyMDA2LTA5LTE4IDA3OjE5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jOgoKICAgYWRkIGRlYnVnZ2luZywgZml4IHNvbWUgZmlndXJlcwoKMjAwNi0wOS0xOCAwMjowOCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L01BTklGRVNUOgoKICAgYWRkIE5ldFNOTVA6OmFnZW50OjpTdXBwb3J0IGZpbGVzCgoyMDA2LTA5LTE4IDAxOjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaDoKCiAgIE1vdmUgdXAgYW5kIHJlbmFtZSB0aGUgI2lmbmRlZiB0byBwcmV2ZW50IGR1cGxpY2F0ZSBpbmNsdWRlLiBGaXhlcyBjb21waWxlIGVycm9ycyB3cnQuIENvdW50ZXI2NCBvbiBTb2xhcmlzIDcgYW5kIGVhcmxpZXIuCgoyMDA2LTA5LTE2IDE2OjMzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FIHVwZGF0ZSBmb3Igd2luRXh0RExMLgoKMjAwNi0wOS0xNiAxNToyMiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luZG93cyB3aW5FeHRETEw6IFVzZSByZWdpc3RyeSBlbnRyaWVzIGZvciBXaW5kb3dzIFNOTVAgZXh0ZW5zaW9uIHRvIGdldAogICB0aGUgbGlzdCBvZiBETExzIHRvIGxvYWQuCgoyMDA2LTA5LTE2IDEzOjQ5ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVRTTk1QXyBkZWZpbmUgZml4ZXMuCgoyMDA2LTA5LTE2IDEyOjU2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBjb25maWd1cmUuaW46CgogICBmaXggY2hlY2sgZm9yIDxzeXMvc3lzdGVtY2ZnLmg+IChBSVgpCgoyMDA2LTA5LTE2IDExOjAxICB0YW5kZXJzCgogICAqIHdpbjMyLzogY29uZmlnLmguYm9ybGFuZCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgZml4IHNvbWUgTkVUU05NUF9ORVRTTk1QXyogImRvdWJsZSByZW5hbWUiIGVycm9ycyBmb3IgV2luZG93cwoKMjAwNi0wOS0xNiAxMDo1NiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHJldmVydCB0byAobG9jYWwpIE9MRF9IRUlNREFMIGRlZmluZQoKMjAwNi0wOS0xNiAxMDoyMyAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVuYW1lIGxhc3Qgb2NjdXJlbmNlIG9mIERPTlRfVVNFX05MSVNUCgoyMDA2LTA5LTE2IDEwOjEwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOS0xNiAwODo0NCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsLzogbGlic25tcC5kZWYsIGxpYnNubXAuZGVmLmluOgoKICAgV2luZG93cyBNU1ZDIFBlcmwgY29tcGlsZSBmaXhlcy4KCjIwMDYtMDktMTYgMDg6MTkgIGFsZXhfYgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEw6CgogICBGaXggZm9yIGJ1aWxkaW5nIHVuZGVyIFdpbmRvd3MgKE1TVkMpLgoKMjAwNi0wOS0xNSAwOToxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIGFjdGl2YXRlIG1lbW9yeSBIQUwgY29kZSBmb3IgSVJJWAoKMjAwNi0wOS0xNSAwOTowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIGluaXRpYWwgSVJJWCB2ZXJzaW9uIG9mIG1lbW9yeSBIQUwgaW50ZXJmYWNlCgoyMDA2LTA5LTE1IDA3OjQ4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIDxzeXMvc3lzZ2V0Lmg+IChJUklYKQoKMjAwNi0wOS0xNSAwNzoxNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgaW50cm9kdWNlIG5ldHNubXBfb3Nfa2VybmVsX3dpZHRoKCkgdG8gYmUgYWJsZSB0byBkZXRlY3QgNjRiaXQga2VybmVscyBhdCBydW50aW1lCgoyMDA2LTA5LTE1IDA2OjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIHN5cy9zeXN0ZW1jZmcuaCAoQUlYKSBhbmQgc3lzL3N5c3RlbWluZm8uaCAoSVJJWCkKCjIwMDYtMDktMTUgMDU6NDYgIHRhbmRlcnMKCiAgICogUkVBRE1FLndpbjMyLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgc25tcGxpYi9zY2FwaS5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgICAgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZQosIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI2c25tcHYzZ2V0U0hBQUVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LAogICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgd2luMzIvQ29uZmlndXJlOgoKICAgbW9yZSByZW5hbWVzIGFuZCBmaXhlcwoKMjAwNi0wOS0xNSAwNDoxNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggc3ludGF4IGVycm9yIHRoYXQgYnJva2UgdGhlIFNvbGFyaXMgYnVpbGQKCjIwMDYtMDktMTUgMDM6NDQgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggd3JvbmcgcmVuYW1lcwoKMjAwNi0wOS0xNSAwMzozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHJlc3RyaWN0IElQX1BLVElORk8gY29kZSB0byBMaW51eAoKMjAwNi0wOS0xNSAwMjoxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZml4IHN5bnRheCBlcnJvcnMgd2hpY2ggYnJva2UgdGhlIGJ1aWxkIG9uIFNvbGFyaXMKCjIwMDYtMDktMTQgMjE6MDMgIGFsZXhfYgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLmJvcmxhbmQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGFuZ2UgTmV0LVNOTVAgZGVmaW5lcyB0byB1c2UgTkVUU05NUF8gcHJlZml4LgoKMjAwNi0wOS0xNCAxNzo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLAogICAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvYXNuMS5jLAogICAgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsCiAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL210X3N1cHBvcnQuYywKICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGtjcy5jLAogICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMKLCBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICAgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIEFsd2F5cyB1c2UgdGhlIG5ldyBuZXQtc25tcC1jb25maWcuaCBkZWZpbml0aW9ucyBmcm9tIHdpdGhpbiB0aGUgTkVUU05NUF8KICAgbmFtZXNwYWNlLgoKMjAwNi0wOS0xNCAxNjo1NSAgaGFyZGFrZXIKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIGZpcnN0IHBhc3MgYXQgZXh0cmFjdGluZyBORVdTL0NIQU5HRVMgZmlsZXMgZnJvbSBjdnMgbG9ncwoKMjAwNi0wOS0xNCAxNjozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGRldGVjdCBzb2xhcmlzIGliZC9pcC50dW4vYXRoIGludGVyZmFjZSB0eXBlcyBwcm9wZXJseQoKMjAwNi0wOS0xNCAxNToyOCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgbWVudGlvbiBTb2xhcmlzIGlmLW1pYiByZXdyaXRlCgoyMDA2LTA5LTE0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA2LTA5LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIE5FV1M6IFBBVENIRVM6IDE1MDk5NDM6IHJlc3BvbnNlcyB3aWxsIGdldCBzZW50IGZyb20gdGhlIG9yaWdpbmFsIGRlc3QgSVAgYWRkcmVzcyB3aGVuIHBvc3NpYmxlLgoKMjAwNi0wOS0xNCAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IFBBVENIRVM6IDE1NTQ4Mjc6IGZyb20gcnR5bGU6IGZpeCBoYW5kbGluZyBvZiBmYWlsZWQgcHJveHkgU0VUIHJlcXVlc3RzCgoyMDA2LTA5LTE0IDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYwo6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTU1NzUxNCBmcm9tIHJ0eWxlOiBEbyBub3QgYXR0ZW1wdCB0byBjb2xsZWN0IGRhdGEgZHVyaW5nIFNFVCBwcm9jZXNzaW5nLgoKMjAwNi0wOS0xNCAxMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXNzIDIgYXQgZ2V0dGluZyBhdXRvLWJ1aWxkIHN1cHBvcnQgZm9yIC5zbyBmaWxlcy4gIEknbSBub3cgY29udmllbmNlZCBpdCdzIGNsb3NlIHRvIGltcG9zc2libGUgdG8gZG8gY29ycmVjdGx5IHdpdGggZGVwZW5kZW5jeSBpc3N1ZXMgYW5kIG5vIHN1cHBvcnQgZm9yIHJlY3Vyc2l2ZSBmdW5jdGlvbnMgaW4gc2gKCjIwMDYtMDktMTQgMTI6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBzb2xhcmlzIHN1cHBvcnQgZm9yIGlmLW1pYiA2NGJpdCBjb3VudGVycwoKMjAwNi0wOS0xNCAxMDozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaXBBZGRyLmMsIHZhcl9yb3V0ZS5jCjoKCiAgIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgcm91dGluZSBmb3Igc29sYXJpcywgaWYgcmV3cml0ZSBpbiBlZmZlY3QKCjIwMDYtMDktMTQgMTA6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgdXNlIE5FVFNOTVBfSU5DTFVERV9JRlRBQkxFX1JFV1JJVEVTIHRvIGRlY2lkZSBhYm91dCBpZi1taWIgc3VwcG9ydAoKMjAwNi0wOS0xNCAxMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgc29sYXJpcyBzdXBwb3J0IGZvciBpZi1taWIgNjRiaXQgY291bnRlcnMKCjIwMDYtMDktMTQgMTA6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2NvbmYgJiYgYXV0b2hlYWRlcgoKMjAwNi0wOS0xNCAxMDoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHR5cGUgY2hlY2sgZm9yIHNvbGFyaXMgQ291bnRlcjY0CgoyMDA2LTA5LTE0IDEwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHNwbGl0IHJlYXNtX21heCBpbnQgdHdvIHZhcnMgKHY2L3Y2KQoKMjAwNi0wOS0xNCAwNzo1MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4Lmg6CgogICBkZWZpbmUgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMKCjIwMDYtMDktMTQgMDc6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBtaWJJSS9pZlRhYmxlLmg6CgogICBPbmx5IHRyeSB0byB1c2UgbWZkIGNvZGUgaWZmIE5FVFNOTVBfSU5DTFVERV9JRlRBQkxFX1JFV1JJVEVTIGlzIGRlZmluZWQKCjIwMDYtMDktMTQgMDc6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIGRlZmluZWQgZm9yIG5ldyBpZk9wZXJTdGF0dXMgdmFsdWVzCgoyMDA2LTA5LTE0IDAyOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jCiwgbG9jYWwvbWliMmMucm93LmNvbmY6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBhIHNpbmdsZS1yb3cgaGVscGVyLgoKMjAwNi0wOS0xMyAxMDowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBwYXNzIG9uZSBhdCBzcGVjaWZ5aW5nIGRsbHMgdG8gYnVpbGQgdmlhIG1vZHVsZXMuICBEbyBub3QgdXNlIHRoaXMgeWV0IGFzIHRoZXJlIGFyZSBjb25mbGljdCBpc3N1ZXMgdGhhdCBuZWVkIHRvIGJlIHdvcmtlZCBvdXQKCjIwMDYtMDktMTIgMTg6MzIgIGFsZXhfYgoKICAgKiBORVdTLCBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsCiAgICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW5kb3dzOiBuZXcgd2luRXh0RExMIGV4dGVuc2lvbiBtb2R1bGUgdG8gYWxsb3cgc25tcGQgdG8gbG9hZCBXaW5kb3dzCiAgIFNOTVAgc2VydmljZSBleHRlbnNpb24gRExMcyB0byBwcm92aWRlIHN1cHBvcnQgZm9yIEhPU1QtUkVTT1VSQ0VTLU1JQgogICBhbmQgb3RoZXIgTUlCcyBwcm92aWRlZCB3aXRoIFdpbmRvd3MuCgoyMDA2LTA5LTEyIDE2OjE1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDQU5fVVNFX1NZU0NUTCAtPiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCgoyMDA2LTA5LTEyIDE1OjQyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWlub3IgZml4ZXMKCjIwMDYtMDktMTIgMTU6MzUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgc2Vkc2NyaXB0LmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi41LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oOgoKICAgTkVXUzogbWlzYzogLSBNb3N0IG5ldC1zbm1wIHNwZWNpZmljIGRlZmluZXMgYXJlIG5vdyAoYWxzbykgYXZhaWxhYmxlIHVuZGVyIGEgcHJvcGVyIE5FVFNOTVBfIHByZWZpeC4gVGhlIG9sZGVyLCBwb3RlbnRpYWxseSBjb25mbGljdGluZyBuYW1lcyBhcyB3ZWxsIGFzIHRoZSBhdXRvY29uZiB2YXJpYWJsZXMgY2FuIG5vdyBiZSB0dXJuZWQgb2ZmIGJ5IGEgc3BlY2lhbCBkZWZpbmUuCgoyMDA2LTA5LTEyIDEwOjMzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBORVdTOiBhZ2VudDogLSBbQlVHUzogMTQyNzQxMF0gU2V0IGF1dGggZW5naW5lSUQgZm9yIFNOTVB2MyB0cmFwcy4KICAgKHJhdGhlciB0aGFuIHNlbmRpbmcgYSB0cmFwIHdpdGggbm8gYXV0aCBlbmdpbmVJRCkKCjIwMDYtMDktMTIgMTA6MzAgIGR0czEyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogLSBbQlVHUyAxNDE2NDgxXSBTdXBwb3J0IHNwZWNpZnlpbmcgYW4gZXhwbGljaXQgbGlua2VyLgogICBEZWZhdWx0cyB0byAkQ0MgaWYgbm90IGV4cGxpY2l0bHkgc2V0LgoKMjAwNi0wOS0xMiAxMDoyNyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBhZ2VudDogLSBbQlVHUyAxNTAyMjY3XSBCdWlsZCBhY2Nlc3MgbGlzdCBpbiB0aGUgY29ycmVjdCBvcmRlci4KCjIwMDYtMDktMTIgMDY6MDYgIHRhbmRlcnMKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBlbmFibGUgZW1iZWRkZWQgUGVybCBhbmQgdGhlIFBlcmwgbW9kdWxlcyBieSBkZWZhdWx0CgoyMDA2LTA5LTA4IDA4OjQzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgTkVXUzogbWliMmM6IC0gW0JVR1M6IDE0Nzk5MTZdIFJlc3RvcmUgY29uc2lzdGVuY3kgaW4gcm93IGNyZWF0aW9uIGNvZGUuCgoyMDA2LTA5LTA4IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE5FV1M6IHNubXBkOiAtIFtCVUdTOiAxNTM1OTAzXSBTdXBwb3J0IHNwYWNlcyB3aXRoaW4gc2VjdXJpdHkgbmFtZXMKCjIwMDYtMDktMDcgMjA6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4LCBJIHRoaW5rLCB0aGUgYnVsa3dhbGsgcHJvYmxlbXM7IGFsbCB0ZXN0cyBwYXNzLiAgSSBiZWxpZXZlIHRoZSBwYXRjaCBpcyB0aGUgY29ycmVjdCBjb21iaW5hdGlvbiBiZXR3ZWVuIHRoZSB0d28gZGlmZmVyZW50IHBhdGNoZXMgKHRoZSBvbGQgb25lIGFuZCB0aGUgbmV3IG9uZSkgdGhhdCBzaG91bGQgZml4IGJvdGggcHJvYmxlbXMuICBORVdTOiBwZXJsIC0gRml4ZWQgdGhlIHBlcmwgYnVsa3dhbGsgZnVuY3Rpb24KCjIwMDYtMDktMDcgMDk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggdHlwbyB3aGljaCBicm9rZSBwZXJzaXN0ZW5jZQoKMjAwNi0wOS0wNyAwOToxNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgVXNlIHRoZSBjb3JyZWN0IEFQSSBjYWxsIGZvciByZW1lbWJlcmluZyBhIG5ld2x5LWNyZWF0ZWQgcm93LgogICAoU3BvdHRlZCBieSBaaGFuZyBDaHVhbikuCgoyMDA2LTA5LTA3IDA0OjM3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgTkVXUzogc25tcGRmOiAtIFtCVUdTOiAxNTE1NTA3XSBIYW5kbGUgZmFpbGVkIHJlcXVlc3RzIGJldHRlcgogICAoRG9uJ3QgZ28gaW50byBhbiBpbmZpbml0ZSBsb29wISkKCjIwMDYtMDktMDcgMDQ6MzAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgc25tcGxpYi9taWIuYzoKCiAgIE5FV1M6IHNubXBsaWIgLSBbQlVHUzogMTUzNzQ1OSwgQlVHUzogMTU0MDc0NV0gRml4IG1pc3NpbmcgTUlCIHBhcnNpbmcgdG9rZW5zCgoyMDA2LTA5LTA3IDA0OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgTkVXUywKICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudAo6CgogICBSZXZlcnQgZGVmYXVsdCBiZWhhdmlvdXIgb2YgY29udmVuaWVuY2UgYWNjZXNzIGNvbnRyb2wgZGlyZWN0aXZlcwogICB0byBtYXRjaGluZyBhbGwgY29udGV4dC4gIEFuIGV4cGxpY2l0IGNvbnRleHQgZmllbGQgd2lsbCBiZSB0YWtlbgogICBhcyBhbiBleGFjdCBtYXRjaCwgdW5sZXNzIGl0IGVuZHMgaW4gJyonLgoKMjAwNi0wOS0wNiAxMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oOgoKICAgZml4IHNvbWUgbWlzc2luZyBzdGF0cyBpbiBpZlRhYmxlL2lmWFRhYmxlCgoyMDA2LTA5LTA2IDA2OjQ1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIGFkZCBub3RlIG9uIGV4cGVyaW1lbnQgRnJlZUJTRC9PcGVuQlNEIGlmWFRhYmxlIHN1cHBvcnQKCjIwMDYtMDktMDYgMDY6NDIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBGcmVlQkRTIGFuZCBPcGVuQlNEIGZvciBpZi1taWIKCjIwMDYtMDktMDUgMTI6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgZGVhbCB3L3ByZXYgcHRycyB0b28KCjIwMDYtMDktMDUgMDc6NTggIGR0czEyCgogICAqIE5FV1MsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgbmV3IGFjY2VzcyBjb250cm9sIChhbmQgY29udGV4dCkgYmVoYXZpb3VyLgoKMjAwNi0wOS0wNSAwNTo0OSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudDoKCiAgIEV4cGxpY2l0bHkgYXV0aG9yaXNlIGFsbCBjb250ZXh0cy4KICAgKFRoaXMgcmVzdWx0cyBmcm9tIGEgbWlub3IgYWx0ZXJhdGlvbiBpbiBiZWhhdmlvdXIgZm9sbG93aW5nIGFub3RoZXIgY29kZQogICAgY2hhbmdlLCBidXQgZmVlbHMgbW9yZSBzZWN1cmUgdGhhbiBhdXRvbWF0aWNhbGx5IG9wZW5pbmcgdXAgYWxsIGNvbnRleHRzCiAgICBieSBkZWZhdWx0LiAgVGhvdWdoIEknbSBoYXBweSB0byBiZSBwZXJzdWFkZWQgb3RoZXJ3aXNlLi4uKQoKMjAwNi0wOS0wNSAwMjo0NCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIChhZ2FpbikKCjIwMDYtMDktMDUgMDE6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnRfbWlicy5oLCBhZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5oCjoKCiAgIEluY2x1ZGUgTmV0LVNOTVAgZXh0ZW5zaW9uIGFjY2VzcyB0YWJsZSAoYW5kIE1JQikgaW4gdGhlIGRlZmF1bHQgYnVpbGQuCgoyMDA2LTA5LTA1IDAxOjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBuc1ZhY21BY2Nlc3NUYWJsZSBub3QgYmVpbmcgaW5jbHVkZWQuCiAgIChhbmQgc2ltaWxhciBmb3IgdXNtVXNlclRhYmxlIC0gYSBjbGVhbmVyIGNoZWNrIHRoYW4gYmVmb3JlKQoKMjAwNi0wOS0wNSAwMToyOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jLCBtYW4vc25tcHZhY20uMS5kZWY6CgogICBTdXBwb3J0IG1hbmlwdWxhdGlvbiBvZiB0aGUgTmV0LVNOTVAgZXh0ZW5zaW9uIGFjY2VzcyB0YWJsZS4KCjIwMDYtMDktMDUgMDE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCBib3RoIGV4YWN0IGFuZCBjb250ZXh0IHByZWZpeCBtYXRjaGVzIGZvciB0aGUgY29udmVuaWVuY2UgZGlyZWN0aXZlcwogICAoYXMgd2VsbCBhcyAnYXV0aGFjY2VzcycpLgoKMjAwNi0wOS0wNSAwMToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzoKCiAgIEJldHRlciBoYW5kbGluZyBvZiByb3cgY3JlYXRpb24vZGVsZXRpb24uCiAgIFN1cHByZXNzIHZhcmlvdXMgbWlub3IgdHlwZSBtaXNtYXRjaGVzLgoKMjAwNi0wOS0wNCAxNjowNyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCAocHJlbGltaW5hcnkpIGluZm9ybWF0aW9uIG9uIG5ldyBORVQtU05NUC1WQUNNLU1JQgoKMjAwNi0wOS0wNCAxNjowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvLmN2c2lnbm9yZToKCiAgIHR3ZWFrIC5jdnNpZ25vcmUgZmlsZXMgZm9yIG5ldyB1ZHAtbWliL3RjcC1taWIKCjIwMDYtMDktMDQgMTU6NTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAwNi0wOS0wNCAwNzoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgVGVsbCBhIGZ1c3N5IGNvbXBpbGVyIChTL1csIG5vdCBodW1hbikgdG8gc2h1dCB1cC4KCjIwMDYtMDktMDQgMDY6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgYWdlbnQvZXh0ZW5kLmMsCiAgICAgdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgRHJvcCB0aGUgb2xkIFVDRCBleHRlbnNpYmxlIG1vZHVsZSBmcm9tIHRoZSBkZWZhdWx0IGJ1aWxkLgogICBSZWx5IG9uIHRoZSByZXdvcmtlZCAoY2FjaGVkLCB2YWxpZCBzeW50YXgpICJleHRlbmQiIG1vZHVsZSBpbnN0ZWFkLgoKMjAwNi0wOS0wNCAwNDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYwo6CgogICBTdXBwb3J0IHJlZ2lzdGVyaW5nIFZBQ00gZXh0ZW5zaW9ucyBpbiBhIG5vbi1kZWZhdWx0IGNvbnRleHQKICAgKHN1Y2ggYXMgdXNlZCBieSAnc25tcHRyYXBkJykKCjIwMDYtMDktMDQgMDQ6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTdXBwb3J0IG5vbi1kZWZhdWx0IGNvbnRleHRzIHdpdGggdGhlIGF1dGgqIGNvbnZlbmllbmNlIGRpcmVjdGl2ZXMuCgoyMDA2LTA5LTA0IDA0OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFR3ZWFrIHZhcmlhYmxlIG5hbWVzIHRvIGJlIGxlc3MgY29uZnVzaW5nLgogICAoImF1dGh0eXBlIiBub3cgaGFzIGEgc3BlY2lmaWMgbWVhbmluZywgY29udHJhcnkgdG8gdGhlIHVzZSBoZXJlKS4KCjIwMDYtMDktMDEgMTc6MzQgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IGN2c3Jvb3QKCjIwMDYtMDktMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgLVkKCjIwMDYtMDktMDEgMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBtYWtlIHNubXBkIHN1cHBvcnQgdGhlIC1ZIGNvbmZpZyBmbGFnIGxpa2UgdGhlIG90aGVyIGNvbW1hbmRzIGRvCgoyMDA2LTA5LTAxIDE1OjMxICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gVXBkYXRlIHRvIDUuNC5kZXYKICAgLSBpbnRyb2R1Y2UgJXtsaWJjdXJyZW50fQogICAtIHVzZSBuZXcgZGlzbWFuL2V2ZW50IG5hbWUKICAgLSBhZGQ6IFJFQURNRS5haXggUkVBRE1FLm9zWCBSRUFETUUudHJ1NjQgUkVBRE1FLmlyaXggUkVBRE1FLmFnZW50LW1pYnMKICAgICBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0CiAgIC0gYWRkIG5ldyBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydAoKMjAwNi0wOS0wMSAxMDo1OCAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIG5vdGUgbmV3IG1pYjJjLmVtdWxhdGlvbi5jb25mCiAgIC0gbm90ZSBuZXcgbGludXggaXB2NiBhd2FyZSBkZWZhdWx0IG1pYnMKICAgLSBleHBhbmQgc2NvcHkgb2Ygbm90ZSBvbiBmaXhlcyB0byBub24tbGludXggaXBhZGRyZXNzIHNpemUKCjIwMDYtMDktMDEgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHRjcCBhbmQgdWRwIG1pYiB0YWJsZXMgdG8gbGludXggbWliSUkgbW9kdWxlIGxpc3QKCjIwMDYtMDktMDEgMTA6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIGZpeCBieXRlb3JkZXIgcHJvYmxlbXMKCjIwMDYtMDktMDEgMTA6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIC0gb25seSBsb2cgZXJyb3Igb25jZSBpZiB3ZSBjYW4ndCBvcGVuIC9wcm9jL25ldC90Y3A2CiAgIC0gYWRkIGFiaWxpdHkgdG8gb25seSBsb2FkIGlwdjQgZGF0YQoKMjAwNi0wOS0wMSAxMDo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBmaXggYnl0ZW9yZGVyIHByb2JsZW1zCgoyMDA2LTA5LTAxIDEwOjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byAnYnl0ZXN3YXAnIGhleC1zdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYWRkcmVzcwoKMjAwNi0wOS0wMSAwNzo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgdWRwVGFibGUuYywKICAgICB2YXJfcm91dGUuYzoKCiAgIG1vcmUgaXAgYWRkcmVzcyBzaXplIGZpeGVzCgoyMDA2LTA5LTAxIDA1OjQxICB0YW5kZXJzCgogICAqIHBlcmwvOiBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBhZ2VudC9hZ2VudC54cwo6CgogICBhbGlnbiB0aGUgbmV0c25tcF9vaWQgc3RydWN0IGRlZmluaXRpb24gKG9pZCwgc2l6ZV90ISkgd2l0aCB0aGUgb25lIGZyb20gTmV0U05NUDo6T0lECgoyMDA2LTA5LTAxIDAyOjQ0ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXgsIFJFQURNRS5zb2xhcmlzLCBSRUFETUUudHJ1NjQ6CgogICBhZGQgbm90ZXMgb24gSVB2NgoKMjAwNi0wOC0zMSAxNzo0MyAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHR5cG8KCjIwMDYtMDgtMzEgMTc6MTUgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgT0lEIGxlbiBzaG91bGQgYmUgYSBzaXplX3QKCjIwMDYtMDgtMzEgMTU6NDcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIGNvcnJlY3Qgc29ja2FkZHJfc3RvcmFnZS5bX19dc3NfZmFtaWx5IGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0IG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZ3VyZSB0ZXN0LiBNYWtlcyB0aGUgVURQSVB2NiB0cmFuc3BvcnQgY29kZSB3b3JrIG9uIGF0IGxlYXN0IEFJWCBhbmQgVHJ1NjQgVW5peC4KCjIwMDYtMDgtMzEgMTU6NDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFjY29uZmlnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBzb2NrYWRkcl9zdG9yYWdlLltfX11zc19mYW1pbHkgdXNlZCBpbiB0aGUgVURQSVB2NiB0cmFuc3BvcnQgY29kZQoKMjAwNi0wOC0zMSAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgZml4IElwQWRkcmVzcyBsZW5ndGhzIG9uIG5vbi1MaW51eCA2NGJpdCBwbGF0Zm9ybXMKCjIwMDYtMDgtMzEgMDE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIGFkZCBtaXNzaW5nIHNlbWljb2xvbiAoZXZlbiBvbmUtbGluZSBwYXRjaGVzIGNhbiBlYXNpbHkgYnJlYWsgdGhlIGJ1aWxkIDstKSkKCjIwMDYtMDgtMzAgMTc6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBjb3ZlcnRpeSBidWcgMTI3OiBkb3VibGUgY2hlY2sgbmFtZV9wIHBvaW50ZXIgYWN0dWFsbHkgZ290IGZpbGxlZCBiZWZvcmUgIHVzaW5nIGl0CgoyMDA2LTA4LTMwIDE3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgbWFrZSBzdXJlIHNubXBfbG9nX29wdGlvbnMgY2hlY2tzIGZvciBOVUxMcyBvZiBhcmd2IGluIGlsbGVnYWwgY2FsbHMgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTA4LTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBjb3ZlcnR5IGJ1ZyA1OTogZG91YmxlIGNoZWNrIHN5c3RlbSBoYW5kbGVzIGludC91aW50IGNvbnZlcnNpb25zIHByb3Blcmx5CgoyMDA2LTA4LTMwIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgY292ZXJ0eSBidWcgMTU1OiBmcmVlIGZpbGUgcG9pbnRlciBkdXJpbmcgaXB2NiBmb3J3YXJkaW5nCgoyMDA2LTA4LTMwIDE3OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBjb3ZlcnR5IGJ1ZyAxNTY6IGZyZWUgcmVzb3VyY2VzIGR1cmluZyBtaWIgcGFyc2luZyBmYWlsdXJlcwoKMjAwNi0wOC0zMCAxNzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgY292ZXJ0eSBidWcgNjA6IGRvdWJsZSBjaGVjayB0aGF0IHN5c3RlbXMgaGFuZGxlIG5lZ2F0aXZlIHJldHVybnMgdG8gdW5zaWduZWQgdmFyaWFibGVzIHByb3Blcmx5CgoyMDA2LTA4LTMwIDA4OjM1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHByaW50aW5nIG9mIG9wYXF1ZSBmbG9hdCBhbmQgZG91YmxlIGNvbXBpbGUgd2FybmluZ3MKCjIwMDYtMDgtMzAgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6CgogICBTaW1wbGUgU0VUIHN1cHBvcnQgZm9yIHRoZSBOZXQtU05NUCBWQUNNIGV4dGVuc2lvbnMuCgoyMDA2LTA4LTMwIDA4OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIFBlcnNpc3RlbnQgc3RvcmFnZSBmb3IgTmV0LVNOTVAgVkFDTSBleHRlbnNpb24gYXV0aHR5cGVzLgoKMjAwNi0wOC0yOSAxNzo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBnZW5lcmljIElQdjYgc3RhY2sgZGV0ZWN0aW9uLCBlLmcuIGZvciBTb2xhcmlzCgoyMDA2LTA4LTI5IDA5OjA1ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dDoKCiAgIEZpeCBpbmNvbnNpc3RlbnQgbmFtaW5nLgoKMjAwNi0wOC0yOSAwNjo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBHdWFyZCBhZ2FpbnN0IG1pc3NpbmcgKG9yIGluY29tcGxldGUpIENQVSBoaXN0b3J5IHN0YXRzLgoKMjAwNi0wOC0yOSAwNjoxOSAgdGFuZGVycwoKICAgKiBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dDoKCiAgIGZpeCBzb21lIGJhc2ljIHNtaWxpbnQgY29tcGxhaW50cwoKMjAwNi0wOC0yOSAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5oLAogICAgIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgUHJvdmlzaW9uYWwgKHJlYWQtb25seSkgaW1wbGVtZW50YXRpb24gb2YgYSBNSUIgZm9yIHRoZSBOZXQtU05NUAogICBhY2Nlc3MgY29udHJvbCBleHRlbnNpb25zLgoKMjAwNi0wOC0yOSAwMzoxMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgR2V0LU5leHQgcHJvY2Vzc2luZyBkaWRuJ3QgaGFuZGxlIHVwZGF0aW5nIHRoZSBpbmRleCBsaXN0IGZvciBtdWx0aS1pbmRleGVkCiAgIHRhYmxlcyBwcm9wZXJseS4gIEl0IHdvcmtlZCBPSyBmb3IgdGhlIGZpcnN0IGNhbmRpZGF0ZSBmb3VuZCwgYnV0IHN1YnNlcXVlbnQKICAgKGJldHRlcikgY2FuZGlkYXRlcyBvbmx5IHVwZGF0ZWQgdGhlIGZpcnN0IGluZGV4IHZhbHVlLgogICAgIFRoaXMgY29kZSBpcyBzbGlnaHRseSBsZXNzIGVmZmljaWVudCwgYnV0IHdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwNi0wOC0yOSAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfbGludXguYywgdm1zdGF0X2xpbnV4LmgKOgoKICAgU2hpcCBvbGRlciB2bXN0YXQgaW1wbGVtZW50YXRpb24gY29kZSAtIGFsbG93IGFkbWlucyB0aGUgb3B0aW9uIG9mIHJldmVydGluZy4KCjIwMDYtMDgtMjkgMDM6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9ubGlzdC5jLCBjcHVfc3lzY3RsLmMKOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHNpbmdsZS1DUFUgc3lzdGVtcy4KICAgRG9uJ3QgY3JlYXRlIG5ldyBDUFUgZW50cmllcyB3aGVuIGxvYWRpbmcgc3RhdHMuCiAgIFtEb24ndCBjb21taXQgZnJvbSBtb3JlIHRoYW4gb25lIHdvcmtpbmcgc3lzdGVtLCBEYXZlIV0KCjIwMDYtMDgtMjkgMDI6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgS2VlcCBicmFjZXMgYmFsYW5jZWQgLSBpdCBtYWtlcyB0cmFjaW5nIGNvZGUgKnNvKiBtdWNoIGVhc2llciEKCjIwMDYtMDgtMjcgMTQ6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICB1ZHBUYWJsZSByZXF1aXJlcyAvZGV2L2ttZW0gYWNjZXNzIChyb290OnN5c3RlbSkgb24gQUlYCgoyMDA2LTA4LTI3IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIGhvc3QvaHJfcHJvYy5jLAogICAgIGhvc3QvaHJfcHJvYy5oOgoKICAgVXNlIEhBTCBDUFUgaW50ZXJmYWNlIGZvciBib3RoIFVDRC1zcGVjaWZpYyBhbmQgSG9zdFJlcyBwcm9jZXNzb3IgbW9kdWxlcy4KCjIwMDYtMDgtMjcgMTA6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgRW5zdXJlIHRoYXQgc29tZSBmb3JtIG9mIEhBTCBDUFUgbW9kdWxlIGlzIGluY2x1ZGVkIGZvciBhbGwgc3lzdGVtcy4KCjIwMDYtMDgtMjcgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9udWxsLmMsIGNwdV9udWxsLmg6CgogICBEdW1teSBIQUwgQ1BVIG1vZHVsZSwgZm9yIHN5c3RlbXMgdGhhdCBkb24ndCB1c2UgYW55IG9mIHRoZQogICBzdXBwb3J0ZWQgaW50ZXJmYWNlcy4KCjIwMDYtMDgtMjcgMDk6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBIYW5kbGUgaG9sZXMgaW4gdGhlIHRhYmxlIHByb3Blcmx5LgoKMjAwNi0wOC0yNyAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1LmMsIGNwdV9rZXJuZGF0YS5jLAogICAgIGNwdV9wZXJmc3RhdC5jLCBjcHVfcHN0YXQuYzoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBzaW5nbGUtQ1BVIHN5c3RlbXMuCiAgIERvbid0IGNyZWF0ZSBuZXcgQ1BVIGVudHJpZXMgd2hlbiBsb2FkaW5nIHN0YXRzLgoKMjAwNi0wOC0yNyAwOTo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgUmVwb3J0IHByb2Nlc3NvciBzdGF0dXMKCjIwMDYtMDgtMjYgMTY6MjMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG1ha2UgYXV0b2hlYWRlciBwcm90ZWN0IFBBQ0tBR0VfKiB2YXJpYWJsZXMKCjIwMDYtMDgtMjUgMTY6MjMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgU3YzdXNtY29uZmlnYWdlbnQsCiAgICAgU3Zhbnljb25maWc6CgogICBGaXggc211eHNvY2tldCBjb25maWcgdG8gcG9pbnQgdG8gL3NtdXhfc29ja2V0IGluc3RlYWQgb2YgL2Rldi9udWxsIHRvIGF2b2lkIHJlbW92aW5nIC9kZXYvbnVsbCB3aGVuIHJ1bm5pbmcgYXMgcm9vdC4KCjIwMDYtMDgtMjUgMDk6NDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ2xhcmlmeSBkaXNjdXNzaW9uIG9mIHZpZXcgbWFza3MuICBUaGFua3MgdG8gRG9taW5pcXVlIEJhc3RpZW4uCgoyMDA2LTA4LTI1IDA3OjIwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWxsb3cgZm9yIHdoaXRlc3BhY2UgaW4gUGVybCBjYyAoZS5nLiBvbiBJUklYIDYuNSkKCjIwMDYtMDgtMjUgMDY6NTUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgcHJvcGVybHkgY2FzdCB3aGVuIHByaW50aW5nIHBvaW50ZXJzCgoyMDA2LTA4LTI1IDA2OjM1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBuZXRzbm1wX3RyYXBkX2NoZWNrX2F1dGgoKSBvbmx5IHRha2VzIGEgc2luZ2xlIGFyZ3VtZW50CgoyMDA2LTA4LTI1IDA1OjEzICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeDogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgoyMDA2LTA4LTI1IDA0OjUxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguaDoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldHNubXBfdHJhcGRfY2hlY2tfYXV0aCgpCgoyMDA2LTA4LTI1IDA0OjQ2ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAjaW5jbHVkZSAibWliSUkvdmFjbV9jb25mLmgiIGZvciB2YWNtX3N0YW5kYXJkX3ZpZXdzCgoyMDA2LTA4LTI1IDA0OjM4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgcHJpbnQgb2lkIGFzIHVuc2lnbmVkIGxvbmcKCjIwMDYtMDgtMjUgMDI6NTcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIG1ha2Ugc3VyZSB3ZSBjYW4gZnVsZmlsbCBleHRlcm5hbCBsaWJyYXJ5IGRlcGVuZGVuY2llcwoKMjAwNi0wOC0yNSAwMjo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIHNubXBsaWIvY29udGFpbmVyLmMKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgICBzbm1wbGliL3N5c3RlbS5jOgoKICAgaW5pdGlhbGl6ZSB2YXJpYWJsZXMKCjIwMDYtMDgtMjUgMDI6MzMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgcHJvcGVyIHR5cGVzIGluIGZvcm1hdCBzdHJpbmcKCjIwMDYtMDgtMjUgMDE6NDkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgIi1VeCIgYmVmb3JlICItRHg9eCIgZm9yIGdjYyB0byBhdm9pZCBhbm5veWluZyBjb21waWxlciB3YXJuaW5ncwogICBvbiBwbGF0Zm9ybXMgdGhhdCBhbHJlYWR5IGRlZmluZSB4ICh0byAxKS4KCjIwMDYtMDgtMjQgMTc6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICB1c2UgbmV3IHNubXBfY3N0cmNhdAoKMjAwNi0wOC0yNCAxNzozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIEludHJvZHVjZSBzbm1wX2NzdHJjYXQgdGhhdCB0YWtlcyBhIChjaGFyICopIGFzIHRoZSBsYXN0IGFyZ3VtZW50LAogICBjYXN0cyBpdCB0byBhIChjb25zdCB1X2NoYXIgKikgYW5kIGNhbGxzIHNubXBfc3RyY2F0LiBTaW1wbGlmaWVzIGNvZGUKICAgYW5kIGZpeGVzIGEgKmxvdCogb2YgY29tcGlsZXIgd2FybmluZ3MuCgoyMDA2LTA4LTI0IDE2OjA0ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBzbm1wbGliL21kNS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICAtIHBvaW50ZXIgc2l6ZSBmaXhlcyBmcm9tIGRhcml4CiAgIC0gaW5pdGlhbGl6ZSB2YXJpYWJsZXMKICAgLSBwcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZwoKMjAwNi0wOC0yNCAxNTo0NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUKCjIwMDYtMDgtMjQgMTM6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDgtMjQgMTM6MjEgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIEhBVkVfUEVSTF9FVkFMX1BWIHVuZGVmIGZvciB3aG9ldmVyIGZvcmdvdCB0byBhZGQgaXQKCjIwMDYtMDgtMjQgMTM6MTkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIGNvbmZpZ19lcnJvciBhbmQgY29uZmlnX3dhcm5pbmcgZW1wdHkgbWFjcm9zCgoyMDA2LTA4LTI0IDA5OjE0ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcuCgoyMDA2LTA4LTI0IDA4OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEtlZXAgcHJpbnRpbmcgc29tZSBrbm93LXRvLWJlLXNtYWxsIHNpemVfdCB2YWx1ZXMgYXMgaW50ZWdlcnMsIGJ1dCBwcm9wZXJseQogICBjYXN0IHRoZW0gdG8gcXVpZXQgdGhlIGNvbXBpbGVyLgoKMjAwNi0wOC0yNCAwNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHVzZSBuZXcgaW50ZXJmYWNlX3N5c2N0bCBmb3IgT3BlbkJTRCAyLCBGcmVlQlNEIDQtNgoKMjAwNi0wOC0yNCAwNzozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9vcGVuYnNkLmMsCiAgICAgaW50ZXJmYWNlX3N5c2N0bC5jLCBpbnRlcmZhY2Vfc3lzY3RsLmg6CgogICByZW1vdmUgT1Mgc3BlY2lmaWMgZmlsZSBpbiBmYXZvciBvZiBtZXRob2Qgc3BlY2lmaWMgZmlsZXMKCjIwMDYtMDgtMjQgMDU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9rc3RhdC5jLCBjcHVfbmxpc3QuYwosIGNwdV9wc3RhdC5jLCBjcHVfc3lzY3RsLmM6CgogICBJbmNsdWRlIGRlc2NyaXB0aW9ucyBmb3IgaW5kaXZpZHVhbCBDUFUgZW50cmllcy4KCjIwMDYtMDgtMjQgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9rZXJuZGF0YS5oLAogICAgIGNwdV9rZXJuZGF0YS5jOgoKICAgSW1wbGVtZW50YXRpb24gZm9yIER5bml4IChhbmQgc2ltaWxhcikgc3lzdGVtcy4KCjIwMDYtMDgtMjQgMDU6NDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmM6CgogICBSZW1lbWJlciB0aGUgbnVtYmVyIG9mIENQVXMgZGV0ZWN0ZWQuCiAgIChROiB3aGF0IHRvIGRvIGlmIHRoaXMgY2hhbmdlcz8pCgoyMDA2LTA4LTIzIDE3OjMzICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nLiBGaXhlcyA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDA2LTA4LTIzIDE3OjEyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIEFDX1BST0dfRUdSRVAgYW5kIHVzZSAkRUdSRVAgaW5zdGVhZCBvZiBlZ3JlcAoKMjAwNi0wOC0yMyAxNjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmaXggc3RydWN0IHR5cGUgaW4gY2FzZQoKMjAwNi0wOC0yMyAxNjozNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA2LTA4LTIzIDE2OjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIGJhY2sgY2hlY2sgZm9yIHNlZAoKMjAwNi0wOC0yMyAxMzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgc2tpcCBpZkNvbm5lY3RvclByZXNlbnQvaWZMaW5rVXBEb3duVHJhcEVuYWJsZSBpZiBubyBkYXRhCgoyMDA2LTA4LTIzIDEyOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBjb3JyZWN0IHNjYWxlIHdoZW4gdXNpbmcgaWZTcGVlZCBhcyBpZkhpZ2hTcGVlZAoKMjAwNi0wOC0yMyAxMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgdXNlIGlmU3BlZWQgaWYgaWZIaWdoU3BlZWQ9PTAKCjIwMDYtMDgtMjMgMDg6NTMgIHRhbmRlcnMKCiAgICogc25tcGxpYi86IGNvbnRhaW5lci5jLCBjb250YWluZXJfYmluYXJ5X2FycmF5LmMsCiAgICAgZGF0YV9saXN0LmMsIGtleXRvb2xzLmMsIG1pYi5jLCBvaWRfc3Rhc2guYwosIHNjYXBpLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLAogICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYywgdGV4dF91dGlscy5jLAogICAgIHRvb2xzLmM6CgogICBDYXN0IGF3YXkgY29tcGlsZXIgd2FybmluZ3MvZXJyb3JzIGF0IGEgbG90IG9mIHBsYWNlcy4KCjIwMDYtMDgtMjMgMDY6MDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBhY3RpdmF0ZSBjcHUgSEFMIGNvZGUgZm9yIEFJWCA0LngKCjIwMDYtMDgtMjMgMDM6MjMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEb24ndCBjaGVjayB0d2ljZSBmb3Igc2VkLgoKMjAwNi0wOC0yMyAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBNb3JlIHBvcnRhYmxlIGhhbmRsaW5nIG9mIHN0cmluZyBhc3NpZ25tZW50cy4KICAgUmVtb3ZlIEMrKy1zdHlsZSBjb21tZW50cy4KCjIwMDYtMDgtMjMgMDM6MDcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggbW9yZSB3aGl0ZXNwYWNlIGlzc3VlcyBpbiBtaWIgbW9kdWxlIGNvbmZpZwoKMjAwNi0wOC0yMiAxNDo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIGhhcmR3YXJlL2NwdS5oOgoKICAgYWN0aXZhdGUgbWVtL2NwdSBIQUwgY29kZSBmb3IgQUlYCgoyMDA2LTA4LTIyIDA5OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmM6CgogICBVc2UgY29ycmVjdCBBUEkgY2FsbHMuCgoyMDA2LTA4LTIyIDA3OjAwICB0YW5kZXJzCgogICAqIFJFQURNRS50cnU2NDoKCiAgIFVwZGF0ZSBmb3IgNS40IGFuZCBlbWJlZGRlZCBQZXJsLgoKMjAwNi0wOC0yMiAwNjo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tzdGF0LmgsIGNwdV9wZXJmc3RhdC5oCiwgY3B1X3BzdGF0Lmg6CgogICBNaXNzaW5nIEhBTCBDUFUgQVBJLXNwZWNpZmljIGhlYWRlciBmaWxlcwoKMjAwNi0wOC0yMiAwNjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIEhhbmRsZSBjaGFuZ2UgaW50cm9kdWNlZCB3aXRoIE5ldEJTRCAzLjAuCiAgIHN5c2N0bCggS0VSTl9DUF9USU1FICkgbm93IHJldHVybnMgNjQtYml0IHZhbHVlcy4KCjIwMDYtMDgtMjIgMDU6MTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgQmUgY29uc2lzdGVudCBpbiB1c2Ugb2YgRXZlbnQtTUlCIG1vZHVsZSB0ZXJtaW5vbG9neS4KCjIwMDYtMDgtMjIgMDM6MzQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBJbXByb3ZlIHJvYnVzdG5lc3Mgb2YgdGhlIGVtYmVkZGVkIHBlcmwgY2hlY2tzLgoKMjAwNi0wOC0yMiAwMjoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENoYW5nZSAiI2lmIGZyZWVic2Q0IiB0byAiI2lmZGVmIGZyZWVic2Q0IiB0byBtYXRjaCBjdXJyZW50IC1EZnJlZWJzZDQ9ZnJlZWJzZDQuCgoyMDA2LTA4LTIyIDAyOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dydW4uYwosIG1pYklJL3JvdXRlX2hlYWRlcnMuaDoKCiAgIENoYW5nZSAiI2lmIHNvbGFyaXMyIiB0byAiI2lmZGVmIHNvbGFyaXMyIiB0byBtYXRjaCBjdXJyZW50IC1Ec29sYXJpczI9c29sYXJpczIuCgoyMDA2LTA4LTIxIDE3OjQ3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgIi1VIiBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQgd2l0aCBTdW4ncyBjYy4KCjIwMDYtMDgtMjEgMTc6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBQZXJsX2V2YWxfcHYgKHRoZSB1cHBlci1jYXNlIHZhcmlhbnQpIG5lZWRzIHRocmVlIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIHR3by4KCjIwMDYtMDgtMjEgMTc6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBZZXQgYW5vdGhlciBhdHRlbXB0IHRvIGZpeCB0aGUgUEFSVElBTFRBUkdFVE9TIChlLmcuIHNvbGFyaXMyKSBkZWZpbml0aW9ucy4KCjIwMDYtMDgtMjEgMTY6MzMgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZXBsYWNlbWVudCBmb3IgbmV3U1Z1digpIGJlY2F1c2UgcGVybCBkaWRuJ3QgaGF2ZSBpdCB1bnRpbCA1LjYuMAoKMjAwNi0wOC0yMSAxNTo0MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJld29yZGluZyBvZiBwZXJsIGNjIGNoZWNrIGVycm9ycy4KCjIwMDYtMDgtMjEgMTQ6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZSB0aGUgT1MgZGVmaW5lIHRvIHJlZGVmaW5lIGFzIHRoZSBzYW1lIG5hbWUKCjIwMDYtMDgtMjEgMDk6NDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBhZGQgcGVybCBjYyBjaGVja3MgZm9yIGVtYmVkZGVkIHBlcmwKICAgLSBpbnRyb2R1Y2UgLS1kaXNhYmxlLXBlcmwtY2MtY2hlY2tzIHRvIGRpc2FibGUgdGhlc2UgdGVzdHMKCjIwMDYtMDgtMjEgMDk6NDIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlLmluCgoyMDA2LTA4LTIxIDAzOjUzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBmaXggY29uZmlnX2FyY2hfcmVxdWlyZQogICAtIHJlbW92ZSBvYnNvbGV0ZSBBQ19FWEVFWFQKCjIwMDYtMDgtMjEgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgQWN0aXZlIEhBTCBDUFUgbW9kdWxlIGZvciAqQlNEIHN5c3RlbXMuCgoyMDA2LTA4LTIxIDAyOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUmV0cmlldmUgYW5kIHJlcG9ydCBtZW1vcnktcmVsYXRlZCBzdGF0aXN0aWNzLgogICAoU3RpbGwgbm90IGNvbnZpbmNlZCB0aGVzZSByZWFsbHkgYmVsb25nIGhlcmUuLi4uKQoKMjAwNi0wOC0yMSAwMjoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFJldHJpZXZlIENQVSBzdGF0cyBjb3JyZWN0bHkuCgoyMDA2LTA4LTE4IDE1OjI4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHBlcmwgLVY6Y2MKCjIwMDYtMDgtMTggMDk6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdC5oOgoKICAgVXNlIHRoZSBIQUwgQ1BVIG1vZHVsZXMgdG8gaW1wbGVtZW50IFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMuCiAgIEluaXRpYWxseSBvbmx5IHVzZWQgYnkgTGludXggc3lzdGVtcywgYnV0IHRoaXMgY29kZSBpcyBub3cKICAgZnVuZGFtZW50YWxseSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQuCgoyMDA2LTA4LTE4IDA4OjU4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oOgoKICAgQWRkaXRpb25hbCBmaWVsZHMgZm9yIENQVS1yZWxhdGVkIChzb3J0LW9mKSBoaXN0b3J5LCBldGMuCgoyMDA2LTA4LTE4IDA4OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tlcm5kYXRhLmMsCiAgICAgY3B1X2tzdGF0LmMsIGNwdV9saW51eC5jLCBjcHVfbmxpc3QuYywKICAgICBjcHVfbmxpc3QuaCwgY3B1X3BlcmZzdGF0LmMsIGNwdV9wc3RhdC5jLAogICAgIGNwdV9zeXNjdGwuYywgY3B1X3N5c2N0bC5oOgoKICAgUHJvdmlzaW9uYWwgaGFyZHdhcmUtYWJzdHJhY3Rpb24gbW9kdWxlcyBmb3IgYXNzb3J0ZWQgQ1BVIHN0YXRpc3RpY3MuCiAgIChpbmNsdWRpbmcgbXVsdGktQ1BVIGluZm9ybWF0aW9uKQoKMjAwNi0wOC0xOCAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICB5ZXQgbW9yZSBwb3RlbnRpYWwgcGVybCBmaXhlcwoKMjAwNi0wOC0xOCAwODozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBtb3JlIHBvdGVudGlhbCBwZXJsIGZpeGVzCgoyMDA2LTA4LTE4IDA3OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdXNlICJwZXJsIC1WOmNjIiB0byBmaW5kIFBlcmwncyBjYwoKMjAwNi0wOC0xOCAwNzozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjb21tZW50aW5nIGFuZCBhIGJpdCBvZiBzcGFjaW5nIGluIHRoZSBtb2R1bGUgbGlzdCBjb2RlCgoyMDA2LTA4LTE3IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWNjb25maWcuaCwKICAgICBhZ2VudC9zbm1wX3BlcmwuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBtYWtlIGNvbmZpZ3VyZSBiYWlsIHdoZW4gZW1iZWRkZWQgcGVybCBmdW5jdGlvbiBjYW4gbm90IGJlIGZvdW5kIDsgZml4IHRoZSBmYWN0IHRoYXQgMyBmdW5jdGlvbnMgYXJlIG5lZWRlZCBub3QgMiBhbmQgd29yayBhcm91bmQgYXV0b2NvbmYgdXBwZXItY2FzZSBvbmx5IGRlZmluZXMgdGhhdCBjYXVzZXMgdGhlIGV4aXN0aW5nIGJyb2tlbi1wZXJsIHByb2JsZW07IE5FV1MgLSBwZXJsOiBmaXggdGhlICdicm9rZW4gcGVybCcgaXNzdWUgd2l0aCBlbWJlZGRlZCBwZXJsCgoyMDA2LTA4LTE3IDE2OjE0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYnNkaTMuaCwgYnNkaTQuaCwgZGFyd2luLmgKLCBkYXJ3aW43LmgsIGR5bml4LmgsIGZyZWVic2QzLmgsCiAgICAgZnJlZWJzZDQuaCwgZnJlZWJzZDUuaCwgZnJlZWJzZDYuaCwgZ2VuZXJpYy5oCiwgaHB1eC5oLCBtaW5ndzMybXN2Yy5oLCBuZXRic2QuaCwKICAgICBvcGVuYnNkLmgsIG9zZjUuaDoKCiAgICIjZGVmaW5lIHggeCIgaW5zdGVhZCBvZiAiI2RlZmluZSB4IDEiIGZvciBhbGwgcGxhdGZvcm0gbmFtZXMKCjIwMDYtMDgtMTcgMDg6NDQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE0OTogcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZQoKMjAwNi0wOC0xNyAwODo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgRHJvcCBEaXNNYW4gRXZlbnQgTUlCIHJlLXdyaXRlIHdhcm5pbmcuCgoyMDA2LTA4LTE3IDA4OjE2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNTk6IHBvdGVudGlhbCByZXNvdXJjZSBsZWFrIGFmdGVyIG1hbGxvYyBmYWlsdXJlCgoyMDA2LTA4LTE3IDA4OjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCiwgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgQlVHOiBDb3Zlcml0eSAjNTY6IGRvbid0IGNvbnRpbnVlIGlmIG1hbGxvYyBmYWlscwoKMjAwNi0wOC0xNyAwNzo1MCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIEJVRzogQ292ZXJpdHkgIzU2OiBkb24ndCBjb250aW51ZSBhZnRlciBmYWlsZWQgbWFsbG9jCgoyMDA2LTA4LTE3IDA3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE3NDogZG9uJ3QgcmV0dXJuIHB0ciB0byBmcmVlZCBtZW1vcnkKCjIwMDYtMDgtMTcgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgRml4IHZhcmlhYmxlIHR5cGVzIHRvIG1hdGNoIHBhcmFtZXRlciB1c2FnZS4gIFNwb3R0ZWQgYnkgU2NvdHQgTW95bmVzLgoKMjAwNi0wOC0xNiAxOToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaXNzdWUgd2l0aCBPUyBuYW1lIGJlaW5nIGRlZmluZWQgYXMgMQoKMjAwNi0wOC0xNiAxNjowOCAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBmb3IgcmV3b3JrZWQgU29sYXJpcyBoZWFkZXJzCgoyMDA2LTA4LTE1IDIyOjU0ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXBkLjguZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgZml4IHR5cG8KCjIwMDYtMDgtMTUgMTQ6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIEZpeCBlbWFpbCBhZGRyZXNzCgoyMDA2LTA4LTE1IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNsZWFuIHVwIHRoZSB0bXAgY3JlYXRlZCBmaWxlCgoyMDA2LTA4LTE1IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeGVkIGNvbmZpZ19hcmNoX3JlcXVpcmUKCjIwMDYtMDgtMTUgMDc6MjYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGZvcmNlICIjdW5kZWYgSUZORVRfTkVFRFNfS0VSTkVMIiBvbiBGcmVlQlNEIDUueCBvbmx5CgoyMDA2LTA4LTE1IDA3OjA3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogc29sYXJpczIuMTAuaCwgc29sYXJpczIuNy5oCiwgc29sYXJpczIuOC5oLCBzb2xhcmlzMi45Lmg6CgogICByZW1vdmUgb2Jzb2xldGUgaGVhZGVyIGZpbGVzCgoyMDA2LTA4LTE1IDA1OjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgYXZvaWQgY29tbWVudCBpbnNpZGUgY29tbWVudAoKMjAwNi0wOC0xNSAwMTo0OCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKMjAwNi0wOC0xNCAyMDoyNSAgaGFyZGFrZXIKCiAgICogYWNpbmNsdWRlLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gQ2xlYW5lZCB1cCB0aGUgZGVidWdnaW5nIGNvZGUgZm9yIHRoZSBtb2R1bGUgc2VjdGlvbgogICAgIC0gQWRkZWQgYSBBQ19NU0dfTU9EVUxFX0RCRyBtYWNybyB0byBjbGVhbiB1cCB0aGUgemlsbGlvbnMgb2YgaWZzCiAgIC0gUmV3b3JrZWQgdGhlIG00IHF1b3Rpbmcgb2YgdGhlIHNlY3Rpb24gdG8gb25seSBjaGFuZ2VxdW90ZSB3aGVuCiAgICAgYWN0dWFsbHkgbmVlZGVkLCByYXRoZXIgdGhhbiBkb2luZyB0aGUgcmV2ZXJzZSBhbmQgaGF2aW5nIHRvIGNoYW5nZQogICAgIHRvICJub3JtYWwiIHF1b3Rpbmcgd2hlbiBhIG1hY3JvIGNhbGwgaXMgbmVlZGVkLgoKMjAwNi0wOC0xNCAxNjoyOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGZyZWVic2Q0LmgsIGZyZWVic2Q1LmgsCiAgICAgZnJlZWJzZDYuaDoKCiAgIHNpbXBsaWZ5L2FnZ3JlZ2F0ZSBGcmVlQlNEIGhlYWRlcnMKCjIwMDYtMDgtMTQgMTU6NTcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBzb2xhcmlzLmgsIHNvbGFyaXMyLjMuaCwKICAgICBzb2xhcmlzMi40LmgsIHNvbGFyaXMyLjUuaCwgc29sYXJpczIuNi5oOgoKICAgUmV3b3JrIG9mIGhlYWRlciBmaWxlcyBmb3IgU29sYXJpcy4gc29sYXJpcy5oIG5vdyBjb3ZlcnMgU29sYXJpcyA3IGFuZCB1cCAoaW5jbHVkaW5nIGFueSBmdXR1cmUgdmVyc2lvbnMpIHdoaWxlIHNvbGFyaXMyLlszLTZdLmggY292ZXJzIGxlZ2FjeSBzdXBwb3J0LgoKMjAwNi0wOC0xNCAxMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlCgoyMDA2LTA4LTE0IDEzOjI0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgdXBkYXRlZCBVQ0QgcmVmZXJlbmNlcyB0byBOZXQtU05NUCwgdXBkYXRlZCBjb250YWN0IGluZm8KCjIwMDYtMDgtMTQgMTM6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIE5ldyBjb25maWd1cmUgYmFzZWQgZGVmYXVsdF9tb2R1bGVzLmggZmlsZSB0byBkZWNpZGUgd2hpY2ggbW9kdWxlcyB0bwogICBidWlsZCBpbnRvIHRoZSBhZ2VudC4KICAgTkVXUzogc25tcGQgLS0gQWdlbnQgYnVpbGRzIGRlZmF1bHQgbW9kdWxlIGxpc3QgZnJvbSBhIGRlZmF1bHRfbWlicy5oIHJhdGhlciB0aGFuIGEgaGFyZCBjb2RlZCBjb25maWd1cmUgbGlzdAoKMjAwNi0wOC0xNCAxMzoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHVwZGF0ZWQgcmVmZXJlbmNlcyB0byBVQ0QgdG8gTmV0LVNOTVAsIHVwZGF0ZWQgY29udGFjdCBpbmZvCgoyMDA2LTA4LTExIDE4OjE1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgICBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgSW50cm9kdWNlIC0td2l0aC1hZ2VudHgtc29ja2V0PUZJTEUgY29uZmlndXJlIG9wdGlvbi4gSGVscHMgcGFja2FnZXJzIHRvICpwcm9wZXJseSogY3VzdG9taXplIHRoYXQgcGF0aCAobm90IGVuY291cmFnZWQsIGJ1dCBxdWl0ZSBjb21tb24pLgoKMjAwNi0wOC0xMSAwNzo1NiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdnNucHJpbnRmKCkgbmVlZHMgdG8gYmUgZm9sbG93ZWQgYnkgdmFfZW5kCgoyMDA2LTA4LTExIDA2OjQ1ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBkb24ndCBjYWxsIHZhX2VuZCgpIGlmIHdlJ3ZlIG9ubHkgbWVtY3B5KCllZAoKMjAwNi0wOC0xMSAwMjo1OSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgc2ltcGxlIGF0dGVtcHQgdG8gZml4IHJlY2VudGx5IGludHJvZHVjZWQgdmFfY29weSgpIGJ1aWxkIGlzc3VlcwoKMjAwNi0wOC0xMCAwNzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVwb3J0IGEgZmFpbHVyZSB0byBidWlsZCB0aGUgUERVLiAgKFJlZiBCdWcgIzEzOTkzNzApCgoyMDA2LTA4LTEwIDAxOjU4ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgV2l0aCBmZWFyIGFuZCB0cmVwaWRhdGlvbiwgcmVtb3ZlIHRoZSB3YXJuaW5ncyBhZ2FpbnN0IHVzZSBvZiBBZ2VudFguCiAgIERvb21lZCwgd2UncmUgYWFhYWxsIGRvb29vb21lZC4uLi4KCjIwMDYtMDgtMDkgMTA6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvTUFOSUZFU1Q6CgogICB1cGRhdGVkIHRvIGNvcnJlY3QgbGlzdAoKMjAwNi0wOC0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGFub3RoZXIgcGFzcyBhdCBwZXJsL0NQQU4gc3BlY2lmaWMgdmVyc2lvbmluZyBjaGVja3MKCjIwMDYtMDgtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBhbGxvdyBmb3IgdmVyeSBtaW5vciBkZXZpYXRpb25zIGluIHBlcmwgQ1BBTiBzb3VyY2UgdmVyc2lvbnMgZnJvbSBuZXQtc25tcCB2ZXJzaW9ucwoKMjAwNi0wOC0wOSAwOTo0NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIG1ham9yIHVwZGF0ZSBmb3IgQ1BBTiByZWxlYXNlCgoyMDA2LTA4LTA5IDA5OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICBtYXRjaCA1LjMgdHJlZSBmb3Igb3JkZXJpbmcKCjIwMDYtMDgtMDkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG5lZWRlZCB0ZXN0aW5nIGZpbGVzCgoyMDA2LTA4LTA4IDE3OjUxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYnVpbGQgZml4CgoyMDA2LTA4LTA4IDE1OjE2ICB0YW5kZXJzCgogICAqIGFjaW5jbHVkZS5tNDoKCiAgIE1vdmUgb3VyIG93biBtNCBtYWNyb3MgZnJvbSBhY2xvY2FsLm00IGludG8gYWNpbmNsdWRlLm00IGFuZCBwcm9wZXJseSBxdW90ZSB0aGVtLiBGb2xsb3dzIGxpYnRvb2wvYXV0b21ha2UgcmVjb21tZW5kYXRpb25zIGFuZCBhbGxvd3MgdG8gcmVnZW5lcmF0ZSBhY2xvY2FsLm00IChjb250YWluaW5nIGxpYnRvb2wubTQpIGJ5IGNhbGxpbmcgYWNsb2NhbCB3aGljaCBJJ3ZlIGp1c3QgZG9uZS4gSW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoICMyMS4KCjIwMDYtMDgtMDggMTU6MDcgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgbWlub3IgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDgtMDggMTU6MDIgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNDoKCiAgIE1vdmUgb3VyIG93biBtNCBtYWNyb3MgZnJvbSBhY2xvY2FsLm00IGludG8gYWNpbmNsdWRlLm00IGFuZCBwcm9wZXJseSBxdW90ZSB0aGVtLiBGb2xsb3dzIGxpYnRvb2wvYXV0b21ha2UgcmVjb21tZW5kYXRpb25zIGFuZCBhbGxvd3MgdG8gcmVnZW5lcmF0ZSBhY2xvY2FsLm00IChjb250YWluaW5nIGxpYnRvb2wubTQpIGJ5IGNhbGxpbmcgYWNsb2NhbCB3aGljaCBJJ3ZlIGp1c3QgZG9uZS4gSW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoICMyMS5hY2luY2x1ZGUubTQKCjIwMDYtMDgtMDggMDY6MTggIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA4LTA4IDA2OjE4ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgSEFWRV9MSUJOTSBpbiBvcmRlciB0byBtYWtlIGF1dG9oZWFkZXIgd29yayBhZ2FpbgoKMjAwNi0wOC0wNyAxNTo1MyAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZQosIE5FV1MsIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgdXBkYXRlIHRvIDEuNS4yMiAoZnJvbSAxLjQpLiBTdXBlcnNlZGVzIHBhdGNoIDE0OTY5NDUgYW5kIGZpeGVzIGJ1ZyAxNTE4MTE3IChwcm9iYWJseSBwbHVzIGEgZmV3IG1vcmUpLgoKMjAwNi0wOC0wNyAwODozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWxyZWFkeSByYW5kb21pemUgdGhlIGluaXRpYWwgcG9ydCB3ZSB0cnkuIExvd2VycyB0aGUgY2hhbmNlIG9mIGNvbGxpc2lvbnMgaWYgbXVsdGlwbGUgdGVzdCBzdWl0ZXMgcnVuIGluIHBhcmFsbGVsLgoKMjAwNi0wOC0wNyAwNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZXhwbGljaXQgY2FzdCB0byBrZWVwIGNvbXBpbGVyIGhhcHB5CgoyMDA2LTA4LTA3IDAzOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCB0eXBvLiAgU3BvdHRlZCBieSBMZW8gTGVpCgoyMDA2LTA4LTA1IDE3OjAxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N3cnVuLmM6CgogICBCdWlsZCBmaXhlcyBmb3IgQUlYIEhPU1QtUkVTT1VSQ0VTLU1JQiBzdXBwb3J0CgoyMDA2LTA4LTA1IDEyOjE3ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBlcmwuc28gdG8gTERfUlVOX1BBVEgKCjIwMDYtMDgtMDQgMTU6MzYgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRTQ1MCByZXBvcnRpbmcgUFMgdGVtcHMgYXMgdm9sdGFnZSwgb3RoZXIgcHJvYmxlbXMKCjIwMDYtMDgtMDMgMTg6MDIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBvdmVycmlkZSBMRF9SVU5fUEFUSCBmb3IgdGhlIHBlcmwgbW9kdWxlcyB0byBhdm9pZCBkZXBlbmRlbmNpZXMgb24gdGhlIGJ1aWxkIGRpcmVjdG9yeSAocGF0Y2ggZnJvbSBkYXJpeCkKCjIwMDYtMDgtMDEgMDQ6NDMgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG9uZSBtb3JlIGNvcnJlY3Rpb24KCjIwMDYtMDctMzEgMjI6NTIgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMDctMzEgMTY6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIGZpeCBhIHRlc3QgdGhhdCBtYXkgc3VjY2VlZCB3aGVuIGl0IHNob3VsZG4ndAoKMjAwNi0wNy0zMSAxNjowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZ2V0dGFibGUgcGF0Y2gKCjIwMDYtMDctMzEgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IGdldGJ1bGsgYXQgZW5kLW9mLW1pYnZpZXcgYm91bmRhcmllcwoKMjAwNi0wNy0zMSAxNTo0NCAgaGFyZGFrZXIKCiAgICogbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIHVwZGF0ZSBhZ2FpbiB0byBtb3N0IHJlY2VudAoKMjAwNi0wNy0zMSAxNTo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIHRoZSBsYXRlc3QgdmVyc2lvbi4KCjIwMDYtMDctMzEgMTU6NDAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB2ZXJzaW9uIHRhZyBkb3h5Z2VuIGZpbGVzCgoyMDA2LTA3LTMxIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0wNy0zMSAxMzozMSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBzbm1wdHJhcGQgYXV0aG9yaXphdGlvbiB1bmNvbmRpdGlvbmFsbHkgb2YgdXNpbmcgQWdlbnRYIChmaXhlcyBidWcgMTUyNzY2MSkKCjIwMDYtMDctMzEgMDc6MjUgIG1hcnoKCiAgICogZG9jL3JmYy86IGFnZW50eC9yZmMyNzQxLnR4dCwgbWlzYy9yZmMzNTEyLnR4dCwKICAgICBtaXNjL3JmYzM1ODQudHh0LCBzbWlWMi9yZmMyNTc4LnR4dCwKICAgICBzbWlWMi9yZmMyNTc5LmVycmF0YSwgc21pVjIvcmZjMjU3OS5lcnJhdGF+LAogICAgIHNtaVYyL3JmYzI1NzkudHh0LCBzbWlWMi9yZmMyNTgwLnR4dCwKICAgICBzbm1wVjEvcmZjMTE1NS50eHQsIHNubXBWMS9yZmMxMTU3LnR4dCwKICAgICBzbm1wVjEvcmZjMTIxMi50eHQsIHNubXBWMS9yZmMxMjEzLnR4dCwKICAgICBzbm1wVjIvcmZjMTkwMS50eHQsIHNubXBWMi9yZmMxOTAyLnR4dCwKICAgICBzbm1wVjIvcmZjMTkwMy50eHQsIHNubXBWMi9yZmMxOTA0LnR4dCwKICAgICBzbm1wVjIvcmZjMTkwNS50eHQsIHNubXBWMi9yZmMxOTA2LnR4dCwKICAgICBzbm1wVjIvcmZjMTkwNy50eHQsIHNubXBWMi9yZmMxOTA4LnR4dCwKICAgICBzbm1wVjIvcmZjMjA4OS50eHQsIHNubXBWMy9yZmMzNDEwLmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxMC50eHQsIHNubXBWMy9yZmMzNDExLnR4dCwKICAgICBzbm1wVjMvcmZjMzQxMi50eHQsIHNubXBWMy9yZmMzNDEzLmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxMy50eHQsIHNubXBWMy9yZmMzNDE0LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxNC50eHQsIHNubXBWMy9yZmMzNDE1LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxNS50eHQsIHNubXBWMy9yZmMzNDE2LnR4dCwKICAgICBzbm1wVjMvcmZjMzQxNy50eHQsIHNubXBWMy9yZmMzNDE4LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxOC50eHQ6CgogICBhZGRpbmcgcmZjcyBhbmQgZXJyYXRhIHRvIGRpc3RyaWJ1dGlvbgoKMjAwNi0wNy0zMSAwNTo0MyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBEb24ndCBjYXRjaCAiLi4uIHNubXBuZXRzdGF0IGZpbmRzIC4uLiIgKHRlc3QgNTgpIGFzIGFuIGVycm9yLgoKMjAwNi0wNy0zMCAxNzoyOCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDYXRjaCAiUGVybWlzc2lvbiBkZW5pZWQiIGVycm9ycywgZS5nLiBkdXJpbmcgIm1ha2UgaW5zdGFsbCIuCgoyMDA2LTA3LTMwIDE2OjA4ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNhdGNoICJDYW4ndCBmaW5kIC4uLiIgZXJyb3JzLCBlLmcuIGZyb20gbGQKCjIwMDYtMDctMzAgMTU6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHBhc3MgTERGTEFHUyB0byBhbGxvdyBmb3Igbm9uLXN0YW5kYXJkIGxpYmNyeXB0byBsb2NhdGlvbgoKMjAwNi0wNy0yOSAxNjo1OCAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIChjb3JyZWN0bHkpIG1ha2UgdXNlIG9mIHJlY2VudGx5IGludHJvZHVjZWQgU05NUF9TVFJPUk5VTEwoeCkKCjIwMDYtMDctMjkgMTY6MTggIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBtYWtlIHVzZSBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIFNOTVBfU1RST1JOVUxMKHgpCgoyMDA2LTA3LTI4IDA1OjIzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFN1cHBvcnQgc2V0dGluZyB0aGUgcGVyc2lzdGVudCBtYXNrIHZpYSBjb25maWd1cmUuICAoYmFzZWQgb24gUGF0Y2ggIzE0MzczODUpCgoyMDA2LTA3LTI4IDA0OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgJy1hcy1uZWVkZWQnIHN1cHBvcnQgZm9yIGxpbmtpbmcgbGlicmFyaWVzLiAgKFBhdGNoZXMgIzEzOTg4NzMgJiAxNDkzNTIyKQoKMjAwNi0wNy0yOCAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEp1bWJvIHBhdGNoIGZvciBpbXByb3ZlZCBBSVggNS54IHN1cHBvcnQuICAoUGF0Y2ggIzE0ODYzMDcpCiAgIE5vdGUgdGhhdCB0aGUgbWVtb3J5LXJlbGF0ZWQgcHJvY2Vzc2luZyAoaG9zdC9ocl9mc3RvcmFnZS5jKQogICBpcyBub3cgbW9zdGx5IGhhbmRsZWQgYnkgaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYwoKMjAwNi0wNy0yNyAxMjo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBwYXRjaCBmcm9tIEp1bGllbiBQaW5vbiB0byBmaXggYSBmZXcgdGttaWIgcHJvYmxlbXMKCjIwMDYtMDctMjcgMDg6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgU3VwcG9ydCBmb3IgSEZTIHN5c3RlbXMsIHBsdXMgTkZTIGZpeGVzIGZvciBEYXJ3aW4uICAoUGF0Y2ggIzE1MjAyODkpCgoyMDA2LTA3LTI3IDA2OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFByZXZlbnQgcG90ZW50aWFsIGNyYXNoIGluIERhcndpbi4gIChQYXRjaCAjMTUyMDI4NikKCjIwMDYtMDctMjcgMDY6MTcgIGR0czEyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgU3VwcG9ydCAnLS13aXRob3V0LWttZW0tdXNhZ2UnIG9uIG5vbi1MaW51eCBzeXN0ZW1zLiAgKFBhdGNoICMxNTIwMjc4KQoKMjAwNi0wNy0yNyAwNToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluY2x1ZGUgJ3BrY3MnIGluIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGNvbXBpbGUuICAoUGF0Y2ggIzE1MTQ4NjcpCgoyMDA2LTA3LTI3IDA1OjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgQWNjZXB0IC1aIDAgdmFsdWVzIGZvciBlbmdpbmVCb290L2VuZ2luZVRpbWUuICAoUGF0Y2ggIzE1MTAwMzIpCgoyMDA2LTA3LTI3IDA0OjM3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgU3VwcG9ydCBydW5uaW5nIHRyYXAgcmVjZWl2ZXIgYXMgbm9uLXJvb3QgdXNlci9ncm91cC4gIChQYXRjaCAjMTQ5NzQ2NykKCjIwMDYtMDctMjcgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEF0dGVtcHQgdG8gdXNlIHRoZSBtb3N0IHVwLXRvLWRhdGUgc3lzY3RsIEFQSXMuICAoUGF0Y2ggIzE0ODIxNjkpCgoyMDA2LTA3LTI2IDA4OjU4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYsCiAgICAgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgR2VuZXJhdGUgcHJvcGVyIGNvZGUgZm9yIG5vbi1pbnRlZ2VyIHZhbHVlIG9iamVjdHMsIGFuZCBkZXRlcm1pbmUKICAgdGhlIGZpcnN0IGFuZCBsYXN0IGFjY2Vzc2libGUgY29sdW1uIG9iamVjdHMuICAoUGF0Y2ggIzE0Mjc3MTIpCgogICBROiBJcyBpdCB3b3J0aCBwdWxsaW5nIHNvbWUgb2YgdGhpcyBjb2RlIG91dCBpbnRvIGEgc2VwYXJhdGUgbWliMmMKICAgICAgdXRpbGl0eSBmaWxlLCBzaW5jZSBtdWNoIG9mIHRoZSBwcm9jZXNzaW5nIGlzIGVmZmVjdGl2ZWx5IGlkZW50aWNhbAogICAgICBpbiBhbGwgdGhyZWUgY2FzZXM/CgoyMDA2LTA3LTI2IDA0OjU2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSGFuZGxlIGxvbmcgKGR5bmFtaWMtYnVmZmVyZWQpIG1lc3NhZ2VzIGNvcnJlY3RseS4gIChCdWcgIzE1MTYwNDUpCgoyMDA2LTA3LTI2IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBFbnN1cmUgdGhlIHNlY01vZGVsIGlzIGluaXRpYWxpc2VkIGZvciBTTk1QdjMgbm90aWZpY2F0aW9ucy4gKEJ1ZyAjMTUxNzQ1NCkKCjIwMDYtMDctMjYgMDQ6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE9ubHkgc29ydCByZWxvY2F0YWJsZSBleHRlbnNpb24gZW50cmllcy4gIFRob3NlIGluIHRoZSBtYWluIGV4dFRhYmxlCiAgIGRvbid0IGhhdmUgYW4gT0lEIHRvIHNvcnQgb24sIHNvIGF0dGVtcHRpbmcgdG8gZG8gc28gbWF5IHNjcmFtYmxlCiAgIHRoZW0gaW50byBhIHJhbmRvbSBvcmRlci4gIChCdWcgIzE1MDY3MDcpCgoyMDA2LTA3LTI1IDA4OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5oLCBocl9uZXR3b3JrLmgsCiAgICAgaHJfb3RoZXIuaCwgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmgsCiAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmg6CgogICBJbmRpY2F0ZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBIb3N0UmVzIG1vZHVsZXMuICAoQnVnICMxNTA1MzI1KQoKMjAwNi0wNy0yNSAwODoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBFbnN1cmUgdGhhdCBJUCBBZGRyZXNzIHZhbHVlcyBhcmUgcmVwb3J0ZWQgYXMgNC1vY3RldAogICB2YWx1ZXMgb24gNjQtYml0IGFyY2hpdGVjdHVyZXMuICAoQnVnICMxNTA0NTAxKQoKMjAwNi0wNy0yNSAwNjo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEhhbmRsZSBtYWxmb3JtZWQgRGlzcGxheSBIaW50cyBzZW5zaWJseSwgcmF0aGVyIHRoYW4KICAgZ29pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLiAgKEJ1ZyAjMTQ1OTY2NSkKCjIwMDYtMDctMjUgMDU6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIERvbid0IGFzc3VtZSB0aGF0IGFsbCByZXF1ZXN0cyBhcmUgbmVjZXNzYXJpbHkgdmFsaWQuIChCdWcgIzE0NDUxMTYpCgoyMDA2LTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgdGhlIGRlZmluZWQgZGVmYXVsdCBwb3J0IChpZiBzcGVjaWZpZWQpIGZvciBudW1lcmljIElQdjYKICAgYWRkcmVzc2VzLCByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIFNOTVBfUE9SVC4gIChCdWcgIzE0NDUwODkpCgoyMDA2LTA3LTI1IDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERvbid0IGNob2tlIG9uIG1pc3NpbmcgbGFiZWxzIChCdWcgIzE0Mjk0NjkpCgoyMDA2LTA3LTI1IDAyOjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbmNsdWRlIG1pc3NpbmcgZmxhZ3MgcGFyYW1ldGVyIChCdWcgIzE0MjI3MDgpCgoyMDA2LTA3LTI1IDAxOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgYnJva2VuIGFzc2VydGlvbiAoQnVnICMxMzk5MzcwKQoKMjAwNi0wNy0yNSAwMToxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB2My5jOgoKICAgUmUtZml4IHVuc2lnbmVkIGNvbXBhcmlzb25zIGFnYWluc3QgMCAoQnVnICMxMzk3ODkxKQogICBpbmNsdWRpbmcgZml4IGZvciB0ZXN0ICMyNAoKMjAwNi0wNy0yNSAwMTowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRml4IHNpZ25lZG5lc3Mgb2YgcmV0dXJuIHZhbHVlcyAoQnVnICMxMzk3OTA2KQoKMjAwNi0wNy0xOCAwNzowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmY6CgogICBTTk1QX1RZUEVERUZfTUFMTE9DIC0+IFNOTVBfTUFMTE9DX1RZUEVERUYKCjIwMDYtMDctMTMgMTQ6MzAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBuZXdzIHVwZGF0ZSBmb3IgcmVjZW50IGZlYXR1cmVzCgoyMDA2LTA3LTEzIDA4OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNhbGxiYWNrIHN1cHBvcnQgZm9yIGdldHRhYmxlKCkuCiAgICAgLSBub3QgZXh0ZW5zaXZlbHkgd2VsbCB0ZXN0ZWQsIGJ1dCBpdCBkb2VzIHdvcmsKCjIwMDYtMDctMTIgMDI6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IGlmSW5PY3RldHMgc3RhdGlzdGljcyBvbiBTb2xhcmlzIChwYXRjaCAxNTIwNjAzIGZyb20gSm9obiBHcmVlbikKCjIwMDYtMDctMDcgMTU6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdHlwbyBmaXgKCjIwMDYtMDctMDcgMTQ6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRGF2ZSdzIHBhdGNoIHRvIHJlbW92ZSBob3N0IG1pYiBzdXBwb3J0IGZvciB3aW5kb3dzIGJ5IGRlZmF1bHQKCjIwMDYtMDctMDcgMTQ6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIERhdmUncyBwYXRjaCBmb3IgY29tcGlsYXRpb24gZml4ZXMgZm9yIHdpbmRvd3MKCjIwMDYtMDctMDcgMTQ6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIE1hdGhldyBCaWVsZWplc2tpIHRvIGZyZWUgdXNlciBsaXN0IGFuZCBlbmdpbmUgdGltZSBjYWNoZSBhdCBzaHV0ZG93bgoKMjAwNi0wNy0wNyAxNDozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGZpeCBwb3NzYmlsZSBudWxsIGRlcmVmZW5jZSwgbm90ZWQgb24gY29kZXJzCgoyMDA2LTA3LTA2IDE1OjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgYWRqdXN0IE9JRCBmb3IgU29sYXJpcyBzd2FwIHNwYWNlIHNpemUKCjIwMDYtMDctMDYgMTU6MDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGFzc2lnbm1lbnQgaW4gcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXgoKSBmb3IgQVNOX0lQQUREUkVTUwoKMjAwNi0wNy0wNSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgLSBhZGQgd2FybmluZyBjb21tZW50IGZvciBkZXByZWNhdGVkIG9iamVjdHMKICAgLSBzaG9ydGVuIHNjYWxhciBub2RlIGNvbW1lbnRzIGJ5IGEgbGluZQogICAtIHNob3J0ZW4gY29sdW1uIG5vZGUgY29tbWVudHMKCjIwMDYtMDctMDUgMTQ6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgdW5zaWduZWQgdG8gYXNudHlwZXMKCjIwMDYtMDctMDUgMTQ6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIGFkZCAqIG5leHQgdG8gc2NhbGFyIGVudW0gZGVmdmFsCgoyMDA2LTA3LTA1IDE0OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICAtICdvdmVycmlkZScgYW5kICdhZGRfcm93JyBkZWZhdWx0IHRvIGNvbW1lbnRlZCBvdXQKICAgLSBhZGQgbWlzc2luZyB0eXBlIGluZm8gdG8gb3ZlcnJpZGUKICAgLSBtYWtlIGNvbmYgZmlsZSBoZWFkZXIgbWliMmMgY29tbWVudHMgc28gaXQncyBub3QgaW5jbHVkZWQgaW4gb3V0cHV0CgoyMDA2LTA3LTA1IDA3OjQyICByc3RvcnkKCiAgICogbWlicy86IERJU01BTi1OU0xPT0tVUC1NSUIudHh0LCBESVNNQU4tUElORy1NSUIudHh0LAogICAgIERJU01BTi1UUkFDRVJPVVRFLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSBSRkMgNDU2MAoKMjAwNi0wNy0wMyAyMTowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUHJvcGVybHkgaGFuZGxlIHNubXAgZW51bXMgdXNpbmcgdGhlIHdvcmQgImRlcHJlY2F0ZWQiCgoyMDA2LTA3LTAzIDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBhcHByb3ByaWF0ZWx5IG1hcmsgZGVwcmVjYXRlZCB0YWJsZSBvYmplY3RzCgoyMDA2LTA2LTMwIDIyOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgc3VwcG9ydCBmb3Igb3B0aW9uYWwgZmlsZXMgKGRvbid0IGV4aXN0IGluIGV2ZXJ5IGJyYW5jaCkKCjIwMDYtMDYtMzAgMjE6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBkb3h5Z2VuLmNvbmYgc3VwcG9ydAoKMjAwNi0wNi0zMCAyMToyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGNoZWNrIGZvciBmaWxlIGV4aXN0ZW5jZQoKMjAwNi0wNi0zMCAyMTowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGV4aXQgd2l0aCB0aGUgY3ZzIGNvbW1pdCBzdGF0dXMgaWYgcnVuCgoyMDA2LTA2LTMwIDE1OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGJldHRlciBlbnYgbmFtZSBmb3Igbm90IGNoZWNraW5nIHRoZSB2ZXJzaW9uCgoyMDA2LTA2LTMwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB2ZXJzaW9uIGNoYW5naW5nIHN1cHBvcnQ7IG5vdyBpbiBtYWtlcmVsZWFzZQoKMjAwNi0wNi0zMCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSB0YWcgc3VwcG9ydCBmcm9tIHZlcnNpb250YWc7IG5vdyBpbiBtYWtlcmVsZWFzZQoKMjAwNi0wNi0zMCAxNToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG11Y2ggYmV0dGVyIHN1cHBvcnQgZm9yIGN2cyBjb21taXQsIHZlcnNpb24gbnVtYmVyaW5nLCBldGMKCjIwMDYtMDYtMzAgMTU6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB2YXJpb3VzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMKCjIwMDYtMDYtMzAgMTU6MTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgQVNOL0FTTi5wbSwgQVNOL01ha2VmaWxlLlBMCiwgQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIE9JRC9NYWtlZmlsZS5QTCwKICAgICBPSUQvT0lELnBtLCBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtCiwgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2FnZW50LnBtLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgcGVybCB2ZXJzaW9uIG51bWJlcmluZyBjaGFuZ2VzCgoyMDA2LTA2LTMwIDE1OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL01ha2VmaWxlLnN1YnMucGw6CgogICBVcGRhdGUgdG8gY2hlY2sgZm9yIENQQU4gcmVxdWlyZWQgcGVybCB2ZXJzaW9uIG51bWJlcnMKCjIwMDYtMDYtMjkgMTY6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIGZpcnN0IHBhc3MgYXQgYXV0b2dlbmVyYXRpbmcgb3ZlcnJpZGUvdGFibGUvYWRkX3JvdyBlbnRyaWVzIGZvciBhIE1JQgoKMjAwNi0wNi0yNyAxMTo0MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA2MWFnZW50cGVybCwgVDExNWFnZW50eHBlcmw6CgogICBzZXQgRFlMRF9MSUJSQVJZX1BBVEggZm9yIE9TWCBhbmQgU0hMSUJfUEFUSCBmb3IgSFAtVVgKCjIwMDYtMDYtMjcgMTE6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBtb3JlIHVkcFRhYmxlIGJ5dGUtb3JkZXIgaXNzdWVzIChpbmRpY2VzKSBvbiAqQlNEIGFuZCBTb2xhcmlzL3g4NgoKMjAwNi0wNi0yNyAwOTo0MiAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICByZW1vdmUgZW1iZWRlZCBwZXJsIGluZm87IGFkZCBwZXJsIGFnZW50eCBpbmZvCgoyMDA2LTA2LTI2IDE1OjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhZGQgbmV0c3RhdCBwYXRoIGZvciBJUklYCgoyMDA2LTA2LTI2IDA4OjMzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgdWRwVGFibGUgYnl0ZS1vcmRlciBmaXggKHZhbHVlcyBvbmx5KSBmb3IgTmV0QlNEIGFuZCBPcGVuQlNECgoyMDA2LTA2LTI1IDE0OjQzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHByZXBlbmQgKGluc3RlYWQgb2YgcmVwbGFjZSkgYSBub24tZW1wdHkgTERfTElCUkFSWV9QQVRIOyBmaXhlcyB0ZXN0IGVycm9ycyBvbiBzeXN0ZW1zIHRoYXQgcmVseSBvbiBpdAoKMjAwNi0wNi0yNSAxNDoyNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGZpeCB0ZXN0IGVycm9yIG9uIFNvbGFyaXMgZXRjLjogb25seSB1c2UgImlkIC11IiBvbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBpdAoKMjAwNi0wNi0yNSAwODo0MyAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICAgIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMCiwgU05NUC9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgLSdwZXJsIE1ha2VmaWxlLlBMIC1ORVQtU05NUC1JTi1TT1VSQ0U9dHJ1ZScgd2FzIG5vdCB3b3JraW5nLiAgRml4OiBjYWxsCiAgICAnbnNjb25maWcnIC0tdmVyc2lvbiBpbnNpZGUgb2YgSW5pdE1ha2VQYXJhbXMgaW5zdGVhZCBvZiBDaGVja19WZXJzaW9uCiAgIC1TdXBwb3J0IG1vZHVsZTogTmV0U05NUEdldE9wdHMgY2FsbCBzaG91bGQgcGFzcyBwYXJlbnQgZm9sZGVyIHNvIG5ldC1zbm1wLWNvbmZpZwogICAgY2FuIGJlIGZvdW5kCiAgIC1TdXBwb3J0L01ha2VmaWxlLlBMIHdhcyBtaXNzaW5nIGZyb20gTWFrZWZpbGUubWFrZWZpbGVzCgoyMDA2LTA2LTI0IDA5OjAwICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICAtU2tpcCB2ZXJzaW9uIGNoZWNrIGZvciBXaW4zMiBNU1ZDCiAgIC1hZGQgVHJhcFJlY2VpdmVyIHRvIE1ha2VmaWxlLm1ha2VmaWxlcwogICAtbWFrZS1wZXJsLW1ha2VmaWxlczogIHJlbmFtZSBmaWxlcyBBRlRFUiBjbG9zaW5nIHRoZW0sIG5vdCBiZWZvcmUKCjIwMDYtMDYtMjMgMTI6NTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBjaGVjayBmb3IgMTI3LjAuMC4xLiwgbm90IGp1c3QgLCB0byBpZGVudGlmeSBieXRlLW9yZGVyIGlzc3VlcwoKMjAwNi0wNi0yMyAwOTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ2xlYW4gZml4aW5nIG9mIG9yZGVyaW5nIHByb2JsZW1zIHdpdGgga2VybmVsIHN0b3JhZ2Ugb2YgVURQIHZhbHVlcwoKMjAwNi0wNi0yMyAwODo1MiAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIERvY3VtZW50IGN1cnJlbnQgYmVzdC1wcmFjdGlzZSBmb3IgYW5ub3VuY2luZyBuZXcgcmVsZWFzZXMKICAgKGluY2x1ZGluZyBwcmUtcmVsZWFzZXMgYW5kIHJlbGVhc2UgY2FuZGlkYXRlcykuCiAgIFNheSB3aGF0IHdlIGRvLCByYXRoZXIgdGhhbiBkbyB3aGF0IHdlIHNheS4KCjIwMDYtMDYtMjMgMDU6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwoKMjAwNi0wNi0yMyAwMjo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IGVhcmxpZXIgImRvbid0IHJldmVyc2UgYWRkcmVzcyBieXRlIG9yZGVyIGZvciBzb2xhcmlzIChzcGVjaWZpY2FsbHkgeDg2KSBmb3IgbG9jYWwgYWRkcmVzc2VzIiBwYXRjaCB0aGF0IGJyb2tlIGJ5dGUgb3JkZXIgZm9yIGFsbCBwbGF0Zm9ybXMKCjIwMDYtMDYtMjAgMTU6MzUgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9QUkVGSVggYW5kIHN3aXRjaCB0byAtLXByZWZpeD0vdXNyIG5vdyB0aGF0IHdlIHN1cHBvcnQgREVTVERJUiBmb3IgZXZlcnl0aGluZzsgZS5nLiB0byBhdm9pZCB0aGF0IHRoZSBpbnN0YWxsYXRpb24gZW5kcyBpbiAvZGVzdGRpci9kZXN0ZGlyCgoyMDA2LTA2LTIwIDE0OjQ2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfRVhUUkFfSU5TVEFMTCB0byBiZSBhYmxlIHRvIHBhc3MgZXh0cmEgYXJncyB0byAibWFrZSBpbnN0YWxsIgoKMjAwNi0wNi0yMCAxMjoxMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBleHBvcnRpbmcKCjIwMDYtMDYtMjAgMDU6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgc2V0IExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhhdCBOZXRTTk1QOjphZ2VudCdzIGFnZW50LnNvIGNhbiBsb2FkICh1bmluc3RhbGxlZCkgbGlibmV0c25tcCouc287IG90aGVyd2lzZSB0ZXN0IGZhaWxzIGF0IGxlYXN0IG9uIEZyZWVCU0QKCjIwMDYtMDYtMTUgMTU6MTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgc3VwcHJlc3Mgc3RkZXJyIHdhcm5pbmdzIGZvciAicHMgLWUiIGluIG9yZGVyIHRvIGZpeCBbZmFsc2VdIG5pZ2h0bHkgYnVpbGQgZXJyb3IgbWVzc2FnZXMgb24gU0YgQ0YgaG9zdCBhbHBoYS1saW51eDEKCjIwMDYtMDYtMTUgMDY6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGQgT3BlbkJTRCBhbmQgTmV0QlNEIHRvIHRoZSBsaXN0IG9mIHN5c3RlbXMgdGhhdCByZXF1aXJlIHJvb3QgcHJpdmlsZWdlcyBmb3IgdWRwVGFibGUgKGFjY29yZGluZyB0byBEYXZlJ3MgdGVzdGluZykKCjIwMDYtMDYtMTMgMTQ6NTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIHNldCBORVRTTk1QX0RTX0FHRU5UX05PX1JPT1RfQUNDRVNTIChuZWVkZWQgZm9yIGUuZy4gU29sYXJpcyAyLjYpCgoyMDA2LTA2LTEzIDA1OjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGZpeCBidWcgMTUwNTM0MTogYWdlbnQgc2VnZmF1bHRzIG9uIFNvbGFyaXMgd2l0aCAtREFMTAoKMjAwNi0wNi0xMiAxNjo1NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGNvbW1pdCB0aGUgZG94eWdlbi5jb25mIGZpbGUKCjIwMDYtMDYtMTIgMTY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSAibmV0LXNubXAtY29uZmlnIC0tcGVybHByb2ciIGFuZCB1c2UgaXQgaW4gdGhlICJBZ2VudFggc3ViYWdlbnQgaW4gcGVybCIgdGVzdAoKMjAwNi0wNi0xMiAxNjowMCAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBpbnRyb2R1Y2UgIm5ldC1zbm1wLWNvbmZpZyAtLXBlcmxwcm9nIiBhbmQgdXNlIGl0IGluIHRoZSAiQWdlbnRYIHN1YmFnZW50IGluIHBlcmwiIHRlc3QKCjIwMDYtMDYtMTIgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkZWZpbmUgbWZkXypfcm93cmVxX2Zyb21faW5kZXggaWYgcGVyc2lzdGVudCBlbmFibGVkCgoyMDA2LTA2LTEyIDE1OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBpbmNsdWRlIGlwYWRkciBpbnN0ZWFkIG9mIHJlZGVmaW5pbmcgY29uc3RhbnRzCgoyMDA2LTA2LTEyIDE1OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGFkZCBjb21tZW50IHcvaW50ZWdlciB2YWx1ZSBmb3IgZWFzeSBncmVwcGluZwoKMjAwNi0wNi0xMiAxMzoyMyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCByb3V0ZS5jOgoKICAgYWRkIHN5cy90eXBlcy5oIHRvIGZpeCBPUyBYIGJ1aWxkCgoyMDA2LTA2LTEyIDEzOjA1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSBmaXggYmFkIHBhcmFtZXRlciBpbiBzY2FsYXIgcmVnaXN0cmF0aW9uCiAgIC0ga2VlcCBzY2FsYXIgdmFsdWUgZnJlc2ggdXNpbmcgdGFibGUgY2FjaGUgKyBjYWNoZSBoZWxwZXIKCjIwMDYtMDYtMTIgMTM6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICBhZGQgYWNjZXNzIHRvIHRhYmxlIGNhY2hlCgoyMDA2LTA2LTEyIDEwOjMwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBmaXggZm9yIG5ldyBmYWlsdXJlIGVycm9yIGNvZGUKCjIwMDYtMDYtMTIgMTA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEZpeCBidWcgcmVwb3J0ZWQgYnkgUm9iZXJ0IFdpbGNveDogcmV0dXJuIG5vIGFjY2VzcyBpbnN0ZWFkIG9mIG5vdCB3cml0YWJsZSBvbiBWQUNNIGRlbmlhbHMKCjIwMDYtMDYtMTIgMDk6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBmaW5hbGx5IGEgd29ya2luZyB2ZXJzaW9uIG9mIHRoZSB2ZXJzaW9uIHdvcmtpbmcgY2hlY2sKCjIwMDYtMDYtMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBmaXggcHJlWCB2ZXJzaW9uIG51bWJlcnMgYmVmb3JlIGNoZWNraW5nCgoyMDA2LTA2LTEyIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgdGhlIHBlcmwgbW9kdWxlIHZlcnNpb24gbnVtYmVyIGFnYWluc3QgdGhlIG5ldC1zbm1wIHZlcnNpb24gbnVtYmVyCgoyMDA2LTA2LTEyIDAxOjE5ICB0YW5kZXJzCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgbWFudWFsIHN0ZXAgdG8gdXBkYXRlIHZlcnNpb24gbnVtYmVyIGluIGRveHlnZW4uY29uZgoKMjAwNi0wNi0xMiAwMToxNiAgdGFuZGVycwoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNi0wNi0xMCAwNTo1NyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBmaXggc3ludGF4IGVycm9yIGludHJvZHVjZWQgaW4gbGFzdCBjb21taXQKCjIwMDYtMDYtMDkgMTM6NDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBmaXggdHlwbwoKMjAwNi0wNi0wOSAwNTo1NiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIC0gZG9uJ3QgZnJlZSBwZHUgaWYgaXQncyBub3QgYSBjbG9uZQogICAtIGlmZGVmIG1vcmUgY29kZSBub3QgdXNlZCBpZiBzbm1wdjEgZGlzYWJsZWQKCjIwMDYtMDYtMDcgMDU6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHBhdGNoIGZyb20gRGF2ZSB0byBwcmV2ZW50IGNyYXNoIHdpdGggLURyZWdpc3Rlcl9taWIKCjIwMDYtMDYtMDcgMDU6MTMgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L2luLmggYW5kIGFycGEvaW5ldC5oIHRvIHBpY2sgdXAgbnRvaGwgb24gaHB1eDEwLjIwCgoyMDA2LTA2LTA1IDE1OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBkb3VibGUtZnJlZSBvZiBkZWxlZ2F0ZWQgY2FjaGUKCjIwMDYtMDYtMDUgMTQ6MjcgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBhZGQgdmFjbSBzZXQgdGVzdHMKCjIwMDYtMDYtMDUgMTQ6MjEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnOgoKICAgYWRkIChyb3xydyljb21tdW5pdHkgY29uZmlnIGZvciBydyB2YWNtIHRlc3QKCjIwMDYtMDYtMDUgMTE6MDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBzb21lIHZhY20gbWF0Y2hpbmcgZGVidWcgbXNncwoKMjAwNi0wNi0wNSAxMDozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICAtIHVzZSBuZXcgYWJpbGl0eSB0byBzY2hlZHVsZSBhbGFybSBpbiAwIHNlYyB0byBydW4gbXRlIHRpcmdnZXJzIGFzYXAgYWZ0ZXIKICAgICBzdGFydHVwLCBpbnN0ZWFkIG9mIGR1cmluZyBjb25maWcgZmlsZSBwYXJzaW5nCiAgIC0gYWRkIG1pc3NpbmcgXG4gdG8gbG9nIG1zZwoKMjAwNi0wNi0wNSAxMDozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSBhbGxvdyBhIDAgdGltZSBpbiBzbm1wX2FsYXJtX3JlZ2lzdGVyLCB0byBtZWFuIHJ1biBBU0FQIChpLmUuIDEgdXNlYykKICAgLSBhbGxvdyBzZWMvdXNlYyBvZiAwIGluIHNhX3VwZGF0ZV9lbnRyeSwgZXhjZXB0IGZvciBTQV9SRVBFQVQgY2FzZQoKMjAwNi0wNi0wNSAxMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgLSBsb2cgZXJyb3IgKGFuZCBkb24ndCBjcmVhdGUgZW50cnkpIGlmIHNlc3MgdXNlciBub3QgZm91bmQKICAgLSBsb2cgZXJyb3IgaWYgYWdlbnRTZWNOYW1lIChkZWZhdWx0IHVzZXIpIG5vdCBzcGVjaWZpZWQKICAgLSBhZGQgbWlzc2luZyBcbiB0byBkZWJ1ZyBtc2cKCjIwMDYtMDYtMDUgMDk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBjaGFuZ2UgbGVuIHR5cGUgdG8gc2l6ZV90CgoyMDA2LTA2LTA1IDA5OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgYWRkIGNvbnRhaW5lciBuYW1lcwoKMjAwNi0wNi0wMSAwNjoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGVuZm9yY2UgTUlCIG9iamVjdCBsZW5ndGhzCgoyMDA2LTA1LTI5IDAyOjQwICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWsgdGhlIGVycm9yIHJlZ2V4CgoyMDA2LTA1LTI5IDAxOjM1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybDoKCiAgIHJlLWZpeCBuZXdsaW5lIGlzc3VlcwoKMjAwNi0wNS0yOCAxMzoxMyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwcmV2ZW50IHNubXB0cmFwZCBlbWJlZGRlZCBwZXJsIGNyYXNoIG9uIHg4Nl82NCAoYnVnIDE0OTQ4ODIpCgoyMDA2LTA1LTI3IDIzOjU4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIHVzZSBDSEVDS09SRElFIGluc3RlYWQgb2YgQ0hFQ0tGSUxFIHdoZW4gZG9pbmcgbXVsdGlwbGUgY2hlY2tzICh3YXMgc3VjY2VlZGluZyB3aGVuIGl0IHNob3VsZG4ndCBoYXZlKS4gIEFsc28sIG9wZW4gZW1iZWRkZWQgcGVybCBMT0cgaW4gYXBwZW5kIG1vZGUgc28gc2Vjb25kIHJvdXRpbmUgZG9lc24ndCB0cnVtcCB0aGUgZmlyc3QKCjIwMDYtMDUtMjcgMjI6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGFuZCBhcnBhL2luZXQuaCB0byBwaWNrIHVwIGh0b25sLCBldGMsIG9uIGhwdXgxMC4yMAoKMjAwNi0wNS0yNyAyMjoxNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgd2F5IHNpbXBsZSBERVNURElSIHN1cHBvcnQKCjIwMDYtMDUtMjcgMjI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIGEgZmV3IHBlb3BsZSBmcm9tIHByZXZpb3VzIHBhdGNoZXMKCjIwMDYtMDUtMjcgMDc6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIHNldCBsaWJ0b29sLWxpa2UgTERfTElCUkFSWV9QQVRIIHRvIG1ha2Ugc3VyZSB0aGUgcGVybCBhZ2VudCBzdGFydHMgcHJvcGVybHkgKGZpeGVzIGJ1ZyAxNDk1NDMzKQoKMjAwNi0wNS0yNiAxNToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGRvbid0IHJldmVyc2UgYWRkcmVzcyBieXRlIG9yZGVyIGZvciBzb2xhcmlzIChzcGVjaWZpY2FsbHkgeDg2KSBmb3IgbG9jYWwgYWRkcmVzc2VzCgoyMDA2LTA1LTI2IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaDoKCiAgIHJlbW92ZSBkb3VibGUgZW50cnkgY29tbWVudAoKMjAwNi0wNS0yNiAwOTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvbmUgaW50cHRyX3QgY2FzdCBmcm9tIGEgcG9pbnRlcgoKMjAwNi0wNS0yNiAwOTozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBjb25maWd1cmU6CgogICBjaGVjayBmb3IgdWludHB0cl90IGFuZCBpbnRwdHJfdAoKMjAwNi0wNS0yNiAwNjoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQW5vdGhlciBwcm9wZXIgcG9pbnRlciBjYXN0CgoyMDA2LTA1LTI2IDA2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9TTk1QLnhzLCBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLAogICAgIGFnZW50L2FnZW50LnhzOgoKICAgUGF0Y2ggZnJvbSBkYXJpeCB0byBwcm9wZXJseSBjYXN0IHBvaW50ZXJzIHRvIGFuIElWIGluc3RlYWQgb2YgYW4gaW50IHRvIGZpeCA2NGJpdCBpc3N1ZXMKCjIwMDYtMDUtMjYgMDE6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWFrZSBkYWVtb25zIGJpbmQgdG8gbG9jYWxob3N0IGJ5IGRlZmF1bHQgb25seSAoZml4ZXMgYnVnIDE0MjQyOTMpCgoyMDA2LTA1LTI1IDE1OjEzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgU05NUF9QRVJTSVNURU5UX0RJUiBmb3IgYWxsIGFwcHMvZGFlbW9ucwoKMjAwNi0wNS0yNSAxNTowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IFNOTVBDT05GUEFUSCBmb3IgYWxsIGFwcHMvZGFlbW9ucwoKMjAwNi0wNS0yNSAwOToxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGRvbid0IG9wZW4gZGVmYXVsdCBzbXV4IHBvcnQvc29ja2V0CgoyMDA2LTA1LTI1IDA4OjA1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjN1c21jb25maWdhZ2VudCwgU3Zhbnljb25maWc6CgogICBkb24ndCBvcGVuIGRlZmF1bHQgc211eCBwb3J0L3NvY2tldAoKMjAwNi0wNS0yNCAwODozMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIHBlcmwKCjIwMDYtMDUtMjQgMDg6MjYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIGRvdWJsZS1mb3JrIHRoZSBwZXJsIHN1YmFnZW50IHRvIGF2b2lkIHNoZWxsIG91dHB1dCBmcm9tIGpvYiBoYW5kbGluZwoKMjAwNi0wNS0yNCAwNjo0MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW50cm9kdWNlIGFkZGl0aW9uYWwgdmFyaWFibGVzIGZvciBzdWJhZ2VudCB0ZXN0czogQUdFTlRYX0NPTkZJR19GSUxFLCBTTk1QX0FHRU5UWF9QSURfRklMRSwgU05NUF9BR0VOVFhfTE9HX0ZJTEUKCjIwMDYtMDUtMjQgMDY6MzkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIG5ldyB0ZXN0OiAnQWdlbnRYIHN1YmFnZW50IGluIFBlcmwgKHVzaW5nIE5ldFNOTVA6OmFnZW50KScKCjIwMDYtMDUtMjIgMTU6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3lzdGVtIGluIHBhcnRpY3VsYXIgYW5kIHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHU6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9kZXZpY2UgaW4gcGFydGljdWxhciBhbmQgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNTozNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcDoKCiAgIHRoaXMgdGVzdCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWU6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zeXN0ZW0gaW4gcGFydGljdWxhcgoKMjAwNi0wNS0yMiAwMzowOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcDoKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N0b3JhZ2UgaW4gcGFydGljdWxhcgoKMjAwNi0wNS0xOSAxMTozMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gZml4IGZvciBidWcgMTMxMzY2NyByZW1vdmVkIHN5bmNoIHNlbmQsIGFsbG93aW5nIHVzIHRvIHVuY29tbWVudCB0aGUKICAgICBjb21tZW50ZWQgb3V0IHBkdSBmcmVlIG9uIGVycm9yLCBwbHVnZ2luZyBhIG1lbW9yeSBsZWFrIGlkZW50aWZpZWQKICAgICBvbiBjb2RlcnMgYnkgZGVyZWtsIGF0IGJsdWV5b25kZXIgY28gdWsKCjIwMDYtMDUtMTkgMTA6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIC0gdXNlIG5ycHJvY3MtMSBhcyBpbmRleCBpbnN0ZWFkIG9mIGksIHdoaWNoIHdpbGwgYmUgbmVnYXRpdmUgaWYgY3B1aW5mbwogICAgIGRvZXNuJ3QgY29udGFpbiBhICdwcm9jZXNzb3InIGxpbmUKCjIwMDYtMDUtMTcgMTU6MTEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBuZWVkIHN5cy90eXBlcy5oIGJlZm9yZSBuZXRpbmV0L2luLmggb24gc29tZSBwbGF0Zm9ybXMKCjIwMDYtMDUtMTMgMDA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1cGRhdGUgQ1ZTIGhvc3QgbmFtZQoKMjAwNi0wNS0xMiAxNTowNyAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICAgIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCiwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSAtVyBmbGFnIHN1YnN0aXRpb24gdG8gYmUgZXhhY3QgbWF0Y2ggb2YgZmxhZ3MgdG8gcmVtb3ZlLCByYXRoZXIgdGhhbiByZW1vdmluZyBhbnkgLVcgZmxhZyBmb3IgcG9ydGFiaWxpdHkgcmVhc29ucwoKMjAwNi0wNS0xMiAwOToxMCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtaXNjLiBhZGRpdGlvbnMgZm9yIG1vcmUgY29uZmlndXJhdGlvbiBjb250cm9sIG9uIGJ1aWxkIGZhcm1zLCBpbmNsdWRpbmcgZW1iZWRkZWQgcGVybCBidWlsZGluZwoKMjAwNi0wNS0xMiAwODoxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA2MHRyYXBkcGVybCwgVDA2MWFnZW50cGVybDoKCiAgIGZpeCBuZXdsaW5lIGlzc3VlcwoKMjAwNi0wNS0xMiAwODoxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICAgIFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIGVuc3VyZSB0aGUgdGVzdHMgd29yayBldmVuIGlmIFVDRC1TTk1QLU1JQiBpc24ndCBpbiBkZWZhdWx0cyBNSUJTIGxpc3QKCjIwMDYtMDUtMTIgMDg6MTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIGludHJvZHVjZSBkZWxheXMgdG8gbm90IGxvc2UgdHJhcHMKCjIwMDYtMDUtMTIgMDc6NTQgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIHVwZGF0ZSBSRUFETUUgZm9yIEFJWCBiYXNlZCBvbiBidWlsZCB0ZXN0IGV4cGVyaWVuY2Ugb24gQUlYIDQuMy4zLzUuMS81LjIvNS4zCgoyMDA2LTA1LTA4IDAzOjA3ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfTElCV1JBUCB0byBiZSBhYmxlIHRvIHNwZWNpZnkgLS13aXRoW291dF0tbGlid3JhcD14eHgKCjIwMDYtMDUtMDggMDE6MTEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVtb3ZlIHNtdXggZnJvbSBOU0JfRElTVF9NT0RVTEVTIChpdCdzIGFscmVhZHkgaW4gTlNCX0VYVFJBX01PRFVMRVMpCgoyMDA2LTA1LTA4IDAwOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oOgoKICAgYnVpbGQgZml4IGZvciBDODkgY29tcGlsZXJzIChlLmcuIHhsYyBvbiBBSVggNC4zLjMpOiBubyB0cmFpbGluZyBjb21tYSBhZnRlciBsYXN0IGVudHJ5IG9mIGEgInR5cGVkZWYgZW51bSIKCjIwMDYtMDUtMDUgMTY6MDMgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2Vha2luZyBvZiB0aGUgZXhjZXB0aW9uIHJlZ2V4CgoyMDA2LTA1LTA1IDE1OjI4ICB0YW5kZXJzCgogICAqIFJFQURNRS5pcml4OgoKICAgSW5pdGlhbCBSRUFETUUgZm9yIElSSVgKCjIwMDYtMDUtMDUgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgcHV0IHRoZSBzbnByaW50ZiBsZW5ndGggaW50byBhIGRlcmVmZXJlbmNlZCBwb2ludGVyCgoyMDA2LTA1LTA0IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb3ZlcnRpeSAxMzU6IGRvdWJsZSBjaGVjayBuZXRzbm1wX29pZF9maW5kX3ByZWZpeCByZXR1cm5zIGEgcG9zaXRpdmUgcmVzdWx0IChzaG91bGQgb25seSBoYXBwZW4gaW4gYnJva2VuLXRyZWUgY2FzZXMpCgoyMDA2LTA1LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGNvdmVyaXR5ICMxMzY6IGZyZWUgbWVtIGxlYWsgaW4gcmFyZSBiYWQtYWdlbnR4IHBhY2tldCBjYXNlCgoyMDA2LTA1LTAzIDEzOjU5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBORVdTOgoKICAgWyAxNDgxMDEyIF0gSFAtVVggMTEuMC8xMWk6IGlwQWRFbnRCY2FzdEFkZHIgd3JvbmcgKHBhdGNoIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCgoyMDA2LTA0LTMwIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFsgMTQ3ODYxNiBdIHNubXB1c20gb3V0cHV0cyB0byBzdGRlcnIgb24gc3VjY2VzcwoKMjAwNi0wNC0zMCAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBbIDE0NzkwNzEgXSA2NCBiaXRzIGNvdW50ZXIgb24gTGludXggJiBnb29kIHBhcnNpbmcgb2YgZGlza3N0YXRzIChhZ2FpbikgW21vZGlmaWVkXSBmcm9tIEZhYnJpY2UgQmFjY2hlbGxhCgoyMDA2LTA0LTI1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBbIDE0NjY0NTAgXSBmaXggY29tcGlsYXRpb24gd2l0aCBsaW51eC9ldGh0b29sLiAgSW4gb3RoZXIgd29yZHM6IHVnaCBuYXN0eSBidXQgbmVlZGVkIHBhdGNoCgoyMDA2LTA0LTI1IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIG1vZGlmaWVkIHZlcnNpb24gb2YgWyAxNDY2NDUxIF0gaXBBZGRyZXNzIHNpemUgd2l0aCA2NGJpdCB0byB1c2Ugc2l6ZW9mKCkgZm9yIHRoZSBkYXRhdHlwZSBpbiBxdWVzdGlvbgoKMjAwNi0wNC0yMSAwNTozMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFNraXAgbWlzc2luZyBlbnRyaWVzIChyYXRoZXIgdGhhbiBjcmFzaGluZyBvdXQgY29tcGxldGVseSkKCjIwMDYtMDQtMjAgMTc6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi86IGNvbnRhaW5lci5jLCBzbm1wdXNtLmM6CgogICBmaXggdHlwb3MKCjIwMDYtMDQtMjAgMTc6MTMgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIHJlcGhyYXNlZAoKMjAwNi0wNC0yMCAxNjo1NSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgY2hhbmdlcyBzaW5jZSA1LjMuMC4xCgoyMDA2LTA0LTIwIDE2OjE5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIGFkZCBTSUdIVVAgdGVzdAoKMjAwNi0wNC0yMCAxNjowMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIGFkZCBTSUdIVVAgdGVzdAoKMjAwNi0wNC0yMCAxNToyNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGZpeCBidWcgMTQ3MzI4OTogUmUtaW5pdCBvZiA1LjMuMC4xIGRhZW1vbnMgZmFpbCBhZnRlciBTSUdIVVAKCjIwMDYtMDQtMjAgMTU6MjQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIGFkZCBTSUdIVVAgdGVzdAoKMjAwNi0wNC0yMCAxNToxNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIGZpeCBidWcgMTQ3MzI4OTogUmUtaW5pdCBvZiA1LjMuMC4xIGFnZW50IGZhaWxzIGFmdGVyIFNJR0hVUAoKMjAwNi0wNC0yMCAxNToxNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW50cm9kdWNlIEhVUFBST0coKSwgSFVQQUdFTlQoKSBhbmQgSFVQVFJBUEQoKSBmb3IgdXBjb21pbmcgU0lHSFVQIHRlc3RzCgoyMDA2LTA0LTE4IDEyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIEJ1ZyAjMTQzMjE2NTogdHlwb3MgaW4gdGhlIGZpbGVuYW1lcwoKMjAwNi0wNC0xOCAxMTowMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggYnVnIDE0NTg2ODU6IG1hbiBwYWdlIGZvciBzZXRhY2Nlc3Mgd2FzIG1pc3NpbmcgYSB0b2tlbiBpbiB0aGUgc3VtbWFyeSBsaW5lCgoyMDA2LTA0LTE4IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBidWcgMTQ1ODgxODogYXV0aGNvbW11bml0eSBhbmQgZnJpZW5kcyB1c2UgLVYgbm90IC12IHRvIHNwZWNpZnkgYSB2aWV3CgoyMDA2LTA0LTE4IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBbIDEzNDEwOTggXSBGaXggbWliMmMub2xkLWFwaS5jb25mIG9pZCBzdWZmaXhlcywgc3VmZml4IGxlbmd0aHMgZnJvbSBuc2h1bG1hbgoKMjAwNi0wNC0xOCAxMDozMiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgU3VwcG9ydCBmdW5jdGlvbnMgZm9yIGVhc2llciBlbWJlZGRlZCBwZXJsIGludGVncmF0aW9uOiBbIDEzNjk5OTYgXSBtaWIgdG8gcGVybCBzdXBwb3J0IGJ5IFBldGVyIE1hcnRpbgoKMjAwNi0wNC0xOCAxMDoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0Ly5jdnNpZ25vcmUsCiAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBsb2NhbC9taWIyYy5wZXJsLmNvbmY6CgogICBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgZWFzaWVyIGVtYmVkZGVkIHBlcmwgaW50ZWdyYXRpb246IFsgMTM2OTk5NiBdIG1pYiB0byBwZXJsIHN1cHBvcnQgYnkgUGV0ZXIgTWFydGluCgoyMDA2LTA0LTE4IDEwOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBbIDE0NjU0ODUgXSBuZXRzbm1wX2NvbmZpZ19yZW1lbWJlcl9mcmVlX2xpc3QgbWVtIGxlYWsgZnJvbSBSb2JlcnQgV2lsY294CgoyMDA2LTA0LTE4IDA2OjU4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVAtRk9SV0FSRC1NSUIudHh0LCBJUC1NSUIudHh0LCByZmNsaXN0CjoKCiAgIHVwZGF0ZSBmcm9tIG5ld2x5IHB1Ymxpc2hlZCBSRkNzCgoyMDA2LTA0LTEzIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBbIDEzNjQyNDggXSBBZGQgbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudCBwYXJhbWV0ZXJzOiBnZW5lcmFsIHJld29yayBvZiB0aGUgbWFpbiB3cmFwcGVyIGZvciBhdXRvLXN1YmFnZW50cyBmcm9tIG1hZ2ZyCgoyMDA2LTA0LTEzIDEzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFsgMTM3MTc3OCBdIGRpc2tJT1RhYmxlIGNvbnRhaW5zIGludmFsaWQgZGF0YSBmb3Igc29tZSBkZXZpY2VzIG9uIExpbnV4CgoyMDA2LTA0LTEzIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIFsgMTM4NjI2NCBdIDUuMi4yIC0gZml4IExpbnV4IENQVSBjb3VudGVycyBvbiBTTVAgbWFjaGluZXMKCjIwMDYtMDQtMTIgMTI6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZpeCBwYXJzaW5nIG9mIGFkZHJlc3NlcyB0aGF0IEkgYnJva2Ugd2hlbiBpbXBsZW1lbnRpbmcgcGFyc2luZyBvZiBmaXhlZC13aWR0aCBzdHJpbmdzCgoyMDA2LTA0LTEyIDEwOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCBhIGJ1ZyByZXBvcnRlZCBpbiAxMTE4ODE0IHdoZXJlIGluaXQgbGVuZ3RoIHdhc24ndCBnZXR0aW5nIGluaXRpYWxpemVkIHByb3Blcmx5CgoyMDA2LTA0LTEyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXhlcyBmb3IgZml4ZWQgbGVuZ3RoIHN0cmluZyBwYXJzaW5nCgoyMDA2LTA0LTEyIDA5OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDYtMDQtMTIgMDk6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZpeGVkIGxlbmd0aCBzdHJpbmcgcGFyc2luZwoKMjAwNi0wNC0xMSAwNDowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBCdWlsZCBmaXggZm9yICJjb25maWd1cmUgLS13aXRoLW91dC10cmFuc3BvcnRzPUNhbGxiYWNrIiAoZml4ZXMgZmlyc3QgcGFydAogICBvZiBidWcgMTQ2NzcyNCkuCiAgIFdoeSBkbyB0ZXN0cyAyMS0yNSBhbmQgMzQtMzUgKGFsbCBpbnZvbHZpbmcgc25tcHRyYXBkKSBmYWlsIGluIDUuMysgKHVubGlrZQogICA1LjIueCkgaWYgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCBpc24ndCBhdmFpbGFibGU/CgoyMDA2LTA0LTEwIDA3OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFsgMTM2NDY0OCBdIEZpeCBzZWdmYXVsdCBvbiBwZXJsIGFzeW5jIGJ1bGt3YWxrIGZyb20gT2xlIEJqb3JuCgoyMDA2LTA0LTEwIDA3OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBbIDE0MTU1ODYgXSA1LjMuMC4xIGhvc3QvaHJfc3dydW4uYyBwYXRjaGVzIGZvciBBSVggNCwzLzUuMiBmcm9tIEpvZSBCdWVobGVyCgoyMDA2LTA0LTA5IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsIG1pYklJL2lmVGFibGUuaAo6CgogICBbIDE0Mjc3OTMgXSBpZihYKVRhYmxlIGltcGxlbWVudGF0aW9uIGZvciBPcGVuQlNEIDMueCBmcm9tIE5vcnRodHJvTgoKMjAwNi0wNC0wOSAyMTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgWyAxNDI5NDU1IF0gZW5kbGVzcyBsb29wLCB0YWJsZV9pdGVyYXRvciwgNS4zIGZyb20gS3JpcyAodGlua2VyMTA1KQoKMjAwNi0wNC0wOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmM6CgogICBbIDE0NjAwODIgXSBbUEFUQ0hdOiBGaXggZXh0ZXJuYWwgZmQgaGFuZGxpbmcgKGFub24pCgoyMDA2LTAzLTI3IDE2OjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgcmVtb3ZlICh1c2VmdWwpICItQ3AgLUN0IiBzdGRlcnIgb3V0cHV0IHNpbmNlIGl0IGhhcyBiZWVuIHNlZW4gdG8gaW50ZXJmZXJlIHdpdGggdGhlIHN0ZG91dCBtZXNzYWdlcyB0byBiZSBjaGVja2VkCgoyMDA2LTAzLTI0IDA4OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFJlY29nbmlzZSBmYWlsZWQvZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMsIGFuZCBkb24ndCBwbG91Z2ggb24gcmVnYXJkbGVzcwoKMjAwNi0wMy0yNCAwODo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBEb24ndCBjaG9rZSBvbiBTTk1QdjIgZXhjZXB0aW9ucwogICAoU3RpbGwgbmVlZCB0byBoYW5kbGUgU05NUHYxIGVycm9ycykKICAgRml4IGEgY291cGxlIG9mIG1pbm9yIG91dHB1dCB0eXBvcy4KCjIwMDYtMDMtMjMgMTY6MDAgIHRhbmRlcnMKCiAgICogbWFuL21pYjJjLmNvbmYuNS5pbjoKCiAgIEZpeCBzZWN0aW9uIG9mIG1pYjJjLmNvbmYuNSAoRGViaWFuIHBhdGNoICMxNiBmcm9tIDUuMi4yLTMpCgoyMDA2LTAzLTIzIDExOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBQYXRjaCBmcm9tIGRhcml4IHRvIG9wdGlvbmFsbHkgdHVybiBvZmYgY29ubmVjdGlvbiBsb2dnaW5nIGZvciB0Y3Bfd3JhcHBlcnMKCjIwMDYtMDMtMTYgMDE6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgUm9vdCBzZWNvbmQgb3V0cHV0IHRhYmxlIGNvcnJlY3RseQoKMjAwNi0wMy0xNiAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENvcnJlY3QgbG9naWMgb2Ygc3RhcnR1cCB0ZXN0cwoKMjAwNi0wMy0xNSAwODoyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBGaXggU0NfQUlORk8gc3dhcGN0bCgpIGNhbGwuCgoyMDA2LTAzLTE1IDA1OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFJlY29nbmlzZSBidWlsdC1pbiB2ZXJzdXMgY29uZmlnLWRlZmluZWQgbm90aWZpY2F0aW9ucywKICAgYW5kIHNldCBvd25lciBhY2NvcmRpbmdseS4KCjIwMDYtMDMtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgZG9uJ3QgdXNlIHBlcmZlY3RseSBsZWdhbCBwZXJsIHN0cnVjdHVyZXMgaW4gQyBjb2RlCgoyMDA2LTAzLTA5IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCB0eXBvcwoKMjAwNi0wMy0wOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgZml4IHNjaGVkdWxlIHR5cG8KCjIwMDYtMDMtMDkgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZyZWUgbWFsbG9jIGluIGVycm9yIGNvbmRpdGlvbiB3aGVuIGRlY29kZSBmdW5jdGlvbiBub3Qgc3BlY2lmaWVkCgoyMDA2LTAzLTA5IDEzOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcHYzLmM6CgogICBlbnN1cmUgdGhhdCBpZiBvcCA9PSByZWNlaXZlZCBtZXNzYWdlIHRoYXQgd2UgaGF2ZSBhIFBEVSB0b28gKGFsd2F5cyB3aWxsIGJlIHRoZSBjYXNlKQoKMjAwNi0wMy0wOSAxMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9udCBkZWx2ZSBpbnRvIGZ1dHVyZSBpZiBzdGF0ZW1lbnQgd2hlbiBzZXNzaW9uIGZhaWxzIHRvIHByb2JlCgoyMDA2LTAzLTA5IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmcmVlIGEgcGR1IG9uIHRoZSBlcnJvciBjYXNlIG9mIG5vIHNlc3Npb24uLi4KCjIwMDYtMDMtMDkgMTM6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgcmV2ZXJzZSBhIHBhdGNoIHRoYXQgd2FzIHRyeWluZyB0byBmcmVlIGFuIGFycmF5CgoyMDA2LTAzLTA5IDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgY292ZXJpdHkgNzU6IGVuc3VyZSBmcmVlIGluIHJhcmUgY2FzZSB3aGVyZSBvdGhlciBzaWRlIG9mIHRyYW5zcG9ydCBub3QgZm91bmQgKHNob3VsZG4ndCBldmVyIGhhcHBlbikKCjIwMDYtMDMtMDkgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtaXNjIGVycm9yIGNoZWNraW5nICh1bm5lZWRlZCBieSBvdGhlciBsb2dpYywgYnV0Li4uICB3aHkgbm90KQoKMjAwNi0wMy0wOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSAzNDogY2hlY2sgdGhhdCB1c20gd2Fzbid0IGFjdHVhbGx5IGlsbGVnYWxseSBwYXNzZWQgYSBudWxsIHNlc3Npb24gKHNob3VsZCBoYXZlIGJlZW4gc3RvcHBlZCBsb25nIGJlZm9yZSBub3cpCgoyMDA2LTAzLTA5IDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGNvdmVyaXR5IG11bHRpcGxlOiBjaGVjayBhIGZldyBwb2ludGVycyBmb3IgbnVsbCByZWZzIGp1c3QgaW4gY2FzZQoKMjAwNi0wMy0wOSAxMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHRleHRfdXRpbHMuYywgdmFjbS5jOgoKICAgY292ZXJpdHkgNzk6IGZyZWUgbWVtb3J5IGluIGVycm9yIGNvbmRpdGlvbiBzcG90cwoKMjAwNi0wMy0wOSAxMjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBhbGxvdyBmb3IgcXVlc3Rpb25hYmx5IGxlZ2FsIG51bGwgY29tbXVuaXR5IHN0cmluZ3MKCjIwMDYtMDMtMDkgMTI6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvdmVyaXR5IDYxOiBjaGVjayByZXR1cm4gdmFsdWUgZnJvbSBpbiB0cmVlIHRvIGVuc3VyZSBpdCdzIG5vdCBuZWdhdGl2ZQoKMjAwNi0wMy0wOSAxMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgY292ZXJpdHkgODA6IGZyZWUgdmJsaXN0IGluIHNvbWUgZmFpbHVyZSBjYXNlcwoKMjAwNi0wMy0wOSAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jOgoKICAgY292ZXJpdHkgODM6IGZyZWUgbWVtIG9uIHNob3VsZC1uZXZlci1nZXQtaGVyZSBzcG90CgoyMDA2LTAzLTA5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBmcmVlIG1lbW9yeSBvbiBvdGhlciBtYWxsb2MgZmFpbHVyZXMKCjIwMDYtMDMtMDkgMTA6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBtb3JlIGNvbW1hbmQgbGluZSBmbGFncyBmb3IgZmFzdGVyIHBhdGNoIGFwcGxpY2F0aW9uCgoyMDA2LTAzLTA5IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBjaGVjayBmb3IgbnVsbCBvd25lciBpbiAyIG90aGVyIHNwb3RzCgoyMDA2LTAzLTA5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBjb3Zlcml0eSA5Ny80ODogZnJlZSBsb3N0IG1lbW9yeSBvbiBpbGxlZ2FsIHRhYmxlOyBjaGVjayBmb3IgbnVsbCB0aGF0IHNob3VsZG4ndCBldmVyIGJlCgoyMDA2LTAzLTA5IDEwOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBjb3Zlcml0eSA5NjogZml4IHBvdGVudGlhbCBsZWFrIHdoZW4gbWFsbG9jIGZhaWxzCgoyMDA2LTAzLTA5IDEwOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmM6CgogICBmcmVlIGEgaGFuZGxlciBpZiBhIHN1YnNlcXVlbmNlIG1hbGxvYyBmYWlscwoKMjAwNi0wMy0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgY292ZXJpdHkgOTgtMTAwOiBmcmVlIHN1Y2Nlc3MgbWFsbG9jcyB3aGVuIG9uZSBmYWlscwoKMjAwNi0wMy0wOSAwOTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBjb3Zlcml0eSAxMDIvMTAxOiBpbiBjYXNlIG9mIG1hbGxvYyBmYWlsdXJlcyBmcmVlIHdoYXQgeW91IGhhdmUgc3VjY2VlZCBpbiBtYWxsb2NpbmcKCjIwMDYtMDMtMDkgMDk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6CgogICBkb3VibGUgY2hlY2sgdGhhdCBuZXZlci1zaG91bGQtYmUtbnVsbCBjb25kaXRpb25zIGFyZSB0cnVlCgoyMDA2LTAzLTA5IDA5OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGNvdmVyaXR5IDkxOiBmcmVlIHZhcmlvdXMgbWVtb3J5IGFsbG9jYXRpb25zIHdoZW4gc3Vic2VxdWVudCBhbGxvY2F0aW9ucyBmYWlsCgoyMDA2LTAzLTA5IDA5OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgY292ZXJpdHkgIzQxOiBub3QgbGlrZWx5IGEgcmVhbCBudWxsIGRlcmVmIGZvciB2YWxpZCB1c2UgY2FzZXM7IGNhc2VzLiAgZG91YmxlIGNoZWNrIGZvciBpc3N1ZXMgYW55d2F5CgoyMDA2LTAzLTA5IDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIEZ1bGxlciBpbXBsZW1lbnRhdGlvbiBvZiBtZW1vcnkgSEFMIGZvciBTb2xhcmlzICgxMCBhdCBsZWFzdCkKCjIwMDYtMDMtMDkgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgY292ZXJpdHkgNTA6IGRvdWJsZSBjaGVjayB3ZSBjb3VsZCBmaW5kIHRoZSBleHRlbnNpb24gdG8gcmVtb3ZlCgoyMDA2LTAzLTA5IDA4OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGNvdmVyaXR5IDUxOiBkb3VibGUgY2hlY2sgd2UgY291bGQgZmluZCB0aGUgZXh0ZW5zaW9uIHRvIHJlbW92ZQoKMjAwNi0wMy0wOSAwODoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBlbnN1cmUgaWxsZWdhbCBjb25maWd1cmF0aW9uIG9mIHRvbyBsb25nIE9JRHMgZG9lc24ndCBvY2N1cgoKMjAwNi0wMy0wOSAwODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIGNvdmVyaXR5IDY2OiBjaGVjayB0aGF0IG51bGwgaXNuJ3Qgd3JpdHRlbiBiZXlvbmQgZW5kCgoyMDA2LTAzLTA5IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBjb3Zlcml0eSA2NzogZW5zdXJlIHdlIGRvbid0IHdyaXRlIHRoZSBudWxsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIKCjIwMDYtMDMtMDkgMDg6MDcgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhIHNjcmlwdCB0byBoZWxwIGF1dG9tYXR0ZWQgcGF0Y2ggbWFuYWdlbWVudCBhbmQgYXBwbHkgcGF0Y2hlcyB0byBtdWx0aXBsZSBicmFjaGVzIG9mIHRoZSBuZXQtc25tcCB0cmVlCgoyMDA2LTAzLTA5IDA4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IDkyOiBmcmVlIGRhdGEgc3RydWN0dXJlIGluIGV2ZW50IHNvbWVob3cgYW4gdW5zdXBwb3J0ZWQgZGF0YSB0eXBlIGlzIHBhc3NlZCBpbiAoY2FuJ3QgYWN0dWFsbHkgaGFwcGVuIHdpdGggY3VycmVudCBjb2RlKQoKMjAwNi0wMy0wOSAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSA5MzogZnJlZSBwb2ludGVycyB3aGVyZSBtYWxsb2Mgc3VjY2VlZGVkIGlmIGl0IHN1ZGRlbmx5IHN0b3BwZWQgc3VjY2VlZGluZwoKMjAwNi0wMy0wOSAwNzozMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIHR5cG8KCjIwMDYtMDMtMDkgMDc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBjb3Zlcml0eSAjMTA1OiBmcmVlIHN0b3JhZ2UgaW4gZXJyb3IgbG9vcAoKMjAwNi0wMy0wOCAyMTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgY292ZXJpdHkgNTI6IHJhcmUgKG5ldmVyKSBkZXJlZmVyZW5jZSBpbiBpbGxlZ2FsIGNvZGUgY2FzZXMuCgoyMDA2LTAzLTA4IDIxOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGNvdmVyaXR5IDEwNjogcmFyZSBtZW1vcnkgbGVhayBvbiBpbGxlZ2FsIGFnZW50eCBwZHUncyBiZWluZyBwYXNzZWQgdG8gdGhlIGNsaWVudAoKMjAwNi0wMy0wOCAyMTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgY292ZXJpdHkgMTEyOiBjbG9zZSBmaWxlIGhhbmRsZSBmb3IgL3Byb2MvbmV0L2FycAoKMjAwNi0wMy0wOCAyMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBjb3Zlcml0eSBidWcgIzExMzogZmNsb3NlIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGluIGVycm9yIGxvb3AKCjIwMDYtMDMtMDggMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjNTM6IGNoZWNrIHRoYXQgY2xvc2VfYWdlbnR4X3Nlc3Npb24gd2Fzbid0IHBhc3NlZCBhIE5VTEwgc2Vzc2lvbgoKMjAwNi0wMy0wOCAxNjowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgY292ZXJpdHkgIzEwNzogZml4IHJhcmUgcGR1IG1lbW9yeSBsZWFrIHdoZW4gZnVuY3Rpb24gY2FsbGVkIGlsbGVnYWx5CgoyMDA2LTAzLTA4IDE2OjAzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAqYXQgbGVhc3QqIGlzc3VlIGEgV0FSTklORyBpZiB3ZSdsbCBjcmVhdGUgbm9uLXBvcnRhYmxlIHRhciBhcmNoaXZlcyBqdXN0IGJlY2F1c2UgdGhlIHJlbGVhc2UgbWFuYWdlciBmYWlsZWQgdG8gaW5zdGFsbCBzdGFyLgoKMjAwNi0wMy0wOCAxNTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgY292ZXJpdHkgYnVnICMxMDg6IHN0aWxsIHNob3VsZCBmcmVlIG1lbW9yeSBpbiB0aGUgbmV2ZXItc2hvdWxkLWhhcHBlbiBjYXNlCgoyMDA2LTAzLTA4IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIGNvdmVyaXR5ICMxMDk6IGNsb3NlIGZpbGUgcG9pbnRlciBpbiBlcnJvciBjb25kdGlvbnMgdG8gYXZvaWQgcG90ZW50aWFsIHJhcmUgbGVha3MKCjIwMDYtMDMtMDggMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjb3Zlcml0eSBidWcgODUsIHIxNTogZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhawoKMjAwNi0wMy0wOCAxNDo0OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIC0gY292ZXJpdHkgYnVnIDQwLCBydW4gMTU6IGZpeCBwb3RlbnRpYWwgbnVsbCBkZXJlZmVyZW5jZQogICAtIG1pc2Mgb3RoZXIgY2xlYW51cC9lcnJvciBoYW5kbGluZwogICAgIC0gcmVsZWFzZSBtZW1vcnkgdGhhdCB3b24ndCBiZSB1c2VkIGJlZm9yZSByZXR1cm5pbmcgZXJyb3JzCiAgICAgLSBjaGVjayBmb3IgcG90ZW50aWFsIG51bGwgcmV0dXJuIGZyb20gZnVuY3Rpb24KICAgICAtIGFzc2lnbiB2YWx1ZXMgdG8gY29ycmVjdCB2YXJpYWJsZQoKMjAwNi0wMy0wOCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDEyOTogY2hlY2sgc2Vzc2lvbiBvcGVuIHJlc3VsdHMgd2hlbiBmb3J3YXJkaW5nIGFuZCBiYWlsIGlmIGZhaWxlZCB0byBvcGVuCgoyMDA2LTAzLTA4IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgY292ZXJpdHkgYnVnICMgY2hlY2sgZm9yIG51bGwgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCjIwMDYtMDMtMDggMTQ6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgYnVnICMgMTE1OiBjaGVjayBmb3IgbWFsbG9jIGZhaWx1cmUgYmVmb3JlIHVzaW5nIHRoZSByZXN1bHRzCgoyMDA2LTAzLTA4IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgY292ZXJpdHkgYnVnICMgMTE2OiBjaGVjayAoYW55d2F5KSBmb3IgbnVsbCBpbiB2YXJpYWJsZXMgdGhhdCBzaG91bGQgbmV2ZXIgYmUgbnVsbAoKMjAwNi0wMy0wOCAxMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgY292ZXJpdHkgYnVnICMxMTc6IGRvdWJsZSBjaGVjayB0aGF0IHBvaW50ZXIgaXNuJ3QgbnVsbCBmb3Igc2FmZSBwcm9ncmFtbWluZyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDMtMDggMTM6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTE4OiBkb3VibGUgY2hlY2sgdGhhdCBwb2ludGVyIGlzbid0IG51bGwgZm9yIHNhZmUgcHJvZ3JhbW1pbmcgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA4IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY292ZXJpdHkgYnVnICMxMjA6IGF2b2lkIGEgcG9zc2libGUgZGVmZXJlbmNlIHRvIGEgZnJlZWQgdmFyaWFibGUKCjIwMDYtMDMtMDggMTM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIyOiByZXR1cm4gTlVMTCBhZnRlciBmYWlsaW5nIHRvIG9wZW4gdHJhbnNwb3J0LgoKMjAwNi0wMy0wOCAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgY292ZXJpdHkgYnVnICMxMjM6IGF2b2lkIGRvdWJsZSBmcmVlIGZvciBsb25nIE9JRCBjYXNlcyBkdXJpbmcgZ2V0bmV4dAoKMjAwNi0wMy0wOCAxMDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGVjayBmb3Igc3RhciBiZWZvcmUgdXNpbmcKCjIwMDYtMDMtMDggMTA6NDggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdXNlIHN0YXIgaWYgYXZhaWxhYmxlCgoyMDA2LTAzLTA4IDA2OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGEgdmVyeSByYXJlIG9pZCBwYXJzaW5nIGJ1ZyBmb3Igc3RyaW5ncyBpbiB0cnVuY2F0ZWQgT0lEcwoKMjAwNi0wMy0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV93aW4uYzoKCiAgIFdpbmRvd3MgdmVyc2lvbiBvZiBtZW1vcnkgSEFMIGludGVyZmFjZQoKMjAwNi0wMy0wOCAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBFeHRyYSBwcm90ZWN0aW9uIHdoZW4gY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MKCjIwMDYtMDMtMDcgMjI6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgY292ZXJpdHkgYnVnICMxMDQ6IHJhcmUgY2FzZSBtZW1vcnkgbGVhayBpZiB5b3UncmUgb3V0IG9mIG1lbW9yeSBpbiB0aGUgZmlyc3QgcGxhY2UKCjIwMDYtMDMtMDcgMjI6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgY292ZXJpdHkgYnVncyAjMTE5IGluaXRpYWxpemUgMiBwb2ludGVycyB0byAwCgoyMDA2LTAzLTA3IDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTMyOiBmcmVlIHZhcmlvdXMgcG9pbnRlcnMgaW4gZXJyb3IgbG9vcHMKCjIwMDYtMDMtMDcgMjI6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgYnVnICMxMzM6IGZyZWUga2V5IGFmdGVyIG1hbGxvYyBpbiBleGl0IGxvb3AgYWZ0ZXIgb3BlbnNzbCBmYWlsZWQKCjIwMDYtMDMtMDcgMjI6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTM0OiBmcmVlIG5ld3BkdSBkdXJpbmcgYSB2YWNtLW5vdC1jb25maWd1cmVkIGJhaWwtb3V0CgoyMDA2LTAzLTA2IDA4OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVXBkYXRlIE1lbW9yeSBIQUwgZnJhbWV3b3JrIHRvIHN1cHBvcnQgSG9zdFJlcyBzdG9yYWdlCiAgIGluZm9ybWF0aW9uLCBhbmQgdHdlYWsgaHJTdG9yYWdlVGFibGUgaW1wbGVtZW50YXRpb24gdG8gdXNlIGl0LgogICBUaGlzIGhhcyBiZWVuIHRlc3RlZCBvbiB7RnJlZSxOZXQsT3Blbn1CU0QsIExpbnV4IGFuZCBIUC1VWC4KICAgSXQncyBwcm9iYWJseSBzdGlsbCBicm9rZW4gb24gQUlYLCBEYXJ3aW4sIER5bml4IGFuZCBTb2xhcmlzCiAgIChhbmQgYW55IHN5c3RlbSBub3QgZXhwbGljaXRseSBtZW50aW9uZWQ/KQoKMjAwNi0wMy0wNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBGaXggcmV0cmlldmFsIG9mIGZpbGVzeXN0ZW0gaW5mb3JtYXRpb24gb24gTmV0QlNECgoyMDA2LTAzLTA2IDAzOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgU3VwcG9ydCBVQ0QgbWVtb3J5L2NwdSBNSUJzIG9uIE9wZW5CU0QgMy54CgoyMDA2LTAyLTI3IDA0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgVHdlYWsgVUNEIG1lbW9yeSBjb25maWd1cmUgcHJvY2Vzc2luZyB0byB3b3JrIHdpdGggdGhlIG1vc3QgcmVjZW50CiAgIE9wZW5CU0QgYW5kIE5ldEJTRCByZWxlYXNlcywgYW5kIHRvIHVzZSB0aGUgbWVtb3J5IEhBTAoKMjAwNi0wMi0yNyAwNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBUd2VhayBtZW1vcnkgSEFMIGNvbmZpZ3VyZSBwcm9jZXNzaW5nIHRvIHdvcmsgd2l0aCB0aGUgbW9zdCByZWNlbnQKICAgT3BlbkJTRCBhbmQgTmV0QlNEIHJlbGVhc2VzCgoyMDA2LTAyLTI3IDA0OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvOiBtZW1vcnlfZnJlZWJzZC5jLAogICAgIG1lbW9yeV9uZXRic2QuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIG1lbW9yeSBIQUwgY29kZSBvbiAqQlNEIHN5c3RlbXMKCjIwMDYtMDItMjcgMDQ6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMsIG1lbW9yeS5oOgoKICAgVXBkYXRlIFVDRCBtZW1vcnkgZ3JvdXAgdG8gbWFrZSBwcm9wZXIgdXNlIG9mIG1lbW9yeSBIQUwgcm91dGluZXMKCjIwMDYtMDItMjcgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBVcGRhdGUgZGVmaW5pdGlvbnMgdG8gbWF0Y2ggbmV3IG1lbW9yeSBIQUwgY29kZQoKMjAwNi0wMi0yNCAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnkuYywKICAgICB1Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIFVzZSBtZW1vcnkgSEFMIGZvciB0aGUgVUNEIG1lbW9yeSBncm91cCAoYWxsIGFyY2hpdGVjdHVyZXMpLgogICBUaGlzIHdpbGwgcHJvYmFibHkgYnJlYWsgdGhlIGFnZW50IG9uIGFsbCBiYXIgTGludXggc3lzdGVtcwogICBhbmQgbWFrZSBldmVyeW9uZSAoaW5jbHVkaW5nIFRob21hcykgdW5oYXBweS4KICAgU28gdGhlIGN5Y2xlIG9mIGxpZmUgY29udGludWVzLiAgT2ggRm9ydHVuYS4uLi4KCjIwMDYtMDItMjQgMDg6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogbWVtb3J5LmgsIG1lbW9yeS9tZW1vcnlfYWl4LmMKLCBtZW1vcnkvbWVtb3J5X2Rhcndpbi5jLCBtZW1vcnkvbWVtb3J5X2R5bml4LmMsCiAgICAgbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIG1lbW9yeS9tZW1vcnlfaHB1eC5jLAogICAgIG1lbW9yeS9tZW1vcnlfbGludXguYywgbWVtb3J5L21lbW9yeV9uZXRic2QuYywKICAgICBtZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIEV4dGVuZCBtZW1vcnkgSEFMIHRvIGNvdmVyIGFsbCAod2VsbCwgbW9zdCkgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCiAgIE5vdCB5ZXQgdGVzdGVkIG9uIG1vc3Qgb2YgdGhlc2Ugc3lzdGVtcywgc28gdGhlcmUgbWF5IGVhc2lseSBiZSBwcm9ibGVtcy4KICAgQnV0IGF0IGxlYXN0IHRoaXMgc2hvdWxkIHNlcnZlIHRvIGtlZXAgVGhvbWFzIGhhcHB5Li4uLgoKMjAwNi0wMi0yMiAwODo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvOiBleHBFcnJvclRhYmxlLmMsCiAgICAgZXhwRXhwcmVzc2lvbi5jLCBleHBFeHByZXNzaW9uLmgsIGV4cEV4cHJlc3Npb25Db25mLmMKLCBleHBFeHByZXNzaW9uQ29uZi5oLCBleHBFeHByZXNzaW9uVGFibGUuYywKICAgICBleHBPYmplY3QuYywgZXhwVmFsdWUuYywgZXhwVmFsdWUuaCwKICAgICBleHBWYWx1ZVRhYmxlLmMsIGV4cF9lbnVtLmg6CgogICBJbXByb3ZlZCBleHByZXNzaW9uIHBhcnNpbmcsIGFuZCBwcmVsaW1pbmFyeSBldmFsdWF0aW9uIG9mIGV4cHJlc3Npb25zLgoKMjAwNi0wMi0yMCAxNTo0NCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIFJlbW92ZSBoaXN0b3JpYyByZWZlcmVuY2VzIHRvIHRhciBwcm9ibGVtcyAoYXQgZXZlbiBtb3JlIHBsYWNlcykKCjIwMDYtMDItMjAgMTU6MzggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBSZW1vdmUgaGlzdG9yaWMgcGFyYWdyYXBoIG9uIHRhciBwcm9ibGVtczotKQoKMjAwNi0wMi0yMCAxNToyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgKGZ1cnRoZXIpIGNsYXJpZnkgdGhlIG9yaWdpbmFsIEdOVSB0YXIgcHJvYmxlbXMKCjIwMDYtMDItMjAgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1c2Ugc3RhciBpbnN0ZWFkIG9mIHRhciBmb3IgY3JlYXRpbmcgYXJjaGl2ZXMgdG8gZ2V0IGFyb3VuZCBnbnUgdGFyIGluY29tcGF0aWJpbGl0aWVzCgoyMDA2LTAyLTE3IDA3OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgLWZpeCBidWcgMTM5OTQyMTogNS4yKzogdHVubmVsIG1pYiBmYWlscyB0byBidWlsZCB3LyBpZi1taWIgcmV3cml0ZQoKMjAwNi0wMi0xNiAxNToxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIFQwNDlzbm1wdjNpbmZvcm0KLCBUMDQ5c25tcHYzaW5mb3JtYXV0aCwgVDA0OXNubXB2M2luZm9ybXByaXYsCiAgICAgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTd0cmFwZGF1dGh0ZXN0LAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0MiwgVDA1N3RyYXBkYXV0aHRlc3QzLAogICAgIFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBhZGQgIi10ICRTTk1QX1NMRUVQIiB0byBzbm1waW5mb3JtIGluIG9yZGVyIHRvIGF2b2lkIHRlc3QgZmFpbHVyZXMgb24gc2xvdyBtYWNoaW5lcyBldmVuIHdpdGggYW4gaW5jcmVhc2VkIFNOTVBfU0xFRVAgKGZpeGVzIGJ1ZyAxNDAzNjg4KQoKMjAwNi0wMi0xNSAxNjoyNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICAgIFQwNTZhZ2VudHYyY21pbnRyYXA6CgogICBkb24ndCBsZXQgc25tcHRyYXBkIG9wZW4gc3lzdGVtIGFnZW50eCBzb2NrZXQgZHVyaW5nIHRlc3RpbmcgKHNlZSBidWcgMTQyNDI5MykKCjIwMDYtMDItMTUgMTY6MDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNDlzbm1wdjNpbmZvcm1hdXRoCiwgVDA0OXNubXB2M2luZm9ybXByaXYsIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QsIFQwNTd0cmFwZGF1dGh0ZXN0MiwKICAgICBUMDU3dHJhcGRhdXRodGVzdDMsIFQwNThhZ2VudGF1dGh0cmFwLAogICAgIFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBkb24ndCBsZXQgc25tcHRyYXBkIG9wZW4gc3lzdGVtIGFnZW50eCBzb2NrZXQgZHVyaW5nIHRlc3RpbmcgKHNlZSBidWcgMTQyNDI5MykKCjIwMDYtMDItMTUgMTA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZ2V0dGFibGU6ICBmaXggcmVwZWF0IGNvdW50IGZvciBTTk1QdjEgJiBmaXggLWNvbHVtbnMgdG8gYWN0dWFsbHkgd29yawoKMjAwNi0wMi0xNCAwNjo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsCiAgICAgaWZUYWJsZV9jb25zdGFudHMuaDoKCiAgIFJlZ2lzdGVyIGlmTnVtYmVyIGFzIGEgc2NhbGFyIG9iamVjdCwgbm90IGFuIGluc3RhbmNlLCBzbyB0aGF0CiAgIGl0IGhhbmRsZXMgaW52YWxpZCBpbnN0YW5jZXMgcHJvcGVybHksIGFuZCBmaXggT0lEIHJlZ2lzdHJhdGlvbi4KCjIwMDYtMDItMTMgMTc6NDIgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGUgUFNESyBkb3dubG9hZCBpbnN0cnVjdGlvbnMuCgoyMDA2LTAyLTEzIDE1OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsCiAgICAgaWZUYWJsZV9jb25zdGFudHMuaDoKCiAgIGZpeCBidWcgMTM5OTM2OTogaWZOdW1iZXIgYnJva2VuCgoyMDA2LTAyLTEzIDEwOjQ5ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBhZGQgNS4zLjAuMSBzZWN1cml0eSBmaXggYW5kIHNtdXggdHJhcCBwYXRjaAoKMjAwNi0wMi0xMyAxMDozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGZpeCB0cmFwIHByb2Nlc3NpbmcgZnJvbSBTTVVYIHBlZXJzIChwYXRjaCAxNDMwODI0IGZyb20gRGVsbCwgc3VibWl0dGVkIGJ5IFN1U0UpCgoyMDA2LTAyLTEzIDA3OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbmNyZWFzZSBudW1iZXIgb2YgcmV0cmllcyBmb3IgcG9ydCBwcm9iaW5nIHRvIGxvd2VyIHRoZSBjaGFuY2UgZm9yIHNwdXJpb3VzIHRlc3QgZmFpbHVyZXMKCjIwMDYtMDItMTEgMTU6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgc2V0IHBlcnNpc3RlbnREaXIgZm9yIHNubXB0cmFwZCBpbiBvcmRlciB0byBhdm9pZCBiZWluZyBpbnZhc2l2ZSAoc2VlIGJ1Z3MgMTQwMzY4OCwgMTQyNDI5MykKCjIwMDYtMDItMTAgMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgaGVscGVycy9idWxrX3RvX25leHQuYywKICAgICBoZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGEgdGFuZ2xlZCB3ZWIgb2YgZml4ZXMgZm9yIG92ZXJyaWRlCiAgICAgLSBiYWNrIG91dCBmaXggZm9yIDcxMTQ2NTogb3ZlcnJpZGUgZGlyZWN0aXZlIGlnbm9yZWQgd2l0aCBzbm1wYnVsa2dldAogICAgIC0gYXBwbHkgbmV3IGZpeGVzIGZvciA3MTE0NjUgKHNlZSBidWcgcmVwb3J0IGZvciBnb3J5IGRldGFpbHMpCiAgICAgLSBhbHNvIGZpeCBvdmVycmlkZSBvZiB0YWJsZSBpbnN0YW5jZSwgcmVwb3J0ZWQgb24gY29kZXJzCiAgIC0gYW5kLCBxdW90aW5nIERhdmU6CgogICBJJ20gbm90IGF0IGFsbCBzdXJlIHRoYXQgdGhpcyBpcyBuZWNlc3NhcmlseSB0aGUgY29ycmVjdCBmaXgsIGJ1dAogICBpdCB3YXNuJ3QgdmVyeSBjbGVhciBhcyB0byBleGFjdGx5IHdoYXQgaXMgYmVpbmcgaGFuZGxlZCBoZXJlLgogICBUaGlzIGNoYW5nZSBjZXJ0YWlubHkgYWRkcmVzc2VzIHRoZSBhYm92ZSBidWcgcmVwb3J0LCB3aXRob3V0CiAgIHNlZW1pbmcgdG8gYnJlYWsgYW55dGhpbmcgZWxzZS4KCiAgIExldCdzIGdpdmUgdGhpcyBwYXRjaCB0aW1lIHRvIHNldHRsZSBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IGNvZGUsCiAgIGFuZCB0aGVuIGNvbnNpZGVyIGJhY2stcG9ydGluZyBpdCB0byBlYXJsaWVyIGxpbmVzLi4uLi4KCjIwMDYtMDItMDYgMTU6MzYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgY2hlY2tzIGZvciAic3RydWN0IG5saXN0NjQiLCBvZmY2NF90IGFuZCBsc2VlazY0IChmb3IgSVJJWCBhbmQgZnJpZW5kcykKCjIwMDYtMDItMDQgMTQ6MzIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgZmFpbCAibWFrZSIgb24gU05NUF9FUlJfTk9FUlJPUgoKMjAwNi0wMi0wMyAxNzozMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgYmFja2luZyBvdXQgcHJldmlvdXMgcGF0Y2ggKHdoaWNoIGJyZWFrcyB0ZXN0ICMyNCAiU05NUHYzIHRyYXBzIHJlY2VpdmVkIGFuZCBzZW50IGJ5IHRvb2xzIikgdW50aWwgc29tZW9uZSBmaW5kcyB0aGUgdGltZSB0byByZXZpZXcgaXQgYWdhaW4KCjIwMDYtMDItMDMgMTY6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZDoKCiAgIGZpeCB0eXBvCgoyMDA2LTAyLTAyIDE5OjMxICBhbGV4X2IKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBmb3IgYnVnIDE0MjA3NTguICBNaXNzaW5nIGNhbGwgKHR5cG8/KSBmb3IgRkRfWkVSTygmZXhjZXB0ZmRzKS4KCjIwMDYtMDItMDIgMTQ6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSB1c2UgdHJlZV9oZWFkIGlmIHRyZWVfdG9wIHdhcyBOVUxMLiBoYW5kbGVzIGJvdGggT0lEIGFuZCBuYW1lIGxvb2t1cHMKCjIwMDYtMDItMDEgMTg6NTggIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbG1TZW5zb3JzLmMsIGxtU2Vuc29ycy5oOgoKICAgaW5jb3Jwb3JhdGUgbWFqb3IgcGF0Y2hlcyBieSBNaWtlIEZpc2hlciBhbmQgVG9tIEUuIExhY2tsZXkKCjIwMDYtMDItMDEgMDk6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSByZXZlcnQgY2hhbmdlcyBmcm9tIHZlcnNpb24gNS44OCwgd2hpY2ggYnJva2UgcGFyc2luZyBmdWxseSBxdWFsaWZpZWQKICAgICBuYW1lZCBPSURzIChlZyAuaXNvLm9yZykuIEFub3RoZXIgZml4IGZvciBwYXJzaW5nIG51bWVyaWMgT0lEcyBiZWZvcmUKICAgICBNSUIgZmlsZXMgYXJlIGxvYWRlZCBuZWVkcyB0byBiZSBpbnZlc3RpZ2F0ZWQuCgoyMDA2LTAxLTMxIDEwOjMxICB0YW5kZXJzCgogICAqIG1hbi86IG1pYjJjLmV4dHJhY3QucGwsIHNubXBuZXRzdGF0LjEuZGVmOgoKICAgZml4IG1hbnVhbCBwYWdlIGZvcm1hdHRpbmcgZXJyb3JzIChEZWJpYW4gcGF0Y2ggIzE3LCBvcmlnaW5hbCBhdXRob3IgTmljb2xhcyBGcmFuY29pcykKCjIwMDYtMDEtMzEgMDk6MjcgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBGaXggQmVnaW4gc291cmNlIC8gZW5kIHNvdXJjZSBsaW5lcy4gIEJ1ZyAxNDA0NDAyLgoKMjAwNi0wMS0zMSAwNDo1MSAgZHRzMTIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdXNtLmMKOgoKICAgRml4IGFzc29ydGVkIHNpZ25lZG5lc3MgbWlzbWF0Y2hlcy4KCjIwMDYtMDEtMzEgMDQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgICBzbm1wVURQRG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgICB0b29scy5jOgoKICAgRml4IGFzc29ydGVkIHNpZ25lZG5lc3MgbWlzbWF0Y2hlcy4KCjIwMDYtMDEtMzAgMDQ6MDcgIGR0czEyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzbm1wdjMuYzoKCiAgIEZpeCBhc3NvcnRlZCB1bnNpZ25lZCBjb21wYXJpc29ucyBhZ2FpbnN0IDAuICAoU2VlIEJ1ZyAjMTM5Nzg5MSkKCjIwMDYtMDEtMzAgMDM6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENvcnJlY3QgaW1wcm9wZXIgdXNlIG9mICduZXRzbm1wX2hleF90b19iaW5hcnknCiAgIChNeSBtaXN0YWtlLCBub3QgUmFkZWsncykKCjIwMDYtMDEtMzAgMDM6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEhhbmRsZSBmdWxsLWxlbmd0aCBJUHY2IGFkZHJlc3Nlcy4gIEZpeCBzdXBwbGllZCBieSBSYWRlayBWb2vniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy044CVCgoyMDA2LTAxLTMwIDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9uJ3Qgc2F2ZSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24gdW50aWwgcnVubmluZyB1c2VyL2dyb3VwIGhhdmUgYmVlbgogICByZXNldC4gIEJhc2VkIG9uIHBhdGNoICMxMzcxMDc4LgoKMjAwNi0wMS0zMCAwMTo0NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgVXBkYXRlIGhhbmRsaW5nIG9mIGVuZE9mTWliVmlldyBleGNlcHRpb25zLiAgUGF0Y2ggIzEwNDc3MDYKCjIwMDYtMDEtMzAgMDE6MzUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFN1cHBvcnQgZm9yIHJlYWRpbmcvc3RvcmluZyBJUCBhZGRyZXNzIHZhbHVlcy4gIEV4cGFuZGVkIGZyb20gcGF0Y2ggIzEwNzcwMAoKMjAwNi0wMS0zMCAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRG9uJ3QgcmVsZWFzZSB0aGUgcmVzcG9uc2UgUERVIHByZW1hdHVyZWx5LCBiZWZvcmUgdHJ5aW5nIHRvCiAgIGV4dHJhY3QgT0lEcyBmcm9tIGl0LiAgUGF0Y2ggIzEyNzc1MDguCgoyMDA2LTAxLTMwIDAxOjI2ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IFBBVEggdHlwbwoKMjAwNi0wMS0yNyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkbyB1bmRvIHJlZiBjb3VudCB2aWEgcm93cmVxX2N0eCwgbm90IGRhdGFfbGlzdAoKMjAwNi0wMS0yNyAwOToyNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvU05NUC9TTk1QLnhzCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEhhbmRsZSBub24taW5jcmVhc2luZyBPSURzIGR1cmluZyBhIChwZXJsKSBidWxrd2Fsay4KICAgUGF0Y2ggIzEzNjQ2NTAgZnJvbSBPbGUgQmrniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy05Ze3biBIZXNzZW4KCjIwMDYtMDEtMjcgMDM6MDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIHZhbHVlcyBtb3JlIGdyYWNlZnVsbHkuCgoyMDA2LTAxLTI2IDA5OjAyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIEFwcGx5IFBhdGNoICMxMzk0MDY4IHRvIE1mRCBnZW5lcmF0ZWQgdGVtcGxhdGVzLgoKMjAwNi0wMS0yNSAwODoyNSAgZHRzMTIKCiAgICogZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMKLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsCiAgICAgc25tcGxpYi90b29scy5jOgoKICAgQ29tcHJlaGVuc2l2ZSByZXZpZXcgb2YgaW4tbGluZSBkb2N1bWVudGF0aW9uLgogICBBIG1vc3QgaW1wcmVzc2l2ZSBlZmZvcnQgYnkgIE5hemltIEJhaXppZCAgKFBhdGNoICMxMzk0MDY4KQoKMjAwNi0wMS0yNSAwNzozNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERvbid0IGJlIGluIHN1Y2ggYSBydXNoIHRvIHJlbGVhc2UgTUlCIHJlZ2lzdHJhdGlvbiBzdHJ1Y3R1cmUuCiAgIFNlZSBQYXRjaCAjMTM4NjUyOAoKMjAwNi0wMS0yNSAwNzozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIEFkZGl0aW9uYWwgZGVidWdnaW5nIGluZm8KCjIwMDYtMDEtMjQgMDg6MjEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbGVhc2UgbWVtb3J5IGJlZm9yZSByZS1hbGxvY2F0aW5nIGl0LiAgU2VlIFBhdGNoICMxNDA3MTczCgoyMDA2LTAxLTI0IDA4OjAyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEltcHJvdmVkL2ZpeGVkIHBlcmwgd2FybmluZ3MuICBTZWUgUGF0Y2ggIzEzMzQ1OTgKCjIwMDYtMDEtMjQgMDY6NDAgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ2hlY2sgIlRpbWVTdGFtcCIgcmVmZXJlbmNlIGJlZm9yZSB1c2UgKGluIGxpbmUgd2l0aAogICB0aGUgb3RoZXIgb2NjdXJhbmNlcyBpbiB0aGlzIGZpbGUpLiAgU2VlIEJ1ZyAjMTM3NTI4MgoKMjAwNi0wMS0yNCAwNjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENoZWNrIGZvciBtaXNzaW5nIG1vbml0b3JlZCB2YWx1ZXMgKHNlZSBCdWcgIzE0MDQ2MDUpCgoyMDA2LTAxLTI0IDA1OjQ3ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIERvbid0IG92ZXJyaWRlIGFuIGV4cGxpY2l0IERFRlBSSVZUWVBFIHNldHRpbmcsCiAgIGV2ZW4gaWYgdGhlIGxpYnJhcnkgZG9lc24ndCBzdXBwb3J0IGVuY3J5cHRpb24uCgoyMDA2LTAxLTI0IDAxOjUxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVwbGFjZSAiPT0iIGJ5ICI9IiB3aGVuIHVzaW5nICJ0ZXN0IiAocmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDYtMDEtMjMgMDc6MDUgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBOZXcgaGFuZGxlciB0byBmb3J3YXJkIHRyYXBzIHZpYSB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudC4KCjIwMDYtMDEtMjAgMTU6MTYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgaW50cm9kdWNlIG5ldyBzbm1wdXNtIG9wdGlvbiAtQ3AgdG8gc2V0IHVzbVVzZXJQdWJsaWMgdmFsdWUKCjIwMDYtMDEtMjAgMDk6MDEgIGR0czEyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQKLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgTW9kdWxhciBhcHByb2FjaCBmb3IgcHJvYmluZyB0byBkZXRlY3QgZnJlZSBwb3J0cy4gIFNlZSBCdWcgIzEzMzU3NjcKCjIwMDYtMDEtMTggMTY6MDYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmM6CgogICBBdm9pZCBleHBlbnNpdmUgZ2VuZXJhdGVfS3UoKSBpZiBuZXdwYXNzIGlzIGEgbG9jYWxpemVkIGtleSAoaW5zdGVhZCBvZiBhIHBhc3NwaHJhc2UpLiBNYWtlcyBhIGh1Z2UgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgdGhlbi4KCjIwMDYtMDEtMTggMTE6MzQgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIGJhc2UgYXJjaCAoZWcgaTM4Niwgbm90IGk2ODYpOyB1c2UgUlBNX0JBU0UgZm9yIHRvcGRpcgoKMjAwNi0wMS0xOCAwODoyNyAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVnaXN0ZXIgUlBNcyBhcyBiZWluZyBidWlsdCBieSB0aGUgTmV0LVNOTVAgcHJvamVjdC4KCjIwMDYtMDEtMTggMDg6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgYmVlY3J5cHQtZGV2ZWwsIGVsZnV0aWxzLWxpYmVsZi1kZXZlbCB0byBCdWlsZFJlcXVpcmVzCgoyMDA2LTAxLTE4IDA3OjM1ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJlc3RvcmUgZmlsZSAobG9va3MgbGlrZSBWZXJzaW9uTXVuZ2UgbnVrZWQgaXQ/KTsgYnVtcCB2ZXJzaW9uIHRvIDUuNC5kZXYKCjIwMDYtMDEtMTggMDc6MTggIHRhbmRlcnMKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaXggdHlwbwoKMjAwNi0wMS0xNyAwNzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gb2Jzb2xldGUgKGFuZCBtaXNzaW5nKSByb3V0aW5lLiAgU2VlIEJ1ZyAjMTAxMTA1MQoKMjAwNi0wMS0xNyAwNjoyNiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVjb2duaXNlIHJhbmdlIHBhcnNpbmcgZXJyb3JzIHByb3Blcmx5LgoKMjAwNi0wMS0xNSAxMTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBiZXR0ZXIgY29vcGVyYXRpb24gZm9yIGludGVyZmFjZSB0YWJsZXMgdXNpbmcgc2hhcmVkIGNvbnRhaW5lcgogICAgIC0gdXNlIG9uZSBkaXJ0eSB2YXJpYWJsZQogICAgIC0gdXNlIG5ldyByZWYgY291bnRpbmcgdW5kbyBhbGxvYy9mcmVlIGZ1bmN0aW9uIGZyb20gaWZUYWJsZQoKMjAwNi0wMS0xNSAwNjoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyAoZG9uZSBlbHNld2hlcmUpCgoyMDA2LTAxLTE1IDA2OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gbW92ZSB1bmRvIGlmZW50cnkgaGFuZGxpbmcgaGVyZQogICAtIGFkZCByZWZlcmVuY2UgY291bnRpbmcgZm9yIHVuZG8KCjIwMDYtMDEtMTUgMDY6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBpbnRvIGludGVyZmFjZQoKMjAwNi0wMS0xMyAxNzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWxsb3cgd3JpdGUgc3VwcG9ydCBmb3IgbmV3IHVzZXIgdG8gdGVzdCBwYXN3b3JkIGNoYW5nZXMKCjIwMDYtMDEtMTMgMTU6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGZpeCBiaXR3aXNlIHRlc3QgdG8gdXNlIGJpdHdpc2UgbWFjcm9zCgoyMDA2LTAxLTEzIDA4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZG9uJ3QgZG91YmxlIGFsbG9jYXRlIHVuZG8gaWZlbnRyeQoKMjAwNi0wMS0xMyAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBtb3ZlIGFsbCByZWZzIHRvIHVuZG8gcHJvbWlzYyBtb2RlIGluc2lkZSBwcm9taXNjIHNldCBlbmFibGUgaWZkZWZzCiAgIC0gaWYgcHJvbWlzYyBtb2RlIHNldCBlbmFibGVkLCBtYWtlIHN1cmUgdG8gYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA3OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBjb3JyZWN0IHByb2MgcGF0aCBmb3IgYmFzZSByZWFjaGFibGUgdGltZQogICAtIHVzZSBjb3JyZWN0IGZsYWcgZm9yIGJhc2UgcmVhY2hhYmxlIGF2YWlsYWJpbGl0eQogICAtIGFjdHVhbGx5IHB1dCBiYXNlIHJlYWNoYWJsZSB0aW1lIGluIGlmZW50cnkgYWZ0ZXIgcmVhZGluZyBpdAoKMjAwNi0wMS0xMSAxNToyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgKOgoKICAgSVJJWCBhdFRhYmxlIGZpeDogdXNlIHN5c2N0bCgpIGluc3RlYWQgb2Ygbmxpc3QoKSB0byBzdXBwb3J0CiAgIElSSVggKmFuZCogSVJJWDY0IGtlcm5lbHMgYXQgb25jZSBhbmQgbm90IHJlcXVpcmUgL2Rldi9rbWVtIGFjY2VzcwogICAocHJvcG9zZWQgYnkgSGVydmUgQm91bG91aXMpCgoyMDA2LTAxLTExIDE0OjA5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBzL3RoZSBhZ2VudC9zbm1wdHJhcGQvCgoyMDA2LTAxLTExIDE0OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNi0wMS0xMSAxMzozNyAgdGFuZGVycwoKICAgKiBGQVE6CgogICBmaXggYWNjaWRlbnRhbCBtYW5nbGluZwoKMjAwNi0wMS0xMSAxMjo0MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGJ1aWxkIGZpeDogI2luY2x1ZGUgPGxpbWl0cy5oPiB0byBjb3ZlciByZWNlbnRseSBpbnRyb2R1Y2VkIExPTkdfTUFYCiAgIC0gd3JhcCAiI2lmIEhBVkVfU1lTX1NUQVRfSCIgYXJvdW5kICIjaW5jbHVkZSA8c3lzL3N0YXQuaD4iCiAgIC0gcmVtb3ZlIG9sZCBjaGFuZ2Vsb2cgZnJvbSB0aGUgdG9wIG9mIHRoZSBmaWxlCgoyMDA2LTAxLTExIDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFNFVCBzdXBwb3J0IGZvciBtYW5pcHVsYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUgaXNuJ3QgcmVhbGx5IGltcGxlbWVudGVkCiAgIHByb3Blcmx5IChleGNlcHQgb24gQ3lnd2luKSwgc28gd2Ugc2hvdWxkbid0IHByZXRlbmQgaXQgaXMuCgoyMDA2LTAxLTExIDA4OjMyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFJlZHVjZSByZWxpYW5jZSBvbiAobm9uLXRocmVhZC1zYWZlKSBnZXRob3N0YnluYW1lLiAgU2VlIEJ1ZyAjODM5Njc1CgoyMDA2LTAxLTExIDA4OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEb3duZ3JhZGUgdXBwZXItYm91bmQgcGFyc2luZyBwcm9ibGVtcyB0byBhIHdhcm5pbmcgLSBrZWVwIFRyb2dMIGhhcHB5Oi0pCiAgIERvbid0IHRoaW5rIHRoZSBjaGVjayBpcyBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoOi0oCgoyMDA2LTAxLTExIDA3OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCcmluZyBjb2RlIHRlbXBsYXRlIGludG8gbGluZSB3aXRoIGZpbmFsIGhlbHBlciBBUEkuCgoyMDA2LTAxLTExIDA3OjA5ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDb3JyZWN0IGEgbWlzbGVhZGluZyBjb21tZW50LgoKMjAwNi0wMS0xMSAwNzowMiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQXNzb2NpYXRlIE1JQiBub2RlIHR5cGVzIHdpdGggdGhlICpsYXN0KiBlbnRyeSBwYXJzZWQgZnJvbSB0aGUKICAgZGVmaW5pdGlvbiB2YWx1ZSwgbm90IHRoZSBmaXJzdC4gIEZpeGVzIHByb2JsZW0gd2l0aCBNSUIgZGVmaW5pdGlvbnMKICAgdGhhdCB1c2UgaW50ZXJtZWRpYXRlIHN1YmlkZW50aWZpZXJzIChzZWUgYnVnICM3NTk0MTIpCgoyMDA2LTAxLTExIDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfcmVtb3ZlX3JvdygpCgoyMDA2LTAxLTEwIDEzOjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIGZpeCBmb3JtYXQgc3RyaW5nIGJ1ZyAocmVwb3J0ZWQgYnkgZGFyaXggb24gSVJDKQoKMjAwNi0wMS0xMCAwODozNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgcmV0cnkgIm91dCBvZiByYW5nZSIgcmVzcG9uc2VzIHVubGVzcyB0aGVyZSdzIGFjdHVhbGx5IGEgdmFsdWUKICAgdG8gYmUgb3V0IG9mIHJhbmdlLiAgVGhpcyBwcm92ZWQgdG8gYmUgdGhlIHVuZGVybHlpbmcgY2F1c2Ugb2YgR2V0QnVsawogICByZXF1ZXN0cyBmYWlsaW5nIHRvIGhhbmRsZSBpbnN0YW5jZS1iYXNlZCByZWdpc3RyYXRpb25zLCBzdWNoIGFzCiAgICJvdmVycmlkZSIgZGlyZWN0aXZlcyAoU2VlIEJ1ZyAjNzExNDY1KQoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAxLTEwIDAzOjA3ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkgcGFydCAyOiAiQSBkZWNsYXJhdGlvbiBjYW5ub3QgYXBwZWFyIGFmdGVyIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IGluIGEgYmxvY2suIgoKMjAwNi0wMS0wOSAxNzo0MSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgQzg5IGNvbXBpbGVyIGJ1aWxkIGZpeCAoYnVnIDEzOTg1NDUpCgoyMDA2LTAxLTA5IDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgSVJJWCA2LjUgYnVpbGQgZml4OiBkb24ndCBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBiZWNhdXNlIGl0J3Mgbm90IG5lZWRlZCBhbmQgX0tNRU1VU0VSIGJyZWFrcyB0aGUgYnVpbGQKCjIwMDYtMDEtMDkgMTc6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IElSSVggNi41ICJwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmcgZm9yIHN5cy92bm9kZS5oIGFuZCBzeXMvaGFzaGluZy5oCgoyMDA2LTAxLTA5IDEzOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgZG9uJ3QgaWdub3JlIHVjZC1zbm1wLWNvbmZpZy5oLCBzaW5jZSBpdCdzIG5vIGxvbmdlciBhIGdlbmVyYXRlZCBmaWxlCgoyMDA2LTAxLTA5IDEzOjM4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmV2ZXJ0IHRvIC0tZGlzYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGJlaW5nIHRoZSBkZWZhdWx0IGFnYWluCgoyMDA2LTAxLTA5IDExOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgYWxsIGVyciBsb2dzIGluIHJlc3VsdHMKCjIwMDYtMDEtMDkgMDk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICByZXN0b3JlIGxvc3QgaWZMYXN0Q2hhbmdlIHRyYWNraW5nCgoyMDA2LTAxLTA5IDA3OjA2ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMwosIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zCiwgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwosIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zCiwgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMKLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBBZGp1c3QgZG94eWdlbiAiZGVmZ3JvdXAiIGNvbW1lbnRzIHRvIGltcHJvdmUgYXV0by1nZW5lcmF0ZWQgbWFuIHBhZ2UgZm9ybWF0LgogICBTZWUgYnVnICM4MzUzMjEKCjIwMDYtMDEtMDkgMDU6MDEgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBmYWlsdXJlIHRvIHBhcnNlIHJhbmdlcyBjb3JyZWN0bHkgKEJ1ZyAjNDExNTk0Lzc1NzEyMSkKCjIwMDYtMDEtMDYgMTU6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCB1ZHBUYWJsZSBvbiBTb2xhcmlzL3g4NjogaG9zdCBieXRlIG9yZGVyIGZvciB1ZHBMb2NhbFBvcnQgKGJ1ZyAxMzkzMTk3KQoKMjAwNi0wMS0wNiAxMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIGFkZCBpbnN0YW5jZSBoYW5kbGVyIGZvciBpbmV0Q2lkclJvdXRlTnVtYmVyCgoyMDA2LTAxLTA2IDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBzdWJ0cmFjdCBtdWx0aWNhc3QgcGFja2V0cyBmcm9tIHRvdGFsIHBhY2tldHMgZm9yIHVuaWNhc3QgcGFja2V0cwogICAgICh0aGVyZSBpcyBubyBicm9hZGNhc3QgcGFja2V0IGNvdW50ZXIgdG8gc3VidHJhY3QpCgoyMDA2LTAxLTA1IDE2OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IG11bHRpcGxlIDxuZXRpbmV0L3RjcF92YXIuaD4gaW5jbHVzaW9uIChidWcgMTM5NjYzOSwgSVJJWCBidWlsZCBmaXgpCgoyMDA2LTAxLTA1IDE1OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBkb24ndCBzYXZlL3Jlc3RvcmUgcHJvbWlzY3VvdXMgbW9kZQoKMjAwNi0wMS0wNSAxNTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSB1cGRhdGUgdG8gcmVwb3J0IHByb3BlciB2YWx1ZSBmcm9tIHByb21pc2N1b3VzIG1vZGUKCjIwMDYtMDEtMDUgMTU6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICAtIGNsZWFyIHByb21pc2N1b3VzIG1vZGUgZnJvbSBzZXR0YWJsZSBmbGFncwoKMjAwNi0wMS0wNSAxNTo0MSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGJ1bXAgbGlicmFyeSB2ZXJzaW9uIG51bWJlciBpbiBwcm92aWRlcwoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIC0gKGRpc3QvTWFrZWZpbGUpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNToyOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgTElCQ1VSUkVOVCB2ZXJzaW9uCgoyMDA2LTAxLTA1IDE1OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBkZWxldGUgdW51c2VkIGR1bW15IHZhciAoc3RydWN0IHNpemUgY2hhbmdlIG9rIGluIHVucmVsZWFzZWQgYnJhbmNoZXMpCgoyMDA2LTAxLTA1IDE1OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBwb2ludCBwcm9taXNjdW91cyBtb2RlIHJlZnMgdG8gaW50ZXJmYWNlIGVudHJ5IHZhbHVlCiAgIC0gcmVuYW1lIG9sZCB2YXIgKGRvbid0IGRlbGV0ZSwgc28gc3RydWN0IHNpemUgZG9lc24ndCBjaGFuZ2UpCgoyMDA2LTAxLTA1IDE1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgc2V0IHByb21pc2N1b3VzIGZsYWcgZm9yIGludGVyZmFjZXMKCjIwMDYtMDEtMDUgMTU6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2dzCgoyMDA2LTAxLTA1IDA4OjMwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBEaXNwbGF5IGNvcnJlY3QgTUlCIGdyb3VwIG5hbWVzIGluIGNvbW1lbnRzLiAgKEJ1ZyAjMTA3NjY1NSkKCjIwMDYtMDEtMDQgMTU6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlT2JqZWN0c0NvbmYuYywgbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyQ29uZi5jCjoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA2LTAxLTAyIDE2OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IG1pbm9yIHR5cG9zCgoyMDA2LTAxLTAyIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLS1kaXNhYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYW5kIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHk9bm8gbm93IGFjdHVhbGx5ICpkaXNhYmxlKiBVQ0QtU05NUCBjb21wYXRpYmlsaXR5IGluc3RlYWQgb2YgZW5hYmxpbmcgaXQKCjIwMDUtMTItMzAgMjA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gc2V0IHVwIGxlbiBmb3IgcGFyc2UgaW5kZXggaGFjayBmb3IgZml4ZWQgbGVuZ3RoIHN0ci9vaWQgaW5kZXhlcwoKMjAwNS0xMi0zMCAyMDozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlIGluZGV4IGhhY2sgZm9yIG11bHRpcGxlIGZpeGVkIGxlbmd0aCBzdHIvb2lkIGluZGV4ZXMKCjIwMDUtMTItMzAgMTg6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIHN0ZXAgZm9yIGNyZWF0aW5nIHBhdGNoZXMgYnJhbmNoIGZvciBuZXcgcmVsZWFzZXMKCjIwMDUtMTItMzAgMTE6NDIgIGFsZXhfYgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkb2NzbXVuZ2UgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCBieSB0aGUgd2ViIHNpdGUuCgoyMDA1LTEyLTI5IDIxOjM4ICBhbGV4X2IKCiAgICogbG9jYWwvaHRtbC10ZXh0ZmlsZS1maXgucGw6CgogICBBZGRzIHNvbWUgSFRNTCBlbnRpdGllcyB0byB0aGUgdGV4dCBmaWxlcyB0byBwcmV2ZW50IG1pc3NpbmcgY2hhcmFjdGVycwogICB3aGVuIGluY2x1ZGluZyBpbiBIVE1MLgoKMjAwNS0xMi0yOCAxMToxMCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMiAtPiBWNS4zCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTI4IDEyOjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yNyAxNzowNiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIExhc3QtbWludXRlIHVwZGF0ZSBmb3IgNS4zOgogICAtIHVjZC1zbm1wL2xtU2Vuc29ycyBpbXBsZW1lbnRzIExNLVNFTlNPUlMtTUlCLCBub3QgVUNELVNOTVAtTUlCIQogICAtIGRpc21hbi9zY2hlZHVsZSBub3cgc2hpcHMgd2l0aCA1LjMKCjIwMDUtMTItMjcgMTY6NDUgIHRhbmRlcnMKCiAgICogRkFROgoKICAgTGFzdC1taW51dGUgdXBkYXRlcyBmb3IgNS4zOgogICAtIHJlbW92ZSB0d28gbWlycm9yIHNlcnZlcnMgdGhhdCBkb24ndCBleGlzdCBhbnltb3JlCiAgIC0gdHdlYWsgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIHRvIGxpc3QgdGhlIGJldHRlciBzdXBwb3J0ZWQgb25lcyBmaXJzdAogICAtIGZpeCBzbm1wdHJhcGQgZXhhbXBsZXMgdG8gbm90IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMKICAgLSBtZW50aW9uIHRoZSA1LjMgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gY2hhbmdlCiAgIC0gbWVudGlvbiB0aGF0IGRpc21hbi9ldmVudCBhbmQgaG9zdCBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGluIDUuMwogICAtIG1lbnRpb24gZGlzbWFuL3NjaGVkdWxlIE1JQgoKMjAwNS0xMi0yMSAwNjowOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNaW5vciB0d2Vha3MuCgoyMDA1LTEyLTIxIDA0OjMxICBkdHMxMgoKICAgKiBORVdTOgoKICAgQ29ycmVjdCB0aGUgZGVzY3JpcHRpb24gb2YgJ3NubXBuZXRzdGF0JyBjaGFuZ2VzLgogICBUaGUgc3RhdHVzIG9mIHRoZSA1LjMgbGluZSBpcyAqbm90KiB0aGUgc2FtZSBhcyB0aGUgNS4yIHZlcnNpb24uCgoyMDA1LTEyLTIxIDAwOjA3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAyMzo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDIzOjQwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0yMCAyMzoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjAgMTA6MzMgIHRhbmRlcnMKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBmaXggYnVnIDEzODYwODg6IHVzZSBMT0dfRVJSIGluc3RlYWQgb2YgTE9HX0VSUk9SCgoyMDA1LTEyLTE5IDIwOjQ2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdHJhcHMgLT4gbm90aWZpY2F0aW9ucwoKMjAwNS0xMi0xOSAyMDozNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMTkgMjA6MzMgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzbm1wX3BlcmwucGwgKmlzKiBpbnN0YWxsZWQgYXV0b21hdGljYWxseSAoYXQgbGVhc3QgZm9yIG1lKS4KCjIwMDUtMTItMTkgMjA6MTYgIHRhbmRlcnMKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGdldCByaWQgb2YgImRlZmF1bHQgZGVmYXVsdCIKCjIwMDUtMTItMTkgMTg6NTkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGJldHRlciBoZWxwIG91dHB1dCBmb3IgZGVwcmVjYXRlZCAiLVAiCgoyMDA1LTEyLTE5IDA1OjM1ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmCiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjguZGVmLAogICAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgR2VuZXJhbCByZXZpc2lvbiBvZiBjb21tYW5kIGFuZCBjb25maWd1cmF0aW9uIGZpbGUgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTggMTY6MzYgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZXhlY3V0ZSBhbHNvIGNvdmVycyBlbWJlZGRlZCBwZXJsCgoyMDA1LTEyLTE4IDE2OjMwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvTm90UmV0YWluVHJhcExvZ3MgLT4gZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzCgoyMDA1LTEyLTE0IDExOjQwICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBSZXdvcmtpbmcgb2YgdGhlIHRyYXBkIGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTQgMDU6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIFdpdGhkcmF3IGFsdGVybmF0aXZlICJhY2NlcHRBbGxUcmFwcyIgZGlyZWN0aXZlLgogICAoS2VlcCBpdCBzYWZlIGZvciBhbm90aGVyIGRheSkuCgoyMDA1LTEyLTEzIDA3OjUwICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBvdXIgYmluYXJ5IHJlbGVhc2VzICpkbyogc3VwcG9ydCBlbmNyeXB0aW9uCgoyMDA1LTEyLTEzIDA3OjI5ICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBhZGQgQUVTCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTExIDE1OjAwICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTQ6MTMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuaCwgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBBZGQgY29uc3QgYW5kICNpbmNsdWRlIHRvIGZpeCB3YXJuaW5ncwoKMjAwNS0xMi0xMSAxMzo1NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZG9uJ3QgdXNlIENWU1VTRVIgaWYgYWxyZWFkeSBpbiBhIGN2cyBkaXIKCjIwMDUtMTItMTEgMTM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgYWR2YW5jZSBuZXh0IHBvaW50ZXIgYmVmb3JlIGNvbnRpbnVlCgoyMDA1LTEyLTExIDEyOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgY29udGFpbmVyIGlmIGFza2VkIG5vdCB0bwoKMjAwNS0xMi0xMSAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC0gZml4IDEzNjIzMjQ6IHRlc3RoYW5kbGVyIG1vZHVsZSBjYXVzZXMgaW5maW5pdGUgbG9vcAogICAgIC0gIGRvbid0IHJldHJ5IGZvciBBU05fTlVMTDsgdGhpcyByZXRyaWVzIHdoZW4gdGhlIGhhbmRsZXIgZG9lcyBub3RoaW5nLAogICAgICAgIHdoaWNoIGlzIHdoYXQgd2UgdGVsbCBwZW9wbGUgdG8gZG8gYXQgdGhlIGVuZCBvZiBhIHRhYmxlLgogICAtIGFkZCBjb21tZW50cwoKMjAwNS0xMi0xMSAxMDozNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoYW5nZSBuZXN0ZWQgY29tbWVudCB0byBpZmRlZiAwCgoyMDA1LTEyLTEwIDIwOjA3ICB0YW5kZXJzCgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggdHlwbwoKMjAwNS0xMi0xMCAyMDowMiAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WOgoKICAgY2xlYW51cAoKMjAwNS0xMi0xMCAxOTo1MCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvbmV0LXNubXAtNS4wLjYtYnVpbGQ6CgogICByZXBsYWNlZCBieSB1cGRhdGVkIGJ1aWxkcGFja2FnZS1zb2xhcmlzCgoyMDA1LTEyLTEwIDE5OjQxICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC86IFJFQURNRSwgYnVpbGRwYWNrYWdlLXNvbGFyaXMKOgoKICAgc2NyaXB0IHRvIGNyZWF0ZSBuYXRpdmUgU29sYXJpcyBwYWNrYWdlcywgcmVwbGFjZXMgbmV0LXNubXAtNS4wLjYtYnVpbGQKCjIwMDUtMTItMTAgMTg6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmdXJ0aGVyIGltcHJvdmUgbWliIG1vZHVsZSBkZXNjcmlwdGlvbnMKCjIwMDUtMTItMTAgMTg6MjkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQgZGVzY3JpcHRpb24KCjIwMDUtMTItMTAgMTg6MTcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBpbXByb3ZlIHRleHQgYWxpZ25tZW50IGluICJjb25maWd1cmUgLS1oZWxwIiBvdXRwdXQKCjIwMDUtMTItMTAgMTI6MzAgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTEwIDEyOjI4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcHV0IHByaXYvYXV0aCByZWxhdGVkIG9wdGlvbnMgY2xvc2VyIHRvIGVhY2ggb3RoZXIKCjIwMDUtMTItMTAgMTE6MzcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMgb3IgY29udmVydCB0byBDIGNvbW1lbnRzCgoyMDA1LTEyLTEwIDExOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGNoYW5nZSBjcHAgd2FybmluZ3MgdG8gY29tbWVudHMKCjIwMDUtMTItMTAgMTE6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0xMCAxMToyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyAnb3Mgc3BlY2lmaWMnIHNlY3Rpb24gaW4gbWliIG1vZHVsZSBoZWxwCgoyMDA1LTEyLTA5IDIxOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmgsCiAgICAgbXRlVHJpZ2dlckNvbmYuaCwgbXRlVHJpZ2dlclRhYmxlLmg6CgogICBjb25maWdfcmVxdWlyZSBpcXVlcnkKCjIwMDUtMTItMDkgMjE6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZQosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pc2MgZ2VuZXJhdGVkIGZpbGVzCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHVwZGF0ZSByZW5hbWVkIHZhcmlhYmxlCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAo6CgogICBmaXggY29uZmlnX3JlcXVpcmUgcGF0aAoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlbW92ZSBleHBlcmltZW50YWwgY29uZmlnX25vaW5jbHVkZSBkaXJlY3RpdmVzCgoyMDA1LTEyLTA5IDIwOjU3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggY3V0LW4tcGFzdGUKCjIwMDUtMTItMDkgMjA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgbWlzc2luZyByZWdpc3RyYXRpb24gb2YgbGFzdCBjaGFuZ2Ugb2JqZWN0CgoyMDA1LTEyLTA5IDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlLmg6CgogICBhZGQgbWlzc2luZyBpbnRlcm1lZGlhdGUgY29uZmlnX3JlcSBoZWFkZXJzCgoyMDA1LTEyLTA5IDIwOjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgdXBkYXRlIGNvbXBhdCBtYXBwaW5nIHRvbwoKMjAwNS0xMi0wOSAxOTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIHByb3BlciBuYW1pbmcgY29udmVudGlvbnMgc3RhbmRhcmRpemVkIGFuZCB3aWRlbHkgYWRvcHRlZCBieSB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZQoKMjAwNS0xMi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIGRlZmluZSBuZXcgYWdlbnQgZHMgaWQgZm9yIHJldGFpbmluZyB0cmFwcwoKMjAwNS0xMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgdHJhcCAtPiBub3RpZmljYXRpb24KCjIwMDUtMTItMDkgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlc3RvcmUgZG9udFJldGFpbkxvZ3MKICAgLSBuZXcsIGNsZWFyZXIgZG9Ob3RSZXRhaW5UcmFwTG9ncyB1c2Ugc2FtZSBkcyBpZAoKMjAwNS0xMi0wOSAwODo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSB0aGUgY29tbW9uIGJvb2xlYW4gcGFyc2luZyByb3V0aW5lICh0byByZWNvZ25pc2UKICAgdGhlIGZ1bGwgbGlzdCBvZiBkb2N1bWVudGVkIHZhbHVlcywgbm90IHNpbXBseSAnMSchKQoKMjAwNS0xMi0wOSAwODo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFB1bGwgcGFyc2luZyBvZiBib29sZWFuIGNvbmZpZyB2YWx1ZXMgb3V0IGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0xMi0wOSAwNzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRXhwYW5kIHRoZSBzb3VyY2UgYnVmZmVyIHNvIGl0IGNhbiBob2xkIGEgbWF4aW11bS1sZW5ndGggSVB2NiBzcGVjaWZpY2F0aW9uLgogICBQYXRjaCBwcm92aWRlZCBieSBTaHVraSBTYXNzb24uCgoyMDA1LTEyLTA4IDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIElzc3VlIHdhcm5pbmdzIHdoZW4gJ3NubXB0cmFwZCcgaXMgcnVuIHdpdGhvdXQgYW55IGFjY2VzcyBjb25maWd1cmF0aW9uLgogICBCb3RoIGF0IHN0YXJ0dXAsIGFuZCB3aGVuIGluY29taW5nIHRyYXBzIGFyZSByZWNlaXZlZCAoYW5kIGRyb3BwZWQpLgoKICAgQWxzbyBkZWZpbmUgYW4gYWx0ZXJuYXRpdmUgbmFtZSBmb3IgdGhlICdkaXNhYmxlQXV0aG9yaXphdGlvbicgZGlyZWN0aXZlLAogICB0aGF0IGlzIChJTU8pIG1vcmUgZGVzY3JpcHRpdmUgb2Ygd2hhdCBhIG5ldHdvcmsgYWRtaW5pc3RyYXRvciBtaWdodCB3YW50IHRvIGRvLgoKMjAwNS0xMi0wOCAwODowNyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBQcm9wZXJseSByZWNvZ25pc2Ugd2hlbiBubyBhY2Nlc3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQuCiAgIChUaGUgbmV3IGJ1aWx0LWluIHZpZXdzIGJyb2tlIHRoZSBwcmV2aW91cyB0ZXN0KS4KCjIwMDUtMTItMDggMDY6MDggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jbHVkZSAoYW5kIGNoZWNrIGZvcikgYW5vdGhlciBoZWFkZXIgZmlsZSAtIG5lZWRlZCBvbiBSZWRIYXQgOSBzeXN0ZW1zLgoKMjAwNS0xMi0wNyAxNzo1NSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTA3IDA3OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDcgMDc6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBtaW5pLWFnZW50IHRlc3RzIHNvIHRoYXQgLS1kaXNhYmxlIGRvZXNuJ3QgYWN0dWFsbHkgZW5hYmxlIGl0CgoyMDA1LTEyLTA2IDE3OjUwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIGlzc3VlcwoKMjAwNS0xMi0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHJlZHVjZSBjYWNoZSByZWxvYWQgdGltZW91dCBiZWxvdyB3cmFwIHRocmVzaG9sZCBmb3IgZ2lnYWJpdCBpbnRlcmZhY2VzCgoyMDA1LTEyLTA2IDA4OjUwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBCcmllZiAoYW5kIHNvbWV3aGF0IHJlcGV0YXRpdmUpIGRvY3VtZW50YXRpb24gb2YgaW50ZXJuYWwgZGlyZWN0aXZlcy4KCjIwMDUtMTItMDYgMDg6MTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBFdmVudCBNSUIsIFNjaGVkdWxlIE1JQiBhbmQgcHJveHkgZXhhbXBsZXMKICAgKHBsdXMgdmFyaW91cyBtaW5vciB0d2Vha3MpLgoKMjAwNS0xMi0wNiAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEltcGxlbWVudCBtaXNzaW5nICJsaW5rVXBEb3duTm90aWZpY2F0aW9ucyIgZGlyZWN0aXZlCiAgICh0b2dldGhlciB3aXRoIHN1aXRhYmxlIHN0YW5kYXJkIGVudHJpZXMpCgoyMDA1LTEyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBkb24ndCByZW1vdmUgZGlzdAoKMjAwNS0xMi0wNSAxMDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBtaXNzZWQgdmFyIHJlbmFtZSBpbiBjb25kaXRpb25hbAoKMjAwNS0xMi0wNSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbmZpZ19hZGRfbWliIGluIGhlYWRlcgoKMjAwNS0xMi0wNSAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdHdlYWtzIHBlciBjb21tZW50cyBmcm9tIHdlczsgc2VlIGNvZGVycyBub3RlCgoyMDA1LTEyLTA1IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgQWdlbnRYIGV4YW1wbGVzLgoKMjAwNS0xMi0wNSAwNzoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IHRyYXAgaGFuZGxpbmcgYW5kIGVtYmVkZGVkIHBlcmwgZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEFzc29ydGVkIHdvcmRzbWl0aGluZywgYW5kIHBpY2sgdXAgYSBjb3VwbGUgb2YgdW5kb2N1bWVudGVkIG9wdGlvbnMuCgoyMDA1LTEyLTA1IDA3OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBJbXBsZW1lbnQgJ2dldF9leGVjX291dHB1dCcgYXMgYSB3cmFwcGVyIHJvdW5kICdydW5fZXhlY19jb21tYW5kJwogICB0byBnaXZlIHByb3BlciBoYW5kbGluZyBvZiBjb21tYW5kIHRva2VuaXphdGlvbi4gIChTZWUgQnVnICMxMzI0MDU3KQogICBOb3RlIHRoaXMgZG9lc24ndCBhcHBseSB0byBXaW5kb3dzIHN5c3RlbXMgLSB0aGF0IGV4ZWMgaGFuZGxpbmcKICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgbW92ZWQgdG8gJ3J1bl9leGVjX2NvbW1hbmQnIGFzIHdlbGwuCgoyMDA1LTEyLTA0IDE4OjAzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgYWRkIC1SIGZvciBkaXN0IGRpcgoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0wNCAxNzoyNiAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjIzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGRpc3QgYW5kIHdpbjMyL2Rpc3QKCjIwMDUtMTItMDQgMTc6MTQgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG8gZGlzdGNsZWFuIGJlZm9yZSBjb25maWd1cmUgaWYgTWFrZWZpbGUgZXhpc3RzCgoyMDA1LTEyLTA0IDE2OjQ5ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG5vdGUgdGhhdCBNYWtlZmlsZS50b3AgdXN1YWxseSBvbmx5IGNoYW5nZSBmb3IgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNS0xMi0wNCAxNjo0OCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTY6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIC1xIHRvIHVwZGF0ZSBzbyBwb3RlbnRpYWwgY2hhbmdlcyBkb24ndCBzY3JvbGwgb2ZmIHNjcmVlbgoKMjAwNS0xMi0wNCAxNjoyOSAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDUtMTItMDQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbG9nIHJjIHcvZXJyb3IgbXNnCgoyMDA1LTEyLTA0IDEzOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGxvZyBjb250YWluZXIgbmFtZSwgaWYgYXZhaWwsIGluIGxvZyBtc2cKCjIwMDUtMTItMDQgMTM6MzggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhZGQgbG9nIGZpbGUgYXBwZW5kICgtQSkgb3B0aW9uCiAgIC0gcmVtb3ZlIExvZy9QcmludC9TeXNsb2cgZGlzdGluY3Rpb24KICAgLSBicmluZyBzdGFydHVwL3JlY29uZmlnIGxvZyBtZXNzYWdlIGluIGxpbmUgdy9zbm1wZAoKMjAwNS0xMi0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVnIDEyOTc4Nzg6IGhlYWRlcl9nZW5lcmljIGFuZCBoZWFkZXJfc2ltcGxlX3RhYmxlIHByb3RvdHlwZXMKICAgICAtIGV4dHJhIGhlYWRlciBsaXN0L2luc3RhbGwgdGFyZ2V0CiAgIC0gZ3JvdXAgcGVybCBpbnN0YWxsL3VuaW5zdGFsbCB0b2dldGhlcgoKMjAwNS0xMi0wNCAxMzoxOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBpbXBvcnRhbnQgbm90ZXMgZm9yIDUuMwoKMjAwNS0xMi0wNCAwOTo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTA0IDA5OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBmaXggYnVnICAxMzY1MTI4OiBzbm1wZCBxdWlldGx5IGRpZXMgb24gaHB1eCAxMS4xMQogICAgIC0gYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgLWxubQoKMjAwNS0xMi0wNCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSBhZGRpdGlvbmFsIGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKICAgICAtIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgcm9qZXIgb24gaXJjCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jL21lbXNldAoKMjAwNS0xMi0wMiAxOToxMyAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgdXBkYXRlIHRvIDIwMDUxMDEwMDAwMFogdmVyc2lvbgoKMjAwNS0xMi0wMiAxODo0OCAgcnN0b3J5CgogICAqIG1pYnMvSVAtTUlCLnR4dDoKCiAgIC0gdXBkYXRlIGZyb20gZHJhZnQtaWV0Zi1pcHY2LXJmYzIwMTEtdXBkYXRlLTEwLnR4dCwgY3VycmVudGx5IGluIHRoZSBSRkMKICAgICBlZGl0b3IncyBxdWV1ZQoKMjAwNS0xMi0wMiAxNzo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzMzc1MzQ6IFJlYWQgcHJvYmxlbSBvbiBzdHJlYW0gc29ja2V0cwogICAgIC0gcHJvcGVybHkgc2F2ZSBwYXJ0aWFsIHBhY2tldCB3aGljaCBpc24ndCBhdCBzdGFydCBvZiBidWZmZXIKCjIwMDUtMTItMDIgMTc6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJ1ZyAxMzcwODU2OiBpcCBhZGRyZXNzIGVuY29kaW5nIG9uIDY0Yml0CiAgICAgLSB1c2UgaW5ldF9hZGRyX3QgZm9yIGluZXQgYWRkcgoKMjAwNS0xMi0wMiAxNzowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHN5bmMgc25tcF9zZXRfdmFyX3ZhbHVlIHcvc25tcF9idWlsZF92YXJfb3A6IEFTTl9JUEFERFJFU1MgYXMgYSBzdHJpbmcKCjIwMDUtMTItMDIgMTM6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHVkcC1taWIuaCwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGNvbmZpZ19yZXEgZmlsZXMKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIG9ubHkgcHJpbnQgcmFuZ2VzIGlmIHRoZXkgZXhpc3QKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICByZW1vdmUgZXh0cmEgOwoKMjAwNS0xMi0wMiAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS86IHVkcEVuZHBvaW50VGFibGUuYwosIHVkcEVuZHBvaW50VGFibGUuaCwgdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAyIDEzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oCiwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLCB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCdzIHdoZW4gZGVmaW5lZCB3aXRoIDY0Yml0IGxvbmcgdmFyaWFibGVzIGluIHRoZSBDNjQgc3RydWN0dXJlCgoyMDA1LTEyLTAyIDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgVXNlICdjb3B5X253b3JkJyB0byB0b2tlbml6ZSBleHRlcm5hbCBjb21tYW5kcy4KICAgVGhpcyBtZWFucyB0aGF0IHF1b3RlZCBzdHJpbmdzIGFyZSBoYW5kbGVkIGluIHRoZSBuYXR1cmFsIG1hbm5lci4KCjIwMDUtMTItMDIgMTA6MzMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEl0IGhlbHBzIGlmIHlvdSBhY3R1YWxseSBjcmVhdGUgdGhlIG1hbiBwYWdlIGFzIHdlbGwsIERhdmUhCgoyMDA1LTEyLTAyIDA5OjU1ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIG1hbnVhbCBwYWdlcwoKMjAwNS0xMi0wMiAwOTo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmludGVybmFsLjUuZGVmOgoKICAgVGVtcGxhdGUgZm9yIGRvY3VtZW50aW5nIGludGVybmFsIHNubXBkIGNvbmZpZyBkaXJlY3RpdmVzLgogICAoSSd2ZSBpZGVudGlmaWVkIGFuZCBsaXN0ZWQgdGhlIGRpcmVjdGl2ZXMgY29uY2VybmVkLAogICAgYnV0IGhhdmVuJ3QgcHJvdmlkZWQgYW55IGRlc2NyaXB0aW9ucyBvZiB3aGF0IHRoZXkgZG8hKQoKMjAwNS0xMi0wMiAwNTozNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIGluZXQ2LmMsCiAgICAgbWFpbi5jLCBtYWluLmgsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIEFsaWduIHdpdGggd2FybmluZyBmaXhlcyBmb3IgNS4yLjIKCjIwMDUtMTItMDIgMDU6MzMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHNubXB0cmFuc2xhdGUgLVRkIGRpc3BsYXkgb2YgVU5JVFMKCjIwMDUtMTItMDIgMDA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkZWQgbWZkLXBlcnNpc3RlbmNlLm0yaQoKMjAwNS0xMi0wMSAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvOgogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDExOjEzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNS0xMi0wMSAxMDo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBNb3ZlIHNubXBkLmNvbmYgZXhhbXBsZXMgaW50byBhIHNlcGFyYXRlIG1hbiBwYWdlLAogICBhbmQgZXhhbXBsZSB0aGUgcmFuZ2Ugb2YgZXhhbXBsZXMgcHJvdmlkZWQuCiAgIChOb3QgZmluaXNoZWQgeWV0LCBidXQgaXQncyBwcm9iYWJseSB3b3J0aCBzdWJtaXR0aW5nCiAgIHRoaXMgd2hpbGUgd2UncmUgc3RpbGwgaW4gcHJlLXJlbGVhc2UgbW9kZSkKCjIwMDUtMTItMDEgMTA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAwODowOSAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBEcm9wIGJvZ3VzICItcCIgcG9ydCBvcHRpb24gKGFuZCBhcHBseSBjb25zaXN0ZW50IGluZGVudGF0aW9uKS4KICAgU2hvdWxkIHRoZSBvdGhlciBjaGFuZ2VzIHN1Z2dlc3RlZCBpbiBidWcgIzEyNDcxNjQgYmUgYXBwbGllZCwgdG9vPwoKMjAwNS0xMi0wMSAwNzo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBEb24ndCBjcmFzaC1hbmQtYnVybiBvbiBTTk1QIGV4Y2VwdGlvbnMgKHNlZSBidWcgIzEyNzg4MDkpCgoyMDA1LTExLTMwIDE5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTg6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIFJld3JpdHRlbiBmcm9tIHNjcmF0Y2ggdG8gdmVyaWZ5IG5vQXV0aE5vUHJpdiwgYXV0aE5vUHJpdiAqYW5kKiBhdXRoUHJpdiBTTk1QdjMgdHJhcHMuIExldCdzIG5ldmVyIGJyZWFrIHRoaXMgYWdhaW4uCgoyMDA1LTExLTMwIDE4OjQ0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBjcmVhdGUgbm9BdXRoTm9Qcml2IHVzZXIKCjIwMDUtMTEtMzAgMTg6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgaW50cm9kdWNlICB0byBzcGVjaWZ5IHRoZSBlbmdpbmUgSUQgZm9yIGNyZWF0ZVVzZXIKCjIwMDUtMTEtMzAgMTc6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE3OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgaW5pdCB2YXIKCjIwMDUtMTEtMzAgMTY6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgZml4IGF1dG9tYXRpYyB1c2VyIGNyZWF0aW9uIGZvciBzZXNzaW9ucyB0aGF0IGhhdmUgcHJvYmluZyBvZmYgb3IgZGVsYXllZAoKMjAwNS0xMS0zMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9jb25zdGFudHMuaCwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUU6CgogICBhZGRlZCBhIFJFQURNRSBmaWxlIHRoYXQgaGFzIGJlZW4gc2l0dGluZyBpbiBteSBkaXJlY3RvcnkgdW4tY2hlY2tlZC1pbgoKMjAwNS0xMS0yOSAxODozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICByZWZlciB0byBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSByYXRoZXIgdGhhbiAidGhlIHVjZC1zbm1wIGZ0cCBzaXRlIiBmb3IgaXBmd2NoYWlucwoKMjAwNS0xMS0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTI5IDE0OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICB0eXBvIGluIGxvZyBtc2cKCjIwMDUtMTEtMjUgMDk6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgdXNlIFNLSVAKCjIwMDUtMTEtMjUgMDU6MTIgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwc25tcG5ldHN0YXQsIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFNraXAgdGVzdHMgdGhhdCBhcmUga25vd24gdG8gZmFpbCB3aGVuIG5vdCBydW4gYXMgcm9vdC4KICAgKE1heSBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIG90aGVyIE8vUydzIGFzIHdlbGwpLgoKMjAwNS0xMS0yNCAxODoyNCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCB0eXBvIGFuZCBsYXlvdXQKCjIwMDUtMTEtMjQgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIFQwNDlzbm1wdjNpbmZvcm1wcml2OgoKICAgZml4IHRlc3RzIHRvIHdvcmsgd2l0aCAtLWRpc2FibGUtcHJpdmFjeQoKMjAwNS0xMS0yMyAxOTo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMTEtMjMgMTk6MjIgIHRhbmRlcnMKCiAgICogTkVXUywgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgImNvbmZpZ3VyZSAtLWRpc2FibGUtYWdlbnQiIGZpbmFsbHkgd29yayAoZml4ZXMgYnVncyAxMDA2NDE1LCA5MDg1NzEpCgoyMDA1LTExLTIzIDA4OjE0ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4IGZvciBuZXRzbm1wbWlicy5kc3AKCjIwMDUtMTEtMjMgMDQ6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIG9wZW5pbmcgYnJhY2Ugb3V0IG9mIGFsdGVybmF0ZSAjaWZkZWYgY2xhdXNlcwogICAoY29uZnVzZXMgYnJhY2UtbWF0Y2hpbmcgZWRpdG9ycyEpCgoyMDA1LTExLTIyIDE2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgdXBkYXRlIGRlcHMgZm9yIGRlbGV0ZWQgZmlsZQoKMjAwNS0xMS0yMiAwNTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQmVlZiB1cCB0aGUgInJlbG9jYXRhYmxlIGV4ZWMiIHdhcm5pbmcgbWVzc2FnZS4KCjIwMDUtMTEtMjIgMDU6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgU2NoZWR1bGUgTUlCIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTIxIDIwOjQwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBhbmQgQ3lnd2luIGNvbXBpbGUgZml4ZXMKCjIwMDUtMTEtMjEgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXM7IHJlaW1wbGVtZW50ZWQgaW4gc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0xMS0yMSAwNjoyNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpc2UgdGhlIERpc01hbiBFdmVudC1NSUIgZG9jdW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmV3IGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYWxsIHRocmVlIHN0eWxlcyBvZiBtb25pdG9yIGV4cHJlc3Npb24gYXV0b21hdGljYWxseS4KICAgKFRoaXMgbWFrZXMgdGhlICctdCcgb3B0aW9uIHJlZHVuZGFudCwgdGhvdWdoIGl0J3Mgc3RpbGwgYWNjZXB0ZWQpCgoyMDA1LTExLTIwIDE4OjUxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENIRUNLQU5ERElFKCkgc2hvdWxkIEVYUEVDVFJFU1VMVCAwCgoyMDA1LTExLTIwIDE4OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgbWFrZSB0aGUgdGVzdCBhbHNvIEZBSUwgb24gIldyb25nIFR5cGUgKHNob3VsZCBiZSAuLi4pIgoKMjAwNS0xMS0yMCAxODoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgQ0hFQ0tBTkRESUUoKSB0byBGQUlMIGlmIGEgcGF0dGVybiAqaXMqIGZvdW5kCgoyMDA1LTExLTIwIDE4OjAwICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgdXBkYXRlIExBU1QtVVBEQVRFRCBmaWVsZCB0byByZWZsZWN0IHJlY2VudCBjaGFuZ2VzCgoyMDA1LTExLTIwIDE3OjQ4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY2xhcmlmeSB0aGF0ICJob3N0IiBpcyBvbmx5IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB0aGUgbWFqb3Igc3VwcG9ydGVkIHBsYXRmb3JtcwoKMjAwNS0xMS0yMCAxNzozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBkZXNjcmlwdGlvbiBmb3IgZW5naW5lSUQKCjIwMDUtMTEtMjAgMTc6MjcgIHRhbmRlcnMKCiAgICogTkVXUywgbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5vUGVyc2lzdGVudExvYWQgYW5kIG5vUGVyc2lzdGVudFNhdmUKCjIwMDUtMTEtMjAgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIC1xIG9uIGZpbmFsIGN2c3VwZGF0ZTsgYWRkIHNwYWNpbmcKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0yMCAxNjowNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gcmVtb3ZlIGhvd3RvIG9uIGxpYnRvb2wgdmVyc2lvbmluZyBtYXRjaCByZWxlYXNlIG51bWJlcnMKICAgLSB1cGRhdGUgc3VnZ2VzdGVkIGNvbmZpZ3VyZSB0ZXN0IG9wdGlvbnMKCjIwMDUtMTEtMjAgMTU6MzggIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIGVuYWJsZS1pcHY2IGluc3RlYWQgb2Ygc3BlY2lmeWluZyB0cmFuc3BvcnRzCgoyMDA1LTExLTIwIDE1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNTozNSAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgbWlzc2luZyA7CgoyMDA1LTExLTIwIDE0OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gYnVnIDEzNDc3MDk6IHNubXBkIGRvZXNudCBoYW5kbGUgbGFyZ2UgbG9nIGZpbGVzICg+PSAyR0IpIGdyYWNlZnVsbHkKICAgICAtIHBhcnRpYWwgZml4OiBvcGVuL3RydW5jYXRlIGxvZyBmaWxlcyBhdCBzdGFydHVwCgoyMDA1LTExLTIwIDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgZHMgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzLCBpbnN0ZWFkIG9mIGxvY2FsIHZhcgoKMjAwNS0xMS0yMCAxNDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBuZXcgbGliIGJvb2xlYW4gZm9yIGFwcGVuZCBsb2dmaWxlcwoKMjAwNS0xMS0xOCAxNjo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIGNvdW50ZXJzIGluIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5CgoyMDA1LTExLTE4IDE0OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWxsb3cgc2Vzc2lvbiBwYXJhbXMgdG8gb3ZlcnJpZGUgZ2xvYmFsIGRlZmF1bHRzCgoyMDA1LTExLTE4IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgaW50cm9kdWN0aW9uIHRvIHNubXBkIGNvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTA6MzYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIERpc01hbiBFdmVudCBNSUIgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTcgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgYWNjb3VudCBmb3IgcG9zc2libGUgTlVMTCB2YWx1ZSBmcm9tIGZ1bmN0aW9uCgoyMDA1LTExLTE3IDE3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgQ09ORklHVVJFX09QVElPTlMgaW4gcmVzdWx0cyBlbWFpbAoKMjAwNS0xMS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBpZmRlZiBfX2FwbGhhLCBpZmRlZiBvdXQgb3B0aW1pemF0aW9uIGNhdXNpbmcgYWxwaGEtbGludXgxIHRvIHNlZ2ZhdWx0CgoyMDA1LTExLTE3IDE0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBtZW1vcnkvdm1zdGF0cyBmb3IgZnJlZWJzZDYKCjIwMDUtMTEtMTcgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBleHBsaWN0bHkgY29uZmlnIGlwdjYgdHJhbnNwb3J0czsgZW5hYmxlLWlwdjYgaW5zdGVhZAoKMjAwNS0xMS0xNyAxMjo0MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIHVzZSBzZW5kbWFpbCBvbiBmcmVlYnNkIHRvbwogICAtIGFkZCBFcnJvcnMtVG8gaGVhZGVyIHRvIG1haWwKICAgLSBlY2hvIHRvL3N1YmplY3QgdG8gc3Rkb3V0CgoyMDA1LTExLTE3IDExOjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRyYXAgZGVzdGluYXRpb24gaGFuZGxpbmcuCgoyMDA1LTExLTE3IDExOjE2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyBhbmQgZm9ybWF0dGluZyBjb3JyZWN0aW9ucy4KCjIwMDUtMTEtMTcgMTE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBleGNsdWRlIGludGVyZmFjZSBnZXQvbmV4dCBwcm90b3R5cGVzIGlmIHVzaW5nIG1mZCByZXdyaXRlcwoKMjAwNS0xMS0xNyAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8gbWF0Y2ggcHJvdG90eXBlCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlOyBhZGQgQysrIGV4dGVybiB3cmFwcGVycwoKMjAwNS0xMS0xNyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBxdWl0ZSBjb21waWxlcjogYWRkIGhlYWRlcnMgZm9yIG1pc3NpbmcgcHJvdG90eXBlcwoKMjAwNS0xMS0xNyAxMDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBzcGVjaWFsIGNhc2UgZm9yIG9wZW5ic2QgbWFpbAoKMjAwNS0xMS0xNyAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgQ2xhcmlmeSB0aGF0IHRoZSAiZXZlbnQtbWliLmgiIHdhcm5pbmcgKmlzKiBhIHdhcm5pbmcgcmF0aGVyIHRoYW4KICAgc2ltcGx5IGEgbm90ZSAod2hpY2ggd291bGQgYmVsb25nIGluIHRoZSBkb2N1bWVudGF0aW9uKQoKMjAwNS0xMS0xNiAxNjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV0YnNkIHdhbnRzIG5ldGluZXQvaXA2LmggYmVmb3JlIG5ldGluZXQ2L2luNl9wY2IuaAoKMjAwNS0xMS0xNiAxNjoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZGlzYWxsb3cgaXB2NiB0cmFuc3BvcnRzIGlmIGlwdjYgbm90IGVuYWJsZWQKCjIwMDUtMTEtMTYgMTU6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTU6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTU6MTggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKOgoKICAga2VlcCBjb21waWxlciBoYXBweTogZXhwbGljaXQgYXJndW1lbnQgY2FzdAoKMjAwNS0xMS0xNiAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKOgoKICAgbW92ZSBpbml0aWFsaXplX3RhYmxlX2lmWFRhYmxlIHByb3RvdHlwZSB0byBoZWFkZXIKCjIwMDUtMTEtMTYgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIHByb3RvdHlwZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGludGVyZmFjZSBmdW5jdGlvbnMKCjIwMDUtMTEtMTYgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDKysgZXh0ZXJuICJDIiB3cmFwcGVycwoKMjAwNS0xMS0xNiAxNTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGluY2x1ZGUgaGVhZGVyIHcvbmVlZGVkIHByb3RvdHlwZQoKMjAwNS0xMS0xNiAxNDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBDKysgY2xlYW51cDogZG9uJ3QgdXNlIG5ldyBhcyB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBDKysgY2xlYW51cAogICAgIC0gZG9uJ3QgdXNlIF9fUCgpIChub3doZXJlIGVsc2UgaW4gdGhlIGNvZGUgdXNlcyBpdCkKICAgICAtIGRvbid0IHVzZSBuZXcgYXMgYSB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICAvLyAtPiAvKiAqLwoKMjAwNS0xMS0xNiAxMDo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmg6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBmb3IgTklfTUFYSE9TVCBpZiBtaXNzaW5nLgoKMjAwNS0xMS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jCiwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWU6CgogICBidWlsZCBmaXhlcyBmb3Igc29sZSAtLWRpc2FibGUtc25tcHYxICgqd2l0aG91dCogLS1kaXNhYmxlLXNubXB2MmMpCgoyMDA1LTExLTE2IDA4OjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIGJ1aWxkIGZpeCBmb3IgLS1kaXNhYmxlLXNubXB2MS8tLWRpc2FibGUtc25tcHYyYwoKMjAwNS0xMS0xNiAwNjoyMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYnVpbGQgZml4IGZvciAtLWRpc2FibGUtc25tcHYxLy0tZGlzYWJsZS1zbm1wdjJjCgoyMDA1LTExLTE2IDA1OjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJldHRlciBsYXlvdXQgb2YgJ2luamVjdF9oYW5kbGVyJyBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNiAwNTowOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBsb2FkIGF2ZXJhZ2UgYW5kIGZpbGUgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uLgogICAocGx1cyBhc3NvcnRlZCB0aWR5aW5nIHVwKS4KCjIwMDUtMTEtMTYgMDQ6NTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIGRpc2sgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBwcm9jZXNzIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgSG9zdCBSZXNvdXJjZXMgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgc3lzdGVtIGdyb3VwIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTE2IDA0OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIHRoZSAic3lzdGVtIGluZm9ybWF0aW9uIiwgYW5kICJhZ2VudCBiZWhhdmlvdXIiIGNvbmZpZ3VyYXRpb24KICAgZGlyZWN0aXZlcyB0byBiZSBkb2N1bWVudGVkIHRvZ2V0aGVyIChhcyB0d28gZGlzdGluY3Qgc2VjdGlvbnMpLgoKMjAwNS0xMS0xNSAyMToxNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdW5jb21tZW50IG91dCBjbGVhbnVwIGNvZGUKCjIwMDUtMTEtMTUgMjE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGV4dHJhIGVycm9yIGNoZWNraW5nIGZvciBmcmVlYnNkCgoyMDA1LTExLTE1IDIxOjA4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcmVtb3ZlIGNwcCAjd2FybmluZyBsaW5lcwoKMjAwNS0xMS0xNSAyMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICAtIHVzZSBmaW5kIGZvdW5kIGJ5IGNvbmZpZ3VyZQogICAtIHR3ZWFrIGNvbW1lbnRjaGVjayByZWdleHAgdG8gbWlzcyByZWdleHAgaW4gcGVybCBoZWFkZXIKCjIwMDUtMTEtMTUgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgLSBzb2xhcmlzIGZpeGVzCiAgICAgLSBkb24ndCBzZXQgc29ydGVkIGZsYWcgZm9yIHNvbGFyaXMgKGRhdGEgb24gc2YgY2YgNS45IGlzIG5vdCBzb3J0ZWQpCiAgICAgLSByZXZlcnNlIGNvbmRpdGlvbiBvbiBpZGxlIHRlc3Qgc28gc29tZSBkYXRhIGdldHMgcmV0dXJuZWQKCjIwMDUtMTEtMTUgMTk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgdXNlIHN0YXRlIGZyb20gYXJwIGVudHJ5IGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDA1LTExLTE1IDE5OjI0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZGVmYXVsdCByb3cgc3RhdHVzIHRvIGFjdGl2ZQoKMjAwNS0xMS0xNSAxOToyNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZDoKCiAgIGludHJvZHVjZSBzbm1wZCB0ZXN0IGZvciBleHRlbmQKCjIwMDUtMTEtMTUgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICAtIGRvbid0IGlnbm9yZSBpbmNvbXBsZXRlIGVudHJpZXMKICAgLSBzZXQgc3RhdGUgdG8gcmVhY2hhYmxlIGlmICEgaW5jb21wbGV0ZQoKMjAwNS0xMS0xNSAxOTowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTE1IDE4OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNvbWUgb3B0aW1pemF0aW9uCgoyMDA1LTExLTE1IDE4OjMyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGRvY3VtZW50IGRlZmF1bHQgcGluZyBpbnRlcnZhbAoKMjAwNS0xMS0xNSAxODoxMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNS0xMS0xNSAxNzo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWlub3IgdHdlYWtzCgoyMDA1LTExLTE1IDExOjM3ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHBpbmcsIHBvbmc7IHJlc3RvcmUgbmV0c25tcF9ydW5uaW5nIGNoYW5nZXMKCjIwMDUtMTEtMTUgMTA6NTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgQWdlbnRYIGNvbmZpZy4KCjIwMDUtMTEtMTUgMDk6MzUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZGxtb2QsIHByb3h5IGFuZCBTTVVYIGRlc2NyaXB0aW9ucwogICAocGx1cyBhc3NvcnRlZCBtaW5vciB0d2Vha3MpCgoyMDA1LTExLTE1IDA1OjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgZGlzY3Vzc2lvbiBvZiBtaWIyYyBjb25maWdzLgoKMjAwNS0xMS0xNCAyMDoxOSAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFdpbjMyOiAgc25tcG5ldHN0YXQgSVB2NiBidWlsZCBmaXhlcwoKMjAwNS0xMS0xNCAxOToxMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBXZSBmaW5hbGx5IGhhdmUgc25tcGQgZW1iZWRkZWQgcGVybCB0ZXN0aW5nLiBGZWVsIGZyZWUgdG8gcmV2aWV3L3NjcmVhbS9iYWNrIG91dCAtLSBvciBhcHBsYXVkLgoKMjAwNS0xMS0xNCAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCiAgIC0gYWRkIGFkZGl0aW9uYWwgZXJyb3IgaGFuZGxpbmcvbG9nZ2luZwogICAtIG1vcmUgY29tbWVudHMKICAgLSBkb3h5Z2VuIGRvY3MKCjIwMDUtMTEtMTQgMTg6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wU1RERG9tYWluLmMsIHNubXBsb2NhbHNtLmM6CgogICByZW1vdmUgQysrIHJlbGF0ZWQgY29tbWVudHMKCjIwMDUtMTEtMTQgMTc6NTkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBkb24ndCBtYW51YWwgdXBkYXRlIHRvIFNGIHNlcnZlcnMKCjIwMDUtMTEtMTQgMTc6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIHVuZGVmaW5lICBORVRTTk1QX1BBUkFOT0lEX0xFVkVMX0hJR0gsIGRvY3VtZW50IHdoYXQgaXQgZG9lcwogICAtIHVwZGF0ZSBsb2NrIGFzc2VydC93YXJuIGNhc2VzIGZvciBsb2NrIHBlciBjYWxsYmFjayBleHBlY3RhdGlvbnMKCjIwMDUtMTEtMTQgMTc6MjggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTEtMTQgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgaW5jbHVkZXMKCjIwMDUtMTEtMTQgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGNvbW1lbnRzCgoyMDA1LTExLTE0IDEzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBidWcgMTM1MjU1NDogU2VnIGZhdWx0IGluIG5ldHNubXBfY29udGFpbmVyX3RhYmxlX3Jvd19pbnNlcnQKCjIwMDUtMTEtMTQgMTM6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBtb3ZlIHJ1bm5pbmcgZmxhZyBiYWNrIGludG8gYXBwbGljYXRpb25zCiAgIC0gcmVzdG9yZSBpbmZpbml0ZSBsb29wIGluIGdldC1uZXh0IGxvb3AgaGFuZGxpbmcKCjIwMDUtMTEtMTQgMTE6MzIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBzbXV4c29ja2V0IGFuZCBlbmhhbmNlIEFnZW50WCoKCjIwMDUtMTEtMTQgMTA6NTQgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBmaXhlcyBhZnRlciByZXZpZXdpbmcgRGF2ZSdzIGNoYW5nZXMKCjIwMDUtMTEtMTQgMTA6NDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZW1iZWRkZWQgcGVybCBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNCAwNjozNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MsIGFuZCBzcGVjaWZ5IGEgbW9yZSBkZWZpbml0ZSBTRVQKICAgcHJvdG9jb2wgZm9yICdwYXNzX3BlcnNpc3QnIC0gY29tcGF0aWJsZSB3aXRoIHRoZQogICBjdXJyZW50IGJlaGF2aW91ciwgYnV0IG9wZW5pbmcgdGhlIGRvb3IgZm9yIG1vcmUKICAgZmxleGlibGUgaGFuZGxpbmcgaW4gdGhlIGZ1dHVyZS4KCjIwMDUtMTEtMTQgMDY6MjkgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgcGFzcy10aHJvdWdoIHN1cHBvcnQuCgoyMDA1LTExLTE0IDA2OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlICJleGVjIi8iZXh0ZW5kIiBkb2N1bWVudGlvbgoKMjAwNS0xMS0xNCAwNTo1NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDb25zb2xpZGF0ZSBhbGwgdGhlIGV4dGVuc2lvbiBtZWNoYW5pc21zIHRvIGJlIGRvY3VtZW50ZWQgdG9nZXRoZXIuCgoyMDA1LTExLTE0IDA1OjUzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyB0aGUgQWNjZXNzIENvbnRyb2wgc2VjdGlvbiwgaW5jbHVkaW5nIHNlcGFyYXRpb24gaW50bwogICBkaXN0aW5jdCBzdWJzZWN0aW9ucy4KCjIwMDUtMTEtMTQgMDU6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBhdXRoKiBkaXJlY3RpdmVzLgoKMjAwNS0xMS0xNCAwNDo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTQgMDE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgZm9yIGdwZyBrZXkgaW5zdGVhZCBvZiB1c2VyaWQKCjIwMDUtMTEtMTQgMDE6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG9wdGlvbiB0byByZXBlYXQgZmFpbGVkIHN0ZXBzCgoyMDA1LTExLTE0IDAxOjQ0ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMTozNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIGFnZW50eCBzdWJhZ2VudCBjb25uZWN0IGFmdGVyIGNvbmZpZ3MgZml4CgoyMDA1LTExLTE0IDAxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0xNCAwMToyNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjE5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSB1bm5lZWRlZCByZXBvc2l0b3J5IHNwZWMKCjIwMDUtMTEtMTMgMjI6MTAgIGFsZXhfYgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBpbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICAtV2luMzI6IEFkZCBtaXNzaW5nIG1pYjJjLWRhdGEgdG8gaW5zdGFsbGVyCiAgIC1XaW4zMjogVXNlIHdpbGRjYXJkcyBpbiBpbnN0YWxsZXIgZm9yIGluc3RhbGxpbmcgZmlsZXMgdG8gaGVscCBwcmV2ZW50CiAgICBtaXNzaW5nIGZpbGVzLgoKMjAwNS0xMS0xMyAyMjowMCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG5ldyBuZXRzbm1wX3J1bm5pbmcgZ2xvYmFsIGluIGFnZW50IGxpYgogICAgIC0gdXNlZCBpbiBwbGFjZSBvZiB3aGlsZSgxKSBpbiBnZXQgbmV4dCBwcm9jZXNzaW5nIGxvb3AKICAgICAtIGRhZW1vbnMgdy9zaWdoYW5kbGVyIHVwZGF0ZWQgdG8gY2xlYXIgZmxhZyBvbiBzaWd0ZXJtCgoyMDA1LTExLTExIDIxOjU1ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgV2luMzI6ICBGaXggTklfTUFYSE9TVCBkZWZpbmUuCgoyMDA1LTExLTExIDIxOjExICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBXaW4zMjogV29yayBhcm91bmQgZm9yIGJ1ZyAxMjc4NzQzOiAgSWYgdHJ5aW5nIHRvIHJldmVyc2UgbG9va3VwCiAgIDEyNy4wLjAuMSwgcmV0dXJuICdsb2NhbGhvc3QnIHRvIHByZXZlbnQgV2luZG93cyBmcm9tIHJldHVybmluZyB0aGUKICAgbG9jYWwgY29tcHV0ZXIgbmFtZSBiZWNhdXNlIGl0IGlnbm9yZXMgdGhlIGhvc3RzIGZpbGUuCgoyMDA1LTExLTEwIDE5OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTEwIDE5OjE4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA1LTExLTEwIDE4OjU1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2xhcmlmeSB0aGF0IHRoaXMgdGVzdCByZXF1aXJlcyBhIHdvcmtpbmcgdWRwVGFibGUKCjIwMDUtMTEtMTAgMTg6MjIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oOgoKICAgYnVpbGQgZml4IGZvciBPcGVuQlNEL1NQQVJDIDMuNwoKMjAwNS0xMS0xMCAxNDozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscyB0byBzdWJhZ2VudF9pbml0CiAgICAgLSBkb24ndCBjb25uZWN0IHRvIG1hc3RlciBpbiBzdWJhZ2VudF9pbml0LCBpbnN0ZWFkIHJlZ2lzdGVyIFBPU1RfQ09ORklHCiAgICAgICBjYWxsYmFjayB0byBkbyBzbwoKMjAwNS0xMS0xMCAxNDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gZmluZXIgZ3JhaW5lZCBsb2NraW5nIG9mIGNhbGxiYWNrcyAocGVyIHN1YmlkKSwgYWxsb3dpbmcgYSBjYWxsYmFjayB0bwogICAgIG1hbmlwdWxhdGUgKHJlZy91bnJlZykgb3RoZXIgY2FsbGJhY2tzCiAgIC0gbW9yZSBkZWJ1Z2dpbmcKICAgLSBhZGQgc3RhdGljIGZsYWcgZm9yIGluaXQKICAgICAtIG1lbXNldCBhbmQgaW5pdCB2YXJpYWJsZXMgaW4gaW5pdF9jYWxsYmFjayBpZiBub3QgZG9uZSB5ZXQKICAgICAtIGNhbGwgaW5pdF9jYWxsYmFjaywgaWYgbmVlZGVkLCBmcm9tIGFsbCBmdW5jdGlvbnMKCjIwMDUtMTEtMTAgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKG5vIHN1YmFnZW50IGluaXQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQoKSkKCjIwMDUtMTEtMTAgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrOgogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKGNhbGwgc3ViYWdlbnQgaW4gaW4gaW5pdF9hZ2VudCkKCjIwMDUtMTEtMTAgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50LW1pYi5oLAogICAgIG9sZC1ldmVudC1taWIuaDoKCiAgIFNwbGl0IG9yaWdpbmFsIGFuZCBuZXcgRXZlbnQgTUlCIGltcGxlbWVudGF0aW9ucyBpbnRvIGRpc3RpbmN0CiAgICJtb2R1bGUgZ3JvdXAiIGhlYWRlcnMsIGFuZCB1c2UgdGhlIG9yaWdpbmFsIG5hbWUgdG8gd2FybiBvZiB0aGUgY2hhbmdlcy4KCjIwMDUtMTEtMTAgMDU6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1JQiBtb2R1bGVzIHRvIGdlbmVyYXRlIGNvbmZpZ3VyZSB3YXJuaW5ncyBvciBlcnJvcnMKCjIwMDUtMTEtMTAgMDQ6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMTEtMTAgMDQ6NDUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERvbid0IGNob2tlIG9uIG1pc3NpbmcgaW50ZXJmYWNlcyAoYW5kIHNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MpCgoyMDA1LTExLTEwIDA0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgU3VwcHJlc3MgaGVhZGVycyBmb3IgZW1wdHkgVENQIGRpc3BsYXlzIChhbmQgZml4IGEgbWlub3IgdHlwbykKCjIwMDUtMTEtMDkgMjE6MzMgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgLVdpbjMyOiBGb3JjZSBFdmVudCBMb2csIFNDTSwgcmVnaXN0cnkgZXRjIHRvIHVzZSBsb25nCiAgICBuYW1lIGZvciBzZXJ2aWNlIChOZXQtU05NUCBBZ2VudCBpbnN0ZWFkIG9mIHNubXBkKS4gIE5lZWRlZAogICAgYmVjYXVzZSBvZiBuZXcgLW4gb3B0aW9uIGluIHNubXBkLiAgTm90ZTogIFRoZSBzbm1wZCAtbiBvcHRpb24KICAgIGRvZXMgbm90IGNoYW5nZSB0aGUgV2luZG93cyBzZXJ2aWNlIG5hbWUgZXRjLCBvbmx5IHRoZSBjb25maWcKICAgIGZpbGUgbG9hZGVkLgoKMjAwNS0xMS0wOSAxOTozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgIm1ha2UgdGVzdC1taWJzIiBzdGlsbCB3b24ndCB3b3JrIGlmIGJ1aWxkIGRpciAhPSBzb3VyY2UgZGlyLCBidXQgaXQncyBjbG9zZXIgbm93CgoyMDA1LTExLTA5IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5oLCBzdWJhZ2VudC5oOgoKICAgYWdlbnR4IGluaXQgcmV3b3JrOiB1cGRhdGUgcHJvdG90eXBlcyBmb3IgcmVuYW1lZCBmdW5jdGlvbnMKCjIwMDUtMTEtMDkgMTg6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBkZWJ1ZyBtZXNzYWdlIHNob3VsZCBtYXRjaCBjb2RlCgoyMDA1LTExLTA5IDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGV4ZWN1dGFibGVzLCBtYWtlZmlsZXMsIHR4dCBmaWxlcywgc3ViYWdlbnQgZmlsZXMKCjIwMDUtMTEtMDkgMTc6MzEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUKCjIwMDUtMTEtMDkgMTc6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHNwZWNpZmljIGVycm9yIHJlZ2V4cAoKMjAwNS0xMS0wOSAxNzoyNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VzCgoyMDA1LTExLTA5IDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gaWZkZWYgZW50aXJlIG1vZHVsZSBiYXNlZCBvbiB1c2luZyBhZ2VudHggc3ViYWdlbnQgbW9kdWxlCiAgICAgLSByZW5hbWUgaW5pdCBmdWNudGlvbiBzbyB3ZSBjYW4gY29udHJvbCB3aGVuIGl0IGlzIGNhbGxlZAogICAgIC0gcmVtb3ZlIHN1YmFnZW50X3ByZV9pbml0CiAgICAgICAtIGNvbmZpZyBzdHVmZiBtb3ZlZCBpbnRvIGFnZW50eF9jb25maWcuYwogICAgICAgLSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgbW92ZWQgdG8gc3ViYWdlbnRfaW5pdCwgbm93IHRoYXQgaXQncyBjYWxsZWQKICAgICAgICAgYWZ0ZXIgY29uZmlncyBoYXZlIGJlZW4gcmVhZAoKMjAwNS0xMS0wOSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIGNvbnNvbGlkYXRlIG1hc3RlciBhbmQgc3ViYWdlbnQgY29uZmlncyBpbiB0aGlzIGZpbGUKICAgICAtIHNsaWdodCBjb2RlIHJlLW9yZyAobm8gY2hhbmdlczsgbW92ZSBhZ2VudHggc29ja2V0IHBhcnNpbmcgdG8gdG9wKQogICAgIC0gcmVnaXN0ZXIgcGluZyBpbnRlcnZhbCBjb25maWcgYW5kIHNldCBkZWZhdWx0CiAgICAgLSByZW5hbWUgaW5pdCBmdW5jdGlvbiBzbyBjb25maWd1cmUgd29uJ3QgYWRkIGl0IHRvIG1vZHVsZXMgaW5pdHMsIHNvIHdlCiAgICAgICBjYW4gY2FsbCBpdCB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgY2FsbGVkCgoyMDA1LTExLTA5IDE3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6IGluaXQgc3ViYWdlbnQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQKICAgLSBhc3NlcnQgaWYgcm9sZSBpc24ndCBtYXN0ZXIgb3Igc3ViLWFnZW50CgoyMDA1LTExLTA5IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gZG9uJ3QgaW5pdCBzdWJhZ2VudCBoZXJlIChjb25maWdzIGhhdmVuJ3QgYmVlbiByZWFkIHlldCkKICAgICAtIG9ubHkgaW5pdCBtYXN0ZXIvc3ViIGNvbmZpZ3MKCjIwMDUtMTEtMDkgMTc6MTIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRhYmxlcwoKMjAwNS0xMS0wOCAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIG1haW4uYywgbmV0c3RhdC5oOgoKICAgSW1wbGVtZW50IE9wZW4vTmV0QlNELXN0eWxlIG9jdGV0IGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wOCAwNzoxNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgUmlnaHQtanVzdGlmeSBoZWFkaW5ncyBmb3IgY291bnRlciB2YWx1ZXMuCiAgIChsb29rcyBuZWF0ZXIgd2hlbiBpbmRpdmlkdWFsIHZhbHVlcyBiZWNvbWUgcmVsYXRpdmVseSB3aWRlKQoKMjAwNS0xMS0wOCAwNzowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgRml4IHByb2JsZW1zIHdhbGtpbmcgdGhlIElQdjYgY29ubmVjdGlvbiB0YWJsZXMuCgoyMDA1LTExLTA4IDA2OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIE9ubHkgc2NoZWR1bGUgYXV0b21hdGljIGxvYWRpbmcgb25jZSBmb3IgYW55IGdpdmVuIGNhY2hlLgoKMjAwNS0xMS0wNyAyMjo0NiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIENoYW5nZUxvZyBub3RlCgoyMDA1LTExLTA3IDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvOiBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBXaW4zMjogIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDA1LTExLTA3IDE5OjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybDoKCiAgIGludHJvZHVjZSBlbWJlZGRlZCBwZXJsIHRlc3QgZm9yIHNubXB0cmFwZCAodG9vIGZhbmN5IHRvIHJlc2lzdCkKCjIwMDUtMTEtMDcgMTk6NDIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIGZpeDogZnNzLT5mZnMKCjIwMDUtMTEtMDcgMTg6NTQgIHRhbmRlcnMKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMDcgMTg6MzQgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZml4IHR5cG9zCgoyMDA1LTExLTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGRyb3AgZGVmYXVsdCB0aW1lb3V0IGRvd24gdG8gSU5UX01BWCwgYW5kIGRvY3VtZW50IHdoeQoKMjAwNS0xMS0wNyAwOTozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBmZnMuYywgaWYuYywKICAgICBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFR3ZWFrcyB0byBzdXBwb3J0IGJ1aWxkaW5nIHVuZGVyIFdpbmRvd3MKICAgICAoaW5jbHVkaW5nIHJlbmFtZWQgJ2ZmcygpJyByb3V0aW5lLCB0YWtlbiBmcm9tIE9wZW5CU0Qgc291cmNlIHRyZWUpCgoyMDA1LTExLTA3IDA2OjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBEaXNwbGF5IGludGVyZmFjZSBhZGRyZXNzaW5nIGluZm9ybWF0aW9uLgoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0wNyAwMTo0MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0wNyAwMToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGRvbid0IHRyeSB0byB1c2UgYWdlbnQgdmFyIGluIGJhc2UgbGliIChpdCB3YXMgbGF0ZSwgb2s/KQoKMjAwNS0xMS0wNyAwMDoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGJyZWFrIG91dCBvZiB3YWl0aW5nIGxvb3BzIGlmICEgcnVubmluZwoKMjAwNS0xMS0wNiAyMjozNCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiAgTW92ZSB1aW50MTZfdCBkZWZpbml0aW9uIHRvIHN0YXRpYyB3aW4zMiBuZXQtc25tcC1jb25maWcuaAoKMjAwNS0xMS0wNiAyMToyNyAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0xMS0wNSAxODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGJyZWFrIG91dCBvZiBnZXRuZXh0IGxvb3AgaWYgISBydW5uaW5nCgoyMDA1LTExLTA1IDE3OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBvbmx5IHVzZSAidWxpbWl0IC12IiBpbiBiYXNoCgoyMDA1LTExLTA1IDE3OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMDUgMTc6MjQgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRqdXN0IGVycm9yIHJlZ2V4OiBkb24ndCBmYWlsIG9uICZlbnRyeS0+c2NoZWRMYXN0RmFpbGVkLCAmZmFpbCBldGMuCgoyMDA1LTExLTA1IDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBhbGxvdyBvdmVyLXJpZGUgb2YgTlNCXyhESVNUfEVYVFJBKV9NT0RVTEVTCiAgIC0gcmVtb3ZlIHRlc3RoYW5kbGVyIGZyb20gRVhUUkEgbW9kdWxlcyAoaGFuZ3Mgc25tcHdhbGspCiAgIC0gc2V0IFNOTVBfVE1QRElSX0JBU0UgKGZ1dHVyZSB1c2UpCgoyMDA1LTExLTA1IDE3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBJJ2xsIHRha2UgbXkgcG9ydCBudW1iZXJzIHVuc2lnbmVkLCBwbGVhc2UKCjIwMDUtMTEtMDUgMTY6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC90Y3BfdmFyLmgsIGlmIGF2YWlsYWJsZQoKMjAwNS0xMS0wNSAxNjozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZGVsaWJlcmF0ZWx5IGlnbm9yZSB1bGltaXQgZmFpbHVyZXMKCjIwMDUtMTEtMDUgMTY6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIHJlbW92ZSBzeXMvc29ja2V0dmFyLmgsIHNpbmNlIG1pYklJX2NvbW1vbi5oIGFscmVhZHkgaGFzIGl0CgoyMDA1LTExLTA1IDE0OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBzd2l0Y2ggZGlzbWFuIG1vZHVsZSBsaXN0IGJhY2sgdG8gZXZlbnQtbWliIChzdGlsbCB1c2VzIG5ldyBjb2RlKQogICAtIHJlbW92ZSBldmVudCBtaWIgY29uZmxpY3QgY2hlY2sgKGhhbmRsZWQgYnkgY29uZmlnX2V4Y2x1ZGVzKQoKMjAwNS0xMS0wNSAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKICAgLSBkZWZhdWx0IHRvIHJlLXdyaXRlcwogICAtIHdoaWNoZXZlciBpbXBsZW1lbnRhdGlvbiBpcyBzZWxlY3RlZCwgY29uZmlnX2V4Y2x1ZGUgdGhlIG90aGVyCgoyMDA1LTExLTA1IDE0OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICAtIGNlbnRyYWxpemUgZXZlbnQgbWliIHJlcXVpcmVzIGluIG9yaWdpbmFsIGV2ZW50LW1pYi5oCgoyMDA1LTExLTA1IDEzOjE1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgZml4IG9wdFByb2Mgc2lnbmF0dXJlCgoyMDA1LTExLTA0IDE4OjQ2ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIEJ1aWxkIGZpeDogcHJvdGVjdCAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlCgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBjaGVjayBpZiB3ZSBoYXZlIGhlYWRlciBiZWZvcmUgaW5jbHVkaW5nIGl0CgoyMDA1LTExLTA0IDExOjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBNb3ZlIHRoZSBvcHRpb24gZmxhZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW50byBhIGNvZGUgZmlsZS4KCjIwMDUtMTEtMDQgMTE6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFBvZXJ0YWJpbGl0eSBvZiAnc2luNl9sZW4nIGZpZWxkIGlzIHVuY2xlYXIKICAgKGFuZCBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHNlZW0gdG8gYmUgbmVlZGVkKQoKMjAwNS0xMS0wNCAxMTo0NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oOgoKICAgYWRkIHZvaWQgdG8gZW1wdHkgcHJvdG90eXBlIHBhcmFtIGxpc3QKCjIwMDUtMTEtMDQgMDk6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRGV0ZWN0IChhbmQgcmVqZWN0KSB1c2Ugb2YgY29uZmxpY3RpbmcgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9ucy4KCjIwMDUtMTEtMDQgMDc6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIG1haW4uaCwKICAgICBuZXRzdGF0Lmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQKCjIwMDUtMTEtMDQgMDc6MzEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUGx1ZyBtaW5vciBtZW1vcnkgbGVhay4KCjIwMDUtMTEtMDMgMjA6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmg6CgogICB1cGRhdGUgLmggZnJvbSB0aGUgdHJhcGQuaCBmaWxlcwoKMjAwNS0xMS0wMyAxOTo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgbWFrZSBwZXJsIG9ubHkgcmVxdWlyZSB0aGUgZXhlY3V0ZSBiaXQKCjIwMDUtMTEtMDMgMTE6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGp1c3QgdG8gbmV3IHNubXBuZXRzdGF0IG9wdGlvbnMKCjIwMDUtMTEtMDMgMTE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIHJvdXRlLmM6CgogICBFbnN1cmUgSVB2NiBjb2RlIGlzIG9taXR0ZWQgKHVudGlsIGl0IGNhbiBiZSBwcm9wZXJseSBwb3J0ZWQvdGVzdGVkKQoKMjAwNS0xMS0wMyAxMTo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBPbWl0IHJlZHVuZGVudCBkZWNsYXJhdGlvbnMuCgoyMDA1LTExLTAzIDExOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFJlbW92ZSBjb2RlIGZvciBkZXRlcm1pbmluZyBSUEMgc2VydmljZSBuYW1lcwogICAobm90IHJlbGV2YW50L2FwcHJvcHJpYXRlIGZvciBTTk1QLWJhc2VkIHF1ZXJpZXMpCgoyMDA1LTExLTAzIDA4OjU4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2YgaG9zdC1zcGVjaWZpYyByb3V0ZXMsIGFuZCBkaXNwbGF5aW5nIGdhdGV3YXkvaG9zdCBuYW1lcy4KCjIwMDUtMTEtMDMgMDc6MjEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIHJvdXRlLmM6CgogICBSZS1pbXBsZW1lbnQgcm91dGluZyB0YWJsZSBkaXNwbGF5IChiYXNlZCBvbiBPcGVuQlNEIGNvZGUpCgoyMDA1LTExLTAzIDA3OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCByZXBlYXRlZCBpbnRlcmZhY2UgZGlzcGxheS4KCjIwMDUtMTEtMDIgMTY6MjEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBtb3ZlIGluY2x1ZGUgYWZ0ZXIgbmV0LXNubXAtaW5jbHVkZXMuaDsgZml4IGdsb2JhbCBzZXNzaW9uIG5hbWUKCjIwMDUtMTEtMDIgMTI6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4Lmg6CgogICByZW1vdmUgYm9ndXMgZXhwZXJpbWVudGFsIGNvbmZpZyBtYWNybwoKMjAwNS0xMS0wMiAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIHNlbWktY29sb24KCjIwMDUtMTEtMDIgMDk6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIG1haW4uYywKICAgICBtYWluLmgsIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IHJlLWltcGxlbWVudGF0aW9uLCBiYXNlZCBvbiByZS1kaXN0cmlidXRhYmxlIE9wZW5CU0QgY29kZS4KICAgKE5vdGUgdGhhdCBpZi5jIGRyYXdzIGhlYXZpbHkgb24gdGhlIEZyZWVCU0QgaW50ZXJmYWNlIGRpc3BsYXkgYmVoYXZpb3VyLAogICAgd2hpY2ggaXMgc29tZXdoYXQgZGlmZmVyZW50IHRvIHRoZSBOZXQvT3BlbkJTRCBhcHByb2FjaCkKCjIwMDUtMTEtMDIgMDE6NTYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB3b3JkIHR3aWRkbGVzCgoyMDA1LTExLTAyIDAxOjUwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBmaXggZW1iZWRkZWQgcGVybCBhbmQgZW5zdXJlIGNvbXBpbGF0aW9uIGZhaWx1cmVzIGlmIHR1cm5lZCBvbiBidXQgZnVuY3Rpb25zIG1pc3NpbmcKCjIwMDUtMTEtMDEgMTU6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZG9uJ3QgYWRkIG5vdGlmeSBvYmplY3RzIHRvIHRoZSBzY2FsYXIgbGlzdAoKMjAwNS0xMS0wMSAwNDowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyB1bGltaXQKCjIwMDUtMTAtMzEgMDc6NDAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgVHJ1NjQgVW5peCA1LjEgYnVpbGQgZml4OiBtYWtlIHN1cmUgVUlOVDMyX01BWCBpcyBkZWZpbmVkCgoyMDA1LTEwLTMxIDA2OjExICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIGJhc2gKCjIwMDUtMTAtMzEgMDU6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBTb2xhcmlzIGJ1aWxkIGZpeDogaW5jbHVkZSBsaW1pdHMuaCBmb3IgW1VdTE9OR19NQVggYW5kIExPTkdfTUlOCgoyMDA1LTEwLTMxIDA0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEwLTMxIDA0OjI3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEwLTMxIDA0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBwYXRjaGVzIGZyb20gYXBwbGUKCjIwMDUtMTAtMzEgMDQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2RhcndpbjcuYywKICAgICBtZW1vcnlfZGFyd2luNy5oLCB2bXN0YXRfZGFyd2luNy5jLCB2bXN0YXRfZGFyd2luNy5oCjoKCiAgIG1lbW9yeS92bXN0YXRzIGNvZGUgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3ByaXZhdGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgZmlyc3QgcGFzcyBhdCB1ZHBFbmRwb2ludFRhYmxlCgoyMDA1LTEwLTMxIDAzOjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgY3B1IGFuZCBtZW1vcnkgbGltaXRzIHRvIHByZXZlbnQgbWFqb3IgZGFtYWdlLCBlc3BlY2lhbGx5IHNpbmNlIHdlIG5vdyBoYXZlIGEgZnVsbCBzbm1wd2FsayB0ZXN0CgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTEwLTMwIDIzOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBjYWxjdWxhdGUgcHJlZml4IG9pZCBhcyBuZWVkZWQKCjIwMDUtMTAtMzAgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZW1vdmUgcHJlZml4IG9pZDsgYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHByZWZpeCBvaWQKCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBnZXQgcmlkIG9mIHByZWZpeCBvaWQKICAgLSBhZGQgcHJlZml4IGxlbgogICAtIGFkZCBwcmVmaXggZnVuY3Rpb24gcHJvdG90eXBlcwoKMjAwNS0xMC0zMCAyMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGRvbid0IHVzZSB0ZXN0IGNvcnJlY3QgZmxhZyBiaXQKICAgLSBhZGQgcHJlZml4IHV0aWxpdHkgcm91dGluZXMKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgYWRkIGFjY2VzcyB0byBjb250YWluZXIKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkbyBub3QgdXNlIGluaXQgZmxhZyB3aXRoIGxvYWQgcm91dGluZQoKMjAwNS0xMC0zMCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gcmVtb3ZlIGluZXQ2IGNvZGUsIHNpbmNlIHRoZXJlIHdlIGFyZW4ndCB1c2luZyBpcHY2IGlvY3RscwogICAtIGFkZCBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBkZXRhaWxlZCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZG93biBhIGxldmVsCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIHVzZSBuZXcgdXRpbCBmdW5jIHRvIGNhbGN1bGF0ZSBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSBjaGVjayBkaXJ0eSBmbGFnIGZvciB3cml0YWJsZSB0YWJsZXMKCjIwMDUtMTAtMzAgMjI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCBwYXNzIGF0IGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV3IG5ldHNubXBfY3ZhbHVlIHVuaW9uCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi90ZXh0X3V0aWxzLmMKOgoKICAgbW9yZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMDUtMTAtMzAgMTQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBuZXcgdXRpbCBmaWxlcwoKMjAwNS0xMC0zMCAxMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIHVuc29ydGVkIGZsYWcKCjIwMDUtMTAtMzAgMTM6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgLSBhZGQgY29tcGFyZSBmdW5jdGlvbiBwdHIgdG8gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gc2V0IGNvbXBhcmUgZnVuYyBmcm9tIGNvbnRhaW5lciB0eXBlIHN0cnVjdAogICAtIHJlZ2lzdGVyIHNvbWUgc3RyaW5nIGNvbXBhcmUgYmFzZWQgYmluYXJ5IGFycmF5IHR5cGVzCgoyMDA1LTEwLTMwIDEzOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgLSBuZXcgY29udGFpbmVyIHJlZ2lzdGVyIHdpdGggY29tcGFyZSBwcm90b3R5cGUKICAgLSBhZGQgdW5zb3J0ZWQgY29udGFpbmVyIGZsYWcKICAgLSBmaXggY29udGFpbmVyIG9wdGlvbnMgbWFjcm9zCiAgICAgLSBhZGQgcmMgcGFyYW0KICAgICAtIG1pc3NpbmcgfQoKMjAwNS0xMC0yOSAxODoxMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgdGVzdCBjaGFuZ2UgYW5kIHVzYWdlIG9mIGxvY2FsaXplZCBrZXlzCgoyMDA1LTEwLTI5IDE3OjI5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIGludHJvZHVjZSBzbm1wdHJhcGQgdHJhcGhhbmRsZSB0ZXN0CgoyMDA1LTEwLTI5IDE1OjU4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgSW50cm9kdWNlIGZ1bGwgc25tcHdhbGsgdGVzdC4gTmVlZHMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgQ1BVIGN5Y2xlcywgYnV0IHdpbGwgY2F0Y2ggaW1wb3J0YW50IGlzc3VlcyBsaWtlIHdoZW4gYSBzaW1wbGUgd2FsayBjcmFzaGVzL2hhbmdzIHRoZSBhZ2VudC4KCjIwMDUtMTAtMjkgMDg6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGRhdGFfc2V0LmgsIGRlbGF5ZWRfaW5zdGFuY2UuaAosIGV4YW1wbGUuaCwgbmV0U25tcEhvc3RzVGFibGUuaCwKICAgICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaAosIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsIG5vdGlmaWNhdGlvbi5oCiwgc2NhbGFyX2ludC5oLCB1Y2REZW1vUHVibGljLmg6CgogICBhZGQgbWlzc2luZyBoZWFkZXIgcHJvdGVjdCBhbmQvb3IgY3BsdXNwbHVzIGlmZGVmcwoKMjAwNS0xMC0yOSAwODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBmb3Igd2F0Y2hlZC5oCgoyMDA1LTEwLTI4IDIzOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgLSByZW1vdmUgZXh0cmEgOwogICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBtYWNybwoKMjAwNS0xMC0yOCAyMzozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgcmVkdWNlIHNjb3BlIG9mIGlvY3RsIHZlcnNpb24gY2hlY2tpbmcgdG8gdjQgb25seSAobm8gaXB2NiBpb2N0bHMpCgoyMDA1LTEwLTI4IDIzOjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAo6CgogICBjb3JyZWN0IGN1dC1uLXBhc3RlIGVycm9yIGluIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAyMzoyNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgeWFuayBtb3JlIGNvZGUgd2hpY2ggaXMgdW51c2VkIGR1ZSB0byBjb250YWluZXIgc2hhcmluZwoKMjAwNS0xMC0yOCAyMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKOgoKICAgdXBkYXRlIGZvciBjaGFuZ2VkIGlmZW50cnkgdmFyIG5hbWVzCgoyMDA1LTEwLTI4IDIzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwo6CgogICBza2lwIHZhcnMgdGhhdCBkbyBub3QgaGF2ZSBpZmVudHJ5IGZsYWcgc2V0CgoyMDA1LTEwLTI4IDIzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBhZGQgbWlzc2luZyBmbGFncyBwYXJhbSB0byBhcmNoIGNvbnRhaW5lciBsb2FkCiAgIC0gc3VwcG9ydCBmb3IgaXB2KDR8Nikgb25seSBsb2FkIGZsYWcKICAgLSB0cnkgdG8gbG9hZCBpcHY2IGV2ZW4gaWYgaXB2NCBmYWlscwoKMjAwNS0xMC0yOCAyMzoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBwYXNzIGNvcnJlY3QgZmxhZ3MgdG8gY29udGFpbmVyIGluaXQgZHVyaW5nIGxvYWQKCjIwMDUtMTAtMjggMjM6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB0d2Vha3MgYW5kIHN1cHBvcnQgZm9yIGlwdjZJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBuZXcgbG9hZCBmbGFncwoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaW5zZXJ0IGZpbHRlcmluZwoKMjAwNS0xMC0yOCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSByZWR1Y2UgZGVwZW5kZW5jeSBsaXN0IG9uIHNubXBfdmFycy5sbyB0byBhZ2VudF9tb2R1bGVfbGlzdF9oCiAgIC0gYWRkIG1pYl9tb2R1bGVfbGlzdF9oIGFzIGRlcCBmb3IgbWliX21vZHVsZXMubG8KICAgLSBkb2N1bWVudCB3aHkgcmVhZF9jb25mLmxvIGRlcHMgYXJlIGhlcmUgYW5kIG5vdCBpbiBzbm1wbGliL01ha2VmaWxlLmluCgoyMDA1LTEwLTI4IDIzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS86IGlwdjZJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NkludGVyZmFjZVRhYmxlLmgsIGlwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaAosIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbXBsZW1lbnQgaXB2NkludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDIzOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIHNodXRkb3duIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAxODozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nIFNOTVBDT05GUEFUSAoKMjAwNS0xMC0yOCAxNzoyOCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgbG9naWMgY2hhbmdlIG9uIGdldEtzdGF0SW50CgoyMDA1LTEwLTI4IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVtb3ZlIDsgZnJvbSBjb25maWdfcmVxdWlyZSBtYWNyb3MKCjIwMDUtMTAtMjggMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICAtIG1vdmUgbG9jYWwgaW5jbHVkZSB3aXRoIG90aGVyIGxvY2FsIGluY2x1ZGVzCiAgIC0gaWZkZWYgcHJvcHR5cGVzIHRoYXQgd29uJ3QgYmUgZGVmaW5lZCBmb3IgTk9BUkNIIGNhc2UKCjIwMDUtMTAtMjggMTU6NDAgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIGZvcmdvdCB0aGUgaW5jbHVkZSBmb3Igc29tZSBuZXRzbm1wX2FyY2hfaW50ZXJmYWNlIHN0dWZmCgoyMDA1LTEwLTI4IDE0OjQ5ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIHlvdSBjYW4ndCBub3QgZGVjbGFyZSBIUk5faW5kZXggZm9yIHNvbGFyaXMgdGhlbiBleHBlY3QgaXQgdG8gcmV0dXJuIGEgZmV3IGxpbmVzIGxhdGVyCgoyMDA1LTEwLTI4IDE0OjIwICBic2hhdzY2NgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgaXQncyB1aW50MTZfdCBub3QgdV9pbnQxNl90CgoyMDA1LTEwLTI4IDEyOjU1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgdXBkYXRlIG9uIC1DRSBhbmQgLUNrCgoyMDA1LTEwLTI4IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgcmVtb3ZlIGFjY2lkZW50YWwgY2hlY2tpbiBvZiB1bmltcGxlbWVudGVkIGNvbmZpZyBtYWNybwoKMjAwNS0xMC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI4IDEyOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIG5ldyBhcmd1bWVudCB0byB0dXJuIG9uIGRlYnVnIGR1cmluZyBtaWIgbW9kdWxlIHByb2Nlc3NpbmcKCjIwMDUtMTAtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICByZXF1aXJlIG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI4IDEyOjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW5hbWUvcmV2YW1wIGludGVyZmFjZSBjb3VudCBmdW5jdGlvbgogICAgIC0gYWxsb2NhdGUgbG9jYWwgaWZjb25mIGlmIGNhbGxlZCBkaWRuJ3QgcGFzcyBvbgogICAgIC0gZG9jdW1lbnQgdGhhdCBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRoYXQgY2FsbGVyIG11c3QgcmVsZWFzZSBpZgogICAgICAgdGhleSBwYXNzIGluIHRoZWlyIG93biBpZmNvbmYgcG9pbnRlcgoKMjAwNS0xMC0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSByZW1vdmUgJzsnIGZvcm0gY29uZmlnXyogbWFjcm9zCiAgIC0gY29uZmlnX3JlcXVpcmUgaWZUYWJsZSwgaW5jbHVkZSBpZlRhYmxlIGhlYWRlcgoKMjAwNS0xMC0yOCAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY2FsbCBpZlRhYmxlIGluaXQgdG8gbWFuYWdlIGlmWFRhYmxlIGluaXQKCjIwMDUtMTAtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFkZCBjYWxscyB0byBpcHYoNHw2KSBpbnRlcmZhY2UgdGFibGVzIHdoZW4gdXBkYXRpbmcgcm93cwogICAtIGNvcnJlY3QgaWZUYWJsZUxhc3RDaGFuZ2UgYmVoYXZpb3VyIHRvIGNvbXBseSB3aXRoIG9iamVjdCBkZWZpbml0aW9uCiAgIC0gY2xhcmlmeSBzb21lIGNvbW1lbnRzCiAgIC0gYWRkIGFzc2VydCB0byBub3RpZnkgdXMgd2hlbi9pZiBhbmQgb3MgdHJhY2tzIGxhc3QgY2hhbmdlZCBvbiBpdCdzIG93bgoKMjAwNS0xMC0yOCAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZml4IGNvbmZpZ19yZXF1aXJlIG1hY3JvcwogICAtIGFkZCByZXF1aXJlIGZvciBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKICAgLSByZW1vdmUgbGFzdCBjaGFuZ2UgZnJvbSBkYXRhIGNvbnRleHQsIHVzZSBpZmVudHJ5IHZlcnNpb24gaW5zdGVhZAoKMjAwNS0xMC0yOCAxMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gbWFrZSBpbml0X2lmVGFibGUgdGhlIGNvbW1vbiBpbml0IGZ1bmN0aW9uIGZvciBpbnRlcmZhY2UgbW9kdWxlcwogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzCiAgICAgLSBwcm9wZXIgaW5pdCBmdW5jdGlvbiBjYWxscyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZS9pZlhUYWJsZQoKMjAwNS0xMC0yOCAxMTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbW92ZSBzdGF0cyBwYXJzaW5nIHRvIGl0J3Mgb3duIGZ1bmN0aW9uCiAgIC0gc3VwcG9ydCBuZXcgbG9hZCBmbGFnczogaXB2NCBvbmx5LCBubyBzdGF0cwogICAtIGFkZCAoaGFyZGNvZGVkIHJlYXNtX21heCkKICAgLSBnZXQgYXJwIHJldHJhbnNtaXQgdGltZSBmcm9tIC9wcm9jCgoyMDA1LTEwLTI4IDExOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oOgoKICAgYWRkIGNvbmZpZ19yZXF1aXJlIG9mIGRhdGFfYWNjZXNzL2lwYWRkcmVzcwoKMjAwNS0xMC0yOCAxMTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBjaGVjayBhbiBpbnRlcmZhY2UgZm9yIGlwdig0fDYpIGlwIGFkZHJlc3NlcwoKMjAwNS0xMC0yOCAxMTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCB3YXJuaW5ncyB0byB1cGRhdGUgZnVuY3Rpb25zIHdoZW4gYWRkaW5nL2RlbGV0aW5nIHN0dWN0IG1lbWJlcnMKICAgLSBtYWtlIGZsYWdzIGZpZWxkIHVuc2lnbmVkCiAgIC0gdW5zaWduZWQgaW50IC0+IHVfaW50CiAgIC0gYWRkIGZpZWxkcyBmb3IgaXB2NEludGVyZmFjZVRhYmxlCiAgIC0gZml4IG9zX2ZsYWdzIGNvbW1lbnQKICAgLSBuZXcgbnNfZmxhZ3MgZGVmaW5lcyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZQogICAtIG5ldyBsb2FkIGZsYWdzIGRlZmluZXMKCjIwMDUtMTAtMjggMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVuYW1lIHRvIGludGVyZmFjZS5jCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgcmVuYW1lIGludGVyZmFjZV9jb21tb24uYyB0byBpbnRlcmZhY2UuYyB0byBlYXN5IGNvbmZpZ3VyZSBwcm9jZXNzaW5nCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gcmV2ZXJ0IHRvIHByZXZpb3VzIGJlaGF2aW9yIG9mIGlmRGVzY3IgPSBpbnRlcmZhY2UgbmFtZQogICAtIGFkZCBuZXcvbWlzc2luZyBzdHJ1Y3R1cmUgbWVtYmVycyB0byBpbnRlcmZhY2UgY29weSByb3V0aW5lCiAgIC0gcmVuYW1lIGluaXQgZnVuY3Rpb24gZm9yIHBlbmRpbmcgZmlsZSByZW5hbWUKCjIwMDUtMTAtMjggMTE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS5oCiwgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCBpcC1taWIvaXBfc2NhbGFycy5oCiwgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosIHRjcC1taWIvdGNwQ29ublRhYmxlLmgsIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLmgKLCB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oOgoKICAgLSBtb3N0bHkgcmVtb3ZpbmcgZXh0cmFuZW91cyAnOycgb24gY29uZmlnXyogbWFjcm9zCiAgIC0gYSBmZXcgdHdlYWsgY29uZmlnXyogbWFjcm9zCgoyMDA1LTEwLTI4IDExOjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjggMTE6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGNoZWNrIGZvciBwcm9ncmFtICdmaW5kJwogICAtIG9ubHkgYWRkIGhlYWRlciB0byAoYWdlbnR8bWliKV9tb2R1bGVfaW5jbHVkZXMuaCBpZiBpbml0L3NodXRkb3duIGZvdW5kCgoyMDA1LTEwLTI4IDEwOjI2ICB0YW5kZXJzCgogICAqIGRpc3QvOiBSRUFETUUuYnVpbGQtc2NyaXB0cywgbnNiLW5pZ2h0bHksCiAgICAgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwbwoKMjAwNS0xMC0yOCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOiBpcHY0SW50ZXJmYWNlVGFibGUuYwosIGlwdjRJbnRlcmZhY2VUYWJsZS5oLCBpcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgKLCBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jOgoKICAgaW1wbGVtZW50IGlwdjRJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAwODoxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIG1ha2Ugc3VyZSBzbm1wbmV0c3RhdCBjYW4gYmUgZXhlY3V0ZWQ7IHNraXAgb3RoZXJ3aXNlCgoyMDA1LTEwLTI3IDA1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliLzogZ2V0b3B0LmMsIHN0cnRvbC5jLCBzdHJ0b3VsLmM6CgogICBSZW1vdmUgVUNCIGFkdmVydGlzaW5nIGNsYXVzZSAocmVzY2luZGVkIDIyIEp1bHkgMTk5OSkKCjIwMDUtMTAtMjcgMDU6MzggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSBCU0QgY29weXJpZ2h0IGxpY2Vuc2Ugd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uLgoKMjAwNS0xMC0yNiAxODo1NCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkZCBzaW1wbGUgdGVzdCBmb3Igc25tcG5ldHN0YXQgdG8gdmVyaWZ5IHRoZSB1cGNvbWluZyByZXdyaXRlCgoyMDA1LTEwLTI2IDE4OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIHNraXAgb24gRElTQUJMRV9TRVRfU1VQUE9SVAoKMjAwNS0xMC0yNiAxNzo0NyAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBkb2N1bWVudCBnZW5lcmljIC0tPG5hbWU+PTx2YWx1ZT4gY29tbWFuZC1saW5lIG9wdGlvbgoKMjAwNS0xMC0yNiAxNzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZG9jdW1lbnQgZ2VuZXJpYyAtLTxuYW1lPj08dmFsdWU+IGNvbW1hbmQtbGluZSBvcHRpb24KCjIwMDUtMTAtMjYgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBhbGxvd3MgdG8gdXNlIG9sZCBhbmQvb3IgbmV3IGxvY2FsaXplZCBrZXkgaW5zdGVhZCBvZiBwYXNzLXBocmFzZSB3aXRoIC1DawoKMjAwNS0xMC0yNiAxMjoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtYWpvciByZXdyaXRlOiBhZGRzIG1vcmUgdGVzdHMgYW5kIHVzZXMgbmV3IFN2M3VzbWNvbmZpZyoKCjIwMDUtMTAtMjYgMTI6MjMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgZml4IHNvbWUgdmFyaWFibGUgbmFtZXMKCjIwMDUtMTAtMjYgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICByZW1vdmUgcGF0Y2ggZmx1YgoKMjAwNS0xMC0yNiAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgdG8gaGVscCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpZmZlcmVudCBjYWNoZSB0aW1lcnMuCgoyMDA1LTEwLTI2IDA3OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIFNsaWdodCByZXRoaW5rIGFib3V0IGhvdyB0byBoYW5kbGUgdGhlIHJlbW92YWwgb2YgYSBNSUIgcmVnaXN0cmF0aW9uLgogICAoVGhpcyBpcyBkZWZpbml0ZWx5IG9uZSBmb3IgNS40LCBtZXRoaW5rcyEpCgoyMDA1LTEwLTI2IDA2OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBnZW5lcmljIHRhYmxlIEFQSSByb3V0aW5lIG5hbWVzLgoKMjAwNS0xMC0yNiAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIEJyaW5nICd0ZGF0YScgcm91dGluZSBuYW1lcyBpbnRvIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgdGFibGUgQVBJCgoyMDA1LTEwLTI2IDA2OjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3IgZHVlIHRvIHdyb25nIGhwdXgxMSB0ZXN0CgoyMDA1LTEwLTI2IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE1vdmUgcmVnaXN0cmF0aW9uIG9mIHN0YW5kYXJkIHZpZXdzIHNvIHRoYXQgdGhleSdyZSBwaWNrZWQgdXAKICAgYnkgYm90aCBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyIGluaXRpYWxpc2F0aW9uLgogICBDbGFyaWZ5IHdoaWNoIGluaXRpYWxpc2F0aW9uIHJvdXRpbmVzIGFyZSBjYWxsZWQgYnkgd2hpY2ggYXBwcy4KCjIwMDUtMTAtMjUgMTk6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBhcyBzdWdnZXN0ZWQgYnkgRGF2ZSB0byBnZXQgc25tcHRyYXBkIHdvcmtpbmcgYWdhaW4KCjIwMDUtMTAtMjUgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgLSBuYXJyb3cgc2NvcGUgb2YgYXNzZXJ0IHRlc3QKICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMDUtMTAtMjUgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yNSAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB0ZXN0cyBmb3IgZW1wdHkgdmFyIGNhc2UKCjIwMDUtMTAtMjUgMTI6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLi4uIGFuZCBzYXkgc28uCgoyMDA1LTEwLTI1IDEyOjQwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIGNsYXJpZnkgYXMgYmVpbmcgYSBub0F1dGhOb1ByaXYgdGVzdAoKMjAwNS0xMC0yNSAxMTo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBPcGVuQlNEIDMuNCAicHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nOiBzeXMvc3dhcC5oIG5lZWRzIHN5cy9wYXJhbS5oIGZvciBNQVhQQVRITEVOCgoyMDA1LTEwLTI1IDExOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIE1GRF9SRVdSSVRFIGRlZmluZSB0ZXN0cwoKMjAwNS0xMC0yNSAxMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gY29tbWVudCBmb3JtYXR0aW5nCiAgIC0gY29uZmlnX2V4Y2x1ZGUgaWYtbWliL2lmVGFibGUvaWZUYWJsZQoKMjAwNS0xMC0yNSAxMTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGFkZCBJVEVSQVRPUl9SRUxFQVNFIG1hY3JvCgoyMDA1LTEwLTI1IDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIEFsdGVybmF0aXZlIHZpZXd0eXBlLWJhc2VkIGFjY2VzcyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSAoImF1dGhhY2Nlc3MiKS4KICAgU2ltaWxhciB0byAic2V0YWNjZXNzIiwgYnV0IGNsb3NlciBpbiBmZWVsIHRvIHRoZSBvdGhlciBhdXRoKiBkaXJlY3RpdmVzLgogICBUaGlzIGFsc28gYWxsb3dzIHRoZSBzZWN1cml0eSBtb2RlbCwgbGV2ZWwgYW5kIGNvbnRleHQgaW5mb3JtYXRpb24gdG8gYmUKICAgb21pdHRlZCAoZGVmYXVsdGluZyB0byBzZW5zaWJsZSB2YWx1ZXMpLgoKMjAwNS0xMC0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBcmdnZ2hoaGghISEgIElmIHlvdSd2ZSBnb3QgY29kZSB0aGF0IHdvcmtzLCBkb24ndCBjaGFuZ2UgaXQgYmVmb3JlIGNvbW1pdHRpbmcgaXQuCiAgIElmIHlvdSAqbXVzdCogY2hhbmdlIGl0LCB0aGVuIGF0IGxlYXN0IGhhdmUgdGhlIGd1bXB0aW9uIHRvIHRlc3QgaXQgYWdhaW4gZmlyc3QhCiAgIDxoZWF2eSBzaWdoPgoKMjAwNS0xMC0yNSAwODowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUZWxsIHlvdSB3aGF0LCBEYXZlLiAgV2h5IGRvbid0IHlvdSB0cnkgY29tbWl0dGluZyB0aGUgY29kZSBmb3IgdGhlCiAgICJhdXRoZ3JvdXAiIGRpcmVjdGl2ZSAtIHJhdGhlciB0aGFuIGp1c3QgdGhlIGhlYWRlciBmaWxlPwogICA8c2lnaD4KICAgWW91IGp1c3QgY2FuJ3QgZ2V0IHRoZSBzdGFmZiB0aGVzZSBkYXlzLgoKMjAwNS0xMC0yNSAwNzo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmg6CgogICBEaXJlY3RpdmUgdG8gc3VwcG9ydCB2aWV3dHlwZS1iYXNlZCBjb25maWd1cmF0aW9uIG9mIGdyb3VwcyAoImF1dGhncm91cCIpCgoyMDA1LTEwLTI1IDA3OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFsbG93IGNvbW11bml0eS1iYXNlZCBkaXJlY3RpdmVzIChhdXRoY29tbXVuaXR5LCBldGMpIHRvIHNwZWNpZnkKICAgYSBwYXJ0aWN1bGFyIFNOTVAgdmVyc2lvbiAodjEtb25seSBvciB2MmMtb25seSkKCjIwMDUtMTAtMjUgMDc6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCBzaW1wbGUgYWNjZXNzIGRpcmVjdGl2ZXMgY29uZmlndXJlZCB3aXRoIG5hbWVkIHZpZXdzICgtVikKICAgYXMgd2VsbCBhcyBPSUQgc3VidHJlZXMuCgoyMDA1LTEwLTI1IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIERlZmluZSAic3RhbmRhcmQiIHZpZXdzIChhbGwgb3Igbm90aGluZykKCjIwMDUtMTAtMjUgMDc6MzkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXb3JrIHdpdGggdGhlIGFjdGl2ZSByb290IG9mIHRoZSBNSUIgdHJlZSAocmF0aGVyIHRoYW4gdGhlIGJhY2t3YXJkCiAgIGNvbXBhdGliaWxpdHkgdmVyc2lvbikuICBUaGlzIGFsbG93cyAncmVhZF9vYmppZCcgdG8gd29yayBjb3JyZWN0bHkKICAgKHdpdGggbnVtZXJpYyBPSURzKSBiZWZvcmUgdGhlIE1JQiBmaWxlcyBhcmUgbG9hZGVkLgoKMjAwNS0xMC0yNCAxOTozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgcmV3b3JrZWQgdG8gdXNlIG5ldyBTdjN1c21jb25maWcqIGZyYW1ld29yawoKMjAwNS0xMC0yNCAxOTozMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2CjoKCiAgIFNOTVB2MyBhdXRoTm9Qcml2L2F1dGhQcml2IElORk9STSB0ZXN0cyBiYXNlZCBvbiBuZXcgU3YzdXNtY29uZmlnKgoKMjAwNS0xMC0yNCAxOToyNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2M3VzbWNvbmZpZ2Jhc2UsCiAgICAgU3YzdXNtY29uZmlndHJhcGQ6CgogICByZXdyaXR0ZW4gU05NUHYzIFVTTSBjb25maWc6IGJhc2ljLCBhZ2VudCwgdHJhcGQKCjIwMDUtMTAtMjQgMTk6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgRml4IGZvciBjb21waWxhdGlvbiBpc3N1ZXM6CiAgICAgLSByZWFycmFuZ2UgZnVuY3Rpb24gb3JkZXIgdG8gZ2V0IHByb3BlciBwcm90b3R5cGUgb3JkZXJpbmcgd2l0aG91dAogICAgICAgcHJvdG90eXBlcy4KICAgICAtIFJlbW92ZWQgZGF0YSB0eXBlIGZvciBhIHZhcmlhYmxlIG5hbWUgdGhhdCB3YXMgZ2V0dGluZyBwYXNzZWQgaW4KICAgICAgIGFzIHdlbGwuCgoyMDA1LTEwLTI0IDE4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCBpbnN0ZWFkIG9mIEludGVyZmFjZV9JbmRleF9CeV9OYW1lCgoyMDA1LTEwLTI0IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSBNRkRfUkVXUklURSBjaGVjaywgdXNlIFVTSU5HX01JQklJX0lOVEVSRkFDRVNfTU9EVUxFIGluc3RlYWQKCjIwMDUtMTAtMjQgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBjb25maWdfZXhjbHVkZSBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gcmVxdWlyZSBuZXcgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKICAgLSByZW1vdmUgTUZEX1JFV1JJVEUgY2hlY2sKICAgLSBjb25zb2xpZGF0ZSBsaW51eCByZXF1aXJlcyB0byBvbmUgbGluZQoKMjAwNS0xMC0yNCAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGlmSW5kZXggbWlzLW1hdGNoIChhZGQgc3VwcG9ydCBmb3IgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkpCgoyMDA1LTEwLTI0IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmg6CgogICAtIHJlcXVpcmUgbmV3IG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCiAgIC0gcmVxdWlyZSBob3N0L2hyX2RldmljZSB0b28sIHNpbmNlIGl0IGRlY2xhcmVzIGdsb2JhbHMgd2UgbmVlZAoKMjAwNS0xMC0yNCAxODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGltcGxlbWVudCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBmdW5jdGlvbnMgSW50ZXJmYWNlX1NjYW5fKEluaXR8TmV4dCkgc28KICAgICBhbGwgbW9kdWxlcyBjYW4gYWdyZWUgb24gaWZJbmRleCB2YWx1ZXMKCjIwMDUtMTAtMjQgMTc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBidWcgaW4gaXRlcmF0b3I7IHJlc2V0IHB0ciBvdmVyd3JpdHRlbiBieSByZWxlYXNlCgoyMDA1LTEwLTI0IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZHJvcCBwYWNrZXRzIHdpdGggc2Vzc2lvbiBlcnJub3MgYXR0YWNoZWQgdG8gdGhlbQoKMjAwNS0xMC0yNCAxMzo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgcmVtb3ZlIE1GRCByZXdyaXRlIGd5cmF0aW9ucwoKMjAwNS0xMC0yNCAxMzo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI0IDEzOjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIHRlc3RzIGZvciBpbnZhbGlkIG9wdGlvbnMgKG1pbmlhZ2VudCkKCjIwMDUtMTAtMjQgMTM6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgZGV0YWlscyB0byBsb2cvZGVidWcgbWVzc2FnZQoKMjAwNS0xMC0yNCAxMzo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmg6CgogICB1c2UgbmV3IG1pYklJL2lmVGFibGUgaW4gcGxhY2Ugb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxMzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIG5ldyBtb2R1bGUgZm9yIG90aGVyIG1vZHVsZXMgdG8gcmVmZXJlbmNlLCBpbiBwbGFjZSBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDEzOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggaWZJbmRleCBsb29rdXAgb24gbGludXggKHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCkKCjIwMDUtMTAtMjQgMTE6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBHZW5lcmljIHRhYmxlIEFQSTogIlJvdyBvcGVyYXRpb25zIiAgIChleHBlcmltZW50YWwgaW1wbGVtZW50YXRpb24pCgoyMDA1LTEwLTI0IDExOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBTS0lQKCkKCjIwMDUtMTAtMjQgMTA6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgU3YzU0hBREVTY29uZmlnOgoKICAgcmVtb3ZlIG9ic29sZXRlIFNOTVB2MyBjb25maWcgZmlsZXMKCjIwMDUtMTAtMjQgMDc6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgR2VuZXJpYyB0YWJsZSBBUEk6IFJvdyBvcGVyYXRpb25zCgoyMDA1LTEwLTI0IDA2OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wZHVtcC5wbDoKCiAgIEZvciBUaG9tYXMKCjIwMDUtMTAtMjQgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3Zpc2lvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIGdlbmVyaWMgQVBJLgogICBNb3N0IG9mIHRoaXMgaXMgbm90IHJlYWxseSBhcHBsaWNhYmxlIHRvIHRoZSBpdGVyYXRvciBoZWxwZXIsIGJ1dAogICBoYXZpbmcgYSBzdGFuZGFyZCBtZWNoYW5pc20gZm9yIGNvbnN0cnVjdGluZyAoYW5kIGZyZWVpbmcpIHRoZQogICBtYWluIGl0ZXJhdG9yIHN0cnVjdHVyZSBtaWdodCBiZSB1c2VmdWwuCgoyMDA1LTEwLTI0IDA2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDb3VudCB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYW4gaXRlcmF0b3ItYmFzZWQgdGFibGUuCgoyMDA1LTEwLTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQXNzb2NpYXRlIHRhYmxlIGluZGV4IGluZm9ybWF0aW9uIHdpdGggdGhlIGl0ZXJhdG9yIHN0cnVjdHVyZS4KICAgKEV4cGVyaW1lbnRhbCBjb2RlIC0gaW50cm9kdWNlcyBhIG1pbm9yIG9uZS1vZmYgbWVtb3J5IGxlYWssCiAgICBidXQgc2hvdWxkbid0IG90aGVyd2lzZSBhZmZlY3QgZXhpc3RpbmcgY29kZSkKCjIwMDUtMTAtMjMgMjA6MTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIGluaXRpYWwgdGVzdCBmb3IgU05NUHYzIHNubXB0cmFwZCBVU00gdXNlciBtYW5hZ2VtZW50IHdpdGggc25tcHVzbQoKMjAwNS0xMC0yMyAxOTo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaXggQ0hFQ0tBR0VOVCgpIGFuZCBpbnRyb2R1Y2UgQ0hFQ0tUUkFQRE9SRElFKCkKCjIwMDUtMTAtMjMgMTk6NDUgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTEwLTIzIDE1OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmbGFncyBzdXBwb3J0OyBkZWZhdWx0IHRvIG5vIGR1cGxpY2F0ZSBrZXlzCgoyMDA1LTEwLTIzIDE1OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdHdlYWsgb3B0aW9ucyBmdW5jdGlvbiB0byBhbGxvdyB0ZXN0IGFuZCBzZXQKCjIwMDUtMTAtMjMgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBhZGQgZnVuY3Rpb24gdG8gc2V0IGNvbnRhaW5lciBvcHRpb25zCgoyMDA1LTEwLTIyIDE4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvU3YzY29uZmlnLAogICAgIHRlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RzL1N2YWNtY29uZmlnLAogICAgIHRlc3RzL1N2YW55Y29uZmlnOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwNS0xMC0yMiAxODoxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXBsYWNlIG9ic29sZXRlIHNubXB0cmFwZCAiLXUiIGZsYWcgYnkgIi1wIgoKMjAwNS0xMC0yMiAxODoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZToKCiAgIGlwLW1pYiBjaGFuZ2VzIG5vdyByZXF1aXJlIC5jdnNpZ25vcmUKCjIwMDUtMTAtMjIgMTg6MDQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGE6CgogICBvYnNvbGV0ZWQgYnkgU3YzY29uZmlnCgoyMDA1LTEwLTIyIDAwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1N3RyYXBkYXV0aHRlc3QsIFQwNTd0cmFwZGF1dGh0ZXN0MgosIFQwNTd0cmFwZGF1dGh0ZXN0MzoKCiAgIHByb3BlciBjaGVja3MgZm9yIGZhaWx1cmUgb2YgdW5hdXRob3JpemVkIHRyYXBzCgoyMDA1LTEwLTIyIDAwOjUxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MjoKCiAgIHRlc3QgZm9yIHdyb25nIHRyYXAgb2lkcwoKMjAwNS0xMC0yMiAwMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIG5ldyBjb25maWcgdG9rZW5zIHJvdW5kIDIKCjIwMDUtMTAtMjIgMDA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgRG8gdHJhcCBhdXRoIHBhcnNpbmcgdGhlIHdheSBEYXZlIHdhbnRzLgoKMjAwNS0xMC0yMSAyMDozMCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIG5ldyBoZWxwZXIgYW5kIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBuZXcgSVAtTUlCIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaDoKCiAgIGRhdGEgYWNjZXNzIGZvciBzb21lIElQLU1JQiBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogc2NhbGFyc19jb21tb24uaCwKICAgICBzY2FsYXJzX2xpbnV4LmM6CgogICBkYXRhIGFjY2VzcyBmb3IgbGludXggc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwX3NjYWxhcnMuYywgaXBfc2NhbGFycy5oOgoKICAgc29tZSBuZXcgc2NhbGFycyBpbiB0aGUgSVAtTUlCCgoyMDA1LTEwLTIxIDIwOjIyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIC0gbmV3IGhlbHBlciBmb3IgcncgYWNjZXNzIHRvIGFuIGludGVnZXIgYmFzZWQgdmFyaWFibGUgd2hpY2ggaXMgc3RvcmVkCiAgICAgYXMgYXNjaWkgaW4gYSBmaWxlCgoyMDA1LTEwLTIxIDE4OjMxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIEFkZCAiLUNFIEVOR0lORS1JRCIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHVzbVVzZXJFbmdpbmVJRC4gRW5hYmxlcyBzbm1wdXNtIHRvIG1hbmFnZSBzbm1wdHJhcGQncyB1c21Vc2VyVGFibGUgKGZpeGVzIGJ1ZyAjMTMzMzY1NSkuCgoyMDA1LTEwLTIxIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaXggZnVuIGNvbW1lbnQgaGVhZGVyIGZvciBkb3h5Z2VuIChrZWVwIHdlcyBoYXBweSkKICAgLSBkb2N1bWVudCBzbGlnaHRseSBub24tb2J2aW91cyBpbmRleCB1c2UgKGtlZXAgZGF2ZSBoYXBweSkKCjIwMDUtMTAtMjEgMTI6MjkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseSBwYXRjaCAxMjk5NTU0IGZyb20gVGFvIHRvIGZpeCBzZWdmYXVsdCBpbiB2YXJfaWZFbnRyeSgpCgoyMDA1LTEwLTIxIDA2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6CgogICBNb3JlIHBvcnRhYmxlIGhhbmRsaW5nIG9mICdvdmVyc2hvb3QnIGRlY2xhcmF0aW9uLgoKMjAwNS0xMC0yMSAwNjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2NvbnRhaW5lci5jLCB0YWJsZV9kYXRhLmMsCiAgICAgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIHNlY3Rpb24KICAgb2YgdGhlIGdlbmVyaWMgdGFibGUgQVBJLgoKMjAwNS0xMC0yMSAwNjo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBNaW5vciB0d2Vha3MgdG8gZ2VuZXJpYyB0YWJsZSBBUEkgbmFtZXMsCiAgIGFuZCBjb3JyZWN0IGEgY291cGxlIG9mIGZsYXdlZCBmdW5jdGlvbiBwcm90b3R5cGVzLgoKMjAwNS0xMC0yMSAwNToyMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGdlbmVyYWxpemVkIGV4Y2VwdGlvbiByZWdleCB0byBsZXQgYW55ICJ0ZXN0aW5nIC4uLiBmYWlsdXJlIC4uLiIgZ28gdGhyb3VnaCwgZS5nLiB0aGUgbmV3IHNubXB0cmFwZCB0ZXN0IHJlY2VudGx5IGludHJvZHVjZWQKCjIwMDUtMTAtMjEgMDE6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGluaXQgdmFjbQoKMjAwNS0xMC0yMSAwMTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmg6CgogICBpbmNsdWRlIHRoZSBuZXcgc25tcHRyYXBkX2RzLmggZmlsZQoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgQWRkZWQgYSB3YXJuaW5nIG5vdGUgYWJvdXQgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIHNubXB0cmFwZCwgd2hpY2gKICAgaGFkIGFjdHVhbGx5IGJlZW4gYnlwYXNzZWQgcmVjZW50bHkgYW5kIG5vIG9uZSBub3RpY2VkLgoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDoKCiAgIHRlc3QgdHJhcGQgYXV0aG9yaXphdGlvbiBmYWlsdXJlcwoKMjAwNS0xMC0yMSAwMTo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIE1vZGlmaWVkIHRoZSB0ZXN0cyB0byBhY2NvbW1vZGF0ZSB0aGUgbmV3IHRyYXBkIGF1dGggc2NoZW1lCgoyMDA1LTEwLTIxIDAxOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfYXV0aC5jCiwgc25tcHRyYXBkX2F1dGguaCwgc25tcHRyYXBkX2RzLmgsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgQWRkZWQgYSBuZXcgYXV0aG9yaXphdGlvbiBoYW5kbGVyIGFuZCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gdG9rZW5zIHRvCiAgIGFsbG93IHNubXB0cmFwZCB0byBhY2NlcHQgb3IgZHJvcCBub3RpZmljYXRpb25zIGJhc2VkIG9uIHRoZQogICBhdXRob3JpemF0aW9uIGFzc2lnbmVkIHRvIGEgY29tbXVuaXR5L3VzZXIgcGFpcmVkIHdpdGggdGhlIGFjdGlvbiB0bwogICBiZSB0YWtlbiAobG9nLCBmb3J3YXJkLCBleGVjdXRlKS4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb25maWd1cmF0aW9uCiAgIHRva2VucyB0aGF0IHdlcmUgYWRkZWQgdG8gYWNoaWV2ZSB0aGlzLiAgMyBvZiB0aGUgVkFDTSBvbmVzIGNhbiBiZQogICB1c2VkIGFzIG5vcm1hbCAodmlldywgY29tMnNlYywgZ3JvdXApIGFuZCBvbmUgYWRkaXRpb25hbCBvbmUKICAgKHNldGFjY2VzcykgbmVlZHMgdG8gYmUgdXNlZCB0byBzZXQgaW5kaXZpZHVhbCB2aWV3cyBmb3IgYWNjZXNzIHRvCiAgIGJpbmQgZXZlcnl0aGluZyB0b2dldGhlci4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSB3cmFwcGVycwogICBhcyB3ZWxsIGZvciB0aGVzZSB0b2tlbiBzZXRzLiAgRmluYWxseSwgdGhlcmUgaXMgYQogICBkaXNhYmxlQXV0aG9yaXphdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSBzZXQgdG8gdHJ1ZSB0byBzaW1wbHkgYWxsb3cKICAgZXZlcnl0aGluZyB0aHJvdWdoLgoKMjAwNS0xMC0yMSAwMToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICAtIHJlc3RydWN0dXJlZCB0aGUgVkFDTSBjb2RlIHRvIHByb3ZpZGUgZm9yIHRoZSBub3Rpb24gb2YgYWRkaXRpb25hbAogICAgIHZpZXdzIGJlc2lkZXMgdGhlIHN0YW5kYXJkIHJlYWQvd3JpdGUvbm90aWZ5IHZpZXdzCiAgICAgLSBtdWNoIG9mIHRoZSBjaGVja2luZyBjb2RlIHdhcyByZXN0cnVjdHVyZWQgdG8gYmUgbW9yZSBtb2R1bGFyCiAgICAgLSBhZGRlZCBhIG5ldyBzZXRhY2Nlc3MgY29uZmlnIHRva2VuIHRoYXQgY2FuIHNldCB0aGUgdmlldyBuYW1lIGZvcgogICAgICAgYSBwYXJ0aWN1bGFyIGFjY2VzcyBsZXZlbAogICAgIC0gYWRkZWQgMyBuZXcgYWNjZXNzIGxldmVsczogbG9nLCBleGVjdXRlLCBuZXQKICAgICAgIC0gYWRkZWQgZW51bSBzdHJ1Y3R1cmUgZm9yIHRoZXNlCgoyMDA1LTEwLTIwIDEzOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggcmVtYWluaW5nIElQIGFkZHJlc3MgYnl0ZSBvcmRlciBidWcKCjIwMDUtMTAtMjAgMDg6MjYgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBFdmVudCBNSUIuCgogICAoUW46IHdoZXJlIGRvZXMgJ2RlZmF1bHRfbWlic19pbnN0YWxsJyBnZXQgc2V0PykKCjIwMDUtMTAtMjAgMDg6MjUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZGVmYXVsdCBsaXN0LgoKICAgVGhpcyBxdWFsaWZpZXMgZm9yIGJvdGg6CiAgICAgICAnVHJhZGl0aW9uYWxseSBpdCdzIGJlZW4gInR1cm4gaXQgb24gaWYgaXQgY29tcGlsZXMgMTAwJQogICAgICAgIG9mIHRoZSB0aW1lLi4uLicKICAgc2luY2UgaXQncyBhbGwgbm9uLWFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLCBhbmQ6CiAgICAgICAnLi4uIGFuZCBpZiBpdCByZXF1aXJlcyBydW4gdGltZSBlbmFibGluZyBhcyB3ZWxsIgoKMjAwNS0xMC0yMCAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICBBZGQgdGhlIEV2ZW50IE1JQiB0byB0aGUgbGlzdCBvZiBNSUJzIHRvIGxvYWQuCgoyMDA1LTEwLTIwIDA3OjMzICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0gcm1kaXIgLT4gcm0gLWZSLCBzaW5jZSBkaXJlY3RvcnkgaXNuJ3QgZW1wdHkKICAgLSBhZGQgLXAvU05NUF9URVNUX1BSRUZJWCB0byBhbGxvdyBub24tc3RhbmRhcmQgdGVzdHMgdG8gYmUgcnVuCgoyMDA1LTEwLTIwIDA1OjMxICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgcHJvcGFnYXRlIHRlc3QtbWlicyB0YXJnZXQKCjIwMDUtMTAtMjAgMDQ6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2VhayBleGNlcHRpb24gcmVnZXgKCjIwMDUtMTAtMTkgMjM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhZGQgaWZUYWJsZUxhc3RDaGFuZ2Ugc2NhbGFyCgoyMDA1LTEwLTE5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvY3VtZW50IHRoYXQgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhZmZlY3RzIHNubXB0cmFwZCBhbHNvCgoyMDA1LTEwLTE5IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwIGV4Y2VwdGlvbnMKCjIwMDUtMTAtMTkgMDc6MDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIFdpdGhkcmF3ICd0YWJsZV9kYXRhc2V0MicgaGVscGVyCgoyMDA1LTEwLTE5IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBhZGQgJ2RlZmF1bHQnIGFzIHRoZSBvaWQgZm9yIGV4ZWNpbmcgdGhlIGV4YW1wbGUgdHJhcGhhbmRsZQoKMjAwNS0xMC0xOSAwMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGJ1ZyAjMTMxMzY2NzogaW5mb3JtcyBhcmUgc2VudCBhc3ljaHJvbm91c2x5IHRvIGF2b2lkIGNyYXNoaW5nIHRoZSBhZ2VudCB3aGVuIHRoZSByZWNlaXZlciBpcyBkb3duCgoyMDA1LTEwLTE4IDIyOjI0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsIFJFQURNRS50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiBSZW5hbWUgTmV0LVNOTVAucHBkIHRvIE5ldFNOTVAucHBkLCBhZGQgYSBjb3VwbGUKICAgaGVhZGVyIGZpbGVzIHRvIFdpbjMyIHVuaW5zdGFsbGVyLgoKMjAwNS0xMC0xOCAxODoyMiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkICNpZmRlZnMgZm9yIE1JQiBtb2R1bGUgZGVwZW5kZW50IGNvZGUKCjIwMDUtMTAtMTggMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBpbmRleCBnZW5lcmF0aW9uIGZvciBmaXhlZCBsZW5ndGggb2N0ZXQgc3RyaW5ncwoKMjAwNS0xMC0xOCAxMjowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaCwKICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBXaXRoZHJhdyAndGFibGVfZGF0YXNldDInIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIG10ZUV2ZW50VGFibGUuYzoKCiAgIFJldmVydCB0byBvcmlnaW5hbCAndGFibGVfZGF0YXNldCcgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICBzeW5jIHJlYWRtZSBpbiBhbGwgYnJhbmNoZXMKCjIwMDUtMTAtMTggMTE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFJldmVydCB0byB1c2luZyB0aGUgb3JpZ2luYWwgJ3RhYmxlX2RhdGFzZXQnIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHRhYmxlLXRyYXZlcnNhbCByb3V0aW5lcy4KCjIwMDUtMTAtMTggMTA6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaDoKCiAgIE9vcHMhICBPbmUgbG9jYXRpb24gY2hhbmdlIGdvdCBvdmVybG9va2VkIQoKMjAwNS0xMC0xOCAxMDo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgZ3JlcHMgZm9yIGVycm9yIGNhc2UgaW5zZW5zaXRpdmUKCjIwMDUtMTAtMTggMTA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgZG8gbm90IGluc3RhbGwgcmVtb3ZlZC9yZWR1bmRhbnQgaGVhZGVyCgoyMDA1LTEwLTE4IDEwOjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgsCiAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbmFtZSAndGFibGVfZGF0YTInIGhlbHBlciBhcyAndGFibGVfdGRhdGEnCgoyMDA1LTEwLTE4IDA3OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIFByZXBhcmUgdGhlIHdheSBmb3IgcmVuYW1pbmcgJ3RhYmxlX2RhdGEyJyBtb3JlIHNlbnNpYmx5LgoKMjAwNS0xMC0xOCAwNzozOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgUmVtb3ZlIHVud2FudGVkIHZlc3RpZ2F0ZXMgb2YgJ3RhYmxlX2RhdGEnIHN0cnVjdHVyZXMsIGFuZCBicmluZwogICB0YWJsZSBjcmVhdGlvbiBtb3JlIGNsb3NlbHkgaW50byBsaW5lIHdpdGggdGhlIGdlbmVyaWMgQVBJIHRlbXBsYXRlLgoKMjAwNS0xMC0xOCAwNzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWUuCgoyMDA1LTEwLTE4IDA3OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWVzLgoKMjAwNS0xMC0xOCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBJZiBubyBpcXVlcnkgc2Vzc2lvbiBpcyBjb25maWd1cmVkIGZvciBhIHBhcnRpY3VsYXIgZXZlbnQsCiAgIHRyeSB0aGUgc2V0dGluZ3MgZnJvbSB0aGUgdHJpZ2dlciwgYmVmb3JlIGZhbGxpbmcgYmFjayB0bwogICB0aGUgZGVmYXVsdCBpbnRlcm5hbCBxdWVyeSBzZXNzaW9uLgoKMjAwNS0xMC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBVc2UgJ2lxdWVyeVNlY05hbWUnIHNldHRpbmdzIGF0IGNvbmZpZ3VyZSB0aW1lLCByYXRoZXIgdGhhbiB3aGVuCiAgIHRoZSB0cmlnZ2VyIGlzIGFjdHVhbGx5IGludm9rZWQuICBUaGlzIGFsbG93czoKICAgICAgICBpcXVlcnlTZWNOYW1lIG1lCiAgICAgICAgbW9uaXRvciBteU1vbml0b3IgLi4uLi4KICAgICAgICBtb25pdG9yIG15T3RoZXJNb25pdG9yIC4uLi4uCiAgICAgICAgaXF1ZXJ5U2VjTmFtZSB5b3UKICAgICAgICBtb25pdG9yIHlvdXJNb25pdG9yIC4uLi4uCiAgIHRvIHdvcmsgaW4gdGhlIG1vc3QgbmF0dXJhbCBtYW5uZXIuCiAgIElmIG5vIGlxdWVyeSBzZWN1cml0eSBuYW1lIGlzIGF2YWlsYWJsZSBhdCBjb25maWd1cmUgdGltZSwKICAgdGhpcyB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLgoKMjAwNS0xMC0xOCAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29uZi5oLAogICAgIHNjaGVkQ29yZS5jLCBzY2hlZENvcmUuaCwgc2NoZWRUYWJsZS5jLAogICAgIHNjaGVkVGFibGUuaDoKCiAgIFJlbW92ZSBwcmV2aW91cyBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDA1LTEwLTE4IDA3OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZHVsZS5oLCBzY2hlZHVsZS8uY3ZzaWdub3JlCiwgc2NoZWR1bGUvc2NoZWRDb25mLmMsIHNjaGVkdWxlL3NjaGVkQ29uZi5oLAogICAgIHNjaGVkdWxlL3NjaGVkQ29yZS5jLCBzY2hlZHVsZS9zY2hlZENvcmUuaCwKICAgICBzY2hlZHVsZS9zY2hlZFRhYmxlLmMsIHNjaGVkdWxlL3NjaGVkVGFibGUuaDoKCiAgIFJlLXdvcmtlZCBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCiAgIENsZWFuZXIsIGxlYW5lciwgYW5kIG1vcmUgY29tcGxldGUuCiAgIE5vdyB3aXRoIGFkZGVkIHZpdGFtaW5zLgoKMjAwNS0xMC0xNyAxODoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGFkZCBtb3ZlIHZlcmJvc2UgZGVidWdnaW5nOyBpbml0IGlubmVyIGxvb3AgY291bnRlciBhZnRlciBlYWNoIGl0ZXJhdGlvbgoKMjAwNS0xMC0xNyAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBwb3J0YWJsZSBleHBvcnQgb2YgZW52IHZhcgoKMjAwNS0xMC0xNyAxNjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBhIGZsaXBwaW5nIGxvIGludGVyZmFjZSBieSBmaXhpbmcgZ2V0S3N0YXRJbnQgdG8gZG8gYXMgZG9jdW1lbnRlZAoKMjAwNS0xMC0xNyAxNDoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBhZGQgcHJvdG90eXBlIGJlZm9yZSB1c2U7IGNoZWNrIHN0YXR1cyBvZiBjb3JyZWN0IHN0cnVjdCBtZW1iZXIKCjIwMDUtMTAtMTcgMTI6NTIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgLSBub3RlIGxkIGZsYWdzIGZvciAxMC40LnggYnVpbGRpbmcgdy9wZXJsCgoyMDA1LTEwLTE3IDExOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEVuc3VyZSB0aGUgZXZlbnQgbmFtZSBidWZmZXIgaXMgcHJvcGVybHkgY2xlYXJlZCBiZWZvcmUgdXNlLgoKMjAwNS0xMC0xNyAwNzozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vZGlmeSBleGlzdGluZyB0YWJsZSBoZWxwZXJzIGluIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgZ2VuZXJpYyBBUEkuCgogICBUaGlzIGRvZXMgKk5PVCogY2hhbmdlIGFueSBleGlzdGluZyBjb2RlIChhdCBsZWFzdCBub3QgaW50ZW50aW9uYWxseSksCiAgIG9yIGFkZCBhbnkgb2YgdGhlICJtaXNzaW5nIiBBUEkgcm91dGluZXMuICBJJ3ZlIHNpbXBseSByZS1zaHVmZmxlZAogICB0aGUgb3JkZXIgb2YgdGhlIGV4aXN0aW5nIHJvdXRpbmVzIHRvIG1hdGNoIHRoZSBnZW5lcmljIHRlbXBsYXRlLgoKMjAwNS0xMC0xNyAwNzoyOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBQcm9wZXIgZGVmaW5pdGlvbi9kb2N1bWVudGF0aW9uIG9mIGEgZ2VuZXJpYyB0YWJsZSBBUEkgZnJhbWV3b3JrLgogICBUaGUgZXhhY3QgZGV0YWlscyBtYXkgbm90IGJlIGRpcmVjdGx5IGFwcHJvcHJpYXRlIGluIGZ1bGwgZm9yIGV2ZXJ5CiAgIHRhYmxlIGhlbHBlciwgYnV0IHRoaXMgc2hvdWxkIHByb3ZkZSBhIHVzZWZ1bCBiYXNpYyBkZXNpZ24gdGVtcGxhdGUuCgoyMDA1LTEwLTE3IDAwOjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZWQgZm9yY2VkIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDUtMTAtMTQgMTk6MzcgIGJzaGF3NjY2CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXV0b2NvbmYgcmVjb2duaXRpb24KCjIwMDUtMTAtMTQgMTg6NDUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIHN1cHBvcnQgTmV0QlNEIDEueCBhbmQgMi54IHVuZGVyIHRoZSAoY29tbW9uKSAibmV0YnNkIiBzeXNPYmplY3RJRC4wCgoyMDA1LTEwLTE0IDE3OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCiAgIC0gZG9uJ3QgcmVsZWFzZSByb3cgb24gZXJyIChpdCdzIHN0aWxsIGluIHRoZSBjb250YWluZXIhKQogICAtIGRvbid0IGluc2VydCByb3cgb24gc3VjY2VzcyAoaXQncyBhbHJlYWR5IGluIHRoZSBjb250YWluZXIhKQoKMjAwNS0xMC0xNCAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgcmVwbGFjZSBoYXJkY29kZWQgInNubXBkIiB3L05FVFNOTVBfRFNfTElCX0FQUFRZUEUKCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlZ2lzdGVyIHRoZSBzbm1wRW5naW5lIE1JQiBncm91cCB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dCB0byBhbGxvdyBmb3IgZW5naW5lSUQgcHJvYmVzIHZpYSB0aGUgbWFzdGVyIGFnZW50LCBlLmcuIGJ5IHNubXB1c20KCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmg6CgogICBhbGxvdyBzdWJhZ2VudHMgKGxpa2Ugc25tcHRyYXBkKSB0byByZWdpc3RlciB0aGUgc25tcEVuZ2luZSBNSUIgZ3JvdXAgdW5kZXIgYSBjb250ZXh0IGJ5IGludHJvZHVjaW5nIHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFyc19jb250ZXh0KCkKCjIwMDUtMTAtMTQgMDk6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24uaCwgZXhwci8uY3ZzaWdub3JlCiwgZXhwci9leHBFcnJvclRhYmxlLmMsIGV4cHIvZXhwRXJyb3JUYWJsZS5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvbi5jLCBleHByL2V4cEV4cHJlc3Npb24uaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25Db25mLmMsIGV4cHIvZXhwRXhwcmVzc2lvbkNvbmYuaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5oLAogICAgIGV4cHIvZXhwT2JqZWN0LmMsIGV4cHIvZXhwT2JqZWN0LmgsCiAgICAgZXhwci9leHBPYmplY3RDb25mLmMsIGV4cHIvZXhwT2JqZWN0Q29uZi5oLAogICAgIGV4cHIvZXhwT2JqZWN0VGFibGUuYywgZXhwci9leHBPYmplY3RUYWJsZS5oLAogICAgIGV4cHIvZXhwU2NhbGFycy5jLCBleHByL2V4cFNjYWxhcnMuaCwgZXhwci9leHBWYWx1ZS5jCiwgZXhwci9leHBWYWx1ZS5oLCBleHByL2V4cFZhbHVlVGFibGUuYywKICAgICBleHByL2V4cFZhbHVlVGFibGUuaDoKCiAgIFByZWxpbWluYXJ5IChyZS0paW1wbGVtZW50YXRpb24gb2YgdGhlIEV4cHJlc3Npb24gTUlCLgogICBUaGUgZXhwRXhwcmVzc2lvblRhYmxlIGFuZCBleHBPYmplY3RUYWJsZSBhcmUgcmVhc29uYWJseSBjb21wbGV0ZS4KICAgVGhlIGV4cFZhbHVlVGFibGUgKGFuZCBleHByZXNzaW9uIGV2YWx1YXRpb24pIGlzIHN0aWxsIGp1c3QgYQogICBiYXNpYyBmcmFtZXdvcmsgLSBleHByZXNzaW9ucyBhcmUgZGlzcGxheWVkIHJhdGhlciB0aGFuIGV2YWx1YXRlZC4KICAgQW5kIHRoZXJlJ3Mgbm8gdXNlci1sZXZlbCBjb25maWd1cmF0aW9uIG9mIGV4cHJlc3Npb25zIHlldC4KCiAgIEJ1dCB0aGVyZSdzIGVub3VnaCB3b3JraW5nIGNvZGUgdG8gYmUgd29ydGggY29tbWl0dGluZyAtIGV2ZW4gaWYKICAgb25seSBhcyBhIHNhZmV0eSBtZWNoYW5pc20uCgoyMDA1LTEwLTEzIDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IHNwYXJzZSBoYW5kbGVyIGNhc2U6IG5vIG1vcmUgcm93cywgbGFzdCBjb2x1bW4KCjIwMDUtMTAtMTMgMTI6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gZml4IHRhYmxlIHRva2VuIHRhYmxlIGluZGV4ZXMgZm9yIGF1Z21lbnRlZCB0YWJsZQogICAtIHR3ZWFrIGRlYnVnCiAgIC0gYWRkIHdhcm5pbmcgaWYgdG9vIG11Y2ggZGF0YSBzcGVjaWZpZWQgZm9yIGFkZF9yb3cKCjIwMDUtMTAtMTMgMTE6MjggIHJzdG9yeQoKICAgKiBkb3RnZGJpbml0OgoKICAgYWRkIHByaW50aW5kZXggZm9yIG5ldHNubXBfaW5kZXggc3RydWN0cwoKMjAwNS0xMC0xMyAxMDoxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSBwcmVmaXggKGluc3RlYWQgb2YgdXNpbmcgaW5zdGFsbCBwcmVmaXg9KQoKMjAwNS0xMC0xMyAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb24gYnkgZGVmYXVsdC4KCiAgIFRoZSBwcmV2aW91cyB2ZXJzaW9uIGlzIHN0aWxsIGF2YWlsYWJsZSBmb3IgdGhvc2UgdGhhdCBwcmVmZXIKICAgdG8gdXNlIHRoYXQsIGJ1dCBJJ20gc3VyZSBzb21lb25lIHdpbGwgY29tcGxhaW4gYW55d2F5Oi0oCgoyMDA1LTEwLTEyIDE4OjU5ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmg6CgogICBvcGVuYnNkIHN5c09iamVjdElELjAgZm9yIE9wZW5CU0QgMy54CgoyMDA1LTEwLTEyIDE4OjE2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgZW5oYW5jZSByZWNlbnRseSBpbnRyb2R1Y2VkICJuZXQtc25tcC1jb25maWcgLS1zbm1wY29uZnBhdGgiIHRvIG91dHB1dCBmdWxsIGNvbmZpZyBwYXRoCgoyMDA1LTEwLTEyIDEwOjQ2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZGVmIGZpbGVzIGFyZSBpbiBzcmNkaXIKCjIwMDUtMTAtMTIgMDY6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNoYW5nZSBuby1vcCBtYWNybyBkZWYgdG8gZW1wdHkgaXNudGVhZCBvZiAodm9pZCkKCjIwMDUtMTAtMTEgMTk6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHJld29yayA2NCBiaXQgb3ZlcmZsb3cgY2hlY2tpbmcsIGFjY291bnRpbmcgZm9yIHNpZ25lZGVkbmVzcwoKMjAwNS0xMC0xMSAxNjozMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB2YXJpYXRpb25zIGluIHRhaWwgcGFyYW1ldGVyIGZvcm1hdAoKMjAwNS0xMC0xMSAxNDo1MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBsZWZ0b3ZlciBFT0YgZnJvbSByZXYgMS4zMTQKCjIwMDUtMTAtMTEgMDc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgb2ssIGxpbnV4IG1haWwgZG9lc24ndCBsaWtlIFtjZW5zb3JlZF0gc29sYXJpcyBzdHlsZTsgZml4CgoyMDA1LTEwLTExIDA3OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgbmV0LXNubXAtY29uZmlnIGlzIGV4ZWN1dGVhYmxlIGJlZm9yZSBidWlsZGluZyBwZXJsIG1ha2UgZmlsZXMKCjIwMDUtMTAtMTEgMDU6MjcgIGR0czEyCgogICAqIHBlcmwvOiBTTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsLAogICAgIFNOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBTTk1QL3QvYnVsa3dhbGsudCwKICAgICBtYW5hZ2VyL21hbmFnZXIucG06CgogICBCZSBjb25zaXN0ZW50IGluIGhvdyB2YXJpb3VzIHBlcmwgc2NyaXB0cyBhcmUgaW52b2tlZC4KCjIwMDUtMTAtMTAgMTk6NDIgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgbWlicy9ORVQtU05NUC1UQy50eHQsIG92L29pZF90b19zeW0uaW4KLCBvdi9vaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgTWFjIE9TIFgKCjIwMDUtMTAtMTAgMTg6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICB1cGRhdGUgbGludXggZ2V0X2lmX3NwZWVkIGZ1bmN0aW9uIG5hbWUKCjIwMDUtMTAtMTAgMTg6MDEgIHRhbmRlcnMKCiAgICogb3YvOiBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBicmVhayBhcGFydCByZWFkaW5nIG9mIGNvbmZpZyBmaWxlcyBhbmQgcGVyc2lzdGVudCBjb25maWcgZmlsZXMgKGFsbG93cwogICAgIHByb3BlciBoYW5kbGluZyBvZiBwZXJzaXN0ZW50RGlyIHRva2VuIGluIGNvbmZpZyBmaWxlcykKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTEwLTEwIDE3OjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICByZXBhbGNlIHBlcmwgdy8gJChQRVJMKQoKMjAwNS0xMC0xMCAxNzo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCgoyMDA1LTEwLTEwIDE2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gZm9yIGZyb20gYWRkcmVzcyBmb3IgZW1haWwgcmVzdWx0cwoKMjAwNS0xMC0xMCAxNjoyNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIGFkZCBkaXN0aW5jdCBlbWFpbCBhZGRyZXNzZXMgZm9yIHN1Y2Nlc3MvZXJyb3IgY2FzZXMKICAgLSBmaXhlcyBmb3IgIyVAJComIHNvbGFyaXMgbWFpbCBleGUKICAgLSBkb24ndCByZW1vdmUgZGlyZWN0b3J5IHRpbCB2ZXJ5IGVuZAoKMjAwNS0xMC0xMCAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4Y2x1ZGUgZXJyb3IgbGluZXMgZm9yICdJbiBmdW5jdGlvbicgKGVnIGZ1bmMgbmFtZSBjb250YWlucyB3b3JkIGVycm9yKQoKMjAwNS0xMC0xMCAxNDo1NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gYmFzZSBtaWIyYy5jb25mIGdlbmVyYXRpb24gb24gJFBFUkwsIG5vdCAtZCBDVlMKICAgLSBpZiBubyBwZXJsLCB0b3VjaCBmaWxlIHNvIGluc3RhbGwgZG9lc24ndCBmYWlsCgoyMDA1LTEwLTEwIDE0OjQ3ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgbG9jYWwvTWFrZWZpbGUuaW4KLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSBkZWZpbmUgUEVSTCBpbiBhbGwgbWFrZWZpbGVzICh2aWEgTWFrZWZpbGUudG9wKQogICAtIHJlcGxhY2UgYWxsIGNhbGxzIHRvIHBlcmwgd2l0aCAkKFBFUkwpCiAgIC0gcmVwbGFjZSBleGlzdGluZyBQRVJMUFJPRyB3aXRoIFBFUkwgaW4gbWFrZWZpbGVzCgoyMDA1LTEwLTEwIDE0OjM4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIFBFUkxMRE9QVFMgdG8gYWdlbnQgbGlicwoKMjAwNS0xMC0xMCAwOTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIEFsbG93IHRoZSBhZG1pbmlzdHJhdG9yIHRvIGNob29zZSBiZXR3ZWVuIGZvbGxvd2luZyB0aGUgRGlzTWFuCiAgIHNwZWNpZmljYXRpb25zIHN0cmljdGx5LCBvciB1c2luZyBhbiBhcHByb2FjaCB0aGF0IGFjdHVhbGx5IHdvcmtzIQogICAoVGhlIG9mZmljaWFsIG9yZGVyaW5nIGZvciBhZGRpbmcgdmFyYmluZHMgdG8gYSBub3RpZmljYXRpb24KICAgIHBheWxvYWQgbGlzdCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSBzcGVjaWZ5IFRyaWdnZXIgYW5kCiAgICBFdmVudCBvYmplY3RzIGluIGEgc2Vuc2libGUgZmFzaGlvbikuCgoyMDA1LTEwLTEwIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgcmVwb3J0IHJvd3MgdGhhdCBoYXZlbid0IGZpbmlzaGVkIGJlaW5nIGNyZWF0ZWQsIGFuZAogICBkb24ndCBrZWVwIHNjaGVkdWxpbmcgc2FtcGxlcyBmb3Igcm93cyB0aGF0IGFyZSBkaXNhYmxlZCBvciByZW1vdmVkLgoKMjAwNS0xMC0xMCAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBSZWR1bmRlbnQgKGF1dG8tKWNvbW1lbnQuCgoyMDA1LTEwLTEwIDA5OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgQ29udmVydGluZyBiZXR3ZWVuIGluZGV4IHJlcHJlc2VudGF0aW9ucyBpcyBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS4KCjIwMDUtMTAtMTAgMDg6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENvcGUgd2l0aCBhIG1pc3NpbmcgaW50ZXJuYWwgcXVlcnkgdXNlcm5hbWUKICAgKHJhdGhlciB0aGFuIGZvcmNpbmcgYSBoYXJkd2lyZWQgb25lKQoKMjAwNS0xMC0xMCAwNzo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmV0dXJuIHRoZSBmdWxsIGxpc3Qgb2YgcmVzdWx0cyBmcm9tIGFuIGludGVybmFsIHF1ZXJ5LAogICByYXRoZXIgdGhhbiB0cnVuY2F0aW5nIGl0IGFmdGVyIHRoZSBmaXJzdCB2YXJiaW5kLgogICAoV2h5ICdjbG9uZV92YXInIHN0b21wcyBvbiB0aGUgbmV4dCBsaW5rIGlzIGEgbXlzdGVyeSB0byBtZSEpCgoyMDA1LTEwLTEwIDA3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJbmRpY2F0ZSB0aGF0ICdpZl9zcGVlZCcgQVBJcyBhcmUgTGludXgtc3BlY2lmaWMKICAgKGFuZCBub3QgcGFydCBvZiB0aGUgZ2VuZXJpYyBJRi1NSUIgZGF0YV9hY2Nlc3MgZnJhbWV3b3JrKQoKMjAwNS0xMC0wNyAxNzoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGlmZGVmIG91dCBjb2RlIGlmIG1vZHVsZSBub3QgZW5hYmxlZAoKMjAwNS0xMC0wNyAxNjo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgbW92ZSBtaXNhcHBsaWVkIHBhdGNoIHRvIGNvcnJlY3QgbG9jYXRpb24KCjIwMDUtMTAtMDcgMTY6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0eXBvCgoyMDA1LTEwLTA3IDE2OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgb25seSBzYXZlIHNldHRhYmxlIGNvbHMKCjIwMDUtMTAtMDcgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICBkZWZpbmUgc2V0dGFibGUgY29scwoKMjAwNS0xMC0wNyAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgZ2V0IHJpZCBvZiBvbGQgcGVyc2lzdGVudCBzYXZlIGZ1bmNzLCBpbiBmYXZvciBvZiBuZXcgZ2VuZXJhdGVkIHN0dWZmCgoyMDA1LTEwLTA3IDE2OjQyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHR5cG8KCjIwMDUtMTAtMDcgMTY6MzggIHRhbmRlcnMKCiAgICogRkFROgoKICAgTWFqb3Igb3ZlcmhhdWwgb2YgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIGJhc2VkIG9uIDUuMi4yLnByZVggdGVzdGluZwoKMjAwNS0xMC0wNyAxNjoyNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IHR5cG9zIGluIDUuMiBORVdTCgoyMDA1LTEwLTA3IDEwOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEhtbW1tLi4uLiByZW1vdmluZyB0aGUgb2JqZWN0IGVudHJpZXMgZm9sbG93aW5nIGEgZHVwbGljYXRlIHRyaWdnZXIKICAgc2VlbXMgdG8gYmUgcHJvYmxlbWF0aWNhbC4gIChBcyBpbiB0aGUgYWdlbnQgY3Jhc2hlcyEpICBJdCdzIG5vdAogICBjbGVhciB3aGV0aGVyIHRoaXMgaXMgYXBwcm9wcmlhdGUgYmVoYXZpb3VyIGFueXdheS4KCiAgIE5lZWQgdG8gdGhpbmsgYWJvdXQgdGhpcyBhIGJpdCBtb3JlLgoKMjAwNS0xMC0wNyAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlckNvbmYuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ29uZmlndXJlIG1vbml0b3Jpbmcgb2YgVUNELXNwZWNpZmljIHRhYmxlcwogICAoY29tcGF0YWJpbGl0eSB3aXRoIHByZXZpb3VzIEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbikuCgogICBOb3QgeWV0IGZ1bGx5IHRlc3RlZCwgYnV0IHNlZW1zIHRvIGJlIE9LLgoKMjAwNS0xMC0wNyAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQvbXRlU2NhbGFycy5jLAogICAgIGV2ZW50L210ZVNjYWxhcnMuaDoKCiAgIEltcGxlbWVudCB0aGUgRXZlbnQtTUlCIHNjYWxhciBvYmplY3RzLgoKMjAwNS0xMC0wNyAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKOgoKICAgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHZhbHVlcyBiZWluZyBtb25pdG9yZWQuCgoyMDA1LTEwLTA3IDA4OjQyICB0YW5kZXJzCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGdldCByaWQgb2YgQysrIGtleXdvcmQgIm5ldyIuIE1mRC1iYXNlZCBjb2RlIHN0aWxsIG5lZWRzIHRvIGJlIHJlZ2VuZXJhdGVkLgoKMjAwNS0xMC0wNyAwNTo1NSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIGRhcndpbjguaCBhbmQgc29sYXJpczIuMTAuaAoKMjAwNS0xMC0wNiAyMDozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbXByb3ZlIGhlbHAgb3V0cHV0CgoyMDA1LTEwLTA2IDIwOjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgQWRkIG5ldC1zbm1wLWNvbmZpZyBvcHRpb25zIC0tZGVmYXVsdC1taWJzLCAtLWRlZmF1bHQtbWliZGlycywgLS1wZXJzaXN0ZW50LWRpcmVjdG9yeSBhbmQgLS1zbm1wY29uZnBhdGgKCjIwMDUtMTAtMDYgMTk6MDEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1N2M2NvbmZpZywKICAgICB0ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0cy9TdmFjbWNvbmZpZywKICAgICB0ZXN0cy9TdmFueWNvbmZpZzoKCiAgIC0gY3JlYXRlIGFuZCB1c2UgcGVyc2lzdGVudCBkaXIgaW4gdGVzdCBkaXJlY3RvcnkgKHNvIG1ha2UgdGVzdCBhcyByb290CiAgICAgZG9lc24ndCBtdWNrIHdpdGggc3lzdGVtIHBlcnNpc3RlbnQgY29uZikKCjIwMDUtMTAtMDYgMTg6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb3VudGVyNjQgc3VwcG9ydCB0byBzbm1wX2FkZF92YXIgKHNvIHRoZXkgY2FuIGJlIHNlbnQgdy9zbm1wdHJhcCkKCjIwMDUtMTAtMDYgMTg6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGV4cGxpY2l0IGJyYWNlcyB0byBrZWVwIGNvbXBpbGVyIGhhcHB5CgoyMDA1LTEwLTA2IDE4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBpbmNsdWRlIHV0bXAvdXRtcHggaGVhZGVyIChmaXggZm9yIG9uZSBvZiB0aGUgQlNEcykKCjIwMDUtMTAtMDYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICAtIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUKICAgLSBjaGVjayBvcGVuIHJjCiAgIC0gbG9nIGVyciBpZiBubyBkYXRhIGF2YWlsYWJsZQoKMjAwNS0xMC0wNiAxODo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1L2NwdS5jLCBtZW1vcnkvaHdfbWVtLmM6CgogICB0aGlzIChDKysgcmVzZXJ2ZWQgd29yZCkgLT4gdGhpc19wdHIKCjIwMDUtMTAtMDYgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGNhbGwgaW5pdF9hZ2VudHhfY29uZmlnIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgaGFuZGxlciBkaXJlY3RseQoKMjAwNS0xMC0wNiAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIHNsaWdodCByZW9yZyBvZiBpbml0X2FnZW50eF9jb25maWcoKQogICAgIC0gaWZkZWYgc29tZSBzdHVmZiBiYXNlZCBvbiBtYXN0ZXIgYWdlbnQgc3VwcG9ydAogICAgIC0gbW92ZSBhZ2VudHgocGVybXN8dGltZW91dCkgaW4gY29uZGl0aW9uYWwgZm9yIGFnZW50IHJvbGUgPT0gbWFzdGVyCgoyMDA1LTEwLTA2IDA4OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2F0IGNvcnJlY3QgZmlsZSBvbiBlcnJvcnMKCjIwMDUtMTAtMDYgMDg6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiB0byBlbWFpbCByZXN1bHRzCgoyMDA1LTEwLTA2IDA3OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgSVJJWCB0Y3AtbWliIGNsZWFudXAgcGF0Y2ggKGZyb20gQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA2IDA1OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgUHJlbGltaW5hcnkgaGFuZGxpbmcgb2YgZXJyb3JzLgoKMjAwNS0xMC0wNiAwNToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBCbG9jayBjb25maWd1cmF0aW9uIG9mIGRlbHRhLXRocmVzaG9sZHMgb24gZGVsdGEtc2FtcGxlcy4KCjIwMDUtMTAtMDYgMDU6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIENvbnNvbGlkYXRlIGhhbmRsaW5nIG9mIHN5c1VwVGltZSBpbnN0YW5jZSBkaXNjb250aW51aXR5IG1hcmtlci4KCjIwMDUtMTAtMDYgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgU3VwcG9ydCB0aGUgY29uZmlndXJhdGlvbiBvZiAqanVzdCogZGVsdGEgdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLAogICAgIG10ZVRyaWdnZXJDb25mLmM6CgogICBJbXBsZW1lbnQgZGVsdGEtdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBBY2NlcHQgbmVnYXRpdmUgdmFsdWVzIChyYXRoZXIgdGhhbiByZWplY3RpbmcgdGhlbSBhcyBpbnZhbGlkIG9wdGlvbnMpCgoyMDA1LTEwLTA2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgYm90aGVyIHRyeWluZyB0byBmaXJlIG1pc3NpbmcgdGhyZXNob2xkIGV2ZW50cy4KCjIwMDUtMTAtMDUgMDg6MjYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXQgcmlkIG9mIEMrKyBrZXl3b3JkICJjbGFzcyIKCjIwMDUtMTAtMDUgMDQ6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgU2lnaCAtIHJlYWQgdGhlIHdob2xlIGVtYWlsIG1lc3NhZ2UsIERhdmUhCgoyMDA1LTEwLTA1IDA0OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFJlbW92ZSBib2d1cyB0cmFpbGluZyBjb21tYSAocmVwb3J0ZWQgYnkgQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA0IDE3OjUxICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBldmVyeSBzeXN0ZW0gY2FsbCBpbnN0ZWFkIG9mIGp1c3Qgc3BlY2lhbCBvbmVzLgoKMjAwNS0xMC0wNCAxMDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIGRlbHRhLXZhbHVlZCBzYW1wbGVzLgogICBPbmx5IHRlc3RlZCB3aXRoIEJvb2xlYW4gZW50cmllcywgYW5kIGEgYmFzaWMgc3lzVXBUaW1lLjAKICAgZGlzY29udGludWl0eSBtYXJrZXIuICBUaHJlc2hvbGQgZGVsdGEtdmFsdWVkIHNhbXBsZXMgYW5kCiAgIHdpbGRjYXJkZWQgZGlzY29udGludWl0eSBPSURzIG91Z2h0IHRvIHdvcmssIGJ1dCBzdGlsbCBuZWVkIHRlc3RpbmcuCgoyMDA1LTEwLTA0IDEwOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2Fub25pY2FsaXNlIHByZXZpb3VzL2N1cnJlbnQgcmVzdWx0cyAtIG1hdGNoaW5nIGVudHJpZXMgbGVhZHMgdG8KICAgc2ltcGxlciB0ZXN0IGNvZGUuICBBZGp1c3QgRXhpc3RlbmNlIHRlc3RzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMuCgoyMDA1LTEwLTAzIDE5OjQ3ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRml4IHR5cG8gaW4gc2NyaXB0LCBmaXggJXdpbmRpciUgZW52IHZhciBjaGVjay4KCjIwMDUtMTAtMDMgMDc6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgUnVuIFNFVCBhc3NpZ25tZW50cyBkdXJpbmcgdGhlIEFDVElPTiBwYXNzLCBzbyBlcnJvcnMgY2FuIGJlIHJlcG9ydGVkLgogICAoU2hvdWxkIGZpeCBCdWcgIzg2NDI4MSwgYW5kIGJlIGNvbnNpc3RlbnQgd2l0aCBwYXNzLmMgYmVoYXZpb3VyKQoKMjAwNS0xMC0wMSAxNjo1MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIGZvciBlbWFpbCBvZiBlcnJvciByZXN1bHRzCgoyMDA1LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGZpeCB1dG1wIGluY2x1ZGUgaWZkZWYgbG9naWMKCjIwMDUtMTAtMDEgMTI6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0wMSAxMjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjaGVjayBmb3IgbWJzdGF0Lm1fbWJ1ZnMgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTI5IDE4OjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBQYXRjaCBmcm9tIGJ1ZyMxMjM0ODM0OiBmaXhlcyB0YXJnZXRhZGRydGltZW91dCBzbyBpdHMgd3JpdGFibGUKCjIwMDUtMDktMjkgMTg6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mOgoKICAgYWRkZWQgZ2VuZXJhdGlvbiBvZiBlbnVtcyBmb3Igc2NhbGFycwoKMjAwNS0wOS0yOSAxMzoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHNldCBzb2NrIGJ1ZiBzaXplIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzCgoyMDA1LTA5LTI5IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEltcGxlbWVudCBzaW5nbGUtdmFsdWVkIHRocmVzaG9sZCB0cmlnZ2Vycy4KCjIwMDUtMDktMjggMTg6MjggIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMiBNU1ZDOiAgRW5hYmxlIEFFUyBlbmNyeXB0aW9uIHdoZW4gU1NMIGlzIGVuYWJsZWQuCgoyMDA1LTA5LTI4IDE3OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBzd2FwIHJldmVyc2VkIGlmL2Vsc2UgY29kZQoKMjAwNS0wOS0yOCAxNTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIHByb3ZpZGUgZGVmYXVsdCBmb3IgaW50ZXJuYWwgc2VjbmFtZQoKMjAwNS0wOS0yOCAxMjozOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBsYXN0IHJlbWFpbmluZyAicHJlc2VudCwgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZyBvbiBTb2xhcmlzIDkKCjIwMDUtMDktMjggMTE6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50Ly5jdnNpZ25vcmUsCiAgICAgZXZlbnQvbXRlRXZlbnQuYywgZXZlbnQvbXRlRXZlbnQuaCwKICAgICBldmVudC9tdGVFdmVudENvbmYuYywgZXZlbnQvbXRlRXZlbnRDb25mLmgsCiAgICAgZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGV2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jCiwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCBldmVudC9tdGVFdmVudFRhYmxlLmMKLCBldmVudC9tdGVFdmVudFRhYmxlLmgsIGV2ZW50L210ZU9iamVjdHMuYywKICAgICBldmVudC9tdGVPYmplY3RzLmgsIGV2ZW50L210ZU9iamVjdHNDb25mLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c0NvbmYuaCwgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXIuYywKICAgICBldmVudC9tdGVUcmlnZ2VyLmgsIGV2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXJDb25mLmMKLCBldmVudC9tdGVUcmlnZ2VyQ29uZi5oLCBldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jCiwgZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMKLCBldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIE5ldyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIEV2ZW50IE1JQi4KCjIwMDUtMDktMjggMTA6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYWRkZWQgZG9jdW1lbnRhdGlvbiBkZXNjcmliaW5nIHRoZSBleGVjKCkgcGF0aCByZXF1aXJlbWVudAoKMjAwNS0wOS0yOCAxMDoyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBVcGRhdGVkIGRvY3Mgb24gLUliIHRvIGRvY3VtZW50IGV4dHJhIGxpbWl0YXRpb25zCgoyMDA1LTA5LTI4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgRXh0ZW5kIHRhYmxlIGludGVyZmFjZSB3aXRoIHJvdyBjb21wYXJpc29uIEFQSSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFVzZSB0aGUgZGVmYXVsdCBxdWVyeSBzZXNzaW9uIGZyb20gdGhlIGxpYnJhcnkuCgoyMDA1LTA5LTI4IDA2OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTdXBwb3J0IHRoZSBpZGVhIG9mIGEgImRlZmF1bHQgc2Vzc2lvbiIgZm9yIHRoZSBxdWVyeSBjb252ZW5pZW5jZSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDU6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FOgoKICAgcmV2ZWFsIG15IGNvbnRpbnVlZCBwcmVzZW5jZSBhcm91bmQgaGVyZQoKMjAwNS0wOS0yOCAwNDo1MyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2FsbGJhY2sgdG8gcmVwb3J0IGVzdGFibGlzaG1lbnQgb2YgYSBjb25uZWN0aW9uIChmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA1LTA5LTI3IDIyOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gY29udmVydCBtYXNrIHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIHVwZGF0ZSBwZnhfbGVuIGNvdW50aW5nIGZvciBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBhZGQgbGl0dGxlIGVuZGlhbiAvcHJvYy9uZXQvcm91dGUgZXhhbXBsZSBsaW5lCiAgIC0gb25seSBzZXQgcm91dGUgcG9saWN5IGZvciBkZWZhdWx0IGdhdGV3YXkgcm91dGVzCiAgIC0gdXBkYXRlIGZvciBuZXcgc3RhdGljIHBvbGljeSBmbGFnCiAgIC0gbmV3IHJvdXRlIGNyZWF0ZS9kZWxldGUgZnVuY3Rpb25zCgoyMDA1LTA5LTI3IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSBtb3ZlIGFjdGl2ZSByb3cgc2V0IHJlc3RyaWN0aW9uIHRvIGRlcGVuZGVuY3kgY2hlY2sgZnVuY3Rpb24KICAgLSB1cGRhdGUgYXNzZXJ0IHRvIHRlc3QgYWdhaW5zdCBuZXcgZXhwZWN0ZWQgdmFsdWUKCjIwMDUtMDktMjcgMTk6MTIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuMTAuaDoKCiAgIGFkZCBTb2xhcmlzIDEwIHN1cHBvcnQKCjIwMDUtMDktMjcgMTk6MDggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkeW5hbWljIGlwdjQgcm91dGUgY3JlYXRpb24vZGVsZXRpb24KCjIwMDUtMDktMjcgMTc6NDUgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0LCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBUcnU2NCBVbml4IDUueCBidWlsZCBmaXhlcyAoYnVnICMxMjE3NTA5KQoKMjAwNS0wOS0yNyAxNDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgcHJpbnQgcmFuZ2UgaW5mb3JtYXRpb24KCjIwMDUtMDktMjcgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXNlIG5ldyByb3V0ZV9lbnRyeSBmdW5jdGlvbnMgZm9yIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgogICAtIG51a2UgZ2VuZXJhdGVkIGNvbHVtbiB1bmRvIGZ1bmNzLCB1c2UgbmV3IHRhYmxlIGxldmVsIG9uZSBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgZGVwZWRlbmN5IHZhbGlkYXRpb24gKGFkZHIgdHlwZSAmIGV4cGVjdGVkIGFkZHIgbGVuKQoKMjAwNS0wOS0yNyAxMzowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb21tZW50cwoKMjAwNS0wOS0yNyAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgcGF0Y2ggIzEzMDQ0MDA6IGJldHRlciBoclNXUnVuVHlwZSBzdXBwb3J0CgoyMDA1LTA5LTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICMxMjI1MzYwIHRvIGZpeCB0aGUgc211eCBlbmNvZGluZyBvZiB0aGUgcmVxdWVzdGlkIHRvIGEgc2lnbmVkIGludAoKMjAwNS0wOS0yNyAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAga2V5IHZhY20gIm5vIGFjY2VzcyIgd2FybmluZyBvZmYgYWdlbnRfbW9kZSBpbnN0ZWFkIG9mIGFwcCB0eXBlCgoyMDA1LTA5LTI3IDEyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBzb2NrIHN0YXJ0dXAKCjIwMDUtMDktMjcgMTI6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIGRvY3VtZW50IHRoYXQgYWRkcmVzc2VzIGFyZSBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBidW1wIG1heCBwb2xpY3kgb2lkIGxlbmd0aCB0byAyLCB0byBoYW5kbGUgZGVmYXVsdCBudWxsIG9pZCBjYXNlCiAgIC0gbW92ZSBwb2xpY3kgc3RhdGljIGZsYWcgZGVmaW5pdGlvbiB3aXRoIG90aGVyIGZsYWdzCiAgIC0gY2hhbmdlIHBvbGljeSBzdGF0aWMgZmxhZyBzbyBhcyBub3QgdG8gY29uZmxpY3Qgd2l0aCBpdGVtIGNoYW5nZWQgZmxhZ3MKICAgLSBhZGQgbmV3IHBvbGljeSBkZWVwIGNvcHkgZmxhZwogICAtIGFkZCBtYWNybyBvZiAnY2hhbmdlIGl0ZW0nIGZsYWdzIG1hc2sKCjIwMDUtMDktMjcgMTI6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgLS1mb3J3YXJkIGZsYWcgdG8gcGF0Y2ggY29tbWFuZAoKMjAwNS0wOS0yNyAxMjowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgLSB1c2UgbmV3IG1pYjJjIGxlZnQvcmlnaHQgaGFuZCBsZW5ndGggdW5pdHMgZm9yIHByb3BlciBzaXplcyB3aGVuIGNvcHlpbmcKICAgICBhbmQgY29tcGFyaW5nIGRhdGEKCjIwMDUtMDktMjcgMTE6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICAtIG92ZXJyaWRlIGRlZmF1bHQgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0czsgYm90aCBhcmUgZWxlbWVudHMKICAgLSB1cGRhdGUgaW5pdGlhbCBzZXQgb2YgbWF4IGxlbiB0byBiZSBlbGVtZW50cwoKMjAwNS0wOS0yNyAxMTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBkZWZpbmUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ2h0IHVuaXRzIChieXRlcy9lbGVtZW50cykKCjIwMDUtMDktMjcgMTE6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gZGVmaW5lIHNlcGFyYXRlIHNldHRhYmxlIGZsYWdzCiAgIC0gZGVmaW5lIHNldHRhYmxlIGNvbHVtbiBtYWNybwoKMjAwNS0wOS0yNyAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgZml4IGluY29ycmVjdCByZXR1cm4gZGVmaW5lIHN1Z2dlc3Rpb24gaW4gY29tbWVudAoKMjAwNS0wOS0yNyAxMTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWx3YXlzIHRyYWNrIGlmIGRhdGEgY29udGV4dCB3YXMgcHJvdmlkZWQgYnkgdXNlcgogICAtIGRvbid0IGNhbGwgZGF0YSBjdHggaW5pdCByb3V0aW5lIGZvciB1c2VyIHByb3ZpZGVkIGRhdGEKICAgLSByZW1vdmUgaW50ZXJuYWwvdmVyYm9zZSBwcmVmaXggZnJvbSBhbGwgZGVidWcgZXJyb3IgY2FzZXMKICAgLSBkb24ndCB0cnkgdG8gY29weSBpbmRleGVzIGlmIGluZGV4IGNoZWNrIGZhaWxlZCAoYW5kIGN0eCB3YXMgcmVsZWFzZWQhKQogICAtIGNhbGwgcm93X3ByZXAgZm9yIG5ld2x5IGNyZWF0ZWQgcm93cyAoZHluYW1pYyByb3cgY3JlYXRpb24pCiAgIC0gY2FsbCBuZXcgdGFibGUgdW5kbyBiZWZvcmUgY29sdW1uIHVuZG8KCjIwMDUtMDktMjcgMTE6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIC0gb25seSBpbmNsdWRlIHNldHRhYmxlIG9iamVjdCB3aGVuIGNhbGN1bGF0aW5nIHRtcCBzdG9yYWdlIHNpemUKICAgLSBkb24ndCBjYWxsIGNvbF9zYXZlIHJvdXRpbmUgaWYgY29sdW1uIGlzbid0IHNldHRhYmxlCgoyMDA1LTA5LTI3IDExOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIHRhYmxlIGxldmVsIHVuZG8gYmVmb3JlIGNvbHVtbiBsZXZlbCB1bmRvCgoyMDA1LTA5LTI3IDExOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGhhbmRsZSBuZXdseSBjcmVhdGVkIHJvdyB3L3JvdyBzdGF0dXMgb2YgZGVzdHJveQoKMjAwNS0wOS0yNyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBmcmVlIHJ0X3BvbGljeSBpZiBzdGF0aWMgZmxhZyBzZXQKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IHJvdXRlIGNoYW5nZXMKICAgLSBuZXcgZnVuY3Rpb24gdG8gY29weSByb3V0ZV9lbnRyaWVzCgoyMDA1LTA5LTI3IDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlcXVpcmUgbmV3IHJvdXRlX2lvY3RsIGZvciBsaW51eAoKMjAwNS0wOS0yNyAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIC0gdXBkYXRlIHRpbWVvdXQgZm9yIGF1dG8tdXBkYXRlIGNhY2hlcyB3aGVuIG1pYiB2YWx1ZSBjaGFuZ2VkCgoyMDA1LTA5LTI3IDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gbW92ZSBjb2RlIGZvciBoZWxwIGNhc2UgYWZ0ZXIgYWxsIGNvbW1hbmQgbGluZSBhcmdzIGhhdmUgYmVlbiBwcm9jZXNzZWQKICAgLSBhZGQgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gKC1uKSBmb3IgJ2FwcGxpY2F0aW9uIG5hbWUnOyB2ZXJ5IHVzZWZ1bCBmb3IKICAgICBoYXZpbmcgbXVsdGlwbGUgY29uZmlncywgYW5kIHdvcmtzIHdlbGwgd2l0aCBwZXJzaXN0ZW50IHN0b3JlIHRvby4gT3BlbgogICAgIGZvciBzdWdnZXN0aW9ucyBvbiBhIGRpZmZlcmVudCBjaGFyIChvciBtZXJnZSB3L3NvbWUgZXhpc3RpbmcgbXVsdGktY2hhcgogICAgIHNldDsgbWF5YmUgLUMpLgoKMjAwNS0wOS0yNyAxMToyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBhZGQgZGlzbWFuL2V2ZW50LW1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0CiAgIC0gYWRkIGhvc3QgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdCBmb3IKICAgICBsaW51eCogfCBtaW5ndzMyKiB8IGN5Z3dpbiogfCBmcmVlYnNkKiB8IGR5bml4KiB8IHNvbGFyaXMyKiB8IGhwdXgqCgoyMDA1LTA5LTI3IDEwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBub24tc291cmNlIGZpbGVzIGdlbmVyYXRlZCBieSBNRkQKCjIwMDUtMDktMjcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy86IHJvdXRlX2lvY3RsLmMsCiAgICAgcm91dGVfaW9jdGwuaCwgcm91dGVfbGludXguaDoKCiAgIGNvcHkgcm91dGUgaW9jdGxzIGZyb20gbWliSUkvcm91dGVfd3JpdGUgJiB1cGRhdGUgZm9yIHJvdXRlX2VudHJ5CgoyMDA1LTA5LTI2IDE5OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyAxMjkyODk2IGNoZWNraW5nIGZvciAtMSBiZWZvcmUgc2VhcmNoaW5nIGZvciBUQyB0eXBlCgoyMDA1LTA5LTI2IDE4OjU0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjYgMTg6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCBtYWtlIGRlY2lzaW9ucyBiYXNlZCBvbiB0YXJnZXRfb3MgdW50aWwgYWZ0ZXIgaXQncyBzZXQhCgoyMDA1LTA5LTI2IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEJ1ZyBQYXRjaCAjMTI5Njg0MjogZG9uJ3QgcmV0dXJuIGZyb20gdm9pZCBmdW5jdGlvbgoKMjAwNS0wOS0yNiAxNjoyMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGZpeCBTTk1QdjMgY29uZmlnIGlmIEFFUyBpc24ndCBhdmFpbGFibGUKCjIwMDUtMDktMjYgMTM6MDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEZpeCAiLXgiIG9wdGlvbgoKMjAwNS0wOS0yNiAwODoyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE9wZW5CU0QgYnVpbGQgZml4OiBicmluZyBpbiBzeXMvdGltZW91dC5oCgoyMDA1LTA5LTI0IDE1OjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgUHV0IGJhY2sgbWlzc2luZyAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkKICAgcmVtb3ZlJyBtZXNzYWdlIHdoZW4gdW5pbnN0YWxsaW5nLgoKMjAwNS0wOS0yMyAyMTo0NSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBBZGQgb3B0aW9uYWwgY2hlY2sgZm9yIE9wZW5TU0wgRExMIChsaWJlYXkzMi5kbGwpCgoyMDA1LTA5LTIzIDEyOjI0ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgdGhhdCBzbm1wZCBub3cgaW1wbGVtZW50ZWQgbm90aWZpY2F0aW9uIGxvZ2dpbmcgYW5kIGZpbHRlcmluZwoKMjAwNS0wOS0yMyAxMDo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBSZXJ1biBhdXRvY29uZgoKMjAwNS0wOS0yMyAxMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBzaHJpbmsgYnVmZmVyIHNpemUgc28gTUlCIHNpemUgbGltaXQgbm90IGV4Y2VlZGVkCgoyMDA1LTA5LTIyIDE5OjAyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW92ZSBzb2NrZXR2YXIuaCBhZnRlciBzb2NrZXQuaAoKMjAwNS0wOS0yMiAxNzoyMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIERlZmF1bHQgdG8gZGlzbGFiZWQgZm9yIGRldmVsb3BtZW50IGZpbGVzLgoKMjAwNS0wOS0yMiAxNTozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHB1dCB2YXIgbmFtZSBpbiBicmFjZXMgdG8gc2VwYXJhdGUgZnJvbSBhcHBlbmRlZCB0ZXh0CgoyMDA1LTA5LTIwIDA5OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTaW5jZSB0aGUgbGVuZ3RoIHBhcmFtZXRlciBpc24ndCBhbHdheXMgcmVxdWlyZWQgd2hlbiBzdG9yaW5nIGRhdGEsCiAgIGFsbG93IGl0IHRvIGJlIG9taXR0ZWQgKGFuZCBjb3JyZWN0IHRoZSBtaXNsZWFkaW5nIGNvbW1lbnQgYXMgdG8KICAgaG93IHRoaXMgaXMgYWN0dWFsbHkgdXNlZCEpCgoyMDA1LTA5LTE2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIGZyb20gUGF0cmljayBXZWxjaGUgdG8gZml4IHF1b3RpbmcgZm9yIG5ld2VyIGF1dG9jb25mcwoKMjAwNS0wOS0xNiAxNToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIGNvcnJlY3QgbWlzc2luZyBmdW5jdGlvbiBjYWxscyBub3cgcmVwbGFjZWQgYnkgdGRhdGEuCgoyMDA1LTA5LTE2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdXBwb3J0IGZvciBzdHJpbmcgcGFyc2luZyBvZiBjb3VudGVyNjRzCgoyMDA1LTA5LTE2IDE0OjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTQ6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHVwZGF0ZSBvdXQtb2Ytc3luYyB2ZXJzaW9uIG51bWJlcnMKCjIwMDUtMDktMTYgMTM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBTSU9DKEFERHxERUwpUlQgaWYgdGhleSBhcmVuJ3QgZGVmaW5lZAoKMjAwNS0wOS0xNiAxMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEhSU1dSVU5QRVJGX01FTSBkb24ndCB3b3JrIG9uIGRhcndpbjgKCjIwMDUtMDktMTYgMTI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHVzZSBuZXcgY29uZmlndXJlIHZhciBQRVJMTERPUFRTCgoyMDA1LTA5LTE2IDEyOjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIG1pc3Npbmcgc2Vjb25kIHNlbWljb2xvbgoKMjAwNS0wOS0xNiAxMTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi86IGNoZWNrX3ZhcmJpbmQuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2xvZ2dpbmcuYzoKCiAgIFBpY2sgdXAgYSBjb3VwbGUgb2Ygc3RyYXkgJ3N0cmluZ3MnIHRoYXQgc2xpcHBlZCB0aHJvdWdoLgogICAoYW5kIGEgYm9ndXMgQVNOIHR5cGUgbmFtZSkKCjIwMDUtMDktMTYgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICByZWZpbmUgY29uZGl0aW9uYWwgaW5jbHVkZXMgbG9naWMKCjIwMDUtMDktMTYgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGlmZiBhdmFpbGFibGUKCjIwMDUtMDktMTYgMTA6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBicmVhayBwZXJsIGxkIG9wdHMgaW50byBpdHMgb3duIHZhcgoKMjAwNS0wOS0xNiAxMDo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDEwOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDA4OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBUd2VhayB0byB1c2UgdGhlIHJldmlzZWQgJ3RkYXRhJyBBUEkuCgoyMDA1LTA5LTE2IDA3OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIGFwcHJvcHJpYXRlIGxpYnJhcnkgdXRpbGl0eSByb3V0aW5lcyBmb3IgcmV0dXJuaW5nIGEKICAgY29sdW1uIHZhbHVlLCBhbmQgY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIGFuIGFzc2lnbm1lbnQuCgoyMDA1LTA5LTE2IDA3OjMzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIChyZXZpc2VkKSBjb250YWluZXItYmFzZWQgJ3RhYmxlX2RhdGEyJyBoZWxwZXIuCgoyMDA1LTA5LTE2IDA3OjIxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggdHlwbyB3aGVuIGRlZmluaW5nIHJhbmdlIG9mIHZhbGlkIGNvbHVtbnMuCgoyMDA1LTA5LTE2IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmg6CgogICBJJ3ZlIG5ldmVyIGxpa2UgdGhlIHJlbmFtaW5nIG9mIHRoZSBjb250YWluZXItYmFzZWQgdGFibGVfZGF0YQogICBBUEkgY2FsbHMgYW5kIGRhdGEgc3RydWN0dXJlcy4gIElmIHdlJ3JlIHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0CiAgIHJlbGVhc2luZyB0aGlzIGNvZGUsIHRoZW4gYW55IGFsdGVyYXRpb25zIG11c3QgYmUgbWFkZSAqYmVmb3JlKgogICB0aGlzIGdvZXMgbGl2ZSwgb3IgZWxzZSBpdCdsbCBiZSB0b28gbGF0ZS4KCiAgIEkndmUgZmluYWxseSBjb21lIHVwIHdpdGggYSBmb3JtIG9mIG5hbWluZyBmb3IgdGhlIHRhYmxlX2RhdGEyCiAgIGNvZGUgdGhhdCBJJ20gcmVhc29uYWJseSBoYXBweSB3aXRoIChiYXNlZCBhcm91bmQgJ3RkYXRhJyksCiAgIHNvIHRoaXMgcGF0Y2ggcmV3cml0ZXMgdGhpcyBoZWxwZXIgdG8gdXNlIHRoYXQgc3R5bGUgKGFzIHdlbGwKICAgYXMgdHdlYWtpbmcgdGhlIGRhdGFzZXQyIGNvZGUgdG8gbWF0Y2gpLgogICAgIFRoZSBtYWluIGRhdGFzZXQyIEFQSSBoYXNuJ3QgYmVlbiBwcm9wZXJseSB1cGRhdGVkLCBidXQgdGhpcwogICBzaG91bGQgcHJvYmFibHkgYWxzbyBiZSBhZGRyZXNzZWQgYmVmb3JlIDUuMyBnb2VzIG91dCBvZiB0aGUgZG9vci4KCiAgIFRoaXMgdmVyc2lvbiBhbHNvIGlsbHVzdHJhdGVzIGEgc3VpdGFibGUgImdlbmVyaWMgdGFibGUgQVBJIiwKICAgdGhhdCBjb3VsZCB1c2VmdWxseSBiZSBjb25zaWRlcmVkIGZvciBvdGhlciB0YWJsZSBoZWxwZXJzIGFzCiAgIHdlbGwuICBTb21lIGFzcGVjdHMgb2YgaXQgbWF5IGJlIHNwZWNpZmljIHRvIHRoZSB0YWJsZV9kYXRhCiAgIGZyYW1ld29yaywgYnV0IHRoZSBiYXNpYyBpZGVhcyBhcmUgbW9yZSB3aWRlbHkgcmVsZXZhbnQuCgoyMDA1LTA5LTE2IDA2OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmM6CgogICBBIGNvbnRhaW5lci1iYXNlZCAnZGF0YXNldCcgaW1wbGVtZW50YXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGNvbnZlcnQKICAgR0VUTkVYVC9CVUxLIHJlcXVlc3RzIGludG8gYW4gZXF1aXZhbGVudCBHRVQgcmVxdWVzdCAoaW5jbHVkaW5nIHVwZGF0aW5nCiAgIHRoZSBPSUQpLiAgU28gYWxsIHRoYXQncyByZXF1aXJlZCBpcyB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlLgogICBUaGUgJ25ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0JyByb3V0aW5lIGlzIHRoZXJlZm9yZSByZWR1bmRlbnQuCgoyMDA1LTA5LTE2IDA2OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRGVmaW5lIGEgbmV3IGNoZWNrIHV0aWxpdHkgcm91dGluZSBmb3IgdW5zaWduZWQgaW50ZWdlcnMuCiAgIEludGVnZXJzIGFyZSBtZWFudCB0byBiZSByZXByZXNlbnRlZCBhcyAnbG9uZycgcmF0aGVyIHRoYW4gJ2ludCcgdmFsdWVzLgoKMjAwNS0wOS0xNiAwNjozMCAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wLXRjLmMsIHNubXBBQUw1UFZDRG9tYWluLmMsCiAgICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jCiwgc25tcF90cmFuc3BvcnQuYzoKCiAgIEJsaXR6IHVzZSBvZiAnc3RyaW5nJyBhcyBhIHZhcmlhYmxlIG5hbWUuCgoyMDA1LTA5LTE2IDA1OjQ5ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBSZWdlbmVyYXRlIHRvIG1hdGNoIHVwZGF0ZWQgJ2NvbmZpZ3VyZS5pbicKCjIwMDUtMDktMTYgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgVXNlIGEgc2VjdXJpdHkgbW9kZWwgbnVtYmVyIGRlZmluZWQgaW4gdGhlIGdsb2JhbCBoZWFkZXIgaW5zdGVhZCBvZiBhCiAgIGhhcmQtY29kZWQgbnVtYmVyCgoyMDA1LTA5LTE2IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGRlZmluZSBzZWN1cml0eSBtb2RlbCBudW1iZXJzIGZvciBuZXQtc25tcCBzcGVjaWZpYyBzZWN1cml0eSBtb2RlbHMKICAgaGVyZSB0byBrZWVwIGEgcmVnaXN0cnkgaW4gYSBjZW50cmFsIHBsYWNlLgoKMjAwNS0wOS0xNiAwMToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBsb2NhbHNtLmgsCiAgICAgc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgLSBEZWZpbmVkIGEgbG9jYWwgc2VjdXJpdHkgbW9kZWwgdGhhdCBhc3N1bWVzIHRoZSBwZXJzb24gdGhhdCBleGVjdXRlZAogICAgIHRoZSBhZ2VudCBpcyB0aGUgb25lIHdobyBzaG91bGQgYmUgYXV0aG9yaXplZC4gIEl0IHJlcXVpcmVzIHRoYXQgYQogICAgIHRyYW5zcG9ydCB3YXMgdXNlZCB0aGF0IHdhcyBub3QgYSBkaXJlY3QgbmV0d29yayB0cmFuc3BvcnQgKEVHLAogICAgIGN1cnJlbnRseSB0aGlzIG1lYW5zIGl0IHdhcyB0dW5uZWxlZCBvciBzZW50IHRocm91Z2ggc3RkaW4vb3V0CiAgICAgY2hhbm5lbCkuICBBdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbiBsZXZlbCwgYmVpbmcgdW5rbm93biwgaXMKICAgICBsZWZ0IGF0IG5vQXV0aE5vUHJpdi4KCiAgICAgVGhpcyBtb2RlbCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIGZvciBleHBlcmltZW50YWwgYW5kIHB1cnBvc2VzIG9ubHkKICAgICBhdCB0aGlzIHRpbWUgYW5kIHNob3VsZCBwcm9iYWJseSBub3QgYmUgdXNlZCBpbiBwcm9kdWN0aW9uLgoKMjAwNS0wOS0xNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGRlZmluZSBhIFBEVSB0dW5uZWxlZCBmbGFnCgoyMDA1LTA5LTE1IDExOjU4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIG1udF9kaXIgaW4gc3RhdHZmcwoKMjAwNS0wOS0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIEFkZGVkIGEgbGluayB0byB0aGUgY29uZm9ybWFuY2Ugc3VtbWFyeS4KCjIwMDUtMDktMTUgMDk6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIC0gQWRkZWQgU1REIGluaXQKCjIwMDUtMDktMTUgMDk6NDYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICAtIEFkZGVkIGFiaWxpdHkgZm9yIFNURCBoYW5kbGVyIHRvIGNhbGwgZXh0ZXJuYWwgdGhpbmdzIHRvIHBpcGUgdG8vZnJvbQogICAtIEJlZ2lubmluZyBzdXBwb3J0IGZvciBhIHRyYW5zcG9ydCBiZWluZyBrbm93biBhcyAidHVubmVsZWQiLgoKMjAwNS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG1pbm9yIGZpeGVzCgoyMDA1LTA5LTE1IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRGVmaW5pdGlvbnMgZm9yIG5ldyBmZWF0dXJlcyAoc3RkIGFuZCBhIGZ1dHVyZSBTTSBtb2RlbCkKCjIwMDUtMDktMTQgMjM6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNoZWNrIGZvciBzdHJ1Y3QgbWVtYmVyIGJlZm9yZSB1c2luZwoKMjAwNS0wOS0xNCAyMDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaCBlYXJsaWVyCiAgIC0gaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaW4gbmV0d29yayBoZWFkZXIgdGVzdHMKICAgLSBmaXggd2l0aG91dC1lbGYgdGVzdAoKMjAwNS0wOS0xNCAyMDowNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIG1pc3NpbmcgZGVmaW5lcyBmb3IgZGFyd2luOCAoT1MgWCAxMC40LjIpCgoyMDA1LTA5LTE0IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgQWRkZWQgYSBvZGQgdHJhbnNwb3J0IHRvIGRvIHN0dWZmIHRocm91Z2ggc3RkaW4vb3V0CgoyMDA1LTA5LTEzIDE0OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlCgoyMDA1LTA5LTEyIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgUHJvdmlkZSBhIG1ha2UgdGFyZ2V0IGZvciB0ZXN0aW5nIHRoZSBNSUJzIGltcGxlbWVudGVkIGJ5IGFuIGFnZW50LgogICBUaGUgYmVoYXZpb3VyIG9mIHRoaXMgdGFyZ2V0IG1heSBuZWVkIHNvbWUgYWRqdXN0bWVudCwgYnV0IGl0J3MgYSBzdGFydC4uLgoKMjAwNS0wOS0xMiAxMToyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgRG9jdW1lbnQgdGhhdCAnZGVsZXRlX3JvdycgaG9vayBkb2Vzbid0IHJldHVybiBhIHVzZWZ1bCByZXN1bHQuCgoyMDA1LTA5LTEyIDExOjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIgKGFzIHVzZWQgYnkgdGhlICJtaWIyYy5hcnJheS11c2VyLmNvbmYiCiAgIHRlbXBsYXRlKSBpbiB0aGUgY29tYmluZWQgaGVscGVyIGhlYWRlciBmaWxlLgogICAgIChOb3cgd2UnbGwgZmluZCBvdXQgd2h5IGl0IHdhcyBvbWl0dGVkLi4uLi4pCgoyMDA1LTA5LTEyIDEwOjUwICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wLXRjLmM6CgogICBFbnN1cmUgdGhhdCBpbnZhbGlkIFJvd1N0YXR1cyBhc3NpZ25tZW50cyByZXR1cm4gYSAnd3JvbmdWYWx1ZScgZXJyb3IuCgoyMDA1LTA5LTEyIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgQWRkaXRpb25hbCBTRVQgdmFsaWRhdGlvbiB1dGlsaXR5IHJvdXRpbmVzCiAgIChmb3IgT0lEIGFuZCBnZW5lcmFsIElOVEVHRVIgYXNzaWdubWVudHMpCgoyMDA1LTA5LTEyIDEwOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxpdGllcy5oLCB1dGlsaXRpZXMvaXF1ZXJ5Lmg6CgogICBJbmNsdWRlIHRoZSBuZXcgImludGVybmFsIHF1ZXJ5IiBtb2R1bGUKCjIwMDUtMDktMDkgMDc6MTEgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBuZXcgbWliMmMgY29uZmlnIGZpbGVzLiAoQnVnICMxMjg0MzE1KQoKMjAwNS0wOS0wOSAwNjowOSAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgRW5zdXJlIHRoYXQgdGhlIE1JQiBpbnRlcm5hbHMgYXJlIGluaXRpYWxpc2VkIGJlZm9yZSB1c2luZyB0aGVtLiAgKEJ1ZyAjNzA1NTM2KQoKMjAwNS0wOS0wOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHNodXRkb3duIGNvZGUgKGhhbmRsZWQgYnkgaWZUYWJsZSkKCjIwMDUtMDktMDcgMTA6MzAgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEZpeCBhICdteScgbGlzdCBkZWNsYXJhdGlvbiB0aGF0IHNsaXBwZWQgdGhyb3VnaCB0aGUgbmV0LgogICBDYW4gZmluYWxseSBjbG9zZSBidWdzICM1Nzk3MDUgJiAjNjAxMTkwLgoKMjAwNS0wOS0wNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmVwb3J0IGVycm9ycyBmb3IgaW52YWxpZCB0YWJsZSBPSURzIGFwcHJvcHJpYXRlbHkgZm9yIHRoZSB0eXBlIG9mIHJlcXVlc3QuCiAgIChCYXNlZCBvbiBwYXRjaCAjMTI3Njk5OSBieSBSb2JlcnQgV2lsY294KQoKMjAwNS0wOS0wNyAwNToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUd2VhayB0byBVU00gZGVidWdnaW5nIC0gaGVscCBkZXRlY3QgZW5naW5lSUQgbWlzbWF0Y2hlcwoKMjAwNS0wOS0wNiAyMTo0OCAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIG5ldHNubXBtaWJzL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcwoKMjAwNS0wOS0wNiAyMDozNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXggLSBkZWNsYXJlIHZhcmlhYmxlcyBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDUtMDktMDYgMjA6MDcgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBDaGFuZ2UgZGVmYXVsdCB2ZXJzaW9uIGZvciBiaW5hcnkuCgoyMDA1LTA5LTA2IDIwOjA2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvYnVpbGQucGwKLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgJ0RldmVsb3BtZW50IGZpbGVzJyBzZWN0aW9uIHRvIHdpbjMyIGJpbmFyeQoKMjAwNS0wOS0wNiAxOToyOSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIFdpbjMyOiBVcGRhdGUgYmluYXJ5IFJFQURNRS50eHQgdG8gcmVmZXJlbmNlIFJFQURNRS53aW4zMgoKMjAwNS0wOS0wNiAxOToxNyAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZQo6CgogICBhZGQgLmxpYnMgYW5kICoubG8KCjIwMDUtMDktMDYgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwgbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZXZlcnNlZCBpcEFkZHJlc3Mgb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzCgoyMDA1LTA5LTA2IDExOjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSB0byBsaWJ0b29sIHJlY29tbWVuZGVkIHZlcnNpb25pbmcKCjIwMDUtMDktMDUgMTk6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaAosIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wOS0wNSAxNjoxNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgY2hlY2sgZm9yIE9wZW5TU0wgYmVmb3JlIHRyeWluZyB0byB1c2UgQUVTCgoyMDA1LTA5LTA0IDEyOjA4ICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHVzZSBleGlzdGluZyBTTk1QX1ZFUkJPU0UgZW52IHZhbHVlLCBpZiBzZXQKCjIwMDUtMDktMDQgMTE6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB0ZXN0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaWdub3JpbmcgZXhlY3V0aW9uIGVycm9yCgoyMDA1LTA5LTAyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2F1dGguYywgc25tcHRyYXBkX2F1dGguaDoKCiAgIGFkZGVkIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMKCjIwMDUtMDktMDIgMTk6MzIgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSAuY3ZzaWdub3JlIGZpbGVzCgoyMDA1LTA5LTAxIDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBleHRyYSBwYXJhbm9pZCBsZW5ndGggY2hlY2tzCgoyMDA1LTA5LTAxIDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBhY2NvdW50IGZvciBoZXhpZmllZCB0ZXh0IGxlbiBvbiBwZXJzaXN0ZW50IHN0b3JlIHNhdmUKCjIwMDUtMDgtMzEgMjI6MjkgIGFsZXhfYgoKICAgKiBORVdTLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGx5IHBhdGNoIGZvciBidWcgMTIwNjcxMjogUGVybCBnZXRuZXh0IGRvZXNuJ3QgaG9ub3IgZXhwbGljaXQgcmVmZXJlbmNlCiAgIHRvIE1JQiBmaWxlCgoyMDA1LTA4LTMwIDExOjQwICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjByZmMxMjEzLCBUMTYxcmZjMTIxMywgVDE2MnJmYzEyMTMKOgoKICAgcmVtb3ZlIG5vbi1jb25kaXRpb25hbCB0ZXN0cyBvZiBwb3RlbnRpYWxseSB1bmltcGxlbWVudGVkIG9iamVjdHMKCjIwMDUtMDgtMzAgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIGtlZXAgcnVubmluZyBjb3VudCBvZiB0cmFwcyBzZW50CgoyMDA1LTA4LTMwIDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIG5vdGlmaWNhdGlvbiBmaWx0ZXJpbmcgcGVyIFJGQyAzNDEzLCBzZWN0aW9uIDYKCjIwMDUtMDgtMzAgMDg6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIHVzZSBuZXcgbWZkIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0zMCAwODowNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgKOgoKICAgbmV3IGZpbGUKCjIwMDUtMDgtMjkgMjE6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHR4dCBmaWxlcwoKMjAwNS0wOC0yOSAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcC1ub3RpZmljYXRpb24tbWliLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgLSBuZXcgTUZEIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0yOSAyMDo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgbWliMmMgY29kZQogICAtIHNldCByb3cgZGlydHkgZmxhZyBvbiBzdWNjZXNmZnVsIGNvbW1pdAogICAtIGNsZWFyIHJvdyBkaXJ0eSBmbGFnIG9uIHN1Y2Nlc3NmdWwgdW5kbyBjb21taXQKCjIwMDUtMDgtMjkgMjA6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGNoYW5nZSBkaXJ0eSBmbGFnIHRvIHVfaW50CiAgIC0gYWx3YXlzIGdlbmVyYXRlZCBpbnRlcmZhY2UgaXJyZXZlcnNpYmxlX2NvbW1pdAogICAgIC0gbW92ZSBhdXRvIHJvdyBpbnNlcnQvZGVsZXRlIHRvIGlycmV2ZXJzaWJsZV9jb21taXQKICAgLSByZWxlYXNlIGRlbGV0ZWQgcm93cyBpbiBwb3N0X3JlcXVlc3QsIGJlZm9yZSBjYWxsaW5nIHVzZXIKICAgLSB3YXJuaW5nIGlmIGRpcnR5IGZsYWcgc2V0IG9uIHVuc3VjY2Vzc2Z1bCBwYWNrZXQKICAgLSBtZW1zZXQgbG9jYWwgc3RydWN0IHRvIDB4MDAgYmVmb3JlIHVzZQogICAtIGNvcHkgaW5kZXhlcyB0byByb3dyZXEgb2lkX2lkeCBvbiBjcmVhdGUKICAgLSBzZXQgKGluY3IpIGdsb2JhbCBkaXJ0eSBpZiB1c2VyIHNldCByb3cgZGlydHkKICAgLSBjbGVhciAoZGVjcikgZ2xvYmFsIGRpcnR5IGlmIHVzZSBjbGVhcmVkIGZsYWcgb24gdW5kbwoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGF1dG9jcmVhdGUgY3VycmVudCBkaXIsIGlmIG5lZWRlZAoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICAtIGZpeCBjb21tZW50cyBvbiB1c2VyIGZsYWdzCiAgIC0gYWRkIHVzZXIgZmxhZyBtYXNrCiAgIC0gYWRkIG1mZCByb3cgbWFzawogICAtIGFkZCBNRkRfUk9XX0RJUlRZIGZsYWcKCjIwMDUtMDgtMjkgMjA6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBjb21tZW50cwoKMjAwNS0wOC0yOSAyMDo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIGNvbW1lbnRzCiAgIC0gbW92ZSBmbGFnIGNsZWFyIGEgbGl0dGxlIGxhdGVyCgoyMDA1LTA4LTI5IDIwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHR3ZWFrIGNvbW1lbnQKCjIwMDUtMDgtMjkgMjA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBmaXggcmVxdWlyZWQgY29sdW1ucyB0ZXN0ICh0aGV5IGFyZSBhIG1pbiwgbm90IGV4YWN0IHJlcXVpcmVtZW50KQogICAtIGF1dG8tdHJhbnNpdGlvbiBjcmVhdGVBbmRHbyB0byBhY3RpdmUKICAgLSBzZXQgTUZEX1JPV19ERUxFVEVEIG9uIGRlc3Ryb3kKICAgLSB0d2VhayBsb2cgbWVzc2FnZSBvbiBjcmVhdGlvbiBlcnJvcnMKCjIwMDUtMDgtMjkgMjA6MzYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gcmV3b3JrIHZpZXcgbGlzdCBmdW5jdGlvbnMgdG8gdGFrZSBwb2ludGVyIHRvIGhlYWQgKHZzIGhhcmRjb2RlZCBoZWFkKQoKMjAwNS0wOC0yOSAyMDozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGl0ZXJhdG9yIHN1cHBvcnQKCjIwMDUtMDgtMjkgMjA6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIGZpeCBzb21lIGNvbW1lbnRzCiAgIC0gdHdlYWtzIGZvciBpdGVyYXRvciBzdXBwb3J0CiAgIC0gcmVtb3ZlIHVudXNlZCBzb3RlZF9jb250YWluZXIgdHlwZWRlZgoKMjAwNS0wOC0yOSAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wOC0yOSAyMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gc2V0IG5ldyB0YXJnZXQgcGFyYW1OYW1lIGluIHNlc3Npb24KICAgLSBmaXggYnVnOiBzdHJkdXAgc2VjdXJpdHlOYW1lLCBzaW5jZSBpdCB3aWxsIGJlIGZyZWVkIG9uIHNlc3Npb24gY2xvc2UKCjIwMDUtMDgtMjkgMjA6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGFkZCB0YXJnZXQgcGFyYW1OYW1lCgoyMDA1LTA4LTI5IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oOgoKICAgcmVuYW1lIGdldF9GaWx0ZXJOYW1lIC0+IGdldF9GaWxnZXJQcm9maWxlTmFtZQoKMjAwNS0wOC0yOSAyMDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICBsb2cgd2FybmluZyBvbiBkdXBsaWNhdGUgYWRkX2RhdGEKCjIwMDUtMDgtMjkgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgYWRkIGRlYnVnCgoyMDA1LTA4LTI5IDIwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gbW92ZSBtaWIgbW9kdWxlIHNodXRkb3ducyB0byBhIFNIVVRET1dOIGNhbGxiYWNrIHNvIHRoZXkgYXJlIGNhbGxlZAogICAgIGFmdGVyIHRoZSBsYXN0IHNubXBfc3RvcmUoKSBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQogICAtIGFkZCBsb2dpYyBmb3IgdGVzdGluZyBleHRyYSBpbml0X21pYl9tb2R1bGVzKCkgY2FsbHMKCjIwMDUtMDgtMjkgMjA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIG1pYiBtb2R1bGUgc2h1dGRvd25zIHRvIGEgU0hVVERPV04gY2FsbGJhY2sgc28gdGhleSBhcmUgY2FsbGVkCiAgICAgYWZ0ZXIgdGhlIGxhc3Qgc25tcF9zdG9yZSgpLCBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQoKMjAwNS0wOC0yOSAyMDowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKCjIwMDUtMDgtMjkgMjA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKICAgLSByZW1vdmUgZXh0cmFuZW91cyB0ZXh0IGluIGRlYnVnIG1zZwoKMjAwNS0wOC0yOSAyMDowNiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGlmIHNpbmsgY29udGFpbnMgJzonLCBwYXNzIHdob2xlIHRoaW5nIGFzIHBlZXJuYW1lLiAoYWxsb3dzIHRjcCBzaW5rcykKCjIwMDUtMDgtMjkgMTg6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBpbnRyb2R1Y2UgZ3JhbnVsYXIgY29uZmlnL3BlcnNpc3RlbnQgZmlsZSBkaXNhYmxlbWVudCAoUGF0Y2ggIzEyNTkyNTcgYnkgU3RldmVuIEZyaWVkbCkKCjIwMDUtMDgtMjYgMDk6MTUgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIEFkdmVydGlzZSB0aGUgbWFpbiBSUE0gYXMgcHJvdmlkaW5nIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBSZWRIYXQvRmVkb3JhCiAgICduZXQtc25tcC11dGlscycgUlBNLiAgQnJpbmcgdGhlIG1haW4gaW5mb3JtYXRpb24gc2V0dGluZ3MgaW50byBsaW5lCiAgIHdpdGggY3VycmVudCBycG1idWlsZCBleHBlY3RhdGlvbnMgKCdMaWNlbnNlJyByYXRoZXIgdGhhbiAnQ29weXJpZ2h0JykKCjIwMDUtMDgtMjUgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fdmFycy5jOgoKICAgVGhlIHZpZXcgbWFzayBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBPSUQgaXQncwogICBtYXNraW5nIGFnYWluc3QuIENvbmZpZ3VyZSBhbmQgcmVwb3J0IHRoaXMgcHJvcGVybHkuIChCdWcgIzEyMDI2OTIpCgoyMDA1LTA4LTI1IDA1OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIFZhcmJpbmQgY2hlY2tzIHNob3VsZCByZXR1cm4gYW4gU05NUHYyIGVycm9yICh3cm9uZ1ZhbHVlKQogICByYXRoZXIgdGhhbiB0aGUgZXF1aXZhbGVudCBTTk1QdjEgZXJyb3IgKGJhZFZhbHVlKS4KCjIwMDUtMDgtMjMgMTA6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBVc2UgJ2lwc19mcmFnbWVudHMnIGZpZWxkIG9mIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLCBpZiBhdmFpbGFibGUKICAgKFNlZSBwYXRjaCAjMTEwMzczOSkKCjIwMDUtMDgtMjMgMTA6MDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgJ2lwc19mcmFnbWVudHMnIGZpZWxkIGluIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLgogICAoU2VlIHBhdGNoICMxMTAzNzM5KQoKMjAwNS0wOC0yMyAwOTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSAnLWwnIG9wdGlvbiBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCiAgIChzaW5jZSB0aGUgY29ycmVzcG9uZGluZyBjYXNlIHN0YXRlbWVudCB3YXMgZGVsZXRlZCBtb250aHMgYWdvISkKICAgUmVwb3J0ZWQgYnkgSm9obiBQZmFmZi4KCjIwMDUtMDgtMjIgMjE6MTcgIGFsZXhfYgoKICAgKiBORVdTLCBhcHBzL3NubXBkZWx0YS5jOgoKICAgd2luMzI6IEZpeCBmb3IgJ3NlbGVjdDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeScgaW4gc25tcGRlbHRhCgoyMDA1LTA4LTIyIDE0OjA4ICB0YW5kZXJzCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHM6CgogICBhZGQgbWlzc2luZyBBRVMgc3VwcG9ydAoKMjAwNS0wOC0yMiAxMzo0OSAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBmdWxseSBkb2N1bWVudCBBRVMKCjIwMDUtMDgtMTkgMTk6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGdycnI7ICpyZWFsbHkqIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAxMDozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGVtcGhhc2l6ZSB0byB1c2UgInByb3h5IC4uLiAuMS4zIiAobm90IGp1c3QgLjEpIHRvIHByb3h5IHRoZSBlbnRpcmUgTUlCIHRyZWUgKEJ1ZyAjMTI0OTU5NCkKCjIwMDUtMDgtMTkgMTA6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGltcHJvdmUgaGVscCBvdXRwdXQgZm9yICItRCIgKEJ1ZyAjMTI0OTU1NikgYW5kICItYyIKCjIwMDUtMDgtMTkgMDk6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBhZGQgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IHRvIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZSgpIChCdWcgIzEyNjM1MjMpCgoyMDA1LTA4LTE5IDA3OjU5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAwNTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi8uY3ZzaWdub3JlOgoKICAgaW5pdGlhbCAuY3ZzaWdub3JlCgoyMDA1LTA4LTE5IDA1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1Ly5jdnNpZ25vcmUsCiAgICAgaGFyZHdhcmUvbWVtb3J5Ly5jdnNpZ25vcmUsIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUKLCBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgLmxpYnMgYXQgbW9yZSBwbGFjZXMKCjIwMDUtMDgtMTkgMDU6MDggIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBsaXN0IGNvbnRleHQgc3VwcG9ydCBhbmQgZml4IHR5cG8KCjIwMDUtMDgtMTggMTg6NTEgIGFsZXhfYgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBXaW4zMiBNU1ZDOiAgVXNlIF9faW50NjQgaW5zdGVhZCBvZiBsb25nIGxvbmcuCgoyMDA1LTA4LTE4IDE4OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBtb3ZlIHRlc3QgYWZ0ZXIgZm9yZWFjaCBsb29wCiAgIC0gc2V0IGludGVyYWN0aXZlIGZsYXQgYWZ0ZXIgb3ZlcndyaXRlCgoyMDA1LTA4LTE4IDE4OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICByZXR1cm4gZXJyb3IgaWYgYXNuIGJ1ZmZlciBleGNlZWRzIG9iamlkIGRlc3QgYnVmZmVyCgoyMDA1LTA4LTE4IDE3OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgLSByZW1vdmUgdW51c2VkIGluZGV4X29pZC9sZW4KICAgLSByZXN0b3JlIG5ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0CgoyMDA1LTA4LTE4IDE3OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHVudXNlZCBpbmRleF9vaWQvbGVuCgoyMDA1LTA4LTE4IDE3OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTA4LTE4IDE3OjM1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZmlndXJlIGV4dHJhcwogICAtIGFkZCBtYWtlIGV4dHJhcwoKMjAwNS0wOC0xOCAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGJyaW5nIGhwdXggZnVuY3Rpb24gZGVjbCBpbiBsaW5lIHcvcHJvdHlwZQoKMjAwNS0wOC0xOCAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwo6CgogICBmaXggYnVnIDEyNTkwNDk6IHNubXBkIHNlZ2ZhdWx0cyBpbiBJUC1NSUIgZHVyaW5nIHNubXB3YWxrCgoyMDA1LTA4LTE4IDA5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gbG90cyBvZiA2NCBiaXQgY2hlY2tzIGFkZGVkIGlmZiBTSVpFT0ZfTE9ORyAhPSA0CiAgICAgLSBjaGVjayBjb3VudGVyNjQgaGlnaC9sb3cgb3ZlcmZsb3dzIChpbnQ2NC5jKQogICAgIC0gdHJ1bmNhdGUgcmVjZWl2ZWQgdmFsdWVzIHRvIDMyIGJpdHMgKGFzbjEuYykKICAgICAtIHRydW5jYXRlIHNlbnQgdmFsdWVzIHRvIDMyIGJpdHMgYmVmb3JlIGVuY29kaW5nIChhc24xLmMpCiAgIC0gdXBkYXRlIHNldF92YXJfdmFsdWUgKHNubXBfY2xpZW50LmMpCiAgICAgLSB0cnVuY2F0ZSB2YXJiaW5kIHZhbHVlIHNldHMgdG8gMzIgYml0cwogICAgIC0gaGFuZGxlIHNldCBvZiBpbnRlZ2VycyBvZiB2YXJpb3VzIGxlbmd0aHMgKDEsIDIsIDQsIDggYnl0ZXMpCgoyMDA1LTA4LTE4IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBEb24ndCBnZW5lcmF0ZSBhdXRoRmFpbCB0cmFwcyBpZiB0aGVzZSBhcmUgbm90IHJlcXVpcmVkLgogICAoQnVnICMxMjI2Nzg4LCByZXBvcnRlZCBieSBXYW5nIFRlayBLZWUpCgoyMDA1LTA4LTE3IDIwOjQ0ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzOiBMT05HX01JTiBub3QgZGVmaW5lZCAobGltaXRzLmgpIGFuZCBhZGRlZAogICBmZF9ldmVudF9tYW5hZ2VyLmMgdG8gYnVpbGQgZmlsZXMuCgoyMDA1LTA4LTE3IDIwOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkICdDby1leGlzdGVuY2Ugd2l0aCBNaWNyb3NvZnQgU05NUCBzZXJ2aWNlcycgc2VjdGlvbiBhbmQgdXBkYXRlIHRoZQogICAnSW50ZXJhY3Rpb25zIHdpdGggT3RoZXIgVmVuZG9yJ3MgUHJvZHVjdHMnIHNlY3Rpb24uCgoyMDA1LTA4LTE3IDE3OjUwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBJbXByb3ZlIGRvY3VtZW50YXRpb24gb24gY2xpZW50QWRkciB0b2tlbjogYWxzbyB1c2VkIGJ5IHNubXBkIHdoZW4gc2VuZGluZyBub3RpZmljYXRpb25zCgoyMDA1LTA4LTE3IDA5OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBGaXggcHJvYmxlbXMgd2l0aCAzMi82NC1iaXQgdHlwZSBkZWZpbml0aW9ucyAoQnVnICMxMjU0OTkwKQoKMjAwNS0wOC0xNyAwODozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYwosIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jCiwgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsCiAgICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICcjaW5jbHVkZSA8ZG1hbGxvYy5oPicgc3RhdGVtZW50cywgc2luY2UgdGhpcyBpcyBoYW5kbGVkIGluCiAgIHRoZSBoZWFkZXIgZmlsZSB3aGljaCBpcyBpbmNsdWRlZCBhbnl3YXkuICAoUGF0Y2ggIzExMDgwNTMgYnkgSnVuIEt1cml5YW1hKQoKMjAwNS0wOC0xNyAwNzo1MCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsCiAgICAgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwOgoKICAgU3VwcG9ydCBydW5uaW5nIEFnZW50WCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgc2VwYXJhdGUKICAgJ2FnZW50eC9tYXN0ZXIgYWdlbnR4L3N1YmFnZW50JyBtb2R1bGVzIChQYXRjaCAjMTA0OTc5NCBmcm9tIG1hZ2ZyKQoKMjAwNS0wOC0xNyAwNTo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBFeHRlbmQgbGVuZ3RoIG9mIGNvbTJzZWMgInNvdXJjZSIgYnVmZmVyIChQYXRjaCAjMTIyNTEzMCBmcm9tIEFuZHJldyBTdGVldHMpCgoyMDA1LTA4LTE3IDA0OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIEZpeCB0eXBvIChwYXRjaCAjMTI1NTcxMyBieSBCZXJuaGFyZCBQZW56KQoKMjAwNS0wOC0xNiAyMDowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1MTogc25tcGQgc2VnZmF1bHRzIG9uIGFtZDY0CgoyMDA1LTA4LTE2IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBhbGxvdyBpcHY0IHN0YXRzIHRvIHdvcmsgaWYgdjYgc3RhdHMgYXJlIG5vdCBhdmFpbGFibGUKCjIwMDUtMDgtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1NDogc25tcGQ6IGNhbm5vdCBvcGVuIC9wcm9jL25ldC9zbm1wNgoKMjAwNS0wOC0xNiAxMjoyOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUeXBvIGluIHRoZSBkZXNjcmlwdGlvbiBvZiAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIChidWcgIzEyMzgzMDEpCgoyMDA1LTA4LTE2IDExOjU5ICByc3RvcnkKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBhbHdheXMgc3BlY2lmeSBwZXJtcyB0byBta2RpciwgYXMgaXQgaXMgbm90IG9wdGlvbiBmb3Igb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNS0wOC0xNSAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHNldCB0aW1lb3V0L3JldHJpZXMgdG8gZGVmYXVsdCBmb3IgaW5mb3JtIHNlc3Npb25zCgoyMDA1LTA4LTE1IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE1IDE4OjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGluc3RhbmNlLmMsIHNjYWxhcl9ncm91cC5jLCB0YWJsZS5jCjoKCiAgIHdhaXQgZm9yIGRlbGVnYXRlZCByZXF1ZXN0cyBiZWZvcmUgcmV0cmllcwoKMjAwNS0wOC0xNCAxNzoyMiAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIEZpeCBzcGVsbGluZyBtaXN0YWtlIGluIGRlc2NyaXB0aW9uIG9mIGEgZGVmaW5lLgoKMjAwNS0wOC0xMSAxMzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCBsZW5ndGggb2Ygc3lzT2JqZWN0SUQKCjIwMDUtMDgtMDEgMDc6MzkgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLWRvbid0IHVzZSBnZXRkdGFibGVzaXplKCkgZm9yIFdJTjMyCgoyMDA1LTA4LTAxIDA3OjM5ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICBsaWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgc25tcHRyYXBkL01ha2VmaWxlLmluCiwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICAtV2luMzI6ICBVcGRhdGUgcHJvamVjdCBmaWxlcyB3aXRoIG5ldyBsb2NhdGlvbiBmb3Igbm90aWZpY2F0aW9uX2xvZy5jIGFuZAogICAgbWlzc2luZyB0YWJsZV9kYXRhMi5jIGZvciBNU1ZDIEdVSQoKMjAwNS0wOC0wMSAwNzozNyAgYWxleF9iCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtRml4IHdpbjMyIGJ1aWxkIHByb2JsZW0gLSBkZWNsYXJlIHZhcmlhYmxlcyBiZWZvcmUgdXNpbmcuCgoyMDA1LTA3LTI4IDA3OjQ3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFNpbXBsZSAnd2hpbGUnIGxvb3AsIGFuZCAobm9uLWVycm9yKSBxdWl0IHN0YXRlbWVudC4KCjIwMDUtMDctMjYgMDg6MDYgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUHJvYmUgZm9yIGVuZ2luZUlEIGluaXRpYWxseSwgc28gdGhhdCBpdCdzIGF2YWlsYWJsZSBmb3IgY29uc3RydWN0aW5nCiAgIHRoZSB1c21Vc2VyVGFibGUgT0lEcy4KCjIwMDUtMDctMjYgMDY6MTkgIHRhbmRlcnMKCiAgICogRkFROgoKICAgVXBkYXRlIE9TIHN1cHBvcnQgc2VjdGlvbi4gU3RpbGwgbGlrZWx5IHRvIGJlIG91dGRhdGVkIGZvciBzb21lIHBsYXRmb3Jtcy4KCjIwMDUtMDctMjUgMTk6NTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZpeCBidWcgMTIzMDM2NjogYWRkICItbiIgdG8gIm5ldHN0YXQgLWEiIHRvIG1ha2UgaXQgd29yayBldmVuIGlmIHBvcnQgbnVtYmVycyBoYXZlIGNvcnJlc3BvbmRpbmcgc2VydmljZSBuYW1lcwoKMjAwNS0wNy0yNSAxOToyOCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGF1dG9fbmxpc3QuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGluY2x1ZGUgaGVhZGVyIHcvcHJvdG90eXBlCgoyMDA1LTA3LTI1IDE5OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBtb3ZlIHBhcmFtIHR5cGUgZGVjbCBpbnRvIHBhcmFtIGRlY2wgbGlzdAoKMjAwNS0wNy0yNSAxOToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIC0gbW92ZSBjb21tZW50IGVuZCBvdXQgb2YgY29uZGl0aW9uYWwgKHNpbmNlIHN0YXJ0IGlzIGFzIHdlbGwpCiAgIC0gaW5jbHVkZSBjdHggc2V0IGZvciBub24tZW51bSB0eXBlcwoKMjAwNS0wNy0yNSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIGRlYWwgd2l0aCBvaWQgbGVuZ3RoIHZzIHNpemUgZHVyaW5nIGdldC9zZXQKCjIwMDUtMDctMjUgMTU6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDctMjUgMTU6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbm90aWZpY2F0aW9uLWxvZy1taWIgdG8gZGVmYXVsdCBtaWIgbGlzdAoKMjAwNS0wNy0yNSAxNTo1NSAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIGZpeCBub3RpZmNhdGlvbiBsb2cgaW5jbHVkZSBwYXRoCiAgIC0gb25seSBpbmNsdWRlIG5vdGlmaWNhdGlvbiBsb2cgY29kZSBpZiBtb2R1bGUgaW5jbHVkZWQKCjIwMDUtMDctMjUgMTQ6MzUgIG1hcnoKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUvLmN2c2lnbm9yZSwgbWVtb3J5Ly5jdnNpZ25vcmUKOgoKICAgZml4aW5nIGN2cyBpZ25vcmUgZm9yIHNoYXJlZCBsaWJzCgoyMDA1LTA3LTI1IDEzOjIyICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIG9uL2ZvciBub3RpZmljYXRpb25fbG9nCgoyMDA1LTA3LTI1IDExOjM5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIEdlbmVyYXRlIGRpZmZlcmVudCBjb2RlIGZvciBjYWNoaW5nIGFuZCBub24tY2FjaGluZyBjb250YWluZXIgZnJhbWV3b3JrcwogICAocmF0aGVyIHRoYW4gaW5jbHVkaW5nIGNhY2hpbmcgc3VwcG9ydCByZWdhcmRsZXNzKQoKMjAwNS0wNy0yNSAxMTozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBtMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmksIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMKLCBtZmQtbWFrZWZpbGUubTJtLCBtZmQtdG9wLm0yYzoKCiAgIEFnZW50WCBtYWtlZmlsZSBhbmQgc3ViYWdlbnQgZHJpdmVyIGNvZGUgd2VyZW4ndCBnZXR0aW5nIGdlbmVyYXRlZAogICAoZXZlbiBpZiB0aGV5IHdlcmUgcmVxdWVzdGVkKS4gIEZpeCB0aGlzLgoKMjAwNS0wNy0yNSAxMTozNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ29udmVuaWVuY2Ugcm91dGluZSBmb3Igc2V0dGluZyBhbiBpbnRlZ2VyIHZhcmJpbmQgdmFsdWUuCgoyMDA1LTA3LTIxIDIxOjU0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkICBORVRTTk1QX0RTX05PVElGX0xPR19DVFggc3RyaW5nCgoyMDA1LTA3LTIxIDIxOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgbG9nIG5vdGlmaWNhdGlvbiBpZiB1c2luZyBub3RpZmljYXRpb24gbG9nIG1pYiBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgYWRkIHRvZG8gY29tbWVuCgoyMDA1LTA3LTIxIDIxOjQ5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgdmFyIGRlY2wKICAgLSByZW1vdmUgdW51c2VkIG51bV9yZWNlaXZlZAogICAtIHNldCBzbm1wdHJhcGQgY29udGV4dCBmb3Igbm90aWZpY2F0aW9uIGxvZyBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NDcgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgYWRkIGludGVyZmFjZSB0byBub3RpZmljYXRpb24gbG9nIGFnZW50IG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo0NyAgcnN0b3J5CgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIHJlbW92ZSB1bnVzZWQgbm90aWZpY2F0aW9uX2xvZyBmaWxlcwoKMjAwNS0wNy0yMSAyMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gbWFrZSBudW1fcmVjZWl2ZWQgc3RhdGljCiAgIC0gYWRkIGxvY2FsIGVuYWJsZWQgZmxhZywgc2V0IHdoZW4gbW9kdWxlIGluaXQgY2FsbGVkCiAgIC0gcmV0dXJuIGltbWVkaWF0ZWx5IGZyb20gbG9nX25vdGlmaWNhdGlvbiBpZiBub3QgZW5hYmxlZAogICAtIHVzZSBjb3JyZWN0IGluZGV4IGluIGNvbXBhcmUsIHNvIHdlIGhhdmUgYSBjaGFuY2UgYXQgZmluZGluZyB0aGUgcmlnaHQgcm93CiAgICAgKHRoaXMgZml4ZXMgdGhlIHZhcmJpbmQgbWVtb3J5IGxlYWspCgoyMDA1LTA3LTIxIDIwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgc3RyZHVwIHRtcCBkcyBzdHJpbmcgdGhhdCB3aWxsIGJlIHJlbGVhc2VkCgoyMDA1LTA3LTIxIDE5OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0wNy0yMSAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLzogbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIC0gcmVtb3ZlIGFnZW50eCBjb25kaXRpb25hbCBjb21waWxlCiAgIC0gcmVtb3ZlIHNubXB0cmFwZCBoZWFkZXJzCiAgIC0gcmUtd29yayBsb2cgc2l6ZSBtYW5hZ2VtZW50CiAgIC0gYWRkIGNvbnRleHQgcGFyYW1ldGVyIGZvciB0YWJsZSBpbml0IHJvdXRpbmVzCiAgIC0gbmV3IGRzX2FwcCBmb3IgbW9kdWxlIGluaXQgdG8gZGV0ZXJtaW5lIGNvbnRleHQKICAgLSByZW1vdmUgZG9udFJldGFpbkxvZ3MgY29uZmlnICh1c2UgLUkgLW5vdGlmaWNhdGlvbl9sb2cpCiAgIC0gY2hnIGRlYnVnIHN5bWJvbCAobG9nX25vdGlmaWNhdGlvbi0+bm90aWZpY2F0aW9uX2xvZykKICAgLSByZW1vdmUgZXh0cmFuZW91cyBjb21tZW50cwogICAtIG1ha2Ugc3VyZSB0cmFuc3BvcnQgcHRyIGhhcyB2YWx1ZSBiZWZvcmUgdXNpbmcKCjIwMDUtMDctMjEgMTg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgsCiAgICAgbm90aWZpY2F0aW9uLWxvZy1taWIuaDoKCiAgIG9yaWdpbmFsIHZlcnNpb25zCgoyMDA1LTA3LTIwIDIwOjM0ICBhbGV4X2IKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtQWRkIHdyYXBwZXIgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAobXlfZ2V0ZW52KSB0byBhZGQgV2luZG93cyByZWdpc3RyeQogICAgc3VwcG9ydCBmb3IgcGVyc2lzdGVudCBmb2xkZXIvZmlsZSBjaGVjawogICAtRml4IGJ1ZyBpbiBnZXRfcGVyc2lzdGVudERpciBjYWxsIChpdCB3YXMgbm90IHBhc3NpbmcgdGhlIGZpbGVuYW1lIG9mCiAgICBzbm1wLmNvbmYKCjIwMDUtMDctMjAgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW92ZSBoZWFkZXIgaW5jbHVkZSB0byB0b3Agb2YgZmlsZQoKMjAwNS0wNy0yMCAxODoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlcgoKMjAwNS0wNy0yMCAxODoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpeCBpbmNsdWRlIG9mIG93biBoZWFkZXIgKGN1dC1uLXBhc3RlIGVycm9yKQoKMjAwNS0wNy0yMCAxODoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IG1pYi5oLCBzbm1wX2FwaS5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZSBmb3Igbm9uLWV4aXN0ZW50IGZ1bmM7IGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowOCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBwYXJhbWV0ZXJzIGZvciBuc2ItY29uZmlnIGV4YW1wbGUKCjIwMDUtMDctMjAgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyByZW1vdmUgcmVkdW5kYW50IHNlbWljb2xvbgoKMjAwNS0wNy0yMCAxODowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGFkZCBtaXNzaW5nIGluY2x1ZGVzL3Byb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBiYWQgb3B0aW9uIFt3aXRofGVuYWJsZV0tc3NsCgoyMDA1LTA3LTIwIDE3OjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgY2hlY2sgcnVuIGZpbmQgb24gc3JjZGlyCgoyMDA1LTA3LTIwIDExOjMwICBkdHMxMgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgR3VhcmQgYWdhaW5zdCB1c2luZyBuYW1lbGVzcyBkYXRhIGxpc3RzLiAgVGhpcyBzdGlsbAogICB3b24ndCB3b3JrIHByb3Blcmx5LCBidXQgYXQgbGVhc3QgdGhlIGFnZW50IHdvbid0IGNyYXNoLgogICAoWWVzLCBJIGtub3cgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIC0gYnV0IHlvdSBjYW4ndCB0cnVzdAogICBzb21lIHBlb3BsZSBub3QgdG8gZG8gc29tZXRoaW5nIHN0dXBpZCAtIG5hbWluZyBubyBuYW1lcykKCjIwMDUtMDctMjAgMTE6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIEluY2x1ZGUgdGhlIGhhbmRsZXIgbmFtZSB3aGVuIHJlZ2lzdGVyaW5nIGEgdGFibGVfYXJyYXkuCgoyMDA1LTA3LTE5IDEzOjQ0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXggY3V0LW4tcGFzdGU7IG5ldyB0YWJsZXMgYXJlIGxpbnV4IG9ubHkKCjIwMDUtMDctMTkgMTA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiB2YXJpYWJsZS1sZW5ndGggaW5kZXggYW5kIGNvbHVtbiB2YWx1ZXMuCgoyMDA1LTA3LTE5IDEwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggaGFuZGxpbmcgb2YgdmFyaWFibGUtbGVuZ3RoIGluZGV4ZXMuCgoyMDA1LTA3LTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgUHJvdmlkZSBhbm90aGVyIHJlZ2lzdHJhdGlvbiBBUEkgdG8gaGlkZSB0aGUgaGVscGVyIGludGVybmFscwogICBmcm9tIHVzZXItbGV2ZWwgY29kZS4KCjIwMDUtMDctMTggMTc6NTcgIHJzdG9yeQoKICAgKiBORVdTLCBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRjcENvbm5lY3Rpb25UYWJsZSBhbmQgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS86IHRjcExpc3RlbmVyVGFibGUuYwosIHRjcExpc3RlbmVyVGFibGUuaCwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGluaXRpYWwgd29ya2luZyB2ZXJzaW9uCgoyMDA1LTA3LTE4IDE3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgY29kZSBmb3IgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gbG9hZCBjYWNoZSBmcm9tIGRhdGEgYWNjZXNzCiAgIC0gbWFwIGFkZHJlc3MgdHlwZQogICAtIHNocmluayBzdG9yYWdlIGZvciBpbmRleGVzCgoyMDA1LTA3LTE4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgLSBmaXggaW5kZXggb2lkIHBvaW50ZXIKICAgLSBhZGQgdXBkYXRlIG9mIHBpZAoKMjAwNS0wNy0xOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgLSB1c2UgbmV3IHByaXZhdGUgaGVhZGVyCiAgIC0gZml4IGxvYWQgcHJvdG90eXBlcwogICAtIGNoZWNrIG5ldyBsaXN0ZW4gc3RhdGUgcmVxdWlyZS9leGNsdWRlIGxvYWQgZmxhZwogICAtIGZpeCBjb3B5IG9mIHJlbW90ZSBhZGRyZXNzCgoyMDA1LTA3LTE4IDE2OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBwcmludCBiYWQgbGluZSB3aGVuIGJhaWxpbmcgb24gZXJyb3IKCjIwMDUtMDctMTggMTY6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBmbHViCgoyMDA1LTA3LTE4IDE2OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgY29tbWVudCBibG9jawoKMjAwNS0wNy0xOCAxNjoyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSByZW1vdmUgdW51c2VkIGRlZmluZXMvY29tbWVudHMKICAgLSBhZGQgcGlkIHRvIHN0cnVjdAogICAtIGFkZCBsb2FkIGZsYWdzIHRvIHJlcXVpcmUvZXhsdWRlIGxpc3RlbiBzdGF0ZQoKMjAwNS0wNy0xOCAxNjoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGFkZCBkZWJ1ZyB0byBmcmVlQlNEIChlc3AgZXJyb3IgY2FzZXMpCgoyMDA1LTA3LTE4IDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKOgoKICAgY29ycmVjdCBkYXRhIHN0cnVjdCBuYW1lCgoyMDA1LTA3LTE4IDE1OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi86IHRjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMKCjIwMDUtMDctMTggMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fcHJpdmF0ZS5oOgoKICAgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKCjIwMDUtMDctMTUgMTg6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmM6CgogICBxdW90ZSBzdHJpbmcgYXJndW1lbnQgaW4gYXNzaWdubWVudAoKMjAwNS0wNy0xNSAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFyIHNlc3Npb24gZnJvbSBjYWxsYmFjayBjbGllbnQgYXJncyBvbiBmcmVlCgoyMDA1LTA3LTE0IDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggaW50ci9jdHggb3ZlcmZsb3dzCgoyMDA1LTA3LTE0IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmg6CgogICBjb25maWdfcmVxdWlyZSB1dGlsaXRpZXMvZXhlY3V0ZSAoZm9yIHNubXB0cmFwZCkKCjIwMDUtMDctMDcgMTI6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZG8gbm90IGNsb3NlIGFsbCBub24tc3RkIGZkcyBpbiBkYWVtb25pemUgKGFzIHdlIGhhdmUgcHJvYmFibHkgb3BlbmVkIHNvbWUpCgoyMDA1LTA3LTA3IDEyOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY2xvc2UgYWxsIG5vbi1zdGFuZGFyZCBmZHMgaW5oZXJpdGVkIGZyb20gc2hlbGwgaW1tZWRpYXRlbHkKICAgLSByZWdpc3RlciBzaWduYWwgaGFuZGxlcnMgbXVjaCBzb29uZXIsIHNvIGVhcmx5IHNpZ25hbCBkb2Vzbid0IGNvcmUKCjIwMDUtMDctMDYgMTI6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIHRhcmdldCB0byBidWlsZCAgKGFsbCkgbGlicyB0byB1c2UgZXhpc3RpbmcgSU5TVEFMTExJQlMKCjIwMDUtMDctMDEgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSB1c2UgdXRpbGl0eSByb3V0aW5lIHRvIGNsZWFyIGRlbGVnYXRlZCBmbGFnCiAgIC0gZG9uJ3Qgc2V0IGVycm9yIGZvciB0aW1lb3V0IG9uIGdldC1uZXh0CiAgIC0gcmVsZWFzZSBkZWxlZ2F0ZWQgY2FjaGUgd2hlbiB1bmRlbGVnYXRpbmcgcmVxdWVzdHMKCjIwMDUtMDYtMzAgMTE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGlmZiBub3QgYXBwbGllZCwgZml4IGZyZWUgb2YgcGt0IHRvIHVzZSBhbGxvYydkIHB0ciwgbm90IG9mZnNldCBpbiBwa3QKICAgLSBpZmYgYXBwbGllZCwgcmVtb3ZlIHJlZHVuZGFudCBwcnQgY2xlYXIgYWZ0ZXIgU05NUF9GUkVFCgoyMDA1LTA2LTMwIDA1OjI3ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoIDEyMjYxODc6IGRvY3VtZW50IG1pc3NpbmcgY29uZmlnIGZpbGUgdG9rZW5zIGFuZCBjbWRsaW5lIG9wdGlvbnMKCjIwMDUtMDYtMzAgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ2FsY3VsYXRlICJjb29rZWQiIHZhbHVlcyBmcm9tIGhpc3RvcmljYWwgZGF0YS4KICAgVGhpcyBjaGFuZ2VzIHRoZSBtZWFuaW5nIG9mIHRoZXNlIGZpZ3VyZXMgZnJvbSBhIHN5c3RlbQogICBsaWZlLXRpbWUgYXZlcmFnZSB0byBhIChtb3JlIHVzZWZ1bCkgb25lLW1pbnV0ZSBhdmVyYWdlLAogICBhbmQgYnJpbmdzIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBpbnRvIGxpbmUgd2l0aCBtb3N0CiAgIG90aGVyIGFyY2hpdGVjdHVyZXMuCgoyMDA1LTA2LTMwIDA0OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIFN0YW5kYXJkIChzeXN0ZW0taW5kZXBlbmRlbnQpIG1lY2hhbmlzbSBmb3IgdHJhY2tpbmcgaGlzdG9yaWNhbCBDUFUKICAgc3RhdGlzdGljcywgaW4gb3JkZXIgdG8gY2FsY3VsYXRlIHJvbGxpbmcgYXZlcmFnZXMuCgoyMDA1LTA2LTI5IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBwcm9wZXIgY2hlY2tzIGZvciB6ZXJvIHJldHVybiBhbmQgd2FpdCByYXRoZXIgdGhhbiBjbG9zaW5nIHRoZSBjb25uZWN0aW9uCgoyMDA1LTA2LTI5IDEzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIFJvbWFuIFRzaXJvdWxuaWtvdiB0byBjYXRjaCAtMSByZXR1cm4gY29kZSBmcm9tIGNoZWNrX3BhY2tldCBmdW5jdGlvbnMKCjIwMDUtMDYtMjggMDg6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaDoKCiAgIFR3ZWFrIHRoZSBuYW1lIG9mIHRoZSBjb3JlIEhBTCBtZW1vcnkgbW9kdWxlLgoKMjAwNS0wNi0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cywgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgUGF0Y2ggZnJvbSBEYXZpZCBCZWF0dGllIHRvIGZpeCB0cmFwIHJlY2VwdGlvbgoKMjAwNS0wNi0yNyAwNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zdG9yYWdlLmgKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IE1lbW9yeSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgICB1Y2Qtc25tcC92bXN0YXQuYywgdWNkLXNubXAvdm1zdGF0Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IENQVSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA0OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIKICAgKEp1c3QgY292ZXJpbmcgQ1BVIGFuZCBtZW1vcnkgaW5mb3JtYXRpb24gZm9yIG5vdywgYW5kCiAgICBvbmx5IGltcGxlbWVudGVkIG9uIExpbnV4LWJhc2VkIHN5c3RlbXMuIEJ1dCBpdCdzIGEgc3RhcnQhKQoKMjAwNS0wNi0yNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSGFuZGxlIHdlZWstZGF5IGJpdCBzcGVjaWZpY2F0aW9ucy4KCjIwMDUtMDYtMjcgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEhhbmRsZSByZXZlcnNlLWRheSBiaXQgc3BlY2lmaWNhdGlvbnMuCgoyMDA1LTA2LTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNhbGFuZGFyLWJhc2VkIHNjaGVkdWxpbmcuCiAgIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzZS1kYXkgb3Igd2Vla2RheSBiaXRzIHlldCwKICAgYnV0IHNob3VsZCBwcm92aWRlIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG5lZWRlZCBmb3IKICAgdGhlICJjcm9uIiBhbmQgImF0IiBjb25maWd1cmUgZGlyZWN0aXZlcy4KCjIwMDUtMDYtMjMgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIE1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA2LTIyIDIwOjE2ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIGRvY3VtZW50IGxvZ21hdGNoLCBhZ2VudHhwZXJtcywgY29tMnNlY3VuaXgsIGVuZ2luZUlEVHlwZSwgZW5naW5lSUROaWMKICAgICBhbmQgbGVhdmVfcGlkZmlsZSB0b2tlbnMKCjIwMDUtMDYtMjIgMjA6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBzbm1wZCBkaXNraW8gdG9rZW4gYW5kIHRoZSB1bnVzZWQgc3RhdGljIHZhcmlhYmxlIGl0IHNldHMKCjIwMDUtMDYtMjIgMTk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb29wcy4gZGVjbGFyZSB2YXJpYWJsZSB1c2VkIGluIG5ldyBjb2RlLgoKMjAwNS0wNi0yMiAxOTozNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gMTIxOTU0ODogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9uCgoyMDA1LTA2LTIyIDE5OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSAxMjE5NTQ4OiBkb24ndCB1bmxpbmsgbnVsbCBmaWxlbmFtZQoKMjAwNS0wNi0yMiAxOTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBjbG9zZSBhbGwgZmRzIGFmdGVyIGRhZW1vbml6aW5nCgoyMDA1LTA2LTIyIDE3OjAzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgY2hlY2sgdGFyZ2V0IGZvciBmdWxsIHBhdGhzIGluIGRlcGVuZGVuY3kgZmlsZXMKCjIwMDUtMDYtMjIgMTY6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYXBwbHkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiAxMjI1NDQwOiByZWdpc3RlciBzaW5nYWwgaGFuZGxlcnMgZWFybGllcgoKMjAwNS0wNi0yMiAxNTo1NyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhcHBseSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIDEyMjU0NDA6IHJlZ2lzdGVyIHNpbmdsYSBoYW5kbGVzIGVhcmxpZXIKCjIwMDUtMDYtMjIgMTM6MjIgIHJzdG9yeQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG1vdmUgaWZkZWYgdGVzdCBhZnRlciBoZWFkZXIgd2l0aCBkZWZpbmUgaXMgaW5jbHVkZWQKCjIwMDUtMDYtMjIgMDY6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZFRhYmxlLmM6CgogICBVc2UgdGhlIG5ldyBzY2hlZFRhYmxlIGVudHJ5IGNyZWF0aW9uIHJvdXRpbmVzLgoKMjAwNS0wNi0yMiAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgRW5zdXJlIHNlbnNpYmxlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFuIGludGVybmFsIHNlc3Npb24uCgoyMDA1LTA2LTIyIDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHRoZSB2ZXJzaW9uIGFuZCBzZWN1cml0eSBsZXZlbAogICB1c2VkIHRvIG1ha2UgaW50ZXJuYWwgcXVlcmllcy4KICAgICBVbmZvcnR1bmF0ZWx5LCBjb21tdW5pdHktYmFzZWQgcmVxdWVzdHMgZG9uJ3QgY3VycmVudGx5CiAgIHdvcmsgb3ZlciB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0LCBidXQgSSdtIHdvcmtpbmcgb24gdGhhdC4KCjIwMDUtMDYtMjIgMDU6MzkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFNlcGFyYXRlIG91dCBwYXJzaW5nIHNlY3VyaXR5IGxldmVsIHRva2VucyBpbnRvIGEgc2VwYXJhdGUgcm91dGluZS4KCjIwMDUtMDYtMjEgMTc6MzkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDYtMjEgMTc6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGFzc2VydAoKMjAwNS0wNi0yMSAxNzozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3IgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQKCjIwMDUtMDYtMjEgMTc6MzMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgcHJvdG90eXBlcyBmb3Igc2hvdWxkX2luaXQgYW5kIGFkZF90b19pbml0X2xpc3QKCjIwMDUtMDYtMjEgMTc6MzIgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBuZXcgLS1kaXNhYmxlLXNubXB0cmFwZC1zdWJhZ2VudCBjb25maWd1cmUgb3B0aW9uCiAgIC0gY2hlY2sgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHN1Yi1hZ2VudCBjb2RlCiAgIC0gYWRkICdJJyBvcHRpb24gdG8gY29tbWFuZCBsaW5lIHByb2Nlc3NpbmcsIHRvIGRpc2FibGUgbW9kdWxlcwogICAtIHVzZSBzaG91bGRfaW5pdCB0byBkZXRlcm1pbmUgaWYgbm90aWZpY2F0aW9uIGxvZyBtaWIgaXMgZGlzYWJsZWQKICAgLSB1c2UgbmV3IHNubXBfbG9nZ2luZ19yZXN0YXJ0IG9uIEhVUAoKMjAwNS0wNi0yMSAxMTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3Igc25tcF9zdGRlcnJsb2dfc3RhdHVzCgoyMDA1LTA2LTIxIDExOjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvcmUuYywgc2NoZWRDb3JlLmg6CgogICBBIGNsZWFuZXIgYXBwcm9hY2ggdG8gY3JlYXRpbmcgZW50cmllcyBpbiB0aGUgc2NoZWRUYWJsZQoKMjAwNS0wNi0yMSAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgQ29uc2lzdGVudGx5IHdvcmsgd2l0aCBTTk1QIHZlcnNpb25zLCBub3QgInByb2Nlc3NpbmcgbW9kZWxzIi4KCjIwMDUtMDYtMjEgMTE6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENvcnJlY3QgdGVtcGxhdGUgZm9yIGNhY2hlZCB0YWJsZV9kYXRhIHJlZ2lzdHJhdGlvbi4KCjIwMDUtMDYtMjEgMTA6NDUgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZWZlciB0byB0aGUgY29ycmVjdCBsb2NhdGlvbiBmb3IgY29uZmlnIGZpbGVzLgogICAoU3BvdHRlZCBieSBMZW8gTGVpKQoKMjAwNS0wNi0yMSAxMDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG9ubHkgYWRkIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGlmZiB3ZSBhcmUgYW4gYWdlbnR4IHN1YmFnZW50CgoyMDA1LTA2LTIwIDE4OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBmaXggc2V0dGluZyBvZiBleHBlY3QgcmVzcG9uc2UgcGR1IGZsYWcgKEkgYnJva2UgaXQgZml4aW5nIHRoZSBTTk1QdjMKICAgICBkZWxheWVkIGVuZ2luZUlEIHByb2JlKQoKMjAwNS0wNi0yMCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHkgaGFuZGxpbmcgb2YgTk9TVUNITkFNRSBvbiBhIGdldC1uZXh0LCBub3RlZCBvbiB1c2VycyBieSBKb2huIEhhcmRpbgoKMjAwNS0wNi0yMCAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgbG9nIGZsYWdzIGluIGFnZW50CiAgIC0gc2V0IG5vIGRlZmF1bHQgbG9nIGZsYWcgZm9yIHN5c2xvZyBjYXNlcwogICAtIG5ldyBzbm1wX3N0ZGVycmxvZ19zdGF0dXMoKSBjaGVja3MgZm9yIGVuYWJsZWQgc3RkZXJyIGxvZyBoYW5kbGVycwogICAtIGZpeCByZS1lbmFibGUgb2Ygc3lzbG9nIGluIGxvZ2dpbmcgcmVzdGFydCBmdW5jdGlvbgogICAtIHVzZSBjb3JyZWN0IGZ1bmN0aW9uIG5hbWUgdG8gcmUtZW5hYmUgZmlsZSBsb2dzCiAgIC0gQysrIGNvbW1lbnRzIC0+IEMgY29tbWVudHMKCjIwMDUtMDYtMjAgMTY6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBuZXcgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQoKSB0byBjbG9zZS9yZW9wZW4gZmlsZSBiYXNlZCBsb2dzCiAgIC0gcHVyZ2UgYWdlbnQgc2V0dXBfbG9nCiAgIC0gb25seSBlbmFibGUgZGVmYXVsdCBMT0dGSUxFIGlmIG5vIG90aGVyIGxvZyBvcHRpb24gZGVmaW5lZAoKMjAwNS0wNi0xOCAxMToxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNi0xOCAxMDo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC1tb3ZlIHNvbWUgYXJnIGNoZWNrcyBlYXJsaWVyCiAgIC1tb3ZlIGxpYndyYXAvcnBtIGNoZWNrcyBiYWNrIGFmdGVyIHNldHRpbmcgTk9OQUdFTlRMSUJTLCBzbyB0aGV5IGFyZW4ndAogICAgbGlzdGVkIGluIGFwcCBsaWJzIGJ5IG5ldC1zbm1wLWNvbmZpZwoKMjAwNS0wNi0xNiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgb29wcy0gcGFzcyBhZGRyIG9mIHZhciB0byBzc2NhbmYKCjIwMDUtMDYtMTUgMTc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBmdW5jIHVzZWQgYmVmb3JlIGRlZmluZWQKCjIwMDUtMDYtMTUgMDg6MDUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGcmVlIHRoZSBzYW1lIHBvaW50ZXIgdGhhdCB3YXMgcmV0dXJuZWQgYnkgJ3N0cmR1cCcKCjIwMDUtMDYtMTQgMTY6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHJld29yayBzbm1wdjMgZW5naW5lSUQgcHJvYmUgZGVsYXkgdG8gZml4IHByb2JsZW1zIG5vdGVkIG9uIGNvZGVycwogICAgIC0gc2V0IHVwL2NoZWNrIHNlc3MvcGR1IHZlcnNpb24gYSBsaXR0bGUgZWFybGllcgogICAgIC0gc2V0IEVYUEVDVF9SRVNQT05TRSBmbGFnIGNvcnJlY3RseSBpbml0aWFsbHksIGluc3RlYWQgb2YgZ2xvYmFsIHNldAogICAgICAgYW5kIHVuc2V0IGZvciBjZXJ0YWluIGNhc2VzLiBhbHNvIGRvIGl0IGEgbGl0dGxlIGVhcmxpZXIKICAgICAtIG1vdmUgY2hlY2sgZm9yIHByb2JlIGhpZ2hlciB1cCBjYWxsIHN0YWNrIC0gbm93IHdpbGwgYmUgZG9uZSB0aGUgZmlyc3QKICAgICAgIHRpbWUgYSBzZXNzaW9uIHNlbmRzIGEgdjMgcGR1IHRoYXQgZXhwZWN0cyBhIHJlc3BvbnNlCgoyMDA1LTA2LTE0IDEyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBVc2UgImFnZW50U2VjTmFtZSIgZm9yIHJldHJpZXZpbmcgc2NoZWR1bGUgaW5mb3JtYXRpb24uCgoyMDA1LTA2LTE0IDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggYnVnIDExOTcxODM6IHNzUmF3Q3B1KiBzdGF5cyBvbiAyXjMyLTEgaW5zdGVhZCBvZiByb2xsaW5nIG92ZXIKCjIwMDUtMDYtMTQgMTE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBvb3BzLSBtb3ZlIHZhciBkZWNsIHRvIGZ1bmMgdGhhdCB2YXIgd2FzIG1vdmVkIHRvCgoyMDA1LTA2LTE0IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IGJ1ZyAxMjE3MjYxOiBJRi1NSUIgcmVwb3J0cyBpbmNvcnJlY3Qgc3RhdHMgb24gQU1ENjQKCjIwMDUtMDYtMTQgMTA6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHByb2Nlc3Mgb3B0aW9uYWwgY29uZmlnIGZpbGVzIGR1cmluZyBwcmUtbWliIGNvbmZpZyB0b28KICAgLSBpZiBvcHRpb25hbCBjb25maWdzIHByZWZpeGVkIHdpdGggJy0nLCBwcm9jZXNzIGJlZm9yZSBkZWZhdWx0IGNvbmZpZ3MKCjIwMDUtMDYtMTQgMDc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGRpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTW92ZSAiYWdlbnRTZWNOYW1lIiBjb25maWcgZGlyZWN0aXZlIHRvIHRoZSBpcXVlcnkgdXRpbGl0eSBtb2R1bGUuCgoyMDA1LTA2LTE0IDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEaXN0aW5ndWlzaCBzbm1wX3NlbmQgZXJyb3JzIGZyb20gU05NUCBlcnJTdGF0IGVycm9ycwoKMjAwNS0wNi0xNCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIFNOTVB2MyBkZWZhdWx0cyBmcm9tIHRoZSBzZXNzaW9uIHN0cnVjdHVyZS4KCjIwMDUtMDYtMTMgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlciwgYXV0b2NvbmYKCjIwMDUtMDYtMTMgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYXBwbHkgcGF0Y2ggMTE5ODIxMDogdXNpbmcgZXRodG9vbCBmb3IgZ2lnYWJpdCBOSUNzCgoyMDA1LTA2LTEzIDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgdXBkYXRlIGZvciBwcmV2aW91cyBjYWNoZV9oaW50IG1ldGhvZAoKMjAwNS0wNi0xMyAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgYWx3YXkgcGFzcyBoaW50cyB0byBsb3dlciBoYW5kbGVycwoKMjAwNS0wNi0xMyAxNzoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbWlicywgbWliZGlycyBhbmQgbWliZmlsZXMgaGFuZGxpbmcgY29uc2lzdGVudDoKICAgICAtICctWFhYJyBhZGRzIFhYWCBiZWZvcmUgZXhpc3RpbmcKICAgICAtICcrWFhYJyBhZGRzIFhYWCBhZnRlciBleGlzdGluZwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDUtMDYtMTMgMTU6MzQgIHJzdG9yeQoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBuZXcgcmVhZCBtZSBmb3IgVHJ1NjQKCjIwMDUtMDYtMTMgMTI6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9jb2x1bW5zLmgsIGlmWFRhYmxlX2NvbHVtbnMuaDoKCiAgIFJlbW92ZSBvYnNvbGV0ZSBpZlRhYmxlIHJld3JpdGUuCgoyMDA1LTA2LTEzIDEyOjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUnVuIHRyYXAgaGFuZGxlcnMgdXNpbmcgJ3N5c3RlbSgpJyByYXRoZXIgdGhhbiAnZXhlY3YoKScsCiAgIHRvIHN1cHBvcnQgdHJhcCBoYW5kbGVyIHNoZWxsIHNjcmlwdHMuCgoyMDA1LTA2LTEzIDEyOjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBwYXJzZS5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzeXN0ZW0uYwosIHdpbnNlcnZpY2UuYzoKCiAgIEd1YXJkIGFnYWluc3QgYXNzb3J0ZWQgbWFsbG9jIGZhaWx1cmVzLgogICBSZXBvcnRlZCBieSBBbmRyZWFzIE1vcm9kZXIuCgoyMDA1LTA2LTEzIDExOjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIGJvZ3VzIGhhbmRsaW5nIG9mIHplcm8td2lkdGggaGludHMuCiAgIFRoZXNlIG1pZ2h0IGJlIHBvaW50bGVzcywgYnV0IHRoZXkgYXJlIHN0cmljdGx5IHZhbGlkLgogICAoU2VlIFJGQyAyNTc5LCBTZWN0aW9uIDMuMSAoMSkpCgoyMDA1LTA2LTEzIDEwOjUyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBQb3NzaWJsZSBtZWNoYW5pc20gZm9yIGFkZHJlc3NpbmcgbmFtZXNwYWNlIGNsYXNoZXMKICAgKGluIHJlc3BvbnNlIHRvIE1hdHRoZXcgQm9laG0nIEFzdGVyaXNrIHByb2JsZW0pCgoyMDA1LTA2LTEwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDNDExMwoKMjAwNS0wNi0xMCAxNjowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9ydW46CgogICBhcHBseSB0ZXN0aW5nLXJmYzEyMTMtcnVuLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxNTo1NyAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlIHRoZSBVRFAtTUlCIHRvIGp1c3QgcHVibGlzaGVkIFJGQzQxMTMKCjIwMDUtMDYtMTAgMTU6NTQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXBwbHkgdGVzdGluZy10ZXN0Y29uZi5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYXBwbHkgYWdlbnQtaGVscGVycy1tYWtlZmlsZS5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGluaXQgaGFuZGxlciBmb3IgYWdlbnR4c29ja2V0IGZvciBzdWJhZ2VudHMgdG9vCgoyMDA1LTA2LTEwIDEwOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFlldCBBbm90aGVyIEF0dGVtcHQgdG8gZmluZCB0aGUgY29ycmVjdCBxdW90aW5nIG9mIGNvbmZpZ3VyZSBvcHRpb25zLgoKMjAwNS0wNi0xMCAwNzozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgVXBkYXRlIHRvIHVzZSB0aGUgcmVuYW1lZCBpbnRlcm5hbCBhbmQgbGlicmFyeSBxdWVyeSBBUEkgY2FsbHMuCgoyMDA1LTA2LTEwIDA3OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBUd2VhayB0aGUgc3BlY2lmaWNhbGx5IGFnZW50LWludGVybmFsIHF1ZXJ5IHJvdXRpbmVzIHRvIHVzZSB0aGUgU05NUAogICBsaWJyYXJ5IHZlcnNpb25zLgoKMjAwNS0wNi0xMCAwNzoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTW92ZSAoYW5kIHJlbmFtZSkgc2Vzc2lvbi1iYXNlZCAiaW50ZXJuYWwgcXVlcnkiIEFQSSBjYWxscyBpbnRvIHRoZSBTTk1QCiAgIGxpYnJhcnksIHNvIHRoZXkncmUgYXZhaWxhYmxlIGFzIGEgY29udmVuaWVuY2UgdG8gYWxsIFNOTVAgYXBwbGljYXRpb25zLgoKMjAwNS0wNi0xMCAwNTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciAiaXAiIGludGVyZmFjZXMgdG8gU1VOVjMtb25seSBjb2RlIGJsb2NrLgogICBOby1vbmUgY2FuIHJlbWVtYmVyIHdoYXQgdGhpcyB3YXMgaW50ZW5kZWQgZm9yLCBhbmQgaXQgYnJlYWtzCiAgIExpbnV4IElQdjYgdHVubmVsIGludGVyZmFjZXMuCgoyMDA1LTA2LTEwIDA0OjIzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBhdXRoZW50aWNhdGlvbi9lbmNyeXB0aW9uIGZsYWdzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBjb21tYW5kcy4KICAgSW4gZmFjdCwgdHJlYXRzICctQS8tYScgYXMgZXF1aXZhbGVudCwgYW5kIHVzZXMgdGhlIHZhbHVlIHRvIGRpc3Rpbmd1aXNoCiAgIGJldHdlZW4gcHJvdG9jb2xzIGFuZCBwYXNzIHBocmFzZXMuICAoQW5kIHNpbWlsYXJseSBmb3IgLVgvLXgpCgoyMDA1LTA2LTA5IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyAxMjA3MDIzOiBzbm1wZCBjcmFzaCBvbiB0Y3AgZGlzY29ubmVjdAoKMjAwNS0wNi0wOSAxNzoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBtb3ZlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgc2l6ZSBjaGVja3MgdG8gc25tcF9zZXRfdmFyX3ZhbHVlCiAgICAgLSB1c2Ugc25tcF9zZXRfdmFyX3ZhbHVlIGluIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUKCjIwMDUtMDYtMDkgMTE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBhZGQgaXB2NiBzdXBwb3J0CgoyMDA1LTA2LTA5IDExOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIHJlbmFtZSBwYXJhbSwgdXBkYXRlIGRvY3MsIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDUtMDYtMDkgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIEltcGxlbWVudCBwYXJzaW5nIG9mIHRoZSAiYXQiIGFuZCAiY3JvbiIgY29uZmlnIGRpcmVjdGl2ZXMuCiAgIFRoZXNlIHN0aWxsIGRvbid0IGFjdHVhbGx5IHdvcmssIGJ1dCB5b3UgY2FuJ3QgaGF2ZSBldmVyeXRoaW5nLi4uLgoKMjAwNS0wNi0wOSAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgRml4IHBhcnNpbmcgb2YgInJlcGVhdCIgZGlyZWN0aXZlLgoKMjAwNS0wNi0wOSAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29yZS5oOgoKICAgSXQgd291bGQgYmUgdmFndWVseSBoZWxwZnVsIGlmIEkga25ldyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiAgIGhvdXJzIGFuZCBtb250aHMsIGFuZCBob3cgbWFueSBvZiBlYWNoIHRoZXJlIHdlcmUhCgoyMDA1LTA2LTA5IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBEaXNhYmxlIHRlc3RpbmcgY29kZS4KICAgKGluaXRpYWxpc2luZyB0aGUgbGlicmFyeSB0b28gZWFybHkgYnJlYWtzIGNvbmZpZyBmaWxlIHByb2Nlc3Npbmc6LSgpCgoyMDA1LTA2LTA4IDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBza2lwIGlwdjYgY29kZSBpZiBpcHY2IG5vdCBlbmFibGVkOyBub3RlZCBvbiBjb2RlcnMgYnkgZWlyaWsgbm9yZGJyb2RlbgoKMjAwNS0wNi0wNyAxMDoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4uaCwgZGlzbWFuL3NjaGVkQ29uZi5jLAogICAgIGRpc21hbi9zY2hlZENvbmYuaCwgZGlzbWFuL3NjaGVkQ29yZS5jLAogICAgIGRpc21hbi9zY2hlZENvcmUuaCwgZGlzbWFuL3NjaGVkVGFibGUuYywKICAgICBkaXNtYW4vc2NoZWRUYWJsZS5oLCBkaXNtYW4vc2NoZWR1bGUuaDoKCiAgIFByZWxpbWluYXJ5IChhbmQgaW5jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBTY2hlZHVsZSBNSUIuCgoyMDA1LTA2LTA2IDA1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBVdGlsaXR5IHJvdXRpbmVzIGZvciBtYWtpbmcgImludGVybmFsIHF1ZXJpZXMiLCB0byByZXRyaWV2ZSBvciBhc3NpZ24KICAgdmFsdWVzIGZyb20gZWxzZXdoZXJlIGluIHRoZSBjdXJyZW50IGFnZW50LgoKMjAwNS0wNi0wNiAwNToyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIGRlZmF1bHRzIGZyb20gdGhlIHNlc3Npb24gc3RydWN0dXJlLgogICBUaGlzIGFsbG93cyBjb21tdW5pdHktYmFzZWQgUERVcyB0byBiZSBzZW50IG92ZXIgYSBjYWxsYmFjayB0cmFuc3BvcnQuCgoyMDA1LTA2LTAyIDE5OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVsYXkgU05NUHYzIEVuZ2luZUlEIHByb2JlIHVudGlsIG5lZWRlZAoKMjAwNS0wNi0wMiAxOToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkvcmUtYXBwbHkgZml4IGZvciBidWcgMTEwMzY0NCwgRnJlZUJTRCBtZW1vcnkgbGVhawoKMjAwNS0wNi0wMiAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIG11bHRpcGxleGVyLmMsCiAgICAgbnVsbC5jLCByZWFkX29ubHkuYzoKCiAgIGFwcGx5IHBhdGNoIDEyMTA2MzI6IFJlcGxhY2UgbmV0c25tcF9zZXRfYWxsX3JlcXVlc3RzX2Vycm9yCgoyMDA1LTA1LTMwIDE3OjIxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIDQwNDQ6IEZDLU1HTVQtTUlCCgoyMDA1LTA1LTMwIDE3OjE3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IElBTkEgdmVyc2lvbgoKMjAwNS0wNS0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjb21taXQgbWlzc2luZyBzdHJ0b2tfciBjaGFuZ2VzICpjb3VnaCoKCjIwMDUtMDUtMjMgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFwcGxpZWQgbWlub3IgYnVnIGZpeC9kb2MgcGF0Y2hlcyBmcm9tIFRob21hcyBBbmRlcnMgaW4gIzEyMDY5ODIKCjIwMDUtMDUtMjMgMTY6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBVc2UgbWtzdGVtcCBhcHByb3ByaWF0ZSB0byBnZW5lcmF0ZSB0ZW1wIGZpbGVzCgoyMDA1LTA1LTIwIDEwOjAzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQnJpbmcgJy1IJyBpbml0aWFsaXNhdGlvbiBpbnRvIGxpbmUgd2l0aCBub3JtYWwgc3RhcnR1cC4KCjIwMDUtMDUtMTYgMTU6NTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIERvbid0IGF1dG8tYnVpbGQgZGVwZW5kZW5jaWVzLiAgU3BlY2lmeSBhIGxpc3QgaW5zdGVhZC4KCjIwMDUtMDUtMTYgMTU6NDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBIGJpdCBvZiByZW51bWJlcmluZy4KCjIwMDUtMDUtMTYgMTU6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHJlbGVhc2UgcHJvZHVjZXIgc2NyaXB0CgoyMDA1LTA1LTExIDE5OjUxICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwbyBpbiBjb21tZW50CgoyMDA1LTA1LTExIDEwOjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IGh0bWxoZWxwL05ldC1TTk1QLmhoYywgaHRtbGhlbHAvTmV0LVNOTVAuaGhwCiwgc2NyaXB0cy9yZWFkbWUyaHRtbDoKCiAgIEFkZCBSRUFETUUuYWdlbnQtbWlicyB0byBXaW5kb3dzIGJpbmFyeQoKMjAwNS0wNS0xMSAwNToyMCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE1vcmUgUkZDcyB3aXRoIE1JQnMKCjIwMDUtMDUtMTAgMjE6MTMgIGFsZXhfYgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIHNubXBjb25mOiBBbGxvdyBTTk1QQ09ORlBBVEggdG8gaGF2ZSBtdWx0aXBsZSBwYXRocyBkZWZpbmVkIHN1Y2ggYXMgd2hlbiB0aGUKICAgcGVyc2lzdGVudCBmb2xkZXIgaXMgaW5jbHVkZWQuICBzbm1wY29uZiB3aWxsIGFsc28gZGV0ZXJtaW5lIHRoZSBjb25maWd1cmVkCiAgIHBlcnNpc3RlbnQgZm9sZGVyIGFuZCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgdHJlYXRlZCBhcyBhIHJlZ3VsYXIgY29uZmlndXJhdGlvbgogICBmaWxlLgoKMjAwNS0wNS0xMCAyMDo0NCAgYWxleF9iCgogICAqIE5FV1M6CgogICBBZGQgZml4ZXMgdG8gTkVXUyBmb3IgbmV4dCByZWxlYXNlCgoyMDA1LTA1LTA5IDIxOjA3ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA5IDIwOjUzICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBUaGUga2VybmVsIGxpdmVzIGluIC9ib290L2tlcm5lbC9rZXJuZWwgb24gcmVjZW50IEZyZWVCU0QncwoKMjAwNS0wNS0wOSAxOTozNSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUudHh0LAogICAgIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgYmluYXJ5OiBBZGQgcGVyc2lzdCBmb2xkZXIgdG8gU05NUENPTkZQQVRICgoyMDA1LTA1LTA5IDE5OjAwICBhbGV4X2IKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGQuOC5kZWYsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLVBlcnNpc3RlbnQgZmlsZXMgd2VyZSBub3QgYmVpbmcgcmVhZCBhdCBzdGFydHVwIHdoZW4gdXNpbmcKICAgc25tcC5jb25mIHBlcnNpc3RlbnREaXIKICAgLVVwZGF0ZSBwZXJzaXN0ZW50IHN0b3JhZ2Ugc2VjdGlvbnMgb2Ygc25tcF9jb25maWcgYW5kIHNubXBkCiAgIG1hbiBwYWdlcwoKMjAwNS0wNS0wOSAxODo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgdXNlIG1vcmUgZmxleGlibGUgY3NzIGZvciBtYXJrdXAgYW5kIGFsbG93IGEgcGFzc2VkIGluIGZpbGUKCjIwMDUtMDUtMDkgMTg6MTIgIGFsZXhfYgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIEZhYmFzb2Z0IFImRCBTb2Z0d2FyZSAoYykgbm90aWNlCgoyMDA1LTA1LTA5IDE2OjM3ICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGRldGVjdCBleHRyYSBhcmd1bWVudHMKCjIwMDUtMDUtMDkgMTY6MzMgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgc25tcGdldCA9PiBzbm1wZGYKCjIwMDUtMDUtMDkgMTY6MjEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgNDAwOCBpcyBOQVQtTUlCCgoyMDA1LTA1LTA5IDE2OjIwICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRmluZCBkZWNsYXJhdGlvbnMgZm9yIHNpZ2hvbGQvc2lnc2V0L3NpZ3BhdXNlCgoyMDA1LTA1LTA5IDE2OjE4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBFbnN1cmUgMC10ZXJtaW5hdGlvbiBvZiByZWFkIGZpbGUgZGF0YQoKMjAwNS0wNS0wOSAxNjoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRGV0ZWN0IHRvbyBtYW55IGRlZmluZWQgcGVlcnMuIFByb3Blcmx5IHBhcnNlIHN5bWJvbGljIHBlZXJzCgoyMDA1LTA1LTA5IDE2OjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBOZWVkZWQgZXh0ZXJuYWwKCjIwMDUtMDUtMDkgMTY6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBGaXggZm9ybWF0IHdhcm5pbmcKCjIwMDUtMDUtMDkgMTY6MDkgIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBmb3IgaW5zdGFsbGluZyByZW1vdGUgZnJvbSBzb3VyY2UgZGlyCgoyMDA1LTA1LTA5IDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgRml4IGZvciBOZXRCU0QKCjIwMDUtMDUtMDkgMTY6MDEgIG5iYQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBHZW5lcmF0ZWQKCjIwMDUtMDUtMDkgMTU6NDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBGaXhlcyBmb3IgTmV0QlNEL0ZyZWVCU0QgZm9yIHN3YXAgZGF0YQoKMjAwNS0wNS0wOSAxNToxNyAgbmJhCgogICAqIGFjY29uZmlnLmg6CgogICBGaXggbWluZ3cgdGVzdCB0aGF0IHdhcyBvbmx5IGFwcGxpZWQgdG8gbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMDUtMDUtMDkgMTU6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBib2d1cyBwcmVwcm9jZXNzb3IgaWYKCjIwMDUtMDUtMDkgMDQ6NTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIElsbHVzdHJhdGUgaGFuZGxpbmcgb2YgY2FjaGVkIHRhYmxlcyB1c2luZyB0aGUgdGFibGVfZGF0YSBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTA5IDA0OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBFeHRyYWN0IHJlcXVpcmVkIHRhYmxlIHN0cnVjdHVyZXMgd2hlbiBwcm9jZXNzaW5nIFJvd1N0YXR1cyBhc3NpZ25tZW50cy4KCjIwMDUtMDUtMDkgMDQ6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIEZpeCB0YWJsZSBtYXgvbWluIGNvbHVtbiByZWdpc3RyYXRpb24uCgoyMDA1LTA1LTA2IDE1OjE0ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA2IDE1OjExICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBQbGFjYXRlIGF1dG9jb25mMjU5IGJ5IHRlc3RpbmcgYW5kIGluY2x1ZGluZyA8dm0vdm0uaD4gYmVmb3JlIHRlc3RpbmcKICAgPHZtL3N3YXBfcGFnZXIuaD4KCjIwMDUtMDUtMDUgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMDY0NDMgZnJvbSB0b2xnYSBjZXlsYW4gdG8gdXNlIGEgcHJvcGVyIHJldHVybiBjb2RlIGNoZWNrIGZvciBnZXRLc3RhdEludAoKMjAwNS0wNS0wNSAyMDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQXBwbGllZCBwYXRjaCAjMTEwOTcxMiB0byBmaXggVlBBVEggZm9yIHJjIGZpbGVzIG9uIGN5Z3dpbgoKMjAwNS0wNS0wNSAxOTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzExMTA1NzEgZnJvbSBLYXRzdWhpc2EgQUJFIHRvIHNldCBpcHY2IHRjcCBzb2NrZXRzIHRvIGlwdjYgb25seSBpZiBwb3NzaWJsZQoKMjAwNS0wNS0wNSAxOTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQXBwbGllZCBwYXJ0IG9mIHBhdGNoICMxMTEwNjEwIGZyb20gUGV0ZXIgQnJlaXRlbmxvaG5lciBmb3IgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMDUtMDUgMTk6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgICBzbm1wbGliL21pYi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyMzI0MiBmcm9tIE1pa2UgTWNIZW5yeSB0byBhZGQgbWliMnNjaGVtYSBjb21wbGlhbnQgb3V0cHV0IHRvIHNubXB0cmFuc2xhdGUKCjIwMDUtMDUtMDUgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyNDU2OSBmcm9tIE1hcmN1cyBNZWlzc25lciB0byBkeW5hbWljYWxseSBkZWNpZGUgaG93CiAgIG1hbnkgY3B1cyB0aGVyZSBvbiBsaW51eCBhbmQgdG8gYmV0dGVyIHBhcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCiAgICAgLSBtb2RpZmllZCB0byBiZSBjb21wbGlhbnQgd2l0aCBBTlNJIGFuZCB0aGUgY29kaW5nIHN0eWxlLgoKMjAwNS0wNS0wNSAxOToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoICMxMDYyMTE0IGJ5ICJzbm1wcG9ydGFsIiB0byBjbGVhbiB1cCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA1LTA1LTA1IDA3OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzExMTcyNzEgKHZhcmlhbnQpIC0gY2hlY2sgdGhlIGJ1ZmZlciBsZW5ndGggd2hlbiBmb3JtYXR0aW5nCiAgIGFuIHVwdGltZSBzdHJpbmcgKHRob3VnaCB3aXRob3V0IGNoYW5naW5nIHRoZSBleGlzdGluZyBBUEkgY2FsbCkuCgoyMDA1LTA1LTA1IDA1OjA3ICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSBhZGRpdGlvbmFsIGdlbmVyYXRlZCBjbGllbnQgbWFuIHBhZ2VzCgoyMDA1LTA1LTA0IDIwOjU4ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA0IDIwOjU2ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGFjY3VtdWxhdGVkIHdpc2RvbSBvZiB0aGUgcHJldmlvdXMgQUNfSEVBREVSQ0hFQ0tTIGZvcgogICBIQVZFX05FVElORVRfSVBfSCwgSEFWRV9ORVRJTkVUX0lGX0gsIEhBVkVfTkVUSU5FVF9JUF9JQ01QX0ggYW5kCiAgIEhBVkVfTkVUSU5FVF9VRFBfSCAoaW4gYWRkaXRpb24gdG8gdGhlIG9uZXMgYWxyZWFkeSBwcmVzZW50KS4KICAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgb24gRnJlZUJTRCA1LjMgYW5kIDQuMTAgKGJ1dCB0aGUgbGF0dGVyCiAgIHN0aWxsIGlzbid0IHBsYXlpbmcgd2l0aCB0aGUgZnVsbCB2bV9zd2FwIGRlY2spLgoKMjAwNS0wNS0wNCAyMDo0OCAgZHJpZWh1aXMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIEZyZWVCU0QgNS4zIGlzIHJlYWxseSB1bmhhcHB5IGFib3V0IGdldHRpbmcgX0tFUk5FTCBkZWZpbmVkLiBCeSBmb3JjaW5nCiAgIElGTkVUX05FRURTX0tFUk5FTCBvZmYgd2UgZml4IHRoYXQgKGFmdGVyIGFsbCwgZGVmaW5pbmcgX0tFUk5FTCByZWFsbHkKICAgaXMgYSBncm9zcyBoYWNrIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCBwcm9wZXJseSBleHBvcnQgc3lzdGVtCiAgIGludGVybmFscyAtLSBmYW1vdXMgbGFzdCB3b3JkczotKQoKMjAwNS0wNS0wNCAxMTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBQYXRjaCAjMTEyNDY1Mjogb3B0aW9ucyB0byBleHBsaWNpdGx5IGluY2x1ZGUvZXhjbHVkZSBlbGYgYW5kIGJ6aXAgbGlicmFyaWVzCgoyMDA1LTA1LTA0IDExOjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQYXRjaCAjMTA0MjQ0NyAtIGNsb25lIHplcm8tbGVuZ3RoLCBub24tTlVMTC1wb2ludGVyIHN0cmluZ3MuCgoyMDA1LTA1LTA0IDA4OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCAjMTA1MTAwMSAtIHNraXAgdW5uZWNlc3NhcnkgY2FsbCB0byAnYXV0b19ubGlzdCcgdW5kZXIgTmV0QlNECgoyMDA1LTA1LTA0IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50Lmg6CgogICBQYXRjaCAjMTA5NjQ3OSAtIGZpeCBkZWNsYXJhdGlvbiBvZiBpbml0aWFsaXNhdGlvbiByb3V0aW5lLgoKMjAwNS0wNS0wNCAwODo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBQYXRjaCAjMTA5NjQ4MyAtIGZpeCBhIG1pbm9yIGluY29uc3Rpc3RlbmN5CgoyMDA1LTA1LTA0IDA4OjIyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBQYXRjaCAjMTEwMzc1MSAtIHNraXAgZWRpdG9yIGJhY2t1cHMgd2hlbiBsb2FkaW5nIE1JQiBmaWxlcy4KCjIwMDUtMDUtMDQgMDg6MDcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzExMDk3MTk6IFJlbW92ZSAoYXBwYXJlbnRseSkgcmVkdW5kYW50IHF1b3Rpbmcgb2YgY29uZmlndXJlIG9wdGlvbnMuCiAgIFRoaXMgcXVvdGluZyB3YXMgaW50cm9kdWNlZCBlYXJseSBpbiB0aGUgdjUgbGlmZXRpbWUgdG8gc3VwcG9ydCAib3B0aW9ucwogICBjb250YWluaW5nIHNwYWNlcyIgKHNlZSByZXZpc2lvbiA1LjI2KS4gIFNpbXBsZSB0ZXN0aW5nIHNlZW1zIHRvIGluZGljYXRlCiAgIHRoYXQgaXQncyBubyBsb25nZXIgbmVlZGVkLCBhbmQgaXQgYnJlYWtzIEFJWCAocG9zc2libHkgYW1vbmcgb3RoZXJzKSwgc28KICAgbGV0J3MgdHJ5IHdpdGhvdXQgaXQuCiAgICAgSWYgbm8tb25lIGNvbXBsYWlucywgdGhpcyBwYXRjaCBtYXkgbmVlZCB0byBiZSBhcHBsaWVkIHRvIHRoZSBvdGhlciBicmFuY2hlcwogICBhcyB3ZWxsLgoKMjAwNS0wNS0wNCAwNzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggIzExMTgxMzIgLSBoYW5kbGUgZGlzYXBwZWFyaW5nIExpbnV4IHByb2Nlc3Nlcy4KCjIwMDUtMDUtMDQgMDY6NDIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCAjaWZkZWYgdHlwbwoKMjAwNS0wNS0wNCAwNjoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgUGF0Y2ggIzExMTcyNzYgLSB0d2VhayBFVlBfRGlnZXN0RmluYWwgcGFyYW1ldGVycyB0byBtYXRjaCBleHBlY3RlZCB0eXBlcy4KCjIwMDUtMDUtMDQgMDY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBQYXRjaCAjMTExNzI2NSAtIG9wZW4gZGV2aWNlcyB3aXRoIE5ERUxBWSB3aGVuIHBvc3NpYmxlLgogICBBdm9pZHMgYWdlbnQgaGFuZ2luZyBvbiBtaXNzaW5nIHJlbW92YWJsZSBkZXZpY2VzLgoKMjAwNS0wNS0wMyAxODoyNiAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IEFwcGx5IHBhdGNoIDExNTMyNzEgYnkgRWtrZWhhcmQgRG9tbmluZyBmb3Igc25tcGQgcGFzc19wZXJzaXN0IHN1cHBvcnQKICAgZm9yIE1TVkMuICBBcHBseSBwYXRjaCBiYXNlZCBvbiAxMTUzMjcxIGZvciBwYXNzIHN1cHBvcnQgZm9yIE1TVkMgYW5kIE1pbkdXLgoKMjAwNS0wNS0wMyAxMDozOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBVc2UgdGhlIHdhdGNoZWQgc2NhbGFyIGhlbHBlciAocmF0aGVyIHRoYW4gc3BlY2lhbGlzZWQgaW5zdGFuY2UgaGVscGVycykKICAgZm9yIGltcGxlbWVudGluZyBpbnRlZ2VyLWJhc2VkIHNjYWxhciBvYmplY3RzLiAgUGlja3MgdXAgb24gdW5zaWduZWQKICAgaW50ZWdlciBvYmplY3RzLCBhcyB3ZWxsIGFzIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gcmVhZC1vbmx5L3JlYWQtd3JpdGUKICAgTUlCIGRlZmluaXRpb25zLgoKMjAwNS0wNS0wMyAxMDoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgSWxsdXN0cmF0ZSBoYW5kbGluZyBvZiBjYWNoZWQgdGFibGVzIHVzaW5nIHRoZSBpdGVyYXRvciBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTAzIDEwOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgU3Rhc2ggbG9va3VwIGRlYnVnZ2luZyBjb2RlLgoKMjAwNS0wNS0wMyAxMDoxOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIENvbnZlbmllbmNlIHNpbmdsZS1jYWxsIEFQSXMgZm9yIGludGVnZXItYmFzZWQgd2F0Y2hlZCBzY2FsYXJzLgogICAoTW9kZWxsZWQgb24gdGhlIGV4aXN0aW5nIGluc3RhbmNlLWJhc2VkIGNhbGxzKS4KCjIwMDUtMDUtMDMgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUHJvdmlkZSBhICh0cml2aWFsKSBnZXRfe2ZpcnN0LG5leHR9IEFQSS4KICAgTm90IHN0cmljdGx5IG5lY2Vzc2FyeSBpbiBpdHNlbGYsIGJ1dCBzaG91bGQgYWlkIHRoZQogICB0cmFuc2l0aW9uIHRvIGEgY29udGFpbmVyLWJhc2VkIHRhYmxlX2RhdGEgc3R5bGUuCgoyMDA1LTA1LTAyIDIwOjQyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgQWRkIGxpbWl0cy5oIGhlYWRlciBmaWxlCgoyMDA1LTA1LTAyIDE4OjQ2ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBmZF9ldmVudF9tYW5hZ2VyLltjaF0KCjIwMDUtMDUtMDEgMTM6NDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBGaXggc3lzRGVzY3Igc3VwcG9ydCBmb3IgTWluR1cKCjIwMDUtMDUtMDEgMDk6MjAgIGFsZXhfYgoKICAgKiBsb2NhbC9wYXNzdGVzdC5wbDoKCiAgIEFkZGVkIFBlcmwgdmVyc2lvbiBvZiAvbG9jYWwvcGFzc3Rlc3Qgc2hlbGwgc2NyaXB0CgoyMDA1LTA0LTMwIDIwOjM4ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQ3lnd2luOiBBZGQgbWlzc2luZyByZWdpc3RyeSBzdXBwb3J0IGZvciBTTk1QQ09ORlBBVEggZXRjLgoKMjAwNS0wNC0zMCAyMDozNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgLVJlbW92ZSAnZGVmaW5lIFdJTjMyJyBmb3IgQ3lnd2luIGFuZCBjaGFuZ2UgaWZkZWZzIHRvIGNoZWNrIGZvciBlaXRoZXIKICAgV0lOMzIgb3IgY3lnd2luLgogICAtQWRkIHNlY3Rpb24gdG8gUkVBRE1FLndpbjMyIGRlc2NyaWJpbmcgdGhlIHZhcmlvdXMgV2luZG93cyBkZWZpbmVzLgogICAtQWRkIG5vdGUgdG8gUkVBRE1FIGZpbGVzIGFib3V0IHNwYWNlcyBpbiBmb2xkZXIgbmFtZXMgd2hlbiBjb21waWxpbmcuCgoyMDA1LTA0LTMwIDE4OjM2ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMDQtMjkgMTI6MTQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjMTE0OTQyMCAtIHVzZSBuZXcgZXh0ZXJuYWwgZmQgaGFuZGxlciByb3V0aW5lcywKICAgdG8gcGF2ZSB0aGUgd2F5IGZvciBtb3JlIGludGVncmF0ZWQgdHJhcCBoYW5kbGVycy4KCjIwMDUtMDQtMjkgMTI6MTIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmg6CgogICBQYXRjaCAjMTE0OTQyMCAtIHNlcGFyYXRlIGV4dGVybmFsIGZkIGhhbmRsaW5nIG9mZiBpbnRvCiAgIGEgZGlzdGluY3QgbGlicmFyeSBtb2R1bGUuICBTdWJtaXR0ZWQgYnkgU3RlbiBKLiBPbHNzb24KCjIwMDUtMDQtMjkgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIFBhdGNoICMxMTU0NDg4IC0gb3B0aW9uIHRvIHNwZWNpZnkgcHJpb3JpdHkgb2YgInBhc3MiIHByb2Nlc3NpbmcKCjIwMDUtMDQtMjkgMTE6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQXBwbHkgcGF0Y2ggIzExNTUzMzcgLSBmaXggZGlza0lPIGF2ZXJhZ2Ugc3VwcG9ydCBmb3IgRnJlZUJTRDUKCjIwMDUtMDQtMjcgMjA6MjIgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgV2luMzIgTVNWQzogQWJvcnQgY29tcGlsZSBpZiBhIHNwYWNlIGlzIGRldGVjdGVkIGluIHRoZSBiYXNlIGZvbGRlcgogICB3aGVuIGNvbXBpbGluZy4KCjIwMDUtMDQtMjcgMjA6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE1hc3NpdmUgZGVidWdnaW5nIG9mIG1lbW9yeSBsZWFrcy4gIEl0IGlzIG5vdyBtZW1vcnktbGVhayBmcmVlIQoKMjAwNS0wNC0yNyAyMDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZnJlZSB0aGUgc3ViLW5hbWUgaWYgbm90IGF0dGFjaGVkIHRvIHRoZSBwYXJlbnQgc3RydWN0dXJlLgoKMjAwNS0wNC0yNyAxODo1NSAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ3lnd2luOiBSZXBsYWNlIFBJRF9aT01CSUUgcmVmZXJlbmNlcyBhcyB0aGUgZmxhZyB3YXMgcmVtb3ZlZCBmcm9tCiAgIEN5Z3dpbiBpbiBtaWQgSmFuIDIwMDUuCgoyMDA1LTA0LTI2IDE4OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgLSBzeW5jIHNvbWUgY29tbWVudHMKICAgLSBmaXggaGFuZGxpbmcgb2YgT0lEcyBpbiByb3dfY29weSBjb2RlLCBub3RlZCBvbiBJUkMgYnkgZGF2ZWpfCgoyMDA1LTA0LTI1IDEyOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgdXBkYXRlIHRhYmxlX2l0ZXJhdG9yIHRvIHVzZSB2YWxpZF9jb2x1bW4gaW5mbwoKMjAwNS0wNC0yMiAxMToxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiBub24taW50ZWdlci1iYXNlZCBvYmplY3RzIGluIHRhYmxlX2RhdGEgdGVtcGxhdGUgY29kZS4KCjIwMDUtMDQtMjIgMTE6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIElmIGFuIGluc3RhbmNlLWJhc2VkIGhhbmRsZXIgcmV0dXJucyBhbiBlcnJvciBmb3IgYSBHZXROZXh0IHJlcXVlc3QsCiAgIHdlIG5lZWQgdG8gc2tpcCBvbiB0byB0aGUgbmV4dCB2YWxpZCBpbnN0YW5jZS4KCjIwMDUtMDQtMjIgMTA6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZhaWx1cmUgdG8gY3JlYXRlIGluaXRpYWwgdXNlci4KCjIwMDUtMDQtMjEgMTI6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGRvbid0IHRyYWNrIGRlYnVnIHN0YXRzIGJ5IGRlZmF1bHQ7IGFkZCBzdGF0cyBwcm90b3R5cGVzCgoyMDA1LTA0LTIxIDEwOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0CiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCAxMDg1MjQzOiBBZGQgNjQtYml0IGNvdW50ZXJzIHRvIGRpc2tJT1RhYmxlCgoyMDA1LTA0LTIxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBpbml0IHN0YXQgcHRyIHRvIG51bGwKCjIwMDUtMDQtMjEgMTA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIC0gc3RhdGljIGRlbGV0ZV9kdXBsaWNhdGVzIC0+IHB1YmxpYyBuZXRzbm1wX2NhbGxiYWNrX2NsZWFyX2NsaWVudF9hcmcKICAgLSB0YWJzIHRvIHNwYWNlcwoKMjAwNS0wNC0yMSAxMDoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgYWRkL3VzZSBjYWxsYmFjayBwcmlvcml0eSBtYWNyb3MKCjIwMDUtMDQtMjEgMTA6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbiBleGNsdXNpb24KCjIwMDUtMDQtMjEgMDk6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBza2lwIGV4Y2x1ZGVkIHRva2VucyAodGlsIG1pYiBpcyB1cGRhdGVkKQoKMjAwNS0wNC0yMCAyMzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdXBkYXRlIGZvciBjaGFuZ2UgdG8gY3R4IGluaXQgZGVmYXVsdAoKMjAwNS0wNC0yMCAyMzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBjb2RlIGZvciBERUZWQUxzIGluIGN0eCBpbml0CgoyMDA1LTA0LTIwIDIzOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBkZWZhdWx0IHRvIGdlbmVyYXRlIGN0eCBpbml0CgoyMDA1LTA0LTIwIDE5OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBhZGQgbm90ZSBvbiBpbmRleCBhdHRyaWJ1dGVzIGFscmVhZHkgdGVzdGVkCgoyMDA1LTA0LTIwIDE4OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggY29tbWVudHMKICAgLSByZXZhbXAgY2hlY2tfaW5kZXhlcyB0byBkbyBiYXNpYyB2YWxpZGF0aW9uIGJlZm9yZSBjYWxsaW5nIHVzZXIgZnVuYwogICAtIGV4cGxpY2l0IG5vdCB3cml0YWJsZSBjYXNlIGZvciBpbmRleC9yZWFkLW9ubHkgdmFycyBpbiBzZXQgY29scwoKMjAwNS0wNC0yMCAxODo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgYWRkIGNvbW1lbnRzIGluIGluZGV4IGhhbmRsaW5nIGZ1bmN0aW9uIGhlYWRlcnMKCjIwMDUtMDQtMjAgMTg6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC0gcmVtb3ZlIGhhcmRjb2RlZCB0YWJsZSBuYW1lCiAgIC0gcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUKICAgLSBhZGQgc29tZSBjb21tZW50cwogICAtIGRlZmluZSBwcm90b3R5cGUgYmVmb3JlIHVzZQogICAtIGZpeCBiYWNrIGZ1bmN0aW9uIG5hbWUKICAgLSBmaXggdG9vIG1hbnkgcGFyYW1zIGZvciBmdW5jdGlvbgoKMjAwNS0wNC0yMCAxODo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG5vZGUtdmFsaWRhdGUubTJpLAogICAgIG5vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICAtIGJyZWFrIHZhbHVlIHZhbGlkYXRpb24gb3V0IG9mIHZhcmJpbmQtdmFsaWRhdGUKICAgLSBjb21wYXJlIHZhbHVlcy9sZW5ndGhzIGRpcmVjdGx5LCBpbnN0ZWFkIG9mIGNhbGxpbmcgZnVuY3Rpb24KICAgLSBkZXRlY3QvaGFuZGxlIHJhbmdlcyB0aGF0IGFyZSByZWFsbHkgc2luZ2xlIHZhbHVlcwoKMjAwNS0wNC0yMCAxODozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGZpeCBkaXJlY3RvcnkgY29weQoKMjAwNS0wNC0yMCAxNTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZnJlZSBzdHJpbmcgcGFzc2VkIHRvIHBlcmwgYWZ0ZXIgaXQncyBwYXNzZWQKCjIwMDUtMDQtMjAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgYWRkIHdhdGNoZWQgZXhhbXBsZQoKMjAwNS0wNC0yMCAxNDowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICAtIGFkZCBleGFtcGxlIHN0cmluZyB0byBtaWIKICAgLSBhZGQgZXhhbXBsZSBvZiBhIHdhdGNoZWQgc3RyaW5nCgoyMDA1LTA0LTE5IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKCjIwMDUtMDQtMTggMTg6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQoKMjAwNS0wNC0xOCAxODoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgLSBmaXhlcyBmb3IgY3JlYXRlX2Zld2VyX2ZpbGVzIHNldHRpbmcKICAgLSBkZWZpbmUgdGFibGUgbmFtZSBvbmNlLCBhdCB0b3AsIGZvciBxdWlja2VyIHVwZGF0aW5nCgoyMDA1LTA0LTE4IDE4OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAtIGFkZCB0b3AvdGFibGUgbGV2ZWwgc2h1dGRvd24gZnVuY3Rpb25zCiAgIC0gZGVmaW5lIHVzZXIgY29udGV4dAoKMjAwNS0wNC0xOCAxODoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIC0gdXNlIG5ldyBtMmNfZGF0YV9jYWNoZSB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIGdlbmVyYXRlIGNhY2hlIGNvZGUKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IHRhYmxlIGNvbnRhaW5lcgogICAtIG1vc3QgY2FjaGVfKiBmdW5jdGlvbnMgcmVuYW1lZCB0byBjb250YWluZXJfKjsgcmVtYWluaW5nIGNhY2hlIHZlcnNpb25zCiAgICAgY2FsbCBjb250YWluZXIgdmVyc2lvbnMKICAgLSBhZGQgdGFibGUvY29udGFpbmVyIHNodXRkb3duIGZ1bmN0aW9ucwoKMjAwNS0wNC0xOCAxODowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIG1vdmUgaW5kZXhlc19zZXQgcmVhZG1lIGhlcmUgKGZyb20gY29udGFpbmVyLWNhY2hlZCkKCjIwMDUtMDQtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgLSBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQogICAtIHJlbW92ZSBoYXJkY29kZWQgbm9kZSBuYW1lCgoyMDA1LTA0LTE4IDE4OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgogICAgIC0gbmV3IG9wdGlvbnM6IGRhdGFfY2FjaGUsIGRhdGFfc3BhcnNlCiAgICAgLSBtb3JlIGludGVyYWN0aXZlIHF1ZXN0aW9uczoKICAgICAgIHNraXAgbWFwcGluZywgc3BhcnNlLCB1bmNhY2hlZCBjb250YWluZXIsIGdlbmVyYXRlIG1ha2VmaWxlL2FnZW50eAoKMjAwNS0wNC0xOCAxNzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgdHdlYWsgZXhjbHVzaW9uIG9mIG1hcHBpbmcgZnVuY3Rpb25zCgoyMDA1LTA0LTE4IDE3OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaToKCiAgIG5ldyBtMmkgdG8gc2F2ZSBhbGwgdGFibGUgZGVmYXVsdHMKCjIwMDUtMDQtMTggMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgoKMjAwNS0wNC0xOCAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIC0gY2hlY2sgZm9yIGJhZCBoZHIgbGVuCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHB0cgoKMjAwNS0wNC0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gdXNlIG5hbWVkIHZhcnMgaW5zdGVhZCBvZiBwb3NpdGlvbmFsLCBmb3IgY2xhcml0eQogICAtIHR3ZWFrcyB0byBjb3B5IHVwZGF0ZWQgZGVmYXVsdHMgZmlsZXMKCjIwMDUtMDQtMTUgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICBhZGQgY29uZmlnX2FkZF9taWIKCjIwMDUtMDQtMTQgMTg6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDQtMTQgMTc6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIGdlbmVyYXRpb24gb2YgZW1wdHkgaW5jbHVkZXMgb3V0c2lkZSBvZiBhZ2VudCBlbmFibGVkIGNvbmRpdGlvbmFsCgoyMDA1LTA0LTEzIDIyOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpOgoKICAgdXBkYXRlIHBhcmFtZXRlciBuYW1lcyB0byBiZSBpbmxpbmUgdy9ldmVyeW9uZSBlbHNlCgoyMDA1LTA0LTEzIDIyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBnZW5lcmF0ZSBpbmRleCBjaGVjayByb3V0aW5lcyBpZiB0YWJsZSBwZXJzaXN0ZW50IGlzIHNldAogICAtIGRvbid0IHJlZmVybmNlIHNldF9jb2x1bW5zIHVubGVzcyB0YWJsZSBzZXR0YWJsZQogICAtIGRvbid0IGNoZWNrL2luc2VydCBuZXcgcm93cyB1bm5sZXNzIHJvdyBjcmVhdGlvbiBpcyBzZXQKCjIwMDUtMDQtMTMgMjI6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1zZXQubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICAtIGdlbmVyYXRlIGluZGV4IGNoZWNrIHJvdXRpbmVzIGlmIHRhYmxlIHBlcnNpc3RlbnQgaXMgc2V0CiAgIC0gbW92ZSBpbmRleCBjaGVjayBmdW5jdGlvbnMgdG8gZGF0YSBhY2Nlc3MgZmlsZSBzbyB0aGV5IGNhbiBiZSB1c2VkIGJ5CiAgICAgdGhlIHBlcnNpc3RlbmNlIHJvdXRpbmVzCgoyMDA1LTA0LTEzIDA5OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaCwgaXAtbWliLmgKOgoKICAgYWRkIGFwcHJvcHJpYXRlIG1pYnMgdG8gZGVmYXVsdCBsb2FkIGxpc3QKCjIwMDUtMDQtMDggMTA6MzggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIGluZGV4IGFuZCByaW5kZXggZGVmaW5lcyBmb3IgTWluR1cgdG8gZml4IGNvbXBpbGUgcHJvYmxlbS4KCjIwMDUtMDQtMDcgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGFkZCBhcGkgZm9yIHJlZmVyZW5jZSBjb3VudGluZwogICAtIGFkZCBhcGkgdG8gZmluZCByb3cgZnJvbSB0YWJsZSBtaWIgaW5kZXggc3RydWN0CgoyMDA1LTA0LTA3IDE4OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGFzcyBpbiBoaW50IHRvIGdldF9maXJzdCBpZiBzb3J0ZWQgKHN1Z2dlc3RlZCBieSBNaWtlIFRoYXRjaGVyIG9uIGNvZGVycykKCjIwMDUtMDQtMDcgMTM6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBkb24ndCBkaXNhYmxlIGFsbCBmaWxlbG9ncyB3aGVuIGEgbmV3IG9uZSBpcyBlbmFibGVkLgogICAtIGFnYWluIHdpdGggdGhlIEMrKyBjb21tZW50cywgc28gdGhpcyBpcyByZS10aG91Z2h0IGJlZm9yZSA1LjMKCjIwMDUtMDQtMDYgMTI6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBleGNsdWRlIGN2cyBJZCBsaW5lcyBmcm9tIGRpZmYKCjIwMDUtMDQtMDYgMTE6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZW1vdmUgZXh0cmFuZW91cyA7CgoyMDA1LTA0LTA2IDExOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIG1pc3NpbmcgY29tbWVudCBjbG9zZQoKMjAwNS0wNC0wNiAxMToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IGNvbnRhaW5lciBzaXplCiAgIC0gdHJhY2sgdGFibGUgbGV2ZWwgZGlydHkgZmxhZyBmb3Igc2V0dGFibGUgdGFibGVzCiAgIC0gY2hlY2sgZGlydHkgJiBzdWNjZXNzIHRvIGNhbGwgc25tcF9zdG9yZSBmb3Igc2V0dGFibGUgcGVyc2lzdGVudCB0YWJsZXMKCjIwMDUtMDQtMDUgMTI6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gdXBkYXRlIGludGVyYWN0aXZlIHNldHVwIHRvIHByb21wdCBmb3IgcGVyc2lzdGVudCBzdG9yZQoKMjAwNS0wNC0wNSAxMjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgcmVtb3ZlIG9sZCBjb2RlIG5vdCB1c2VkIGZvciB0aGUgY29udGFpbmVyIHZlcnNpb24KCjIwMDUtMDQtMDUgMTI6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtcGVyc2lzdGVuY2UubTJpLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgcGVyc2lzdGVudCBzdG9yZSBjb2RlIHRvIGl0cyBvd24gZmlsZQogICAtIHVwZGF0ZSBpbnRlcmFjdGl2ZSBzZXR1cCB0byBwcm9tcHQgZm9yIHBlcnNpc3RlbnQgc3RvcmUKICAgLSBtb3ZlIHNob3VsZF9zYXZlKCkgb3V0IG9mIGludGVyZmFjZSBjb2RlLCBpbnRvICpUYWJsZS5jCiAgIC0gbG9nIGVycm9yIGlmIG5vIGNvbHVtbnMgZm91bmQgZHVyaW5nIHJlc3RvcmUKCjIwMDUtMDQtMDQgMTU6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA1LTA0LTA0IDE0OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgY2xlYXIgZHVwbGljYXRlcyBzbyB0aGV5IGFyZW4ndCBkb3VibGUtZnJlZWQKCjIwMDUtMDQtMDEgMTM6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXB0cmFwZC1pbml0LmQ6CgogICBuZXcgc3RhcnR1cCBzY3JpcHQKCjIwMDUtMDQtMDEgMDM6MDYgIG5iYQoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlCgoyMDA1LTAzLTMxIDE5OjA2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDUtMDMtMzEgMTg6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgbWVudGlvbiBBRVMgdG9vCgoyMDA1LTAzLTMxIDE3OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBjYWxsIHNubXBfc2h1dGRvd24KCjIwMDUtMDMtMzEgMTc6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBhZGQgcmVzdWx0IGNvZGUgdG8gc25tcF9sb2cgbWVzc2FnZQoKMjAwNS0wMy0zMSAxNzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIFRoZSBuZXcgZGF0YSBhbmQgZGF0YXNldCBoZWxwZXIgaW1wbGVtZW50YXRpb25zIGJyZWFrIG9sZGVyIGNvZGUgYW5kCiAgIHRodXMgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAgICAgLSBNYXJrIHRoZSBvbGQgZGF0YSBhbmQgZGF0YXNldCBpbXBsZW1lbnRhdGlvbnMgYXMgb2Jzb2xldGUgYnV0IHJlc3RvcmUKICAgICAgIHRoZW0gZnJvbSBwcmV2aW91cyBDVlMgdmVyc2lvbnMuICBSZWZlcmVuY2UgdGhlIG5ldyBvbmVzIGluIHRoZSBkb2NzCiAgICAgICBmb3IgdGhlIG9sZCBvbmVzLgogICAgIC0gQ3JlYXRlIG5ldyBkYXRhMiBhbmQgZGF0YXNldDIgdmVyc2lvbnMgd2hpY2ggYXJlIHRoZSBuZXcgY29udGFpbmVyCiAgICAgICBpbXBsZW1lbnRhdGlvbnMuCiAgICAgLSBNYWtlIHRoZSBjdXJyZW50IGRhdGFzZXQgaW1wbGVtZW50YXRpb25zIHVzZSB0aGUgbmV3ZXIgdmVyc2lvbi4KICAgICAgIC0gZXhjZXB0IHRoZSB0YWJsZSBhbmQgYWRkX3JvdyBpbXBsZW1lbnRhdGlvbnMgd2hpY2ggYnJva2UKICAgICAgICAgZW50aXJlbHkgdW5kZXIgdGhlIG5ldyBjb2RlLgoKMjAwNS0wMy0zMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcm93IGNyZWF0aW9uIGZvciB2YWNtIGZhbWlseSB0cmVlIHJvd3MgdGhhdCBhcmUgYmVuZWF0aCBhIHBhcmVudCByb3cuCgoyMDA1LTAzLTMwIDE4OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIC0gYWRkIGRlYnVnCiAgIC0gZG9uJ3QgYXNzZXJ0IG9uIGNvbmRpdGlvbiBmb3IgbmV4dC9idWxrCiAgICAgLSB0aGUgd2hvbGUgbW9kZSBjb3VudGluZyBpZGVhIG5lZWRzIHJlLXRoaW5raW5nLi4KICAgLSB1c2UgU05NUF9GUkVFIGluc3RlYWQgb2YgZnJlZSwgbm93IHRoYXQgbnVsbCBwdHJzIGFyZSBhIHBvc3NpYmlsaXR5CgoyMDA1LTAzLTMwIDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwo6CgogICBydW4gaHRvbmwgb24gdGhlIGluZGV4IGFkZHJzCgoyMDA1LTAzLTI5IDIyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIEFkZCBzdGFzaF90b19uZXh0IHRvIFdJTjMyIE1TVkMgTWFrZWZpbGUgYW5kIHdvcmtzcGFjZS4KCjIwMDUtMDMtMjkgMjA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb21tZW50IG91dCBkZWZhdWx0IGRpc2FibGUgb2Ygc3RkZXJyIGxvZywgc2luY2UgaXQgbWFrZXMgaXQgaW1wb3NzaWJsZQogICAgIHRvIHVzZSBzdGRvdXQvc3RkZXJyIGZvciBsb2dnaW5nIChub3cgdGhhdCBsb2ctPmVuYWJsZWQgaXMgY2hlY2tlZCkuIHVzZQogICAgIEMrKyBjb21tZW50cywgc2luY2UgdGhlIHdob2xlIGxvZyBzZXR1cCBuZWVkcyByZS10aGlua2luZyBiZWZvcmUgNS4zLgoKMjAwNS0wMy0yOSAxNjowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeCBiYWQgZm9ybWF0IHBhcmFtZXRlcnMgdG8gc25tcF9sb2cKCjIwMDUtMDMtMjkgMTU6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL2NtdV9jb21wYXQuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRGV0ZWN0IGFuZCByZXBvcnQgaW52YWxpZCBQRFVzIHNlbnQgYXMgcmVzcG9uc2UKCjIwMDUtMDMtMjggMTU6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yIHRvIGNoZWNrIHRoZSByYyBpbiBBTEwgdmFyYmluZHMsIG5vdCBqdXN0CiAgICAgY3VycmVudCByb3cvaGFuZGxlciB2YXJiaW5kcwoKMjAwNS0wMy0yOCAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGZpeCBidWcgMTE3MDYwNCBzbm1wX2Rpc2FibGVfc3RkZXJybG9nKCkgaXMgaWdub3JlZAogICAtIGNoZWMgZm9yIG51bGwgYmVmb3JlIGRlcmVmIChmaXggc25tcHRyYXBkIGNyYXNoIG5vdGVkIG9uIGlyYykKCjIwMDUtMDMtMjggMTQ6MjkgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBmaXggYWRkcmVzcyB0eXBlIGluIGluZGV4IG9pZAoKMjAwNS0wMy0yOCAxNDoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJlYWxseSByZWFsbHkgY2hlY2sgZXJyb3Igc3RhdHVzIG9mIGFsbCByZXF1ZXN0cwoKMjAwNS0wMy0yNSAyMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjaGVjayBzaXplIG9mIGFycmF5IGluIGdldHRhYmxlIGJlZm9yZSBhc3N1bWluZyBpdCBoYXMgc29tZXRoaW5nIGluIGl0CgoyMDA1LTAzLTI1IDA5OjQ5ICBhbGV4X2IKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIEFkZCBoZXhPdXRwdXRMZW5ndGggdG8gbWFuIHBhZ2UuCgoyMDA1LTAzLTI0IDIyOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBwYXNzIE5VTEwgdG8gY29uZmlnIGhhbmRsZXIgcmVnLCB0byB1c2UgY3VycmVudCBhcHB0eXBlCiAgIC0gYWRkIHNlcGFyYXRvcnMgYW5kIGhlYWRlcnMgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgbmV3bGluZSBpbiBwZXJzaXN0ZW50IGRhdGEKCjIwMDUtMDMtMjQgMjI6MDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBuZXcgZW52IHZhcjogU05NUF9QRVJTSVNURU5UX0RJUgoKMjAwNS0wMy0yNCAxNjo0OCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkb24ndCBkaXNhYmxlIGNhY2hlLCBqdXN0IGZvcmNlIHJlbG9hZCBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNS0wMy0yMyAxOTo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIGFkZCBtb2R1bGUgbmFtZQoKMjAwNS0wMy0yMyAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHR5cG8KICAgLSB1cGRhdGUgY29uZmlnX3JlcXVpcmUoKSBwYXRoIHRvIHNvbWV0aGluZyBiZXR0ZXIgZm9yIGNvbmZpZ3VyZQoKMjAwNS0wMy0yMyAxOTozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgcmVtb3ZlICogZnJvbSBkZWZhdWx0IGNvbnRleHQgcmVnIHR5cGUgKHR5cGVkZWYgaXMgZm9yIHN0cnVjdCwgbm90IHB0cikKCjIwMDUtMDMtMjIgMTc6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWF0Y2ggdXAgdG9kbyB3aXRoIGFjdHVhbCBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wMy0yMiAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIGFkZCBtaXNzaW5nIHBhcmFtIHRvIHNubXBfbG9nCgoyMDA1LTAzLTE4IDE4OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc2lnbmFsIGNhbGxzIGNvbmRpdGlvbmFsIGJhc2VkIG9uIGRlZmluaXRpb24gb2Ygc2lnbmFsIChsaWtlIHNubXBkKQoKMjAwNS0wMy0xOCAxODowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhZGQgZGVmYXVsdCAoMCkgZm9yIHNwYXJzZSB0YWJsZXMKICAgLSBvbmx5IG1rZGlyIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAtIGRvbid0IGlnbm9yZSBta2RpciBlcnJvcnMKCjIwMDUtMDMtMTggMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIG1vdmUgdGVtcCBzdG9yYWdlIGZvciBpbmRleGVzIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGRlZmF1bHQgZm9yIGRhdGEgdHJhbnNpZW50IChvZmYgYnkgMSkKCjIwMDUtMDMtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBjb2x1bW5fZXhpc3RzX2ZsYWdzIGNvZGUgaWYgc3BhcnNlIHRhYmxlIG5vdCBzZXQKCjIwMDUtMDMtMTggMTg6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBmaXggZ2VuZXJhdGVkIHJvd3JlcV9jdHhfaW5pdCBwcm90b3R5cGUKCjIwMDUtMDMtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQo6CgogICBjaGFuZ2UgSU5URVJOQUxfKiBlbnVtIGRlZmluZXMgdG8gaW5jbHVkZSBjb250ZXh0ICh0YWJsZSkgbmFtZQoKMjAwNS0wMy0xOCAxNzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBzb21lIHR5cG9zIG5vdGVkIG9uIG1haWxpbmcgbGlzdHMKCjIwMDUtMDMtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRldGVjdCBmaXJzdCBydW4gc28gd2Uga25vdyB0byBjb3B5IGdlbmVyYXRlIGRlZmF1bHRzIHRvIGN1cnIgZGlyCiAgIC0gZGlmZiBpbmRpdmlkdWFsIGZpbGVzIGluc3RlYWQgb2YgcmVjdXJzaXZlIGRpZmYgdy9leGNsdWRlcwogICAtIHVwZGF0ZXMgZm9yIG5ldyBkZWZhdWx0IGRpcmVjdG9yeSBzdHlsZSBkZWZhdWx0cwoKMjAwNS0wMy0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgdGFibGUgdGVzdCBmb3IgbGFzdGNoYW5nZSBhbmQgc3RvcmFnZXR5cGUgdGMKICAgLSB0d2VhayBkb2MgY29tbWVudHMKICAgLSBkb2N1bWVudCBpZmNvbmYgYW5kIG5ldyBpZmRpcgoKMjAwNS0wMy0xOCAwNTozMSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFRDUC1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIFRDUC1NSUIgdG8gUkZDIDQwMjIKCjIwMDUtMDMtMTggMDU6MzAgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgSUFOQS1pZlR5cGUtTUlCCgoyMDA1LTAzLTE4IDA1OjI2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEZpeCBhIHdhcm5pbmcgZnJvbSBCU0Qgc3lzdGVtcwoKMjAwNS0wMy0xOCAwNDo1MiAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgbWliMmMuY29uZi41IGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMTcgMDU6MzIgIG5iYQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYzoKCiAgIFVwcywgdW5pbnRlbmRlZCBwYXRjaCB1bmRvbmUKCjIwMDUtMDMtMTcgMDQ6MzAgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgQWRkIGZvcm1hdCBjaGVja2luZyB0byBjYWxscyB0byBzbm1wX2xvZywgYW5kIGZpeCB0aGUgdW5jb3ZlcmVkIGVycm9ycwoKMjAwNS0wMy0xNSAwMToxMyAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBJbmNsdWRlIHNtdXggaGVhZGVycyB3aGVuIG5lZWRlZAoKMjAwNS0wMy0xNCAxNjoxNCAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIFN5bmMgdG8gY29uZmlndXJlLmluCgoyMDA1LTAzLTE0IDE1OjUzICBuYmEKCiAgICogbWlicy86IElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIHJmY2xpc3QKOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSU5FVC1BRERSRVNTLU1JQgoKMjAwNS0wMy0xNCAxNTo0OCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBjb25maWd1cmUgaGVhZGVyIGFsZXJ0cyBmb3IgU29sYXJpcyA4IGFuZCA5LCBOZXRCU0QgMiBhbmQgRnJlZUJTRCA1CgoyMDA1LTAzLTA0IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBtYWtlZmlsZQogICAtIGluZGVudGlvbiBjaGFuZ2VzCiAgIC0gZXhwbGljaXQgY2xvc2Ugb2YgZmlsZQoKMjAwNS0wMy0wNCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldC9zZXQgdXNlciBjb250ZXh0CiAgIC0gdXNlIG5ldyByb3dfbWVyZ2UgZmlyc3QvbGFzdCBhcGkgdG8gbWFrZSBzdXJlIHByZS9wb3N0IGNhbGxlZCAxL3BlciBoYW5kbGVyCiAgIC0gYWRkIHJjIHBhcmFtIHRvIHBvc3RfcmVxdWVzdCAoeXVtLCBteSBvd24gd29yZHMgd2VyZSBkZWxpY2lvdXMpCiAgIC0gdXNlIGFzcCBzdGF0dXMsIG5vdCBzdGF0dXMgb2YgaGFuZGxlcnMgcmVxdWVzdHMsIHdoZW4gY2hlY2tpbmcgZm9yCiAgICAgc3VjY2Vzc2Z1bCByZXF1ZXN0IGNvbXBsZXRpb24KICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCBtb3JlIGluZm8gdG8gc29tZSBkZWJ1ZyBtc2dzCiAgIC0gdXNlIFNOTVBfTk9TVUNISU5TVEFOQ0UgaW5zdGVhZCBvZiBBU05fUFJJVl9SRVRSWQogICAtIGFkZCBtb3JlIGRlYnVncyBtc2dzCiAgIC0gZG9uJ3QgY2xlYXIgc2V0IGZsYWdzIHRpbCBwb3N0IGNvbW1pdAogICAtIHJlbW92ZSByZWR1bmRhbnQgdmFyYmluZCBsZW5ndGggY2hlY2sKICAgLSB1cGRhdGUgZm9yIG5ldyBjb2x1bW4gZmxhZyBuYW1lcwoKMjAwNS0wMy0wNCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBmaXggdGVzdCBmb3IgZGVmYXVsdHMgaW4gb2xkIGxvY2F0aW9uCiAgIC0gYWRkIG9wdGlvbiB0byByZS1ydW4gaW50ZXJhY3RpdmUgc2V0dXAgaWYgZXhpc3RpbiBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIG5vbi1leGlzdGVudCByb3dzIGluIHNwYXJzZSB0YWJsZXMKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSBjaGVjayBuZXcgdmFycyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgc3VwcG9ydCBmaWxlcwogICAgIChkb3h5Z2VuLCBtYWtlZmlsZSwgc3ViYWdlbnQpCgoyMDA1LTAzLTA0IDE1OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gYWRkIGNvbW1lbnRzIG9uIG5vZGUgbGVuZ3RocwogICAtIHVwZGF0ZSBmb3IgY2hhbmdlcyBpbiB2YWx1ZSBtYXAgcmV2ZXJzZQoKMjAwNS0wMy0wNCAxNTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSB1cGRhdGUgQklUUyBmaWVsZHMgdG8gdXNlIGRlZmluZSBJTlRFUk5BTF8qX0ZMQUcgZGVmaW5lcywgaW5zdGVhZCBvZiBJU19TRVRfKgogICAtIGFkZCBvYnZpb3VzIG5vdGUgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBDIGJpdCBvcmRlciBhbmQgU05NUCBiaXQgb3JkZXIKICAgLSBhZGQgQklUUyBtYXBwaW5nIHRvIHJldmVyc2UgdmFsdWUgbWFwCgoyMDA1LTAzLTA0IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgY2hhbmdlIGNvbHVtbiBmbGFnIG5hbWVzIHRvIHJlZHVjZSBjb25mdXNpb24gd2l0aCBvdGhlciBkZWZpbmVkIG5hbWVzCgoyMDA1LTAzLTA0IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhZGQgbmV3IG0yY190YWJsZV9zcGFyc2UgdG8gZGVmYXVsdHMKCjIwMDUtMDMtMDQgMTQ6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgdXNlIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4CgoyMDA1LTAzLTA0IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4LCBzZXQgdG8gX2ZsYWcgZm9yIGJpdHMgb2JqZWN0cwoKMjAwNS0wMy0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC0gbW92ZSBJTlRFUk5BTF8qIGVudW0gbWFjcm9zIGluc2lkZSBpZmRlZnMgZm9yIFRDCiAgIC0gZ2VuZXJhdGUgSU5URVJOQUxfKiBlbnVtcyBmbGFncyBmb3IgQklUUwoKMjAwNS0wMy0wMyAxOTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzCgoyMDA1LTAzLTAzIDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbmV0c25tcF9jaGVja192Yl9yYW5nZSAoY2hlY2sgdmFsdWVzLCBub3Qgc2l6ZXMpCgoyMDA1LTAzLTAzIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oOgoKICAgLSBrZWVwIHNhdmVkIHN0YXR1cyBkYXRhIGJldHdlZW4gbW9kZSBjYWxscyAoaW4gcmVxaW5mbyksIHNvIHdlIGNhbi4uCiAgIC0gYnVpbGQgYWxsIHRlbXBvcmFyeSByZXF1ZXN0IGxpc3RzIGJlZm9yZSBjYWxsaW5nIG5leHQgaGFuZGxlciwgc28gd2UgY2FuLi4KICAgLSB0cmFjayBudW1iZXIgb2YgcmVxdWVzdHMgYW5kIG51bWJlciBvZiByb3dzLCBzbyB3ZSBjYW4uLgogICAtIHByb3ZpZGUgYXBpIGZvciBsb3dlciBoYW5kbGVyIHRvIGtub3cgaWYgY3VycmVudCBjYWxsIGlzIGZvciBmaXJzdC9sYXN0IHJvdwogICAtIGxvZyBhIHdhcm5pbmcgaWYgaGFuZGxlciBmb3Igcm93IHJldHVybnMgZXJyb3IsIGJ1dCBET05UIGV4aXQgbG9vcAogICAgIC0gaWYgbG93ZXIgaGFuZGxlciByZXR1cm5zIGVyciwgcGFzcyBpdCB0byBwYXJlbnQKICAgLSBhZGQgbW9yZSBkZWJ1Z2dpbmcKCjIwMDUtMDMtMDMgMTU6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgYWRkIG9wdGlvbiB0byB3YXRjaGVkIHRpbWVzdGFtcCB0byBoYXZlIGEgcG9pbnRlciB0byBhIGRpcmVjdCB2YWx1ZQoKMjAwNS0wMy0wMiAxODo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBtb3ZlIGNvbHVtbiBiaXQgZmxhZyBtYWNyb3MgdXAgd2l0aCBjb2x1bW4gbnVtYmVyIG1hY3JvcwogICAtIGJhaWwgaWZmIG1vcmUgdGhhbiAzMiBjb2x1bW5zLiBmaXggdGhpcyBsYXRlci4uLgoKMjAwNS0wMy0wMiAxODo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBkb24ndCBydW4gZXh0cmEgZmlsZSBmcm9tIHRvcDsgbW92ZSBkb3duIHNvIGNhbiBiZSBjb250cm9sbGVkIGJ5IGRlZmF1bHRzCgoyMDA1LTAzLTAyIDE4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCBzZXR1cCBvZiBtMmNfbnZ2X3NpemVvZgoKMjAwNS0wMy0wMiAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSByZXdvcmsgaW5pdGlhbCBjaGVja192Yl8qIGxvZ2ljLCBjaGVja2luZyBtYXhfc2l6ZSBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIGZpeCByYW5nZSBjaGVja3MgZm9yIG9jdGV0IHN0cmluZ3MKICAgLSB1c2UgbTJjIGRhdGFfaXRlbSBhbmQgbm9kZSBkaXJlY3RvcnksIGVsaW1pbmF0aW5nIGEgdmFyIGZyb20gbm9kZSBzZXR1cAogICAtIHJlbW92ZSBnZW5lcmF0ZWQgY29tbWVudCBhbmQgc29tZSBjb21tZW50ZWQgb3V0IGNvbmYgc3R1ZmYKCjIwMDUtMDMtMDIgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgY2hlY2tfdmJfc2l6ZV9yYW5nZQoKMjAwNS0wMy0wMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICAtIG1vdmUgVE9ETyBjb21tZW50IGF3YXkgZnJvbSBsaW5rZSBsaWtlbHkgdG8gYmUgZGVsZXRlZAogICAtIGEgbG9nIG1lc3NhZ2UgaW5kaWNhdGluZyBhIG5vZGUgaXMgbm90IGltcGxlbWVudGVkCgoyMDA1LTAzLTAyIDE1OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBhbGxvdyBvY3Rlc3Qgc3RyaW5nIHJlYWQgdG8gZmlsbCBidWZmZXIKICAgLSBkb24ndCBudWxsIHRlcm1pbmF0ZSBvY3RldCBzdHJpbmcgaWYgYnVmZmVyIGZ1bGwKICAgLSB3YXJuIGlmIGlucHV0IGlzIGxhcmdlciB0aGFuIGJ1ZmZlcgoKMjAwNS0wMy0wMiAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQosIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1yZWFkbWUubTJjLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbWlzLW5hbWVkIGZ1bmN0aW9uOyBhZGQgcHJvdG8gZm9yIGNvcnJlY3QgbmFtZQoKMjAwNS0wMy0wMiAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYWxsb3cgc25tcGQuY29uZiBzbXV4IE9JRHMgdG8gYmUgdGV4dCwgbm90IGp1c3QgbnVtZXJpYwoKMjAwNS0wMy0wMiAxNDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzCiAgICAgLSB1c2UgbmV3IHN5c09SIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIGRpcmVjdCBmdW5jdGlvbiBjYWxscwoKMjAwNS0wMy0wMiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZC9yZWdpc3RlciBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGxvZyBJTkZPIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bCBjb25uZWN0IHRvIG1hc3RlcgogICAtIGFsd2F5cyBsb2cgcGVlcm5hbWUgb24gdW5zdWNjZXNzZnVsIGNvbm5lY3QgYXR0ZW1wdAoKMjAwNS0wMy0wMiAxMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFsd2F5cyBsb2cgYWdlbnR4IHBlZXIgbmFtZSBvbiBjb25uZWN0IGZhaWx1cmUKCjIwMDUtMDMtMDIgMTM6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGxvZyBtZXNzYWdlIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgLSB1cGRhdGUgZm9yIG5ldyB2ZXJzaW9uX3N5c29pZCBsb2NhdGlvbgoKMjAwNS0wMy0wMiAxMzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1vcmUgZGVidWcvZXJyb3IgbG9nIGZvciBwcm9ibGVtcyB3aXRoIGNhY2hlIGZpbGUKCjIwMDUtMDMtMDIgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIG1vdmUgdmVyc2lvbl9zeXNvaWQgaW50byB0aGUgYWdlbnQgKGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcykKICAgICAtIHVwZGF0ZSBzeXN0ZW1fbWliIGZvciBuZXcgc3lzb2lkIGxvY2F0aW9uCiAgIC0gZG9uJ3QgY2FsbCBob3N0c19jdGwgZm9yIGNhbGxiYWNrIGNvbm5lY3Rpb24KICAgLSBsb2cgYWRkcl9zdHJpbmcgZm9yIFVOS05PV04gY29ubmVjdGlvbnMKCjIwMDUtMDMtMDIgMTI6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA1LTAzLTAyIDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIC0gYWRkIC14IHBhcmFtIGZvciBtYXN0ZXIgYWRkcmVzcwogICAtIGFkZCB3aW5kb3dzIFNPQ0tfKiBtYWNyb3MKCjIwMDUtMDMtMDIgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjOgoKICAgZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmYgZmlsZQoKMjAwNS0wMy0wMiAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gZml4IHNwZWMgc28gcnBtYnVpbGQgdy9wYXJhbWV0ZXJzIHNob3VsZCB3b3JrIG9rCiAgICAgLSBtYWtlIHN1cmUgcGVybCB1c2VzIFJQTSBwcmVmaXgsIGluc3RlYSBvZiBoYXJkY29kZWQgL3VzciAoY29uZmlnLCBwYXRoc3ViKQogICAgIC0gbWFrZSBzdXJlIG1ha2VpbnN0YWxsIHVzZXMgcHJvcGVyIGluY2x1ZGUgZGlyIHBhdGgKCjIwMDUtMDItMjggMDc6NTIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFkZGVkIFdJTjMyIGlmZGVmIGJsb2NrcyB0byBhY2NvbW9kYXRlIGNvbXBpbGluZyB0aGUgSE9TVC1SRVNPVVJDRSBtaWIgb24KICAgV2luZG93cy4KCjIwMDUtMDItMjggMDc6NTAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFdpbmRvd3MgSE9TVC1SRVNPVVJDRSBtaWIgaW1wbGVtZW50YXRpb24uIHN0cnVjdCB3aW5fc3RhdGZzIGhhcyBiZWVuIG1vdmVkCiAgIHRvIGhyX3N0b3JhZ2UuaC4KCjIwMDUtMDItMjggMDc6NDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIFdpbmRvd3MgSFIgbWliIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMi0yNyAyMjozNCAgYWxleF9iCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIHQvbWliLnQsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIEFwcGx5IE1heCBCYWtlcidzIHBhdGNoIDExMTc2OTYgd2hpY2ggZml4ZXMgYSByZWdleCB0aGF0IHNwbGl0cyBhIHRhZyBmcm9tCiAgIGFuIGlpZC4gIEFsc28gYWRkZWQgYWRkaXRpb25hbCB0ZXN0cyB0byBtaWIudCB0ZXN0IHNjcmlwdC4KCjIwMDUtMDItMjYgMDc6MjEgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIFRoaXMgaXMgcGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLiBocl9uZXR3b3JrLmMgd2lsbAogICBub3cgY29tcGlsZSB3aXRoIE1pbkdXIGJ1dCBtdWNoIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHN0aWxsIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgoKMjAwNS0wMi0yNSAxNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgYSBnb29kIGV4YW1wbGUgYW5kIGNhbGwgU09DS19DTEVBTlVQIGJlZm9yZSBleGl0CgoyMDA1LTAyLTI1IDE3OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMDItMjUgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGZpeCBwcm90b3R5cGVzLCBub3RlZCBieSBuaWVscwogICAtIGRvbid0IGdlbmVyYXRlIGRveHlnZW4gY29uZiBmaWxlCgoyMDA1LTAyLTI1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgaWdub3JlIGN2cyBJZCB0YWdzIHdoZW4gcGVyZm9ybWFpbmcgZGlmZgoKMjAwNS0wMi0yNSAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmgsIG1pYl9tb2R1bGVzLmMsCiAgICAgc25tcF92YXJzLmM6CgogICAtIGVsaW1pbmF0ZSBsaWJuZXRzbm1wYWdlbnQgcmVmcyB0byBsaWJuZXRzbm1wbWlicwogICAgIC0gbW92ZSBtb2R1bGVfaW5pdF9saXN0IHN0dWZmIGludG8gYWdlbnQgbGlicwogICAgIC0gbW92ZSBzbXV4IGNvZGUgaW50byBhZ2VudCBsaWJzCgoyMDA1LTAyLTI1IDE2OjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWRkIGNvbnRleHQgdG8gcmVnaXN0ZXJfbWliIGRlYnVnCiAgIC0gd2FybiBpZiBwYXNzZWQgY29udGV4dCBkb2Vzbid0IG1hdGNoIHJlZ2luZm8tPmNvbnRleHROYW1lCgoyMDA1LTAyLTI1IDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcmVnaXN0ZXIgd2l0aCBjb250ZXh0LCBpZiBzcGVjaWZpZWQKCjIwMDUtMDItMjUgMTY6MTAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIGZpeCBsaWJyYXJ5IG9yZGVycyBpbiBsaW5rIGxpbmVzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcyB0byBnZW5lcmF0ZWQgc3ViYWdlbnQKCjIwMDUtMDItMTkgMDc6MDAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFBhcnQgb2YgdGhlIEhPU1QtUkVTT1VSQ0UgaW1wbGVtZW50YXRpb24gZm9yIFdpbmRvd3MuCgogICAqIERlZmluZWQgd2luX3N0YXRmcyBzdHJ1Y3R1cmUuCiAgICogRGVmaW5lZCBwYWdlc2l6ZSBmb3IgV2luZG93cyBhcyA0MDk2ICg0ayBpcyB3aGF0IEkgaGF2ZSBmb3VuZCB0aHJvdWdoIG15CiAgIAlyZXNlYXJjaC4gVGhlcmUgaXMgcHJvYmFibHkgYSB2YXJpYWJsZSBvciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZm9ybWF0aW9uCiAgIAlvbiBXaW5kb3dzIGJ1dCBJIGhhdmUgbm90IGZvdW5kIGl0IHlldC4pCiAgICogQWRkZWQgZnVuY3Rpb25zIHdpbl9zdGF0ZnMoKSBhbmQgd2luX3JlYWxwYXRoKCkuCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBLaWxsaW5nIHdhcm5pbmdzCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogbWlicy86IE5FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIE5FVC1TTk1QLUVYVEVORC1NSUIudHh0CiwgTkVULVNOTVAtVEMudHh0OgoKICAgc21pbGludCdpbmcKCjIwMDUtMDItMTUgMTE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSW1wbGVtZW50IHByb3BlciBTRVQgc3VwcG9ydCBmb3IgbnNFeHRlbmRSdW5UeXBlLgoKMjAwNS0wMi0xMiAwODo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgTW92ZSB2YXJpYWJsZSB1bnVzZWQgd2hlbiA8cGljbC5oPiB1bmF2YWlsYWJsZSBmb3IgU29sYXJpcwoKMjAwNS0wMi0xMiAwODozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBGaXggd2FybmluZ3MKCjIwMDUtMDItMTIgMDg6MDcgIG5iYQoKICAgKiBhZ2VudC86IGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy93YXRjaGVyLmMsCiAgICAgbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgU29sYXJpcyBnY2MgLW02NCBmaXhlcwoKMjAwNS0wMi0xMiAwNjo0MiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIE1vcmUgZGV0YWlscyB3aGVuIHJlc3BvbnNlIGZhaWxzLiBHb29kIGZvciBsb2NhdGluZyA2NC1iaXQgcHJvYmxlbXMKCjIwMDUtMDItMTIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEyIDA1OjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgSW50ZWdyYXRlIGZpeGVzIGZyb20gTmV0QlNEIHBvcnQKCjIwMDUtMDItMTAgMTQ6NTMgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBGaXggbWlzbGVhZGluZyBjb21tZW50LiBUaGFua3MgdG8gYnVnIDEwODY4NzAKCjIwMDUtMDItMTAgMTM6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdWRlIHN5c2xvZy5oIGFsc28gaWYgbm90IHVzaW5nIGxpYndyYXAKCjIwMDUtMDItMTAgMTM6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBzeXNJT1Jhd1NlbnQvUmVjZWl2ZWQgd2hpY2ggYXJlIHJldmVyc2VkIGZvciBMaW51eC4gQnVnIDExMDI1MTgKCjIwMDUtMDItMTAgMTA6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBGcmVlQlNEIG1lbW9yeSBsZWFrLCB0aGFua3MgdG8gSm9obiBTZWxsZW5zLCBidWcgMTEwMzY0NAoKMjAwNS0wMi0xMCAwODoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjM1ICBuYmEKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMCAwNzoyMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYW4gZXh0cmFuZW91cyBuZXdsaW5lIGVuZGluZyBoZXhzdHJpbmdzCgoyMDA1LTAyLTA5IDE2OjM0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggYmFkIGluZGV4LCBwb2ludGVkIG91dCBpbiBidWcgMTExNjY1MgoKMjAwNS0wMi0wOSAxNjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggYSBiYWQgZXJyb3IgbWVzc2FnZQoKMjAwNS0wMi0wOSAxNjoyNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MTUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE2OjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEFub3RoZXIgaHVudCBmaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMDkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIGNvbnN0LW5lc3MgZm9yIHBhcmFtZXRlcnMKCjIwMDUtMDItMDggMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRml4IGEgYnVuY2ggb2YgdHJpdmlhbCB3YXJuaW5ncwoKMjAwNS0wMi0wOCAxNTowNiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFNNVVgtTUlCLnR4dCwgaWFuYWxpc3QKLCByZmNsaXN0LCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb25zCgoyMDA1LTAyLTA4IDE0OjU0ICBuYmEKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4ZXMgdG8gYWxsb3cgaXQgdG8gcGFzcyBzbWlsaW50CgoyMDA1LTAxLTI3IDIyOjUyICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRpc2FibGUgY2FjaGluZyBzaW5jZSBvdGhlciBjb2RlIG1vZGlmaWVzIHVuZGVybHlpbmcgZGF0YQoKMjAwNS0wMS0yNSAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgbm90ZSBvbiBjdnMyY2wgd29ya2Fyb3VuZCwgYWRkIG5vdGUgb24gaG93IHRvIGdldCBjdXJyZW50IHZlcnNpb24KCjIwMDUtMDEtMjUgMDg6NTEgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXggbWlzbmFtZWQgcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjIgMTY6NDkgIGFsZXhfYgoKICAgKiBsb2NhbC9GQVEySFRNTCwgbG9jYWwvaHRtbC1hZGQtaGVhZGVyLWZvb3Rlci5wbCwKICAgICBtYW4vbWFrZV9pbmRleC5wbCwgbWFuL21hbl9zZWN0aW9ucy50eHQsCiAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9tYWtlaHRtbC5wbDoKCiAgIFVwZGF0ZWQgc2NyaXB0cyBldGMgZm9yIGdlbmVyYXRpbmcgd2ViIGNvbnRlbnQuCgoyMDA1LTAxLTIyIDE1OjM4ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBXaW4zMiByZWdpc3RyeSBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cwoKMjAwNS0wMS0yMiAxMDo0MiAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBBZGRlZCBjb3VudF91c2VycyBmdW5jdGlvbmFsaXR5IGZvciBXaW5kb3dzLiBUaGUgZnVuY3Rpb24gY3VycmVudGx5IHJldHVybnMKICAgMCBmb3IgYSBmYWlsZWQgY2FsbCB0byBOZXRXa3N0YUdldEluZm8oKSBhbmQgbWF5IHJlcXVpcmUgbW9yZSBlcnJvciBjaGVja2luZwogICBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gcmV0dXJuIGEgY29ycmVjdCB2YWx1ZSBmb3IgZmFpbHVyZS4KCjIwMDUtMDEtMjEgMTE6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICBVc2UgdGhlIChuZXcpIHRhYmxlX2RhdGFzZXQgaXRlcmF0b3IgQVBJIHJvdXRpbmVzLAogICByYXRoZXIgdGhhbiB0aGUgaW50ZXJuYWwgZmllbGRzIGRpcmVjdGx5LgoKICAgKEkgd29uZGVyIGhvdyBtYW55IG1vcmUgYml0cyBJIGJyb2tlPykKCjIwMDUtMDEtMjEgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jOgoKICAgRG9uJ3QgYmUgc3VjaCBhbiBpbXBhdGllbnQgY2hpbGQsIERhdmUhICBJZiBJJ3ZlCiAgIHRvbGQgeW91IG9uY2UsIEkndmUgdG9sZCB5b3UgYSB0aG91c2FuZCB0aW1lczoKCiAgIFRpZHkgdXAgcHJvcGVybHkgYWZ0ZXIgb25lIHJlcXVlc3QgYmVmb3JlIHN0YXJ0aW5nIG9uIHRoZSBuZXh0LgoKICAgPHNoYWtlcyBoZWFkIHNvcnJvd2Z1bGx5PgogICBTb21lIHBlb3BsZSEgLSBJIGJsYW1lIHRoZSBwYXJlbnRzLi4uLi4KCjIwMDUtMDEtMjAgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUmUtaW1wbGVtZW50ICd0YWJsZV9kYXRhJyB1c2luZyB0aGUgJ3RhYmxlX2NvbnRhaW5lcicgaGVscGVyLgogICBUaGUgdHdvIGFyZSBhbG1vc3QgaWRlbnRpY2FsIGluIGJlaGF2aW91ciBhbnl3YXkgLSBqdXN0IHdpdGgKICAgZGlmZmVyZW50IGV4cGVjdGF0aW9ucyBvdmVyIHRoZSBmb3JtYXQgb2YgYSBwZXItcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjAgMDk6MDkgIGR0czEyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgVXNlIHRoZSAobmV3KSB0YWJsZV9kYXRhc2V0IGl0ZXJhdGlvbiBBUEksCiAgIHJhdGhlciB0aGFuIGZpZGRsaW5nIHdpdGggdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMS0yMCAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBQcm92aWRlIGEgY2xlYW4gQVBJIGZvciB3YWxraW5nIHRocm91Z2ggdGhlIHJvd3Mgb2YgYSB0YWJsZQogICAoUmF0aGVyIHRoYW4gcmVseWluZyBvbiBhIHBhcnRpY3VsYXIgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLgoKMjAwNS0wMS0yMCAwOTowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBUaGUgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHJvd3Mgd2FzIGNvbmZ1c2luZ2x5CiAgIG5hbWVkLCBhbmQgbm90IGFjdHVhbGx5IGRlY2xhcmVkIGluIHRoZSBoZWFkZXIgZmlsZS4KICAgSW50cm9kdWNlIGEgbW9yZSBzZW5zaWJsZSB2ZXJzaW9uLgoKMjAwNS0wMS0xOSAwOToxNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgV2Ugc2VlbSB0byBoYXZlIGFuIGluY29uc2lzdGVudGx5IG5hbWVkIEFQSSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQKICAgaXMgYmVpbmcgZGVmaW5lZCBpbmxpbmUgb3Igbm90LiAgVGhpcyBkb2VzIG5vdCBmZWVsIGxpa2UgYSBHb29kIElkZWEuCiAgIEVuc3VyZSB0aGF0IHRoZSBzYW1lIG5hbWVzIHdvcmssIHJlZ2FyZGxlc3Mgb2YgaW5saW5pbmcuCiAgIChUaGF0IGludHJvZHVjZXMgYSBjZXJ0YWluIGR1cGxpY2F0aW9uIG9mIGNvZGUsIGJ1dCBzdWNoIGlzIGxpZmUpCgoyMDA1LTAxLTEzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBOZXdlciBJUC1GT1JXQVJELU1JQiBmcm9tIGFuIElEIHNldCB0byBiZWNvbWUgYW4gUkZDCgoyMDA1LTAxLTEzIDExOjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVAtRk9SV0FSRC1NSUIudHh0LCBJQU5BLVJUUFJPVE8tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbjoKCiAgIE5ld2VyIElQLUZPUldBUkQtTUlCIGZyb20gYW4gSUQgc2V0IHRvIGJlY29tZSBhbiBSRkMKCjIwMDUtMDEtMTIgMTE6NTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm92aWRlIGEgbWVhbnMgZm9yIHNubXB0cmFwZCB0byByZXBvcnQgL2V0Yy9ob3N0cy57YWxsb3csZGVueX0KICAgc3R5bGUgYWNjZXNzIGNvbnRyb2wgYWN0aXZpdHkuCiAgIFRoaXMgc2hvdWxkIHBlcmhhcHMgYmUgbG9nZ2VkIHZpYSAnc25tcF9sb2cnIChjLmYgYWdlbnQvc25tcF9hZ2VudC5jKQogICBidXQgSSBzZWVtIHRvIHJlY2FsbCBwcm9ibGVtcyB3aXRoIGR1cGxpY2F0ZSBzeW1ib2xzLiAgQnV0IGEgZGVidWcKICAgbWVzc2FnZSBzaG91bGQgYmUgc2FmZSBlbm91Z2guLi4uCgoyMDA1LTAxLTEyIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlZmluZSBzZXRQZXJyb3JzdGF0dXMgdW50aWwgcHJvcGVyIGZpeCBpbXBsZW1lbnRlZAoKMjAwNS0wMS0xMiAwOTo0MyAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gUGhpbGlwIFcgR2lsbGlzIGFuZCBEYW5pZWwgS2VybnMgZm9yIHdpbjMyIGdldGVudiBjcmFzaC4KCjIwMDUtMDEtMTIgMDY6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2Ygc3Rhc2gtY2FjaGUgdGltZW91dHMsIGJvdGggYXQKICAgcmVnaXN0cmF0aW9uIGFuZCB2aWEgdGhlIE5FVC1TTk1QLUFHRU5ULU1JQjo6bnNDYWNoZVRhYmxlLgogICAoRG9uJ3QgbXVjaCBsaWtlIHRoZSBBUEkgbmFtZXMsIHRob3VnaCAtIGltcHJvdmVkIHN1Z2dlc3Rpb25zCiAgIGdyYXRlZnVsbHkgcmVjZWl2ZWQpLgoKMjAwNS0wMS0xMiAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgVXNlIHRoZSBzdGFuZGFyZCBjYWNoZSBoZWxwZXIsIHJhdGhlciB0aGFuIGhhbmRsaW5nIHRoaXMgaW50ZXJuYWxseS4KCjIwMDUtMDEtMTIgMDY6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgTWFrZSB0aGUgaGFuZGxlciBjaGFpbiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgdG8gdGhlIGNhY2hlIGxvYWQgcm91dGluZS4KICAgKEFuZCBmaXggYSBicm9rZW4gZGVidWcgbWVzc2FnZSkKCjIwMDUtMDEtMTIgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlIHRoZSBuZXcgJ3N0YXNoX3RvX25leHQnIGhlbHBlciBpbiB0aGUgaGVscGVyIGxpYnJhcnkuCgoyMDA1LTAxLTExIDEwOjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYwo6CgogICBBdXRvbWF0aWNhbGx5IGluamVjdCB0aGUgc3Rhc2hfdG9fbmV4dCBoZWxwZXIgYXQgcmVnaXN0cmF0aW9uLAogICByYXRoZXIgdGhhbiBkeW5hbWljYWxseSBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLgogICAoV2UgbXVzdCB0cnkgdG8ga2VlcCBvdXIgYmVsb3ZlZCBsZWFkZXIgaGFwcHkgYW5kIGNvbnRlbnQgYW5kIHVuc3VzcGVjdGluZy4uLi4pCgoyMDA1LTAxLTExIDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBTdXBwb3J0IHRoZSBpbmplY3Rpb24gb2YgYSBoYW5kbGVyIHN1Yi1jaGFpbgogICAocmF0aGVyIHRoYW4ganVzdCBhIHNpbmdsZSBoYW5kbGVyKQoKMjAwNS0wMS0wOSAxMTozMSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY29uZmlnLmggLT4gbmV0LXNubXAtY29uZmlnLmgKCjIwMDUtMDEtMDggMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlYWQvY3JlYXRlIGRlZmF1bHQgZmlsZXMgZnJvbS9pbiBzdWJkaXIKCjIwMDUtMDEtMDggMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXJlYWRtZS5tMmM6CgogICByZWFkL2NyZWF0ZSBkZWZhdWx0IGZpbGVzIGZyb20vaW4gc3ViZGlyCgoyMDA1LTAxLTA4IDA3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW5hbWUgc29tZSBvZiB0aGUgbmV3IHBlcnNpc3RlbnQgZnVuY3Rpb25zL3ZhcnMKICAgLSBmaXggbGVuZ3RoIGhhbmRsaW5nIGZvciBCSVRTCiAgIC0gdXNlIHN0YWNrIGZvciBsaW5lIGJ1ZmZlcgogICAtIGFkZC90d2VhayBzb21lIGRlYnVnIG1zZ3MKCjIwMDUtMDEtMDcgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0Lmg6CgogICBFeHRlbmQgdGhlIGFwcGxpY2FiaWxpdHkgb2YgV2VzJyAic3Rhc2hfY2FjaGUiIGhlbHBlciwgYnkKICAgYXV0b21hdGljYWxseSBjb252ZXJ0aW5nIGEgR0VUU1RBU0ggcmVxdWVzdCBpbnRvIGEgR0VUTkVYVAogICB3YWxrIGZvciB0aG9zZSBjaGFpbnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoaXMgbW9kZSBkaXJlY3RseS4KICAgKEFuZCBwcm92aWRlIGEgd2F5IGZvciBjaGFpbnMgdGhhdCBkbywgdG8gc2F5IHNvISkKCjIwMDUtMDEtMDcgMDQ6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgVXNlIG5ldHNubXBfY2hlY2tfdmJfdHlwZSBmb3IgY2hlY2tpbmcgU0VUIHJlcXVlc3RzLgoKMjAwNS0wMS0wNiAxMjozMyAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3QgcGVyc2lzdGVuY2Ugc3VwcG9ydCBmb3IgbWZkCgoyMDA1LTAxLTA2IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgaW5jbHVkZSB0byBxdWl0ZSB3YXJuaW5nCiAgIC0gYWRkIHBlcnNpc3RlbmNlCgoyMDA1LTAxLTA2IDEyOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBvbiBwcm90b3R5cGUgZ2VuIG5vdyB0aGF0IGZ1bmN0aW9uIGlzIGFsd2F5cyBnZW5lcmF0ZWQKCjIwMDUtMDEtMDYgMTA6MTYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzCgoyMDA1LTAxLTA2IDEwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMTA6MDggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDEtMDYgMDk6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMDk6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICByZW1vdmUgY29uZGl0aW9uYWwgZm9yIHZhciBkZWNsLCBzaW5jZSB1c2UgaXNuJ3QgY29uZGl0aW9uYWwKCjIwMDUtMDEtMDYgMDk6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGFkZCBjb21tZW50IG9uIGhvdyB0byBkaXNhYmxlIGNhY2hpbmcKCjIwMDUtMDEtMDYgMDk6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmk6CgogICAtIGFkZCBtaXNzaW5nICUgc3BlYyBpbiBsb2cgbXNnCiAgIC0gZ2VuIGNvZGUgdG8gY29weSB2YWx1ZSBvbmNlIGFkZHJUeXBlIGlzIGtub3duCgoyMDA1LTAxLTA1IDE3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGluaXQgbWlicyBiZWZvcmUgc25tcCBzbyBjb25mIGZpbGUgcmVnaXN0cmF0aW9ucyB3b3JrCgoyMDA1LTAxLTA1IDE1OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWx3YXlzIGdlbmVyYXRlIHJvdyB1bmRvX3NldHVwL3VuZG9fY2xlYW51cAoKMjAwNS0wMS0wNSAxMDoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjYXNlIGxhYmVsIHRvIG1hdGNoIGxhYmxlbCBnaXZlbiBpbiB1c2FnZSBtc2cKCjIwMDUtMDEtMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjb21tZW50IG91dCBvdmVycmlkZSBjaGVja3Mgd2hlcmUgd2UgZG9uJ3QgaGF2ZSB0aGUgaW50ZXJmYWNlIG5hbWUKCjIwMDUtMDEtMDIgMjA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVjb2duaXNlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBhcyBwcmludGFibGUuCgoyMDA1LTAxLTAyIDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBPbmx5IGlzc3VlICJhY2Nlc3MgY29udHJvbCBub3QgY29uZmlndXJlZCIgd2FybmluZyBmb3IgdGhlIGFnZW50CiAgIChub3Qgc25tcHRyYXBkKQoKMjAwNS0wMS0wMiAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBUT0RPIGl0ZW0gZm9yIGNvZGUgaW4gaW50ZXJmYWNlcyBmaWxlCgoyMDA1LTAxLTAyIDE4OjI0ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBkb24ndCBiaW5kIGxvY2FsIHRyYXBzaW5rcyB0byBsb2NhbGhvc3QgaWYgY2xpZW50QWRkciBpcyBzZXQKCjIwMDQtMTItMzEgMDk6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBjb21tZW50IGNsYXJpZmljYXRpb24KCjIwMDQtMTItMjggMTg6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIGZpeCBsb2dpYyBmb3IgbWZkIHRhYmxlIHRlc3QKCjIwMDQtMTItMjggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB1cGRhdGUgcmZjIHJlZmVyZW5jZQoKMjAwNC0xMi0yOCAxNjowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gZG9uJ3QgcmVnaXN0ZXIgcm9ubHkgaGFuZGxlcnMgYXMgUldSSVRFCiAgIC0gYWRkIG1pc3NpbmcgbmV0c25tcF9yZWdpc3Rlcl9pbnRfaW5zdGFuY2VfY29udGV4dAoKMjAwNC0xMi0yOCAxNTo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdXNlIG1hY3JvIGNvbnN0YW50cyBmb3IgcmV0dXJuIHZhbHVlcywgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTEyLTI4IDE1OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWJ1ZyBtc2cgdy9lcnJubyB3aGVuIHNlbmR0byBmYWlscwoKMjAwNC0xMi0yOCAxNTo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2Fzc2VydCBvbiBiYWQgQVNOIGJ1aWxkCgoyMDA0LTEyLTI4IDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBoZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gYWx3YXlzIHNwZWNpZnkgY29udGV4dCwgaWYgYXZhaWxhYmxlKSBmb3IgcmVnaXN0ZXIgY2FsbGJhY2tzCiAgICAgKHNvIGRpc2Nvbm5lY3RlZCBhZ2VudHggc3ViYWdlbnRzIHJlY29ubmVjdCB3L3Byb3BlciBjb250ZXh0KQogICAtIG1lbXNldCBzdHJ1Y3Qgb24gc3RhY2sgdG8gMAoKMjAwNC0xMi0yOCAxMjowMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBidWcgMTA0OTYwNzogbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudCBicm9rZW4KCjIwMDQtMTItMjcgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBhZGQgcG9pbnRlciB0byB0dXRvcmlhbCBhbmQgY29tbWFuZGxpbmUgdG8gZ2VuZXJhdGUgcHNldWRvLXRvZG8gbGlzdAoKMjAwNC0xMi0yNSAwMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgYmFpbCBvbiBub24tdGFibGUgT0lEIHVudGlsIG11bHRpcGxlIHRhYmxlcyBwZXIgZmlsZSBhcmUgc3VwcG9ydGVkCgoyMDA0LTEyLTI1IDAwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIDEwNjI5ODY6IHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBmYWlsIGFuZCBjcmFzaCBzbm1wZAoKMjAwNC0xMi0yNCAyMzo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBmaXggYnVnIDEwNzI0MDY6IGludmFsaWQgb3BlcmF0b3IgcHJlY2VkZW5jZSBpbiBvcGVuZGlyKCkKCjIwMDQtMTItMjQgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZml4IGJ1ZyAxMDg0NDEzOiBDYW4ndCBkaXNhYmxlIGZpbGUgbG9nZ2luZwoKMjAwNC0xMi0yNCAxMDozMiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggYnVnIDEwNDA3MTE6IHNubXB0cmFwZDogU0lHSFVQIGR1cGxpY2F0ZXMgdHJhcGhhbmRsZXJzIChyZXBlYXRlZGx5KQoKMjAwNC0xMi0yNCAwOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtcCB0byBta2RpciBwYXJtCgoyMDA0LTEyLTI0IDA5OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIGhhcmRjb2RlZCBIQVZFX0lGTkFNRVRPSU5ERVggbm93IHRoYXQgY29uZmlndXJlIGNoZWNrcyBmb3IgaXQKCjIwMDQtMTItMjQgMDk6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gZG9uJ3Qgb3BlbiBzdGRvdXQgdGlsIHdlIG5lZWQgaXQKICAgLSBleHBsaWNpdCBjbG9zZSBmb3Igb3BlbmVkIGZpbGUKICAgLSBjaGFuZ2UgZGVmYXVsdCB0byBhc2tpbmcgcXVlc3Rpb25zIGluc3RlYWQgb2YgdXNpbmcgZGVmYXVsdHMKCjIwMDQtMTItMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIC0gY2hhbmdlIGRlZmF1bHQgZm9yIGludGVyYWN0aXZlIHNldHVwIHRvIG9uCiAgIC0gZG9uJ3Qgb3ZlcnJpZGUgcmVwb3J0IHByb2dyZXNzIHZhciBpZiBhbHJlYWR5IHNldAoKMjAwNC0xMi0yMyAxNzo1NyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogRml4IGNvbXBpbGluZyB3aXRob3V0IFBTREsuCgoyMDA0LTEyLTIzIDE0OjE5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXhlcwoKMjAwNC0xMi0yMiAxODowOSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCBidWcgMTA4ODc2NTogQWdlbnQgZmFpbHMgdG8gc2VuZCB0cmFwcyB0byByZW1vdGUgdGFyZ2V0CgoyMDA0LTEyLTIyIDE2OjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTIyIDE2OjEyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gdGVzdCBmb3IgaWZfbmFtZXRvaW5kZXgKCjIwMDQtMTItMjIgMTM6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLnRocmVhZDoKCiAgIG1lbnRpb24gdGhhdCB2MyBpc24ndCB0aHJlYWQgc2FmZQoKMjAwNC0xMi0xNiAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGxvZyB3YXJuaW5nIG9uIGJhZCBoZXggbGVuZ3RoIChoaWdoZXIgcm91dGluZXMgZG9uJ3QgZ2V0IGVycm9yIGluZGljYXRpb24pCgoyMDA0LTEyLTE2IDIwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGlmZGVmIG91dCB2MS92MiBjb2RlIHdoZW4gYm90aCBkaXNhYmxlZAoKMjAwNC0xMi0xNiAxODoxNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWNoZWNrIGZvciBkdXBsaWNhdGUgdGFibGUgZGVmcyBpbiBzbm1wZC5jb25mCiAgIC1tb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzCiAgIC1zdXBwb3J0IHJ1bi10aW1lIHRhYmxlcyB3aGljaCBhcmUgYXVnbWVudGF0aW9ucwogICAtbG9nIGVycm9yIGlmIHJ1bi10aW1lIHJvdyBhZGQgZmFpbHMKCjIwMDQtMTItMTYgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMKCjIwMDQtMTItMTYgMTQ6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBmb3IgbnVsbCB2YXIgYmVmb3JlIGRlcmVmCgoyMDA0LTEyLTE2IDE0OjU1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNhY2hlIG5leHQgcHRyIGI0IG9iamVjdCBjb3VsZCBiZSBmcmVlZAoKMjAwNC0xMi0xNiAxNDo0MiAgcnN0b3J5CgogICAqIGx0bWFpbi5zaDoKCiAgIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlIG9uIG1pc3NpbmcgbGlicmFyeQoKMjAwNC0xMi0xNiAxNDo0MCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIElOU1RBTExfUFJFRklYIHRvIHByb2dyZXNzIG1lc3NhZ2VzCgoyMDA0LTEyLTE1IDExOjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTE0IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlbGV0ZSBleHRyYSAnOycKCjIwMDQtMTItMTQgMDY6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGluZyBvbiBldmFsIGxpbmVzCgoyMDA0LTEyLTEzIDEyOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmVnaXN0cmF0aW9uIGxvb2t1cCBvcHRpbWl6YXRpb24gYWxsb3dpbmcgaW5jb21pbmcgcmVxdWVzdHMgdG8gbW9yZSBxdWlja2x5IHNlYXJjaCB0aHJvdWdoIHRoZSBsaW5rZWQgbGlzdCBhbmQgZG8gc2luZ2xlIGludCBjb21wYXJlcyBpbnN0ZWFkIG9mIGZ1bGwgT0lEIGNvbXBhcmVzIGZvciBtdWNoIG9mIHRoZSBzZWFyY2ggdHJlZS4gIFNob3VsZCBzaWduZmljYW50bHkgaW5jcmVhc2UgdGhlIHNlYXJjaCBzcGVlZCBmb3IgbmV3IHJlcXVlc3RzLgoKMjAwNC0xMi0xMyAxMjozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgRkFRLCBSRUFETUUKLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoKTogdmVyc2lvbiB0YWcgKCA1LjMuZGV2ICkKCjIwMDQtMTItMTMgMTI6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFkZGVkIGEgbmV3IG9pZC1jb21wYXJlIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgd2hlcmUgdGhlIE9JRHMgZGlmZmVyZWQKCjIwMDQtMTItMTMgMTI6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgYWRkIGFuIGV4dHJhIHNvcnRpbmcgdmFyaWFibGU6IG9pZF9vZmYKCjIwMDQtMTItMTMgMDg6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTMgMDg6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbWlzc2luZyBlbmQgcXVvdGUKCjIwMDQtMTItMTAgMTU6MTUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciByZWNlbnQgY2hlY2tpbnMKCjIwMDQtMTItMTAgMTU6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtY29tbWVudCB0d2Vha3MKICAgLWZyZWUgdmFyYmluZCBpbmRleGVzIGJlZm9yZSBwYXJzaW5nIG5ldyBvbmVzCiAgIC1hZGQvdXNlIHByb3BlciBkYXRhX2xpc3QgZnJlZSBmdW5jdGlvbiBmb3Igcm93IHN0YXNoZXMKCjIwMDQtMTItMTAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBmaXggZm9yIHVzaW5nIGlmTmFtZSBmb3IgaWZEZXNjciB3aGVuIGlmRGVzY3Igbm90IGF2YWlsYWJsZQoKMjAwNC0xMi0xMCAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWZpeCBidWcgMTAzNDAwODogbWVtb3J5IGxlYWsgdXNpbmcgU0VUIGZvciB0YWJsZV9kYXRhc2V0CiAgIC1yZW1vdmUgdW5zdXBwb3J0ZCAlIHNwZWMgaW4gY29uZmlnX3B3YXJuCgoyMDA0LTEyLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTI0NjA6IGFnZW50IGRlYWRsb2NrIG9uIGV4ZWMKCjIwMDQtMTItMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhcHBseSBwYXRjaCAxMDU1MDM2OiBpZi1taWIgaW5pdCBvcmRlciBmaXgKCjIwMDQtMTItMTAgMTI6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTcwNTc6IGlwU3lzdGVtU3RhdHNUYWJsZSBpbmRleCBmaXgsIGFkZCBpcHY2CgoyMDA0LTEyLTEwIDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtbmV3IHRhcmdldHMgdG8gbWFrZSBhZ2VudGxpYiwgbWlibGliIG9yIGJvdGgKICAgLXJlbW92ZSBhZ2VudCBsaWIgZGVwZW5kZW5jeSBvbiBtaWIgbGliCgoyMDA0LTEyLTEwIDExOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgdGFyZ2V0cyB0byBtYWtlIHNubXBsaWIsIGFnZW50LCBhbGwgb3IgaW5kaXZpZHVhbCBhcHBzCgoyMDA0LTEyLTEwIDExOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTEwIDExOjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLWZpeCBkaXNhYmxlIHNubXB2MmMKICAgLWFkZCBwYXJ0aWFsIHRhcmdldCBvcyB0byBtb2R1bGUgY2ZsYWdzCiAgIC1yZXN0b3JlIG1pc3NpbmcgdmFyIGluaXQgKGZpeCBjb25maWd1cmUgc2xvd2Rvd24pCiAgIC1tb3JlIGRlYnVnZ2luZwoKMjAwNC0xMi0xMCAxMDoxNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9zbm1wZnVuLnNoOgoKICAgZml4IHRhYmxlIGNoZWNrcyBieSBhZGRpbmcgbWlzc2luZyBudWxsIHBhcmFtZXRlcgoKMjAwNC0xMi0xMCAxMDowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY29tbWVudCBjaGFuZ2Ugb25seS0gZG9jdW1lbnQgd2h5IHRlc3QgbWF5IG5vdCBhbHdheXMgYmUgZmFsc2UKCjIwMDQtMTItMTAgMDk6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBjb25zaXN0ZW50IHRhYmxlIG5hbWluZyBpbiBleGFtcGxlIGZsb3csIG5vdGVkIG9uIGNvZGVycyBieSBEYXZlCgoyMDA0LTEyLTEwIDA5OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaCwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtYWRkIGZsYWcgZm9yIHJvdyBkZWxldGVkCiAgIC1pZiBubyBlcnJvcnMsIGluc2VydC9kZWxldGUgbmV3L2RlbGV0ZWQgcm93IGludG8gY29udGFpbmVyCgoyMDA0LTEyLTEwIDA5OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIGZpeCBjYXNlIG9mIG1pc3NpbmcgZ2V0IGNvZGUKCjIwMDQtMTItMTAgMDk6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHVzZSBzYW1lIGNhY2hlIHRpbWVvdXQgb24gYWxsIHBsYXRmb3JtcwoKMjAwNC0xMi0xMCAwOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggMTA1NjkyNzogNS4yLXAwMzogZnJlZWJzZCBpbnRlcmZhY2UgYnVncwogICAgIC0gZml4IGJ1ZyAxMDU1NzgxOiBnZXQtbmV4dCBmYWlscyB0byBzdGVwIGludG8gaW50ZXJmYWNlcyBncm91cCBjb3JyZWN0bHkKICAgICAtIGZpeCBidWcgMTA1Njc2MDogYWdlbnQgaWdub3JlcyBpZnNwZWVkLCB0eXBlIHNldHRpbmdzIGluIHNubXBkLmNvbmYKICAgLSBhbHNvIGZpeCBidWcgMTA1Njc2MCBmbyBIUC1VWCwgc29sYXJpcywgV2luMzIgYW5kIG90aGVycwoKMjAwNC0xMi0xMCAwODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBhcHBseSBwYXRjaCAxMDczODk3OiBmaXggaWYtbWliIGRhdGEgYWNjZXNzIDY0Yml0IGNvdW50ZXIgd3JhcCBkZXRlY3Rpb24KCjIwMDQtMTItMDkgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGRlbGV0ZSByZW1vdmVkIHJvdyBhZnRlciB1c2VyIGNvbW1pdCBmdW5jdGlvbiBjYWxsZWQKICAgLSByZW1vdmUgcm93IGluc2VydC9kZWxldGUgaW4gdW5kbyAtIGhhbmRsZWQgaW4gY29tbWl0CgoyMDA0LTEyLTA5IDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICBjaGVjayByZXF1ZXN0cyBmb3IgZXJyb3JzIG9uIGdldCBtb2RlcyB0b28KCjIwMDQtMTItMDkgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBkb24ndCBmcmVlIG51bGwgcG9pbnRlcgoKMjAwNC0xMi0wOSAxMTo1NyAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFNsaWdodGx5IGNsZWFuZXIgc3VtbWFyaWVzIG9mIGNvbmZpZyBmaWxlIGhhbmRsaW5nLgoKMjAwNC0xMi0wOSAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFsbG93IHRoZSB0cmFwIGRhZW1vbiB0byBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgQWdlbnRYIHNvY2tldC4KCjIwMDQtMTItMDkgMTE6NTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBOZXcgdXRpbGl0eSByb3V0aW5lcyBmb3IgY2hlY2tpbmcgbWF4aW11bSAocmF0aGVyIHRoYW4gZXhhY3QpIHNpemUgbGltaXRzLgoKMjAwNC0xMi0wOSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIFVzZSB0aGUgbGVuZ3RoIHN1cHBsaWVkIGR1cmluZyByZWdpc3RyYXRpb24gd2hlbiBkZWNpZGluZyBob3cKICAgbXVjaCBvZiB0aGUgT0lEIHRvIHNraXAgYmVmb3JlIGNvbXBhcmluZyBpbnN0YW5jZSBzdWJpZGVudGlmaWVycywKICAgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHNlY29uZC1ndWVzcyB3aGF0IHRoZSBNSUIgaW1wbGVtZW50ZXIgd2FudGVkLgoKICAgVGhlIE1mRCBmcmFtZXdvcmsgKHdoaWNoIGlzIHRoZSBvbmx5IHBsYWNlIHRoaXMgaGVscGVyIGlzIGN1cnJlbnRseQogICB1c2VkKSBhbHJlYWR5IHRha2VzIHRoZSBvYmplY3Qgc3ViaWRlbnRpZmllciBpbnRvIGFjY291bnQgd2hlbgogICBpbnNlcnRpbmcgdGhlIGhlbHBlciwgdGh1cyBkb2luZyBzbyBhZ2FpbiB3aWxsIGJyZWFrIHRoaW5ncy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjEgLT4gVjUuMgoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzoxNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHdvcmRpbmcgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0CgoyMDA0LTExLTI0IDE3OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudCBnZXRfaW5kZXhlcygpIGJ5IGV4YW1wbGUKCjIwMDQtMTEtMjQgMTc6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnQgZ2V0dGFibGUoKQoKMjAwNC0xMS0yNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENvbnZlcnQgR05VIHNwZWNpZmljIG1ha2UgaGFja3MgdG8gcG9ydGFibGUgdmVyc2lvbgoKMjAwNC0xMS0yNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDQtMTEtMjQgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBVcGRhdGUgZm9yIDUuMiBhZGRpbmcgYSB0b24gb2YgbmV3IHN0dWZmCgoyMDA0LTExLTI0IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBVcGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDo1NSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIGZvciA1LjIuICBBZGRlZCBhIGZldyByZWZlcmVuY2VzIHRvIHRoZSBvdGhlciBSRUFETUUgZmlsZXMKCjIwMDQtMTEtMjQgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBNYW4gcGFnZSB1cGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB0byA1LjIKCjIwMDQtMTEtMjQgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3RyaWN0IG1hbiBwYWdlIGZpeGVzIGZyb20gRXJpYyBTLiBSYXltb25kCgoyMDA0LTExLTE4IDA1OjI3ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIGZpeCB0eXBlIG5vdGVkIG9uIGNvZGVycwoKMjAwNC0xMS0xNyAxMDoxNyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICAtIGRvY3VtZW50IGZsYWdzIHRvIHVzZSB0byBpbnN0YWxsIG92ZXIgQXBwbGUncyB2ZXJzaW9uICh3aGljaCBoYXMgYSBiYWQKICAgICBjb3B5IG9mIG5ldC1zbm1wLWNvbmZpZwogICAtIGRvY3VtZW50IGV4bHVkaW5nIHRoZSB1bnN1cHBvcnRlZCBpY21wIHRhYmxlCgoyMDA0LTExLTE3IDA2OjQ5ICBkdHMxMgoKICAgKiBBR0VOVC50eHQ6CgogICBGaXggdHlwbyBhbmQgbWlzc2luZyBjb25maWcgZGlyZWN0aXZlLCByZXBvcnRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkuCiAgIEVtcGhhc2lzZSAoaW4gYW4gdW5kZXJzdGF0ZWQgQnJpdGlzaCBzb3J0IG9mIHdheSkgdGhhdCB0aGlzIGlzIHByaW1hcmlseQogICBkZXNjcmliaW5nIHRoZSB2NCBhZ2VudCwgYW5kIHRoaW5ncyBtYXkgYmUgZGlmZmVyZW50IHdpdGggdGhlIHY1IHRvb2xraXQuCgoyMDA0LTExLTE3IDA1OjI5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjYgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTEtMTYgMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIHJjNAoKMjAwNC0xMS0xNiAxNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgY29uZmlndXJlIGluIGludGVyZmFjZSBpb2N0bCBjb2RlIGJ5IGRlZmF1bHQKICAgLSBpZmRlZiBvdXQgYXJjaCBkZXBlbmRlbnQgY29kZSBpbiBpbnRlcmZhY2UgY29tbW9uCgoyMDA0LTExLTEyIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdHdlYWtzCgoyMDA0LTExLTExIDA2OjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gbW9yZSBjaGFuZ2VzIGFuZCBmaXhlcwoKMjAwNC0xMS0wOSAwODoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbm9uLW9wdGlvbmFsIG5hdHVyZSBvZiBzbm1wZC5jb25mCiAgIChzcG90dGVkIGJ5IFdpbGxpYW0gQnVja2xleSkKCjIwMDQtMTEtMDkgMDg6MTIgIGR0czEyCgogICAqIEZBUToKCiAgIFJhaWQgUm9iZXJ0J3MgRkFRIGZvciBzb21lIHVzZWZ1bCBlbnRyaWVzLgoKMjAwNC0xMS0wOSAwNToxNiAgZHRzMTIKCiAgICogVE9ETzoKCiAgIEl0J3MgYWJvdXQgdGltZSB3ZSBoYWQgYSBmcmVzaCBUT0RPIGxpc3QuCiAgIFRoZXJlIG1heSB3ZWxsIGJlIGJpdHMgdGhhdCBjYW4gYmUgc2FsdmFnZWQgZnJvbSB0aGUKICAgb2xkIHZlcnNpb24sIGJ1dCBJJ2xsIGxlYXZlIHRoYXQgdG8gc29tZW9uZSBlbHNlLgoKMjAwNC0xMS0wNSAyMTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZiwgbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zCiwgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zCiwgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zCiwgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zCiwgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMwosIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zCiwgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMKLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3V0aWwuMwosIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjA6MjcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlIGZyb20gQnJ1Y2UKCjIwMDQtMTEtMDUgMTM6MDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBUaGlzIHBhdGNoIGZpeGVzIGEgY29uZmlndXJlIHByb2JsZW0gd2hlbiBjb21waWxpbmcgd2l0aCBzb21lIFdpbmRvd3MgY29tcGlsZXJzLgogICBUaGUgYWZmZWN0ZWQgcGxhdGZvcm1zIHdlcmUgTWluR1cgYW5kIEN5Z3dpbiwgdGhlIHBhdGNoIHNob3VsZCBub3QgZWZmZWN0IE1TVkMrKwogICBidWlsZHMuCgoyMDA0LTExLTA1IDAyOjA1ICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGRlbHRhLjEsIHNubXBkZWx0YS4xLmRlZgosIHNubXBkZi4xLCBzbm1wZGYuMS5kZWYsIHNubXBuZXRzdGF0LjEsCiAgICAgc25tcG5ldHN0YXQuMS5kZWY6CgogICBHZW5lcmF0ZSAiZml4ZWQgaW5mb3JtYXRpb24iIGNvbW1hbmQgbWFuIHBhZ2VzIGR5bmFtaWNhbGx5CiAgIChzbyB0aGV5IHBpY2sgdXAgdGhlIHZlcnNpb24gaGVhZGVyKSByYXRoZXIgdGhhbiBoYXZlIHRoZW0gc3RhdGljLgoKMjAwNC0xMS0wNSAwMToyOCAgZHRzMTIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBidWxrZ2V0LjEuZGVmLAogICAgIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEKLCBzbm1wZGYuMSwgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMS5kZWYKLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmLAogICAgIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEuZGVmLCBzbm1wdmFjbS4xLmRlZiwKICAgICBzbm1wd2Fsay4xLmRlZjoKCiAgIFR3ZWFrIHRoZSBvbmUtbGluZSBkZXNjcmlwdGlvbnMgb2YgdmFyaW91cyBjb21tYW5kcyB0byBpbXByb3ZlCiAgIGNvbnNpc3RlbmN5IGFuZCBjbGFyaXR5CgoyMDA0LTExLTA0IDIxOjM4ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGVzIChtb3N0bHkgc3R1ZmYgd2UgZG9uJ3Qgc3VwcG9ydCkKCjIwMDQtMTAtMjkgMjI6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgLT4gNS4yLnJjMgoKMjAwNC0xMC0yOSAyMjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIC0+IDUuMi5yYzIKCjIwMDQtMTAtMjkgMTM6MjggIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpcnN0IHBhc3MgYXQgYWdlbnQgbWlicyByZWFkbWUKCjIwMDQtMTAtMjYgMDU6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjYgMDU6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCB1bmNvbmRpdGlvbmFsbHkgYWRkIGxpYnJhcmllcyAoZnJlZWJzZCBkb2Vzbid0IGhhdmUgbGliZGwpCgoyMDA0LTEwLTIyIDE4OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBmaXggY29uZmxpY3QKCjIwMDQtMTAtMjIgMTg6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0yMiAxNzo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jcwoKMjAwNC0xMC0yMiAxNzo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTAtMjIgMTE6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjIgMTE6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG1vdmUgUElDIGNoZWNrIGFmdGVyIG1vZHVsZSBwcm9jZXNzaW5nLCAmIGNoZWNrIGFnYWluc3QgY29tcGxldGUgbW9kdWxlIGxpc3QKICAgLSBjaGVjayBkaXNraW8gYW5kIGxtU2Vuc29ycyBhZ2FpbnN0IGNvbXBsZXRlIG1vZHVsZSBsaXN0CgoyMDA0LTEwLTIyIDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4ZXMgZm9yIGJ1aWxkaW5nIGlmVGFibGUgdy9vdXQgaWZYVGFibGUKCjIwMDQtMTAtMjIgMDI6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJZiB3ZSdyZSBnb2luZyB0byBpbmNsdWRlIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQgYnkgZGVmYXVsdCwKICAgKGFuZCBsb2FkIGl0IGF1dG9tYXRpY2FsbHkpLCBpdCB3b3VsZCBiZSBldmVuIG1vcmUgdXNlZnVsIHRvIGFjdHVhbGx5CiAgIGluc3RhbGwgaXQsIHNvIGl0IHdhcyBhdmFpbGFibGUgdG8gX2JlXyBsb2FkZWQhCgoyMDA0LTEwLTIyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaDoKCiAgIElmIHdlJ3JlIGdvaW5nIHRvIGluY2x1ZGUgdGhlIE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydCBieSBkZWZhdWx0LAogICBpdCB3b3VsZCBiZSBzZW5zaWJsZSB0byBsb2FkIHRoYXQgTUlCIGF1dG9tYXRpY2FsbHkuCgoyMDA0LTEwLTIxIDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgaWZkZWYgdXNlIG9mIHZhcmlhYmxlIHRoYXQgaXNuJ3QgYWx3YXlzIGRlZmluZWQKCjIwMDQtMTAtMjEgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgbXVsdGlwbGUgcm93cy90YWJsZXMgc2V0IHByb2JsZW0sIG5vdGVkIGJ5IFN2ZW4gSm9uYXMgb24gY29kZXJzCgoyMDA0LTEwLTIwIDIxOjAyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW52b2tlIHBlcmxyZWFsY2xlYW4gZmlyc3QgaW4gdGhlIGRpc3RjbGVhbiBzZXF1ZW5jZS4KCjIwMDQtMTAtMjAgMTk6NTUgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBwZXJmb3JtIGRlZXAgY2xlYW5pbmcgb24gUGVybCB0cmVlIHRvIGZpeCBidWcgIzg5NDQyNS4KCjIwMDQtMTAtMjAgMTk6MzUgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgZml4IHRhYmxlIG92ZXJmbG93IChpbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggdG8gNS4xLjIpLgoKMjAwNC0xMC0yMCAxODo1MiAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIHJlbW92ZSBzZWNvbmQgcmVhZF9vYmppZCBmcm9tIG1ldGhvZHMgbGlzdCAoSW5zcGlyZWQgYnkgY3VycmVudCBEZWJpYW4gcGF0Y2gpCgoyMDA0LTEwLTIwIDE2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgZml4IGJ1ZyMxMDQzMTk3ICgyKSAtIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZSB1c2luZyB1bmFtZSB0byBxdWFsaWZ5IGFjdGlvbgoKMjAwNC0xMC0xOSAxNjoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBtb3ZlIHJwbSBoZWFkZXIgaW5jbHVkZXMgaW5zaWRlIEhBVkVfTElCUlBNIGJlY2F1c2Ugb2YgaGVhZGVyIGRlcGVuZGVuY2llcwoKMjAwNC0xMC0xOSAxNjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbW92ZSBycG0gY2hlY2tzIGJhY2sgYWZ0ZXIgbW9kdWxlIHByb2Nlc3NpbmcsIHNpbmNlIHJwbSBvbmx5IGluY2x1ZGVkCiAgICAgaWZmIGhyX3N3aW5zdCBnZXRzIGNvbmZpZ3VyZWQgaW4KCjIwMDQtMTAtMTkgMTQ6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIHJlbW92ZSBjcHAgd2FybmluZwoKMjAwNC0xMC0xOSAxNDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0xOSAxNDowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gdXBkYXRlIHJlbGVhc2UKICAgLSBmb3IgZXZlcnkgQUNfQVJHX0VOQUJMRSwgYWRkIGNvcnJlc3BvbmRpbmcgQUNfQVJHX1dJVEggd2l0aCBlcnJvciBtZXNzYWdlCiAgIC0gZm9yIGV2ZXJ5IEFDX0FSR19XSVRILCBhZGQgY29ycmVzcG9uZGluZyBBQ19BUkdfRU5BQkxFIHdpdGggZXJyb3IgbWVzc2FnZQogICAtIG1vdmUgbGlicndhcC9ycG0gY2hlY2tzIGVhcmxpZXIsIHNvIHRoZXkgd2lsbCBmYWlsIGJlZm9yZSBtb2R1bGUgcHJvY2Vzc2luZwogICAtIGNoZWNrIG1ic3RhdCBzdHJ1Y3QgZm9yIG1fY2x1c3RlcnMgKGZyZWVic2QgYXBwYXJlbnRseSBkcm9wcGVkIGl0KQoKMjAwNC0xMC0xOSAwMzoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRG9uJ3QgZ2VuZXJhdGUgJ0dldCcgY29kZSBmb3IgaW5hY2Nlc3NpYmxlIG9iamVjdHMuCgoyMDA0LTEwLTE5IDAzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIGFnZW50IGNyYXNoaW5nIGlmIG5vICdkZWxldGVfcm93JyBvcgogICAnZHVwbGljYXRlX3Jvdycgcm91dGluZXMgd2VyZSBjb25maWd1cmVkLgoKMjAwNC0xMC0xOSAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJldmVudCB0aGUgYWdlbnQgZnJvbSBzcGlubmluZyBpbiBhbiBpbmZpbml0ZSBsb29wCiAgIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlLgoKMjAwNC0xMC0xOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUmVwb3J0ICp3aGljaCogYWdlbnR4IHNvY2tldCBjb3VsZG4ndCBiZSBvcGVuZWQuCgoyMDA0LTEwLTE4IDIwOjI0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHJlbGVhc2UKCjIwMDQtMTAtMTggMjA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZXBsYWNlIGluY29ycmVjdCBjb21tZW50IGJsb2NrIHcvbm90ZSBhYm91dCBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE4IDIwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgbmV3IGlvY3RsIGlmSW5kZXggZmluZAogICAtIG1ha2UgbmV4dCBhbGlhcyBmdW5jIHN0YXRpYwoKMjAwNC0xMC0xOCAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgLSB1c2UgbmV3IGlwYWRkcmVzcyBlbnRyeSBjb3B5IGZ1bmN0aW9uIGZvciB0YWJsZSBsZXZlbCB1bmRvIHNldHVwCiAgIC0gcmVtb3ZlIG5vZGUgbGV2ZWwgdW5kbyBzZXR1cAogICAtIGltcGxlbWVudCB1bmRvX2NvbW1pdAoKMjAwNC0xMC0xOCAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIG5ldyBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfZW50cnlfY29weSB0byBjb3B5IGVudHJpZXMKCjIwMDQtMTAtMTcgMjA6NTYgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGZpeCBzbGlnaHQgbWVtb3J5IGxlYWsKCjIwMDQtMTAtMTcgMjA6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMTAtMTcgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCBmZCBwYXJhbWV0ZXIgdG8gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA0LTEwLTE3IDE5OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IHRyYWNrIHdoZXRoZXIgdXNlciBhbGxvY2F0ZWQgZGF0YSBjb250ZXh0IGZvciBub24tdHJhbnNpZW50IGRhdGEKCjIwMDQtMTAtMTYgMTk6NTMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSBib3R0b20gdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNiAxOTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHVzZSBuZXcgZmQgcGFyYW0gZm9yIGlmaW5kZXggbG9va3VwLCB3aXRoIGxvY2FsIHNvY2tldAogICAtIGRvbid0IGxvb2t1cCBpbnRlcmZhY2UgaWYgbm8gbmFtZQoKMjAwNC0xMC0xNiAxODo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZG9uJ3QgdXNlIG1fY2x1c3RlcnMgaWYgbm90IGF2YWlsYWJsZQoKMjAwNC0xMC0xNiAxODo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIHNpbXBseSByZXF1aXJlIGludGVyZmFjZSwgbGV0IGl0IGRlY2lkZSBhYm91dCBzcGVjaWZpYyBhcmNoIHJlcXVpcmVzCgoyMDA0LTEwLTE2IDE4OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBhbHdheXMgZGVmaW5lIGlmaW5kZXggZnVuY3Rpb247IHNpbXBseSByZXR1cm4gMCBpZiBTSU9DR0lGSU5ERVggbm90IGF2YWlsCiAgIC0gYWRkIGZkIHBhcmFtIHRvIGlmaW5kZXggZ2V0LCBmb3Igb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE2IDE4OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gc2VwYXJhdGUgaW50ZXJmYWNlX2NvbW1vbiBpbml0IGZyb20gYWNjZXNzX2ludGVyZmFjZSBpbml0CiAgIC0gY2FsbCBhY2Nlc3MgZnVuY3Rpb24sIG5vdCBhcmNoIChzbyB1bnN1cHBvcnRlZCBhcmNoZXMgd29yaykKCjIwMDQtMTAtMTYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhbHdheXMgaW5jbHVkZSBpb2N0bCB3L2ludGVyZmFjZSBzdHVmZgoKMjAwNC0xMC0xNiAxODo0OCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICBtb3ZlIGFjY2VzcyBpbml0IGZyb20gYWdlbnQgdG8gbWliIGluaXQKCjIwMDQtMTAtMTYgMTM6NDQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvdGVzdF9mdW46CgogICAtIGNvbW1lbnQgb3V0IGFuc2kgY29sb3JzIChpbmNvbnNpc3RlbnQgdXNlKQogICAtIHByZWZpeCBzdWItdGVzdHMgJiBzdW1tYXJ5IHdpdGggbWFpbiB0ZXN0IG51bWJlciB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTEwLTE2IDEzOjQzICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2g6CgogICB1c2Ugc25tcGdldG5leHQgaW5zdGVhZCBvZiBzbm1wdGFibGUgdGVzdGluZyB0YWJsZXMKCjIwMDQtMTAtMTYgMTM6NDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIGNoZWNrIGZvciBubyBwaWQgZmlsZXMgZm91bmQKICAgLSBjaGVjayBmb3IgcGlkZmlsZSB2YW5pc2hpbmcKCjIwMDQtMTAtMTYgMTM6NDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIHN0cmF5IHF1b3RlCgoyMDA0LTEwLTE2IDEwOjMyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGlmIG5ldHN0YXQgaXMgYXZhaWxhYmxlLCB0ZXN0IGZvciBwb3J0IGluIHVzZSBhbmQgdHJ5IDIgbW9yZSByYW5kb20gcG9ydHMKCjIwMDQtMTAtMTUgMjE6MDEgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjE6MDAgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTkgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMwoKMjAwNC0xMC0xNSAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwNC0xMC0xNSAyMDoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHVwZGF0ZSBmb3IgZGF0YSBhY2NjZXNzIGNoYW5nZQoKMjAwNC0xMC0xNSAyMDowNCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYwo6CgogICBsbVNlbnNvcnMgY2hhbmdlcyBmcm9tIEJydWNlCgoyMDA0LTEwLTE1IDE4OjAwICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzIgbWFuZGlyMmh0bWwgc2NyaXB0IHdhcyBjdXR0aW5nIG9mZiB0aGUgdG9wIG9mIHRoZSBtYW4gcGFnZXMuICBGaXhlZC4KCjIwMDQtMTAtMTUgMTc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuaCwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwgaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTY6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmMKLCBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvOgogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0LAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dDoKCiAgIHJlbW92ZSBub24tc291cmNlIGZpbGVzCgoyMDA0LTEwLTE1IDE1OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgZml4IG1heCBpbmRleCBsZW4KCjIwMDQtMTAtMTUgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGluIGxvZyBtc2cKCjIwMDQtMTAtMTUgMTU6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICB1c2UgU0lPQ0dJRklOREVYIGlvY3RsIGZvciBpZkluZGV4CgoyMDA0LTEwLTE1IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGludGVyZmFjZV9pb2N0bC5jLCBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTE6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICB0d2VhayBidWZmZXIgc2l6ZSBjb2RlIGFuZCBhcHBseSB0byB0Y3Agc29ja2V0cyB0b28KCjIwMDQtMTAtMTQgMjA6MjkgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgTW9kaWZpZWQgaW5jbHVkZXMgZm9yIFdpbmRvd3MgYnVpbGRzIHRvIGluY2x1ZGUgd2luc29jayByYXRoZXIgdGhhbiBVbml4IHNvY2tldHMuCgoyMDA0LTEwLTE0IDE4OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgb3B0aW1pemUgbWliIGluZGV4IHNpemUgZGVmcyAocmVkdWNlIGNhY2hlIHNpemUgYnkgaGFsZiEpCgoyMDA0LTEwLTE0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmgsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBkb24ndCB1c2Ugc3RydWN0IHB0ciBhcyBkYXRhIGNvbnRleHQKCjIwMDQtMTAtMTQgMTc6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBkZWZpbmUgbWF4IHBvbGljeSBsZW5ndGgKCjIwMDQtMTAtMTQgMTc6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBmcmVlIGEgZGF0YSBjb250ZXh0IHdlIGRpZG4ndCBhbGxvY2F0ZQoKMjAwNC0xMC0xNCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgY2xhcmlmeSB0aGF0IGEgcG9pbnRlciBzaG91bGRuJ3QgYmUgdXNlZCBhcyB0aGUgZGF0YSBjb250ZXh0IHR5cGUKCjIwMDQtMTAtMTQgMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGFjY291bnQgZm9yIGlwYWRkcmVzLT5PSUQgY29udmVyc2lvbiBpbiBpbmRleCBzcGFjZSBhbGxvY2F0aW9ucwoKMjAwNC0xMC0xNCAxNzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LXNldC5tMmksCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IHZhciBuYW1lCgoyMDA0LTEwLTE0IDA1OjU3ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbWliMmMuY29udGFpbmVyLmNvbmYKLCBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFJldHVybiAnU05NUF9FUlJfTk9FUlJPUicgb24gIm5vcm1hbCIgU0VUIGVycm9ycy4KICAgKFN1Y2ggZXJyb3JzIHNob3VsZCBvbmx5IGJlIHJlcG9ydGVkIHZpYSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKQoKMjAwNC0xMC0xMyAxOToyMSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGNvcnJlY3QgZmFjaWxpdHkgd2hlbiBpbml0aWFsaXppbmcgc3lzbG9nIGxvZyBoYW5kbGVyLgoKMjAwNC0xMC0xMyAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgcmVib290IHdhcm5pbmcgZnJvbSByZWdpc3RlciBzY3JpcHRzIGFuZCBjbGFyaWZ5IHN0ZXAgaW4gYnVpbGQgc3RlcHMKCjIwMDQtMTAtMTMgMTU6MjQgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENyZWF0ZSBsaWJzbm1wLmRlZi5pbiBmaWxlIGZvciBzbm1wbGliX2RsbCBhbmQgbW9kaWZ5IHdpbjMyXENvbmZpZ3VyZSB0bwogICBnZW5lcmF0ZSBsaWJzbm1wLmRlZiBpZiBkeW5hbWljIGlzIHNwZWNpZmllZCBhbmQgd2l0aCBvciB3aXRob3V0IHRoZSBJUHY2CiAgIGxpbmVzIGluIGxpYnNubXAuZGVmLgoKMjAwNC0xMC0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGJ1ZyBbIDEwNDU2MDUgXSBzeW50YXggZXJyb3IgaW4gc25tcHRyYXBkLmMgKHdyb25nIGFyZyBvcmRlcikKCjIwMDQtMTAtMTIgMTc6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWxsb3cgYnVpbGRfb2lkX25vYWxsb2MgdG8gY29tcGxldGVseSBmaWxsIGluY29taW5nIGJ1ZmZlcgoKMjAwNC0xMC0xMiAxNjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLW1vdmUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWxzIGJhY2sgYmVmb3JlIHdlIHVzZSB0aGVtCiAgICAgICAgICAgIChhaCwgdGhlIGpveXMgb2YgYXV0b21hdGVkIHBhdGNoaW5nKQoKMjAwNC0xMC0xMiAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldE5ldFRvTWVkaWFUYWJsZS5tMmQKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKOgoKICAgcmVtb3ZlIGZpbGVzIHVzZWQgZm9yIGNvZGUgZ2VuIChtb3ZlZCB0byBuZXRzbm1wL21vZHVsZS10ZW1wbGF0ZXMgY3ZzIHRyZWUpCgoyMDA0LTEwLTEyIDEzOjI0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggSVBWNiBjb21waWxlIGlzc3VlcyB3aXRoIFBlcmwKCjIwMDQtMTAtMTIgMTM6MDMgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBQZXJsIGNvbXBpbGUgaXNzdWUgd2l0aCBkYmdfdG9rZW5zIGFuZCBkZWJ1Z19udW1fdG9rZW5zLiAgRml4IHNubXB0cmFwZAogICBjb21waWxlIGlzc3VlIGJ5IGFkZGluZyBpcGhsYXBpLmxpYiB0byBuZXRzbm1wbWlic3Nkay4KCjIwMDQtMTAtMTIgMTA6NDAgIHdhc21pdGgzMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgZ2NjIHdpdGggTWluR1cgZG8gbm90IGxpa2UgYSBsYWJsZSB3aXRoIG5vIHN0YXRlbWVudHMgZm9sbG93aW5nLgogICBUaGUgc29sbHV0aW9uIHdhcyB0byBhZGQgYW4gZW1wdHkgc3RhdGVtZW50IGluIHRoZSBzdWRvIGV4Y2VwdGlvbiBoYW5kbGluZwogICBjb2RlIGluIHdpbnNlcnZpY2UuYy4gTmV0LVNOTVAgd2lsbCBub3cgY29tcGlsZSB1c2luZyBhIExpbnV4IGhvc3RlZCBXaW5kb3dzCiAgIGNyb3NzIGNvbXBpbGVyLgoKMjAwNC0xMC0xMSAyMTowNiAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlIG9mIHJhbmdlX3N1YmlkCgoyMDA0LTEwLTExIDIxOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICByZW1vdmUgdW51c2VkIHZhciBzZXNzX2NvbW11bml0eQoKMjAwNC0xMC0xMSAyMTowMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGdldCBkZWZpbml0aW9uIG9mIHNob3VsZF9pbml0CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHBpY2t1cCBuZXcgZGVmaW5pdGlvbiBvZiBzdHJ0b2tfciBhcyBuZWVkZWQuCgoyMDA0LTEwLTEwIDIxOjI4ICBic2hhdzY2NgoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBMTS1TRU5TT1JTLU1JQiBmb3IgU29sYXJpcwoKMjAwNC0xMC0wOSAwNzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGZ1bmM7IHJlbW92ZSBleHRyYSB9CgoyMDA0LTEwLTA5IDA0OjQ4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgcmVtb3ZlIGJ1Z2ZpeCAjMTA0MzE5NyAtIHdyb25nIHBhdGNoIGRvbmUgdGhlIHdyb25nIHdheSBhdCB0aGUgd3JvbmcgdGltZQoKMjAwNC0xMC0wOCAyMjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIGVkaXRzCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTA4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGF1dG9jb25mIHZlcnNpb24gcmVxOyB1cGRhdGUgbmV0LXNubXAgdmVyc2lvbiB0byAucHJvMgoKMjAwNC0xMC0wOCAyMTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBjaGFuZ2UgdGhlIGFub24gZ3JvdXBzL2V0YyBjcmVhdGVkIGJ5IHRoZSBzaW1wbGUgdG9rZW5zIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUgYW5kIHVuaXF1ZQoKMjAwNC0xMC0wOCAyMTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHRlc3QgdGhlIHJpZ2h0IHZhcmlhYmxlCgoyMDA0LTEwLTA4IDIxOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBvYnNvbGV0ZSBzZWN0aW9uIHBpbmtpc2gKCjIwMDQtMTAtMDggMjE6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZW5hYmxlIHN0ZGVycmxvZwoKMjAwNC0xMC0wOCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBmaXggaW5jb25zaXN0ZW5jaWVzIHBvaW50ZWQgb3V0IGJ5IFBhdHJpY2sgV2VsY2hlCgoyMDA0LTEwLTA4IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBzdXJlIHNubXBFbmdpbmVUaW1lIGNhbGN1bGF0aW9ucyBkb24ndCB3cmFwIHBhc3QgYW4gdWludCBzaXplCgoyMDA0LTEwLTA4IDE5OjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgZHVwbGljYXRlIGZ1bmN0aW9uCgoyMDA0LTEwLTA4IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggdHlwbwoKMjAwNC0xMC0wOCAxOToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIHR3ZWFrIHNvbWUgbWFjcm8gYW5kIGZ1Y3Rpb24gbmFtZXMvdmFsdWVzCgoyMDA0LTEwLTA4IDE5OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICB1cGRhdGUgZ2VuZXJlYXRlZCBjb2QKCjIwMDQtMTAtMDggMTk6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHR3ZWFrIG1heCBvaWQgZ3Vlc3N3b3JrCgoyMDA0LTEwLTA4IDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlZHVjZSBzb21lIGdlbmVyYXRlZCBjb21tZW50cyBpZiB2ZXJib3NlIG5vdCBzZXQKCjIwMDQtMTAtMDggMTY6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC11c2UgbmV3IG1hY3JvIGZvciBzaXplIG9mIGluZGV4IG9pZCBidWZmZXIKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC1pbml0IGlycmV2ZXJzaWJsZSBjb21taXQgdG8gMAoKMjAwNC0xMC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgYWdlbnQvc25tcF9hZ2VudC5jCjoKCiAgIEFwcGx5IHBhdGNoIGZvdW5kIGluIGJ1ZyAjMTA0MDQzMSB0byBpbmNsdWRlIHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbiB0aGUgZHVtcCBvdXRwdXQKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgZGVmaW5lIGluIGhlYWRlciBmb3IgY2FjaGUgdGltb3VldAoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlbW92ZSBzb21lIHJlZHVuZGFudCBjb21tZW50cwoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdHJ5IHRvIHNob3J0ZW4gc2l6ZSBvZiBvaWQgYnVmZmVycyBmb3IgaW5kZXhlcwoKMjAwNC0xMC0wOCAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLWRvbid0IGdlbiBpbnRlcm5hbCBlbnVtcyBpZiBub3QgbWFwcGluZwoKMjAwNC0xMC0wOCAxNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjCiwgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYywKICAgICBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbm9kZS1nZXQubTJpCiwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpLAogICAgIHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksCiAgICAgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCgoyMDA0LTEwLTA4IDE2OjAyICBzbGlmCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEZyb20gRGViaWFuIHBhdGNoIG5ldC1zbm1wXzUuMS4yLTUuZGlmZi5neiAtLSBwcm9wYWdhdGUgV1JBUExJQlMKCjIwMDQtMTAtMDggMTU6MzIgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFwcGx5IHRoZSBpbnRlbnQgb2YgcGF0Y2ggOTQ3MDMzIGZyb20gQ2xhdXMgS2xlaW4gdG8gYWxsb3cgZm9yIGNyb3NzIGNvbXBpbGF0aW9uIHN1cHBvcnQgdGhyb3VnaCB0aGUgdXNlIG9mIC0tcHJlZml4PSBhbmQgLS1leGVjLXByZWZpeD0gZmxhZ3MuICBEaWRuJ3QgYXBwbHkgdGhlIHdoaXRlIHNwYWNlLCByZWZvcm1hdHRpbmcsIGV0YyBwb3J0aW9ucyBzaW5jZSBpdHMgYWdhaW5zdCBvdXIgcGF0Y2ggYWNjZXB0YW5jZSBzdGFuZGFyZHMuICBBbHNvIG1hZGUgYSBzbWFsbCBmaXggc28gdGhhdCAtLXBlcmZpeD0vc29tZXRoaW5nIGRvZXNuJ3QgYWRkIGEgL25ldC1zbm1wIHN1ZmZpeCB0byB0aGUgaW5jbHVkZSBkaXJlY3RvcnkKCjIwMDQtMTAtMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgWyAxMDIyNzg3IF0gUGF0Y2ggKGZyb20gR2VlcnQgRGUgUGV1dGVyKSB0aGF0IGFsbG93cyBVRFAgYnVmZmVyIHR1bmluZy4uLiAgVGFrZSAyIGFmdGVyIGRpc2N1c3Npb24gb24gLWNvZGVycwoKMjAwNC0xMC0wOCAxNDoxNSAgc2xpZgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwKICAgICBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBtYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbQo6CgogICBTZWVuIGluIGEgRGViaWFuIHBhdGNoLiAgSW5zZXJ0IHJlcXVpcmVkIGJsYW5rIGxpbmUgZm9sbG93aW5nIF9fRU5EX18gY3V0IG1hcmsuCgoyMDA0LTEwLTA4IDEzOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRG9uJ3Qgc2hvdyBzbXV4IHBlZXIgcGFzc3dvcmQgaW4gY29ubmVjdCBhY2NlcHQvcmVmdXNlIGxvZyBtZXNzYWdlcy4KCjIwMDQtMTAtMDggMTE6NTIgIHNsaWYKCiAgICogdGVzdGluZy86IHJmYzEyMTMvUkVBRE1FLCByZmMxMjEzL3J1biwKICAgICByZmMxMjEzL3NubXBmdW4uc2gsIHJmYzEyMTMvdGVzdF9mdW4sCiAgICAgcmZjMTIxMy90ZXN0bWliMS5zaCwgcmZjMTIxMy90ZXN0bWliMi5zaCwKICAgICByZmMxMjEzL3Rlc3RtaWIzLnNoLCB0ZXN0cy9UMTYwcmZjMTIxMywKICAgICB0ZXN0cy9UMTYxcmZjMTIxMywgdGVzdHMvVDE2MnJmYzEyMTM6CgogICBwYXRjaCAjNjg5NzU3IC0gYWRkIHRlc3QgY2FzZXMgZm9yIGFjY2Vzc2luZyBSRkMtMTIxMyBNSUIgdmFyaWFibGVzLgogICB0aGFua3MgdG8gTGluZyBYaWFvZmVuZyBmb3IgdGhlIG9yaWdpbmFsIHdvcmsuCgoyMDA0LTEwLTA4IDEwOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBpbml0aWFsaXplIHB0ciB0byBOVUxMCgoyMDA0LTEwLTA4IDEwOjMxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgZml4IGJ1ZyMxMDQzMTk3IC0gcHJvdmlkZSBhIGZ1bmN0aW9uIHRvIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZQoKMjAwNC0xMC0wOCAxMDoyMiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIGZpeCBidWcgWyAxMDI1NDU0IF0gdW5kZWZpbmVkIHN5bWJvbHMgaW4gc25tcHRyYXBkCiAgICAgLSBtb3ZlIGluY2x1ZGUgImFnZW50X21vZHVsZV9pbml0cy5oIiBpbmNsdWRlIGluc2lkZSBpbml0X2FnZW50CgoyMDA0LTEwLTA4IDA5OjI5ICB3YXNtaXRoMzIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMm1zdmMuaDoKCiAgIFRoZSBMaW51eCBob3N0ZWQgdmVyc2lvbiBvZiBNaW5HVyByZXBvcnRzIGl0c2VsZiBhcyBtaW5ndzMybXN2Yy4gVGhpcyBzeXN0ZW0KICAgaGVhZGVyIGRvZXMgbm90aGluZyBtb3JlIHRoYW4gZGVmaW5lIG1pbmd3MzIgYW5kIGluY2x1ZGUgbWluZ3czMi5oLiBBbGwgY2hhbmdlcwogICBzaG91bGQgYmUgbWFkZSBpbiBtaW5ndzMyLmguCgoyMDA0LTEwLTA4IDA5OjA0ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgbmV0c25tcF9nZXRlbnYoKTogTW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnRvIFdJTjMyIElGREVGCgoyMDA0LTEwLTA4IDA5OjAxICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIGxvY2FsL3NubXBjb25mLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgbmV0c25tcF9nZXRlbnYoKSB3aGljaCBpcyBhIHdyYXBwZXIgZm9yIGdldGVudigpIHRvIGFkZAogICBiYXNpYyBXaW5kb3dzIHJlZ2lzdHJ5IHN1cHBvcnQuCgoyMDA0LTEwLTA3IDE5OjMxICBzbGlmCgogICAqIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oIGFuZCBuZXQtc25tcC90eXBlcy5oCiAgIGZvciBpbXByb3ZlZCBVQ0RfQ09NUEFUSUJMRSB1c2VzIChmcm9tIEZlZG9yYSBuZXQtc25tcC01LjAuNi1jb21wYXQucGF0Y2gpLgoKMjAwNC0xMC0wNyAxODo0NCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSBtaWIyYy5pdGVyYXRlMi5jb25mCgoyMDA0LTEwLTA3IDE3OjE1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmUtaW5zdGFsbCBwYXRoIGZpeCwgcHJvbXB0IG92ZXJ3cml0ZSBzbm1wLmNvbmYKCjIwMDQtMTAtMDcgMTY6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyIERMTCBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNToyMSAgYWxleF9iCgogICAqIHNubXBsaWIvc3RydG9rX3IuYywgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIE1TVkMgc3VwcG9ydCBmb3Igc3RydG9rX3IKCjIwMDQtMTAtMDcgMTQ6NTcgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA3IDA1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzdHJ0b2tfci5jOgoKICAgYWRkIHN0cnRva19yCgoyMDA0LTEwLTA2IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIG1ha2UgcHJveHkgbm8tY29tbXVuaXR5IHN1cHBvcnQgdXNpbmcgLUNjIGluc3RlYWQgb2YgYXNzdW1pbmcgeW91IHdhbnRlZCBpdCB0aGF0IHdheQoKMjAwNC0xMC0wNiAxOToyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHRlbXAgdmFyICJpIiBpbnRyb2R1Y2VkIGJ5IHJlY2VudCBpcHY2IHBhdGNoLgoKMjAwNC0xMC0wNiAxOToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgcmVuYW1lIHRvIE5FVFNOTVBfUk5ELiAoZm9yZ290IHRvIGNoZWNrIHRoaXMgZmlsZSBpbiBmcm9tIGVhcmxpZXIgY2hlY2tpbgoKMjAwNC0xMC0wNiAxNzo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXgga3NtIHBhdGNoIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgQnVjayBIdXBwbWFubgoKMjAwNC0xMC0wNiAxNzo0OSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICBhZGQgbWlzc2luZyBkZWZpbmUgRU5HSU5FSURfVFlQRV9ORVRTTk1QX1JORCAyNTYKCjIwMDQtMTAtMDYgMTY6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCBidWcgWyA5ODYyMzggXSBzbm1wZCBsb29wcyBmb3JldmVyCgoyMDA0LTEwLTA2IDE2OjAxICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgZml4IGJ1ZyMxMDQwNDI5OiB0ZXN0IGV2ZXJ5IGZfZm10YWRkciBjYWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nIG9yIGZyZWVpbmcuCiAgIENhdGNoIG1lbW9yeSBsZWFrcyBpbiBzbm1wdGVzdCwgc25tcHRyYXBkLCBhbmQgc25tcHN0YXR1cy4KCjIwMDQtMTAtMDYgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUGF0Y2ggWyA5MjM0OTQgXSBmcm9tIEJ1Y2s6IGltcHJvdmVkIGF1dG9jb25mIHN1cHBvcnQgYW5kIGhlaW1kYWwgc3VwcG9ydCBmb3Iga3NtLgoKMjAwNC0xMC0wNiAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggWyA5NDIxNTUgXSBGcm9tIERhaS5IOyBJUHY2IGFkZHJfc3RyaW5nIGZpeCBmb3IgbGlid3JhcAoKMjAwNC0xMC0wNiAxNDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBidWcgWyA2MTU3NDQgXSBTcHVyaW91cyBESVNNQU4tRVZFTlQgdHJhcAoKMjAwNC0xMC0wNiAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUGF0Y2ggWyAxMDQwNzE4IF0gZnJvbSBCZW4gUm9nZXJzOiBBZ2VudHggZXJyb3IgcHJvcGFnYXRpb24gYW5kIGluZmluaXRlIGxvb3AKCjIwMDQtMTAtMDYgMTQ6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBwdHIgaW5pdCBiZWZvcmUgZGVyZWZlcmVuY2U7IG5vIGlkZWEgaG93IHRoaXMgaGFzIGJlZW4gd29ya2luZyBmb3IgdGhlCiAgIGxhc3QgNiBtb250aHMsIGFuZCB3aHkgaXQgc3RhcnRlZCBjcmFzaGluZyBvbiBtZSB0b2RheS4KCjIwMDQtMTAtMDYgMTM6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEzOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBhbGwgb2YgZml4IGZvciBidWcgODY1NDE1CiAgICAgLSBoZWFkZXJfaWZFbnRyeSBkZXBlbmRzIG9uIGNvbnRpZ3VvdXMgaWZJbmRleCB2YWx1ZXMsIGFuZCBJJ20gbm90IGFib3V0CiAgICAgICB0byB0cnkgYW5kIGZpeCB0aGF0IGluIHRoaXMgaWZkZWYgaGVsbC1ob2xlLiBUaG9zZSB3YW50aW5nIG5vbi1jaGFuZ2luZwogICAgICAgaWZJbmRleGVzIHdpbGwganVzdCBoYXZlIHRvIG1vdmUgdG8gdGhlIG1mZC1yZXdyaXRlLgoKMjAwNC0xMC0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYmFjayBvdXQgcGFydCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUsIGl0IGJyb2tlIHNvbGFyaXMgJiBwcm9iYWJseSBvdGhlcnMKICAgICAobm90IGFsbCBwbGF0Zm9ybXMgaGF2ZSBJbnRlcmZhY2VfU2Nhbl9Jbml0LEludGVyZmFjZV9TY2FuX05leHQpCgoyMDA0LTEwLTA2IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoICMxMDQxMzc4IGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggdGhlIGRlc2NyaXB0aW9uIG9mIGhvdyBlbmdlSURzIGFyZSBjcmVhdGVkLgoKMjAwNC0xMC0wNiAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCB0aGUgY29tcGxhaW50IG91dGxpbmVkIGJ5IFRob21hcyBBbmRlcnMgaW4gUGF0Y2ggMTA0Mzc4IHVzaW5nIHRoZSBuZXQtc25tcCBlbnRlcnByaXNlIG51bWJlciBpbnN0ZWFkIG9mIHRoZSBVQ0Qgb25lIGZvciByYW5kb21seSBjb21wb3NlZCBlbmdpbmVJRHMKCjIwMDQtMTAtMDYgMTA6MzUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA1IDIyOjI3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hZ251cyBGcm9tcmVpZGUsIE1hcmN1cyBNZWlzc25lciwgQW5kcmV3IFJ1Y2tlciBKb25lcywgRGFpLkguCgoyMDA0LTEwLTA1IDIxOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGFydCBvZiBwYXRjaCBbIDkzOTU5NSBdIGZyb20gc3VuICh1cGRhdGUgY2FjaGUgdGltZXMpCgoyMDA0LTEwLTA1IDIxOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBhcHBseSB0aW55IHBpZWNlIG9mIHBhdGNoIFsgODM2MzkwIF0KICAgICAtIGFwcGxpZWQgbW9yZSBpZm5hbWUgdG8gaWZ0eXBlIG1hcHBpbmdzCgoyMDA0LTEwLTA1IDIxOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIGFwcGx5IHBhdGNoIFsgODExNjg3IF0gUHJveHkgc3VwcG9ydCBpZ25vcmVzIGNvbW11bml0eSBzdHJpbmcgaWYgLWMgb3B0aW9uIG9taXR0ZWQKCjIwMDQtMTAtMDUgMjA6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgNTUxMTgzIF0gTFJVIHJlcGxhY2VtZW50IGZvciBhZGRyZXNzIGNhY2hlCgoyMDA0LTEwLTA1IDIwOjA2ICBhbGV4X2IKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgbWlzc2luZyByZWZlcmVuY2UgZm9yIHdpbnNlcnZpY2VyYyBpbiBNaW5HVyBzZWN0aW9uCgoyMDA0LTEwLTA1IDE5OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIGFwcGx5IHBhdGNoIFsgOTk2NDYyIF0gYWdlbnR4IGZhaWxzIG9uIGxpdHRsZSBlbmRpYW4gNjRiaXQKCjIwMDQtMTAtMDUgMTk6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhcHBseSBwYXRjaCBbIDEwMDk3OTkgXSBBZ2VudFggUmVnaXN0ZXItUERVIHdpdGggbXVsdGlwbGUgaXRlbXMKCjIwMDQtMTAtMDUgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGRlZmluZSBtYWNybyBmb3IgdW5peHdhcmUgaW5jbHVkZXMKCjIwMDQtMTAtMDUgMTk6MDEgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgZW5kaWYKCjIwMDQtMTAtMDUgMTg6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTA1IDE3OjQ2ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGNoZWNrIGZvciBuZXN0ZWQgc3RhdGljIGlubGluZSBzdXBwb3J0CgoyMDA0LTEwLTA1IDE3OjM4ICBhbGV4X2IKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3dpbnNlcnZpY2VyYy5yYzoKCiAgIEFwcGx5IHBhdGNoIDEwNDAzMjUgLSB3aW4zMiBNaW5HVyBhZ2VudC90cmFwZCBzZXJ2aWNlIEV2ZW50bG9nIGZpeGVzCgoyMDA0LTEwLTA1IDE2OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNTQgXSBTdHJlbmd0aGVuIEFHRU5UWCBPSUQgY2hlY2tzCgoyMDA0LTEwLTA1IDE2OjI2ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggWyAxMDQwMjYxIF0gTWFrZSBpdCBwb3NzaWJsZSB0byBzZWxlY3QgdGVzdHMgb24gYWdlbnQgbW9kdWxlcwoKMjAwNC0xMC0wNSAxNjoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTY6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgYWRkIGNoZWNrIGZvciBzdHJ0b2tfciBhbmQgcnVuIGF1dG9oZWFkZXIKCjIwMDQtMTAtMDUgMTY6MTMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgR2VlcnQgRGUgUGV1dGVyIHRvIGNvbnRyaWJ1dG9ycwoKMjAwNC0xMC0wNSAxNjoxMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFwcHMvc25tcHZhY20uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgc25tcGxpYi9jb250YWluZXIuYywKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAzMzAgXSBHZXR0aW5nIHJpZCBvZiBzdHJ0b2sKCjIwMDQtMTAtMDUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICByZW1vdmUgYXR0cmlidXRpb24gY29tbWVudAoKMjAwNC0xMC0wNSAwNzowNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSAtQyBhbmQgLWMgcmVnaXN0ZXIgb3B0aW9ucyBhbmQgYWRkIG5vdGUgYWJvdXQgcmVib290CgoyMDA0LTEwLTA1IDAwOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHBhdGNoIGZyb20ganByYWthc2hiYWJ1OiBtb3ZlIGVuZGZzZW50IGNhbGwgbmVhciBzZXRmc2VudCB0byBhdm9pZCBjb21waWxlIGVycm9yCgoyMDA0LTEwLTA0IDIwOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZWxtaW5hdGUgdXNlIG9mIFRPRE9fZmluZF8qIHVuZGVmaW5lZCBtYWNyb3MKCjIwMDQtMTAtMDQgMjA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHB1dCBpcnJldmVyc2libGVfY29tbWl0IHNldHRpbmcgaW4gZ2VuZXJhdGVkIGRlZmF1bHQtdGFibGUtKgoKMjAwNC0xMC0wNCAyMDoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAxNTowOSAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBSZW5hbWUgZ19zekFwcE5hbWUgdG8gYXBwX25hbWUgdG8gZm9sbG93IG5hbWluZyBzdGFuZGFyZHMKCjIwMDQtMTAtMDQgMTE6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLCBub2RlLXNldC5tMmkKOgoKICAgLSBtYWtlIGNvbW1lbnRzIG1vcmUgdW5pcXVlIChoZWxwIG91dCBkaWZmKQogICAtIHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgY29tbWVudHMKCjIwMDQtMTAtMDQgMTE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCgoyMDA0LTEwLTA0IDExOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbnMKCjIwMDQtMTAtMDQgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzdG9yZSBwZXJtYW5lbnQgcm93cyB0b28KCjIwMDQtMTAtMDQgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBkb24ndCByZXNldCBvcGVyX3N0YXR1cyBmbGFncywgaW9jdGwgY29kZSBoYXMgYWxyZWFkeSBzZXQgdGhlbQoKMjAwNC0xMC0wNCAwOTo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGxpc3QgYWxsIGxvY2F0aW9ucyB0byB1cGRhdGUgaW4gZmxvd2NoYXJ0IGNvbW1lbnRzCgoyMDA0LTEwLTAzIDE4OjIyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgVW5yZWdpc3RlciBzZXJ2aWNlcyBvbiB1bmluc3RhbGwsIGFkZCBtaXNzaW5nIG1pYnMsIG1pYjJjIGFuZCBoZWFkZXIgZmlsZXMuCgoyMDA0LTEwLTAzIDE0OjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZnJvbSBDb3JleSBXcmlnaHQ6IGZpeCBzZW5zb3JfYXJyYXkgc2l6ZSBsaW1pdCB0ZXN0CgoyMDA0LTEwLTAzIDEwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBhcHBseSBtaXNzZWQgYml0IGZyb20gcHJldmlvdXMgcGF0Y2gKCjIwMDQtMTAtMDMgMDg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIC0gYXBwbHkgcGF0Y2ggZnJvbSBHZWVydCBEZSBQZXV0ZXIgWyAxMDIyOTQxIF0gU3BlZWQgdXAgYWRkaW5nIGEgcm93IHRvIGEgdGFibGUKICAgICAtIChzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uKQogICAgIC0gdGVzdCBmb3IgYXBwZW5kIGJlZm9yZSBsaW5lYXIgc2VhcmNoCiAgICAgLSBzYXZlIHJjIGluc3RlYWQgb2YgcmVwZWF0aW5nIGZ1bmN0aW9uIGNhbGwKCjIwMDQtMTAtMDMgMDc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZTsgY2hlY2sgZm9yIE5VTEwgYmVmb3JlIGRlcmVmCgoyMDA0LTEwLTAyIDIwOjUxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgQWRkIHN0ZXAgdG8gY29tcGFyZSBjb21waWxlZCBhbmQgaW5zdGFsbGVkIGZvbGRlcnMgdG8gbG9jYXRlIG1pc3NpbmcgZmlsZXMKCjIwMDQtMTAtMDEgMjA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc3lzY29uZiBhbmQgdGltZXMgZnVuY3Rpb25zIGFuZCBzeXMvdGltZXMuaCBoZWFkZXIKCjIwMDQtMTAtMDEgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBzbm1wdjMuYzoKCiAgIFByb3BlciBmaXggaXQgdjMgZW5naW5ldGltZSB3cmFwcGluZyBwcm9ibGVtLiAgRmFpcmx5IHBvcnRhYmxlICYmIHVzZXMgdGltZXMoKS4KCjIwMDQtMTAtMDEgMjA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGNyZWF0ZSBhIG5ldyBjYWxjdWxhdGVfc2VjdGltZV9kaWZmIGZ1bmN0aW9uCgoyMDA0LTEwLTAxIDIwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc2V0IGhlbnQgdmFyaWFibGUgdG8gTlVMTCB0byBzcXVhc2ggYm9ndXMgY29tcGlsZXIgd2FybmluZwoKMjAwNC0xMC0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICBmaXggYnVnIFsgODY1NDE1IF0gaW5jb3JyZWN0IGlmQWRFbnRJZkluZGV4IGZpZWxkCgoyMDA0LTEwLTAxIDA4OjU4ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgU2ltcGxpZnkgYnVpbGQgc3RlcHMKCjIwMDQtMTAtMDEgMDU6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZiwKICAgICBsb2NhbC9taWIyYy5jb25mLCBORVdTOgoKICAgQnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUsIGhhdmUgdGhlIGNvdXJhZ2Ugb2YgbXkgY29udmljdGlvbnMsCiAgIGFuZCBwdXNoIHRoZSBuZXcgKGZ1bGxlcikgaXRlcmF0ZSBjb25maWcgaW4gcHJlZmVyZW5jZSB0byB0aGUgZWFybGllcgogICAocmVsYXRpdmVseSBlbXB0eSkgZnJhbWV3b3JrLgogICAgIFtJIGp1c3Qga25vdyBJJ20gZ29pbmcgdG8gcmVncmV0IGRvaW5nIHRoaXMuLi4uLl0KCjIwMDQtMDktMzAgMjA6MTAgIHdhc21pdGgzMgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVcGRhdGVkIHRoZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBiYXRjaCBmaWxlcyBmb3IgdGhlIFdpbmRvd3MgaW5zdGFsbGVyIHNjcmlwdC4KICAgQXBwbGllZCBhIG1vZGlmaWVkIHBhdGNoIFsgMTAzNzY5NSBdIHdpdGggZWRpdHMgbWFkZSBieSBBbGV4IEJ1cmdlciBhbmQgbXlzZWxmLgogICBUaGUgcGF0Y2ggYWxzbyByZW1vdmVzIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0aGUgc2NyaXB0IHRoYXQgd2VyZSBub3QKICAgYmVpbmcgaW5zdGFsbGVkLgoKMjAwNC0wOS0zMCAxMToxMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSA1IC0+IHZhcmlvdXMgc28gd2Ugc3RvcCBnZXR0aW5nIGl0IHdyb25nCgoyMDA0LTA5LTMwIDA4OjU5ICBhbGV4X2IKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBGb3IgYnVnIDEwMzc1MjQ6IFNldCBwYXRoIHRvIC5ETEwgZm9yIFBlcmwgYnVpbGQgLyB0ZXN0CgoyMDA0LTA5LTMwIDA1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYXZlICdyZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZycgdGFrZSBub3RlIG9mIHRoZQogICBpbml0aWFsIGxlbmd0aCB3aGVuIHVzaW5nIGV4aXN0aW5nIGJ1ZmZlcnMuCgoyMDA0LTA5LTMwIDAyOjU1ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBlcnJvcnMgZm9yIGFueSBtaXNzaW5nIE1BTjVHIGZpbGVzIChlLmcuLCBtaWIyYy5jb25mLjUpCgoyMDA0LTA5LTMwIDAyOjQzICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICBhZGQgREVMQVkgYWZ0ZXIgc2V0IHRvIGFsbG93IHRpbWUgZm9yIHRyYXAgdG8gZmlyZSBhbmQgYmUgbG9nZ2VkLgoKMjAwNC0wOS0zMCAwMTozOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCAiSW5jb25zaXN0ZW50IG9wZXJhdG9yIGZvciB0ZXN0IiB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGVuCiAgIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBpbiBpbnN0YWxsc3ViZGlyaGVhZGVycy4KICAgSW5kZW50IGxpbmVzIG9mIHJ1bGUgYm9kaWVzIHVzaW5nIHRhYiBvbmx5IChhIHJlcXVpcmVtZW50IGZvciBzb21lICJtYWtlIikuCiAgIFJlbW92ZSBleHRyYW5lb3VzIHdoaXRlc3BhY2UgbmVhciB0aGUgZW5kIG9mIGNvbnRpbnVhdGlvbiBsaW5lcy4KCjIwMDQtMDktMjkgMjM6MTggIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCB0cnkgdG8gaW5zdGFsbCB1Y2Qtc25tcC9hZ2VudF9tb2R1bGVfY29uZmlnLmggKG5vIHN1Y2ggZmlsZSkKCjIwMDQtMDktMjkgMTg6MDIgIGFsZXhfYgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIHNucHJpbnRmIG5vdyB1c2VzIHNpemVvZihvYmplY3QpCgoyMDA0LTA5LTI5IDE3OjM1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBub3RlIGltcG9ydGFuY2Ugb2YgbWF0Y2hpbmcgTWVzc2FnZUlkIHZhbHVlIGZvciBSZXBvcnRFdmVudC4KCjIwMDQtMDktMjkgMTU6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFBhdGNoOiAxMDMxMDQ2IHdoaXRlIHNwYWNlIHRhYiBkYW1hZ2UKCjIwMDQtMDktMjkgMTU6NDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNC0wOS0yOSAxNTozOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaDogWyAxMDM0MTU2IF0gQ2xhcmlmeSBPcGVuU1NMIHJlcS4gaW4gc25tcGQuY29uZi41CgoyMDA0LTA5LTI5IDE1OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIHNlY3Rpb24gdG8gbWVudGlvbiB0aGUgbmVlZCBmb3IgYSByZWJvb3QgdG8KICAgYWxsb3cgc3lzdGVtIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBiZSB1c2VkLgoKMjAwNC0wOS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBbIDEwMTEzMzEgXSB2YWNtX2Rlc3Ryb3lBY2Nlc3NFbnRyeSB3YXMgZG91YmxlIGNoZWNraW5nIGEgdmFsdWUgYW5kIG1pc3NuaWcgYW5vdGhlci4KCjIwMDQtMDktMjkgMTU6MDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgcmVtb3ZlIGphcGFuIG1pcnJvciBhcyB0aGUgbWFpbnRhaW5lciBwYXNzZWQgYXdheQoKMjAwNC0wOS0yOSAxNDoyMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZml4IGJ1ZyAjSUZvcmdvdCB0byBmaXggYWdlbnR4IHVzYWdlIG9uIHdpbmRvd3MgdG8gdXNlIGEgcmVhbCBzbm1wZC5jb25mIHRva2VuIGZvciBzb2NrZXQgYWRkcmVzcyBzdXBwb3J0CgoyMDA0LTA5LTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIHJlbW92ZSBub24tcG9ydGFibGUgKGJ1dCBuaWNlIGdvYWwpIG9wdGltaXplZCBoZWFkZXIgaW5zdGFsbGF0aW9uLiAgQnJlYWtzIG9uIGZyZWVic2Qgc3lzdGVtcyB3aGVyZSBjbXAgZXhpdHMgd2l0aCBzdGF0dXMgMgoKMjAwNC0wOS0yOSAxMDozNCAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQXBwbHkgcGF0Y2ggaW4gYnVnIDkyNjM4OSBieSBNaWtlIFNsaWZjYWsgdG8gZml4IFdpbjMyIGV2ZW50IGxvZyBsb2dnaW5nCiAgIGZvciBzbm1wdHJhcGQgYW5kIHNubXBkLiAgQWRkcyBzbm1wX2xvZ19zeXNsb2duYW1lKCkgZnVuY3Rpb24gd2hpY2gKICAgaXMgbm93IHVzZWQgYnkgb3BlbmxvZygpLgoKMjAwNC0wOS0yOSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQogICAtIHVwZGF0ZSBmb3IgcmVuYW1lIHRhYmxlX2NvbnRhaW5lciBmdW5jdGlvbnMKCjIwMDQtMDktMjkgMDc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSB4eHggY29tbWVudHMgaW4gZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjkgMDc6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBjb252ZXJ0IG1pc3NpbmcgZGlyIGVycm9yIG1zZyB0byBkZWJ1ZyBtc2cKCjIwMDQtMDktMjggMTg6NDYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMjggMTg6NDUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSBjaGVjayBmb3IgbmV0L2lmX2FycC5oIGhlYWRlcgogICAtIHJ1biBhdXRvaGVhZGVyIHRvIHVwZGF0ZSBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAwNC0wOS0yOCAxODo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCB2bW5ldCB0byB0eXBlLWJ5LW5hbWUgZGV0ZWN0aW9uCgoyMDA0LTA5LTI4IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBpbmNsdWRlIG5ldC9pZl9hcnAuaCBzbyBhcnAgdHlwZSBkZXRlY3Rpb24gaGFzIGEgY2hhbmNlIHRvIHdvcmsKICAgLSBpZmRlZiBhcnBocmQgdHlwZXMgdGhhdCBhcmVuJ3QgY29tbW9uIChwcmV0dHkgbXVjaCBhbGwgb2YgdGhlbSkKICAgLSBkZWJ1ZyBtc2cgb24gdW5rbm93biB0eXBlCgoyMDA0LTA5LTI4IDE1OjI0ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgdXNlIHRoZSBjb3JyZWN0IGh0b25zIGZ1bmN0aW9uIHRvIGFzc2lnbiB0byBhIE5CTyBvYmplY3QuCgoyMDA0LTA5LTI4IDEzOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgLSBmaXJzdCB1cGRhdGUgaW4gYSB3aGlsZQogICAtIHVzZSBjcmVhdGVfZmV3ZXJfZmlsZXMgdG8gZGV0ZXJtaW5lIGNvcnJlY3QgZmlsZSBuYW1lCiAgIC0gY2hnIGluZGV4IGNvbnRleHQgdG8gbWliIGNvbnRleHQKICAgLSBjaGcgdGFibGUgY29udGV4dCB0byByb3cgcmVxdWVzdCBjb250ZXh0CiAgIC0gcmVtb3ZlIGFzc3VtcHRpb25zIGFib3V0IGRhdGEgYWNjZXNzIG1ldGhvZAogICAtIGFkZCBleGFtcGxlIGZ1bmN0aW9uIGZsb3cgKHcvc291cmNlIGZpbGUpIGZvciB2YXJpb3VzIHJlcXVlc3Qgc2NlbmFyaW9zCgoyMDA0LTA5LTI4IDA2OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIGRlYnVnCgoyMDA0LTA5LTI4IDA1OjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCBsZW5ndGggZm9yIG1lbWNweQoKMjAwNC0wOS0yNyAxNzoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGEgZmV3IGRlYnVnIG1lc3NhZ2VzCiAgIC0gbG9nIGVycm9yIG9uIHVrbm93biBjb2x1bW4KICAgLSBkb24ndCBwdXQgdW5kb18oc2V0dXB8Y2xlYW51cCkgaW4gaW50ZXJmYWNlIGNvZGUgZm9yIGdlbmVyYXRlZCBzdHJ1Y3R1cmVzCiAgIC0gY2FsbCBub2RlIHVuZG9fc2V0dXAgZnVuY3Rpb25zIGFmdGVyIHJvdyB1bmRvX3NldHVwCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUgdGhhdCBzbnVjayBpbgoKMjAwNC0wOS0yNyAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgZml4IGxvZ2ljIHRlc3QgKGRlZnZhbCBpcyBhIHN0cmluZywgbm90IGEgZmxhZykKCjIwMDQtMDktMjcgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHNraXAgdW5kb19jbGVhbnVwIGlmIHVuZG9fc2V0dXAgd2Fzbid0IHJ1bgoKMjAwNC0wOS0yNyAxNDozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIGZpeGluZyBTWU5PUFNJUyBpbiBzbm1wbmV0c3RhdCwgc25tcGRlbHRhIGFuZCBzbm1wZGYKCjIwMDQtMDktMjcgMTQ6MjEgIGFsZXhfYgoKICAgKiBtYW4vOiBzbm1wZGVsdGEuMSwgc25tcGRmLjEsIHNubXBuZXRzdGF0LjE6CgogICBNYWtlIGNvbW1hbmRzIGluIFNZTk9QU0lTIC8gREVTQ1JJUFRJT04gc2VjdGlvbiBib2xkCgoyMDA0LTA5LTI3IDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWxsb3cgZm9yIGZpbmVyIGdyYWluZWQgZGVidWcgY29udHJvbAoKMjAwNC0wOS0yNyAxMDo0NCAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWVyZ2VkIG1vc3QgV3JpdGVUb0V2ZW50TG9nIGFuZCBEaXNwbGF5RXJyb3IgY2FsbHMgaW50byBQcm9jZXNzRXJyb3Igc28gZXZlbnQsIGNvbnNvbGUgJiBwb3AtdXAgbWVzc2FnZXMgYXJlIGNvbnNpc3RlbnQuICBDaGFuZ2VkIGFsbCBzdHByaW50ZidzIHRvIHNucHJpbnRmcy4KCjIwMDQtMDktMjcgMDY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IHR5cG8KCjIwMDQtMDktMjcgMDU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZG9uJ3QgbW9kaWZ5IHRhYmxlIHJlcXVlc3QgZGF0YSBpZiBubyBuZXh0IGNvbHVtbgoKMjAwNC0wOS0yNiAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgLSBkZWJ1ZyB0b2tlbiBjb25zaXN0ZW5jeQogICAtIHJlbW92ZSBkdXBsaWNhdGUgdmFsdWUgbWFwIGZvciBpbmRleGVzCgoyMDA0LTA5LTI2IDEzOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIG5vZGUtZ2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gYWRkIG1pc3NpbmcgZGVidWdzCgoyMDA0LTA5LTI2IDEzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBmaXggcGF0aHMKCjIwMDQtMDktMjQgMTI6MDMgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB3aGVuIGNyZWF0aW5nIGFkZHJlc3MgZnJvbSBvc3RyaW5nLCBjb252ZXJ0IHBvcnQgdG8gbmV0d29yayBieXRlIG9yZGVyCgoyMDA0LTA5LTI0IDA5OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gZml4IGNvbW1hcyBpbiBjb21tZW50ZWQgb3V0IGl0ZW1zCgoyMDA0LTA5LTI0IDA3OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgTGludXggbWVtb3J5IGJ1ZmZlcnMgcGF0Y2ggZnJvbSBLYWogTmllbWkgKEZlZG9yYSAqaHJfc3RvcmFnZS1tYnVmLXYyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGluaXQgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIHNhX2VudGVycHJpc2VvaWRfbGVuIChGZWRvcmEgKnNtdXgtc3RhY2stdmFyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgd2hlbiBjcmVhdGluZyBhZGRyZXNzIGZyb20gb3N0cmluZywgY29udmVydCBwb3J0IHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgoKMjAwNC0wOS0yNCAwNjoxOCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcGF0Y2ggOTIzNTExIGFkZHMgc3VwcG9ydCBmb3Igbm9uLWhvc3Qgc2VydmljZSBwcmluY2lwYWwgZm9yIGtzbQoKMjAwNC0wOS0yNCAwNTo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoIDEwMTAzOTUgcmVtb3ZlIGR1cGxpY2F0ZSBjaGVja3MgZm9yIHNucHJpbnRmIGFuZCBzdHJ0b3VsCiAgIHBhdGNoIDEwMDk3MTIgY2hlY2sgZm9yIGdldGhvc3RieW5hbWUgaW4gLWxzb2NrZXQgZm9yIFVuaXh3YXJlCgoyMDA0LTA5LTI0IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAzMjYwMiBzdXBwb3J0cyBMaW51eCBjcm9zcyBjb21waWxlciBmb3IgV2luZG93cyAodGFyZ2V0IG1pbmd3MzJtc3ZjKS4KCjIwMDQtMDktMjMgMTY6MTUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICB1bmRvIHBhdGNoICMxMDI3NTIyIGFzIGl0IHZpb2xhdGVzIFJGQyAxOTAyIHNlY3Rpb24gMTAuMgogICB3aGVuIHRoZSBNSUIgb2JqZWN0cyB3ZXJlIGNoYW5nZWQuCgoyMDA0LTA5LTIzIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9zY2FwaS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgcmVxdWlyZWQgbGVuZ3RoIG9mIGEgcHJpdmFjeSBrZXkKCjIwMDQtMDktMjMgMTM6MjQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlCiAgIC0gZml4IGZ1bmN0aW9uIGNhbGwKICAgLSBmaXggcmVuYW1lZCB2YXIgbWlzc2VkIGluIG1lcmdlCgoyMDA0LTA5LTIzIDA5OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0OgoKICAgYXBwbHkgcGF0Y2ggIzEwMjc1MjIgdG8gcGVybWl0IHJlcG9ydGluZyBuZWdhdGl2ZSBzZW5zb3IgdmFsdWVzCgoyMDA0LTA5LTIzIDA5OjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYXBwbHkgbW9kaWZpZWQgcGF0Y2ggIzEwMjc1MjEgdG8gZml4IHByb2JsZW1zIHdpdGggc2Vuc29yIGNhdGVnb3JpZXMgKHR5cGVzKS4KCjIwMDQtMDktMjMgMDg6NTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoICM5NjAyNjkgdG8gcmVsZWFzZSBtZW1vcnkgcmV0dXJuZWQgZnJvbSBzZW5zb3JfZ2V0X2xhYmVsCgoyMDA0LTA5LTIyIDE3OjUxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaHRtbGhlbHAvOiBzbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBzbm1wZC5jb25mLndpbjMyLmh0bWwsIHNubXB0cmFwZC5jb25mLndpbjMyLmh0bWw6CgogICBwYXRjaCAxMDMzMDUyIGZyb20gQWxleCBCdXJnZXI6IFdpbjMyOiBVcGRhdGVkIGh0bWxoZWxwIGZpbGVzIGZvciAqLmNvbmYKCjIwMDQtMDktMjIgMTE6MjAgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICBhcHBseSBwYXRjaCAjMTAzMDkxMyB0byBzdXBwcmVzcyB3aW5kb3dzIHBvcHVwcyBmb3Igc2VydmljZSByZWcvdW5yZWcgZXJyb3JzLgogICBlcnJvcnMgYXJlIHByaW50ZWQgdG8gc3RkZXJyIGlmIC1xdWlldCBwYXJhbWV0ZXIgaXMgc3VwcGxpZWQuCgoyMDA0LTA5LTIyIDExOjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sOgoKICAgYXBwbHkgcGF0Y2gjMTAzOTAwIHNvIHRoYXQgaW50cm8gbW9yZSBjbG9zZWx5IG1hdGNoZXMgY3VycmVudCB3ZWIgc2l0ZSBob21lIHBhZ2UuCiAgIGFsc28gYWRqdXN0IGJ1aWxkIGluc3RydWN0aW9ucyB0byByZW1vdmUgZXhhbXBsZSBhbmQgZGVtbyBNSUJzIGZyb20gYnVpbGQuCgoyMDA0LTA5LTIyIDExOjAxICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYXBwbHkgcGF0Y2gjMTAyODk3NiBjaGVjayB2YWx1ZXMgZm9yIGxhYmVsLCBpaWQgYmVmb3JlIGRlcmVmZXJlbmNlLgogICBGaXhlcyBwZXJsIG1vZHVsZSBmYXVsdCwgYXN5bmMgY2FsbGJhY2suIFNlZSBSZWRIYXQgYnVnICMxMTEzMTkKCjIwMDQtMDktMjIgMDk6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjIgMDc6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGF0Y2ggMTAyODkyNyBmcm9tIEFuZHkgU21pdGggZml4ZXMgYnVnIDk3Mjc5NzsgcmVnaXN0ZXJpbmcgd2luMzIKICAgc25tcGQvc25tcHRyYXBkIHNlcnZpY2VzIGluY2x1ZGVzIHBhdGhzIHRvIGNvbmZpZyBmaWxlIGFuZCB0byBsb2cgZmlsZS4KCjIwMDQtMDktMjIgMDc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIG1hY3JvcyB0aGF0IGFyZSBpbiBtZmQuaAoKMjAwNC0wOS0yMSAxOTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGZpeCB0eXBvCgoyMDA0LTA5LTIxIDE5OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIG9ubHkgZ2VuZXJhdGUgcm93IGNyZWF0aW9uIGNoZWNrIGlmIG0yY190YWJsZV9yb3dfY3JlYXRpb24gc2V0CgoyMDA0LTA5LTIxIDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIHNldCB1cCBtYWNybyB3L3JlcXVpcmVkIGNvbHVtbnMgZm9yIHJvdyBjcmVhdGlvbgoKMjAwNC0wOS0yMSAxNjo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmY6CgogICBzdG9yYWdlIGZvciB0YWJsZSBpbmRleGVzIGFuZCBjb2x1bW5zCgoyMDA0LTA5LTIxIDE2OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBtb3ZlIHJvd19tZXJnZSBhZnRlciB0YWJsZV9jb250YWluZXIgaW4gaGFuZGxlciBjaGFpbgoKMjAwNC0wOS0yMSAxNjozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gaW5jcmVhc2UgY29udGV4dCBmb3IgZGlmZgogICAtIGluY3JlYXNlIGZ1enogZm9yIHBhdGNoCgoyMDA0LTA5LTIxIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSBhbGxvY2F0ZSB0YWcgc3RvcmFnZSBlYXJsaWVyLCB3aXRoIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0aW9uCiAgIC0gYWxsb2Mgc3BhY2UgZm9yIG51bGwgdGVybWluYXRpb24gb2YgbmFtZQogICAtIHJldHVybiBlcnJvciBpZiBhbGxvY2F0aW9ucyBmYWlsCgoyMDA0LTA5LTIxIDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHNldCBlbmRvZm1pYnZpZXcgd2hlbiBnZXRuZXh0IGdvZXMgYmV5b25kIGxhc3QgaXRlbSBpbiB0YWJsZQoKMjAwNC0wOS0yMSAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBtYXJrIHByb2Nlc3NlZCByZXF1ZXN0cyBhcyBET05FIHNvIHRoZXkgYXJlbid0IG1lcmdlZAoKMjAwNC0wOS0yMSAxNDo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGlmZGVmL2NvbW1lbnQgc29tZSBkZWJ1ZyBhc3NlcnQgY29kZSB0aGF0IGdldHMgaGl0IGluIHJhcmUgY2FzZXMKCjIwMDQtMDktMjEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjEgMDY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmEgdG8gZml4IERIIGtleSBsZW5ndGhzCgoyMDA0LTA5LTIxIDA2OjQzICBoYXJkYWtlcgoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKOgoKICAgY2hlY2sgYSBmZXcgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0KCjIwMDQtMDktMTcgMDE6MjIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3IgYW5kIGluY2x1ZGUgcnBtL3JwbWRiLmgKCjIwMDQtMDktMTcgMDE6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFRoaXMgd2FzIG5vdCBhbHdheXMgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDA0LTA5LTE3IDAwOjU4ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXggT3BlblNTTCBjaGVjaCB0byB3b3JrIG9uIDY0LWJpdCBTb2xhcmlzIGNvbXBpbGUgd2l0aCAzMi1iaXQgT3BlblNTTAogICBpbnN0YWxsZWQgLi4uCgoyMDA0LTA5LTE2IDEwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmYKCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGRvbid0IGZyZWUgTlVMTCBwb2ludGVyCiAgIC0gdXBjYXNlIGZpcnN0IHdvcmQgaW4gc2VudGVuY2UKICAgLSBleHBhbmQgbW9yZSBvbiBub0NyZWF0aW9uIGV4cGxhbml0b3J5IG1lc3NhZ2UKICAgLSBhZGQgZXhwbGFuaXRvcnkgbWVzc2FnZSBmb3IgaW5jb25zaXN0ZW50TmFtZQoKMjAwNC0wOS0xNiAxMDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGxvZyBlcnJvciBtZXNzYWdlIGlmIGEgTUlCIGRpcmVjdG9yeSBjYW5ub3QgYmUgb3BlbmVkCgoyMDA0LTA5LTE2IDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvTWFrZWZpbGUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgZGF0YSBhY2Nlc3MgZm9yIHRjcC1taWIgdGNwIGNvbm5lY3Rpb25zIChpcHY0IG9ubHkpCgoyMDA0LTA5LTE2IDA4OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzCiAgIC0gY3JlYXRlIGRlZmF1bHQtbm9kZS0ke25vZGV9Lm0yZCB3L2N1cnJlbnQgdmFsdWVzLCBpZmYgZG9lc24ndCBleGlzdAoKMjAwNC0wOS0xNiAwODoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBkb24ndCBnZW5lcmF0ZSBtYXBwaW5nIGNvZGUgaWYgc2tpcCBtYXBwaW5nIHNldAoKMjAwNC0wOS0xNSAxNzoyMiAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZnJlZWJzZDUvNiBoZWFkZXJzCgoyMDA0LTA5LTE1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBhbiBvcHBzLiAgRGVsZXRlIHRoZSB1c20gc3RhdGUgcmVmIGJlZm9yZSB0aGUgaGFuZGxpbmcgb2YgcmVwb3J0cyBzaW5jZSBpdCBkaWRuJ3QgbmVlZCBpdCBiZWZvcmUKCjIwMDQtMDktMTUgMDk6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgbWFrZSB0aGUgSGFuZGxlUmVwb3J0IGNhbGxiYWNrIHRha2UgYSB0cmFuc3BvcnQgcG9pbnRlcgoKMjAwNC0wOS0xNSAwOTo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBNYWtlIHRoZSB1c20gbW9kdWxlIGhhbmRsZSBpdHMgb3duIHJlcHJvdHMKCjIwMDQtMDktMTUgMDk6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IGZyZWUgdGhlIHN0YXRlIHJlZmVyZW5jZSB0aWxsIGFmdGVyIHRoZSBoYW5kbGVfcmVwb3J0X3BkdSBjYWxsYmFjayBpcyBjYWxsZWQuICBBbHNvIHBhc3MgaW4gdGhlIHRyYW5zcG9ydCB0byB0aGUgc2FtZSBob29rLgoKMjAwNC0wOS0xNSAwOToxOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkYXJ3aW43IGhlYWRlcgoKMjAwNC0wOS0xNSAwNzoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGNoZWNrIGNvbHVtbl9zZXRfZmxhZ3MgdG8gc2VlIGlmIHJvd3N0YXR1cyBzZXQKICAgICAtIG9ubHkgY2hlY2sgdHJhbnNpdGlvbiBpZiBzZXQKICAgICAtIGNoZWNrIHJlcXVpcmVkIHJvd3Mgb24gY3JlYXRlQW5kR28KICAgICAtIGRvbid0IGFsbG93IGRlc3Ryb3kgaWYgb3RoZXIgY29sdW1ucyBzZXQKICAgLSBkb24ndCBhbGxvdyBjcmVhdGlvbiBpZiByb3dzdGF0dXMgbm90IHNldAoKMjAwNC0wOS0xNSAwNzoyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgLSByZW5hbWUgc2V0X2ZsYWdzCiAgIC0gYWRkIGNvbW1lbnQgYWJvdXQgcm93IGNyZWF0ZWQgZmxhZyBpbiByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgY29tbWVudCBncmFtbWFyIHR3ZWFrCgoyMDA0LTA5LTE1IDA3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgcm93cmVxX2ZsYWdzCiAgIC0gcmVuYW1lIHNldF9mbGFncyB0byBjb2x1bW5fc2V0X2ZsYWdzCiAgIC0gdXNlIGNvbnRleHQgbmFtZSBmb3IgZXhhbXBsZSB1c2VyIGNvbnRleHQgZGF0YSBsaXN0CgoyMDA0LTA5LTE1IDA3OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKICAgLSB1c2UgbmV3IHJvd3JlcV9mbGFncyB0byBzZXQvY2xlYXIgbmV3IHJvdyBmbGFnCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3Igb24gaW52YWxpZCBvaWQgZm9yIG5ldyByb3cKICAgLSBjbGVhciB1bmRvIHBvaW50ZXIgYWZ0ZXIgcmVsZWFzaW5nIGl0CiAgIC0gc2V0IFdST05HTEVOR1RIIGZvciBiYWQgdmFyaWFibGUgc2l6ZQoKMjAwNC0wOS0xNSAwNzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgYWRkIGluY2x1ZGUgdG8gcXVpZXQgY29tcGlsZXIKCjIwMDQtMDktMTUgMDc6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICAtIGFkZCBwcm90b3R5cGUgZm9yIHNlX2ZpbmRfc2xpc3QKICAgLSB0d2VhayBjb21tZW50CgoyMDA0LTA5LTE1IDA3OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIG5ldyBtYWNybyB0byB2YWxpZGF0ZSBTTk1QIGVycm9yIGNvZGVzCgoyMDA0LTA5LTE1IDA3OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIC0gZGVmaW5lIGZsYWdzIGZvciByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gbW92ZSBzdG9yYWdlIHR5cGUgaW50byBkYXRhIGFjY2VzcyBpbnRlcmZhY2UKICAgLSBhZGQvdXNlIHVuZG8gc3RvcmFnZSBmb3IgTGFzdENoYW5nZWQKICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpb24vZGVsZXRpb24gb2YgaXBhZGRyZXNzZXMgdmlhIFJvd1N0YXR1cwogICAtIGFkZCBmbGFncyBmb3IgcmVxdWlyZWQgY29sdW1ucwoKMjAwNC0wOS0xNSAwNjo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCgoyMDA0LTA5LTE1IDA2OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSB0d2VhayBsb2cgbWVzc2FnZSwgY29tbWVudHMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHJlbW92ZSBhcmNoIGZsYWdzLCBhZGQgZGF0YSBsaXN0IGZvciBhcmNoIGRhdGEKICAgICAtIGFkZCAmIGNhbGwgYXJjaCBmdW5jdGlvbnMgb24gY3JlYXRlLCBjb3B5LCBkZWxldGUgaXBhZGRyZXNzIGVudHJ5CiAgIC0gYWRkIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAtIG5ldyBpcGFkZHJlc3Mgc2V0IChjcmVhdGUvZGVsZXRlIGlwIGFkZHJlc3MgYWxpYXNlcykKICAgLSBjaGFuZ2UgbWFjcm8gbmFtZQogICAtIGFkZCBmbGFnIGZvciBhbGlhc2VzCgoyMDA0LTA5LTE1IDA2OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGZpbmQgaW50ZXJmYWNlIG5hbWUgZnJvbSBpZkluZGV4CgoyMDA0LTA5LTE0IDE1OjAxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFVwZGF0ZSB0byBtb2R1bGFyaXplIGEgYml0IG1vcmUgdGhlIHNlY3VyaXR5IG1vZGVsIGluZnJhc3RydWN0dXJlOiByZXBvcnQgaGFuZGxpbmcgb3V0c291cmNlZCB0byB0aGUgc2VjbW9kCgoyMDA0LTA5LTEzIDE5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oLAogICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwKICAgICBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIC0gcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIHJlbW92ZSAnOycgZnJvbSBleHRlcm4gJ0MnIGhlYWRlciBjb250cnVjdHMKICAgICAoYWxsb3cgZysrIDMuNCBhbmQgYWJvdmUgdG8gY29tcGlsZSBuZXQtc25tcCkKCjIwMDQtMDktMTMgMDM6MzQgIHNsaWYKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIHdoZW4gbWF0Y2hpbmcgQ1BQIGRlZmluZXMsIG1hdGNoIHRoZSBvbmVzIHdoaWNoIGJlZ2luIHRoZSBzb3VyY2UgaGVhZGVyIGxpbmUuCgoyMDA0LTA5LTEzIDAzOjIwICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaGMKLCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3JlYWRtZTJodG1sOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjY2OSBXaW4zMiA1LjIgYnVpbGQgdXBkYXRlc2AKCjIwMDQtMDktMTIgMjI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgLSBpbmNsdWRlIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cwogICAtIGluaXRpYWxpemUgZGVmYXVsdHMgcGVyIHRoZSBtaWIKCjIwMDQtMDktMTIgMjI6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBjaGFuZ2UgY29tbWVudAogICAtIGFkZCBzdG9yYWdlIHR5cGUKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHNldCBzdXBwb3J0CgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBkYXRhIGxvb2t1cCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSB2YXJiaW5kcwoKMjAwNC0wOS0xMiAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggc2tpcHBpbmcgb2YgdW4tcmVnaXN0ZXJlZCBtb2RlcwogICAtIHJlbW92ZSByZXF1ZXN0IG5leHRfbW9kZSBzdHVmZiAobmV2ZXIgdXNlZCkKICAgLSBzaG9ydGVuIG11eCBkZWJ1ZyB0b2tlbgoKMjAwNC0wOS0xMCAxNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBkb24ndCBtYXNrIHJldHVybiBjb2RlcyBpbiBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMDQtMDktMTAgMTU6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIGFkZCB1bmRvIHN0b3JhZ2UgZm9yIHJvd3N0YXR1cyBhbmQgc3RvcmFnZSB0eXBlCgoyMDA0LTA5LTEwIDE0OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JhYnlfc3RlcF9tb2RlMmZsYWcKICAgLSB1c2UgbmV3IGZ1bmN0aW9uLCBzbyBza2lwcGluZyB1bnJlZ2lzdGVyZWQgbW9kZXMgd29ya3MKCjIwMDQtMDktMTAgMTQ6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICAtIHVzZSBtZmQgc3VjY2UgbWFjcm8gaW5zdGVhZCBvZiBzbm1wIG1hY3JvCiAgIC0gaWYgY2hlY2sgcmV0dXJucyBhbiBlcnJvciwgcmV0dXJuIGltbWVkaWF0ZWx5CgoyMDA0LTA5LTEwIDE0OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpOgoKICAgdXNlIGNvcnJlY3QgZnVuY3Rpb24gbmFtZQoKMjAwNC0wOS0xMCAxMzowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGFkZCBkZWZpbmUgdG8gYWxsb3cgcm93LWNyZWF0aW9uCgoyMDA0LTA5LTEwIDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMTAgMDU6MzAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2hlY2sgdGhhdCBhIHZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgdmFsaWQgTUlCIG9iamVjdCwKICAgYmVmb3JlIHRyeWluZyB0byBsb29rIGF0IGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIG9iamVjdC4KICAgKEZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBNRkQgc2NyaXB0cywgd2hpY2ggdXNlIHRoZSBtaWIyYwogICAgdmFyaWFibGUgZXhwYW5zaW9ucyBmb3Igbm9uLU1JQi1vYmplY3QgbmFtZXMgYXMgd2VsbCkuCgoyMDA0LTA5LTA5IDE2OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggbG9nIG1zZyB0eXBvCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3JzIGluc3RlYWQgb2YgcmV0dXJuaW5nIGVycm9yIGZyb20gaGFuZGxlcgogICAtIGRlYnVnIG1zZ3MgZm9yIHJlcXVlc3QgZXJyb3JzCgoyMDA0LTA5LTA5IDE2OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBhZGQgbWlzc2luZyBxdW90ZQoKMjAwNC0wOS0wOSAwOToxNyAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gbmV3IE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydAogICAocGx1cyBtaW5vciBncmFtbWFyIGFuZCBmb3JtYXR0aW5nIHR3ZWFrcykKCjIwMDQtMDktMDkgMDc6MDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjQzNTIgQ2hhbmdlcyBXaW5kb3dzIGluc3RhbGxlciB0byBhbGxvdyBzbm1wdHJhcGQgYXMgc2VydmljZS4KCjIwMDQtMDktMDkgMDY6NDkgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZm9ybWF0dGluZyBwYXRjaCAjMTAyNDc0NiAob25lLWxpbmVyKSBmcm9tIEFsZXggQnVyZ2VyLgoKMjAwNC0wOS0wOSAwMzo0MyAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZml4IGJ1ZyMxMDI1MDE0IC0gcmVtb3ZlIHVudXNlZHMsIHF1ZWxsIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncyBpbiA1LjIucHJlMQoKMjAwNC0wOS0wOSAwMzozMSAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbGFyZSBleHRlcm5hbCBmdW5jdGlvbiB3aXRoaW4gc2NvcGUgdXNlZC4KCjIwMDQtMDktMDkgMDM6MjIgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBidWcjMTAyNTAwNCBhcHBseSBtaW5vciBjb21tZW50IGFuZCBncmFtbWFyIGZpeGVzIHRvIHNubXBkLHNubXB0cmFwZAoKMjAwNC0wOS0wOCAyMDo1MiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcGFydGlhbCBmaXggYnVnICM5MDkyMjIgLSBtb3ZlIHdpbjMyIGNoYW5nZXMgaW5zaWRlICBfZGlzYWJsZV9zeXNsb2d7ZW50cnl9LAogICBkb250IHdyaXRlIHN0YW5kYXJkIGVycm9yIG9uIGZhaWx1cmUgdG8gY2xvc2UgZXZlbnQgbG9nIGZyb20gZGlzYWJsZV9zeXNsb2cuCgoyMDA0LTA5LTA4IDE4OjQzICBzbGlmCgogICAqIHdpbjMyLzogYWdlbnRfbW9kdWxlX2RvdF9jb25mLmgsIGFnZW50X21vZHVsZV9pbmNsdWRlcy5oCiwgYWdlbnRfbW9kdWxlX2luaXRzLmgsIGJ1aWxkLnBsLAogICAgIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIG5ldHNubXBtaWJzL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEFwcGx5IG1vZHMgaW4gcGF0Y2ggIzEwMjQ4MTAgaW4gb3JkZXIgdG8gYnVpbGQgNS4yLnByZTEgb24gd2luMzIgTVNWQytNaW5HVy4KCjIwMDQtMDktMDggMDg6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIGZpeCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBtYWNybyBuYW1lCgoyMDA0LTA5LTA3IDIwOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBtYXAgZGF0YSBhY2Nlc3MgaWYgYWRkcmVzcyB0eXBlIHRvIG1pYiB0eXBlIGluIGluZGV4CgoyMDA0LTA5LTA3IDIwOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcGFzcyBjb3JyZWN0IGNvbnRhaW5lciB0byB1cGRhdGUgY2hlY2sgZnVuY3Rpb25zbyBtaXNzaW5nIGFkZHJzIGFyZSByZW1vdmVkCgoyMDA0LTA5LTA3IDIwOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgbnVsbCByb3dyZXFfY3R4IGlzIHZhbGlkIGluIHVuZG9fY2xlYW51cDsgc2ltcGx5IHJldHVybiBzdWNjZXNzCgoyMDA0LTA5LTA3IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSBmaXggaWZJbmRleCBsb29rdXAgZm9yIGludGVyZmFjZSBhbGlhc2VzCiAgIC0gYWRkIGRlYnVnIG1lc3NhZ2UKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IGlwYWRkcmVzcwoKMjAwNC0wOS0wNyAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBzZSBwYWlycyBmb3IgYmFieSBzdGVwIG1vZGVzCgoyMDA0LTA5LTA3IDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIGtlZXAgcmVnaXN0ZXJlZCBtb2RlcyB3aXRoIG1pYiBoYW5kbGVyCiAgIC0gc2tpcCBsb3dlciBoYW5kbGVycyBmb3IgbW9kZXMgdGhhdCBoYW5kbGVyIGRpZG50IHJlZ2lzdGVyIGZvcgogICAtIHNraXAgdW5kbyBjb21taXQgaWYgaGFuZGxlciB3YXNudCBjYWxsZWQgZm9yIGNvbW1pdAogICAtIGRvbnQgYnJlYWsgb24gcmVxdWVzdCBlcnJvciBpbiBmaW5hbCBzdGVwcyAoZXF1aXZhbGVudCBvZiBjb21taXQvdW5kby9mcmVlKQogICAtIG1vcmUgZGVidWcgbXNncwoKMjAwNC0wOS0wNyAyMDoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgLSBzeW5jIG5hbWVzIG9mIEJBQllfU1RFUF8qIHdpdGggTU9ERV9CU1RFUF8qCiAgIC0gZGVmaW5lIHN0cnVjdHVyZSBmb3IgYmFieSBzdGVwcyBoYW5kbGVyIG1vZGUgdHJhY2tpbmcKCjIwMDQtMDktMDcgMjA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGFkZCBkZWJ1ZyBtc2cKCjIwMDQtMDktMDYgMjA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gYWRkIHBlcnNpc3RlbmNlIGZvciBpZkFsaWFzLCBpZkxpbmtVcERvd25UcmFwRW5hYmxlCiAgIC0gZG9uJ3QgYWxsb3cgc2V0IG9mIHByb21pc2N1b3VzIG1vZGUsIHNpbmNlIGl0J3Mgbm90IGltcGxlbWVudGVkCgoyMDA0LTA5LTA2IDE5OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBmaXggZml4ZWQgc2l6ZSBjaGVjawogICAtIGFkZCBhY2Nlc3MgdG8gY29udGFpbmVyIHBvaW50ZXIKCjIwMDQtMDktMDYgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIGZpeGVkIHNpemUgY2hlY2sgZm9yIG9jdGV0IHN0cmluZ3MKCjIwMDQtMDktMDYgMTk6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgc2V0IHVwIHZhcnMgZm9yIGxlbmd0aHMgdG8gYmUgY29waWVkIGNvcnJlY3RseQoKMjAwNC0wOS0wNSAxODo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgcmVtb3ZlIGV4dGVybiBvZiBub24tZXhpc3RhbnQgdmFyCgoyMDA0LTA5LTAyIDA3OjIyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGRvbnQgaW5jbHVkZSBieXRlb3JkZXIuaCAtLSBhdm9pZHMgd2FybmluZyBzZWVuIG9uIFJlZEhhdAoKMjAwNC0wOS0wMiAwNjo1OCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gdGhlIG90aGVyIG5ldyBtaWIyYyBjb25maWcgdGVtcGxhdGVzLCBhbmQgcHJvdmlkZSBhIGxpdHRsZQogICBtb3JlIGV4cGxhbmF0aW9uLiAgKFBsdXMgZml4aW5nIGEgY291cGxlIG9mIHR5cG9zKQoKMjAwNC0wOS0wMiAwNjo1MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBmaXggIzk5NTQ4OSBieSBvYnRhaW5pbmcgc3lzRGVzY3IgYW5kIHN5c0NvbnRhY3QgdGhyb3VnaCB3aW5kb3dzIG5hdGl2ZSBtZXRob2RzLgoKMjAwNC0wOS0wMiAwMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gcmVxdWlyZSBhbGwgaWYtbWliIGludGVyZmFjZSBmb3IgbGludXgKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAyICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDEgMjM6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgcmVxdWlyZSBleHBsaWNpdCBjb25maWd1cmUgZmxhZyBmb3IgZXhwZXJpbWVudGFsIG1mZCByZXdyaXRlIG1vZHVsZXMKCjIwMDQtMDktMDEgMjM6NTEgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBtZXJnZSA1LjEuMiBuZXdzCiAgIC0gYWRkIG90aGVyIHRpZGJpdHMgZ2xlYW5lZCBmcm9tIENoYW5nZWxvZwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6NTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjo1MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zOgoKICAgY2hlY2sgaW4gbmV3IG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjozNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0wOS0wMSAyMjoxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgYWZ0ZXIgcnVubmluZyBhdXRvaGVhZGVyCgoyMDA0LTA5LTAxIDIyOjE0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB1cGRhdGUgZm9yIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIyOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNvbnZlcnQgQysrIHN0eWxlIGNvbW1lbnRzIHRvIEMgc3R5bGUgY29tbWVudHMgKG9yIHJlbW92ZSB0aGVtKQoKMjAwNC0wOS0wMSAyMjowNSAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICByZWFkbWUgZm9yIE1hYyBPUyBYCgoyMDA0LTA5LTAxIDIyOjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAyMjowMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIxOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi9nbnVjLmgsIGV4cHJlc3Npb24vaW42LmgKLCBleHByZXNzaW9uL2lwX3Zhci5oLCBleHByZXNzaW9uL2lwdjYuaCwKICAgICBleHByZXNzaW9uL3VkcF92YXIuaCwgcGluZy9nbnVjLmgsIHBpbmcvaW42LmgsCiAgICAgcGluZy9pcF92YXIuaCwgcGluZy9pcHY2LmgsIHBpbmcvdWRwX3Zhci5oLAogICAgIHRyYWNlcm91dGUvZ251Yy5oLCB0cmFjZXJvdXRlL2luNi5oLAogICAgIHRyYWNlcm91dGUvaXBfdmFyLmgsIHRyYWNlcm91dGUvaXB2Ni5oLAogICAgIHRyYWNlcm91dGUvdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmg6CgogICByZW1vdmUgR1BMIGxpY2Vuc2UgY29kZSwgcGx1cyBzb21lIGd1aWx0eS1ieS1hc3NvY2lhdGlvbiBmaWxlcwoKMjAwNC0wOS0wMSAyMDoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIwOjEzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgb3BlbmJzZCBuZWVkcyBzeXMvdHlwZXMgYmVmb3JlIHRjcGQuaAoKMjAwNC0wOS0wMSAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgdHdlYWsgY29tbWVudCBhbmQgbG9nIG1lc3NhZ2UgZm9ybWF0CgoyMDA0LTA5LTAxIDE5OjMyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAtIHdoaXRlc3BhY2UgY2hhbmdlIHRvIGFkZCByZWFsIGxvZyBtZXNzYWdlIChsYXN0IGNoZWNraW5nIGhhZCB3cm9uZyBsb2cgbWVzc2FnZSkKICAgLSBhZGQgcG9ydCBudW1iZXIgdG8gZGVidWcgc3RhdGVtZW50CgoyMDA0LTA5LTAxIDE5OjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICAtIGluY3JlYXNlIG1heF9zZW5zb3JzCiAgIC0gYnJlYWsgd2hlbiBudW1iZXIgb2Ygc2Vuc29ycyBleGNlZWRzIG1heF9zZW5zb3JzCiAgIC0gYWRkIGRlYnVnCgoyMDA0LTA5LTAxIDE5OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAxOToyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJhaWwgaWYgbG1fc2Vuc29ycyBoZWFkZXIvbGliIGNoZWNrcyBmYWlsCgoyMDA0LTA5LTAxIDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIC0gZG9uJ3QgcmV0dXJuIGhhbmRsZXIgaWYgY2FuJ3QgYWxsb2NhdGUgc2dyb3VwCiAgIC0gdXNlIGxvY2FsIHZhciBmb3Igcm9vdG9pZCBtYWNoaW5hdGlvbnMsIGluc3RlYWQgb2YgcmVnaW5mbyByb290b2lkCiAgICAgKHJlYWxsb2Mgb2YgZXh0cmEgc3Vib2lkcyBkb2Vzbid0IHN1cnZpdmUgcmVnaXN0cmF0aW9uLCB3aGVuIHN1YnRyZWVfc3BsaXQKICAgICBjYWxscyBuZXRzbm1wX3N1YnRyZWVfZGVlcGNvcHkoKSkgW3Njb3JlIG9uZSBmb3IgbGliZWZlbmNlXQoKMjAwNC0wOS0wMSAxNzowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIG9ubHkgY29uZmlnX3JlcXVpcmUgaWYtbWliIGludGVyZmFjZV9jb21tb24sIG5vdCBhbGwgb2YgaWYtbWliIGludGVyZmFjZQoKMjAwNC0wOS0wMSAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZW1vdmUgY29uZmlnX3JlcXVpcmUgZm9yIHBsYXRmb3JtcyB3aGljaCBoYXZlbid0IGJlZW4gcG9ydGVkIHlldAoKMjAwNC0wOS0wMSAxNzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIGlmZGVmIG91dCBhcmNoIHNwZWNpZmljIGZ1bmN0aW9ucyBpZiBhcmNoIG5vdCBzdXBwb3J0ZWQKCjIwMDQtMDktMDEgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgb25seSByZXF1aXJlIG5ldyBtZmQgbW9kdWxlcyBmb3IgbGludXgsIHVudGlsIG90aGVyIHBsYXRmb3JtcyBhcmUgcG9ydGVkCgoyMDA0LTA5LTAxIDE1OjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGluY2x1ZGUgYXNtL3R5cGVzLmggc28gdGhhdCBhZ2VudCB3aWxsIGJ1aWxkIG9uIE1hbmRyYWtlIGZsYXZvcmVkIExpbnV4LgoKMjAwNC0wOS0wMSAxNDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50CiAgIC0gZG9jdW1lbnQgdXNlIG9mIHNpbXBsaXN0aWMgX2xvY2sKCjIwMDQtMDktMDEgMTQ6MzAgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDYuaDoKCiAgIHByb3ZpZGUgaGVhZGVyIGZvciBGcmVlQlNEIDYuIGZpeGVzIGJ1ZyMxMDE4MjA5CgoyMDA0LTA5LTAxIDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBvbmx5IGxvZyBvcGVuIGVyciBvbmNlICh1bnRpbCBzdWNjZXNzLCB0aGVuIHJlc2V0IGZsYWcpCgoyMDA0LTA5LTAxIDE0OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBjaGVjayBmb3IgTlVMTCBwb2ludGVyIGZyb20gZGF0YSBhY2Nlc3Mgcm91dGluZXMsICYgcmV0dXJuIHJlc291cmNlIHVuYXZhaWxhYmxlCgoyMDA0LTA5LTAxIDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gb25seSBsb2cgZmlsZSBvcGVuIGVycm9yIG9uY2UgKHVudGlsIGEgc3VjY2Vzc2Z1bCBvcGVuKQogICAtIHJldHVybiBubyBlcnJvciBpZiBjb3VsZG4ndCBvcGVuIGlwdjYsIHNvIHdlIGNhbiBjb250aW51ZSB3L2lwdjQKCjIwMDQtMDktMDEgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBlbGltaW5hdGUgZG91YmxlIGZyZWUgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgICAoaS5lLiBhbHdheXMgZnJlZSByZWdpbmZvIGlmIHJlZ2lzdHJhdGlvbiBmYWlscykKCjIwMDQtMDktMDEgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA5LTAxIDA4OjI1ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEF0dGVtcHQgdG8gZW5zdXJlIHRoYXQgJ2ludDMyX3QnIGFuZCAoaWYgYXBwcm9wcmlhdGUpICdpbnQ2NF90JwogICB0eXBlcyAocGx1cyB1bnNpZ25lZCBlcXVpdmFsZW50cykgYXJlIGF2YWlsYWJsZS4KCjIwMDQtMDktMDEgMDY6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIFJlbW92ZSB1bmJhbGFuY2VkICJAZW5kQCIgc3RhdGVtZW50cy4KCjIwMDQtMDktMDEgMDU6NTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBQcm92aWRlIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGFibGUgY29uZmlnIHRlbXBsYXRlcywgYW5kCiAgIGRlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZW0gYSBsaXR0bGUgbW9yZSBmdWxseS4KCjIwMDQtMDktMDEgMDU6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBGaXggbWlub3IgdHlwbwoKMjAwNC0wOC0zMSAyMTozNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gaW5mb3JtYXRpb24KICAgLSBhZGQgbm90ZSBvbiBydW5uaW5nIGN2czJjbCBvbiBhIGJyYW5jaAoKMjAwNC0wOC0zMSAyMToyNiAgcnN0b3J5CgogICAqIG1hbi9taWIyYy4xLmRlZiwgbG9jYWwvbWliMmMuY29uZjoKCiAgIGFkZCBpbmZvcm1hdGlvbiBhYm91dCBtaWIyYy5tZmQuY29uZgoKMjAwNC0wOC0zMSAyMDowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gdXBkYXRlIGNvbW1lbnRzIG9uIGxpYnRvb2wgdmVyc2lvbmluZwogICAtIHVwZGF0ZSBmb3IgNS4yCgoyMDA0LTA4LTMxIDE2OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBmbG9hdCBjYWxjIGluIHZhcl9leHRlbnNpYmxlX2Rpc2sgcGVyIEhhcmFsZCBTdHJh54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteODg2VyZ2VyIDxoc0BzeXNsb2cuYXQ+CgoyMDA0LTA4LTMxIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgYWdlbnRfbW9kdWxlX2NvbmZpZy5oCgoyMDA0LTA4LTMxIDAzOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KICAgU3VwcHJlc3MgU0VUIGhhbmRsaW5nIGNvZGUgZm9yIHJlYWQtb25seSB0YWJsZXMuCgoyMDA0LTA4LTMxIDAzOjI1ICBkdHMxMgoKICAgKiBsb2NhbC86IHNubXBjb25mLCBtaWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaSwKICAgICBtaWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIERhdmUncyBiZWluZyBwZXJuaWNraXR5IGFib3V0IGdyYW1tYXIgYWdhaW4uCiAgICJJdCdzIiBpcyBzaG9ydCBmb3IgIml0IGlzIi4KICAgIkJlbG9uZ2luZyB0byBpdCIgaXMgIml0cyIgLSBubyBhcG9zdHJvcGhlLgoKMjAwNC0wOC0zMSAwMzoyMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgZm9yIGludmFsaWQgU0VUIHJlcXVlc3RzLgoKMjAwNC0wOC0zMSAwMzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoxOCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgT29wcyEgIG1pYjJjIGNvbmZpZyB0eXBvCgoyMDA0LTA4LTMxIDAzOjE2ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZgo6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KCjIwMDQtMDgtMzEgMDM6MTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBBbHRlcm5hdGl2ZSBpdGVyYXRvciB0ZW1wbGF0ZS4gIEJhc2VkIG9uIGEgc2luZ2xlIGhhbmRsZXIgKHVubGlrZQogICAnaXRlcmF0b3JfYWNjZXNzJyksIGJ1dCBzb21ld2hhdCBtb3JlIGNvbXBsZXRlIHRoYW4gdGhlIG9yaWdpbmFsLAogICBwYXJ0aWN1bGFybHkgdy5yLnQuIFNFVCBoYW5kbGluZy4KCjIwMDQtMDgtMzEgMDM6MDkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEltcHJvdmUgdGhlIGV4YW1wbGUgZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiAoZXNwLiB3LnIudC4gaW5kZXggdmFsdWVzKQoKMjAwNC0wOC0zMSAwMDozNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgbmV3IHN0cnVjdCB0eXBlZGVmLCBuZXRzbm1wX2hhbmRsZXJfYXJncwoKMjAwNC0wOC0zMSAwMDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBhZGQgbmV3IHZvaWQgcG9pbnRlciBmb3IgY2FjaGUgaGludAogICAtIGRlZmluZSBuZXcgZmxhZyBmb3IgaGFuZGxlciBhcmdzIGNhY2hlIGhpbnQKICAgLSBwYXNzIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50IHdoZW4gZmxhZyBzZXQKCjIwMDQtMDgtMjggMTU6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBjb25maWdfcmVxdWlyZSBtaWJJSS92YXJfcm91dGUgKFVTRV9TWVNDVExfSUYgbmVlZHMgZ2V0X2FkZHJlc3MpCgoyMDA0LTA4LTI4IDEyOjM4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgLSBuZXRzbm1wX2Fzc2VydCBvbiBzZWxmLXJlZmVyZW5jZSBpbiBsaW5rZWQgbGlzdAoKMjAwNC0wOC0yOCAxMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gYWRkIGNvbW1lbnRzCgoyMDA0LTA4LTI4IDEyOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBjb21tZW50IG91dCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZm9yIHVud3JpdHRlbiBtb2R1bGVzCgoyMDA0LTA4LTI4IDEyOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBkb2N1bWVudCBzY2FubGluZSBmb3JtYXQKCjIwMDQtMDgtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgLSByZW1vdmUgZXh0cmFuZW91cyAnOycKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgLSBpbmxpbmUgZml4ZXMgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCwgcGx1cyBhIGZldyBJIGZvdW5kCiAgICAgKGlzc3VlcyBub3RlZCBpbiBidWcvcGF0Y2ggMTAxMTQ3MSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMpCgoyMDA0LTA4LTI4IDEyOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDgtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBvbmx5IGRlZmluZSBpbmxpbmUgbWFjcm9zIGlmIGVuYWJsZWQKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yNyAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZml4IDEvMiBvZiBidWcgNzAyNDM1OiBtZW1vcnkgbGVhayBbLi4uXSBmb3IgYWdlbnR4IHN1YmFnZW50cwogICAgIC0gUGF0Y2ggc3VwcGxpZWQgYnkgRnJhbnogRy4gRmlzY2hlcgoKMjAwNC0wOC0yNyAyMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIgYW5kIHByb3RvdHlwZXMKICAgLSBhZGQgY29tbWVudCBkb2N1bWVudGluZyBzY2FuIGxpbmUgZm9ybWF0CgoyMDA0LTA4LTI3IDIzOjIyICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBvbWl0IHJvdXRlcyB0aGF0IGFyZSBkb3duCiAgIC0gaGFyZGNvZGUgYWN0aXZlIHJvdyBzdGF0dXMgZm9yIG5ld2x5IGRpc2NvdmVyZWQgcm91dGVzCgoyMDA0LTA4LTI3IDIzOjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gdHdlYWsgbG9nIG1lc3NhZ2VzIHN5bnRheAogICAtIGZpeCBpcHY0IG1hc2sgY2FsY3VsYXRpb24KICAgLSBpbXBsZW1lbnQgaXB2NiByb3V0ZXMKICAgLSBjb21tb24gZnVuY3Rpb24gdG8gc2V0IHJvdXRlIHR5cGUgZnJvbSBmbGFncwogICAtIHNldCBwb2xpY3kgb2lkIGJhc2VkIG9uIGFyYml0cmFyeSBpbmRleAoKMjAwNC0wOC0yNyAyMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgZG9udCBmcmVlIHBvbGljeSBvaWQgaWYgc3RhdGljIGZsYWcgc2V0CgoyMDA0LTA4LTI3IDIzOjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgLSBhZGQgZmxhZyBmb3Igc3RhdGljIHBvbGljeSBvaWQKICAgLSBjaGFuZ2UgaW50ZXJuYWwgaW5kZXggdHlwZSB0byBvaWQKCjIwMDQtMDgtMjcgMDc6MjkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgVHJ5IGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIG11bHRpLXR5cGUgY29uZmlnIGhhbmRsaW5nLgogICBEb24ndCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVyIGNvbmZpZyB0b2tlbnMgYWdhaW5zdCBtdWx0aXBsZSB0eXBlcy4KICAgSW5zdGVhZCwgZXhwbGljaXRseSByZWdpc3RlciBBZ2VudFgtcmVsYXRlZCBjb25maWcgdG9rZW5zIGFzIHN1Y2guCiAgIChUaGUgY29uZmlnIG1lY2hhbmlzbSB3aWxsIGFscmVhZHkgYXV0b21hdGljYWxseSBsb2FkIGFueSBjb25maWcKICAgZmlsZSB0eXBlcyB0aGF0IGl0IGtub3dzIGFib3V0KS4KCjIwMDQtMDgtMjcgMDM6MTUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFVzZSBhIGNvbnNpc3RlbnQgImhvc3RzLnthbGxvdyxkZW55fSIgdG9rZW4gZm9yIGtub3duIGFuZCB1bmtub3duIGFkZHJlc3Nlcy4KCjIwMDQtMDgtMjcgMDM6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIElmIHdlJ3JlIHJlYWRpbmcgaW4gdGhlIG11bHRpY2FzdCBzdGF0cywgdGhlbiB0aGUgc2NhbiBsaW5lIG5lZWRzIHRvIGJlCiAgIHR3ZWFrZWQgbm90IHRvIHNraXAgdGhpcyB2YWx1ZSEKCjIwMDQtMDgtMjYgMDc6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIFN1cHByZXNzIDMyLWJpdCBzaGlmdCB3YXJuaW5ncyBvbiAzMi1iaXQgc3lzdGVtcy4KICAgKFRob3VnaCB0aGlzIG1heSBub3QgYmUgdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCBzdWNoIHN5c3RlbXMhKQoKMjAwNC0wOC0yNiAwNzoyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRGVjbGFyZSBtaXNzaW5nIHZhcmlhYmxlIG9uIG5vbi1TQ051TUFYIHN5c3RlbXMuCgoyMDA0LTA4LTI1IDEyOjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5IG1lbWJlcnMgdG8gYXZvaWQgbmFtZXNwYWNlIGNvbmZsaWN0cwogICAgIC0gbm90ZWQgb24gdXNlcnMgYnkgQWtpaGlybyBJSUpJTUEKCjIwMDQtMDgtMjUgMDk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBtaWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGFwcGx5IHJldmlzZWQgcGF0Y2ggZm9yIGJ1ZyA4OTcwMDI6IHNubXBkIGNhbm5vdCBoYW5kbGUgNjQgYml0IGludGVyZmFjZSBjb3VudGVycwogICAgIChoYWQgYmVlbiBtYXJrZWQgYXMgZml4ZWQgYnV0IHdhc24ndCkKCjIwMDQtMDgtMjUgMDg6MzggIGR0czEyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICBEb2N1bWVudCB0aGUgbmV3IG1pYjJjIG5vZGUgdGFncy4KCjIwMDQtMDgtMjUgMDg6MzUgIGR0czEyCgogICAqIG1pYnMvOiBESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCBESVNNQU4tTlNMT09LVVAtTUlCLnR4dAosIERJU01BTi1QSU5HLU1JQi50eHQsIERJU01BTi1UUkFDRVJPVVRFLU1JQi50eHQKOgoKICAgQWRkIERpc01hbiBSZW1vdGUgT3BlcmF0aW9ucyBNSUIgZmlsZXMKCjIwMDQtMDgtMjUgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24vZ251Yy5oLCBleHByZXNzaW9uL2luNi5oCiwgZXhwcmVzc2lvbi9pcF92YXIuaCwgZXhwcmVzc2lvbi9pcHY2LmgsCiAgICAgZXhwcmVzc2lvbi91ZHBfdmFyLmgsIG5zbG9va3VwL2dudWMuaCwgbnNsb29rdXAvaW42LmgKLCBuc2xvb2t1cC9pcF92YXIuaCwgbnNsb29rdXAvaXB2Ni5oLAogICAgIG5zbG9va3VwL3VkcF92YXIuaCwgcGluZy9nbnVjLmgsIHBpbmcvaW42LmgsCiAgICAgcGluZy9pcF92YXIuaCwgcGluZy9pcHY2LmgsIHBpbmcvdWRwX3Zhci5oLAogICAgIHRyYWNlcm91dGUvZ251Yy5oLCB0cmFjZXJvdXRlL2luNi5oLAogICAgIHRyYWNlcm91dGUvaXBfdmFyLmgsIHRyYWNlcm91dGUvaXB2Ni5oLAogICAgIHRyYWNlcm91dGUvdWRwX3Zhci5oOgoKICAgTG9jYWxseS10d2Vha2VkIHZlcnNpb25zIG9mIHN0YW5kYXJkIGhlYWRlciBmaWxlcy4KICAgVGhpcyBpcyBub3QgdGhlIG1vc3QgYXBwcm9wcmlhdGUgd2F5IHRvIHByb2NlZWQsCiAgIGJ1dCBpcyBuZWVkZWQgdG8gZ2V0IHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHdvcmtpbmcuCgoyMDA0LTA4LTI1IDA3OjMxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgU3VwcG9ydCBob2xlcyBpbiAiaXRlcmF0ZV9hY2Nlc3MiIHRhYmxlcy4KCjIwMDQtMDgtMjUgMDE6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYzoKCiAgIEZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBSbW9uIGNvZGUuIChSZXBvcnRlZCBieSBGb25nIFRzdWkpCgoyMDA0LTA4LTI0IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI0IDA5OjI4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIEZpeCB0aGUgbWluaW1hbCBjb25maWcgdGVzdHMgdG8gdXNlIHRoZSBjb3JyZWN0IHNldCBvZiBNSUIgbW9kdWxlcy4KICAgKFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTI0IDA5OjI0ICBkdHMxMgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIFN1cHBvcnQgYWRkaXRpb25hbCB0cmFwZCBmbGFncyAocGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlKQogICAoQW5kIHVwZGF0ZSB0aGUgUkVBRE1FIHRvIGtlZXAgTWlrZSBoYXBweSEpCgoyMDA0LTA4LTI0IDA5OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTG9nIHJlY29uZmlnL3NodXRkb3duIG1lc3NhZ2VzIG1vcmUgcmVsaWFibHkuICAoUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToxNiAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIEFkZCBDaXNjby9CVVBUTklDIGNvcHlyaWdodCBub3RpY2UsIHRvIGNvdmVyIHRoZSBuZXcgRGlzTWFuIFJlbU9wcyBjb2RlLgoKMjAwNC0wOC0yNCAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4uaCwgZGlzbWFuL2V4cHJlc3Npb24tbWliLmgsCiAgICAgZGlzbWFuL25zbG9va3VwLW1pYi5oLCBkaXNtYW4vcGluZy1taWIuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS1taWIuaCwgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jCiwgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5oLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5oLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5oLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oCiwgZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsCiAgICAgZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmgsCiAgICAgZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIFJlbW90ZSBPcGVyYXRpb24gTUlCIGdyb3Vwcy4KICAgTm90ZSB0aGF0IHRoZXNlIGFyZSBub3QgeWV0IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4KCjIwMDQtMDgtMjMgMDg6MDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG5ldyB0YXJnZXQgdG8gb25seSBtYWtlIG9iamVjdHMgZm9yIGN1cnJlbnQgZGlyZWN0b3J5IChubyBzdWJkaXJzKQoKMjAwNC0wOC0yMyAwNzozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBPcHRpb24gdG8gZXhjbHVkZSB0aGUgZmluYWwgR0VUIHJlcXVlc3Qgd2hlbiB3YWxraW5nIGEgc2luZ2xlIGluc3RhbmNlLgoKMjAwNC0wOC0yMyAwMjozOSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgTmV3IHRlbXBsYXRlIGNvbmZpZ3MgZm9yIHJvdy1iYXNlZCAiaW50ZXJuYWwtZGF0YSIgaW1wbGVtZW50YXRpb25zLgoKMjAwNC0wOC0yMyAwMjoyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBOZXcgdmFyaWFibGUgdG9rZW5zIHRvIGlkZW50aWZ5ICJjcmVhdGFibGUiIG9yIFJvd1N0YXR1cyBjb2x1bW4gb2JqZWN0cy4KICAgRXh0ZW5kIHRoZXNlIHR3byB0b2tlbnMsIHBsdXMgInNldHRhYmxlIiB0byBhcHBseSB0byB0YWJsZXMgYXMgd2VsbAogICAocmVwb3J0aW5nIG9uIHRoZSBjb25zdGl0dWVudCBjb2x1bW4gb2JqZWN0cykuCgoyMDA0LTA4LTIzIDAxOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBJbXBsZW1lbnQgY29udGV4dCBlcnJvciBjb3VudGVycyBhcyBwcm9wZXIgc2NhbGFyIG9iamVjdHMKICAgKHJhdGhlciB0aGFuIHNpbXBseSBpbnN0YW5jZXMpCgoyMDA0LTA4LTIzIDAxOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jOgoKICAgRnVsbGVyIGltcGxlbWVudGF0aW9uIG9mIHNubXBTZXRTZXJpYWxObyBvYmplY3QsIGluY2x1ZGluZyBwZXJzaXN0YW5jZSBhY3Jvc3MKICAgYWdlbnQgcmVzdGFydCwgcmFuZG9tIGluaXRpYWxpc2F0aW9uIHZhbHVlIChib3RoIHBlciBUZXN0QW5kSW5jciBkZXNjcmlwdGlvbikKICAgYW5kIHByb3BlciBvYmplY3QgaW5zdGFuY2UgYmVoYXZpb3VyLgoKMjAwNC0wOC0yMyAwMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERvbid0IGludm9rZSBjYWxsYmFjayByZWdpc3RyYXRpb25zIGlmIHRoZSBvcmlnaW5hbCByZWdpc3RyYXRpb24gZmFpbHMuCiAgIChTZWUgYnVnICM5OTAwNzApCgoyMDA0LTA4LTIwIDA4OjUxICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHByb2plY3QgbnVtYmVyIHRvIDUuMi5kZXYKCjIwMDQtMDgtMjAgMDg6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHJlbW92ZSBzdGF0aWMgYXR0cmlidXRlIGZvciBmdW5jdGlvbgogICAtIGZpeCBwYXJlbiBncm91cGluZwoKMjAwNC0wOC0yMCAwODo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gZG8gbm90IGluY2x1ZGUgZGF0YSBhY2Nlc3MgaGVhZGVycywgYXMgdGhleSBhcmUgbm90IGluc3RhbGxlZAoKMjAwNC0wOC0yMCAwODoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGluY2x1ZGUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGhlYWRlcgoKMjAwNC0wOC0yMCAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFRpZHkgdXAgaGFuZGxpbmcgb2YgcGlkX2ZpbGUuIChQYXRjaGVzIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTkgMDI6MjMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbXByb3ZlZCBoYW5kbGluZyBvZiBzbm1wdHJhcGQgUElEIGZpbGUuCiAgIFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZS4KCjIwMDQtMDgtMTkgMDI6MTcgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgSGFuZGxlIGFnZW50X21vZHVsZSBoZWFkZXIgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFzIG1pYl9tb2R1bGUgb25lcy4KICAgKFJlbW92aW5nIHRoZW0gd2hlbiBjbGVhbmluZyB1cCwgYW5kIGluc3RhbGxpbmcgdGhlIGNvbmZpZyBoZWFkZXIpCgoyMDA0LTA4LTE5IDAyOjEyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBBZGQgYWdlbnRfbW9kdWxlIGNvbmZpZ3VyYXRpb24gdG9rZW5zIHRvIHRoZSBsaXN0IG9mCiAgIHN0YW5kYXJkIGFnZW50IGluY2x1ZGVzLiAgKFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5oOgoKICAgQ29ycmVjdCBhZ2VudF9tb2R1bGUgY29uZmlnIHNldHRpbmcuCiAgIChTcG90dGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE4IDE1OjEyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQWxsb3cgVE9LRU5SSU5HLU1JQiBhbmQgRFMxLU1JQiB0byBvdmVycmlkZSBvbGRlciBSRkMgbWlicwoKMjAwNC0wOC0xOCAwMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVXNlIHRoZSBjb250ZXh0IG5hbWUgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGNhbGwsCiAgIHJhdGhlciB0aGFuIHRoZSBjb250ZXh0IGZyb20gdGhlIGluY29taW5nIHJlcXVlc3QuCiAgIFRoZXNlIG91Z2h0IHRvIGJlIHRoZSBzYW1lLCBidXQgYXJlIHN1YnRseSBkaWZmZXJlbnQgd2hlbgogICBubyBjb250ZXh0IGlzIHNwZWNpZmllZC4gIChQYXRjaCBzdXBwbGllZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xNyAwODo0MCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBNb3JlIHBvcnRhYmxlIGFwcHJvYWNoIHRvIGF2b2lkaW5nIHVubmVjZXNzYXJ5IGhlYWRlciBpbnN0YWxscy4KICAgKFRoYW5rcyB0byBib3RoIEJlbiBSb2dlcnMgYW5kIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wOC0xNyAwMjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBdHRlbXB0IHRvIHN1cHBvcnQgbXVsdGlwbGUgJ3t4eHh4fS5jb25mJyBhcHBsaWNhdGlvbiB0eXBlcy4KCjIwMDQtMDgtMTcgMDI6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBJbmNsdWRlIHRoZSBuZXcgJ05FVC1TTk1QLUVYVEVORC1NSUInIG1vZHVsZSBpbiBhIGRlZmF1bHQgY29uZmlnLgoKMjAwNC0wOC0xNyAwMjowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEFsbG93ICJ0cmFwaGFuZGxlIiBkaXJlY3RpdmVzIHRvIG1hdGNoIGEgc3VidHJlZSByYXRoZXIKICAgdGhhbiBqdXN0IGEgc2luZ2xlIHRyYXAuICAoU3VnZ2VzdGVkIGJ5IEJvc2tvIE1pbGVraWMpCgoyMDA0LTA4LTE3IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRG9uJ3QgYm90aGVyIGxvb2tpbmcgdXAgdGhlIGhvc3RuYW1lIHVubGVzcyBpdCdsbCBhY3R1YWxseQogICBiZSBuZWVkZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGVuZ2luZUlELiAgU3VnZ2VzdGVkIGJ5IEpvZSBDLgoKMjAwNC0wOC0xNyAwMTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wVW5peERvbWFpbi5jOgoKICAgRW5zdXJlIHRoYXQgYSBub24tbWF0Y2hpbmcgY29tMnNlYyBsb29rdXAgd2lsbCByZXR1cm4gYSBOVUxMICdzZWNOYW1lJwogICAoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IE9sZWcgSXZhbm92KQoKMjAwNC0wOC0xNyAwMTo0MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgYXBwbHkgJ2hvc3RzLnthbGxvdyxkZW55fScgY2hlY2tpbmcgdG8gY2FsbGJhY2sgY29ubmVjdGlvbnMKICAgKHdoaWNoIHR5cGljYWxseSB3b24ndCBtYXRjaCBhbnl0aGluZyBvdGhlciB0aGFuICJBTEwiKQoKMjAwNC0wOC0xNyAwMTozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhcmFtZXRlcnMuICAoU3VnZ2VzdGVkIGJ5IEpvaG4gTGFzaCkKCjIwMDQtMDgtMTcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIEFQSSBmb3IgYWRkaW5nIGEgKG5ld2x5IGNyZWF0ZWQpIHJvdyB0byB0aGUgdmFyYmluZCByZXF1ZXN0IGxpc3QsCiAgIHNvIGl0J3MgYXZhaWxhYmxlIGR1cmluZyBsYXRlciBTRVQgcGFzc2VzLiAgIFRoZXJlJ3MgcHJvYmFibHkKICAgYSBiZXR0ZXIgd2F5IG9mIGNvbXBhcmluZyBpbmRleCB2YWx1ZXMsIGJ1dCB0aGlzIHNlZW1zIHRvIHdvcmsuCgoyMDA0LTA4LTE3IDAxOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXB2M21pYnMuaCwgc25tcHYzL3VzbUNvbmYuYywKICAgICBzbm1wdjMvdXNtQ29uZi5oLCBzbm1wdjMvdXNtVXNlci5jOgoKICAgU3BsaXQgb2ZmIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byBhIHNlcGFyYXRlIG1vZHVsZQogICAoYW5kIG1vdmUgdGhpcyBpbnRvIHRoZSBhZ2VudCBsaWJyYXJ5KQoKMjAwNC0wOC0xNyAwMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvYWdlbnR4X2NvbmZpZy5oLCBhZ2VudHgvY2xpZW50LmgKLCBhZ2VudHgvbWFzdGVyLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgICBhZ2VudHgvcHJvdG9jb2wuaCwgYWdlbnR4L3N1YmFnZW50LmgsCiAgICAgbWliSUkvdmFjbV9jb25mLmg6CgogICBNb3ZlIFZBQ00gY29uZmlnIGhhbmRsaW5nIGFuZCBBZ2VudFggc3VwcG9ydCBpbnRvIHRoZSBhZ2VudCBsaWJyYXJ5LgoKMjAwNC0wOC0xNyAwMToyMyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBtaWJfbW9kdWxlcy5jOgoKICAgUGljayB1cCBhZ2VudF9tb2R1bGUgaW5pdGlhbGlzYXRpb24gYW5kIGRvdF9jb25mIHJvdXRpbmVzLgogICAoTm90IGNvbnZpbmNlZCB0aGlzIGlzIHRoZSBiZXN0IHBsYWNlIGZvciB0aGUgYWdlbnRfbW9kdWxlCiAgICBpbml0IHJvdXRpbmVzIHRvIGJlIGNhbGxlZCwgYnV0IGl0J2xsIGRvIGZvciBub3cuKQoKMjAwNC0wOC0xNyAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBTd2l0Y2ggbGlua2luZyBvcmRlciBvZiBhZ2VudCBhbmQgbWliIGxpYnJhcmllcyAoc2luY2UgbGlibmV0c25tcG1pYnMKICAgbWF5IHdlbGwgdXNlIHJvdXRpbmVzIGRlZmluZWQgaW4gbGlibmV0c25tcGFnZW50LCBidXQgbm90IHZpY2UgdmVyc2EpCgoyMDA0LTA4LTE3IDAxOjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEVuc3VyZSBhZ2VudCB2cyBtaWIgbW9kdWxlcyBhcmUgcGlja2VkIHVwIGNvcnJlY3RseSAoZXNwLiBmb3IgbW9kdWxlcwogICB3aXRob3V0IGEgaGVhZGVyIGZpbGUsIHdoaWNoIHNob3VsZCBkZWZhdWx0IHRvICdtaWJfbW9kdWxlcycpCgoyMDA0LTA4LTE3IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFNsaWdodGx5IHByZWZlcmFibGUgY29uZmlnIHRva2VuIGZvciB0aGUgbmV3IGV4dGVuc2libGUgc2NyaXB0aW5nIG1pYiwKICAgZG9jdW1lbnQgdGhpcyBmZWF0dXJlLCBhbmQgYWRkIGEgd2FybmluZyByZWdhcmRpbmcgdGhlIG9sZCAoaW52YWxpZCkKICAgcmVsb2NhdGFibGUgb3V0cHV0IGZvcm1hdC4KCjIwMDQtMDgtMTYgMjA6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGRvbid0IGRyb3AgcmUtYXR0YWNoZWQgaGVhZCAocGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbikKICAgLSBmaXggdHlwbwoKMjAwNC0wOC0xNiAxNDo1NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1mZC5oCgoyMDA0LTA4LTE2IDE0OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyB2ZXJzaW9uIGZyb20gYXV0b2NvbmYKCjIwMDQtMDgtMTYgMTQ6MjMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBhZGQgdW5kZWYgZm9yIFNUUlVDVF9UTV9IQVNfVE1fR01UT0ZGRgogICAtIGRlZmluZSBjb25maWdfYmVsb25nc19pbiB0byBub3RoaW5nCgoyMDA0LTA4LTE2IDEyOjEzICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOgoKICAgTW9yZSBhdXRvbWF0aWMgaW5zdGFsbGF0aW9uIG9mIFJGQyBiYXNlZCBtaWJzCgoyMDA0LTA4LTEzIDA2OjU5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBjb25maWctZ2VuZXJhdGVkICdhZ2VudF9tb2R1bGUnIGZpbGVzCgoyMDA0LTA4LTEzIDA2OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBsb2NhbC9NYWtlZmlsZS5pbiwKICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvYXV0aGVudGljYXRpb24sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2xvZ2dpbmcsCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3J1bnRpbWUsCiAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgQWRkIHNubXB0cmFwZCBjb25maWcgc3VwcG9ydCBmb3IgbG9nZ2luZywgYXV0aGVudGljYXRpb24gYW5kIHJ1bnRpbWUgb3B0aW9ucy4KICAgKFBhdGNoICM5ODEzMTkgZnJvbSBBbGV4IEJ1cmdlcikKCjIwMDQtMDgtMTMgMDY6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgU3RyaXAgcG9ydC1udW1iZXIgc3BlY2lmaWNhdGlvbiBmcm9tICJwZWVybmFtZSIgd2hlbiBjb25zdHJ1Y3RpbmcgS1NNIGNyZWRlbnRpYWxzLgogICAoQmFzZWQgb24gcGF0Y2ggIzk5MjQ0MCkKCjIwMDQtMDgtMTMgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEhhbmRsZSAiZ2VuZXJhbCIgQWdlbnRYIGVycm9ycywgbm90IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHZhcmJpbmQuCiAgIChCYXNlZCBvbiBwYXRjaCAjOTgzOTcyIGZyb20gbG9yZW56aW0pCgoyMDA0LTA4LTEzIDAyOjU0ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mICdpbnN0YWxsc3ViZGlyaGVhZGVycycgcnVsZS4KICAgKFBhdGNoICM5OTE2NjQgZnJvbSBCZW4gUm9nZXJzKQoKMjAwNC0wOC0xMyAwMjo1MyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICAiTGF6eSIgaW5zdGFsbGF0aW9uIG9mIGhlYWRlciBmaWxlcy4gIE9ubHkgaW5zdGFsbCBhIGhlYWRlciBmaWxlIGlmCiAgIGl0J3MgbmV3ZXIgdGhhbiB0aGUgZXhpc3Rpbmcgb25lLiAgKFBhdGNoICM5OTE2NjQgZnJvbSBCZW4gUm9nZXJzKQoKMjAwNC0wOC0xMyAwMjo1MCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wLXRjLmMKOgoKICAgVXNlIGFuIGV4cGxpY2l0IGNoZWNrIGZvciAndG1fZ210b2ZmJywgcmF0aGVyIHRoYW4gcGVyLWFyY2hpdGVjdHVyZSAjZGVmaW5lcwogICAoUGF0Y2ggIzEwMDYyOTggZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTMgMDI6MTcgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBpYW5hbGlzdCwgcmZjbGlzdDoKCiAgIFVwZGF0ZWQgUkZDIE1JQiBpbmZvcm1hdGlvbgoKMjAwNC0wOC0xMiAwNzo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgSGFuZGxlIGEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgImFwcGxpY2F0aW9uLXR5cGUiIGNvbmZpZyBmaWxlcy4KICAgKGUuZy4gImFnZW50eDpzbm1wZCIgdG8gc2VhcmNoICpib3RoKiAnc25tcGQuY29uZicgKmFuZCogJ2FnZW50eC5jb25mJykKICAgU2VlIGNvZGVycy10aHJlYWQgIkFnZW50WCBjb25maWd1cmF0aW9uIiAtIEp1bCAnMDQKCjIwMDQtMDgtMTIgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBBbiBleGFtcGxlIG9mIGNvbmZpZ3VyaW5nIGNvZGUgaW50byB0aGUgYWdlbnQgcmF0aGVyIHRoYW4gdGhlIG1pYiBsaWJyYXJ5LgoKMjAwNC0wOC0xMiAwNToxOCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbgosIGNvbmZpZ3VyZToKCiAgIFN1cHBvcnQgYSBtZWNoYW5pc20gZm9yIGluY2x1ZGluZyBwYXJ0aWN1bGFyIGNvZGUgbW9kdWxlcyB3aXRoaW4gZWl0aGVyCiAgIHRoZSBtaWIgbGlicmFyeSBvciB0aGUgYWdlbnQgbGlicmFyeSAob3IgcG90ZW50aWFsbHkgZWxzZXdoZXJlIGFzIHdlbGwpLgogICAoU2VlIGNvZGVycy10aHJlYWQgIk1vdmluZyBBZ2VudFggb3V0IG9mIHRoZSBtaWJtb2R1bGVzIiAtIEp1bmUgJzA0KQoKMjAwNC0wOC0xMiAwNToxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgSW5jbHVkZSBhbiBvZnQtb3Zlcmxvb2tlZCBoZWxwZXIuCgoyMDA0LTA4LTEyIDA1OjExICBkdHMxMgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmb2xsb3dpbmcgTlVMTCBwb2ludGVycwogICAocGx1cyBzb21lIHBldHR5IGdyYW1tYXRpY2FzdGlnYXRpb24pCgoyMDA0LTA4LTExIDEzOjU3ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbG9vayBmb3IgLmluIGZpbGUgaW4gc3JjZGlyLCB3aGljaCBtYXkgIT0gY3VycmVudCBkaXIKCjIwMDQtMDgtMTEgMDU6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgT25seSBzdG9yZSB0aGUgdGFibGUgc3RydWN0dXJlIG9uIHRoZSBmaXJzdCBwYXNzIHRocm91Z2guCiAgIFN1YnNlcXVlbnQgcGFzc2VzIGNhbiByZXRyaWV2ZSB0aGlzIHN0b3JlZCB2YWx1ZSBhbnl3YXkuCgoyMDA0LTA4LTExIDA0OjU1ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgZGVsZXRlZCBtYW4gcGFnZXMgKHRvZG8gJiBkZXByZWNhdGVkKQoKMjAwNC0wOC0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcgYSBiaXQKCjIwMDQtMDgtMDQgMDU6NTEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9kZXByZWNhdGVkLjMsCiAgICAgbWFuL25ldHNubXBfdG9kby4zOgoKICAgRG9uJ3QgaW5zdGFsbCAndG9kbycgb3IgJ2RlcHJlY2F0ZWQnIG1hbiBwYWdlcwogICAoc2luY2UgdGhlc2UgYXJlIGNvbnN0cnVjdGVkIHdpdGggc3VzcGVjdCBmb3JtYXR0aW5nKQoKMjAwNC0wOC0wMyAwODoxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgbGVuZ3RoIG9mIHN0cmluZyBmb3IgQUVTICdzdHJuY21wJyBjb21wYXJpc29ucy4KICAgKFNlZSBidWcgIzk5Njg5NCkKCjIwMDQtMDgtMDIgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggY29udGV4dCByZWdpc3RyYXRpb24gc28gbmV3IGNvbnRleHQgdHJlZXMgZ2V0IHByb3Blcmx5IGluaXRpYWxpemVkLgoKMjAwNC0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIERvbid0IGRvdWJsZS1wcm9kdWNlIEhUTUwgb3V0cHV0IGZvciByZXBlYXRlZCBNSUJzLgoKMjAwNC0wNy0zMCAxNzozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gZG9jdW1lbnQgQWdlbnRYIGNvbnRleHQgZml4aW5nCiAgIC0gZG9jdW1lbnQgdGhlIHVzbVVzZXIgdGFibGUgcG9wdWxhdGlvbiB1bmRlciBzbm1wdHJhcGQKCjIwMDQtMDctMzAgMTc6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIERvdWJsZSBjaGVjayB0aGF0IHRoZSBjb250ZXh0TmFtZSBhcnJheSBpcyBwcm9wZXJseSBpbml0aWFsaXplLgoKMjAwNC0wNy0zMCAxNzozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgQWRkIGNvbnRleHROYW1lIHRvIHRoZSByZWdpc3RyYXRpb24gcGFyYW1hdGVycyBzdHJ1Y3R1cmUuCgoyMDA0LTA3LTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVnaXN0ZXIgdGhlIHVzbVVzZXJUYWJsZSB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dAoKMjAwNC0wNy0zMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlZ2lzdGVyIGFsbCB0aGUgc25tcHRyYXBkIG1pYiBub2RlcyB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dAoKMjAwNC0wNy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogdXNtVXNlci5jLCB1c21Vc2VyLmg6CgogICBDcmVhdGUgYSBmdW5jdGlvbiB0byByZWdpc3RlciB0aGUgdXNtVXNlciB0YWJsZSBvdGhlciBhIGRpZmZlcmVudCBjb250ZXh0LgoKMjAwNC0wNy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLCBtYXN0ZXIuYwosIHN1YmFnZW50LmM6CgogICAtIEZpeCBhZ2VudHggdG8gd29yayBwcm9wZXJseSB1bmRlciBub24tZGVmYXVsdCBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEFkZCBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0byByZWdpc3RlciBpbnN0YW5jZXMgdW5kZXIgbm9uIGRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBmaXggYWRkX3N1YnRyZWUgc28gaXQgcmVnaXN0ZXJzIHRvcCBsZXZlbCBudWxsIGhhbmRsZXJzIHRvbwogICAgIC0gZml4ZXMgYSBudW1iZXIgb2YgY29udGV4dCBwcm9ibGVtcwogICAtIHBhc3MgY29udGV4dCBpbmZvcm1hdGlvbiBkb3duIGludG8gcmVnaXN0cmF0aW9uIGluZm8gc3RydWN0ICh1c2VkIGJ5IGFnZW50eCkKCjIwMDQtMDctMzAgMTc6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaDoKCiAgIC0gYWRkIGEgbnVsbCByZWdpc3RyYXRpb24gZnVuY3Rpb24gZm9yIGNvbnRleHRzIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQuCgoyMDA0LTA3LTMwIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKOgoKICAgUGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gZml4IFVTTSBwcml2YWN5IGtleSBsZW5ndGhzCgoyMDA0LTA3LTMwIDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEkgd2FzIHNsZWVwaW5nIGVhcmxpZXIgd2hlbiBJIGZpeGVkIGNvZGUgdGhhdCB3YXNuJ3QgYnJva2VuLgoKMjAwNC0wNy0zMCAxMzowNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gY29tbXVuaXR5IHN0cmluZyAtPiBjb250ZXh0IG1hcHBpbmdzCgoyMDA0LTA3LTMwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBuZXcgY29tMnNlYyB0b2tlbiBvcHRpb25zLgoKMjAwNC0wNy0zMCAxMzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTWFrZSB0aGUgY29tMnNlYyogdG9rZW5zIGFjY2VwdCBhIC1DbiBDT05URVhUIGZsYWcgdG8gYWxsb3cgdGhlCiAgIG1hcHBpbmcgb2YgY29tbXVuaXR5IHN0cmluZ3MgdG8gU05NUHYzIGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGFzcyB0aGUgYWN0dWFsIHBkdSBiZWluZyBwcm9jZXNzZWQgaW50byBjaGVja19hY2Nlc3MgaW5zdGVhZCBvZiB0aGUgY29weQoKMjAwNC0wNy0zMCAxMToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXggY29udGV4dCBjaGVja2luZyBzbyBpdCBhY3R1YWxseSB3b3JrcyBmb3Igbm9uIGRlZmF1bHQgY29udGV4dHMKCjIwMDQtMDctMjggMTI6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGNvbmZpZ3VyZV9yZXF1aXJlIC0+IGNvbmZpZ19yZXF1aXJlCgoyMDA0LTA3LTI4IDA1OjQwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBPcGVuU1NMIGlzIG5lZWRlZCBmb3IgU0hBLWJhc2VkIGF1dGhlbnRpY2F0aW9uLCByYXRoZXIgdGhhbiBNRDUuCiAgIChJdCdzIHVzZWQgZm9yIGJvdGggaWYgYXZhaWxhYmxlLCBidXQgaXQncyBvbmx5ICpuZWVkZWQqIGZvciBTSEEpCgoyMDA0LTA3LTI4IDAyOjE3ICBkdHMxMgoKICAgKiBGQVE6CgogICBEaXNjdXNzIFJQTS1kZXBlbmRlY3kgcHJvYmxlbXMuCgoyMDA0LTA3LTI4IDAxOjA0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQZXItb2JqZWN0IHN3aXRjaCBzdGF0ZW1lbnQgaXMgbWlzc2luZyB0aGUgImNhc2UiIGtleXdvcmQuCiAgIChSZXBvcnRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkpCgoyMDA0LTA3LTIyIDE3OjU1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZvciB3aW4zMiBhZ2VudCwgaW50ZXJwcmV0IGlmT3BlclN0YXR1cyBjb3JyZWN0bHksCiAgIGFuZCBzZXQgaWZMYXN0Q2hhbmdlIHRvIHplcm8uIFRoZXNlIGNoYW5nZXMgZml4ZXMgYnVnICM5MDc3MTYuCgoyMDA0LTA3LTIyIDEzOjA2ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIHR5cGVkZWYgbG9uZyBpbnQzMl90IHRvIHN1Y2NlZWQgYnVpbGRpbmcgd2l0aCBNU1ZDKysuCgoyMDA0LTA3LTIyIDEwOjQ1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHBhdGNoICM5ODI2MjggYXBwbGllZCB0byBmaXggbGVhayBvbiBlcnJvcnMgaW4gbmV0c25tcF91ZHA2X3RyYW5zcG9ydAoKMjAwNC0wNy0yMiAwODo0OSAgZHRzMTIKCiAgICogRkFROgoKICAgRW1waGFzaXNlIHRoZSBuZWVkIHRvIGV4cGxpY2l0bHkgY3JlYXRlIHVzZXJzLgoKMjAwNC0wNy0yMCAyMzoyNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBmaXggYnVnICM5OTI3MzUgT1NYIDEwLjMuNCBtYWtlIGZhaWxzIGJ5IGluY2x1ZGluZyBkYXJ3aW4gaW4gI2lmIGV4cHJlc3Npb25zLgoKMjAwNC0wNy0yMCAyMjoyOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43Lmg6CgogICBjcmVhdGUgc3lzdGVtIGhlYWRlciBmb3IgLURkYXJ3aW43LiBwYXJ0aWFsIGZpeCBmb3IgYnVnIDk5MjczNS4KCjIwMDQtMDctMjAgMTk6NDAgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGJ1ZyA5OTQxOTQgYnkgY2hlY2tpbmcgZm9yIG51bGwgYmVmb3JlIGRlLXJlZmVyZW5jaW5nIHBvaW50ZXIgYXJndW1lbnQuCgoyMDA0LTA3LTIwIDEzOjMxICBzbGlmCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgcGF0Y2ggOTg4Mjg2IGZyb20gQnJ1Y2UgU2hhdyAtIExvdHMgb2YgdXBkYXRlcyBvbiBSRUFETUUuc29sYXJpcwoKMjAwNC0wNy0yMCAxMzoyMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICB1c2Uga2lsbC5leGUgb25seSBpZmYgT1NUWVBFID0gbXN5cyAocGF0Y2ggIzk4NzYyNiBhcHBsaWVkKQoKMjAwNC0wNy0xOSAwOToyOCAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgRml4IGVycm9uZW91cyB0cm9mZiBtYWNybywgYXMgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kCgoyMDA0LTA3LTE2IDIyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG1pYklJX2NvbW1vbi5oLCB0Y3BUYWJsZS5jOgoKICAgQXR0ZW1wdGVkIGZpeGVzIGZvciBkYXJ3aW4KCjIwMDQtMDctMTYgMTE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUuaDoKCiAgIEFkZGVkIG1pc3NpbmcgaXBTeXN0ZW1TdGF0c1RhYmxlLmggZmlsZSB3aGljaCBSb2JlcnQgcHJvYmFibHkgZm9yZ290IHRvIGNoZWNrIGluLiAgSSdtIGd1ZXNzaW5nIGF0IHRoZSAgcHJvcGVyY29udGVudHMsIGJ1dCBpdCBzaG91bGQgYmUgcmlnaHQKCjIwMDQtMDctMTYgMDk6MDggIGR0czEyCgogICAqIEZBUToKCiAgIEEgZmV3IGFkZGl0aW9uYWwgZW50cmllcyAoZXNwLiByZWxhdGluZyB0byBnZW5lcmF0aW5nIHRyYXBzKQogICBwbHVzIHNvbWUgbWlub3IgcmVzdHJ1Y3R1cmluZyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNC0wNy0xMCAyMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgLSByZW1vdmUgZGVidWcgbXNnCiAgIC0gbG9nIHdhcm5pbmcgaWYgaGVhZGVyIGxlbmd0aCBpc24ndCB3aGF0IHdlIGV4cGVjdAoKMjAwNC0wNy0xMCAyMToyOCAgcnN0b3J5CgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gZml4IGludmVydGVkIGNvbmRpdGlvbmFsIHRlc3QKICAgLSBkb24ndCBhc3N1bWUgNjQgaWYgd3JhcGNoZWNrIHNraXBwZWQKCjIwMDQtMDctMTAgMTk6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgY29tbWVudCB0byBkb2N1bWVudCBzdHJ1Y3R1cmUgdmFyCgoyMDA0LTA3LTEwIDE5OjUxICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGJ1bXAgdXAgdGltZW91dCB0byAzMCBzZWNvbmRzLCBpbnN0ZWFkIG9mIDMKCjIwMDQtMDctMTAgMTk6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSByZW1vdmUgcmVtaW5kZXIgY29tbWVudAogICAtIGZpeCB0eXBvLCBpbmRlbnRlbnRhdGlvbgoKMjAwNC0wNy0xMCAxOTo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHVzZSB1aW50bWF4X3QgdmFycyBmb3IgcGFyc2luZyBkYXRhCgoyMDA0LTA3LTEwIDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIG1ha2UgbG9jYWwgZnVuY3Rpb24gbW9yZSBnZW5lcmljIGFuZCBtb3ZlIHRvIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZQoKMjAwNC0wNy0xMCAxMzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGluZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosIGlwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBtb3ZlIGNvbmZpZyByZXF1aXJlcyB1cCBhIGxldmVsCgoyMDA0LTA3LTEwIDEzOjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oCjoKCiAgIGFkZCBpcHN0YXRzL3N5c3RlbXN0YXRzIGhlYWRlcnMKCjIwMDQtMDctMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgc25tcGxpYi9pbnQ2NC5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZQoKMjAwNC0wNy0xMCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgYWRkIGlwU3lzdGVtU3RhdHNUYWJsZQoKMjAwNC0wNy0xMCAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9kZWZhdWx0LXRhYmxlLWlwU3lzdGVtU3RhdHNUYWJsZS5tMmQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1GSVJTVC50eHQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1pcFN5c3RlbVN0YXRzVGFibGUudHh0CiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgaW1wbGVtZW50IGlwU3lzdGVtU3RhdHNUYWJsZQoKMjAwNC0wNy0wOSAyMjo1OCAgaGFyZGFrZXIKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCjoKCiAgIC0gcmVtb3ZlIG15IHF1aWNrIC8vIGNvbW1lbnRzCiAgIC0gcmVtb3ZlIGEgZmV3IFhYWCBjb21tZW50cyB0aGF0IHdlcmUgZmVlZGJhY2sgZm9yIFJvYmVydCAobm93IGVtYWlsZWQpLgoKMjAwNC0wNy0wOSAxNToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCiAgIC0gcHJvdGVjdCBhZ2FpbnN0ICFvcGVuc3NsIHVzZXJzCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXAtdXNtLWRoLW9iamVjdHMtbWliLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCjoKCiAgIEFkZGVkIHRoZSB1c21ESFBhcmFtZXRlcnMgb2JqZWN0IGZvciBtYW5hZ2VtZW50IG9mIHRoZSBESCBwYXJhbWV0ZXJzCgoyMDA0LTA3LTA5IDExOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHRoZSBwZXJzaXN0ZW50IGZpbGUgd2FybmluZyBhIGJpdCwgdW0sIG1vcmUgc3Ryb25nCgoyMDA0LTA3LTA5IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RveHlnZW4uY29uZgosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgSW1wbGVtZW50ZWQgdGhlIFNOTVAtVVNNLURILU9CSkVDVFMtTUlCIHVzbURIVXNlcktleVRhYmxlIHRhYmxlLgoKMjAwNC0wNy0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlCjoKCiAgIGlnbm9yZSBmaWxlCgoyMDA0LTA3LTA5IDA5OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBTdXBwb3J0IGEgZGlmZmllLWhlbG1hbiBiYXNlZCAiY2hhbmdla2V5IiBjb21tYW5kLgoKMjAwNC0wNy0wOSAwOToyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIEFkZCBkaWZmaWUtaGVsbWFuIHZvaWQgKiBjb250YWluZXIgcG9pbnRlcnMuCgoyMDA0LTA3LTA5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0LCBNYWtlZmlsZS5pbjoKCiAgIHJmYzI3ODY6IGRoIHVzbSBtaWIKCjIwMDQtMDctMDkgMDk6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0IGZvciBvcGVuc3NsL2RoLmgKCjIwMDQtMDctMDggMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgLSBMaW51eDogdXNlIG5vbiAwIHNvY2tldCBwcm90b2NvbCB3aGVuIGNyZWF0aW5nIHNvY2tldCAob3IgY2FsbCBmYWlscykKICAgLSBkb24ndCByZXR1cm4gc3VjY2VzcyBpZiBzb2NrZXQgY2FsbCBmYWlscwogICAtIGNsb3NlIHNvY2tldCBiZWZvcmUgcmV0dXJuaW5nCiAgIC0gZml4IHR5cG8gaW4gY29tbWVudAoKMjAwNC0wNy0wOCAxNzoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSBtb3ZlIHdyaXRlX21ldGhvZCBhc3NpZ25tZW50IGJlZm9yZSBjaGVjayBmb3IgZXhpc3Rpbmcgbm9kZSwgc28gcm93IGNyZWF0aW9uCiAgICAgY2FuIGJlIHN1cHBvcnRlZAoKMjAwNC0wNy0wOCAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1cGRhdGUgdGVzdCBmb3IgY29ycmVjdCBub2RlIGRlY2wgdHlwZQoKMjAwNC0wNy0wOCAxNzoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgZ2VuZXJhdGUgaGlnaCAmIGxvdyBhc3NpZ25tZW50cyBmb3IgY291bnRlcjY0IG5vZGVzCgoyMDA0LTA3LTA4IDE1OjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbG9zZSBmaWxlcyBiZWZvcmUgZXhpdCwgdG8gZmx1c2ggcGVuZGluZyBvdXRwdXQKCjIwMDQtMDctMDggMDk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgLSBhc3NpZ24gZHN0IGFkZHIgdG8gbmV3IGNhY2hlIGVudHJ5LCBzbyB3ZSBjYW4gZmluZCBpdCBpbiBuZXh0IHBhc3MKCjIwMDQtMDctMDggMDg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGJhY2sgb3VyIHByZXZpb3VzIHRyYXAgYmluZGluZyBjaGFuZ2UKICAgLSBzZXQgbmV3IHNlc3Npb24ubG9jYWxuYW1lIHRvIGxvY2FsaG9zdCBmb3IgdjEvdjJjIHRyYXBzIChidXQgbm90IGluZm9ybXMpCgoyMDA0LTA3LTA4IDA4OjM2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICAtIGFsbG93IHBlciBzZXNzaW9uIGJpbmRpbmcgdG8gc3BlY2lmaWMgbG9jYWwgYWRkcmVzcyBmb3IgdWRwIHRyYW5zcG9ydHMKCjIwMDQtMDctMDggMDc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGJpbmQgdjEgdHJhcCBzZXNzaW9ucyBjbGllbnQgYWRkcmVzcyB0byBsb2NhbGhvc3QKCjIwMDQtMDctMDggMDY6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIGNsb3NlIGZpbGUgd2hlbiBkb25lIHdpdGggaXQKCjIwMDQtMDctMDcgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIHN3aXRjaCB0byB1bmlmaWVkIGRpZmYKCjIwMDQtMDctMDcgMTY6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbW92ZSBzb21lIGR1cGxpY2F0ZWQgY29kZSAodXNlIGludGVyZmFjZSBkYXRhIGFjY2VzcyB2ZXJzaW9ucykKICAgLSByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNy0wNyAxNjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgUHJvcGVybHkgcXVvdGUgbWliMmMgdmFyaWFibGUgaW4gYSBAaWZAIGNsYXVzZS4KCjIwMDQtMDctMDcgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gY2hhbmdlIHJvdyBzdGF0dXMgb2JqZWN0IG5hbWUgdG8gbWF0Y2ggbWliICh3aGljaCBkb2Vzbid0IGVuZCBpbiBSb3dTdGF0dXMpCgoyMDA0LTA3LTA3IDE2OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wNyAxMzo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZ3JlZSBvbiB2YXJpYWJsZSBuYW1lCgoyMDA0LTA3LTA3IDEzOjQxICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSByZWdpc3RlciB0YWJsZSBhcyBDQU5fUk9OTFkKCjIwMDQtMDctMDcgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGltcGxlbWVudCByb3cgc3RhdHVzIChoYXJkY29kZWQgYXMgYWN0aXZlKQoKMjAwNC0wNy0wNyAxMzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgLSByZXBsYWNlIHVfaW50Tl90IHdpdGggbW9yZSBwb3J0YWJsZSB1aW50Tl90CgoyMDA0LTA3LTA3IDEwOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5oOgoKICAgLSBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIgZm9yIHN0cnVjdC9lbnVtcwoKMjAwNC0wNy0wNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIC0gaW5pdGlhbGlzZSBjb250YWluZXIgdmlhIGRhdGEgYWNjZXNzIGxpYnJhcnkKCjIwMDQtMDctMDcgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHVzZSBlbnVtcyBmcm9tIG1pYiBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMKCjIwMDQtMDctMDcgMTA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgKOgoKICAgLSBhZGQgbWlzc2luZyBUQyB2YWx1ZQoKMjAwNC0wNy0wNyAxMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gdXBkYXRlIGlwdjYgaW1wbGVtZW50YXRpb24gKHRha2UgYSBzdGFiIGF0IHN0YXR1cywgdHlwZSwgb3JpZ2luKQoKMjAwNC0wNy0wNyAwNzoxMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdHdlYWsgY29tbWVudCBjaGVjayBwYXR0ZXJuIHRvIGV4Y2x1ZGUgbG9ncyBvZiBtZmQgbWF0Y2hlcwoKMjAwNC0wNy0wNyAwNzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICAtIGFkZCB1bnNvcnRlZCBzaW5nbHkgbGlua2VkIGxpc3QgKGZpZm8gb3IgbGlmbykKCjIwMDQtMDctMDcgMDU6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgUXVvdGUgInJbb3ddY29tbXVuaXR5IiBzdHJpbmcgYmVmb3JlIHBhc3NpbmcgdG8gY29tMnNlYy1zdHlsZSBwYXJzZXIsCiAgIHRvIHJldGFpbiBhbnkgaW50ZXJuYWwgd2hpdGVzcGFjZS4KCjIwMDQtMDctMDcgMDU6MjEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgY29weV9ud29yZCByYXRoZXIgdGhhbiBzdHJ0b2sgZm9yIHBhcnNpbmcgY29tMnNlYyBlbnRyaWVzLgogICAoVG8gaGFuZGxlIHF1b3RlZCBzdHJpbmdzIHByb3Blcmx5KQoKMjAwNC0wNy0wNyAwMjoxNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBDb252ZXJ0IHRvIHVzZSB0aGUgbm9uLXJlY3Vyc2l2ZSAnQVVUT19ORVhUJyBhcHByb2FjaAogICBmb3IgYWxsIGJhciBHRVRORVhUL0dFVEJVTEsgcmVxdWVzdHMuCgoyMDA0LTA3LTA3IDAyOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgU3BhcnNlIHRhYmxlcyBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIHRhYmxlciBoZWxwZXIsCiAgIHNvIGRvbid0IG5lZWQgdG8gYmUgY29uc2lkZXJlZCBoZXJlLgoKMjAwNC0wNy0wNyAwMjoxMSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgRG9uJ3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGZpbmFsIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGRpZG4ndAogICBpbmNsdWRlIGFuIGV4cGxpY2l0IGhhbmRsZXIgcm91dGluZS4gIFRoaXMgaXMgcGVyZmVjdGx5IHJlYXNvbmFibGUKICAgaWYgdGhlIE1JQiBvYmplY3QgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwcmVjZWRpbmcgaGVscGVycy4KCjIwMDQtMDctMDYgMjE6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGltcGxlbWVudC9lbmFibGUgaXBBZGRyZXNzVHlwZSwgaXBBZGRyZXNzQ3JlYXRlZCwgaXBBZGRyZXNzTGFzdENoYW5nZWQKICAgICBpcEFkZHJlc3NSb3dTdGF0dXMgKGhhcmRjb2RlZCBhY3RpdmUpLCBpcEFkZHJlc3NTdG9yYWdlVHlwZSAoaGFyZGNvZGVkIHZvbGF0aWxlKQogICAtIHJldHVybiBub3Qgd3JpdGFibGUvbm8gY3JlYXRpb24gdW50aWwgc2V0IHN1cHBvcnQgaW1wbGVtZW50ZWQKICAgLSBjb25maWdfcmVxdWlyZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MKICAgLSB1cGRhdGUgY2FjaGUgcG9saWN5IHRvIGF1dG8gcmVsb2FkLCBmb3IgbGFzdCBjaGFuZ2VkL2NyZWF0ZWQKCjIwMDQtMDctMDYgMjE6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIG5ldyBmdW5jIHRvIGNvbXBhcmUgYW5kIHVwZGF0ZSBpcGFkZHJlc3MgZW50cmllcwogICAtIG5ldyBmbGFnL2NvZGUgZm9yIHNlY29uZCBjb250YWluZXIgaW5kZXgsIGJ5IGFkZHJlc3MKCjIwMDQtMDctMDYgMjE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIHJldHVybiByZXNvdXJjZSB1bmF2YWlsYWJsZSBvbiBlbXB0eSBpbnRlcmZhY2UgY29udGFpbmVyCiAgIC0gbG9nIG1hbGxvYyBmYWlsdXJlCgoyMDA0LTA3LTA2IDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGluaXQgcm91dGluZQogICAtIGNyZWF0ZSBjb250YWluZXIgb25jZSBkdXJpbmcgaW5pdCwgdG8gZGlzY292ZXIgaWZJbmRleGVzCgoyMDA0LTA3LTA2IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBpbml0IGludGVyZmFjZSBkYXRhIGFjY2VzcyBpbiBpbml0X2FnZW50CgoyMDA0LTA3LTA2IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY3JlYXNlIGRlZmF1bHQgb2lkIHByaW50aW5nIHNpemUuCgoyMDA0LTA3LTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgaW5jcmVhc2UgZGVmYXVsdCBidWZmZXIgc2l6ZSBwYXNzZWQgdG8gZ2V0X3N5bWJvbF9yZWFsbG9jICh1c2VmdWwKICAgZm9yIGxvbmcgT0lEcyB3aGVuIHJlYWxsb2MgaXMgYWN0dWFsbHkgb2ZmKS4KCjIwMDQtMDctMDYgMTU6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgbmV3IG1mZCBoZWFkZXIKCjIwMDQtMDctMDYgMTU6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgY29tbW9uIG1mZCBpbmNsdWRlCgoyMDA0LTA3LTA2IDE1OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNlCgoyMDA0LTA3LTA2IDE0OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIE9ubHkgcHJpbnQgb25lIG9mIHRoZSBlcnJvciBtZXNzYWdlcyBpZiB0aGUgcmVzdWx0IHdhcyBhbiBhcnJheS4KCjIwMDQtMDctMDYgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIC0gZml4IGEgZmV3ICJ3aG9vcHMiIChyZW1vdmUgZGVidWdnaW5nOyBwcm9wZXJseSB7fSBtdWx0aSBpZiBzdGF0ZW1lbnRzKS4KCjIwMDQtMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSBpZiBhIHRhYmxlIGlzIGNvbXBvc2VkIG9mIG9ubHkgaW5kZXhlcywgd2FsayBhdCBsZWFzdCBvbmUgc28gcmVzdWx0cwogICAgIGFyZSByZXR1cm5lZCBmb3IgZ2V0dGFibGUoKS4KCjIwMDQtMDctMDYgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIC0gcHJvcGVybHkgcmV0dXJuIE5VTExzIHdoZW4gYXBwcm9wcmlhdGUuCiAgIC0gbWFrZSBnZXRfaW5kZXhlcyByZXR1cm4gaW5kZXhlcyBmcm9tIGF1Z21lbnRlZCB0YWJsZXMuCgoyMDA0LTA3LTA2IDE0OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgaW51Y2FzdCwgb251Y2FzdCBjb3VudGVycyB0byBzdGF0cyBzdHJ1Y3QKICAgLSBtb3ZlIGludWNhc3QsIG9udWNhc3QgY2FsY3VsYXRpb25zIGludG8gbGludXggaW50ZXJmYWNlIGRhdGFfYWNjZXNzCgoyMDA0LTA3LTA2IDExOjUzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICAtIHVwZGF0ZSBtYWtlIGNoZWNrcyB0byBjaGVjayBmb3IgY3BwICN3YXJuaW5ncwoKMjAwNC0wNy0wNSAyMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGRvY3VtZW50IC1UIG9wdGlvbiBpbiB1c2FnZQoKMjAwNC0wNy0wNSAyMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbW92ZSBuYXN0eSBrZXJuZWwgdHJpY2sgZGVmaW5lcwogICAtIGFkZCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSB0eXBlZGVmIGZvciBjb25mX2lmX2xpc3QKCjIwMDQtMDctMDUgMTk6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGluY2x1ZGUgbmV3IGRhdGEgYWNjZXNzIGluY2x1ZGUKCjIwMDQtMDctMDUgMTk6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgKOgoKICAgbmV3IGhlYWRlciBmb3IgYWxsIGRhdGEgYWNjZXNzIGluY2x1ZGVzCgoyMDA0LTA3LTA1IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSByZW1vdmUgcm93IHN0YXR1cyBmb3Igbm93OyB3YXJuaW5nIHRvIHJlbWluZCBiZWZvcmUgNS4yCgoyMDA0LTA3LTA1IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgYWRkIGNvbmZpZ19yZXF1aXJlIG9mIGRhdGFfYWNjZXNzL2ludGVyZmFjZQoKMjAwNC0wNy0wNSAxNDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBjb25mX2lmX2xpc3QgZGVjbGFyYXRpb24gKGl0J3MgaW4gZGF0YV9hY2Nlc3MvaW50ZWZhY2VzLmggbm93KQoKMjAwNC0wNy0wNSAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgYXNzZXJ0cyBzaG91bGQgYmUgbmV0c25tcF9hc3NlcnRzCgoyMDA0LTA3LTA1IDE0OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZG9uJ3QgdXNlIG5hc3R5IGtlcm5lbCB0cmljayAoYXZvaWQgdW5leHBlY3RlZCBtYWNybyBzdWJzdGl0dXRpb25zKQoKMjAwNC0wNy0wNSAwOToyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNy0wNSAwOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMi5kZXYKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwODozMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBtYWtlIHRlc3QgcmVzdWx0cyB0byB1cGxvYWQKCjIwMDQtMDctMDUgMDU6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIHJlYWRfb25seS5jLAogICAgIHRhYmxlX2RhdGFzZXQuYywgd2F0Y2hlci5jOgoKICAgVXNlICJBVVRPX05FWFQiLXN0eWxlIGhhbmRsaW5nIGZvciB0aGUgdHJpdmlhbCBjYXNlcwogICAobm90aW5nIHRoaXMgYmVoYXZpb3VyIHdpdGhpbiB0aGUgaGFuZGxlciBpdHNlbGYpLgoKMjAwNC0wNy0wNSAwNTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgVXNlIHN3aXRjaCBmYWxsdGhyb3VnaCB0byBoYW5kbGVyIEdldEJ1bGstPkdldE5leHQtPkdldCBoYW5kbGVyIGZhbGxiYWNrcy4KICAgVGhlIHByZXZpb3VzIGNvZGUgZGlkbid0IGNvcGUgd2l0aCBhIG1pc3NpbmcgR0VUIGhlbHBlciBmb3IgR2V0QnVsay9HZXROZXh0LgoKMjAwNC0wNy0wNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAtIGNvbnZlcnQgdG8gdXNlIEFVVE9fTkVYVAoKMjAwNC0wNy0wNCAxODoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmg6CgogICAtIHJlc3RvcmUgY29uZmlnX3JlcWlyZSBvZiBvbGQgdGFibGUgKGVuYWJsZS1tZmQtcmV3cml0ZXMgY29leGlzdGVuY2UpCgoyMDA0LTA3LTA0IDE4OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gaWZkZWYgb3V0IHRhYmxlIHJlZ2lzdHJhdGlvbiBpZmYgISBlbmFibGUtbWZkLXJld3JpdGVzCiAgIC0gaW5pdCBjYWNoZSBlYXJsaWVyIChpdCBoYXBwZW5zIGV2ZW4gaWYgISBlbmFibGUtbWZkLXJld3JpdGVzLCBmb3IgaWZYVGFibGUpCgoyMDA0LTA3LTA0IDE4OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZGQgZmxhZyB0byBpbmRpY2F0ZSBpZiBhIGNhY2hlZCBpbnRlcmZhY2UgaXMgbm90IG1pc3NpbmcKICAgLSBzZXQgYWRtaW4gKGFuZCBtYXliZSBvcGVyKSBzdGF0dXMgZG93biBmaXJzdCB0aW1lIGludGVyZmFjZSBnb2VzIG1pc3NpbmcKICAgLSBzZXQgaWZMYXN0Q2hhbmdlZCB3aGVuIG9wZXIgc3RhdHVzIGNoYW5nZXMKICAgLSBzZXQgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUgd2hlbiBtaXNzaW5nIGludGVyZmFjZSByZXR1cm5zCgoyMDA0LTA3LTA0IDE4OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1c2UgaWZOYW1lIGZvciBkZXNjcmlwdGlvbiBpZmYgTlVMTCBkZXNjcmlwdGlvbgogICAtIHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIHBoeXNhZGRyIGlmZiBhbGwgMHMKCjIwMDQtMDctMDQgMTg6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGRvY3VtZW50IHRoYXQgU0lPQ0dJRkhXQUREUiBpb2N0bCBtaWdodCBub3QgcmV0dXJuIGZ1bGwgNiBieXRlcwogICAtIGFkZCBtZW1zZXQgdG8gMCBiZWZvcmUgU0lPQ0dJRkhXQUREUiBpb2N0bCwgaWYgbmVlZGVkCiAgIC0gdXNlIHN0YW5kYXJkIElGSFdBRERSTEVOIG1hY3JvIGluc3RlYWQgb2YgaGFyZGNvZGVkIDYKICAgLSB0cml2aWFsIG9wdGltaXphdGlvbiAoZG9uJ3QgYXNzaWduIHZhciB0d2ljZSBpbiBjZXJ0YWluIGNhc2VzKQogICAtIGNvbW1lbnQgb3V0IGFsbCBpZlRhYmxlIGZyb20gdmFyaWFibGUgc3RydWN0IGlmZiAtLWVuYWJsZS1tZmQtcmV3cml0ZXMKCjIwMDQtMDctMDQgMTg6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICB0dW5uZWwvdHVubmVsLmM6CgogICAtIGRvY3VtZW50IHRoYXQgU0lPQ0dJRkhXQUREUiBpb2N0bCBtaWdodCBub3QgcmV0dXJuIGZ1bGwgNiBieXRlcwogICAtIGFkZCBtZW1zZXQgdG8gMCBiZWZvcmUgU0lPQ0dJRkhXQUREUiBpb2N0bCwgaWYgbmVlZGVkCiAgIC0gdXNlIHN0YW5kYXJkIElGSFdBRERSTEVOIG1hY3JvIGluc3RlYWQgb2YgbG9jYWwgb25lCgoyMDA0LTA3LTA0IDE4OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgYXNzdW1lIG9wZXIgc3RhdHVzIGlzIHVwCiAgIC0gcmVtb3ZlIGdyYXR1aXRvdXMgbG9nIG1lc3NhZ2UKCjIwMDQtMDctMDQgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICByZW1vdmUgcHJvdG90eXBlcyBjYXVzaW5nIGNvbXBpbGUgZXJyIChmaW5kIGZpeCBsYXRlcikKCjIwMDQtMDctMDQgMTg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA3LTA0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5oLCBpZi1taWIvaWZUYWJsZS5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICAtIHJlLWVuYWJsZSBvbGQgaW1wbGVtZW50YXRpb25zIGZvciAtLWVuYWJsZS1tZmQtcmV3cml0ZXMKICAgICAoZXhjZXB0IGZvciBpZlRhYmxlOyB0dXJucyBvdXQgdGhlIHJlc3QgYXJlIGFsbCBuZXcgdGFibGVzKQogICAtIGlmZGVmIG91dCBpZlRhYmxlIHJlZ2lzdHJhdGlvbiBmb3IgZW5hYmxlLW1mZC1yZXdyaXRlcywgbGVhdmluZyB0aGUgcmVzdAogICAgIG9mIHRoZSBjb2RlIGludGFjdCBmb3Igb3RoZXIgdGFibGVzL29iamVjdCB0aGF0IG5lZWQgaXQuCgoyMDA0LTA3LTA0IDEwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBzZXQgaWYgdHlwZSB0byB0dW5uZWwgaWYgbm90IHNldCAmIGlmIG5hbWUgc3RhcnRzIHdpdGggJ3NpdCcKCjIwMDQtMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIHNldCBwaHlzYWRkciBsZW4gdG8gMCBpZiBwaHlzYWRkciBub3Qga25vd24KICAgLSBzZXQgb3BlciBzdGF0dXMgZnJvbSBpZiBmbGFncwoKMjAwNC0wNy0wNCAxMDoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGxlYXZlIGlmX2Rlc2NyIE5VTEwgdW50aWwgd2UgY2FuIGRldGVybWluZSBpdC4KCjIwMDQtMDctMDQgMTA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIExpbnV4OiBvbmx5IGxvZyBtaXNzaW5nIC9wcm9jL21lbWluZm8gZXJyb3JzIG9uY2UsIGF0IHN0YXJ0dXAKCjIwMDQtMDctMDQgMTA6MDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbml0IHZhciBiZWZvcmUgdXNpbmcgaXQKCjIwMDQtMDctMDQgMTA6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgYWRkIG5ldHNubXAgYXNzZXJ0IG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KCjIwMDQtMDctMDMgMTc6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGZpeCBjYWNoZSBsb29rdXAgb2lkIHBhcmFtCgoyMDA0LTA3LTAzIDE3OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICB1cGRhdGUgY29tbWVudHM7IGRvY3VtZW50IHRoYXQgbWFnaWMgaXMgZm9yIHVzZXIgaGFuZGxlcgoKMjAwNC0wNy0wMyAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wMyAxNzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBzb21lIHdhcm5pbmdzIGZvciBzdHVmZiB0byBiZSBkb25lIGJlZm9yZSA1LjIKCjIwMDQtMDctMDMgMTU6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZml4IGNvbmRpdGlvbmFsIHRlc3QgZm9yIHNraXBwaW5nIG1hcHBpbmcKCjIwMDQtMDctMDMgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBvbmx5IGRlY2xhcmUgdmFyIGlmIGl0IHdpbGwgYmUgdXNlZAoKMjAwNC0wNy0wMyAxMzo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgYWRkIG5vdGUgaW4gc3RydWN0IHRvIHVwZGF0ZSBfY2xvbmVfaGFuZGxlciB3aGVuIG5vdCBpdGVtcyBhZGRlZAoKMjAwNC0wNy0wMyAxMzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gZG9uJ3QgdXNlICc6JyBpbiBmaWxlIG5hbWUKICAgLSBhZGQgLS1zaG93LWMtZnVuY3Rpb24gdG8gZGlmZiBwYXJhbXMKCjIwMDQtMDctMDMgMTM6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHVwbG9hZCBmb3IgbnNiLXBhY2thZ2UgYWJvcnQgY2FzZQoKMjAwNC0wNy0wMyAxMzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgdmVyYm9zZSBpbmZvIG9uIHVwbG9hZAoKMjAwNC0wNy0wMyAxMDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgcmV0dXJuIGVycm9yIGZyb20gdXNtX2NoZWNrX3NlY0xldmVsIGlmIHVzZXJTdGF0dXMgaXMgbm90IGFjdGl2ZQoKMjAwNC0wNy0wMyAxMDo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICAtbmV3IG5ldHNubXBfaGV4X3RvX2JpbmFyeSAoYWxsb3dzIHNwZWNpZnlpbmcgZGVsaW1pdGVycyBmb3IgaGV4IHN0cmluZykKICAgLWFkZCBkb3h5Z2VuIGRvY3M7IG1vdmUgc29tZSBjb21tZW50cyB0byBmdW5jdGlvbiBkb2NzCgoyMDA0LTA3LTAzIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIHVwY2FzZSBjb25zdGFudHMKCjIwMDQtMDctMDMgMTA6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBpbmNsdWRlIGRlbGV0ZWQgaGVhZGVyCgoyMDA0LTA3LTAzIDEwOjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICAtIGNvbnNpc3RlbmN5IGJldHdlZW4gbm9uLWluZGV4IGFuZCBpbmRleCB2YXIgcmVmZXJlbmNlcwoKMjAwNC0wNy0wMyAxMDoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhbGxvdyB0YWJsZSB0byBzcGVjaWZ5IG5vIG1hcHBpbmcgZm9yIG5vZGVzCiAgIC0gbmV3IG9wdGlvbiB0byBnZW5lcmF0ZSB0YWJsZSBkZWZhdWx0cyAmIGV4aXQKCjIwMDQtMDctMDMgMTA6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICAtIG1vdmUgYXNzaWdubWVudCBsYXRlciB0byBnZXQgY29ycmVjdCB2YWx1ZQoKMjAwNC0wNy0wMyAxMDoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLAogICAgIG1mZC1yZWFkbWUubTJjOgoKICAgLSBhbGxvdyB0YWJsZSB0byBzcGVjaWZ5IG5vIG1hcHBpbmcgZm9yIG5vZGVzCgoyMDA0LTA3LTAyIDEwOjA3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBidWcjODE5MTU0IGJ5IGFsbG93aW5nIGdldG5leHQgZmFpbHVyZSB0byBjb250aW51ZSB0cmF2ZXJzaW5nIHRoZSBleHRlbnNpYmxlIGxpc3RzLgoKMjAwNC0wNy0wMiAwNzoxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIG1ha2UgYSBzYWZlIGNvcHkgb2YgdGhlIGNvbW1hbmQgc3RyaW5nIHRvIHRoZSBuYW1lIHN0cmluZy4KCjIwMDQtMDctMDIgMDY6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBhcHBseSBwYXRjaCAjOTEwMDk0IFNvbGFyaXMgY2FuIG9ubHkgc2VlIHNvbWUgZGlza3MgLS0gaW5jcmVhc2UgTFVOIHJhbmdlIDAtNwoKMjAwNC0wNy0wMiAwNjozOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBidWcgIzk4NDA2MSAtIGNoZWNrIGxpbWl0cywgYnVpbGQgZGV2aWNlIHR5cGUgc3BhbnMgcHJvcGVybHkKCjIwMDQtMDctMDIgMDY6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgd2FybiwgdGhlbiBwcmV2ZW50IGFkZGluZyBtb3JlIGRldmljZXMgdGhhbiB0aGUgZGlza3MgYXJyYXkgd2lsbCBob2xkLgoKMjAwNC0wNy0wMiAwNToyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBhcHBseSBwYXRjaCAjIDk4Mzg1MSBDaGVjayByZXR1cm4gdmFsdWUgZm9yIGNnZXRuZXh0KCkgYW5kIGZpeCAjaWZkZWYKCjIwMDQtMDctMDIgMDQ6NDcgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBSRUFETUUubWlicywgc21pc3RyaXA6CgogICBOb3RlcyBhbmQgdHdlYWtzIHRoYXQgc2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGEgZnVsbCByZmMgbWliIGNvbXBsZW1lbnQKICAgdW5kZXIgU29sYXJpcwoKMjAwNC0wNy0wMiAwNDozNyAgbmJhCgogICAqIG1pYnMvOiByZmNsaXN0LCByZmNtaWJzLmRpZmY6CgogICBOZXcgdmVyc2lvbiBvZyBQcmludGVyLU1JQgoKMjAwNC0wNy0wMiAwMzoxOSAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgVXBkYXRlIHRwIGNvcnJlY3QgUkZDIGZvciBFdGhlcmxpa2UtTUlCCgoyMDA0LTA2LTMwIDIwOjA0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGF2b2lkIHNvcnQgd2hlbiBvbmx5IG9uZSBwYXNzIG9yIHBhc3NfcGVyc2lzdCBkaXJlY3RpdmUgaXMgaW5zdGFudGlhdGVkLgogICBwcmV2ZW50IG92ZXJmbG93aW5nIGJpbjJhc2MncyBidWZmZXIsIGFuZCByZW1vdmUgYSBzZXQgYnV0IG5vdCB1c2VkICJpdG1wIiB2YXJpYWJsZS4KCjIwMDQtMDYtMzAgMTk6MzggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgZml4IGJ1ZyA5ODEyNzUgYnkgT0lEIHNvcnRpbmcgdGhlICJleGVjIiBhbmQgInNoIiBkaXJlY3RpdmVzLgoKMjAwNC0wNi0zMCAwNzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZXMgdG8gdXNlIGNvcnJlY3QgZnVuY3Rpb24vdmFyIG5hbWVzCgoyMDA0LTA2LTMwIDA2OjM1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIGZpeCBidWcjIDUwMjIxNSAib2lkIG5vdCBpbmNyZWFzaW5nIiBidWdzIGZvciBJUHY2IFVEUC9UQ1Agb24gRnJlZUJTRAoKMjAwNC0wNi0zMCAwNjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgaWZYVGFibGUvaWZYVGFibGUuYwosIGlmWFRhYmxlL2lmWFRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCiwgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDYtMjkgMTY6MDUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgZml4IG5hbWUgKHVkYnRhYmxlIC0tPiB0Y2J0YWJsZSkgaW4gVENQNiB2ZXJzaW9uIG9mIHZhcl90Y3A2LgoKMjAwNC0wNi0yOSAwNToxNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGFwcGx5IHBhdGNoIDk3OTQzNiB0byBtYWtlIHN5cy9ka3N0YXQuaCBvYnNvbGV0ZSB3aGVuIGJ1aWxkaW5nIHJlY2VudCBGcmVlQlNENQoKMjAwNC0wNi0yOSAwNDo1NyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5IHBhdGNoIDk3OTQzNCB0byBTdXBwb3J0IEZyZWVCU0QgNS4wIGFuZCA1LjEgaW4gZGlza2lvLmMKCjIwMDQtMDYtMjkgMDQ6MDAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBVc2UgdV9sb25nIGZvciBwaHlzX21lbSBpbiBtZW1vcnlfZnJlZWJzZDIuYyAocGF0Y2ggIzk3OTAzNCkKCjIwMDQtMDYtMjkgMDM6NDggIHNsaWYKCiAgICogcGVybC9PSUQvdGVzdC5wbCwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgcGVyIEFsZXggQnVyZ2VyLCBhcHBseSBwYXRjaCAjOTgwMTE4IHRvIGZpeCBNU1ZDIFBlcmwgbW9kdWxlIGJ1aWxkIGFuZAogICBwcmV2ZW50IHRlc3QgZnJvbSBzdG9wcGluZyBpbiBXaW5kb3dzIGR1ZSB0byBhbiB1bi1pbml0aWFsaXplZCB2YXJpYWJsZS4KCjIwMDQtMDYtMjkgMDM6MzYgIHNsaWYKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgICBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBNU1ZDIGJ1aWxkcyB2YWNtX2NvbmYgb2JqZWN0IGluIG9yZGVyIHRvIGZpeCBidWcgIzk4MTM3Ny4gR29vZCBDYWxsLCBEYXZlLgoKMjAwNC0wNi0yOSAwMDowMyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICAgIFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcDoKCiAgIHVzZSBBVVRIVEVTVEFSR1MgdG8gZml4IGJ1ZyM5NzM2NzMKCjIwMDQtMDYtMjggMTc6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGZvciBuZXcgYWNjb25maWcuaAoKMjAwNC0wNi0yOCAxNjo1OSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICAtIGFkZCBORVRTTk1QX0VOQUJMRV9NRkRfUkVXUklURVMKICAgLSBhZGQgJyhpbmNvbXBsZXRlKScgdG8gY29tbWVudCBmb3IgTlNfUkVFTlRSQU5UCgoyMDA0LTA2LTI4IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA2LTI4IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgLSBuZXcgY29uZmlndXJlIGZsYWdlOiAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgd2lsbCB0dXJuIG9uIHJld3JpdHRlbiBtb2R1bGVzLgogICAgIC0gY3VycmVudGx5IGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgZGlzYWJsaW5nIGRlcHJlY2F0ZWQgdGFibGVzCgoyMDA0LTA2LTI4IDE1OjE4ICByc3RvcnkKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIC0gdXBkYXRlIGZvciBhdXRvLWdlbiBmcm9tIG1pYjJjCgoyMDA0LTA2LTI4IDE1OjExICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gdXBkYXRlIG9pZCBjaGFuZ2VkIGluIGlldGYgZHJhZnQKCjIwMDQtMDYtMjggMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlnIGV4Y2x1ZGUgbWliSUkvaXAsIG5vdCBtaWJJSS92YXJfcm91dGUKCjIwMDQtMDYtMjggMTU6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkIChkdWUgdG8gZGF0YSBzaGFyaW5nIHcvaWZUYWJsZSkgZnVuY3Rpb25zCgoyMDA0LTA2LTI4IDE1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1c2UgbG9jYWwsIG5vdCBzeXRlbSwgc3R5bGUgaW5jbHVkZSBmb3IgbWliZ3JvdXAgaGVhZGVyCgoyMDA0LTA2LTI4IDE1OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSB2YXIgZGVjbCBiZWZvcmUgZmlyc3Qgc3RhdGVtZW50CgoyMDA0LTA2LTI4IDExOjU0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggc2V0dGluZyBvZiBPU1RZUEUgZm9yIEZyZWVCU0QgYnVpbGQgcGxhdGZvcm1zIChjb25zaWRlciBhY2NvbmZpZy5oKS4KCjIwMDQtMDYtMjggMTE6NDQgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGludCBmb3IgYXRvaSwgY2FzdCB0byB1bnNpZ25lZCBzaG9ydDsKICAgdGhpcyBmaXhlcyBidWcgOTgxNDM4IHRyYXBzaW5rIHBvcnQgcmFuZ2UgY2hlY2tzIGFyZSB3cm9uZwoKMjAwNC0wNi0yOCAwNTozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAwNTozMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbmV3IC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tpbmcgdG8gZmFpbCBvbiBtb2R1bGUgY29uZmxpY3RzCgoyMDA0LTA2LTI4IDA1OjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gYWRkIG5hbWUgdG8gY29udGFpbmVyIHN0cnVjdHVyZQogICAtIG5ldyBtYWNybyB0byBmaW5kIG5hbWVkIGNvbnRhaW5lciBpbiBsaXN0CgoyMDA0LTA2LTI4IDA1OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICByZW1vdmUgY29uZGl0aW9uIGZvciBoZWFkZXIgZnVuY3Rpb24gcHJvdG90eXBlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW1vdmUgZGVwcmVjYXRlZCBsYWJlbCBmcm9tIGZ1bmMsIGFkZCBub3RlIG9uIHByZWZlcnJlZCBmdW5jIGluc3RlYWQKICAgLSBhZGQgc29tZSBuZXRzbm1wX2Fzc2VydHMgJiBkZWJ1ZyBvdXRwdXQKICAgLSByZWR1Y2UgZHVwbGljYXRlZCBjb2RlCiAgICAgLSBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfZGF0YSBub3cgY2FsbHMgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKICAgLSBsb2cgd2FybmluZyBpZiBkdXBsaWNhdGUga2V5IGFkZGVkIHRvIGEgZGF0YSBsaXN0CiAgIC0gbmV0c25tcF9hZGRfbGlzdF9kYXRhIG5vdyBjYWxscyBwcmVmZXJyZWQgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKCjIwMDQtMDYtMjggMDU6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgbWlzc2luZyBkZWZhdWx0CgoyMDA0LTA2LTI4IDA1OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjOgoKICAgcmMgZmlsZSB1c2VkIGZvciBjb2RlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgbWliMmMtdXBkYXRlIGRpcnMKCjIwMDQtMDYtMjggMDU6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIEF1dG9tYXRpY2FsbHkgdW5yZWdpc3RlciBwcm94eSBzZXR0aW5ncyBvbiBhZ2VudCBzaHV0ZG93biBvciByZXN0YXJ0LgogICAoQnVnICM3NDg3MzMpCgoyMDA0LTA2LTI4IDA0OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBVbnJlZ2lzdGVyIHByb3h5IHJlZ2lzdHJhdGlvbnMgd2hlbiBmcmVlaW5nIHRoZSBjb25maWcgc2V0dGluZ3MuCgoyMDA0LTA2LTI4IDA0OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBTa2lwIGVtcHR5IGNvbnRleHRzIHdoZW4gZHVtcGluZyB0aGUgaW50ZXJuYWwgTUlCIHJlZ2lzdHJ5LgogICAoUHJvYmFibHkgYXMgYSByZXN1bHQgb2YgcmVtb3ZpbmcgcmVnaXN0cmF0aW9ucykuCgoyMDA0LTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIERyb3Agc3BlY2lhbC1jYXNlIGhhbmRsaW5nIG9mICJsby9sbzAiIHNpbmNlIHRoaXMgZ2l2ZXMgYm9ndXMgcmVzdWx0cwogICAoQnVnICM0MjIzOTQpCgoyMDA0LTA2LTI4IDA0OjIxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgRG9uJ3QgdHJ5IHRvIHNldCB0aGUgT0lEIG9mIGEgdmFyaWFibGUgdGhhdCBpc24ndCB0aGVyZS4KICAgKFByb2JhYmx5IHRyaWdnZXJlZCBieSBydW5uaW5nIEdldEJ1bGsgb24gYSAibm9uLXNpbXBsZSIKICAgIHZpZXcgLSBzZWUgQnVnICM3MDYwODkpCgoyMDA0LTA2LTI3IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2NhY2hlX2V4dHJhY3RfZnJvbV9yZXFpbmZvIHRvIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CgoyMDA0LTA2LTI3IDE4OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICAgIHVkcC5jOgoKICAgLSB1c2UgbmV0c25tcF9jYWNoZV9pc192YWxpZCBpbnN0ZWFkIG9mIG5ldHNubXBfaXNfY2FjaGVfdmFsaWQKCjIwMDQtMDYtMjcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5hbWUgcGFyYW1ldGVyIHRvIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2luc2VydCwgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2V4dHJhY3QKICAgLSB1c2UgQ0FDSEVfTkFNRTpoYW5kbGVyTmFtZSBhcyBkYXRhX2xpc3Qga2V5IGZvciBjYWNoZQogICAgIC0gdGhpcyBmaXhlcyBCdWcgIzk3MzcyOCB0aGUgcmlnaHQgd2F5LiBzZWUgYnVnIHJlcG9ydCBmb3IgZGV0YWlscwoKMjAwNC0wNi0yNyAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldHNubXBfcmVxdWVzdF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI3IDE3OjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICAtIGFkZCBuZXRzbm1wX2FnZW50X3JlbW92ZV9saXN0X2RhdGEKCjIwMDQtMDYtMjYgMTU6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGFkZCBkZWJ1ZyBtc2cgd2hlbiBtb2R1bGUgcGF0aCBjaGFuZ2VzCiAgIC0gdHdlYWsgZGVidWcgbXNnIG91dHB1dCBpbmRlbnQKCjIwMDQtMDYtMjYgMTU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkgYW5kIGhhbmRsZV9taWJzX2NvbmYgY29uc2lzdGVudDoKICAgICAtICctL2RpcicgYWRkcyAvZGlyIGJlZm9yZSBleGlzdGluZyBkaXJzCiAgICAgLSAnKy9kaXInIGFkZHMgL2RpciBhZnRlciBleGlzdGluZyBkaXJzCiAgICAgICBOT1RFOiB0aGlzIHJlc3RvcmVzIG9yaWdpbmFsIGJlaGF2aW9yIG9mICcrJyB0byB0aGF0IG9mIDUuMC4xLiBBZnRlcgogICAgICAgICAgICAgNS4wLjIsIGlmIEkgcmVhZCB0aGUgY29kZSByaWdodCwgJysnIGJlaGF2aW91ciBvbiB0aGUgY21kIGxpbmUgYW5kCiAgICAgICAgICAgICBpbiBNSUJESVJTIHdhcyByZXZlcnNlZCBhbmQgbm90IGNvbnNpc3RlbnQgd2l0aCBoYW5kbGVfbWlic19jb25mLgoKMjAwNC0wNi0yNiAwNjo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbXVsdGlwbGUgbWliZGlycyBpbiBjb25mIGZpbGVzIHdvcmsgd2l0aCAnbGVhc3Qgc3VycHJpc2UnIChpZSBjb21wbGV0ZWx5CiAgICAgcmVwbGFjZSBtaWJkaXJzLCB1bmxlc3MgKyBzcGVjaWZpZWQKICAgLSBuZXcgbWliZGlyIGJlaGF2aW91cjogaWYgLSBzcGVjaWZpZWQsIGFkZCBzcGVjaWZpZWQgZGlycyBiZWZvcmUgZXhpc3RpbmcKICAgICBvbmVzIGluc3RlYWQgb2YgYWZ0ZXIKCjIwMDQtMDYtMjYgMDU6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCAibXVsdGktdG9rZW4iIG1hc2tzIC0gaS5lLiB1c2luZyBzcGFjZSAocmF0aGVyIHRoYW4KICAgJy4nIG9yICc6JykgdG8gc2VwYXJhdGUgdGhlIG1hc2sgb2N0ZXRzLiAgKFNlZSBidWcgIzcwNjA4OSkKCjIwMDQtMDYtMjYgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgV29yayB3aXRoIHRoZSBzYW1lIGNhY2hlIHN0cnVjdHVyZSBjb25zaXN0ZW50bHksCiAgIHJhdGhlciB0aGFuIHJlLWV4dHJhY3RpbmcgaXQgZnJvbSB0aGUgcmVxaW5mbyBzdHJ1Y3R1cmUuCiAgIChTaG91bGQgZml4IEJ1ZyAjOTczNzI4KQoKMjAwNC0wNi0yNSAwNDo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4IHRoZSBjaGVjayBmb3IgYSB2YWxpZCBJQ01QIGNhY2hlCiAgIChTcG90dGVkIGJ5IE9sZWcgSXZhbm92KQoKMjAwNC0wNi0yNSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEEgbWlzc2luZyAnaXBPdXROb1JvdXRlcycgdmFsdWUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiAobm90IGFuIGVycm9yKQogICBhbmQgYWxsb3cgYW55IG90aGVyIElQLXJlbGF0ZWQgdmFyYmluZHMgaW4gdGhlIHNhbWUgcmVxdWVzdCB0byBiZSBwcm9jZXNzZWQuCgoyMDA0LTA2LTI0IDEzOjA0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2UgLUlyIGVmZmVjdGl2ZSBmb3IgYSBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yNCAwOTowMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbWFrZSBjbG9uZV9oYW5kbGVyIHN0YXRpYywgcmVuYW1lIHRvIF9jbG9uZV9oYW5kbGVyCiAgIC0gZGVsZXRlIGhhbmRsZXIgJiByZXR1cm4gbnVsbCBvbiBjcmVhdGUgaWYgbmFtZSBzdHJkdXAgZmFpbHMKICAgLSBwb3NzaWJsZSBmaXggZm8gOTczNzI4IF0gbWFpbiBicmFuY2ggZmFpbHMgdG8gbG9hZCB0Y3BDb25uZWN0IGFuZCB1ZHAgVGFibGUKICAgICAtIGNvcHkgZmxhZ3MgaW4gX2Nsb25lX2hhbmRsZXIKICAgICAtIHVwZGF0ZSBuZXRzbm1wX2hhbmRsZXJfZHVwIHRvIHVzZSBfY2xvbmVfaGFuZGxlciwgbmV0c25tcF9oYW5kbGVyX2ZyZWUKCjIwMDQtMDYtMjQgMDQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggZGVidWcgc3RhdGVtZW50IHBhcmFtZXRlcgoKMjAwNC0wNi0yMyAxMTo1NyAgbmJhCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG94eWdlbiBpbnRlcm5hbCBkb2N1bWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IEN5cmlsIE1BUkdBUklBCgoyMDA0LTA2LTIzIDEwOjQ1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgOTc4MDg3OiBiYWQgaW5kZXggY2hlY2sgZm9yIE5ldHdvcmtBZGRyZXNzCgoyMDA0LTA2LTIyIDE1OjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBjcHUtYnVybmluZyBieSBydW5uaW5nIGFsYXJtcy4gRGlhZ25vc2VkIGJ5IHJncmVhYkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYWZ0ZXIgYWxsb2NhdGlvbgoKMjAwNC0wNi0yMiAxNTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgZGF0YV9pbml0IGNhbGwgaW50byBpbnRlcmZhY2UgY29kZQogICAtIGNhbGwgZGF0YV9pbml0IGJlZm9yZSBjb250YWluZXJfaW5pdAoKMjAwNC0wNi0yMiAxNToxMyAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBdXRvZGV0ZWN0IC1sZGV2c3RhdCBmb3IgRnJlZUJTRCA1IChhcyB3YXMgZG9uZSBmb3IgNCkKCjIwMDQtMDYtMjIgMDY6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiB0YWJsZSByb3cgcmVnaXN0cmF0aW9uIGluIG9sZC1BUEkgKEJ1ZyAjNzAyNDU4KQoKMjAwNC0wNi0yMiAwMjowMyAgZHRzMTIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBlcmwgQVBJIGZvciBzZXR0aW5nIE1JQiBwYXJzaW5nIG9wdGlvbnMgKEJ1ZyAjNTU0NzQ5KQoKMjAwNC0wNi0yMSAxMTo0MCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlcy5oCgoyMDA0LTA2LTIxIDEwOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gc2V0IHZhbGlkX2NvbHVtbnMKCjIwMDQtMDYtMjEgMDY6MzEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggZHVwbGljYXRlIGFsbG9jYXRpb24gb2YgbWVtb3J5IHdoZW4gZGVmaW5pbmcgZW51bWVyYXRpb24gbGlzdHMKICAgKEJ1ZyAjOTIzNzY2KQoKMjAwNC0wNi0yMSAwMzoxMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgQ29ycmVjdCBkZXNjcmlwdGlvbiBvZiByZXR1cm4gdmFsdWVzIHRvIHVzZSAoQnVnICM5NDc5MjYpCgoyMDA0LTA2LTIxIDAzOjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTZXQgdGhlIHNpemUgZm9yIHBhcnNpbmcgYW4gaW50ZWdlciBjb3JyZWN0bHkgKEJ1ZyAjOTQ3NDAzKQoKMjAwNC0wNi0xOSAxNjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBGaXggY29tbWVudCB0eXBvLgoKMjAwNC0wNi0xOSAwNjozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIG1vZGlmeSBwYXRjaCA5NTYyNzIgdG8gbWFrZSBpdCBTb2xhcmlzMiBzcGVjaWZpYwoKMjAwNC0wNi0xOCAxMzozOCAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBpbnN0YWxsIG5ldyBtaWIyYy11cGRhdGUgYmFzaCBzY3JpcHQKICAgLSBpbnN0YWxsIHRvcCBsZXZlbCBtZmQgY29uZiBmaWxlCiAgIC0gbWFrZSBpbnN0YWxsIHRhcmdldCBkZXBlbmQgb24gJ21hZGUnIHBlcmwgc2NyaXB0cwoKMjAwNC0wNi0xOCAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNoYW5nZSB1X2ludDMyX3QgdG8gaW50MzIgdG8gbWFrZSBpdCBtb3JlIHBvcnRhYmxlCgoyMDA0LTA2LTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZW1vdmVkIGEgc2tpcF90b2tlbiB0aGF0IHdhcyBjYXVzaW5nIGEgZm9sbG93LW9uIHRva2VuIHRvIGJlIHNraXBwZWQuCgoyMDA0LTA2LTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIHJmYyBsaXN0IGZvciB1c20tYWVzCgoyMDA0LTA2LTE4IDExOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBGaXhlZCB1c2FnZSBvZiBmX2Zyc2l6ZSB1bmRlciBhcmNoaXRlY3R1cmVzIHRoYXQgaGFkIGl0IGZvciBzdGF0dmZzCiAgICAgYnV0IG5vdCBzdGF0ZnMuCgoyMDA0LTA2LTE4IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgbWlicy9NYWtlZmlsZS5pbgosIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSBVcGRhdGVkIHRoZSBBRVMgT0lEIHRvIG1hdGNoIHRoZSByZWNlbnRseSBwdWJsaXNoZWQgVVNNL0FFUyBkcmFmdAogICAtIEFkZGVkIHRoZSBVU00tQUVTIE1JQiB0byB0aGUgbGlzdCBvZiBtaWJzLgoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbmV3IG1pYjJjLWRhdGEgZGlyIHRvIHNlYXJjaCBwYXRoCgoyMDA0LTA2LTE4IDA5OjQxICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIGFkZCBpbnN0YWxsL3VuaW5zdGFsbCBmb3IgbWZkIG1pYjJjIGZpbGVzCgoyMDA0LTA2LTE4IDA3OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU3VwcG9ydCBmb3IgaW50ZXJwcmV0aW5nIEluZXRBZGRyZXNzVHlwZS9JbmV0QWRkcmVzcyBpbmRleGVzIHdpdGhpbiBhbiBPSUQuCiAgIChQYXRjaCAjODQxNjI1IGZyb20gWWl4aW9uZyBab3UpCgoyMDA0LTA2LTE4IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBSZWNvZ25pc2UgSW5maW5pYmFuZCBpbnRlcmZhY2VzCiAgIChQYXRjaCAjOTcwNjE3IGZyb20gS2Fub2ogU2FyY2FyKQoKMjAwNC0wNi0xOCAwNjo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBGaXggaGFuZGxpbmcgb2YgLS1lbmFibGUtbG9jYWwtc211eCBvcHRpb24KICAgKFBhdGNoICM5NDk4MDggZnJvbSBFcmlrIOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMtm5nZ+eIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXohJpkKQoKMjAwNC0wNi0xOCAwNjo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgYWN0aXZhdGluZyBhbmQgZGVhY3RpdmF0aW5nIHVzZXJzLAogICBuZWNlc3NhcnkgZm9yIGZ1bGwgY29tcGxpYW5jZSB3aXRoIFJGQyAzNDE0LiAoUGF0Y2ggIzk0Mzc2MikKCjIwMDQtMDYtMTggMDY6MzggIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgVXNlIHRyYW5zcG9ydCB2YXJpYWJsZXMgZm9yIHRlc3RpbmcgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyB1ZHA6bG9jYWxob3N0CiAgIChQYXRjaCAjOTQwMzAyIGZyb20gTWlrZSBTbGlmY2FrKQoKMjAwNC0wNi0xOCAwNjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgVXNlIC9kZXYvYXJwIHJhdGhlciB0aGFuIC9kZXYvaXAsIHNpbmNlIHRoaXMgd29ya3MgcHJvcGVybHkgd2l0aCBtdWx0aXBsZSB6b25lcy4KICAgKFBhdGNoICM5NDAwMjUgZnJvbSBCb2IgUm93bGFuZHMpCiAgIFtObyBpZGVhIHdoYXQgdGhpcyBtZWFucywgYnV0IGl0IHNvdW5kcyBpbXByZXNzaXZlLi4uLl0KCjIwMDQtMDYtMTggMDY6MjUgIGR0czEyCgogICAqIHNubXBsaWIvcGtjcy5jOgoKICAgSW5pdGlhbGlzZSBwU2xvdExpc3QgdG8gZ3VhcmQgYWdhaW5zdCBmcmVlaW5nIGdhcmJhZ2UuCiAgIChQYXRjaCAjOTM4MTM5IGZyb20gQm9iIFJvd2xhbmRzKQoKICAgSWYgZ2FyYmFnZSBpc24ndCBrZXB0IHN0cmljdGx5IGNvbnRyb2xsZWQsCiAgICB3aG8ga25vd3Mgd2hhdCBzdGF0ZSBzb2NpZXR5IG1pZ2h0IGdldCBpbnRvLi4uLgogICAoSG9tZXNwdW4gcGhpbG9zb3BoaWNhbCBtdXNpbmdzIGZyb20gRGF2ZSBTaGllbGQpCgoyMDA0LTA2LTE4IDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIERvbid0IHNldCB0aGUgaW5kZXggdmFsdWUgdW50aWwgd2UndmUgY2hlY2tlZCB0aGlzIGlzIGEgdmFsaWQgcmVxdWVzdC4KICAgKFBhdGNoICM5MzA3MTIgZnJvbSBKb2NoZW4vQ2hyaXN0b3BoZXIgUHJpY2UpCgoyMDA0LTA2LTE4IDA2OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIERvbid0IGluY2x1ZGUgdGhlIHZpZXdUcmVlIGxlbmd0aCB3aGVuIHNhdmluZyBhIHBlcnNpc3RlbnQgdmFjbVZpZXcKICAgKFBhdGNoICM5MjEyNzkgZnJvbSBCb2IgUm93bGFuZHMpCgoyMDA0LTA2LTE4IDA1OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgUGFzcyAqcG9pbnRlcnMqIHRvIHJlbG9hZC9jb21wYXJlIGZ1bmN0aW9ucyBpbnRvIEluaXRpYWxpc2VfVGFibGUKICAgKFBhdGNoICM5MjI1MTkgZnJvbSBSb2JlcnQgV2lsY294KQoKMjAwNC0wNi0xNyAyMDo1NyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIHBlciBCcnVjZSBTaGF3LCBpbmNsdWRlIHRoZSBPSUQgZm9yIENQVSBkZXZpY2UgaW4gdGhlIG1hdGNoIHN0cmluZy4KCjIwMDQtMDYtMTcgMTk6NDIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBhcHBseSBwYXRjaCA5NTYyNzIgLSB1c2UgY29ycmVjdCBzdHJ1Y3R1cmUgbWVtYmVyIGZvciBTb2xhcmlzIGhyUGFydGl0aW9uU2l6ZQoKMjAwNC0wNi0xNyAxOTowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBkb2N1bWVudCBub2RlLmRlc2NyaXB0aW9uCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSBmaXggcmV0dXJuIGNvZGUgZm9yIG1hbGxvYyBmYWlsdXJlCgoyMDA0LTA2LTE3IDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIC0gY29udmVydCBkZWJ1ZyBjb2RlIHRoYXQgc2hvdWxkIGhhdmUgbmV2ZXIgYmVlbiBjaGVja2VkIGluIHRvIG5ldHNubXBfYXNzZXJ0CgoyMDA0LTA2LTE3IDE4OjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLSBhZGQgbG90cyBvZiBkZWJ1ZyBmb3IgdHJhY2tpbmcgaW5kZXggcHJvY2Vzc2luZwogICAtIG1ha2UgY29kZSBhbmQgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXIKICAgLSBmaXggYSAwLWJhc2VkIHZzIDEtYmFzZWQgcHJvYmxlbXMgd2hlbiB1c2luZyB2YWxpZF9jb2x1bW4gdmVyaWZpY2F0aW9uCiAgIC0gZml4IGNvbXBhcmlzb24gdG8gd3JvbmcgdmFyaWFibGUKICAgLSBkdWUgdG8gb3RoZXIgZml4ZXMsIGluaXQgdGJsX3JlcV9pbmZvLT5jb2xudW0gZWFybGllcgoKMjAwNC0wNi0xNyAxODo1MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgLSB1cGRhdGUgZmxvdyBjaGFydAogICAtIHN3YXAgcm93IGNyZWF0ZSAvIGNoZWNrIHZhbHVlczsgbm90IHF1aXRlIHN1cmUgaWYgSSBzaG91bGQsIHRob3VnaAoKMjAwNC0wNi0xNyAxODo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gaWZkZWYgb3V0IGNvbW1pdCBjb2RlIChjb21pbmcgc29vbikKCjIwMDQtMDYtMTcgMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gbWFrZSBzdXJlIHRvIHNldCBkb250IGludmFsaWRhdGVvbiBzZXQgY2FjaGUgZmxhZwoKMjAwNC0wNi0xNyAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gaW1wbGVtZW50IHNldCBvZiBhZG1pbiBzdGF0dXMKCjIwMDQtMDYtMTcgMTg6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBzcGVjaWFsIGNhc2UgcHJvY2Vzc2luZyBmb3IgaWZhZG1pbiBzdGF0dXMgKGJ5cGFzcyBzaXplb2YgY2hlY2spCgoyMDA0LTA2LTE3IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLXVzZSBuZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbmV3IGZ1bmN0aW9uIG5ldHNubXBfYXJjaF9zZXRfYWRtaW5fc3RhdHVzCgoyMDA0LTA2LTE3IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICAtbmV3IGZ1bmN0aW9ucyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfZmxhZ3Nfc2V0LAogICAgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX210dV9nZXQKICAgLW1vdmUgd2hvbGUgZnVuY3Rpb25zIGluc2lkZSBpZmRlZiBjb25kaXRpb25hbCwgdG8gZm9yY2UgbGluayBlcnJvcnMgaW5zdGVhZAogICAgb2YgYSBmYWxzZSBzZW5zZSBvZiBzZWN1cml0eSB0aGF0IGFuIGlvY3RsIGlzIGF2YWlsYWJsZQoKMjAwNC0wNi0xNyAxODoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGRlZmluZSBwcml2YXRlICdhcmNoJyBmdW5jdGlvbiBwcm90b3R5cGVzIHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA0LTA2LTE3IDE4OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLXJlbmFtZSBzdGF0cyBzdHJ1Y3QgbWVtYmVycyB0byBub3QgbWF0Y2ggbWFjcm8gbmFtZXMKICAgLWFkZCBwb2ludGVyICYgbWFjcm9zIGZvciBvbGQgc3RhdHMgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC1tb3ZlIGNvbmYgb3ZlcnJpZGUgc3RydWN0L3JvdXRpbmVzIGhlcmUKICAgLWFkZCBpbml0IHJvdXRpbmUgZm9yIGNvbmZpZ3VyZSB0byBkZXRlY3QgJiBjYWxsCiAgIC1hZGQgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX3NldF9hZG1pbl9zdGF0dXMKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfdXBkYXRlX3N0YXRzIHRvIGRlYWwgd2l0aCAzMmJpdCBjb3VudGVyCiAgICB3cmFwcywgdW5sZXNzIDY0Yml0IGNvdW50ZXJzIGFyZSBkZXRlY3RlZAoKMjAwNC0wNi0xNyAxODoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2ludDY0LmM6CgogICBuZXcgZnVuY3Rpb25zIHU2NEluY3IsIHU2NFVwZGF0ZUNvdW50ZXIsIHU2NENvcHksIG5ldHNubXBfYzY0X2NoZWNrX2Zvcl8zMmJpdF93cmFwCgoyMDA0LTA2LTE3IDE3OjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHRlc3Qgc2Vzc2lvbiBwdHIgYmVmb3JlIHVzaW5nLiBmaXhlcyBidWcgIzk3NTA2MyBzbm1wX3Nlc3NfY2xvc2UgTlVMTCBkZXJlZgoKMjAwNC0wNi0xNyAwOTo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24gdG8gbWFrZSBpdCBtdWNoIG1vcmUgZXh0ZW5zaXZlIGFuZCBjb21wbGV0ZS4KCjIwMDQtMDYtMTcgMDY6MzkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFBhdGNoICA5Njg4Mzk6IG5ldC1zbm1wLWNvbmZpZyBmYWlscyB0byBwcmludCAtbHdyYXAKCjIwMDQtMDYtMTcgMDY6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBQYXRjaCAjOTczNzAyOiBQT0QgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIFRvbmkgV2lsbGJlcmcKCjIwMDQtMDYtMTYgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZ2V0dGFibGUgY2hhbmdlczoKICAgICAtIERvbid0IHJldHJpZXZlIGluZGV4ZXMgc2luY2Ugd2UgY2FsY3VsYXRlIHRoZW0uCiAgICAgLSBCdWcgZml4IGZvciBzZWxmLXNwZWNpZmllZCBjb2x1bW4gbGlzdHMuCgoyMDA0LTA2LTE2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgY29weV9ud29yZCBmb3IgYWxsIHJlYWRfY29uZmlnIGF1dG8tcGFyc2luZyBvZiB0b2tlbnMgdG8gaGVscAogICBzdHJpcCBxdW90ZXMgaWYgdGhleSB3ZXJlIHVzZWQgZXZlbiBmb3IgaW50ZWdlcnMuCgoyMDA0LTA2LTE1IDE5OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmM6CgogICBmaXggbGlicmFyeSByZXNvdXJjZSBsb2NrcywgYXMgbm90ZWQgb24gY29kZXJzIGJ5IFlpbmcgSHUKCjIwMDQtMDYtMTUgMTc6MjcgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjNzbm1wdjNnZXRNRDVBRVMsIFQwMjNzbm1wdjNnZXRNRDVERVMKOgoKICAgY29ycmVjdCB2YXIgUFJJVlRFU1RBUkdTICh3YXMgUFJJVlRFU1RGTEFHUykKCjIwMDQtMDYtMTUgMTU6NDAgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgYXBwbHkgcGF0Y2ggIzk3MzU3MiBwZXIgQWxleCBCdXJnZXIgdG8gY2xhcmlmeSBuYW1pbmcgb2YgdGhlIHBhY2thZ2UsIGV0Yy4KCjIwMDQtMDYtMTUgMDc6MjcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ29uc2lzdGVuY3kgdHdlYWtzIHRvIHRoZSB1c2FnZSBvdXRwdXQgbWVzc2FnZS4KCjIwMDQtMDYtMTUgMDY6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBhcHBseSB1cGRhdGVkIHBhdGNoIGF0dGFjaGVkIHRvIGJ1ZyM3NTg0MzcKICAgdXNlIFNOTVBfRlJFRSB0byBtYW5hZ2UgYnVmZmVyIHBvaW50ZXIKICAgb3BlbiBzb2NrZXQgYmVmb3JlIGluY3JlYXNpbmcgYnVmZmVyIHNpemUKCjIwMDQtMDYtMTUgMDU6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIERlZmluZSB0aGUgZXhhbXBsZSBub3RpZmljYXRpb24gYXMgYSBub3RpZmljYXRpb24gKHVzaW5nIGFuIFJGQzI1NzYtc2FmZQogICBPSUQpLCByYXRoZXIgdGhhbiBhIE1JQiBvYmplY3QsIGFuZCBkZWZpbmUgZXhhbXBsZSBjb21wdWxzb3J5IGFuZCBvcHRpb25hbAogICBwYXlsb2FkIG9iamVjdHMuIFR3ZWFrIHRoZSBleGFtcGxlIGNvZGUgdG8gdXNlIHRoZXNlIG5ldyBkZWZpbml0aW9ucy4KCjIwMDQtMDYtMTUgMDQ6MjkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSB0cm9udG9yIHRvIGZpeCBidWcgOTQyNDk4IE5ldEJTRCAyLjBEIGFuZCBhYm92ZSB1c2Ugc3RhdHZmcwoKMjAwNC0wNi0xNCAxMjowMiAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBkaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgYXBwbHkgcGF0Y2ggIzk3MjcxNSBXaW4zMiBidWlsZDogbWFrZWZpbGUsIHJlYWRtZSBhbmQgLm5zaSBzY3JpcHQgY2hhbmdlcwogICB0aGVzZSBiYWNrIG91dCB0d28gcHJldmlvdXMgY2hhbmdlcyBhbmQgZml4ZXMgYSBwcm9ibGVtIGNyZWF0aW5nIHNubXBjb25mLmJhdAoKMjAwNC0wNi0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnBtLCBhZ2VudC54cywgdGVzdC5wbDoKCiAgIEltcGxlbWVudGVkICRyZXF1ZXN0LT5zZXRFcnJvcigpIHRvIHNldCBlcnJvciBjb2RlcyBmb3IgcmVxdWVzdHMuCgoyMDA0LTA2LTE0IDEwOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIHBhdGNoIGZyb20gTWF0aGlhcyBTY2hlbGVyIGZpeGVzIGJ1ZyAjODA1OTU2IGJ5IGFsdGVyaW5nIGNvbmRpdGlvbmFsCiAgIGNoZWNrcyBmb3IgTmV0QlNEIGFuZCBEYXJ3aW4gZGVmaW5lcy4KCjIwMDQtMDYtMTIgMDg6MDQgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgZHlzbGV4aWMgIHMtTS1uLXAgIHRvIHMtbi1NLXAKCjIwMDQtMDYtMTIgMDg6MDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGF0Y2ggOTcxMjYzIFdpbmRvd3MgaW5zdGFsbGVyIHNjcmlwdCBjaGFuZ2UgY29tcG9uZW50IGxhYmVsK2Rlc2NyCgoyMDA0LTA2LTEyIDA3OjU1ICBzbGlmCgogICAqIHdpbjMyLzogYnVpbGQuYmF0LCBpbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICBubWFrZXBlcmwuYmF0LCBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksCiAgICAgbG9jYWwvbWliMmMuYmF0LCBsb2NhbC9zbm1wY29uZi5iYXQsCiAgICAgbG9jYWwvdHJhcHRvZW1haWwuYmF0OgoKICAgY29udmVydCAuYmF0IGZpbGVzIHRvIHVzZSBET1MgQ1ItTEYgbGluZSB0ZXJtaW5hdGlvbi4KICAgYXBwbHkgcGF0Y2ggOTcxNDcxIE5TSSBpbnN0YWxsZXIgc2NyaXB0IGZpeGVzIGFkZHJlc3NpbmcgbGluZS1lbmQgcHJvYmxlbXMuCgoyMDA0LTA2LTExIDE3OjM4ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSAiZXJhc2Ugd2F0Y2hlci5vYmoiLCBmb3IgYSBmaWxlIHRoYXQgaXMgbWFuYWdlZCBpbiBsaWJoZWxwZXJzIHByb2plY3QuCgoyMDA0LTA2LTExIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGRlZmF1bHQgY2FjaGUgdG8gbm90IGludmFsaWRhdGUgb24gc2V0CgoyMDA0LTA2LTExIDE1OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBkZWZhdWx0IHRvIGFsbG9jYXRlZCB1bmRvIGNvbnRleHQsIGV2ZW4gaWYgZGF0YSBjb250ZXh0IGlzIGVtYmVkZGVkCiAgIC0gZml4IG1pc2Fzc2lnbmVkIGNhbGxiYWNrIGZ1bmN0aW9uCiAgIC0gYWRkIG1pc3NpbmcgYnJhY2VzIGZvciBtdWx0aWxpbmUgY29uZGl0aW9uYWwKCjIwMDQtMDYtMTEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBhZGQgY29kZSB0byBoYW5kbGUgcGVyIGNvbHVtbiBiZWhhdmlvciBvbiBjb21taXQKICAgLSBhZGQgbm90ZSBvbiB1bmRvIGNvbnRleHQgd2hlbiBkYXRhIGluaXQgaXMgc2V0CgoyMDA0LTA2LTExIDE1OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsIG1mZC10b3AubTJjOgoKICAgLSBkZWZhdWx0IHRvIGFsbG9jYXRlZCB1bmRvIGNvbnRleHQsIGV2ZW4gaWYgZGF0YSBjb250ZXh0IGlzIGVtYmVkZGVkCgoyMDA0LTA2LTExIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICAtIHR3ZWFrIHRvIHdvcmsgZXZlbiBmb3IgZ2VuZXJhdGVkIGRhdGEgY29udGV4dHMKICAgLSBmaXggdmFyIHR5cG8sIGNvbW1lbnQgdHlwbwoKMjAwNC0wNi0xMSAxNTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgLSByZW1vdmUgb3Zlcmx5IGNvbmZ1c2luZyBtZXRob2QgZm9yIGNoYW5naW5nIGRlZmF1bHRzLCBiZWNhdXNlIGl0IHdhcwogICAgIGNvbmZsaWN0aW5nIHcvY29tbWFuZCBsaW5lIHZlcnNpb24uIG1heWJlIHJldmlzaXQgbGF0ZXIKICAgLSBkZWZhdWx0IChmYWxzZSkgZm9yIG5ldyB1bmRvX2VtYmVkCgoyMDA0LTA2LTExIDEzOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFJldHVybiBhbHJlYWR5IGdhdGhlcmVkIHJlc3VsdHMgZXZlbiBpZiBnZXRidWxrIGZhaWxzIHRvIHJldHVybiB0aGUKICAgZXhwZWN0ZWQgZGF0YSAodHlwaWNhbGx5IGR1ZSB0byBlbmQtb2YtbWliIGNvbmRpdGlvbnMpLgoKMjAwNC0wNi0xMSAxMzoxMyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCB2ZXJzaW9uIG51bWJlciBuZWVkcyBjaGFuZ2luZy4KCjIwMDQtMDYtMTEgMTA6MTggIHNsaWYKCiAgICogd2luMzIvTWFrZWZpbGUuaW46CgogICBwYXRjaCA5NzExMTMgIm5tYWtlIGNsZWFuIiB2aXNpdHMgbGlic25tcCBhbmQgbGlic25tcF9kbGwgZXZlcnkgdGltZS4KCjIwMDQtMDYtMTAgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfZ3Vlc3Nfc3BlZWQKICAgLSBuZXcgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2VudHJ5X292ZXJyaWRlcwogICAtIHJlc3RvcmUgaWZfYWRtaW5fc3RhdHVzCiAgIC0gYWRkIHBsYXRmb3JtIHNwZWNpZmljIGlmX2ZsYWdzLCAmIGRlZmluZSBmb3IgZmxhZ3MgdG8gaW5kaWNhdGUgYXZhaWxhYmlsaXR5CiAgIC0gc3BlY2lmeSBhbGwgNCBoZXggYnllcyBmb3IgZmxhZyBkZWZpbmVzCgoyMDA0LTA2LTEwIDIxOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGxpbnV4IHJlcXVpcmVzIG5ldyBpb2N0bCBpbnRlcmZhY2UgYWNjZXNzCiAgIC0gdXNlIGlvY3RsIGZvciBod2FkZHIsIGlmX2ZsYWdzCiAgIC0gZ3Vlc3MgaWYgdHlwZSBiYXNlZCBvbiBuYW1lIGlmIG5vdCBrbm93bgogICAtIG1vdmUgZ2V0SWZTcGVlZCBjb2RlICYgcmVuYW1lIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9saW51eF9nZXRfaWZfc3BlZWQKCjIwMDQtMDYtMTAgMjA6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC0gbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKCjIwMDQtMDYtMTAgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgLSBtb3ZlIGFkbWluIHN0YXR1cyBiYWNrIHRvIGludGVyZmFjZSBlbnRyeQogICAtIHVzZSBkZXNjcmlwdGlvbiBmcm9tIGludGVyZmFjZSBlbnRyeQoKMjAwNC0wNi0xMCAxMDo1OSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBwZXIgQW5keSBTbWl0aCwgYXBwbHkgcGF0Y2ggIzk3MDQ4MCBXaW4zMiBSRUFETUUuYnVpbGQud2luMzIudHh0IHVwZGF0ZQoKMjAwNC0wNi0wOSAyMDoyOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBhcHBseSBjaGFuZ2VzIGlkZW50aWZpZWQgaW4gcGF0Y2ggIzk2OTMzOCBwYXRjaGVzIGZvciBGcmVlQlNEIDUueCBzdWNjZXNzZnVsIGJ1aWxkCgoyMDA0LTA2LTA5IDE4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2NvbnN0YW50cy5oLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBVcGRhdGUgZm9yIE1GRCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzICsgc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQgKwogICAgIElGLU1JQiBjaGFuZ2VzCiAgIC0gcmVtb3ZlIGFiaWxpdHkgdG8gYnVpbGQgaW5kZXBlbmRlbnQgb2YgaWZUYWJsZQoKMjAwNC0wNi0wOSAxODo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9jb25zdGFudHMuaCwgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBVcGRhdGUgZm9yIE1GRCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzICsgc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQgKwogICAgIElGLU1JQiBjaGFuZ2VzCiAgIC0gdXNlIG5ldyBwYXJhbSB0byBzYXZlIGludGVyZmFjZSBlbnRyeSB3L2dlbmVyYXRlZCBjb250ZXh0CiAgIC0gZm9yIGRhdGEgZnJvbSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSwgdXNlICNkZWZpbmVzIHNvIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QKICAgICBjaGFuZ2UgKGVnIGRlZmluZSBpZk5hbWUgaWZlbnRyeS5pZl9uYW1lKS4gd29ya3MgZm9yIG1vc3QgY2FzZXMKICAgLSBhZGQgZ2VuZXJhdGVkIHN0b3JhZ2UvZGVmaW5lcyBmb3IgaWZYVGFibGUgY29sdW1ucyB0byBkYXRhIGNvbnRleHQKICAgLSBjaGFuZ2UgY2FjaGUgdGltZW91dCB0byAzMCBzZWNvbmRzCiAgIC0gdXNlIG5ldyBjYWNoZSBmZWF0dXJlcyB0byBhdXRvIGxvYWQgYW5kIGF1dG8gcmVmcmVzaCBjYWNoZQogICAtIHVzZSBuZXcgVU5LTk9XTiBpZk9wZXJTdGF0dXMgZm9yIGludGVyZmFjZXMgdGhhdCB2YW5pc2gKICAgLSB1c2UgbmV3IGludGVyZmFjZSBjb3B5IGZ1bmN0aW9uIHdoZW4gdXBkYXRpbmcgY2FjaGUKICAgLSBvbmx5IHVwZGF0ZSBMYXN0Q2hhbmdlZCBvbiBpZk9wZXJTdGF0dXMgY2hhbmdlcwoKMjAwNC0wNi0wOSAxODozNyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aCwgYXBwbHkgcGF0Y2gjOTY4ODAwIFNOTVBDT05GUEFUSCBmaXggZm9yIFdpbjMyIGJpbmFyeSBpbnN0YWxsZXIKICAgYW5kIHBhdGNoICM5NzAwMTIgUmVtb3ZlIHNubXBjb25mLnBsIGZyb20gV2luZG93cyBpbnN0YWxsZXIKCjIwMDQtMDYtMDkgMTg6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQ6CgogICAtIHN3aXRjaCB0byBhIG1peGVkLW1vZGUgZGF0YSBjb250ZXh0CiAgICAgLSBjaGcgZGF0YSBjb250ZXh0IHRvIGRlZmF1bHQgZ2VuZXJhdGVkCiAgICAgLSBkb24ndCBhbGxvY2F0ZSBkYXRhIGNvbnRleHQKICAgICAtIGRvIHJlcXVlc3QgYSBpbml0IGNhbGwgZm9yIG5ldyBjb250ZXh0cwoKMjAwNC0wNi0wOSAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVtb3ZlIG1pYiBzcGVjaWZpYyBzdHVmZiAoaWZfYWxpYXMsIGlmX2FkbWluX3N0YXR1cywgaWZfbGlua191cGRvd25fdHJhcCkKICAgICAoc3RpbGwgbm90IHN1cmUgYWJvdXQgbGFzdCBjaGFuZ2VkIGFuZCBkaXNjb250aW51aXR5KQogICAtIG5ldyBmdW5jdGlvbiB0byBjb3B5IGludGVyZmFjZSBlbnRyeSBkYXRhCiAgIC0gbWFrZSBjYWxsYmFjayBmdW5jdGlvbnMgc3RhdGljCgoyMDA0LTA2LTA5IDE3OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBpZiBkYXRhX2luaXQgc2V0LCBhZGQgdXNlciB2b2lkIHBvaW50ZXIgdG8gYWxsb2NhdGVfcm93cmVxX2N0eCwgYW5kIHBhc3MgaXQKICAgICB0byByb3dyZXFfY3R4X2luaXQKICAgLSBmaXggdHdvIHR5cG9zIGluIGNvZGUgb25seSBnZW5lcmF0ZWQgd2hlbiBkYXRhX2luaXQgaXMgc2V0CiAgIC0gcmVsZWFzZSB1bmRvIGRhdGEgaW4gZnJlZV9yb3dyZXFfY3R4CiAgIC0gZG9uJ3QgZ2VuZXJhdGUgdW5kbyBzZXR1cCBjb2RlIGZvciBub24tc2V0dGFibGUgY29sdW1ucwoKMjAwNC0wNi0wOSAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLXRvcC5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAoKMjAwNC0wNi0wOSAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICAtIGNvbnZlcnQgY29udGFudCBwcmVmaXhlcyB0byB1cHBlcmNhc2UKICAgLSBhZGQgJ192YWwnIHN1ZmZpeCB0byBhbGwgbm9kZSBwYXJhbWV0ZXIgbmFtZXMKCjIwMDQtMDYtMDkgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIGFkZCBkZXNjcmlwdGlvbgoKMjAwNC0wNi0wOSAwMjozNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBwZXIgTWlrZSBIZWlzbGVyLCBmaXggYnVnICM5MzY0ODMgKHJlc3RvcmUgc3NpemVfdCkuCgoyMDA0LTA2LTA4IDIxOjU1ICBzbGlmCgogICAqIGFjY29uZmlnLmg6CgogICBVcGRhdGUgdG8gd2luMzIgaWZkZWYgdG8gaW5jbHVkZSBvdGhlciBlbnZpcm9ubWVudHMKCjIwMDQtMDYtMDggMTM6NTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZml4IGJ1aWxkIGZhaWx1cmUgKG5vIHN1Y2ggbWVtYmVyIGtwX2NvbW0sIGV0Yy4pIGZvciBGcmVlQlNEIDUueAoKMjAwNC0wNi0wOCAxMzo1MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgZml4IGJ1aWxkIGZhaWx1cmUgKG5vIHN1Y2ggbWVtYmVyIHh0X3RwKSBmb3IgRnJlZUJTRCA0LnggYW5kIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggY29tcGlsZSBmYWlsdXJlIChubyBpbnBfbmV4dCBpbiBzdHJ1Y3QgaW5wY2IpIGZvciBGcmVlQlNEIDQueCBhbmQgNS54CgoyMDA0LTA2LTA4IDEzOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIGZpeCBidWcgODk1Njc5IGJ5IGVuc3VyaW5nIHVwcGVyIGxpbWl0IHRyYWNrcyBidWZmZXIgYWxsb2NhdGlvbi9mcmVlIGFjdGlvbnMuCgoyMDA0LTA2LTA4IDEyOjAzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICByZW1vdmUgdW5uZWNlc3NhcnkgdW5kZWYgb2YgU1RSVUNUX1NUQVRGU19IQVNfRl9GQVZBSUwgKG5ldmVyIGlzIGRlZmluZWQpLgoKMjAwNC0wNi0wOCAxMDo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLXNldC5tMmMsIHBhcmVudC1zZXQubTJpCjoKCiAgIC0gY29tbWVudHMgYWJvdXQgZmxhZyBhbmQgZGVmaW5lcyBmb3IgdHJhY2tpbmcgd2hpY2ggY29sdW1ucyBoYXZlIGJlZW4gc2V0CiAgIC0gbWlzc2VkIGEgZmV3IGVycm9yIGRlZmluZSB1cGRhdGVzCgoyMDA0LTA2LTA4IDEwOjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMsCiAgICAgcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBhZGQgZmxhZyBhbmQgZGVmaW5lcyBmb3IgdHJhY2tpbmcgd2hpY2ggY29sdW1ucyBoYXZlIGJlZW4gc2V0CgoyMDA0LTA2LTA3IDE5OjUyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggc2V0dGluZyBvZiBPU1RZUEUgZm9yIEZyZWVCU0QgYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgY3JlYXRlIHN5c3RlbSBpbmNsdWRlIGZpbGUgZm9yIEZyZWVCU0QgNS54IGJ1aWxkIHBsYXRmb3Jtcy4KCjIwMDQtMDYtMDcgMTk6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgaW4gc3dhcG1vZGUKCjIwMDQtMDYtMDcgMTI6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZWNoZWNrIHBlcnNpc3RlbnQgcGF0aCBpbiBsb29wLCBzaW5jZSBpdCBtaWdodCBjaGFuZ2UKCjIwMDQtMDYtMDcgMTI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHNwZWNpZnkgZnVsbCAzMiBiaXRzIGZvciBoYW5kbGVyIGZsYWdzCgoyMDA0LTA2LTA3IDEyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFsd2F5cyBjb25zaWRlciBjYWNoZSB3L3RpbWVvdXQgb2YgLTEgYXMgZXhwaXJlZCAobG9hZCBjYWNoZSBldmVyeSByZXF1ZXN0KQogICAtIGFkZCBORVRTTk1QX0NBQ0hFX0RPTlRfRlJFRV9CRUZPUkVfTE9BRCAmIE5FVFNOTVBfQ0FDSEVfQVVUT19SRUxPQUQgZmxhZ3MKICAgLSBhZGQgZXhhbXBsZSB1c2FnZXMgc2NlbmFyaW9zIGFuZCBzdWdnZXN0ZWQgZmxhZ3MKICAgLSBhZGQgbmV0c25tcF9jYWNoZV90aW1lcl9zdGFydCAmIG5ldHNubXBfY2FjaGVfdGltZXJfc3RvcAogICAtIGNsZWFyIGV4cGlyZWQgZmxhZyBhZnRlciBjYWNoZV9sb2FkCiAgIC0gYWRkIGFub3RoZXIgbm90ZSBhYm91dCBwb3RlbnRpYWwgY2FjaGUgaXNzdWUgdy9kZWxlZ2F0ZWQgcmVxdWVzdHMKICAgICAoc29tZSBsb2NraW5nL3JlZmVyZW5jZSBjb3VudCBtZWNoYW5pc20gaXMgbmVlZGVkKQoKMjAwNC0wNi0wNyAxMTo1MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gYWNjZXB0IGFiYnJldmlhdGVkIHZlcnNpb25zIG9mIHNvbWUgZmxhZ3MKICAgLSBwb2ludCBpbmRlbnQtb3B0b2lucyBhdCBhIHJlYWwgZGlyZWN0b3J5CiAgIC0gZG9uJ3Qgc3Vic3RpdHV0ZSBwcmVmaXggbXVsdGlwbGUgdGltZXMKCjIwMDQtMDYtMDcgMTE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIGZpeCBjb21tZW50IHJlZiBmb3IgaW50ZWdlciBmcm9tIE5VTEwgdG8gMAoKMjAwNC0wNi0wNyAxMTozOSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBza2lwIHNjcCBpZiBiYWMgcmMgZnJvbSBjdnMgY29tbWFuZAoKMjAwNC0wNi0wNyAxMTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlYW1lICRpX0lEWDIgdG8gJElfQ1VTVE9NX1NPUlQgdG8gcmVkdWNlIGNvbmZ1c2lvbgoKMjAwNC0wNi0wNyAxMTozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCiAgIC0gbW92ZSBwcmUvcG9zdCByZXF1ZXN0IGluaXQgb3V0c2lkZSBtaWIyYyBjb25kaXRpb25hbAogICAtIG1vdmUgdW5kbyBkYXRhIGNvbnRleHQgcmVsZWFzZSB0byB1bmRvX2NsZWFudXAKICAgLSB2YWxpZGF0ZSByYyBmcm9tIG5vZGUgY2hlY2sgdmFsdWUgcm91dGluZQoKMjAwNC0wNi0wNyAxMTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgZGlzdGluY3Rpb24gYmV0d2VlbiB3cm9uZ1ZhbHVlL2luY29uc2lzdGVudFZhbHVlCgoyMDA0LTA2LTA3IDExOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gbW9yZSBoZWxwIHRleHQgZm9yIHZhbGlkYXRlX2luZGV4CiAgIC0gaW5jbHVkZSBiYWJ5LXN0ZXBzIGZsb3ctY2hhcnQgYmVmb3JlIHNldCBmdW5jdGlvbnMKICAgLSBhZGQgbWlzc2luZyB1bmRvX2NvbW1pdCwgdW5kb19jbGVhbnVwIHN0YXRlcwoKMjAwNC0wNi0wNyAxMToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgdXNlIFNOTVB2MiBlcnJvcnMgaW5zdGVhZCBvZiB2MSBlcnJvcnMKCjIwMDQtMDYtMDcgMTE6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIHR1cm4gb2ZmIGluZGVudCBhcm91bmQgY29uZmlnX3JlcXVpcmUgKGRvZXNuJ3QgbGlrZSAgJy8nIG9yICctJyBjaGFycykKICAgLSBzaW1wbGlmeSBzb21lIGVycm9yIGRlZmluZSBuYW1lcwoKMjAwNC0wNi0wNyAxMToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdXBkYXRlIHNvbWUgcXVlc3Rpb24vaGVscCB0ZXh0CgoyMDA0LTA2LTA3IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIHJlc3RvcmUgZm9yZWFjaCB0YWJsZQoKMjAwNC0wNi0wNyAxMToxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgcmV2ZXJ0IGNoYW5nZXMgZm9yIHNldHRpbmcgc29tZSBtaWIyYyBkZWZhdWx0cyAodXNlIG1pYjJjIC1TIHh4eCBpbnN0ZWFkKQoKMjAwNC0wNi0wNyAxMToxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHBhc3MgZXh0cmEgYXJncyB0byBtaWIyYwoKMjAwNC0wNi0wNyAxMToxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBjaGFuZ2UgZXhhbXBsZSBjb21tZW50IGJsb2NrIHNvIGluZGVudCB3aWxsIGluZGVudCBpdAogICAtIHNraXAgc3Vic3RpdHV0aW9uIGNoZWNrcyBpZiB0aGV5IHdvbid0IG1hdGNoCiAgIC0gYXBwbHkgZGF2ZSdzIGhhY2sgZm9yIDkzOTA0MTogLi4uIGJhZCBtYWNybyBuYW1lIGlmZiBlbnVtIGNvbnRhaW5zIGh5cGhlbgoKMjAwNC0wNi0wNyAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBCYWNrd2FyZHMtY29tcGF0YWJpbGl0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVUNELVNOTVAtTUlCOjpleHRUYWJsZQogICAoaWYgdGhlIHVjZC1zbm1wL2V4dGVuc2libGUgbW9kdWxlIGlzbid0IGNvbmZpZ3VyZWQgaW4pLgoKMjAwNC0wNi0wNyAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwKICAgICB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgICB1Y2Qtc25tcC9wYXNzLmgsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oOgoKICAgTW92ZSAnZ2V0X2V4dGVuX2luc3RhbmNlJyBpbnRvIHRoZSB1dGlsaXR5IGZ1bmN0aW9uIGZpbGUsCiAgIHNvIHRoYXQgdGhlIHR3byBwYXNzIGhhbmRsZXJzIGFyZW4ndCBkZXBlbmRlbnQgb24gJ2V4dGVuc2libGUnCgoyMDA0LTA2LTA2IDIzOjQ3ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgbW9kdWxlcyB3aGVuIHRoZXJlIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZW0KCjIwMDQtMDYtMDYgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjdnMgc2VydmVyIG5hbWUgY2hhbmdlCgoyMDA0LTA2LTA0IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICByZW1vdmUgcmVkdW5kYW50IHJlZmVyZW5jZSByb3cgZnJvbSBvdXRwdXQKCjIwMDQtMDYtMDQgMTM6MzkgIGhhcmRha2VyCgogICAqIG1pYnMvbm9kZW1hcDoKCiAgIGFkZGVkIGEgbm9kZW1hcCBmb3IgaHRtbCBvdXRwdXQgZ2VuZXJhdGlvbgoKMjAwNC0wNi0wNCAxMzozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgbWFrZSBodG1sIG91dHB1dCBkaXNwbGF5IHRoZSByZWZlcmVuY2UgaW4gaXRhbGljcyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGRzLgoKMjAwNC0wNi0wNCAxMzozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMsIG1hbi9taWIyYy5jb25mLjU6CgogICBtYWtlICR4LnJlZmVyZW5jZSBleHBhbmQgdG8gYSBvYmplY3RzIHJlZmVyZW5jZQoKMjAwNC0wNi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1ha2UgU05NUDo6TUlCIG9iamVjdHMgaGFuZGxlIGEgJ3JlZmVyZW5jZScga2V5d29yZC4KCjIwMDQtMDYtMDQgMTM6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIFNhdmVkIHRoZSB2YWx1ZSBvZiBwYXJzZWQgcmVmZXJlbmNlIGNsYXVzZXMuCgoyMDA0LTA2LTA0IDA1OjUxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEEgbGl0dGxlIGVycm9yLWNoZWNraW5nIHdoZW4gZm9yd2FyZGluZywgYW5kIGNoYW5nZSBmcHJpbnRmIHRvIHNubXBfbG9nCgoyMDA0LTA2LTA0IDAzOjE3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFByb3Blcmx5IGZyZWUgcHJpbnRidWZmZXIKCjIwMDQtMDYtMDQgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBNYWtlIHN1cmUgYWxsIHJlZ2lzdHJhdGlvbiBhcmUgcmVtb3ZlZCBmb3IgZXhlYydzCgoyMDA0LTA2LTA0IDAyOjQ1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGdhcmJsZWQgcGFja2V0cyB3aXRoIGJhZCBwYWNrZXQgdHlwZXMKCjIwMDQtMDYtMDQgMDE6NTcgIG5iYQoKICAgKiBtYW4vc25tcF9hcGkuMy5kZWY6CgogICBTaW1wbGUgc3BlbGxpbmcgZml4CgoyMDA0LTA2LTA0IDAxOjE1ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZHVwIGluc3RhbGxhdGlvbiBvZiBzY3JpcHRzIGFmdGVyIGFkZGl0aW9uIG9mIC0tZGlzYWJsZS1zY3JpcHRzCgoyMDA0LTA2LTA0IDAwOjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgdW5kbyBwcmV2aW91cyBjaGFuZ2UsIHNpbmNlIGludHJvZHVjdGlvbiBvZiBmcmVlYnNkNS5oIGhlYWRlciBkZWZpbmVzIGZyZWVic2Q0LgoKMjAwNC0wNi0wMyAxMjo1OSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCBidWcgIzk0MzM1MSBieSBjb25zaWRlcmluZyBmcmVlYnNkNSB3aGVuIGRlY2xhcmluZyAiaHoiLgoKMjAwNC0wNi0wMiAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIGZpeCBhIGZldyBtaXNzZWQgcHJvY2Vzc2luZ190eXBlIHR3ZWFrcwoKMjAwNC0wNi0wMiAwNTozNyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUUsIHdpbjMyL0NvbmZpZ3VyZQosIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9ubWFrZXBlcmwuYmF0LCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQKLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Igd2luMzIgZG9jIGFuZCBzY3JpcHRzLCBtYXRjaCB0aGUgYmFzZSBkaXJlY3RvcnkgdXNlZCBhcyBjdXJyZW50IGRlZmF1bHQuCgoyMDA0LTA2LTAxIDAyOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEhhbmRsZSByb3cgZGVsZXRpb24gKGFuZCBmYWlsZWQgcm93IGNyZWF0aW9uKSBwcm9wZXJseS4KICAgTW92ZSByb3cgY3JlYXRpb24gYW5kIG5ldyB2YWx1ZSBhc3NpZ25tZW50cyB0byB0aGVpciBuYXR1cmFsCiAgIHBhc3Nlcywgd2l0aCBhIHNlY29uZCAoc2VwYXJhdGUpIGNoZWNrIGZvciByb3cgdmFsaWRpdHkuCiAgIChmb2xsb3dpbmcgUm9iZXJ0J3Mgc3VnZ2VzdGlvbikKCjIwMDQtMDYtMDEgMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIGZvbGxvd2luZyB0aGUgYWRkaXRpb24gb2YgJ3JlbG9jYXRhYmlsaXR5Jy4KICAgRW5zdXJlIHRoYXQgdGhlICJzdGFuZGFyZCIgbG9jYXRpb24gaXMgcmVnaXN0ZXJlZCBhdXRvbWF0aWNhbGx5CiAgIChzbyB0aGUgbnVtUm93cyBvYmplY3QgaXMgcHJlc2VudCwgZXZlbiB3aXRoIGFuIG90aGVyd2lzZSBlbXB0eSB0YWJsZSkuCgoyMDA0LTA1LTI3IDIwOjA2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMgdG8gcmVmbGVjdCBzbm1wdHJhcGQgY2FuIGJlIHJ1biBhcyBhIFdpbmRvd3Mgc2VydmljZS4KCjIwMDQtMDUtMjcgMDU6MzcgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBDb3JyZWN0IHRoZSBudW1iZXIgb2YgY29weXJpZ2h0IG5vdGljZXMKICAgbGlzdGVkLCBhbmQgdGhlIHRleHQgb2YgdGhlIFNwYXJ0YSBvbmUuCiAgIChJIHRydXN0IHRoaXMgaXMgT0ssIFdlcyEpCgoyMDA0LTA1LTI2IDAxOjM5ICBkdHMxMgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgUmVtb3ZlIHdhcm5pbmdzIG9mIEFnZW50WCAiYmV0YS1zdGF0dXMiLgogICAoSSBrbm93IEknbSBnb2luZyB0byByZWdyZXQgZG9pbmcgdGhpcy4uLi4pCgoyMDA0LTA1LTI1IDA4OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQWNjZXB0IHRoZSBzYW1lIHNlY3VyaXR5IGxldmVsIHRva2VucyBhcyB1c2VkIGluIHRoZQogICAiclt3b111c2VyIiBhbmQgImFjY2VzcyIgZGlyZWN0aXZlcy4KCjIwMDQtMDUtMjQgMDM6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgSW1wbGVtZW50IHJlbG9jYXRhYmxlIGZvcm0gb2YgYWdlbnQgZXh0ZW5zaW9uIHRhYmxlLgoKMjAwNC0wNS0yNCAwMzozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBJbXBsZW1lbnQgJ3J1bi1vbi13cml0ZScgc3VwcG9ydCwgYW5kIHVzZSBpdCB0byBoYW5kbGUgYQogICBuZXcgJ2V4ZWNGaXgnLXN0eWxlIGRpcmVjdGl2ZS4KCjIwMDQtMDUtMjMgMTA6NDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGg6IGFwcGx5IHBhdGNoIFs5NTc5NDJdIFdpbjMyIHNlcnZpY2UgaW5zdGFsbCBwYXVzZQoKMjAwNC0wNS0yMSAxMDoxMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIGZvci9wcm9jZXNzIGRlbGVnYXRlZCByZXF1ZXN0cyBpbiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcwoKMjAwNC0wNS0yMCAyMTowOSAgc2xpZgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBpZ25vcmUgZmFpbHVyZSByZXN1bHQgc2hvdWxkIGN2cyBjaGVja291dCBjb25kaXRpb24gbm90IGFwcGx5LgogICBUaGlzIHBlcm1pdHMgYnVpbGRzIG91dHNpZGUgQ1ZTIHRyZWUgdG8gc3VjY2VlZC4KCjIwMDQtMDUtMjAgMTY6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIE1pbm9yIHdvcmRpbmc6IGFkZGVkIHRhYmxlIG5hbWUgdG8gImluZGV4IiBhbmQgIm90aGVyIGNvbHVtbnMiIGxpbmUuCgoyMDA0LTA1LTIwIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgcmVtb3ZlIGNoYW5nZXMgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHRoYXQgd2VyZW4ndCByZWFkeQoKMjAwNC0wNS0yMCAxNTowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBWZXJzaW9uLU11bmdlLnBsLCBtaWIyYy5nZW5odG1sLmNvbmY6CgogICAtIGFkZGVkIHN1cHBvcnQgZm9yIG5vdGlmaWNhdGlvbiBkZXNjcmlwdGlvbnMKCjIwMDQtMDUtMTkgMTg6MDkgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgZ2V0X3RjX2Rlc2NyaXB0aW9uIGFuZCBpbml0X3VzbV9jb25mIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzIGxpc3QuCgoyMDA0LTA1LTE5IDE4OjAyICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQZXJtaXQgQ3lnd2luIGJ1aWxkIHRvIHRha2UgYWR2YW50YWdlIG9mIGJhY2tzbGFzaCBwcnVuaW5nIGFuZCBzaW5nbGUgbGV0dGVyIHZvbHVtZSBzcGVjaWZpZXIuCgoyMDA0LTA1LTE5IDE3OjU0ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sOgoKICAgcGVyIEFsZXggQnVyZ2VyOiAgc25tcGNvbmYgZGFzaCBsaXR0bGUtZXllCgoyMDA0LTA1LTE5IDE2OjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBhcnNpbmcgb2YgZXhwbGljaXQgaGFuZGxlciB0eXBlcwoKMjAwNC0wNS0xOSAxMzoxNCAgaGFyZGFrZXIKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIHVwZGF0ZSBhZnRlciBhIG1pYjJjIHVwZGF0ZQoKMjAwNC0wNS0xOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgLSBzdXBwb3J0IGEgdGFibGUgb2YgY29udGVudHMKICAgLSBuYW1lIGFsbCBub2RlcyB1c2luZyBodG1sIG5hbWVzCiAgIC0gc3VwcG9ydCBhIHRyZWUtdmlldwogICAtIG1pc2MgYnVnIGZpeGVzCgoyMDA0LTA1LTE5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gc3VwcG9ydCAiZm9yZWFjaCAkaSBzdHVmZiBMSVNUIgogICAtIHVzZSB1bnNoaWZ0IGluc3RlYWQgb2YgcHVzaCBmb3IgY2FsbGRlZmluZSB0byBlbnN1cmUgcHJvcGVyIHJlY3Vyc2lvbgogICAtIHJlZ2V4cCBtdW5naW5nCgoyMDA0LTA1LTE5IDEwOjMwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBsb2FkIHRoZSBjYWNoZSBmb3IgcmVzZXJ2ZTEgKG90aGVyd2lzZSBhIGdldCBpcyByZXF1aXJlZCBiZWZvcmUgc2V0IHdvcmtzKQoKMjAwNC0wNS0xOCAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgYWxsb3cgZm9yIHVzZXIgb3ZlcnJpZGUgb2YgbWZkIG9wdGlvbiBkZWZhdWx0cwoKMjAwNC0wNS0xOCAxMzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgYWxsb3cgZm9yIGludGVyYWN0aXZlIHNldHVwIG9mIG1mZCBvcHRpb25zCgoyMDA0LTA1LTE4IDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2Ygb3B0aW9uczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDEzOjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgYWx3YXlzIGNhbGwgcm93X3ByZXA7IGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQKICAgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHNldCB2YXJiaW5kIGVycm9yIG9uIGNvbHVtbiBzZXQgZXJyb3I7IGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZgogICAkdGFibGU7IHNlcGFyYXRlIG1mZF9wcm9jZXNzaW5nX3R5cGVzIGZyb20gbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wNS0xOCAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC10b3AubTJjOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMKICAgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyByZW1vdmUgZGF0YSBzZXR1cCBmcm9tIHJvd19wcmVwCgoyMDA0LTA1LTE4IDExOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBkZWZhdWx0IHRvIHNldHRpbmcgdXAgZGF0YQogICBjb250ZXh0IGluIGNhY2hlX2xvYWQsIGluc3RlYWQgb2Ygcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgYXNzdW1lIG1hcHBpbmcgYWxyZWFkeSBkb25lOyBzZXQgbGVuIHRvIG1heCBzaXplIGJlZm9yZQogICBjaGVja2luZyBpZiBpdCBpcyBsYXJnZSBlbm91Z2ggdG8gaG9sZCBhIHZhbHVlCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgbG9nIGVycm9yIGlmIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHZhcgoKMjAwNC0wNS0xOCAxMToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBjb21tZW50IHR3ZWFrcwoKMjAwNC0wNS0xOCAxMToxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBmaXggY2FzZSBvZiBzb21lIGNvbnN0YW50cwoKMjAwNC0wNS0xOCAxMDo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYywKICAgICBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgbWFrZSBnZW5lcmljLXRhYmxlLShlbnVtc3xvaWRzKSBvbmx5IHJ1biBvbiBjdXJyZW50CiAgIHRhYmxlOyBhZGQgdGFibGUgbG9vcCBpbiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cwoKMjAwNC0wNS0xOCAxMDozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBhZGQgZGVidWcgdHJhY2luZyBmb3Igc2V0IGZ1bmN0aW9ucwoKMjAwNC0wNS0xOCAxMDozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtdGFibGUubTJpLAogICAgIGdlbmVyaWMtY3R4LWNvcHkubTJpLCBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmksIG1mZC1yZWFkbWUubTJjCjoKCiAgIGNvbW1lbnQgdHdlYWtzOyBjaGcgJHRhYmxlIHRvICRjb250ZXh0CgoyMDA0LTA1LTE4IDAyOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIFdyaXRlIHN1cHBvcnQsIGluY2x1ZGluZyBSb3dTdGF0dXMtYmFzZWQgY3JlYXRpb24gb2YgbmV3ICh2b2xhdGlsZSkgcm93cy4KICAgVGhlIGNvZGUgbmVlZHMgYSBiaXQgb2YgdGlkeWluZyB1cCwgYnV0IHNlZW1zIHRvIGJlIHJlYXNvbmFibHkgZnVuY3Rpb25hbC4KCjIwMDQtMDUtMTggMDI6MDEgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBNaW5vciB0d2Vha3MuCgoyMDA0LTA1LTE3IDIwOjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjIDk1NTU3OSB0byBjb21wbGV0ZSBtaW5vciBjaGFuZ2VzIHRvIGluc3RhbGwgdGFicy4KCjIwMDQtMDUtMTcgMTk6NTggIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWwsIGh0bWxoZWxwL05ldC1TTk1QLmhoYywKICAgICBodG1saGVscC9OZXQtU05NUC5oaHA6CgogICBBZGp1c3QgdXNhZ2UgdG8gYWNjb3VudCBmb3IgcmVtb3ZlZCBzcGFjZSBmcm9tIHBhdGhuYW1lcyBvZiBIVE1MIGhlbHAgZmlsZXMuCgoyMDA0LTA1LTE3IDE5OjUyICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaHRtbGhlbHAvOiBDb25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwsCiAgICAgQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLCBEZXZlbG9wZXIgRkFRLmh0bWwsCiAgICAgRGV2ZWxvcGVyX0ZBUS5odG1sLCBIZWxwIENhdmVhdHMuaHRtbCwKICAgICBIZWxwX0NhdmVhdHMuaHRtbDoKCiAgIHJlbW92ZSBzcGFjZSBmcm9tIHBhdGhuYW1lcyBvZiBIVE1MIGhlbHAgZmlsZXMuCgoyMDA0LTA1LTE3IDE1OjQ1ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIHBlciBBbGV4IEJ1cmdlciwgb25lLWxpbmUgY2hhbmdlIChsaW5lIDE1OSwgY2hhbmdlIHBlcmlvZCB0byBjb2xvbikuCgoyMDA0LTA1LTE3IDA3OjEzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQsCiAgICAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQKLCB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICB3aW4zMi9sb2NhbC9NYWtlZmlsZS5pbiwgd2luMzIvbG9jYWwvbWliMmMuYmF0LAogICAgIHdpbjMyL2xvY2FsL3NubXBjb25mLmJhdCwgd2luMzIvbG9jYWwvdHJhcHRvZW1haWwuYmF0CjoKCiAgIHBlciBBbGV4IEJ1cmdlcjogdGVzdCBleGlzdGVuY2Ugb2YgcGVybDsgcHJvdmlkZSBhY2Nlc3MgdG8gbW9yZSBQZXJsIHByb2dyYW1zLgoKMjAwNC0wNS0xNyAwNjo0NCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggIzk1NTI1NSB0byBlbmhhbmNlIHRoZSBOU0lTIGluc3RhbGxlci4KCjIwMDQtMDUtMTcgMDU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgSW1wbGVtZW50IHRoZSBtdWx0aS1yb3cgb3V0cHV0IE1JQiB0YWJsZS4KCjIwMDQtMDUtMTQgMDQ6MjIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBPb3BzISAgQ2xvc2UgLSBidXQgaXQncyBhIGdvb2Qgam9iIEkgZG9uJ3Qgc21va2UuLi4uCgoyMDA0LTA1LTEzIDIxOjIzICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbGV4QjogZGVzY3JpYmUgZnVydGhlciBkZXRhaWxzIG9mIGJ1aWxkaW5nIChjcmVhdGluZyBlbXB0eSBmaWxlcywgZXRjKS4KCjIwMDQtMDUtMTMgMjE6MTMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXhCOiBhZGRlZCBzZWN0aW9uICJjby1leGlzdGluZyB3aXRoIG0kIHNlcnZpY2VzIgoKMjAwNC0wNS0xMyAyMDoyOSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLWhlYWRlcjEuYm1wLCBuZXQtc25tcC5uc2k6CgogICBQZXIgQW5keSBTbWl0aDogcGF0Y2ggWzk1MjUwOV0gdG8gZml4IGxpbmsgbmFtZXMgZm9yIHRoZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBiYXRjaCBmaWxlcy4KCjIwMDQtMDUtMTMgMjA6MTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgUGVyIEFsZXggQnVyZ2VyIGFuZCBBbmR5IFNtaXRoOiB1cGRhdGVkIGluc3RydWN0aW9ucyBmb3IgY3JlYXRpbmcgYSB3aW4zMiBpbnN0YWxsYWJsZSBwYWNrYWdlLgoKMjAwNC0wNS0xMyAyMDowNCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZW1vdmUgTkVUU05NUF9DUFBfV1JBUCBtYWNyb3MKCjIwMDQtMDUtMTMgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgU3BsaXQgbmV3IGV4dGVuc2lvbiB0YWJsZSBpbnRvIHR3byAoY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0KS4KICAgSW1wbGVtZW50IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMuCiAgIFBhcnNlIG11bHRpLWxpbmUgb3V0cHV0IHRvIGltcGxlbWVudCAnbnNFeHRlbmRPdXRwdXQxTGluZScgb2JqZWN0LgoKMjAwNC0wNS0xMyAwNDowNiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFNlcGFyYXRlIGNvbmZpZ3VyYXRpb24gYW5kIG91dHB1dCBpbnRvIHNlcGFyYXRlIHRhYmxlcywgYXMgc3VnZ2VzdGVkLgogICBEcm9wICdvdXRwdXQgbGVuZ3RoJyBvYmplY3QgYXMgcHJvYmFibHkgdW5uZWNlc3NhcnkuCiAgIE5ldyBzY2FsYXIgdG8gdHJhY2sgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSB0YWJsZS4KICAgVGhpcyBhbHNvIG1lYW5zIHRoYXQgdGhpcyBncm91cCB3aWxsIG5vdCBiZSBlbXB0eSwKICAgZXZlbiB3aGVuIG5vIGV4dGVuc2lvbnMgYXJlIGNvbmZpZ3VyZWQgZm9yIGEgZ2l2ZW4gYWdlbnQuCiAgIChJJ20gc3RpbGwgbm90IGhhcHB5IHdpdGggc29tZSBvZiB0aGUgbmFtZXMsIHRob3VnaCEpCgoyMDA0LTA1LTExIDAzOjU5ICBzbGlmCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgY2xlYW51cCBlcnJvciBtZXNzYWdlcy4gY2xhcmlmeSBTQ00gaW50ZXJhY3Rpb25zIHdpdGggd29ya2VyIHRocmVhZCBpbiBjb21tZW50cy4KCjIwMDQtMDUtMTEgMDM6MTIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXggc29tZSBTTUkgZXJyb3JzLgogICBXZXMgY2FuIGJlIGEgcGlja3kgYmVnZ2FyIGF0IHRpbWVzLi4uLgoKMjAwNC0wNS0xMCAxNzo1MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbmV0LXNubXAtcGVybC10ZXN0LnBsOgoKICAgcGVyIEFsZXggQnVyZ2VyIC0gYWRkIG1pc3NpbmcgdGVzdCBzY3JpcHQuCgoyMDA0LTA1LTEwIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBBbm90aGVyIGRvYyB1cGRhdGUgZnJvbSBBbGV4CgoyMDA0LTA1LTEwIDAzOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbXRhdGlvbiBvZiBuZXcgbnNFeHRlbmRUYWJsZQoKMjAwNC0wNS0xMCAwMzo0NCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFJldmlzZWQgTUlCIGZvciBzY3JpcHRlZCBleHRlbnNpb25zLgogICAoVG8gcmVwbGFjZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlKQoKMjAwNC0wNS0xMCAwMzo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRGVmZW5zaXZlIHByb2dyYW1taW5nIC0gZG9uJ3QgY3Jhc2ggb24gTlVMTCBwYXJhbWV0ZXJzLgoKMjAwNC0wNS0xMCAwMzo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBFeHRlcm5hbCBBUEkgZm9yIGNoZWNraW5nIGFuZCByZWxvYWRpbmcgYSBjYWNoZWQgdmFsdWUuCiAgIFdlYWtlbiB0aGUgbGlua3MgYmV0d2VlbiB0aGlzIGhlbHBlciBhbmQgJ25zQ2FjaGVUYWJsZScuCgoyMDA0LTA1LTA3IDE1OjQxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeSBmb3IgRlJORVRTRVJWLU1JQgoKMjAwNC0wNS0wNyAxNToxOSAgbmJhCgogICAqIG1pYnMvOiBFdGhlckxpa2UtTUlCLnR4dCwgSUFOQWlmVHlwZS1NSUIudHh0LAogICAgIHJmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQiB2ZXJzaW9ucwoKMjAwNC0wNS0wNyAxNTowNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgVGhlIHdvcmQgUFJFRklYIGlzIG5vdCBlbmRhbmdlcmVkIGZvciBzdWJzdGl0dXRpb24sIHNvIG1ha2UgaXQgbG9vayBub3JtYWwKCjIwMDQtMDUtMDcgMTQ6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGZvciB0cnVuY2F0ZWQgb2lkIHdoZW4gdXNpbmcgT0JKRUNUIElERU5USUZJRVIgYXMgaW5kZXgKCjIwMDQtMDUtMDcgMTQ6MTUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHRvIGFsbG93IHNwZWNpZnlpbmcgbnVtZXJpYyBvaWQgZm9yIHRhYmxlCgoyMDA0LTA1LTA2IDIwOjE1ICBzbGlmCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbToKCiAgIFBlciBBbGV4IEJ1cmdlciwgYWRkIG5hbWVzIHRvIGFja25vd2xlZGdlIHRoZSBpbmRpdmlkdWFsIGNvbnRyaWJ1dG9ycy4KCjIwMDQtMDUtMDYgMTk6NDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsIGluc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgcmVmbGVjdCB0aGF0IFJFQURNRS1GSVJTVC50eHQgYW5kIEluc3RhbGxhdGlvbi5odG1sIGhhdmUgYmVlbiBtZXJnZWQgaW50byBSRUFETUUudHh0CgoyMDA0LTA1LTA2IDE5OjAyICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoLCBwYXRjaCAjOTQyNzY2IGNyZWF0ZXMgU05NUENPTkZQQVRIIGFuZCBTTk1QU0hBUkVQQVRIIGFzIHN5c3RlbSBlbnYgdmFycy4KCjIwMDQtMDUtMDYgMTg6NTQgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBQZXIgQW5keSBTbWl0aCwgZG9uJ3Qgc2hvdyBtZXNzYWdlIGRpYWxvZ3Mgd2hlbiByZWcvdW5yZWcgT0sgKHBhdGNoIDk0ODkyNiBmaXhlcyBidWcgOTQ4MTQ2KS4KCjIwMDQtMDUtMDYgMTg6MDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9IZWxwIENhdmVhdHMuaHRtbCwKICAgICBodG1saGVscC9JbnN0YWxsYXRpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocCwgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWw6CgogICBwYXRjaCB3aW5kb3dzIGJ1aWxkIHBhY2thZ2luZyBwZXIgQWxleCBCdXJnZXIncyBwYXRjaC13aW4zMi01LjEuMi1jbGVhbnVwLmRpZmYKCjIwMDQtMDUtMDYgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtb3ZlIHZhciBkZWNsIHRvIHRvcCBvZiBibG9jayBzY29wZTsgYWRkIGhlYWRlciB0byBxdWlldCBwcm90b3R5cGUgd2FybmluZwoKMjAwNC0wNS0wNSAxNDo0MSAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBBZGQgSUFOQS1NQUxMT0MtTUlCCgoyMDA0LTA1LTA1IDEzOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIFByb3RlY3Qgb2lkIHRhYmxlIGFnYWluc3Qgb3ZlcmZsb3cKCjIwMDQtMDUtMDUgMDc6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBzaG91bGRfaW5pdCBiZWZvcmUgaW5pdGlhbGl6aW5nIHNtdXgKCjIwMDQtMDUtMDQgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlc19sb2NhbC5jb25mOgoKICAgRml4IGEgaGVhZGVyIHByb3RvdHlwZSBkZWNsYXJhdGlvbgoKMjAwNC0wNS0wNCAwNzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV9jb25mLmMsCiAgICAgdmFjbV9jb25mLmgsIHZhY21fdmFycy5oOgoKICAgU3BsaXQgVkFDTSBoYW5kbGluZyBpbnRvIHR3byAtIG9uZSBjb25jZXJuZWQgd2l0aCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKICAgYW5kIHZhbGlkYXRpbmcgYWNjZXNzLCB0aGUgb3RoZXIgdG8gaGFuZGxlIHRoZSBNSUIgdGFibGUgcmVwcmVzZW50YXRpb24uCiAgIFRoaXMgYWxsb3cgdGhlIGFnZW50IHRvIHN1cHBvcnQgVkFDTS1iYXNlZCBhY2Nlc3MgY29udHJvbCB3aXRob3V0IG5lY2Vzc2FyaWx5CiAgIGluY2x1ZGluZyB0aGUgVkFDTS1yZWxhdGVkIHRhYmxlcy4KCjIwMDQtMDUtMDQgMDc6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wdXNtLmMKLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgTW92ZSBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gdGhlIGxpYnJhcnksIHNvIGl0IGNhbiBiZSBzaGFyZWQgYmV0d2VlbgogICBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyLiAgIFRoaXMgYWxzbyBwYXZlcyB0aGUgd2F5IGZvciBzZXBhcmF0aW5nCiAgIGNvbmZpZy1iYXNlZCBoYW5kbGluZyBvZiBzZXR0aW5nIHVwIHVzZXJzIGZyb20gdGhlIFVTTSBNSUIgaGFuZGxlci4KCjIwMDQtMDUtMDQgMDE6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ29uZmlndXJlIGluZGVudCB0byByZWNvZ25pc2UgJ3NpemVfdCcgYXMgYSB0eXBlIG5hbWUgKEJ1ZyAjOTQ2OTM5KQoKMjAwNC0wNS0wMyAxNTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBTZXQgbm8gcmVwZWF0LWNvdW50IHRvIDEgd2hlbiBub2dldGJ1bGsgaXMgc3BlY2lmaWVkIGZvciBtYXRoIHB1cnBvc2VzLgoKMjAwNC0wNS0wMyAxNDoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgU29sYXJpcyBDUFVfV0FJVCBsb29rcyBzdHJhbmdlIG9uIHNvbWUgc2VydmVycy4gVXBkYXRlIHRvIHNhbWUgYWxnb3JpdGggdG9wIHVzZXMKCjIwMDQtMDQtMzAgMTc6MDAgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBNYW55IG1pc2MgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzLgogICAgLSBOb3cgdGFrZXMgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgY2hhbmdpbmcgTUlCRElScyBhbmQgb3V0cHV0IGRpcnMuCiAgICAtIGFjY2VwdHMgYSBub2RlbWFwIHRvIG1hcCBNSUJzIHRvIG90aGVyIG5vZGVzLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgQWRkZWQgYSB0b3VjaCBvZiBjb2xvci4KCjIwMDQtMDQtMzAgMTU6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWIyYy5nZW5odG1sLmNvbmYKCjIwMDQtMDQtMzAgMTE6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgbWFrZWh0bWwucGw6CgogICAtIEEgbWFrZSByb3V0aW5lIHRvIGdlbmVyYXRlIGEgSFRNTCBkdW1wIG9mIG91ciBEaXN0cmlidXRlZCBNSUJzLgogICAgIC0gSW5zdGFsbGVkIGF0IGh0dHA6Ly93d3cuTmV0LVNOTVAub3JnL21pYnMvCgoyMDA0LTA0LTI4IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGV4dHJhY3Rpb24KCjIwMDQtMDQtMjggMTc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbWFueSBtb3JlIHVwZGF0ZXMgYW5kIGRvY3VtZW50YXRpb24gZm9yIG1pYjJjIGNvbW1hbmRzLgoKMjAwNC0wNC0yOCAxNjo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG1vcmUgYW5kIGNsZWFuIHVwICR2YXIuWFhYIGNvbW1lbnRzCgoyMDA0LTA0LTI4IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBPbmx5IGJ1aWxkIHRoZSBtaWIyYy5jb25mIG1hbiBwYWdlIGlmIGNvbWluZyBmcm9tIGEgY3ZzIGNoZWNrb3V0CiAgICAgLSBhdm9pZHMgcGVybCBkZXBlbmRlbmNpZXMgb24gZW5kLXVzZXIgbWFjaGluZXMuCgoyMDA0LTA0LTI4IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZi41LCBtaWIyYy5jb25mLjUuaW4KLCBtaWIyYy5leHRyYWN0LnBsOgoKICAgTmV3IGRvY3VtZW50YXRpb24gZm9yIGhvdyB0byB3cml0ZSBtaWIyYy5jb25mIGZpbGVzLgogICAgIC0gbm90ZSwgbXVjaCBpcyBhdXRvLWV4dHJhY3RlZCBmcm9tIGNvbW1lbnRzIGluIG1pYjJjLgoKMjAwNC0wNC0yOCAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBjb25zdHJ1Y3QgY29tbWVudHMgYmV0dGVyIGZvciBhdXRvLWV4dHJhY3Rpb24gaW50byBhIG1hbnVhbCBwYWdlLgoKMjAwNC0wNC0yOCAxNTo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTmV3IG1pYjJjLmdlbmh0bWwuY29uZiBjb2RlIHRvIGdlbmVyYXRlIGEgSFRNTCBkb2N1bWVudCBmcm9tIGEgTUlCCiAgIGRvY3VtZW50IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYWQuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gbmV3IEBzdGFydHBlcmxAIC8gQGVuZHBlcmxAIGRlZmluaXRpb25zIHRvIGNvbXBsZXRlbHkgb3V0c291cmNlIHNvbWUKICAgICB0ZXh0IHRvIGEgbGFyZ2UgYmxvY2sgb2YgcGVybC4KICAgLSBhZGRlZCBtaWIyY19vdXRwdXQoKSB0byBvdXRwdXQgYSBsaW5lIG9mIHRleHQgdG8gdGhlIHJpZ2h0IHBsYWNlCiAgICAgZnJvbSBhbnl3aGVyZSBpbiBwZXJsIChldmFsZWQpIGNvZGUuCgoyMDA0LTA0LTI4IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBnZXQgVEMgZGVzY3JpcHRpb25zIGZyb20gcGVybAoKMjAwNC0wNC0yOCAxNTozOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4IG91dHB1dCB0byByZXNwZWN0IHRoZSBvdXRwdXQgbGVuZ3RoIHJldHVybmVkIGJ5IHRoZSB2YXJpYWJsZQogICBwcmludGluZyByb3V0aW5lcy4KCjIwMDQtMDQtMjggMTU6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIFNhdmUgdGV4dHVhbCBjb252ZW50aW9uIGRlc2NyaXB0aW9uJ3MKICAgLSBJbXBsZW1lbnQgK2NvbnN0IGNoYXIgICAgICpnZXRfdGNfZGVzY3JpcHRpb24oaW50IHRjX2luZGV4KQoKMjAwNC0wNC0yOCAxNTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNoYW5nZSB2YXJpYWJsZSB0byBjb25zdCB2YXIgdG8gYXZvaWQgd2FybmluZy4KCjIwMDQtMDQtMjcgMTE6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGF1dG8tZW5hYmxpbmcgb2YgLS13aXRoLXBlcmwtbW9kdWxlcyB3aGVuIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgaXMgc2VsZWN0ZWQKCjIwMDQtMDQtMjYgMDM6MjQgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIFJlc3RvcmUgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gJ2Nsb25lRnJvbScgYW5kICdjcmVhdGUnKCtjbG9uZSkKICAgc3ViY29tbWFuZHMuICBGaXggaGFuZGxpbmcgb2YgYmFyZSAnY3JlYXRlJyBzdWJjb21tYW5kIChzaW5jZSBhbgogICB1bmNsb25lZCB1c2VyIGNhbid0IGJlIG1hcmtlZCBhcyBBQ1RJVkUgd2l0aCB0aGUgTmV0LVNOTVAgYWdlbnQpCiAgIERvY3VtZW50IHRoZSBiZWhhdmlvdXIgbW9yZSBjbGVhcmx5LgoKMjAwNC0wNC0yMyAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUHJvdmlkZSBhbiBBUEkgZm9yIHJldHJpZXZpbmcgdGhlIHRhYmxlIGNvbnRhaW5lciAob3IgJ3RhYmxlX2RhdGEnKQogICBzdHJ1Y3R1cmUgZnJvbSB3aXRoaW4gYSBoYW5kbGVyIHJvdXRpbmUuCiAgIFRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciB1c2luZyBnbG9iYWwgdmFyaWFibGVzLgoKMjAwNC0wNC0yMyAwNDoyMCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L3Rvc29jazEuc2g6CgogICBzY3JpcHQgdGhhdCBjb252ZXJ0cyBiYWNrIHRvIHdpbnNvY2sgMSBsaWJyYXJ5LiAgbm8gdW5kbyBpcyBleHBsYWluZWQuCgoyMDA0LTA0LTIyIDE5OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmk6CgogICBjaGFuZ2UgYWxsIERFQlVHVFJBQ0UgdG8gREVCVUdNU1RMKCgidmVyYm9zZTpmdW5jdGlvbl9uYW1lIi4uLgoKMjAwNC0wNC0yMiAwNzoxMyAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBwYXRjaCBmcm9tIEFuZHkgU21pdGg6IFs5MzE2NzNdIFJ1biBzbm1wdHJhcGQgYXMgYSBXaW5kb3dzIHNlcnZpY2U7CiAgIHNsaWYgZGlkIHRoZSBtYWtlZmlsZS9wcm9qZWN0IGZpbGUgdG91Y2hlcy4KCjIwMDQtMDQtMjIgMDc6MTEgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1hdGNoIGFwcGxpY2F0aW9uIG5hbWUgd2l0aCBkaXNwbGF5IG5hbWUgdG8gaW1wcm92ZSBldmVudCBsb2cgbGVnaWJpbGl0eS4KCjIwMDQtMDQtMjIgMDc6MDggIHNsaWYKCiAgICogd2luMzIvOiBzbm1wZC9NYWtlZmlsZS5pbiwgc25tcGRzZGsvTWFrZWZpbGUuaW46CgogICBDaGFuZ2UgaW5jbHVkZSBzZWFyY2ggcGF0aCBmb3Igc25tcGxpYiB0byAiLi5cLi4iIFt3YXMgcG9pbnRpbmcgZWxzZXdoZXJlXS4KCjIwMDQtMDQtMjEgMTk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgcmVtb3ZlIHVudXNlZCB2YXI7IHVwZGF0ZSBoZWxwIG1lc3NhZ2UKCjIwMDQtMDQtMjEgMTk6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLCBtZmQtdG9wLm0yYwo6CgogICB1c2UgIyBpbnN0ZWFkIG9mICogZm9yIHNwZWNpYWwgY2hhciwgc2luY2UgcGVybCBkb2Vzbid0IGxpa2UgdGhlICoKCjIwMDQtMDQtMjEgMTk6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgdW51c2VkIHZhcgoKMjAwNC0wNC0yMSAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgZml4IHF1b3RpbmcgcHJvYmxlbQoKMjAwNC0wNC0yMSAxOTozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIGZvciBub24taW5kZXggbWFwIGZ1bmN0aW9ucwoKMjAwNC0wNC0yMSAxOTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIGdldCByaWQgb2YgbG9vcF9pbml0X2NvbnRleHQsIG1vdmluZyBpdCdzIHdvcmsgaW50byBnZXRfZmlyc3Q7IGZpeCB0ZXN0CiAgIGZvciBjb2RlIGdlbiBmb3IgdHJhbnNpZW50IGRhdGEKCjIwMDQtMDQtMjEgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgZG9uJ3QgdXNlIHVjIGZ1bmN0aW9uLCBhcyBpdCBiYXJmcyBvbiBlbnVtcyB3L2h5cGhlbnMKCjIwMDQtMDQtMjEgMDU6NTMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvOiBBZGQyUGF0aC5uc2ksIFNldEVuVmFyLm5zaSwKICAgICBuZXQtc25tcC5uc2k6CgogICBmcm9tIEFuZHkgU21pdGg6IGluc3RhbGxlciBjb21wb25lbnRzCgoyMDA0LTA0LTIwIDIwOjQ4ICBzbGlmCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgoKICAgZml4IFs4MDczNDldIHVjZC1zbm1wL3ZlcnNpb24uaCB0cmllcyB0byB1c2UgYSBtdXRhYmxlIHZhcmlhYmxlIFsjZGVmaW5lXQoKMjAwNC0wNC0yMCAyMDoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICB1cGRhdGUgc3RhdHVzLCBjaGFuZ2UgYnVpbGQgbWVudSwgYW5kIG1hbnVhbCBidWlsZCBpcHY2IGluc3RydWN0aW9ucy4KCjIwMDQtMDQtMjAgMTg6NTcgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHBhdGNoLWJ1Zy05MTk0NjUtNCBhcHBsaWVkIHRvIGZpeCBbOTE5NDY1XSBidWcgaW4gc3lzdGVtLmMKCjIwMDQtMDQtMjAgMTc6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLCBUMTEwYWdlbnR4Z2V0CiwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwsCiAgICAgVDExM2FnZW50eHRyYXAsIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyNnNubXB2M2dldFNIQUFFUwo6CgogICBOZXcgdGVzdHMgZm9yIEFFUyBzdXBwb3J0CgoyMDA0LTA0LTIwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUwosIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgVXNlIG5ldyBnbG9iYWwgU3YzY29uZmlnIG1hc3RlciBwYXJhbSBzZXR1cAoKMjAwNC0wNC0yMCAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkZXRlcm1pbmUgdGhlIGJlc3QgYXV0aC9lbmNyIHR5cGUgYXZhaWxhYmxlIGFuZCB1c2UgaXQuCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBmb3IgZGlzYWJsZWQgc25tcHYxLzJjIGFuZCBtZDUvZGVzCgoyMDA0LTA0LTIwIDE1OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB1bmJhbGFuY2VkIGlmL2VuZGlmIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wNC0yMCAxMjowOSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9pbmV0X250b3AuYwosIHNubXBsaWIvaW5ldF9wdG9uLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggZXJyb3JzIGJ1aWxkaW5nIElQdjYgc3VwcG9ydCBmb3IgTVNWQysrLCBNaW5HVywgYW5kIEN5Z3dpbi4KCjIwMDQtMDQtMjAgMDc6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IGJyb2tlbiB1c2FnZSBvZiBxdygpCgoyMDA0LTA0LTIwIDA2OjIwICBzbGlmCgogICAqIHdpbjMyL0VYQU1QTEUuY29uZi53aW4zMjoKCiAgIGFkZCBzYW1wbGUgY29uZmlnIGZpbGUKCjIwMDQtMDQtMjAgMDQ6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zQ2FjaGUuYywgbnNEZWJ1Zy5jLAogICAgIG5zTG9nZ2luZy5jOgoKICAgRml4IGludC9sb25nIG1peHVwIGZvciA2NC1iaXQgU29sYXJpcwoKMjAwNC0wNC0yMCAwNDozMyAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wLmM6CgogICBFbnN1cmUgZGlhZ25vc3RpY3Mgd2l0aCBBU04uMSBlbmNvZGluZyBlcnJvcnMKCjIwMDQtMDQtMjAgMDM6NTEgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjbGVhbnVwICJyZWFkaW5nIE1JQiBmaWxlIiB2ZXJib3NlIG1lc3NhZ2UgKGNvbXBpbGVkIE1JQkRJUlMvTUlCUyBub3QgdXNlZnVsL2Rpc2Nlcm5hYmxlKS4KCjIwMDQtMDQtMjAgMDI6NTEgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCB1bnNpZ25lZCBjb21wYXJlIG9mIGxlbiB0byBsaW5lX2xlbiBpbiBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcKCjIwMDQtMDQtMjAgMDI6NDggIHNsaWYKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgYWRkX21pYmRpciB2YXJpYWJsZSAndG9rZW4nIGlzIG5vdCB1c2VkIG9uIHdpbjMyLiAgbW92ZSB0byB1bmRlciB0aGUgaWZkZWYuCgoyMDA0LTA0LTE5IDIzOjQwICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBNYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcjogWzkyODg3Ml0gV2luMzIgYnVpbGQuYmF0IHNubXBjb25mLG1pYjJjLHRyYXB0b2VtYWlsCgoyMDA0LTA0LTE5IDIzOjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUtRklSU1QudHh0LCBSRUFETUUuYnVpbGQud2luMzIudHh0CiwgUkVBRE1FLnR4dCwgaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sCiwgaHRtbGhlbHAvRGV2ZWxvcGVyIEZBUS5odG1sLCBodG1saGVscC9GQVEuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbAosIGh0bWxoZWxwL05ldC1TTk1QLmhoYywgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLAogICAgIGh0bWxoZWxwL25ldC1zbm1wLTQuMi04MDAuanBnLAogICAgIGh0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXBkLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wdHJhcGQuY29uZi53aW4zMi5odG1sLCBzY3JpcHRzL2NyZWF0ZS10b2MKLCBzY3JpcHRzL21hbmRpcjJodG1sLCBzY3JpcHRzL3BvZGRpcjJodG1sLAogICAgIHNjcmlwdHMvcmVhZG1lMmh0bWwsIHNjcmlwdHMvdHh0Mmh0bWw6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTM4MjE0XSBXaW4zMiBkaXN0IGZvbGRlciAtIGJ1aWxkaW5nIGEgYmluYXJ5IHJlbGVhc2UKCjIwMDQtMDQtMTkgMjM6MDUgIHNsaWYKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTE4NDEwXSBTTk1QQ09ORiBkeW5hbWljIHBhdGhzCgoyMDA0LTA0LTE5IDIxOjUyICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY29uZGl0aW9uYWxseSBjb21waWxlIGZvciBwbGF0Zm9ybXMgd2l0aCBzdGF0aWMgb2JqZWN0IGxpc3RzIFtubyBjb25maWd1cmVdLgoKMjAwNC0wNC0xOSAyMTo0OSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgbmV0c3RhdC5oOgoKICAgcmVkdWNlIHdhcm5pbmdzIGZvciB1bmRlY2wnZCBzdHJ1Y3Q7IGRlY2xhcmUgaW5ldDZwcmludCBvbmx5IHdoZXJlIGl0IGlzIG5lZWRlZC4KCjIwMDQtMDQtMTkgMjE6NDEgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG9uJ3QgZXhwb3NlIGdldGFkZHJpbmZvIGlmIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtLgoKMjAwNC0wNC0xOSAyMTozOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBmaXggdW5zaWduZWQgaW50IGNvbXBhcmUKCjIwMDQtMDQtMTkgMjE6MzggIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgdHJhZGUgaW4gYSBzaW5nbGUgdHlwZWRlZiB1aW50OF90IGZvciB0aGUgd2lkZWx5IHVzZWQgdV9jaGFyLgoKMjAwNC0wNC0xOSAyMTozNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBjbGVhbnVwIHdoZW4gZmluaXNoZWQgd2l0aCBhZGRyaW5mbyBzdHJ1Y3R1cmUuCgoyMDA0LTA0LTE5IDIwOjA5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWRkIGluZXRfbnRvcCxpbmV0X3B0b24gdG8gc25tcGxpYiBvYmplY3RzIGZvciB3aW4zMiBidWlsZHMuCgoyMDA0LTA0LTE5IDIwOjA4ICBzbGlmCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIG1vcmUgcm9idXN0IGNoYW5nZSBmb3IgTkVUU05NUF9VU0VfRExMLgoKMjAwNC0wNC0xOSAxODozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaXggI2lmZGVmIGJ1ZwoKMjAwNC0wNC0xOSAxNjo0NyAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGQgY29tbWVudCBmcm9tIE5pZWxzIEIuIHJlYXNvbiBmb3Igd2luMzIgaWZkZWZzIGluIGFkZF9taWJkaXIuCgoyMDA0LTA0LTE5IDE1OjU3ICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBidWlsZC5wbCwgbWliX21vZHVsZV9pbml0cy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgc2VsZWN0aXZlIGJ1aWxkIG9mIElQdjYgdHJhbnNwb3J0IGZvciBNU1ZDKysgYnVpbGQKCjIwMDQtMDQtMTkgMTU6MDggIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdXNtLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywKICAgICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgTmV3IGNvbmZpZ3VyZSBmbGFnczogLS1kaXNhYmxlLW1kNSBhbmQgLS1kaXNhYmxlLWRlcyB0byBjb21wbGV0ZWx5IHJlbW92ZSBzdXBwb3J0IGZvciB0aGUgbGVzcyB0cnVzdGVkL3NlY3VyZSBhbGdvcml0aG1zCgoyMDA0LTA0LTE5IDEzOjAxICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgZGVidWcgc3RhdGVtZW50IGFmdGVyIHZhcmlhYmxlIGRlZmluaXRpb24uCgoyMDA0LTA0LTE5IDEyOjM2ICBzbGlmCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIHVzZSBhIG1vcmUgcm9idXN0IHNlYXJjaCBmb3IgdW5kZWYgVVNFX09QRU5TU0wuCgoyMDA0LTA0LTE5IDA4OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9taWIuYzoKCiAgIE1vcmUgZmxleGlibGUgb3V0cHV0IG9mIGhleCBzdHJpbmdzIC0gZG9uJ3QgaGFyZGNvZGUgMTYtb2N0ZXRzLXBlci1saW5lCgoyMDA0LTA0LTE5IDA3OjU4ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgY29tbWVudCBvdXQgdmFyaWFibGVzIHdoaWNoIGFyZSBub3QgdXNlZC4KCjIwMDQtMDQtMTkgMDc6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhZGQgYWxhcm0gdG8gYWdlIGFkZHIgY2FjaGUgZXZlcnkgNSBtaW47IGFkZCBkZWJ1ZyBmb3IgYXNwLT5yZXFpbmZvCgoyMDA0LTA0LTE5IDA3OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSAnc2NoZWQndWxlZCB0aW1lb3V0IHByb2Nlc3Npbmc7IG1vdmUgYWRkciBjYWNoZSBhZ2luZyBpbnRvIGFsYXJtOwogICBjaGFuZ2UgZGVhZnVsdCB0aW1lb3V0IGZyb20gVElNRVRJQ0sgdG8gTE9OR19NQVgKCjIwMDQtMDQtMTkgMDc6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgYWRkIHRpbWVvdXQgZGVidWdnaW5nCgoyMDA0LTA0LTE5IDA3OjM2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDQtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXhlZCBhIHYxL3YyYyBleGNsdXNpb24gYnVnCgoyMDA0LTA0LTE2IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE91dHB1dCBtZXNzYWdlIG5vdyBjb250YWlucyB2ZXJzaW9ucyBzdXBwb3J0ZWQKCjIwMDQtMDQtMTYgMTY6MzcgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHYzLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsCiwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsCiAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLAogICAgIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwCjoKCiAgIE5ldyBmbGFncyBmb3IgY29uZmlndXJlOiAtLWRpc2FibGUtc25tcHYxIC0tZGlzYWJsZS1zbm1wdjJjCgoyMDA0LTA0LTE2IDE2OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICByZW1vdmUgZHVwbGljYXRlIGFuZCBjb25mbGljdGluZyBWQUNNIGVudHJ5LiAgSXQncyBhbWF6aW5nIHRoaXMgaGFzbid0CiAgIGNhdXNlcyBmYWxzZSBwcm9ibGVtcyBiZWZvcmUgbm93LgoKMjAwNC0wNC0xNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBhZGRyZXNzIGlzc3VlcyBub3RlZCBieSBkYXZlIG9uIGNvZGVycwoKMjAwNC0wNC0xNiAxMjo0MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIG5ldyAnbm8gY2hlY2snIGRlYnVnIG1hY3JvL2Z1bmN0aW9ucwoKMjAwNC0wNC0xNSAxNDo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBoZWFkZXIgZm9yIGFycCBkYXRhIGFjY2VzcwoKMjAwNC0wNC0xNSAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBWYXJpYWJsZXMgdXNlZCBmb3IgcmV0dXJuaW5nIHZhbHVlcyBuZWVkIHRvIGJlICdzdGF0aWMnLiAgIChvb3BzISkKCjIwMDQtMDQtMTUgMDU6NDcgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBNb3ZlIHRoZSBkZWZpbml0aW9uIG9mICdpcGFkZHJfcmV0dXJuJyB0byB0aGUgKG9ubHkpIHJvdXRpbmUgd2hlcmUKICAgaXQncyBhY3R1YWxseSB1c2VkLiAgKFNlZSBCdWcgIzkzNDQyMikKCjIwMDQtMDQtMTUgMDU6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgJzsnIGluIG5vdGlmaWNhdGlvbiBnZW5lcmF0aW9uIHJvdXRpbmUgKEJ1ZyAjODk1ODAwKQoKMjAwNC0wNC0xNSAwNToxNCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIChCdWcgIzkzNDQxMSkKCjIwMDQtMDQtMTQgMjE6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaXhlZCBjdXQtbi1wYXN0ZSB0eXBvcyBwb2ludGVkIG91dCB0byBtZSBieSBNaWtlIFMuCgoyMDA0LTA0LTE0IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSBzdXBwb3J0IGxvY2FsL21hc3RlciBTTk1QdjMga2V5IHNldHRpbmdzIGRpcmVjdGx5CiAgIC0gaGF2ZSBnZXR0YWJsZSgpIHBhcnNlIGluZGV4ZXMgb3V0IG9mIHRoZSBPSUQgd2hlbiBOZXRTTk1QOjpPSUQgaXMgYXZhaWxhYmxlCiAgICAgLSBub3QgZXh0ZW5zaXZlbHkgdGVzdGVkIHlldC4KCjIwMDQtMDQtMTQgMTU6NDEgIHNsaWYKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBTcGVjaWZ5IGNvcnJlY3QgZGVmYXVsdCB2YWx1ZSBmb3IgTUlCRElSUy4KCjIwMDQtMDQtMTQgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIFN1cHBvcnQgZm9yIExpbnV4IDIuNiBpbmNsIFNvZnRJUlEgQ1BVIHN0YXRlCgoyMDA0LTA0LTE0IDE1OjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBPdmVyaGF1bCB0byByZW1vdmUgZml4ZWQgdGFibGUgc2l6ZSBhbmQgc3VwcG9ydCBMaW51eCAyLjYga2VybmVsCgoyMDA0LTA0LTE0IDE1OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfc29sYXJpczIuYwo6CgogICBDbGVhbiB1cCBjb21tZW50cyBtaXNoYW5kbGVkIG55IGluZGVudAoKMjAwNC0wNC0xNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcHYzLmM6CgogICBBZGRlZCBzdXBwb3J0IHRvIHRoZSBjcmVhdGVVc2VyIGRpcmVjdGl2ZSBmb3Igc3BlY2lmeWluZyBtYW51YWwgbG9jYWwKICAgb3IgbWFzdGVyIGtleXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBwYXNzd29yZCBkZXJpdmF0aW9ucy4KCjIwMDQtMDQtMTQgMTM6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIG51bGwgY2hlY2sgYmVmb3JlIHVzaW5nIHBvaW50ZXIKCjIwMDQtMDQtMTQgMTM6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBBZGRlZCBzdXBwb3J0IGZvciBuZXcgc25tcC5jb25mIHRva2VucyB0byBkaXJlY3RseSBzZXQgU05NUHYzIGhleCBrZXlzCgoyMDA0LTA0LTE0IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBuZXcgc25tcC5jb25mIHRva2VucyB0byBkaXJlY3RseSBzZXQgU05NUHYzIGhleCBrZXlzCgoyMDA0LTA0LTE0IDA5OjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wdjMuYywgbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGRlZCBzdXBwb3J0IGZvciBkaXJlY3RseSBzcGVjaWZ5aW5nIFNOTVB2MyBoZXgga2V5cyB1c2luZyBuZXcgZmxhZ3MgKC0zW21Na0tdKQoKMjAwNC0wNC0xNCAwODoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0xNCAwODoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgZGVidWc7IHNpbXBsaWZ5IHR3byBjb25mbGljdCB0ZXN0cyBpbnRvIG9uZTsgcmV2ZXJ0IGNvbmZsaWN0IG1lc3NhZ2VzCiAgIGJhY2sgdG8gd2FybmluZywgYnV0IGFkZCBvYm5veGlvdXMgd2FybmluZyB0byBzdW1tYXJ5IGNhY2hlCgoyMDA0LTA0LTE0IDAzOjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQSBub24temVybyByZXBlYXQgY291bnQgd2l0aCBubyBub24tcmVwZWF0aW5nIHZhcmJpbmRzIGNvbmZ1c2VzIHRoZQogICBwZXJsICdidWxrd2Fsaycgcm91dGluZS4gICBUaGlzIHNob3VsZCByZWFsbHkgYmUgZml4ZWQgcHJvcGVybHksCiAgIGJ1dCB0aGlzIGF0IGxlYXN0IGFsbG93cyB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgdG8gcnVuIHN1Y2Nlc3NmdWxseS4KCjIwMDQtMDQtMTQgMDM6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBTdXBwb3J0IHBlci1sb2doYW5kbGVyIHNodXRkb3duIHByb2Nlc3NpbmcgaW4gJ3NubXBfZGlzYWJsZV9sb2cnLgogICBUaGlzIHNob3VsZCBhbGxvdyBsb2dmaWxlcyB0byBiZSByb3RhdGVkIHByb3Blcmx5LgoKICAgSG93ZXZlciwgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGUgJ2VuYWJsZWQnIGZsYWcgaXMgYmVpbmcgdXNlZAogICBjb25zaXN0ZW50bHksIHBhcnRpY3VsYXJseSBieSBvdGhlciBzdHlsZXMgb2YgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICBTb21lIGNsZWFudXAgd29yayBpcyBwcm9iYWJseSBuZWVkZWQuCgoyMDA0LTA0LTE0IDAzOjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIFN1cHBvcnQgIjAxOjAyOjAzOjA0OjA1OjA2IiBzdHlsZSBoZXggb3V0cHV0IC0gaS5lLiBsZWFkaW5nIDAncwogICBvbiBzaW5nbGUtZGlnaXQgaGV4IHZhbHVlcy4gIChTdWdnZXN0ZWQgYnkgR2xlbm4gQW5kcmV3cykKCjIwMDQtMDQtMTQgMDM6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIElkZW50aWZ5IHdoaWNoIE1JQiBtb2R1bGVzIGFyZSBwcmVzZW50IGluIHRoZSBNSUJGSUxFUyBsaXN0IGJlZm9yZQogICBzdGFydGluZyB0byBsb2FkIGFueXRoaW5nLiAgIFRoaXMgYWxsb3dzIElNUE9SVCBzdGF0ZW1lbnRzIHRvIHdvcmsKICAgY29ycmVjdGx5LCByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBpbiB3aGljaCBzdWNoIGZpbGVzIGFwcGVhci4KCjIwMDQtMDQtMTQgMDI6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYWl4LmgsIGJzZC5oLCBjeWd3aW4uaAosIGR5bml4LmgsIGlyaXguaCwgbWluZ3czMi5oLCBvc2Y1LmgKLCBzdW5vcy5oLCBzdnI1LmgsIHN5c3YuaCwgdWx0cml4NC5oCjoKCiAgIEluY2x1ZGUgImdlbmVyaWMuaCIgdXNpbmcgdGhlIGZ1bGwgbmFtZSwgcmF0aGVyIHRoYW4KICAgcmVseWluZyBvbiB0aGUgaW5jbHVkZSBwYXRoIGJlaW5nIHNldCBjb3JyZWN0bHkuCiAgIChTdWdnZXN0ZWQgYnkgTmFnYXJhaiBOYXJheWFuYXN3YW15KQoKMjAwNC0wNC0xNCAwMjo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIENhdGNoIFNOTVB2MiBleGNlcHRpb24gdmFsdWVzLgoKMjAwNC0wNC0xNCAwMjozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIEF2b2lkIGNyYXNoaW5nIHRoZSBhZ2VudCB3aGVuIGJhY2tpbmcgb3V0IG9mIGFuIGludmFsaWQgU0VUIHJlcXVlc3QuCgoyMDA0LTA0LTE0IDAyOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBBbGxvdyAnbW9uaXRvcicgZGlyZWN0aXZlcyB0byBzcGVjaWZ5IGEgc2luZ2xlIGluc3RhbmNlIHJhdGhlciB0aGFuCiAgIGFsd2F5cyBtb25pdG9yaW5nIGFsbCByb3dzLgoKMjAwNC0wNC0xNCAwMjoyOCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIE1JQnMsIGFkdmljZSBvbiBydW5uaW5nIGFzIG5vbi1yb290CiAgIGFuZCBicmluZyBpbnRvIGxpbmUgd2l0aCA1LjEueCBicmFuY2ggdmVyc2lvbi4KCjIwMDQtMDQtMTMgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgdHdlYWsgYXNzZXJ0IGNvbmRpdGlvbiB0byBhbGxvdyBmb3IgdmFsaWQgYnV0IGV4cGlyZWQgY2FjaGUKCjIwMDQtMDQtMTMgMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBmaXggY29tbWVudCB0eXBvCgoyMDA0LTA0LTEzIDEyOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIuaCwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0TmV0VG9NZWRpYVRhYmxlLm0yZAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIG5ldyBpbmV0TmV0VG9NZWRpYVRhYmxlCgoyMDA0LTA0LTEzIDEyOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogYXJwLmgsIGFycF9jb21tb24uYwosIGFycF9saW51eC5jLCBpcGFkZHJlc3NfaW9jdGwuaDoKCiAgIG5ldyBmaWxlcwoKMjAwNC0wNC0xMyAxMTo0NCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNC0xMyAxMTo0MyAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIHJvdXRlIGVudHJpZXMKCjIwMDQtMDQtMTMgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIGludGVyZmFjZSBlbnRyaWVzCgoyMDA0LTA0LTEzIDExOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGRlZmF1bHQgYWRtaW4vb3BlciBzdGF0dXMgdG8gdXAKCjIwMDQtMDQtMTMgMTE6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBpbnZlcnQgb3JkZXIgZm9yIGNhY2hlIHJlZnJlc2g7IHNldCBuZXcgcHJlbG9hZCBmbGFnIG9uIGNhY2hlIHRvIGluaXQgaWZJbmRleAogICBlbnVtIGxpc3QgKHVzZWQgYnkgb3RoZXIgbW9kdWxlcyk7IHNldCBvcGVyX3N0YXR1cyBkb3duIGlmIGludGVyZmFjZSB2YW5pc2hlczsKICAgbW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgY29tcGFyaW5nL3N3aXBpbmcgcG9pbnRlcnMKCjIwMDQtMDQtMTMgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgcmVtb3ZlIHVudXNlZCBtYXBwaW5nIGRlZmluZXMKCjIwMDQtMDQtMTMgMTE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICByZW1vdmUgdW51c2VkIG1hcHBpbmcgZnVuY3Rpb25zCgoyMDA0LTA0LTEzIDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgcmV2ZXJ0IGV4dGVybmFsIGRlZmludGlvbiBjaGFuZ2UKCjIwMDQtMDQtMTMgMTE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIGlwYWRkcmVzc19lbnRyeQoKMjAwNC0wNC0xMyAxMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy86IGlwYWRkcmVzc19jb21tb24uYywKICAgICBpcGFkZHJlc3NfaW9jdGwuYywgaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0d2VhayBpbnRlcm5hbCBpbmRleCB1c2FnZTsgdXNlIG5ldC1zbm1wIGlmSW5kZXggYmFzZWQgb24gbmFtZSBpbnN0ZWFkIG9mIGlvY3RsCiAgIGlmX2luZGV4OyBhZGQvdHdlYWsgY29tbWVudHMKCjIwMDQtMDQtMTMgMTE6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIG5ldyBmbGFnIGZvciBwcmVsb2FkaW5nIGNhY2hlOyBtb3ZlIGNhY2hlIGxvYWQvZnJlZSB0byBzdGF0aWMgc3Vicm91dGluZXMgZm9yCiAgIGNvZGUgcmV1c2U7IGFkZCBzb21lIGRlYnVnIG1zZ3MKCjIwMDQtMDQtMTMgMTE6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIGRlZmluZXMgZm9yIGFkbWluL29wZXIgc3RhdHVzIGVudW1zCgoyMDA0LTA0LTEzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZW50cmllcyBmb3IgaGF2ZV9ta3RpbWUgbmFkIGhhdmVfc3RpbWUKCjIwMDQtMDQtMTMgMTA6MzEgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHZlcnNpb24gY2hhbmdlLgoKMjAwNC0wNC0xMCAwNTo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDbG9uaW5nIGEgdXNlciByZXF1aXJlcyB1c2luZyB0aGUgdXNtVXNlclN0YXR1cyBjb2x1bW4gb2JqZWN0LgoKMjAwNC0wNC0xMCAwNTo1NyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZyb20gbGlzdCBvZiBkZWZhdWx0IE1JQiBtb2R1bGVzLgoKMjAwNC0wNC0wOSAxODo1MCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggdHdvIFNOTVBfRlJFRSBjYW5kaWRhdGVzIGluIHRkb21haW5fdW5yZWdpc3RlciwgY2xlYXJfdGRvbWFpbl9saXN0LgoKMjAwNC0wNC0wOSAxODo0NyAgc2xpZgoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgZml4IGEgc2lnbiBjb21wYXJlIHdhcm5pbmcuCgoyMDA0LTA0LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIElQdjYgdHJhbnNwb3J0cyB0byBtc3ZjKysgYnVpbGRzLgoKMjAwNC0wNC0wOSAxODoyNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9nZXQudDoKCiAgIGRvbid0IHJlcXVpcmUgaW50ZXJmYWNlIGxheWVyIG9mIGFnZW50IGluIG9yZGVyIHRvIHBhc3MgdGhlc2UgdGVzdHMuCgoyMDA0LTA0LTA5IDE4OjI0ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIHVuZG8gbGFzdCBjaGFuZ2UgdG8gcmVzdG9yZSBwcm9wZXIgY29uc3RydWN0aW9uIG9mIFBlcmwgbW9kdWxlcy4KCjIwMDQtMDQtMDggMjE6MTEgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgbWF0Y2ggc25tcHNldCBvdXRwdXQgdG8gZml4IGJ1ZyBbOTE5MjY3XSB0ZXN0bnVtIDM0IFQxMjJwcm94eXNldGZhaWwgZmFpbGluZwoKMjAwNC0wNC0wOCAyMDoyNSAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgY2hhbmdlIHVzYWdlIGNvbW1lbnQgZm9yICItWE0iIHRvIG1hdGNoIGl0cyBmdW5jdGlvbgoKMjAwNC0wNC0wOCAyMDoxOSAgc2xpZgoKICAgKiB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBkbyBub3QgYnVpbGQgc25tcHRyYXBkLm9iaiBhcyBwYXJ0IG9mIG5ldHNubXB0cmFwZCBsaWJyYXJ5IChNU1ZDKysgYnVpbGQpLgoKMjAwNC0wNC0wOCAyMDoxNyAgc2xpZgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgYWRkIHRhYmxlX2NvbnRhaW5lci5vYmogdG8gbGlzdCBvZiBvYmplY3RzIHRvIGJlIGJ1aWx0IHVzaW5nIE1TVkMrKwoKMjAwNC0wNC0wOCAyMDoxMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0wOCAyMDowNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgYXBwbHkgbmJhJ3MgRmViLjIwMDQgcHV0dXRsaW5lIGZpeGVzIHRvIG1haW4gYnJhbmNoLgoKMjAwNC0wNC0wOCAxNTo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgVXNlIC1MZiBhbmQgLUxmIGluIHRoZSBtYWluIHRydW5rIHRvIG1hdGNoIHRoZSBwcm9wZXIgY29kZSB1c2UKCjIwMDQtMDQtMDggMTM6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTdXBwb3J0IGZvciB0aGUgLXJ3IGZsYWcgdG8gdGhlIG92ZXJyaWRlIHRva2VuIGFsbG93aW5nIHJlYWQvd3JpdGUKICAgYWNjZXNzIHRvIHRoZSBib2d1cyBtaWIgb2JqZWN0cy4KCjIwMDQtMDQtMDggMTM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBlbnVtIGxpc3RzIGZvciB1bnNpZ25lZCBhbmQgYml0IHN0cmluZ3MgdG8gcmVtb3ZlIGR1cGxpY2F0ZSB0eXBlcwoKMjAwNC0wNC0wNyAxOTo1MCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoOgoKICAgcGF0Y2ggWzkxNzY0Nl0gdGVzdCB1c2luZyBpbnN0YWxsZWQgTUlCcyBmaXJzdAoKMjAwNC0wNC0wNyAxNTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlnLmluCgoyMDA0LTA0LTA3IDE1OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIGxvdHMgb2YgZGVidWcgdG8gbW9kdWxlIHByb2Nlc3Npbmc7IHVzZSBuZXcgdmFyIGZvciBleGNsdWRlZCBtb2R1bGVzOyBtYWtlCiAgIGNvbmZsaWN0cyBlcnJvcnMgaW5zdGVhZCBvZiB3YXJuaW5nczsgZG9uJ3QgdHJ5IHRvIHJlLXByb2Nlc3MgYSBzcmMgb25seSBtb2R1bGUKCjIwMDQtMDQtMDcgMTU6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICB0eXBvIGluIGNvbW1lbnRzCgoyMDA0LTA0LTA3IDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSBnZW4gcmVsZWFzZSB1bmRvIGNvZGUgaWYgc2V0dGFibGUKCjIwMDQtMDQtMDcgMTU6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICB0d2VhayBjb21tZW50cwoKMjAwNC0wNC0wNyAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlOgoKICAgZmlsZXMgdG8gaWdub3JlCgoyMDA0LTA0LTA3IDE1OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIHVudXNlZC91bmRlZmluZWQgdmFycwoKMjAwNC0wNC0wNyAxNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmg6CgogICBmaXggY29uZmlnX3JlcXVpcmUgcGF0aHMKCjIwMDQtMDQtMDcgMTU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBjb25maWdfZXhjbHVkZSBtaWJJSS9pbnRlcmZhY2VzOyB0d2VhayBleHRlcm5hbCBvaWQgZGVmCgoyMDA0LTA0LTA3IDE1OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIGlmVGFibGUKCjIwMDQtMDQtMDcgMTU6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZToKCiAgIGZpbGVzIHRvIGlnbm9yZQoKMjAwNC0wNC0wNyAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcEFkZHJlc3NUYWJsZS5tMmQsIGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgbmV3IE1GRCBpcEFkZHJlc3NUYWJsZQoKMjAwNC0wNC0wNyAxNTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBpcGFkZHJlc3MgZGF0YSBhY2Nlc3MgKHY0ICYgdjYpCgoyMDA0LTA0LTA3IDE1OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIuaCwgaXAtbWliL2lwQWRkcmVzc1RhYmxlLmg6CgogICBuZXcgY29uZmlnIG1vZHVsZXMKCjIwMDQtMDQtMDcgMDY6MzggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgYSBzdXBlcmZsdW91cyB0cmFpbGluZyBjb21tYSAoYnVnICM5MzA3MDgpCgoyMDA0LTA0LTA3IDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJvdXRpbmVzIHRvIGluZGljYXRlIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIGRhdGEtaGVscGVyLWJhc2VkIHRhYmxlCgoyMDA0LTA0LTA3IDAyOjEzICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENBUFRVUkUgcmV0dXJucyBleGl0IGNvZGUgZnJvbSBjb21tYW5kIHRoYXQgd2FzIHJ1bi4KCjIwMDQtMDQtMDYgMjM6MzMgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgcGF0Y2ggWzkzMDg4MF0gZG9uJ3QgYnVpbGQgQ01VIGNvbXBhdGlibGUgZnVuY3Rpb25zIG9uIHdpbjMyCgoyMDA0LTA0LTA2IDIzOjE5ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvbGlic2RsbC5kc3cKLCB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdywKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAo6CgogICBwYXRjaCBbOTE1NjE1XSBQZXJsIFRyYXBSZWNlaXZlciBkb2VzIG5vdCBjb21waWxlIG9uIFdpbjMyIE1TVkMKICAgYWxzbyBmaXhlcyBidWcgWzg5NjAxMl0gd2luMzIgUGVybCBidWlsZCBkaWVzIGF0IFRyYXBSZWNlaXZlcgoKMjAwNC0wNC0wNiAyMTo1OSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBmaXggWzkwNzcxNl0gd2luMzIgYWdlbnQgc2hvd3MgdGNwLHVkcCBjb25uZWN0IE9JRHMgaW4gaG9zdCBieXRlIG9yZGVyCgoyMDA0LTA0LTA2IDE3OjM1ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMjJdIHRlc3Qgc2hvdWxkIGFsbG93IHRpbWUgZm9yIHByb2dyYW1zIHRvIHNldHRsZQoKMjAwNC0wNC0wNiAxNzozNCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTE0XSBwcmVzZXJ2ZSB0ZXN0IHJlc3VsdCB3aGVuIHN0b3BwaW5nCgoyMDA0LTA0LTA2IDE3OjMyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMDVdIGJldHRlciBwaWQgY2hlY2sKCjIwMDQtMDQtMDYgMTA6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHN0ZGludCwgaWYgYXZhaWxhYmxlCgoyMDA0LTA0LTA2IDA5OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBSZWdpc3RlciBuZXcgQVBJIG1vZHVsZXMgdXNpbmcgdGhlIGRlZmF1bHQgcHJpb3JpdHkgKDEyNykKICAgYW5kIHByb3ZpZGUgYW4gQVBJIGZvciB1bnJlZ2lzdGVyaW5nIHRoZW0gYWdhaW4uCgoyMDA0LTA0LTA1IDE2OjA0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJldmVyc2UgcGF0Y2gtdGVzdC1kZXByZWNhdGVkLW9wdGlvbnMgdG8gcGVybWl0IHRlc3RpbmcgdmVyc2lvbnMgYmVmb3JlIDUuMS4KCjIwMDQtMDQtMDQgMTE6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvbid0IHNoYXJlIGNhY2hlIHcvaW5ldENpZHJSb3V0ZSwgd2hpY2ggY2FuJ3Qgd29yaywgc2luY2UgaW5kZXhlcyBkb24ndCBtYXRjaAoKMjAwNC0wNC0wNCAxMToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmgsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBzaGFyZSBkYXRhIHN0cnVjdHVyZXMvY2FjaGUgdy9pZlRhYmxlIGlmIGVuYWJsZWQKCjIwMDQtMDQtMDQgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBkZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZAosIGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGludGVyZmFjZSBkYXRhIGFjY2VzcwoKMjAwNC0wNC0wNCAxMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgdXBkYXRlIHRvIHN1cHBvcnQgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA0LTA0LTA0IDEwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIuaDoKCiAgIGFkZCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDQtMDQtMDQgMTA6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaCwgLmN2c2lnbm9yZSwKICAgICBkZWZhdWx0LXRhYmxlLWluZXRDaWRyUm91dGVUYWJsZS5tMmQ6CgogICBuZXcgaW5ldENpZHJSb3V0ZVRhYmxlLiBvbmx5IGRvZXMgaXB2NCBzbyBmYXIuCgoyMDA0LTA0LTA0IDA3OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICBzaGFyZSBjYWNoZSB3L2luZXRDaWRyUm91dGVUYWJsZSwgaWYgaXQgaXMgZW5hYmxlZAoKMjAwNC0wNC0wNCAwNzowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTA0IDA3OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IG1pc3NlZCBjYXNlIGZvciBhbGxvY2F0ZSBwYXJtOyByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNC0wNCAwNzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIGZpeCBtaXNzZWQgY2FzZSBmb3IgYWxsb2NhdGUgcGFybQoKMjAwNC0wNC0wNCAwNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBhZGQgZGVidWcKCjIwMDQtMDQtMDMgMDU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGZpeCBidWcgOTI4NDgxIC0gY29uc2lzdGVuY3kgaW4gdmFjbV92YXJzLmMKCjIwMDQtMDQtMDIgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIGNvbmZpZ3VyZV9yZXF1aXJlIGZpbGVzIGZvciBpbmRpdmlkdWFsIG1vZHVsZXMKCjIwMDQtMDQtMDIgMTI6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgZGVmYXVsdCB0byBuZXRzbm1wX2luZGV4IGNvbXBhcmUgaWYgbm8gY29tcGFyZSBwcm92aWRlZAoKMjAwNC0wNC0wMiAxMjo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjbXVfY29tcGF0LmMsIHNubXBfdmVyc2lvbi5jOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAoKMjAwNC0wNC0wMiAxMjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIG5ldyBzdGF0aWMgbG9jayB2YXIgdG8gZGV0ZWN0IHdoZW4gYSBjYWxsYmFjayBpcyBhZGRlZC9yZW1vdmVkIGR1cmluZyBjYWxsYmFjawogICBwcm9jZXNzaW5nOyBkb24ndCBjYWxsIGZyZWUgb24gY2xpZW50IGFyZyBvZiBjYWxsYmFjayB3L05VTEwgY2FsbGJhY2sgcHRyCiAgIChpLmUuIG9uZSB0aGF0IHdhcyByZW1vdmVkIHdoaWxlIGNhbGxiYWNrcyB3ZXJlIGJlaW5nIHByb2Nlc3NlZCkKCjIwMDQtMDQtMDIgMTI6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBtYWtlIHRlbXAgZGlyIG5hbWVzIGNvbmZpZ3VyZWFibGUsIHcvZGVmYXVsdHMgbm93IHByZWZpeGVkIHcvJy4nOyB0d2VhayBkaWZmCiAgIGV4Y2x1ZGUgcGF0dGVybnM7IG90aGVyIG1pc2MgdHdlYWtzCgoyMDA0LTA0LTAyIDEyOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBmaXggbWFjcm9zIHRvIGJlIHNhZmVseSB1c2VhYmxlIGFzIGEgc2luZ2xlIHN0YXRlbWVudDsgbmV3IFNOTVBfU1dJUEVfTUVNIG1hY3JvCgoyMDA0LTA0LTAyIDA4OjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyBjb25maWcuaC5pbiB0byBtYXRjaCBhY2NvbmZpZy5oIChhdXRvaGVhZGVyIGhhZG4ndCBiZWVuIHJ1biBpbiBhIHdoaWxlKToKICAgICAgcGNrcywgY3JvcHR5a2ksIGNvbmZpZ19leGNsdWRlLCBhZ2VudHggZG9tYWluIHNvY2tldCwgY3Bwd3JhcCBtYWNybwoKMjAwNC0wNC0wMiAwODowNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcmVkdWNlIHJlZHVuZGFuY3kKCjIwMDQtMDQtMDIgMDg6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBhZGQgYXNzZXJ0cyBvbiBpbGxlZ2FsIGhhbmRsZXIgY2FsbHMKCjIwMDQtMDQtMDIgMDY6NDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXggaW5jbHVzaW9uIG9mIHV0aWxpdGllcy9leGVjdXRlLmgsIHNpbmNlIFJvYmVydCdzIE1ha2VmaWxlIGNoYW5nZXMKICAgYnJva2UgdGhlIHBhdGggbG9va3Vwcy4KCjIwMDQtMDQtMDEgMjI6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWFrZSBnZXR0YWJsZSB1c2UgZ2V0YnVsayB3aGVuIHBvc3NpYmxlCgoyMDA0LTA0LTAxIDE5OjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA0LTAxIDE5OjMyICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtb3ZlIFZQQVRIIHRvIGluZGl2aWR1YWwgTWFrZWZpbGUuaW4gZmlsZXM7IG5ldyBtYWtlZmlsZWNoZWNrIHRhcmdldCB0byBjaGVjawogICBmb3IgZ251IG1ha2UgY29uc3RydWN0czsgbmV3ICdjaGVja3MnIHRhcmdldCBydW5zIGNoZWNrcyBmb3IgY29tbWVudC9tYWtlZmlsZQoKMjAwNC0wNC0wMSAxOToyOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBlbXB0eSBkZWZpbmUgZm9yIGNvbmZpZ19leGNsdWRlOyBuZXcgTkVUU05NUF9DUFBfV1JBUCBtYWNyb3MKCjIwMDQtMDQtMDEgMTk6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXcgY29uZmlnX2V4Y2x1ZGU7IGNvbmZpZ19yZXF1aXJlIHR3ZWFrczoKICAgICAgIGRvbid0IHByb2Nlc3MgdGhlIHNhbWUgbW9kdWxlIHR3aWNlOyBhbGxvdyBjIGZpbGUgdy9ubyBoZWFkZXI7IG1vdmUKICAgICAgIG1vZHVsZSBsaXN0IGFkZCwgY29uZmlnX2xvYWRfbWliIGNoZWNrIGluc2lkZSBoZWFkZXIgY29uZGl0aW9uYWwKCjIwMDQtMDQtMDEgMTg6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBuZXcgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0wMSAxODozNyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICByZXdvcmsgVlBBVEggc28gcGVvcGxlIHdpdGggR05VIG1ha2UgY2FuIHNoYXJlIGEgc291cmNlIGRpcmVjdG9yeSBmb3IgbXVsdGlwbGUKICAgYnVpbGQgKGluY2x1ZGluZyBvbmUgaW4gdGhlIHNvdXJjZSBkaXJlY3RvcnkpOyBjb21wbGV0ZWx5IHJld29yayBDUFBGTEFHUyBmb3IgYQogICBjb21tb24sIGNvbnNpc3RlbnQgb3JkZXIgKHRoYXQgaXMgYWxzbyBjb3JyZWN0IGZvciBub24gc291cmNlZGlyIGJ1aWxkcykKCjIwMDQtMDQtMDEgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBuZXcgZmlsZQoKMjAwNC0wNC0wMSAxODoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQsIGlwQ2lkclJvdXRlVGFibGUuYwosIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIGZvciBtZmQgZ2VuZXJhdGVkIGNvZGUgY2hhbmdlczsgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmY7CgoyMDA0LTA0LTAxIDE4OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmY7IGFkZCB0b2RvIGNvbW1lbnRzCgoyMDA0LTA0LTAxIDE4OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLCBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZQosIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlOgoKICAgbmV3IGN2c2luZ29yZSBmaWxlcwoKMjAwNC0wNC0wMSAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmYKCjIwMDQtMDQtMDEgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBuZXcgZGF0YSBhY2Nlc3MgZmlsZXMKCjIwMDQtMDQtMDEgMTg6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsIHJvdXRlLmg6CgogICBtb3ZlIGNvbmZpZ19yZXF1aXJlIHN0dWZmIGJhY2sgaW50byBtaWJncm91cCwgc2luY2UgdGhhdCdzIHRoZSBvbmx5IHBsYWNlCiAgIGNvbmZpZ3VyZSB3aWxsIGxvb2sgZm9yIHRoZW0KCjIwMDQtMDQtMDEgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgY29sb2lkIHNldHRpbmcgKHdhcyBkb25lIGFib3ZlIGFzIHdlbGwpCgoyMDA0LTA0LTAxIDE2OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBbm90aGVyIGl0ZXJhdG9yIGZpeDogaW5pdGlhbGl6ZSBhIHZhcmlhYmxlIHByb3Blcmx5IGZvciBldmVyeSByZXF1ZXN0CgoyMDA0LTA0LTAxIDE2OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLCByb3V0ZS5oOgoKICAgbmV3IGRhdGEgYWNjZXNzIGhlYWRlcnMKCjIwMDQtMDQtMDEgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEFub3RoZXIgaXRlcmF0b3IgcHJvYmxlbSB3aXRoIGdldGJ1bGsnczogbWFrZSBpdCBub3Qgc2V0IFJFVFJZIGlmIGl0cyBnb2luZyB0byBiZSBvdXQgb2Ygc2NvcGUgbmV4dCB0aW1lIGFyb3VuZCBzdGlsbCAoPiBtYXhjb2wpCgoyMDA0LTA0LTAxIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIFZhcmlvdXMgcGF0Y2hlcyB0byBmaXggaXRlcmF0b3IgcHJvYmxlbXMgd2l0aCBtdWx0aXBsZSB2YXJiaW5kcy4KCjIwMDQtMDMtMzEgMTI6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgUHJvcGVybHkgc2V0IHRoZSBhdXRvX25leHQgZmxhZy4KCjIwMDQtMDMtMzAgMjE6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQSBuZXcgaW1wbGVtZW50YXRpb24gb2YgZ2V0dGFibGUgdGhhdCB1c2VzIGJldHRlciBzdHJ1Y3R1cmVkIEdFVE5FWFQKICAgcGFja2V0cyBmb3IgZmFzdGVyIHJldHJpZXZhbCBhY3Jvc3Mgc2xvdyBsaW5rcy4KICAgICAtIGdldGJ1bGsgbm90IHlldCB1c2VkLCBidXQgc2hvdWxkIGJlLgoKMjAwNC0wMy0zMCAyMToxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gbWlub3IgY2hhbmdlcyB0byB0aGUgY3ZzMmNsIGNvbW1hbmQgbGluZSBmbGFncwoKMjAwNC0wMy0zMCAyMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaDoKCiAgIGNoYW5nZSBzZXRfc29sYXJpc190aW1lIHRvIG5zX3NldF90aW1lIGFuZCBlbmFibGUgaXQgb24gYW55CiAgIGFyY2hpdGVjdHVyZSB0aGF0IHN1cHBvcnRzIG1rdGltZSgpIGFuZCBzdGltZSgpCgoyMDA0LTAzLTMwIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBzdGltZSBmdW5jdGlvbnMKCjIwMDQtMDMtMzAgMjE6MTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIHVuZGVmIHNzaXplX3QKCjIwMDQtMDMtMzAgMTc6MDYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHJlbW92ZSBjb21tZW50ZWQgYW5kIHVudXNlZCB2YXJpYWJsZXMuIGZsYWcgc3RhdGljIHZhcmlhYmxlIGFzIHByb2JsZW0gZm9yIHRocmVhZHMuCgoyMDA0LTAzLTMwIDE2OjU2ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgbWlsZGx5IGVuZm9yY2UgcnVubmluZyBmcm9tIGJhc2Ugc291cmNlIGRpcmVjdG9yeS4KCjIwMDQtMDMtMzAgMTY6NTMgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgaW5pdCBleGFtcGxlcyBtb2R1bGVzCgoyMDA0LTAzLTMwIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGluY2x1ZGUgcHJldmlvdXNseS1icm9rZW4gdGVzdHMgYWdhaW4KCjIwMDQtMDMtMzAgMTA6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGEgcmVhbGx5IG9sZCBhbmQgYW5ub3lpbmcgYnVnOiB1c2Ugc2V0X2Jvb2xlYW4gaW5zdGVhZCBvZiB0b2dnbGVfYm9vbGVhbiBmb3IgdGVsbGluZyB0aGUgbGlicmFyeSB3aGVuIHRvIHJlcGxhY2Ugb2xkIE1JQnMgd2hpbGUgcGFyc2luZy4gIEFmZmVjdGVkIGEgYnVuY2ggb2Ygc3R1ZmYgaW4gb2RkIHdheXMuCgoyMDA0LTAzLTMwIDA1OjAxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE5ldyBsb2dnaW5nIG9wdGlvbiAnLUxuJyB0byBleHBsaWNpdGx5IHR1cm4gb2ZmIGxvZ2dpbmcKCjIwMDQtMDMtMjkgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oOgoKICAgY29uZmlnLXJlcXVpcmUgaGVhZGVycwoKMjAwNC0wMy0yOSAyMDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlRhYmxlL2lmVGFibGUuYywgaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oCiwgaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaWZYVGFibGUvaWZYVGFibGUuYywgaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICBuZXcgaW1wbGVtZW50YXRpb25zIG9mIGlmVGFibGUgYW5kIGlmWFRhYmxlLCBiYXNlZCBvbiBnZW5lcmF0ZWQgY29kZSBmcm9tCiAgIG1pYjJjIE1GRCArIGNvbnRhaW5lci1jYWNoZWQgY29uZiBmaWxlcwoKMjAwNC0wMy0yOSAxNjoyOCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCBzcGVsbCBBY2tub3dsZWRnZW1lbnRzLCBhZGQgYmxhbmsgYmVmb3JlID1jdXQgc28gdGhhdCBpdCB3aWxsIGJlIHBhcnNlZCBjb3JyZWN0bHkuCgoyMDA0LTAzLTI5IDE1OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlIHVudXNlZCB2YXJzCgoyMDA0LTAzLTI5IDE1OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHR3ZWFrIGNvbW1lbnQKCjIwMDQtMDMtMjkgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHNsaWdodCByZS1vcmc7IGluY2x1ZGUgKGNvbW1lbnRlZCBvdXQpIGdudSBtYWtlIHN0dWZmCgoyMDA0LTAzLTI5IDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IHVzZSB1bnVzZWQgdmFyczsgYWxsb3cgdXNlciB0byBwYXNzIGV4aXN0aW5nIGRhdGEKICAgcHRyIHdoZW4gY3JlYXRpbmcgcm93IGNvbnRleHQ7IHNldCB2YWxfbGVuIHRvIGJ1ZiBzaXplIGlmZiBub3QgYWxyZWFkeSBzZXQKCjIwMDQtMDMtMjkgMTU6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1nZXQubTJjCjoKCiAgIG1vdmUgdGFibGUgaW5kZXggZnVuY3Rpb25zIHRvIGRhdGEtZ2V0OyBpbmNsdWRlIGRhdGFfYWNjZXNzIGhlYWRlcgoKMjAwNC0wMy0yOSAxNTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgdHdlYWsgbTJjX3Byb2Nlc2luZyB0eXBlOyByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wMy0yOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmM6CgogICB0d2VhayBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTAzLTI5IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IGluY2x1ZGUgbWliX21vZHVsZXMgaGVhZGVyOyB0d2VhayBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTAzLTI5IDE1OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKQoKMjAwNC0wMy0yOSAxNDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG1ha2UgcGFyc2Vfb25lX29pZF9pbmRleCBwcm9wZXJseSBkZWNvZGUgSVAgYWRkcmVzc2VzIGluIHRoZSByaWdodCBieXRlIG9yZGVyLgoKMjAwNC0wMy0yOSAxMjo1OCAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBpbml0IGV4YW1wbGVzIG1vZHVsZXMKCjIwMDQtMDMtMjkgMDk6MTkgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsCiAgICAgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwOgoKICAgcGF0Y2ggWzkxODgzOF0gdGVzdCBhZ2VudHggdXNpbmcgVENQIHNvY2tldHMgLSBpZmYgdHJhbnNwb3J0IG5vdCAidW5peCIKCjIwMDQtMDMtMjkgMDc6NTQgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3LzUuMS4xIChtb3ZlIHZhciBkZWNscyB0byB0b3Agb2YgZnVuY3Rpb25hbCBibG9jaykKCjIwMDQtMDMtMjYgMDg6NDEgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggIzkyMDIzNCB0byBzdGFydCBwcm9ncmFtcyBpbiBtaW5pbWl6ZWQgd2luZG93IChtaW5ndyBvbmx5KS4KCjIwMDQtMDMtMjYgMDg6MDMgIHNsaWYKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBwYXRjaCB0byBmaXggWzkyMTQyM10gaW5zdGFsbCB0ZXN0IHNlcXVlbmNlIG5vdCByaWdodCBmb3IgcGVybCBidWlsZAoKMjAwNC0wMy0yNiAwNzo1MyAgc2xpZgoKICAgKiBjb25maWd1cmUuaW46CgogICBwYXRjaCAjOTAxNDM0IHRvc29jazIuc2ggLS0gdXNlIFdpbnNvY2sgMi54IGZvciBXaW5kb3dzIHNvY2tldCBsaWJyYXJ5CgoyMDA0LTAzLTIyIDE1OjM3ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBwYXRoIGZvciBjbGVhbnVwIG9mIHVwbG9hZGVkIHRhcmJhbGwKCjIwMDQtMDMtMjIgMTM6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtYWtlX2luZGV4LnBsLCBtYW5fc2VjdGlvbnMudHh0CjoKCiAgIG1hbi9pbmRleC5odG1sIGdlbmVyYXRpb24gc3R1ZmYKCjIwMDQtMDMtMjAgMjE6NDMgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG5ld2VyIG1hbjJodG1sIHVzYWdlCgoyMDA0LTAzLTIwIDEwOjAyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2g6CgogICBwYXRjaCBbOTE5MTMyXSB0ZXN0IHN0b3AgYmVmb3JlIGZpbmlzaCBpcyBzdXBlcmZsdW91cwoKMjAwNC0wMy0xOSAxNjoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgUGFydCBvZiBwYXRjaCA5MTc3MjYgdG8gZml4IGEgZmV3IHdpbmRvd3MgY29uZmlnIHByb2JsZW1zLgoKMjAwNC0wMy0xOSAxNjowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg4MjggXSBjb25kaXRpb25hbCBza2lwIEhVUCB0ZXN0CgoyMDA0LTAzLTE5IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wMy0xOSAwODoyOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBBZGRlZCBhIG1pc3NpbmcgcHJvdG90eXBlOiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc3BpbmxvY2sKCjIwMDQtMDMtMTkgMDg6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBNaXNzZWQgYSBBRVMxMjggLT4gQUVTIGNvbnZlcnNpb24uCgoyMDA0LTAzLTE5IDAzOjAwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBCcmllZiBkZXNjcmlwdGlvbiBvZiBhZGRpbmcgV2luMzIgSVB2NiB0cmFuc3BvcnQgc3VwcG9ydC4KCjIwMDQtMDMtMTggMTg6MzIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTExNl0gbWlub3IgZGlmZiBpbiBpbnZva2VkIGxvZwoKMjAwNC0wMy0xOCAxNTo0NCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaF85MTUxNzgucmVkdXggdG8gZmluaXNoIHRoZSBzZWNvbmQgcGFydCBvZiB0aGF0IHBhdGNoLgoKMjAwNC0wMy0xOCAwODo1MSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGFwcGx5IHBhdGNoIFs5MTg4MjRdIGZpeCBwcm94eSB0ZXN0cwoKMjAwNC0wMy0xOCAwNzowNSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGN5Z3dpbi5oLCBtaW5ndzMyLmg6CgogICBwYXRjaCBbOTE3NjQ5XSBmaW5kIHVpbnQzMl90IGluIHdpbjMyLWdjYyBidWlsZCBlbnZpcm9ubWVudHMKCjIwMDQtMDMtMTYgMTM6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWVyZ2UgY29uZmlndXJlIHN1YnN0aXR1dGVkIHNycy9vYnMgZGVmIHcvcHJldmlvdXMgbGluZSwgdG8gYXZvaWQgaGF2aW5nIGEKICAgY29udGludWF0aW9uIGxpbmUgZm9sbG93ZWQgYnkgYSBibGFuayBsaW5lOwogICBmaXhlcyBmb3IgYnVpbGRpbmcgb3V0c2lkZSBvZiBzb3VyY2UgZGlyIChyZW9yZGVyIGluY2x1ZGUgaW4gQ1BQRkxBR1Mgc28gdGhhdAogICByZWxhdGl2ZSBkaXJzIGNvbWUgYmVmb3JlIHNyY2RpcnMpCgoyMDA0LTAzLTE2IDA3OjQ5ICBzbGlmCgogICAqIHdpbjMyLzogYnVpbGQuYmF0LCBidWlsZC5wbDoKCiAgIHN5bmNoIHdpdGggd29ya2luZyB2ZXJzaW9uLCBkZWx0YSBpbnN0YWxsIGJhc2UsIG9mIGNvdXJzZS4KCjIwMDQtMDMtMTYgMDY6NTMgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgYWRkIHR5cGVkZWYgZm9yIHVpbnQzMl90IC0tIGFic2VudCBmcm9tIE1TVlMKCjIwMDQtMDMtMTYgMDU6MTUgIHNsaWYKCiAgICogd2luMzIvOiBNYWtlZmlsZS5pbiwgaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwYXJ0aWFsIGZpeCBmb3IgYnVnIDkxNTE3ODogYWRqdXN0IHRvIGFjY29tbW9kYXRlICdtYWtlIHRlc3QnIHZlcmlmaWNhdGlvbi4KCjIwMDQtMDMtMTUgMTY6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIFBhdGNoIGZyb20gQnJ1Y2UgU2hhdzogWyA4OTQ3MTEgXSBTb2xhcmlzIGRpc2sgdGVzdCBmYWlscyBvbiBzb21lIE9TJ3MgW3NlY29uZCBmaXggdG8gaGlzIHByZXZpb3VzIHBhdGNoIGZvciBldmVuIGJldHRlciBzdXBwb3J0XQoKMjAwNC0wMy0xNSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQnVnL3BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgxNTM2MSBdIG92ZXJyaWRlIHRva2VuIGluIHNubXBkLmNvbmYgZG9lcyBub3QgYWxsb3cgc25tcHNldCBvbiBPSUQgW3JlYWxseSwgdGhpcyBqdXN0IHJldHVybnMgcHJvcGVyIGVycm9yIGNvZGVzIGZyb20gc3lzdGVtX21pYiB2YXJpYWJsZXNdCgoyMDA0LTAzLTE1IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBCdWcvcGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODE1MzMzIF0gc25tcHZhY20gYXBwIG5vdCB3b3JraW5nIHdpdGggU05NUCB2MSBbIHJlYWxseSBqdXN0IGZpeGluZyBtaWIgZXJyb3IgY29kZXMgcmVtZW1iZXJlZCBpbiBzbm1wX2FnZW50LmNdCgoyMDA0LTAzLTE1IDE1OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYzoKCiAgIEJ1Zy9QYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDkyODIgXSBuZXRzbm1wX21vZGVfZW5kX2NhbGxfYWRkX21vZGVfY2FsbGJhY2sgY2FsbGVkIHJlcGVhdGVkbHkKCjIwMDQtMDMtMTUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA4ODgxIF0gTG9nIGEgYXV0aGVudGljYXRpb24gZmFpbHVyZSBtZXNzYWdlIHdoZW4gYXV0aGVudGljYXRpb24gZmFpbHMuCgoyMDA0LTAzLTE1IDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwNzMzMyBdIDY0IGJpdCBhZ2VudCByZXR1cm5zIGluY29ycmVjdCB2YWx1ZXMgZm9yIElwQWRkcmVzcwoKMjAwNC0wMy0xNSAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQsIGlwQ2lkclJvdXRlVGFibGUuYwosIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZS1pbXBsZW1lbnQgZXhpc3RpbmcgaXBDaWRyUm91dGVUYWJsZSBmdW5jdGlvbmFsaXR5IHcvTUZEIGhlbHBlcgogICAoaS5lLiByZWFkLW9ubHkgc3VwcG9ydDsgdXNlIHZhcl9yb3V0ZSBmdW5jdGlvbiB0byBnZXQgZGF0YSkKCjIwMDQtMDMtMTUgMTI6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgZm9yIHJvdy1jcmVhdGlvbiBjYXNlCgoyMDA0LTAzLTE1IDEyOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZGVmYXVsdCB0byBpbmNvbnNpc3RlbnROYW1lIGluc3RlYWQgb2Ygbm9DcmVhdGlvbgoKMjAwNC0wMy0xNSAwNjoyNyAgZHRzMTIKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBUd2VhayB0aGUgb3B0aW9uIHByb21wdCBzbGlnaHRseS4KICAgKERhdmUncyBiZWluZyBwaWNreSBhZ2FpbiEpCgoyMDA0LTAzLTE1IDA2OjIwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTGlzdGVuIG9uIHBvcnQgMTYyIChyYXRoZXIgdGhhbiAxNjEpIGlmIGEgKGJhcmUpIGludGVyZmFjZQogICBhZGRyZXNzIGlzIHNwZWNpZmllZC4KCjIwMDQtMDMtMTMgMjI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBudWxsIGZyZWUnZCBwb2ludGVyIChiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5KQoKMjAwNC0wMy0xMyAyMTo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHBsdWcgbWVtb3J5IGxlYWsKCjIwMDQtMDMtMTMgMTk6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaDoKCiAgIGZpeCBmb3IgY29tcGlsaW5nIHcvZG1hbGxvYwoKMjAwNC0wMy0xMyAwNjo0MCAgc2xpZgoKICAgKiB3aW4zMi9idWlsZC5iYXQ6CgogICBzZXQgdGVtcCB2YXIgZW1wdHkgdG8gcmVtb3ZlIGZyb20gZW52CgoyMDA0LTAzLTEyIDE1OjUyICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2xlYW4gdXAgYmFzZSBwb29wLgoKMjAwNC0wMy0xMiAxMzowNyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2J1aWxkLmJhdDoKCiAgIGRvYyBjaGFuZ2UgZm9yIHBhdGNoIDkxMjQ0NwoKMjAwNC0wMy0xMiAxMjoxMyAgc2xpZgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaFs5MTUxNzhdIHRvIGZpeCBNaW5HVyAoTVNZUykgbWFrZSB0ZXN0IGZyZWV6ZXMKCjIwMDQtMDMtMTIgMTE6MjkgIHNsaWYKCiAgICogd2luMzIvOiBNYWtlZmlsZS1hcHBzLmluLCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGQvTWFrZWZpbGUuaW4sCiAgICAgc25tcGRzZGsvTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICAgIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIG1vZGlmeSBwYXRjaFs5MTI0NDddIHRvIHVzZSBjb3JyZWN0IHdpbnNvY2sgbGlicmFyeQoKMjAwNC0wMy0xMiAxMToxNiAgc2xpZgoKICAgKiB3aW4zMi86IENvbmZpZ3VyZSwgTWFrZWZpbGUtYXBwcy5pbiwgTWFrZWZpbGUuaW4KLCBidWlsZC5iYXQsIGJ1aWxkLnBsLCBsaWJhZ2VudC9NYWtlZmlsZS5pbgosIGxpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIGxpYnNubXAvTWFrZWZpbGUuaW4sCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluCiwgc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBhcHBseSBwYXRjaCBbOTEyNDQ3XSBXaW4zMiBNU1ZDIE1ha2VmaWxlIHN5c3RlbQoKMjAwNC0wMy0xMCAxOToyNCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgYWdncmVzc2l2ZSBzZWFyY2ggZm9yIGV4ZWN1dGFibGVzIGJlbG93IHRoZSBiYXNlIGRpcmVjdG9yeS4KCjIwMDQtMDMtMTAgMTk6MTUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRvbid0IHNldCBnbG9iYWwgc25tcF9lcnJubzsgZG8gcHJvdmlkZSB1bmRlZiBVU0VfT1BFTlNTTDsKICAgIHJlcGxhY2UgTkVUU05NUF9OT19ETEwgd2l0aCBORVRTTk1QX1VTRV9ETEw7CiAgICBkb2N1bWVudCB0aGUgY2hhbmdlLgoKMjAwNC0wMy0xMCAxOTowOSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnZva2Ugc25tcGQsIHNubXB0cmFwZCB3aXRoIG5vbi1kZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIFBJRCBhbmQgbG9nZmlsZS4KCjIwMDQtMDMtMTAgMTU6MDkgIHNsaWYKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgZml4IHNpZ25lZCBtaXNtYXRjaCB3aGVuIHRlc3RpbmcgcHJvcGVyIGxlbmd0aCBvZiBrZXllZCBoYXNoLgoKMjAwNC0wMy0xMCAxNTowMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbW9kcyBmb3IgYnVpbGRpbmcgd2luMzIgd2l0aCBPcGVuU1NMIHN1cHBvcnQuCgoyMDA0LTAzLTEwIDA4OjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHBlciBBbGV4QiAtIGNoYW5nZSBpbnN0cnVjdGlvbnMgdG8gdXNlIE1pbkdXIGRldmVsb3BlcidzIHJlY29tbWVuZGVkIE9wZW5TU0wuCgoyMDA0LTAzLTEwIDA3OjIxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgVXNlIHRoZSBzYW1lIHRlc3RpbmcgcG9ydHMgYXMgdGhlIG1haW4gYWdlbnQgdGVzdCBzdWl0ZQogICAoc29tZXdoYXQgbGVzcyBsaWtlbHkgdG8gY2xhc2ggd2l0aCBvdGhlciBzZXJ2aWNlcykKCjIwMDQtMDMtMTAgMDc6MDggIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIERvY3VtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlICJvcHRpb25hbCIgY29uZmlnIGZpbGVzIHZpYSAtYwoKMjAwNC0wMy0xMCAwNTowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0cnkgdW5mdWxmaWxsZWQgR0VUTkVYVCByZXF1ZXN0cyB0aGF0IHNpbXBseSBoYXZlbid0IGJlZW4gYXR0ZW1wdGVkCiAgIChlLmcuIGR1ZSB0byBhIG1pc3NpbmcgY29sdW1uIG9iamVjdCksIGJ1dCBub3Qgb25lcyB0aGF0IGhhdmUgYmVlbgogICBleHBsaWNpdGx5IG1hcmtlZCBhcyBmYWlsZWQgKGUuZy4gYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUpLgoKICAgSSdtIG5vdCAxMDAlIGNvbnZpbmNlZCB0aGlzIGlzIGNvcnJlY3QsIGJ1dCBpdCBzZWVtcyB0byBoYXZlIHRoZQogICByaWdodCBlZmZlY3QgZm9yIGJvdGggJ3RhYmxlX2RhdGEnIGFuZCAndGFibGVfZGF0YXNldCcgYmFzZWQgbW9kdWxlcy4KCjIwMDQtMDMtMTAgMDQ6NTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgQ2hlY2sgZm9yIHByb2JsZW1zIHdpdGggYWxsIG9mIHRoZSByZXF1ZXN0ZWQgdmFyYmluZHMKICAgKG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUpLCBhbmQgaGFuZGxlICdub1N1Y2hPYmplY3QnIGV4Y2VwdGlvbnMuCiAgIFtUaG91Z2ggaW4gZmFjdCwgdGhpcyBjb2RlIGlzbid0IGFjdHVhbGx5IHVzZWRdCgoyMDA0LTAzLTA5IDEyOjUwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDMtMDkgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGRlYnVnZ2luZyBpc24ndCBwbGF0Zm9ybSBzcGVjaWZpYwoKMjAwNC0wMy0wOSAwNzo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIHRyYXBsaWJzIGZyb20gYWdlbnQgbGlicyBmb3IgZGVwZW5kZW5jaWVzCgoyMDA0LTAzLTA5IDA3OjEyICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgbWFrZSBTTk1QQ09ORlBBVEggY29uc2lzdGVudCB3aXRoIG90aGVyIHBsYXRmb3JtcyAoIiRwcmVmaXgvZXRjL3NubXAiKQoKMjAwNC0wMy0wOSAwNzowOSAgc2xpZgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IE1UQ1JJVElDQUxfUkVTT1VSQ0UgdG8gdXNlIG9mIHNubXBfZXJybm8gaW4gdGhyZWUgcGxhY2VzLgoKMjAwNC0wMy0wOSAwNToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgSGFuZGxlIG11bHRpcGxlICJvcHRpb25hbCBjb25maWciIGZpbGVzLgoKMjAwNC0wMy0wOSAwNDoyNCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1ha2UgU05NUENPTkZQQVRIIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwbGF0Zm9ybXMgKCIkcHJlZml4L2V0Yy9zbm1wIikKCjIwMDQtMDMtMDggMjA6MjYgIHJzdG9yeQoKICAgKiBSRUFETUUuYWl4OgoKICAgbmV3IGZpbGUKCjIwMDQtMDMtMDggMTc6NTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGF0Y2ggWzkxMTQzOV0gVXBkYXRlcyB0byB0aGUgUkVBRE1FLndpbjMyIGFuZCBTTk1QIFJFQURNRSBmb3IgV2luMzIKCjIwMDQtMDMtMDggMTY6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgaWZkZWYgb3V0IHJvdXRpbmVzIHRoYXQgb25seSBhdmFpbGFibGUgd2hlbiBhZ2VudHggaXMgZ29pbmcgdG8gYmUgdXNlZC4KCjIwMDQtMDMtMDggMTY6MDkgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgdXNlIGFwcCBsaWJzIGZvciBzbm1wdHJhcGQgd2hlbiBhZ2VudCBkaXNhYmxlZDsgbW92ZSB3cmFwbGliIHN1YnN0aXR1dGlvbiB0bwogICBhIG1vcmUgcmVhc29uYWJsZSBwbGFjZS4gc25tcHRyYXBkIHN0aWxsIGRvZXNuJ3QgbGluaywgYnV0IGl0J3MgY2xvc2VyLi4uCgoyMDA0LTAzLTA4IDE0OjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMy0wOCAxNDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBjb21tZW50cyBpbiBoYWlyeSBhZ2VudCBtb2R1bGUgcHJvY2Vzc2luZzsgZG9uJ3QgbXVuZ2UgZGVmYXVsdCBtaWJzIHVudGlsCiAgIHdlIGFyZSBkb24ndCBidWlsZGluZyBpdDsgdHdlYWtzIGZvciAtLWRpc2FibGUtYWdlbnQ6IHVzZSBzYW1lIGRlZmF1bHQgbWlic2V0CiAgIGFzIC0tZW5hYmxlLW1pbmktYWdlbnQsIGRvbid0IHRvIGhhaXJ5IGFnZW50IG1vZHVsZSBwcm9jZXNzaW5nCgoyMDA0LTAzLTA4IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzeW50YXggZXJyb3JzLgoKMjAwNC0wMy0wOCAxMjo0MiAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgbG9jYWwgdmFyIGNhY2hlX3RpbWVvdXQKCjIwMDQtMDMtMDggMTI6NDEgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdXNlIHF1b3RlcyB0byBzZWFyY2ggbG9jYWwgaW5jbHVkZSBwYXRocyBmb3IgcGVybF9zbm1wdHJhcGQuaAoKMjAwNC0wMy0wOCAxMTo0MyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBwYXRjaCBbOTEwOTAzXSBVcGRhdGVzIHRvIHRoZSBSRUFETUUud2luMzIgZm9yIEdDQwoKMjAwNC0wMy0wOCAwOTozNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgUGF0Y2ggZnJvbSBBbmRyZXcgSG9vZCB0byBpbmNsdWRlIHByb3BlciBoZWFkZXJzIGFuZCB7fSB3cmFwIHBlcmwgc3BlY2lhbCBkZWNscnMKCjIwMDQtMDMtMDggMDg6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICB1c2UgZGVmYXVsdCBsaWJyYXJ5IHZhbHVlcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgZGVmYXVsdHMgZm9yIGF1dGgvcHJpdiBwcm90b2NvbHMKCjIwMDQtMDMtMDYgMTk6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgZHVwbGljYXRlIHByb3RvdHlwZQoKMjAwNC0wMy0wNiAxOToxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHR3ZWFrIHBhdHRlcm4gZm9yIG5ldyBkb3h5Z2VuIGNvbmYgZmlsZXMKCjIwMDQtMDMtMDYgMTk6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBhZGQgcHJvdG90eXBlIHRvIGdldCBzcGFyc2UgdGFibGUgbWliIGhhbmRsZXIsIG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW47CiAgIHJlbmFtZSBuZXRzbm1wX3JlZ2lzdGVyX3NwYXJzZV90YWJsZSB0byBuZXRzbm1wX3NwYXJzZV90YWJsZV9yZWdpc3RlcjsgYWRkCiAgIG5ldHNubXBfc3BhcnNlX3RhYmxlX2hhbmRsZXJfZ2V0CgoyMDA0LTAzLTA2IDE5OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBzcGFyc2UgdGFibGUgaGVscGVyIHN0YXRpYzsgYWRkIG1ldGhvZCB0byBnZXQgc3BhcnNlIHRhYmxlIG1pYiBoYW5kbGVyOwogICB3YXJuIGlmIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGhhcyBhIG5leHQgcG9pbnRlci4gdXNlIG5ldyBoYW5kbGVyIGN1c3RvbSBiaXQKICAgdG8gb25seSBsb2cgb25jZSwgaWYgcG9zc2libGUuCgoyMDA0LTAzLTA2IDE4OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICByZXNlcnZlciBsYXN0IDQgYml0cyBvZiBmbGFnIGZvciBoYW5kbGVyIHVzZQoKMjAwNC0wMy0wNiAxNzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kb3h5Z2VuLm0yYywgbWZkLXRvcC5tMmM6CgogICBnZW5lcmF0ZSBzaW1wbHkgZG94eWdlbi5jb25mIGZpbGUKCjIwMDQtMDMtMDUgMjE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgdGhlIGFkZF9yb3cgdG9rZW4gYnkgc29ydGluZyBpbmNvbWluZyBjb2x1bW5zIGZyb20gdGhlIHBhcnNlcgoKMjAwNC0wMy0wNSAxNzowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIHVwZGF0ZXMgZnJvbSBvbGRlciBjaGFuZ2VzOyBzdGlsbCBzbGlnaHRseSBvdXQgb2YgZGF0ZQoKMjAwNC0wMy0wNSAxNzowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGRvbid0IHJlY3Vyc2Ugb24gZGlmZjsgY3AgZGVmYXVsdHMgaW5zdGVhZCBvZiBtb3ZpbmcKCjIwMDQtMDMtMDUgMTc6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgbmV3IHZhciBmb3IgcGFyYW0gY2FsbHMgYnkgdmFsCgoyMDA0LTAzLTA1IDE3OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBmaXggZXZhbHVhdGlvbiBwcm9ibGVtIGluIGdlbmVyYXRlZCBkZWZhdWx0IGZpbGUKCjIwMDQtMDMtMDUgMTY6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IG1vdmUgaW5kZXhlc19zZXQsIGluaXRfZGF0YSBpbnRvIGRhdGFfYWNjZXNzLm0yYwoKMjAwNC0wMy0wNSAxNjo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IGFkZCBleGFtcGxlIGNvZGU7IG1vdmUgYXMgbXVjaCBjYWNoZSBzdHVmZiBhcwogICBwb3NzaWJsZSBpbnRvIGludGVyZmFjZQoKMjAwNC0wMy0wNSAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgYnJlYWsgc2V0X2luZGV4ZXMgaW50byAyIHBpZWNlcwoKMjAwNC0wMy0wNSAxNjo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgcmUtYWRkIHByZS9wb3N0OyBkZWZpbmUgTUZEIHJldHVybiBjb2RlIGhlcmUsIHNpbmNlCiAgIHRhYmxlX21mZCBubyBsb25nZXIgZXhpc3RzOwoKMjAwNC0wMy0wNSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAwNC0wMy0wNSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgcmUtYWRkIHByZS9wb3N0IHdyYXBwZXI7IGNhbGwgbmV3IHJvd19wcmVwCgoyMDA0LTAzLTA1IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYwo6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGUKCjIwMDQtMDMtMDUgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgbW92IGluaXRfZGF0YSBoZXJlOyBhZGQgcm93X3ByZXAKCjIwMDQtMDMtMDUgMTY6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCBub2RlLWdldC5tMmksCiAgICAgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291Y2UgaW4gc2FtZSBpbmNsdWRlCgoyMDA0LTAzLTA1IDE2OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBhZGQgZmxhZ3M7IGFkZCBleHBpcmVkOyBvbmx5IHVzZSBkZWZhdWx0IHRpbWVvdXQgd2hlbiBjYWNoZSBjcmVhdGVkOwoKMjAwNC0wMy0wNSAxNjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGhhdmUgbWliX3RvX2Fzbl90eXBlIHJldHVybiBBU05fVU5TSUdORUQgaW5zdGVhZCBvZiBBU05fVUlOVEVHRVIsCiAgIHdoaWNoIGlzIHRoZSBwcm9wZXIgZGF0YSB0eXBlLgoKMjAwNC0wMy0wNSAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBSZW1vdmUgdGhlIHNwYXJzZSB0YWJsZSByZWdpc3RyYXRpb24gYW5kIHJlZ2lzdGVyIGl0IGFzIGEgbm9ybWFsIHRhYmxlLgogICAgIDEpIHRoZSBoaWdoZXIgdGFibGUgaGFuZGxlciBhbHdheXMgY2FsbHMgdGhlIHNwYXJzZSB0YWJsZSBoYW5kbGVyCiAgICAgICAgYW55d2F5LCBzbyBpdCB3b3VsZCBiZSByZWR1bmRhbnQgZXZlbiBpZiBpdCBkaWQgd29yay4KICAgICAyKSBUaGUgc3BhcnNlIHRhYmxlIGhhbmRsZXIgZG9lc24ndCBjYWxsIGFueSBjaGlsZHJlbiwgYW5kIGRvZXNuJ3QKICAgICAgICBzZXQgdGhlIGF1dG9uZXh0IGZsYWcgc28gaXRzIGFsd2F5IHRoZSBlbmQgb2YgdGhlIGxpbmUgKHRoaXMgdG9vawogICAgICAgIG1lIGFuIGhvdXIgdG8gZmluZCkuCgoyMDA0LTAzLTA1IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGNoYW5nZSB0aGUgaGVscCBpbmZvcm1hdGlvbiBmb3IgYWRkX3JvdyB0byBtZW50aW9uIHRoYXQgeW91IG5lZWQgdGhlCiAgIHRhYmxlIG5hbWUgeW91IHdhbnQgdG8gYWRkIHRoZSBkYXRhIHRvLgoKMjAwNC0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmM6CgogICBGaXggdGhlIG9pZCByZWdpc3RyYXRpb24gY2FjaGUgbm90IGJlaW5nIGludmFsaWRhdGVkIHByb3Blcmx5LiAgQnVnICM5MDA5NjcKCjIwMDQtMDMtMDUgMTE6MjkgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBbNzA2MDkzXSBieSBub3QgZGVmaW5pbmcgdmFyaWFibGVzIGEgc2Vjb25kIHRpbWUuCgoyMDA0LTAzLTA1IDEwOjAzICBzbGlmCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01BTklGRVNUOgoKICAgcXVlbGwgbWFuaWZlc3QgY2hlY2sgZXJyb3JzIChtYWtlZmlsZSwgcG1fdG9fYmxpYiwgLmMgZmlsZSkuCgoyMDA0LTAzLTA1IDEwOjAzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaDoKCiAgIHVzZSBvZiBTRVRfU05NUF9FUlJOTyByZXF1aXJlcyAtLSBlbmFibGUgRExMIGRlY29yYXRpb24gZm9yIHNubXBfZXJybm8KCjIwMDQtMDMtMDUgMTA6MDIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW4KCjIwMDQtMDMtMDUgMTA6MDAgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgc3ltYm9sIHVzbUFFU1ByaXZQcm90b2NvbAoKMjAwNC0wMy0wNSAwODoyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBmaXggbWFjcm8gbmFtZSwgYXMgbm90ZWQgb24gdXNlcnMKCjIwMDQtMDMtMDUgMDU6NTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIgJ3NwYWNlJwoKMjAwNC0wMy0wNSAwNTozMCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwKICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBjb25maWd1cmU6CgogICBwYXRjaCBbOTAxNDM0XSBhcHBseSB1c2VXaW5zb2NrMi5zaCBbdW5kbyBieSB1c2luZyB1c2VXaW5zb2NrMS5zaF0KCjIwMDQtMDMtMDQgMjI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGluaXRpYWxpemUgdGhlIHRhYmxlX2RhdGFzZXQgaGVscGVyIChhZ2Fpbi4uLiAgSSAqa25vdyogaXQgd2FzIGluaXRpYWxpemVkIGluIHRoZSBwYXN0LiAgV2hhdCBoYXBwZW5lZD8pCgoyMDA0LTAzLTA0IDIyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvZmYgY2FjaGluZyB1bnRpbCByZWFsIGZpeCBmb3VuZCBmb3IgYnVnIDkwMDk2NzogYWdlbnR4LCBjYWNoaW5nCgoyMDA0LTAzLTA0IDIwOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAqZmluYWxseSogZml4IGFnZW50eCBoYW5nIHdoZW4gbWFzdGVyIGRpc2FwcGVhcnMKCjIwMDQtMDMtMDQgMTU6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBmaXggZXhlY2ZpeCBmb3IgcmVsb2NhdGFibGUgZXhlY3M7IGFkZCBmaXggY21kIHRvIHJlbG9jYXRhYmxlIHRyZWUKCjIwMDQtMDMtMDQgMDk6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMgYWJvdXQgdmVyc2lvbiBudW1iZXIgY2hhbmdpbmcKCjIwMDQtMDMtMDQgMDk6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVpbGRpbmcgdHJhcGQgd2hlbiB0aGUgYWdlbnQgaXNuJ3QgYmVpbmcgYnVpbHQKCjIwMDQtMDMtMDQgMDk6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMOgoKICAgdXBkYXRlIHRvIHRoZSB3YXkgd2Ugbm9ybWFsbHkgZG8gcGVybCBNYWtlZmlsZXMsIHdoaWNoIGlzIG5vdCBub3JtYWwuCgoyMDA0LTAzLTA0IDA4OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSCgoyMDA0LTAzLTA0IDA4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaXggc3ludGF4IGVycm9ycwoKMjAwNC0wMy0wNCAwNTozOSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZQo6CgogICBwYXRjaCBbOTA5NDU5XSBDb25maWd1cmUgcGF0Y2ggdG8gYWxsb3cgZm9yIFdpbjMyIG9iamVjdHMuCgoyMDA0LTAzLTAzIDIyOjExICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgY2hhbmdlICJwcm9ncmF+MSIgdG8gIlByb2dyYW0gRmlsZXMiIHRvIGF2b2lkIHByb2JsZW0gd2l0aCBET1MgbmFtZSB3YXJwaW5nLgoKMjAwNC0wMy0wMyAyMToyMiAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL1JFQURNRSwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCBbOTA2Mjc0XSBXaW4zMiBQZXJsIGNvbXBpbGUgd2l0aCByZWxlYXNlL2RlYnVnIHBhdGggY2hhbmdlcwoKMjAwNC0wMy0wMyAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgc3BlY2lmeSBtb2RlIGluIHJlZ2luZm8KCjIwMDQtMDMtMDMgMTM6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIG1ha2UgdGhlIGZpbGUgdG9rZW4gYWNjZXB0IGEgZGVmYXVsdCBzaXplIGxpa2UgdGhlIGRvY3Mgc2F5IGl0IHdpbGwuCgoyMDA0LTAzLTAzIDEyOjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29tbWVudCBvdXQgcGR1IGRvdWJsZSBmcmVlIGNoZWNrIHRpbCBiZXR0ZXIgKG5vbi1sZWFraW5nKSBzb2x1dGlvbiBmb3VuZAoKMjAwNC0wMy0wMyAwODo1NiAgcnN0b3J5CgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjM6CgogICByZW1vdmUgbWFuIHBhZ2UgZm9yIHJlbW92ZWQgc3RydWN0dXJlCgoyMDA0LTAzLTAzIDA4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgbmV3IHV0aWxpdHkgdG8gcmVnZW5lcmF0ZSBtaWIyYyBjb2RlLCBwcmVzZXJ2aW5nIGV4aXN0aW5nIGN1c3RvbWl6YXRpb25zCgoyMDA0LTAzLTAzIDA3OjUyICBzbGlmCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICB0YWJsZV9tZmQgcmVtb3ZlZCAtLSBkb250IGJ1aWxkIGl0LgoKMjAwNC0wMy0wMyAwNzo0NiAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBubWFrZXBlcmwuYmF0OgoKICAgcGVyIEFsZXhCIC0gYWRkICItaGVscCIgZGVzY3JpcHRpb25zLiBjcmVhdGUgQkFTRS90ZW1wIHN1YmRpci4KCjIwMDQtMDMtMDIgMTM6NDUgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHBhdGNoIFs3NTM4OTRdICBjYXRjaCBTSUdYRlNaIHcvbyBzdHJzaWduYWwKCjIwMDQtMDMtMDIgMTI6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIHRvcCBsZXZlbCBtZmQgY29uZiBmaWxlCgoyMDA0LTAzLTAyIDA0OjE4ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBwYXRjaCBbNzUzODk0XSAgY2F0Y2ggU0lHWEZTWiwgbG9nIG1lc3NhZ2UgYW5kIGV4aXQsIGRvIG5vdCBjb3JlZHVtcAoKMjAwNC0wMy0wMiAwNDowNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBmaXggWzc3MTMxNV0gQWdlbnQgY29yZWR1bXBzIGR1cmluZyBzaHV0ZG93bgoKMjAwNC0wMy0wMSAyMTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFBDIHBvbGljZSAtIHRvbmUgZG93biBlcnJvciBtZXNzYWdlCgoyMDA0LTAzLTAxIDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgY2hhbmdlIGdsb2JhbHMgdG8gdXNlIGZ1bmN0aW9ucyB0byBhY2Nlc3MgY2FjaGVfaGFuZGxlciB2YXJzLCBvciB1c2UgbmV3CiAgIGRhdGFzdG9yZSB2YWx1ZXMKCjIwMDQtMDMtMDEgMjE6MDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudDsgcmVtb3ZlIG5vYWxsb2MgcHJvdG90eXBlCgoyMDA0LTAzLTAxIDIxOjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudDsgYWRkIE5PX0NBQ0hJTkcgYW5kIENBQ0hFX1RJTUVPVVQKCjIwMDQtMDMtMDEgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIG5ldyBiYWJ5X3N0ZXBzIGFjY2VzcyBtdWx0aXBsZXhlciBoYW5kbGVyOyBtYWtlIGFjdHVhbCBoZWxwZXIgcm91dGluZXMgc3RhdGljOwogICByZW5hbWUgZnVuY3Rpb25zLCBkZWZpbmVzIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eQoKMjAwNC0wMy0wMSAyMDo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzIHRvIGluaXRfYWdlbnQKCjIwMDQtMDMtMDEgMjA6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc2V0IGRlZmF1bHQgYWdlbnQgY2FjaGUgdGltZW91dDsgZGVidWcgbXNnIGZvciBlcnJubyBvbiBzZWxlY3QgZXJyb3IKCjIwMDQtMDMtMDEgMjA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtZXJnZSBjb21tb24gY2FzZSBpbiBzd2l0Y2gKCjIwMDQtMDMtMDEgMjA6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIHJlcGxhY2UgZ2xvYmFscyB3L2xvY2FsIHN0YXRpYyArIGFjY2VzcyBmdW5jdGlvbjsgdXNlIGRhdGFzdG9yZSBmb3IgY2FjaGluZwogICBlbmFibGVkLCBjYWNoZSB0aW1lb3V0OyB0ZXN0IGNhY2hlX2ZyZWUgZm9yIE5VTEwgYmVmb3JlIGNhbGxpbmcgaXQ7IGRvbid0CiAgIHVzZSBnb3RvOyB1c2UgbmV3IGF1dG8tbmV4dCBmdW5jdGlvbmFsaXR5IHRvIGNhbGwgY2hpbGQgaGFuZGxlcnM7IG5ldwogICBjYWNoZV9jcmVhdGUsIGNhY2hlX2hhbmRsZXJfcmVnaXN0ZXIsIGNhY2hlX2ZpbmRfYnlfb2lkOyBkb24ndCByZWxvYWQgY2FjaGUKICAgbW9yZSB0aGFuIG9uY2UgcGVyIHJlcXVlc3Q7IG5vdGUgcG9zc2liaWxpdHkgb2YgY2FjaGUgYmVpbmcgZnJlZSdkIG1pZC0KICAgcmVxdWVzdCBmb3IgZGVsZWdhdGVkIHJlcXVlc3RzLCB3L3Byb3Bvc2VkIHNvbHV0aW9uCgoyMDA0LTAzLTAxIDIwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaDoKCiAgIHN3aXRjaCBmcm9tIGl0ZXJhdG9yIHRvIG5ldyB0YWJsZV9jb250YWluZXIgaGFuZGxlci4KCjIwMDQtMDMtMDEgMTk6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBydW4gdGhyb3VnaCBpbmRlbnQKCjIwMDQtMDMtMDEgMDY6MDYgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIHVuZG8gcGF0Y2ggYXQgcjUuMyAtLSByZXN0b3JlICgxNikgaW4gdGVzdCB0byBnZXQgb25seSBub24tcmVwZWF0ZXJzCgoyMDA0LTAyLTI5IDIxOjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIG1vdmUgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93IGhlcmUgZnJvbSB0YWJsZS5jCgoyMDA0LTAyLTI5IDIxOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIHRhYmxlX2NvbnRhaW5lcjsgcmVtb3ZlIHRhYmxlX21mZAoKMjAwNC0wMi0yOSAyMTowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgbWZkIGRlcGVuZGVuY2llcwoKMjAwNC0wMi0yOSAyMDo1NCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGFkZCBmbGFncyBmaWVsZCB0byBtaWIgaGFuZGxlciBzdHJ1Y3R1cmU7IG5ldyBoYW5kbGVyIEFVVE9fTkVYVCBmbGFncyBmb3IKICAgaGFuZGxlcnMgdGhhdCBkb24ndCB3YW50IHRvIGJvdGhlciB3aXRoIGNhbGxpbmcgc3ViLWhhbmRsZXJzIChhbHNvIHJlZHVjZXMKICAgc3RhY2sgZGVwdGgpOyBuZXcgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jcmVhdGUgd2hpY2ggcmVzaWdlcnMgZXhpc3RpbmcKICAgaGFuZGxlcjsgbG9nIHdhcm5pbmcgZm9yIGhhbmRsZXJzIHJlZ2lzdGVyaW5nIHcvbm8gbW9kZXM7IGhhbmRsZSBpbmplY3Rpb24gdG8gYQogICByZWdpc3RyYXRpb24gdy9vdXQgYSBoYW5kbGVyOyBuZXcgbW9kZXMgSEFORExFUl9DQU5fTk9UX0NSRUFURSwKICAgSEFORExFUl9DQU5fU0VUX09OTFk7IG9yIGluIEhBTkRMRVJfQ0FOX05PVF9DUkVBVEUgdy8gREVGQVVMVDsgYWRkIHZvaWQgcG9pbnRlcgogICB0byBoYW5kbGVyIHJlZ2lzdHJhdGlvbgoKMjAwNC0wMi0yOSAyMDozOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHRhYmxlX21mZC5oIGRlcGVuZGVuY2llcwoKMjAwNC0wMi0yOSAyMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHN5bmMgY2xvc2VzdF9jb2x1bW4gdy9maXhlcyBpbiA1LTEtcGF0Y2hlczsgY2hlY2sgZm9yIGV4aXN0aW5nIHRibF9yZXFfaW5mbyBpbgogICByZXF1ZXN0czsgY2FsbCBzcGFyc2UgdGFibGUgaGFuZGxlciBhZnRlciBub3JtYWwgdGFibGUgcHJvY2Vzc2luZzsgbW92ZQogICBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cgdG8gdGFibGVfY29udGFpbmVyLmMKCjIwMDQtMDItMjkgMTc6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgcHJvdG90eXBlIGZvciBoYW5kbGVyIGdldDsgbWFrZSBpbmxpbmUgZnVuYyBzdGF0aWMgaW5saW5lCgoyMDA0LTAyLTI5IDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIG91dCB3L3RoZSBvbGQsIGluIHcvdGhlIG5ldyAocmVtb3ZlIG1mZCBoZWxwZXIsIGFkZCB0YWJsZV9jb250YWluZXIpCgoyMDA0LTAyLTI5IDE3OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgcmVtb3ZlIG1mZCBoZWxwZXI7IG1mZCBjb25mIGZpbGVzIG5vdyB1c2VyIG5ldyB0YWJsZV9jb250YWluZXIgaGVscGVyCgoyMDA0LTAyLTI5IDE3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHJlbW92ZSBncm91cGluZyBvcHRpb24gKHVzZXIgY2FuIHVzZSByb3dfbWVyZ2UgaW5zdGVhZCk7IG5ldyBmdW5jdGlvbiBnbyBnZXQKICAgaGFuZGxlciB3L291dCByZWdpc3RlcjsgYnJlYWsgY29tcGxleCBjb25kaXRpb24gaW50byBzaW1wbGVyIGNvbmRpdGlvbmFscyBzbwogICBicmVha3BvaW50cyBjYW4gYmUgc2V0IG9uIGNvbmRpdGlvbjsgZG9uJ3QgY2FsbCBsb3dlciBoYW5kbGVycyBpZiBubyByZXF1ZXN0cwogICBuZWVkIHByb2Nlc3NpbmcKCjIwMDQtMDItMjkgMTc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2l0ZXJhdG9yLmMsIGNvbnRhaW5lcl9saXN0X3NzbGwuYwosIGNvbnRhaW5lcl9udWxsLmM6CgogICBhZGQgc3VwcG9ydCBmb3IgY29udGFpbmVyIGNsZWFyCgoyMDA0LTAyLTI5IDE2OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIGVuYWJsZSBkbG1vZCBzdXBwb3J0IGlmIEhBVkVfTElCREwKCjIwMDQtMDItMjkgMTY6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjYXRjaCBiYWQgc2l6ZSBmb3IgZml4ZWQgc2l6ZSB0eXBlcwoKMjAwNC0wMi0yOSAxNjoyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHN1cHBvcnQgQ09OVEFJTkVSX0NMRUFSOyBtYWtlIHNvbWUgZnVuY3Rpb25zIHN0YXRpYyBpbmxpbmUKCjIwMDQtMDItMjkgMTY6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgZml4IGluc2VydC9yZW1vdmUvZnJlZSBpbmxpbmVzIHRvIHByb3Blcmx5IGRlYWwgd2l0aCBtdWx0aXBsZSBpbmRleGVzOyBhZGQgbmV3CiAgIENPTlRBSU5FUl9DTEVBUiBtYWNyby9jYWxsYmFjazsgYWRkIG5vdGVzIG9uIGZyZWVpbmcgcmV0dXJuZWQgYXJyYXkgZnJvbQogICBnZXRfc3Vic2V0CgoyMDA0LTAyLTI5IDE2OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHVzZSBtZmQgZXJyb3IgaW5zdGVhZCBvZiBzbm1wIGVycm9yCgoyMDA0LTAyLTI5IDE2OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHNldHVwIHNpemUgbmFtZXMgYmVmb3JlIGluY2x1ZGluZyBnZW5lcmljIGZpbGUKCjIwMDQtMDItMjkgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgZXh0cmFuZW91cyBlbmQ7IGFkZCBjb21tZW50cwoKMjAwNC0wMi0yOSAxNjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBhZGQgZXhpdCgpIGNhbGwKCjIwMDQtMDItMjkgMTY6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnCgoyMDA0LTAyLTI5IDE1OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWc7IHVzZSBnbG9hYmwgdGFibGUgb2lkL3NpemUgdmFyOwogICBzd2l0Y2ggbWZkIHdyYXBwZXIgZnVuY3Rpb25zIHRvIHVzZSBzdGFuZGFyZCBuZXcgYXBpIHBhcmFtZXRlcnM7IG5ldyBvcHRpb25hbAogICBjYWNoZTsgdXNlIHR3byBuZXcgaGVscGVyczogbmV0c25tcF9iYWJ5X3N0ZXBzX2FjY2Vzc19tdWx0aXBsZXhlciBhbmQKICAgbmV0c25tcF9jb250YWluZXJfdGFibGVfaGFuZGxlcjsgbG9vayBmb3IgZGF0YS9wdXQgY3JlYXRlZCByb3cgZGF0YSBpbiByZXF1ZXN0CiAgIGFsYSBjb250YWluZXIgdGFibGUgaGFuZGxlciBmb3IgbG93ZXIgaGFuZGxlcnM7IHR3ZWFrcyBmb3IgdXNpbmcgbmV3IHNpbmdsZQogICBmaWxlIGFjY2VzcyBtZXRob2RzCgoyMDA0LTAyLTI5IDE1OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWc7IG1ha2UgdGFibGUgb2lkL3NpemUgYSBnbG9iYWwKICAgdmFyOyBzd2l0Y2ggbWZkIHdyYXBwZXIgZnVuY3Rpb25zIHRvIHVzZSBzdGFuZGFyZCBuZXcgYXBpIHBhcmFtZXRlcnMKCjIwMDQtMDItMjkgMTU6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjCjoKCiAgIHVzZSByZXBvcnQgcHJvZ3Jlc3MgZmxhZzsgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWcKCjIwMDQtMDItMjkgMTU6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHR3ZWFrcyB0byB1c2UgbmV3IHNpbmdsZSBmaWxlIGFjY2VzcyBtZXRob2RzIChwcm9jZXNzaW5nIHR5cGUgZmxhZykKCjIwMDQtMDItMjkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHRlc3QgbmV3IGZsYWcgZm9yIGxlc3MgdmVyYm9zZSBvdXRwdXQ7IGRvY3VtZW50IHRyYW5zaWVudCB2YWx1ZXMgaW4gY29tbWVudHMKICAgYW5kIGdlbmVyYXRlZCB0YWJsZSBkZWZhdWx0IGZpbGU7IG1ha2Ugc3VyZSBtZmQgZGVmYXVsdHMgaGF2ZSBiZWVuIHByb2Nlc3NlZAoKMjAwNC0wMi0yOSAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBkZWZhdWx0IHRvIG5vIG1hcHBpbmcsIGV4Y2VwdCBmb3Igbm9kZXMgdy9lbnVtczsgdXNlIHBhcmFtIG5hbWVzIGZvciBub2RlCiAgIG5hbWVzOyBwcm9wZXJseSBlc2NhcGUgbGVuIHZhciBuYW1lCgoyMDA0LTAyLTI5IDE1OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIHR3ZWFrIG9yZGVyIG9mIHRlc3RpbmcgY29uZGl0aW9uYWxzCgoyMDA0LTAyLTI5IDE1OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgY29tbWVudCB0d2Vha3M7IG1ha2Ugc3VyZSB0byBjbGVhciB0bXAgdmFyIGJlZm9yZSB1c2UKCjIwMDQtMDItMjkgMTU6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywKICAgICBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgZ2VuZXJhdGluZyBmZXdlciBmaWxlcwoKMjAwNC0wMi0yOSAxNTowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmM6CgogICBuZXcgZmlsZSB0byBnZW5lcmF0ZSBjb21iaW5lZCBvaWQvZW51bSBoZWFkZXIKCjIwMDQtMDItMjkgMTQ6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGluaXQgbmV3IGZsYWcgZm9yIGNyZWF0aW5nIGZld2VyIGZpbGVzOyBpbml0IG5ldyBmbGFnIGZvciBwcm9jZXNzaW5nIHBhcnRzCiAgIG9mIGZpbGVzICh1bnRpbCBJIGNhbiBmaWd1cmUgb3V0IGlmIEkgY2FuIGNvbnZlcnQgdG8gbmV3IGRlZmluZS9jYWxsZGVmaW5lKQoKMjAwNC0wMi0yOSAxNDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBuZXcgYWNjZXNzIG1ldGhvZCBkZWZpbmVzCgoyMDA0LTAyLTI5IDE0OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtc2V0dXAubTJpOgoKICAgcmVtb3ZlIGZpbGVzICAobWVyZ2VkIGludCBtZmQtYWNjZXNzLXVuZG9ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpKQoKMjAwNC0wMi0yOSAxNDo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIG1lcmdlIG11bHRpcGxlIGFjY2VzcyBmaWxlcyBpbnRvIG9uZSBmaWxlCgoyMDA0LTAyLTI3IDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGZpeCB0aGUgY2FzZSB3aGVyZSBpbmNvbWluZyBnZXRidWxrcyB3aXRoIG5vIHJlcGVhdGluZyB2YXJiaW5kcyBpcyByZWNlaXZlZC4KCjIwMDQtMDItMjcgMTU6MDQgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBwZXJsL01ha2VmaWxlLlBMLAogICAgIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHBhdGNoIFsgOTA1NDY1IF0gTWluR1cgUGVybCBtb2R1bGUgY29tcGlsaW5nIHdpdGggQWN0aXZlU3RhdGUgUGVybAoKMjAwNC0wMi0yNyAwNzoxOCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjb25zdHJ1Y3QgaW5zdGFsbCB0cmVlIHNpbWlsYXIgdG8gaW5zdGFsbCB0cmVlIHRoYXQgZ2NjIGJ1aWxkcyB1c2UuCgoyMDA0LTAyLTI3IDA2OjA1ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgYnVpbGQgTVNWUyByZWxlYXNlIGFuZCBkZWJ1ZyB2ZXJzaW9ucyBoYXZpbmcgdGhlIHNhbWUgbmFtZS4KCjIwMDQtMDItMjcgMDU6NDIgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBidWlsZCBNU1ZTIHJlbGVhc2UgYW5kIGRlYnVnIHZlcnNpb25zIGhhdmluZyB0aGUgc2FtZSBuYW1lLgoKMjAwNC0wMi0yNyAwNToxMSAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBjb25zdHJ1Y3QgaW5zdGFsbCB0cmVlIHNpbWlsYXIgdG8gaW5zdGFsbCB0cmVlIHRoYXQgZ2NjIGJ1aWxkcyB1c2UuCgoyMDA0LTAyLTI3IDA0OjUwICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBlbmFibGUgZ2NjIGJ1aWxkcyBvZiBXaW5kb3dzIHNlcnZpY2UgY29kZSBmb3IgdGhlIGFnZW50LgoKMjAwNC0wMi0yNiAxNzoyMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICByZW1vdmUgdW5uZWNlc3Nhcnkgc2V0dGluZyBvZiBORVRTTk1QX0RTX0xJQl9BUFBUWVBFLgoKMjAwNC0wMi0yNiAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBjb21tb24taXplIGxvb3AgYW5kIHNhdmluZyBvZiBzdGF0ZSB2YXJpYWJsZXMgdGhyb3VnaCBhIGNyZWF0aXZlIHVzZQogICBvZiByZWZlcmVuY2VzLgoKMjAwNC0wMi0yNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBAZGVmaW5lIHNlY3Rpb25zIHdoaWNoIGNhbiBiZSBsYXRlciByZWZlcnJlZCB0byBieSBAY2FsbGRlZmluZQoKMjAwNC0wMi0yNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZG94eWdlbiBjb25maWcgZmlsZS4KICAgLSBUcmFwUmVjZXZpZXIgcGVybCBtb2QuCgoyMDA0LTAyLTI2IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIERvbid0IGNhbGwgJ1RDUF9Db3VudF9Db25uZWN0aW9ucycgaWYgdGhlIHRjcFRhYmxlIG1vZHVsZSBpc24ndCBpbmNsdWRlZC4KCjIwMDQtMDItMjYgMDY6MzIgIGR0czEyCgogICAqIEZBUToKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyB0d2Vha3MgdG8gQnJ1Y2UncyBGQVEgY2hhbmdlcy4KICAgR29zaCwgYnV0IERhdmUncyBhIHBpY2t5IGJ1Z2dlciBhdCB0aW1lcy4KICAgTmV2ZXIgbWluZCwgcGVyaGFwcyBpZiB5b3UgbGV0IGhpbSBhbXVzZSBoaW1zZWxmIHdpdGggdGhlIGRvY3VtZW50YXRpb24sCiAgIHlvdSBtaWdodCBiZSBhYmxlIHRvIGtlZXAgaGltIGF3YXkgZnJvbSBtb3JlIGNyaXRpY2FsIGJpdHMgb2YgdGhlIHByb2plY3QuLi4uCgoyMDA0LTAyLTI1IDIzOjQ3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jOgoKICAgcmVtb3ZlIENSIGFjY2lkZW50YWxseSBpbnNlcnRlZCBwcmV2aW91c2x5LgoKMjAwNC0wMi0yNSAyMTo0MiAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgdXNlIFJGQyAzMzMwIHBlcm1pdHRlZCBhZGRyZXNzIGZvciB0aGlzIGhvc3Qgd2hlbiBsb29raW5nIGluIGdldF9teWFkZHIKCjIwMDQtMDItMjUgMTY6NTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRW5hYmxlIEFFUyBzdXBwb3J0IGZvciB0aGUgU05NUCBtb2R1bGUgKGNhbid0IGJlbGlldmUgaXQncyBiZWVuIG1pc3NpbmcpCgoyMDA0LTAyLTI1IDE0OjQ2ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIHVubmVlZGVkIHdvcmthcm91bmQgcGF0Y2ggWyA4NDA4MzAgXSBTTk1QLnhzIEZyZWUgdG8gd3JvbmcgcG9vbCBjcmFzaCBvbiBXaW5kb3dzCgoyMDA0LTAyLTI1IDEzOjA2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBhdGNoIFs5MDE5NDRdIHdpbjMyIGRvYyB1cGRhdGVzIGZyb20gQWxleCBCdXJnZXIKCjIwMDQtMDItMjQgMTA6MzkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgdXNlIHdpbnNvY2sgZ2V0aG9zdGJ5bmFtZSwgZ2V0c2VydmJ5bmFtZSBvbiBtaW5ndzMyLgoKMjAwNC0wMi0yNCAwOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBlciBCZXJuaGFyZCBQZW56OiBkZWVwIGNvcHkgb2YgaW5jbHVkZSB0cmVlCgoyMDA0LTAyLTI0IDA2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIGJ1ZyA5MDI3MjIgXSBBYmxlIHRvIGRlbGV0ZSB2aWV3IGV2ZW4gd2hlbiBzdG9yYWdlIHR5cGUgPSBwZXJtYW5lbnQKCjIwMDQtMDItMjQgMDU6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIHBhdGNoIFs5MDM0MjRdIHBlciBBbmR5IFNtaXRoOiBpZmRlZiB3aW4zMiBmaXggZm9yIHRjcFRhYmxlLmMgKGN5Z3dpbikKCjIwMDQtMDItMjMgMTY6MzIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIFBhdGNoICM5MDE0NjAgZnJvbSBCcnVjZSBTaGF3OiB1cGRhdGluZyBtaXNjIEZBUSBpbmZvcm1hdGlvbgoKMjAwNC0wMi0yMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIHVwZGF0ZWQgcGVybCBidWlsZCBpbmZvCgoyMDA0LTAyLTIzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgcGF0Y2ggIzkwMTM3NSBmcm9tIEJydWNlIFNoYXc6IHNvbWUgaW5mb3JtYXRpb24gb24gSU5TVEFMTCBpcyBzdGFsZQoKMjAwNC0wMi0yMyAxMzoyOSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHVuZG8gcHJldmlvdXMgcGF0Y2ggLS0gbm8gc2VtaS1jb2xvbnMgaW4gREVGQVVMVF9NSUJ7RklMRVMsRElSU30KCjIwMDQtMDItMjMgMTA6NTcgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBjb252ZXJ0IG90aGVyIGxpc3Qtb3JpZW50ZWQgc2V0dGluZ3MgdG8gY29uc2lkZXIgc2VtaS1jb2xvbiBkZWxpbWl0ZXIgZm9yIG1pbmd3MzIKCjIwMDQtMDItMjIgMDk6NDggIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwZXIgQWxleEI6IGFsc28gaW5zdGFsbCBzbm1wY29uZiBmaWxlcwoKMjAwNC0wMi0yMSAxMzo1NiAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIHNubXBsaWIvdG9vbHMuYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgd2luMzIvbGlic2RsbC5kc3c6CgogICBBcHBseSBwYXRjaCAjODk4NDY0IHRvIGZpeCBidWdzICM4OTYwMzAgYW5kICM3NzM0MTIKCjIwMDQtMDItMjAgMDc6MTggIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgY29uZmlndXJlOgoKICAgcGVyIEFsZXhCOiBmaXggREVGQVVMVF9NSUJTIHRvIHVzZSAnOycgc2VwYXJhdG9yIG9uIFdpbjMyLgoKMjAwNC0wMi0xOSAyMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBXaG9vcHMuICBUaGF0IHdvdWxkIG5vdCBoYXZlIHdvcmtlZC4gIFNpbGx5IG1lLgoKMjAwNC0wMi0xOSAyMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjaGVjayBudW1iZXIgb2Ygc3VwcG9ydCBwcm9jZXNzb3JzIHByb3Blcmx5CgoyMDA0LTAyLTE5IDIwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFsgOTAwMjQ0IF0gc3VwcG9ydCB1cCB0byAzMiBDUFVzIG9uIGxpbnV4IGZyb20gTWljaGFsIEx1Y3phawoKMjAwNC0wMi0xOSAxOTo0MSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIGZpeCBidWcgODk4NTA5IGZ1bmN0aW9uIHBvaW50ZXIgcHJvdG90eXBlcyBkZWZpbmVkIHR3aWNlCgoyMDA0LTAyLTE5IDE4OjUwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWxsb3cgRE9TIHZvbHVtZSBuYW1lIFtBLVpdOiB0byBiZWdpbiB0aGUgcGF0aCBzcGVjIGZvciBwcmVmaXhlcwoKMjAwNC0wMi0xOSAwOTo0MSAgc2xpZgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggc3BlbGwgTlNDX0VYRUNfUFJFRklYCgoyMDA0LTAyLTE4IDIzOjM1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIHBlciBBbGV4QjogLXdpbjMyIHN1cHBvcnQKCjIwMDQtMDItMTggMjM6MzUgIHNsaWYKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHBlciBBbGV4QjoKICAgLWFkZCBXaW4zMiBzdXBwb3J0IGZvciBzdGFydGluZyAvIHN0b3BwaW5nIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgLWFsbG93IHNwYWNlcyBpbiBzbm1wdGVzdC5jbWQgZmlsZQoKMjAwNC0wMi0xOCAyMzozNCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICAtbWFrZSAkbXkgb3B0cyBnbG9iYWwgc28gaXQncyB2aXNpYmxlIHRvIEdldFRlc3RJbmZvKCkKICAgLXJlLXdyaXRlIHdpbjMyIGNvZGUgY3JlYXRlIHNubXB0ZXN0LmNtZCBmaWxlCgoyMDA0LTAyLTE4IDIzOjI3ICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbm90aWZ5LnQ6CgogICBwZXIgQWxleEI6IHRlc3QgdGhhdCB2YXJpYWJsZXMgYXJlIGRlZmluZWQgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA0LTAyLTE4IDIzOjE3ICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgYnVsa3dhbGsudDoKCiAgIHBlciBBbGV4QjogZGlzYWJsZSBhc3luY2ggdGVzdHMgd2hlbiBydW4gb24gd2luMzIgcGxhdGZvcm0uCgoyMDA0LTAyLTE4IDIzOjAwICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWlibG9hZC50OgoKICAgcGVyIEFsZXhCOiBhZGQgbWlzc2luZyBzbm1wdGVzdF9jbGVhbnVwIGNhbGwKCjIwMDQtMDItMTggMjI6NDUgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgcGVyIEFsZXhCOiB0eXBvIGZpeCAiY29tcGlsZWQgdGhlIgoKMjAwNC0wMi0xOCAyMjo0MCAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZyb20gQWxleCBCdXJnZXI6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yIC1ORVQtU05NUC1JTi1TT1VSQ0UgY29tbWFuZCBwYXJhbS4KCjIwMDQtMDItMTggMTI6MzUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGEgdjMtc2VjdXJpdHkgYXV0by1idWlsdCBoZWFkZXIgZHVyaW5nIGRpc3RjbGVhbgoKMjAwNC0wMi0xOCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkb2N1bWVudCAtQyBvcHRpb24gaW4gdXNhZ2UKCjIwMDQtMDItMTggMTE6NTcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHBhdGggaW4gdXNhZ2U7IHVzZSBuZXcgbnNnLXN1ZmZpYyBpbiB1cGxvYWQgcGF0aAoKMjAwNC0wMi0xOCAxMTo0MCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBJTlNUQUxMX0JBU0UgLXJlbGF0aXZlIG1rdGVtcCBmaWxlIHBhdHRlcm4uCgoyMDA0LTAyLTE4IDA5OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSAjIGVyciBsaW5lcyByZXBvcnRlZCBjb25maWd1cmFibGUuIGRlZmF1bHQgdG8gMjUKCjIwMDQtMDItMTggMDY6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIGZvciAnaW42YWRkcl9hbnknIHVuZGVyIFdpbmRvd3MKICAgKEFsdGhvdWdoIHRoZXJlJ3MgYW4gZXh0ZXJuYWwgZGVjbGFyYXRpb24gbWVudGlvbmVkIGluCiAgICA8d3MydGNwaXAuaD4sIHRoZXJlIG5vIGFjdHVhbCB2YXJpYWJsZSBpbiB0aGUgbGlicmFyeSkKCjIwMDQtMDItMTcgMTA6MzMgIGhhcmRha2VyCgogICAqIG1ha2Vub3N5c2RlcGVuZC5wbDoKCiAgIHJlZ2V4cCB0b3VjaHVwcwoKMjAwNC0wMi0xNyAwNzoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGJ1bXAgTUFYVEMgdXAgdG8gNDA5NgoKMjAwNC0wMi0xNyAwNzoyNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgYXBwZW5kIHN1ZmZpYyB0byBidWlsZCBkaXIgd2hlbiBidWlsZGluZyBkZWZhdWx0IGJ1aWxkIGRpcjsgcmVtb3ZlCiAgIHN5c3RlbSBzcGVjaWZpYyB0d2Vha3MgZm9yIHNmIGNmLCB0aGV5IHNob3VsZCBnbyBpbiB+Ly5zbm1wL25zYi1yYwoKMjAwNC0wMi0xNyAwNTo1NCAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGVycm9yIGFmdGVyIGNoYW5nZSBmb3IgRml4IFs4MDE5MjhdCgoyMDA0LTAyLTE3IDA0OjM5ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggWzgwMTkyOF0gd3JvbmcgY2FsbCBvZiBzdHJsY3B5IGluIHVwdGltZV9zdHJpbmcKCjIwMDQtMDItMTcgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVHdlYWsgSVB2NiB0cmFuc3BvcnRzIHNvIHRoYXQgdGhleSBjb21waWxlIHVuZGVyIFdpbmRvd3MuCgoyMDA0LTAyLTE3IDAyOjQyICBkdHMxMgoKICAgKiBzbm1wbGliLzogaW5ldF9udG9wLmMsIGluZXRfcHRvbi5jOgoKICAgUHJvdmlkZSBpbXBsZW1lbnRhdGlvbnMgb2YgJ2luZXRfbnRvcCcgYW5kICdpbmV0X3B0b24nIGZvcgogICBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtIG5hdGl2ZWx5LgoKMjAwNC0wMi0xNyAwMjoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXggWzg5Njc5M10gbG9hZGF2ZS5jIGluY2x1ZGVzIHN5cy9zdGF0LmggdHdpY2UKCjIwMDQtMDItMTcgMDA6NDUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaDoKCiAgIGZpeCBidWcgODk4NTA5IGZ1bmN0aW9uIHBvaW50ZXIgcHJvdG90eXBlcyBkZWZpbmVkIHR3aWNlCgoyMDA0LTAyLTE2IDIxOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICByZW1vdmVkIHVudXNlZCBmdW5jdGlvbiBmcm9tIGxhc3QgcGF0Y2gKCjIwMDQtMDItMTYgMjE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIHBhdGNoIFsgODM2MzkzIF0gTW9yZSBwcm9jIGltcHJvdmVtZW50cyBmb3IgTGludXggZnJvbSBIb3dhcmQgV2lsa2luc29uCgoyMDA0LTAyLTE2IDE4OjI4ICBzbGlmCgogICAqIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBub3RlIHN1Yi1kaXJlY3Rvcnkgd2hlcmUgIm5tYWtlIiBvdXRwdXQgZmlsZXMgYXJlIHdyaXR0ZW4uCgoyMDA0LTAyLTE2IDE1OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUywgVEVTVENPTkYuc2gsCiAgICAgZXZhbF90b29scy5zaCwgdGVzdHMvU3ZhY21jb25maWcsIHRlc3RzL1N2YW55Y29uZmlnCiwgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAxNHNubXB2MmNnZXQsCiAgICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LAogICAgIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAosIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgICAgdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RzL1QwMjBzbm1wdjNnZXQsCiAgICAgdGVzdHMvVDAyMXNubXB2M2dldG5leHQsIHRlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwKICAgICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uCiwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdHMvVDA1MHNubXB2M3RyYXAsCiAgICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsCiAgICAgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0cy9UMTAwYWdlbnRodXAsCiAgICAgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCwKICAgICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsCiAgICAgdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCB0ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwKICAgICB0ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsIHRlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwKLCB0ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWw6CgogICBQYXRjaCAjNzAyODM1IChwbHVzIHR3ZWFrcyk6IHBhdGNoIHRvIGVuYWJsZSB0ZXN0IGNhc2VzIHJ1biBvbiBkaWZmZXJlbnQgdHJhbnNwb3J0IGRvbWFpbiBmcm9tIFhpYW9mZW5nIExpbmcKCjIwMDQtMDItMTYgMTQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmM6CgogICBGaXggYnVnIFsgODk2Nzc3IF0gZXJyb3JtaWIuYyBpbmNsdWRlcyBzeXMvc3RhdC9oIHR3aWNlCgoyMDA0LTAyLTE2IDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDQtMDItMTYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQnVnIFsgODk3NTUwIF0gUGVybCBTTk1QLnBtIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYXR0YWNoZWQgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcgoKMjAwNC0wMi0xNiAxMjo0NSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUGF0Y2g6IFsgODE5MjQxIF0gQWRkIHRvIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xNiAxMTo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFBhdGNoIFsgODk4MTYwIF0gU25tcHRhYmxlIGxvb3BzIGlmIHRhYmxlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIG1pYiBmcm9tIENyaXNwaW4gRmxvd2VyZGF5CgoyMDA0LTAyLTE2IDEwOjMwICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIG1ha2UgbWVudSBwYXRoIHRvIHJlZ2lzdGVyIFBTREsgbW9yZSBjb21wbGV0ZS4KCjIwMDQtMDItMTYgMTA6MDEgIHNsaWYKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgcmVtb3ZlIHBsYXRmb3JtIFNESyBoZWFkZXIgU25tcC5oIGZyb20gU09VUkNFUyBsaXN0LgoKMjAwNC0wMi0xNiAwNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBGaXggYSBtaXNzaW5nIHZhcmlhYmxlIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wMi0xNSAxODoxOSAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIGNvcHkgZGxsIHRvIHN5c3RlbTMyIGNhY2hlCgoyMDA0LTAyLTE1IDE1OjQ3ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICB0aGUgcHJvamVjdCBkZXBlbmRlbmNpZXMgYXJlIG5vdCByZWxpYWJsZS4gIHJlbW92ZSB0aGVtLgoKMjAwNC0wMi0xNSAxMjowMCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBYWVggY29tbWVudHM7IG5vdGUgdGhhdCBzbm1wX2luaXRfbWliX2ludGVybmFscyBkb2VzIG5vdGhpbmcuCgoyMDA0LTAyLTE1IDEwOjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAwNC0wMi0xNSAxMDozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhbmQgc291cmNlIG5ldyBjb21tb24gY29uZmlnIGZpbGUKCjIwMDQtMDItMTQgMDk6NDEgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIGxpYnNubXAgcHJvamVjdAoKMjAwNC0wMi0xNCAwNjoyMCAgc2xpZgoKICAgKiBSRUFETUU6CgogICBBZGQgTm9haCBGcmllZG1hbiwgZml4aW5nIGJ1ZyA4ODcyOTEKCjIwMDQtMDItMTQgMDI6NTEgIHNsaWYKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgUmVtb3ZlIGdsb2JhbCBkZXBlbmRlbmN5IGZvciBsaWJzbm1wIHByb2plY3QgKG5vdCBuZWNlc3NhcnkpLgoKMjAwNC0wMi0xMyAxNjowMiAgc2xpZgoKICAgKiB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgYmV0dGVyIGV4cGxhbmF0b3J5IG1lc3NhZ2VzLCBhbmQgaW1wcm92ZWQgdGVzdCByZXN1bHRzIGNvbGxlY3RlZC4KCjIwMDQtMDItMTMgMTM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg6CgogICBQYXRjaCBbIDgxMjAzNCBdIGlwQWRFbnRSZWFzbU1heFNpemUgZG9lcyBub3QgcmV0dXJuIGRhdGEgb24gc25tcGdldCBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMyAxMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggQUVTIG5vdGUgb3V0cHV0IGJyb2tlbiBieSBsYXN0IHBhdGNoCgoyMDA0LTAyLTEzIDEyOjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3BrY3MuYywKICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBQYXRjaCBbIDgwNzM3NSBdIGFkZCBzdGFuZGFyZCBQS0NTIzExIGludGVyZmFjZSBzdXBwb3J0IGZvciB1c206IGFsdGVybmF0aXZlIHNlY3VyaXR5IGxpYnJhcnkgKG9wZW5zc2wgbm8gbG9uZ2VyIG5lZWRlZCBvbiBmdXR1cmUgc29sYXJpcykgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTMgMTE6NTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQYXJ0IG9mIHBhdGNoIChzb21lIGhhZCBiZWVuIGRvbmUpIGZvciBbIDc2NzMxNiBdIGZpeCBoYW5kbGluZyBvZiBhdWdtZW50ZWQgdGFibGVzIGluIHBlcmwgbW9kdWxlIGZyb20gUmFuZHkgQ291ZXkKCjIwMDQtMDItMTMgMTE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgU2Vjb25kIHBhcnQgb2YgZGlza2lvIGxvYWQgYXZlcmFnZSBwYXRjaAoKMjAwNC0wMi0xMyAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0CjoKCiAgIHBhdGNoIFsgNzk1NDI0IF0gZGlza2lvTEEgLSBkaXNrIGxvYWQgYXZlcmFnZSBmb3IgRnJlZUJTRCAoZGV2c3RhdCkgZnJvbSBSb2plcgoKMjAwNC0wMi0xMyAxMToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCBbIDc5OTA1MCBdIEFJWCBwYXRjaGVzIC0gdWNkLXNubXAvZGlza2lvIGZyb20gTWljaGFlbCBLdWthdAoKMjAwNC0wMi0xMyAxMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWlzc2VkIGEgcG9ydGlvbiBvZiBwYXRjaCAjODE1NDM5IGZpeGluZyBhdXRoIGZhaWx1cmUgdHJhcHMuICBwYXRjaCBnb3QgY29uZnVzZWQgYnkgcHJldmlvdXNseSBleGlzdGluZyBjb2RlIGJlZm9yZS4KCjIwMDQtMDItMTMgMTA6NDggIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvbmUgbGluZSBjaGFuZ2UgdG8gcHJvcGVybHkgdGVybWluYXRlIGEgY29tbWVudCBpbmplY3RlZCBieSB0aGUgcHJldmlvdXMgcGF0Y2guCgoyMDA0LTAyLTEzIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBOaWNrIEJhcmthcyB0byB0aGUgUkVBRE1FCgoyMDA0LTAyLTEzIDEwOjM2ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVwbGFjZSBnZXRfdHJlZV9oZWFkKCkgZm9yIHJlZmVyZW5jZXMgdG8gdmFyaWFibGVzIE1pYiBhbmQgdHJlZV9oZWFkLgogICBSZW1vdmUgRExMX0lNUE9SVCBsaW5lcywgYW5kIEJPT1Qgc2VjdGlvbiwgYXMgdGhleSBhcmUgbm90IG5lZWRlZC4KICAgTWFyayBxdWVzdGlvbmFibGUgY29tbWVudGVkIGNvZGUgd2l0aCBYWVggZm9yIHBvc3NpYmxlIHJlbW92YWwuCgoyMDA0LTAyLTEzIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFBhdGNoIFsgODk1NTA5IF0gbWVtb3J5IGluZm8gZnJvbSB1Y2Qtc25tcCBtaWIgb24gbGludXggMi42IGZyb20gTmljayBCYXJrYXMKCjIwMDQtMDItMTMgMTA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIFBhdGNoIFsgODk0NzExIF0gU29sYXJpcyBkaXNrIHRlc3QgZmFpbHMgb24gc29tZSBPUydzIGZyb20gQnJ1Y2UgU2hhdwoKMjAwNC0wMi0xMyAxMDowNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2FzbjEuYywKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgWyA4NDkxNTggXSA1LjE6IC9jb25zdC8gZml4ZXMgZm9yIHRoZSBBUEkgZnJvbSBTdGVwaGVuIEouIEZyaWVkbAoKMjAwNC0wMi0xMiAyMDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgZGVmaW5lcwoKMjAwNC0wMi0xMiAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggWyA4MTU0MzkgXSBzbm1hZ2VudCBkb2VzIG5vdCBzZW5kIGF1dGggZmFpbHVyZSB0cmFwcyBmb3IgdjMgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTIgMTc6MDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICByZW1vdmUgY29weXJpZ2h0IGNvbW1lbnQgYWNjaWRlbnRpY2FsbHkgcGxhY2VkCgoyMDA0LTAyLTEyIDE3OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgWyA4MTIwMDUgXSBzZWdtZW50YXRpb24gZmF1bHQgaW4gc25tcHRhYmxlCgoyMDA0LTAyLTEyIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBbIDgxMTI3OCBdIG1ha2UgYWdlbnR4IHVkcC90Y3AgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBQYXRjaCBbIDgwOTQzOCBdIEZpeCBzZXZlcmFsIHByb2JsZW1zIHdpdGggaG9zdCByZXNvdXJjZXMgTUlCIGZyb20gQm9iIFJvd2xhbmRzIChmaXhlcyBtdWx0aXBsZSBidWdzKQoKMjAwNC0wMi0xMiAxNTowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG5vdGUgYWJvdXQgc25tcHRyYXBkIHBlcmwKCjIwMDQtMDItMTIgMTQ6NDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkIGEgc2VjdGlvbiAiQnVpbGRpbmcgd2l0aCBNaW5HVyIKCjIwMDQtMDItMTIgMTE6MzUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgQWRkIGhvdyB0byAod2l0aCBzY3JpcHQpIGZvciBidWlsZGluZyBQZXJsIFNOTVAgbW9kdWxlcyB1c2luZyBNU1ZDLgoKMjAwNC0wMi0xMiAwODozNiAgc2xpZgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgY3JlYXRlIHNubXBsaWJzZGlyIGZvciBzbm1wX3BlcmxfdHJhcGQucGwsIGJlZm9yZSBpbnN0YWxsaW5nIHRoZXJlLgoKMjAwNC0wMi0xMiAwODozMSAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcAosIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcAosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHJlbW92ZSB1bnVzZWQgY29tcGlsZSBjb25zdGFudCB0aGF0IFNsaWYgY3JlYXRlZCBkdXJpbmcgaGlzIERMTCBleHBlcmltZW50cy4KCjIwMDQtMDItMTIgMDY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBuZXcgdGFibGUgY29udGFpbmVyIGhlbHBlcgoKMjAwNC0wMi0xMiAwNTozMiAgc2xpZgoKICAgKiBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGNsZWFudXAgUGVybCBTTk1QIG1vZHVsZSBidWlsZCB0aHJvdWdoIHR5cGUgY2FzdGluZyBhbmQKICAgcmVtb3ZpbmcgdW51c2VkIHZhcmlhYmxlcy4KICAgRm9yIFNOTVAueHMsIHRoZXJlIHdhcyBhIG5hbWVkIHZhcmlhYmxlICdiZXN0X2d1ZXNzJyB0aGF0IGJsb2NrZWQKICAgdGhlIGNhbGxpbmcgcGFyYW0gb2YgInNubXBfZ2V0X3R5cGUiLCByZW1vdmVkIHdpdGggdGhpcyB1cGRhdGUuCiAgIFRoZSB3aW4zMiBjb25maWcuaCBubyBsb25nZXIgdHJpZXMgdG8gZGVmaW5lIGJjb3B5LGJ6ZXJvLGJjbXAsc3RyY2FzZWNtcC4KCjIwMDQtMDItMTIgMDE6MjIgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIHVzZSBhIHJlYXNvbmFibGUgdmFsdWUgKDEpIGZvciBub24tcmVwZWF0ZXIgaW4gZmlyc3QgYnVsa3dhbGsuCgoyMDA0LTAyLTEyIDAwOjMyICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaCBiZWZvcmUgdXNpbmcgSEFWRV9SRUdFWF9ILgogICByZXBsYWNlIGNvbXB1dGVfbWF0Y2ggd2l0aCB0aGUgbm9uLXJlZ2V4IHNhdnZ5IHZlcnNpb24gZnJvbSBzbm1wbGliL3BhcnNlLmMuCiAgIEZpbmFsbHksIGRpc2FibGUgV2luMzIgRExMIGRlY29yYXRpb24sIGFzIERMTCBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLgoKMjAwNC0wMi0xMSAyMDo1NCAgc2xpZgoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzbm1wdHJhcGQgYnVpbGRzIHVzaW5nIHRoZSBzYW1lIHByb2plY3QgZmlsZSBmb3IgUFNESyBvciBub24tUFNESwoKMjAwNC0wMi0xMSAxODoyNiAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmaXggYnVnIFsgODk1MzY3IF0gV2luMzIgUGVybCBidWlsZCAtTkVULVNOTVAtUEFUSCBhbmQgcGF0aHMgd2l0aCBzcGFjZXMKCjIwMDQtMDItMTEgMTc6NDIgIHNsaWYKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIG5ldHNubXBtaWJzc2RrLmxpYiByZW5hbWVkIHRvIG5ldHNubXBtaWJzLmxpYgoKMjAwNC0wMi0xMSAxNzoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBEbyBub3QgaGF2ZSBnZXR0YWJsZSByZXR1cm4gaGV4IGVuY29kZWQgc3RyaW5ncyBpZiBub3QgcHJpbnRhYmxlLiAgTm8KICAgb3RoZXIgZnVuY3Rpb24gZG9lcyB0aGlzLCBzbyB3aHkgd291bGQgZ2V0dGFibGUgYmUgYW55IGRpZmZlcmVudC4KCjIwMDQtMDItMTEgMTc6MTEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTVNWQyBidWlsZCByZXF1aXJlcyB1c2luZyBidXQgb25lIHdvcmtzcGFjZS4KCjIwMDQtMDItMTEgMTE6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyLzogLmN2c2lnbm9yZSwgQ2hhbmdlcywgTUFOSUZFU1QKLCBNYWtlZmlsZS5QTCwgUkVBRE1FLCBUcmFwUmVjZWl2ZXIucG0sCiAgICAgVHJhcFJlY2VpdmVyLnhzLCBjb25zdC1jLmluYywgY29uc3QteHMuaW5jLAogICAgIHBlcmxfc25tcHRyYXBkLmgsIHBwcG9ydC5oLCB0eXBlbWFwLAogICAgIGZhbGxiYWNrL2NvbnN0LWMuaW5jLCBmYWxsYmFjay9jb25zdC14cy5pbmMsIHQvMS50CjoKCiAgIEluaXRpYWwgcGFzcyBhdCBhbiBlbWJlZGRlZCBwZXJsIG1vZHVsZSBmb3Igc25tcHRyYXBkLgogICAgIFdoYXRzIG9kZCBmb3IgdHlwaWNhbCBpbml0aWFsIGNvZGUgZnJvbSBtZSBpcyB0aGF0IGl0J3MgZnVsbHkKICAgICBmdW5jdGlvbmFsIGFuZCBkb2N1bWVudGVkIGV2ZW4hCgoyMDA0LTAyLTExIDEwOjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIGRlZmF1bHRzLgoKMjAwNC0wMi0xMSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BlcmxfdHJhcGQucGw6CgogICBBIHBlcmwgYm9vdHN0cmFwcGluZyBzdGFydHVwIGZpbGUuCgoyMDA0LTAyLTExIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgcGVybCBzdGFydHVwIGZpbGUuCgoyMDA0LTAyLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW5pdGlhbGl6ZSBwZXJsCgoyMDA0LTAyLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgY3JlYXRlIGEgaGFuZGxlcl9kYXRhIGZpZWxkLgoKMjAwNC0wMi0xMSAwNzoyOCAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFNob3cgQUVTIG9ubHkgdG8gcmVmbGVjdCBwcmV2aW91cyBjaGFuZ2VzIC0tIFVzZSBBRVMgaW5zdGVhZCBvZiBBRVMxMjgsMTkyLDI1NgoKMjAwNC0wMi0xMSAwNjowOCAgc2xpZgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgYW5ub3VuY2UgY29ycmVjdCBudW1iZXIgb2YgdGVzdHMgKHdhcyAzNiwgbm93IDM4KQoKMjAwNC0wMi0xMSAwNjowNiAgc2xpZgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byByZWZsZWN0IGNoYW5nZSBpbiB2YWx1ZSBvZiBORVRTTk1QX0RTX01BWF9TVUJJRFMKCjIwMDQtMDItMTAgMTc6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggYWx3YXlzIGZhbHNlIHRlc3QKCjIwMDQtMDItMTAgMTY6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBuZXcgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbgoKMjAwNC0wMi0xMCAxNDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHJlbW92ZSBjb2RlIGJlZm9yZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMDQtMDItMTAgMTM6MjMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdG91Y2ggdXAgaW5zdHJ1Y3Rpb25zIGZvciBNU1ZDIGJ1aWxkcyB0aGF0IHVzZSBPcGVuU1NMCgoyMDA0LTAyLTEwIDA5OjA5ICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBtZXJnZSB1cGRhdGUgZnJvbSBCcnVjZSBmcm9tIDUtMS1wYXRjaGVzCgoyMDA0LTAyLTEwIDA4OjMzICBzbGlmCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgYXBwbHkgc25tcGNvbmYzIG9mIHBhdGNoIDgzNzk2NzsgYWRkIGNsb3NlIHRvIHJlYWRfY29uZmlnCgoyMDA0LTAyLTEwIDAzOjUwICBzbGlmCgogICAqIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBmaXggYnVnIDg5MjYxNgoKMjAwNC0wMi0wOSAxNTowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRW5hYmxlIHN0ZGVycmxvZyBpZiBubyBvdGhlciBsb2dnaW5nIGlzIGVuYWJsZWQgLSB0byBhdm9pZCB3YXJuaW5nCgoyMDA0LTAyLTA5IDE0OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXhwb3J0IENQUD1jcHAgb24gRGFyd2luIHNvIEFwcGxlJ3MgZ2NjIGRvZXNuJ3QgYnJlYWsgY29uZmlnX3JlcXVpcmUKCjIwMDQtMDItMDkgMDg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBmaXggY29sdW1uIG5hbWVzCgoyMDA0LTAyLTA5IDA4OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlX2NvbHVtbnMuaCwKICAgICBpZlhUYWJsZV9jb2x1bW5zLmg6CgogICBhZGQgbWlzc2luZyBmaWxlcwoKMjAwNC0wMi0wOSAwODoyNCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAo6CgogICBJbXBsZW1lbnQgYSBuZXcgaGVscGVyIHRvIGNvcGUgd2l0aCBza2lwcGluZyAiaG9sZXMiIGluIGEgdGFibGUKICAgKGFuZCB0d2VhayB0aGUgJ3RhYmxlX2RhdGEnIGhlbHBlciB0byBtYWtlIHVzZSBvZiBpdCkuCiAgIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHRoZSBfcmVxdWVzdF9zZXRfZXJyb3IoKSByb3V0aW5lIHRvIGJlCiAgIGEgYml0IGZsZXhpYmxlIGluIGFjY2VwdGluZyBleGNlcHRpb25zIHRoYXQgYXJlbid0IHN0cmljdGx5IHZhbGlkLgoKMjAwNC0wMi0wOSAwNzo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBFbnN1cmUgb25lIG9iamVjdCdzICd3cml0ZV9tZXRob2QnIGlzbid0IHBpY2tlZCB1cCBieSBhbnl0aGluZyBlbHNlLgoKMjAwNC0wMi0wOSAwNzozNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBHdWFyZCBhZ2FpbnN0IHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzIHRvIHN0cmNtcC9zdHJsZW4uCiAgIFByb2JhYmx5IHNob3VsZG4ndCBldmVyIGhhcHBlbiwgYnV0IERhdmUncyBpbiBhIHN1c3BpY2lvdXMgbW9vZC4KICAgUW46IFNob3VsZCB0aGVzZSBjaGFuZ2VzIGJlIGFwcGxpZWQgdG8gdGhlIDUuMS54ICg/JiA1LjAueCkgbGluZT8KCjIwMDQtMDItMDkgMDQ6MDUgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGJ1aWxkIGFnZW50IG9uIG1pbmd3LCB3aXRob3V0IHdpbjMyIFNDTSBnbHVlLgoKMjAwNC0wMi0wOSAwMzoyNiAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgYWRkIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAgdG8gYnVpbGQgc25tcGQuCgoyMDA0LTAyLTA4IDE5OjUwICBzbGlmCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgY2xlYW5lZCB1cCwgcmVhZHkgZm9yIG1haW5zdHJlYW0uICBIb3dldmVyLCBub3QgZ2NjLWZyaWVuZGx5LCBqdXN0IHlldC4KCjIwMDQtMDItMDggMTg6NTUgIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZWdlbiBjb25maWd1cmUgZnJvbSBjb3JyZWN0IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMi0wOCAxODoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oOgoKICAgbmV3IGRlZmluZSBVVE1QX0hBU19OT19QSUQKCjIwMDQtMDItMDggMTg6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgdXNlIG5ldyBkZWZpbmUgVVRNUF9IQVNfTk9fUElEOyBzaW1wbGlmeSBsb29wIGxvZ2ljCgoyMDA0LTAyLTA4IDE3OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGRvbid0IHB1dCBvcGVuIGJyYWNlIGluIGlmZGVmIGlmIGNsb3NlIGJyYWNlIGhhcyBubyBpZmRlZgoKMjAwNC0wMi0wOCAxNjoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4dHJhIHRyYW5zcG9ydHMgc2hvdWxkIGJlIGVtcHR5OyBDYWxsYmFjayBzaG91bGQgYmUgaW4gZGlzdCB0cmFuc3BvcnRzCgoyMDA0LTAyLTA4IDE1OjUwICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEluY2x1ZGUgc2FtcGxlIGRpc3BsYXkgZnJvbSBydW5uaW5nIGluc3RhbGwtbmV0LXNubXAuYmF0CgoyMDA0LTAyLTA4IDEwOjE2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi93aW5waXBlLmM6CgogICBXaXRoIGlucHV0IGZyb20gQWxleCBTbWl0aCwgYXBwbHkgY2hhbmdlcyB0byBpbXByb3ZlIG1pbmd3IGJ1aWxkcy4KCjIwMDQtMDItMDggMTA6MTIgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgTW92ZSB0aGUgZGlyZWN0b3J5IGZyb20gL3VzciB0byBDOlxQcm9ncmFtIEZpbGVzXE5ldC1TTk1QLgoKMjAwNC0wMi0wOCAxMDoxMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgTVNWQyBidWlsZCBpbnN0cnVjdGlvbnMgYXJlIHNpbXBsZXIsIHRoYW5rcyB0byBBbGV4IEJ1cmdlcidzIHByb2plY3Qvd29ya3NwYWNlIGNoYW5nZXMuCiAgIEFsc28sIGludHJvZHVjZWQgYSBiYXRjaCBjb21tYW5kIGZpbGUgdG8gc2ltcGxpZnkgaW5zdGFsbGF0aW9uIGFmdGVyIGJ1aWxkaW5nLgoKMjAwNC0wMi0wOCAwOTozNCAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgQXBwbHkgY2hhbmdlcyBvZmZlcmVkIGJ5IEFsZXggQnVyZ2VyIHRvIGNsZWFuIHVwIHByb2plY3RzIGFuZCB3b3Jrc3BhY2VzCiAgIGFuZCB0byBidWlsZCBzbm1wdHJhcGQgdXNpbmcgdGhlIFBsYXRmb3JtLVNESyB3b3Jrc3BhY2UgKHdpbjMyc2RrKS4KCjIwMDQtMDItMDYgMTU6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZyB3L2xpYndyYXAgaWYgd2UgY2FuIGZpbmQgdGhlIGhlYWRlcgoKMjAwNC0wMi0wNiAxMToyMSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFllYXIgdXBkYXRlIGZvciBTcGFydGEKCjIwMDQtMDItMDYgMTA6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIHBhdGNoIDg0MzkyNCBydW5fc2hlbGxfY29tbWFuZCB0byBxdW90ZSByZWRpcmVjdGVkIHBhcmFtZXRlcnMuCgoyMDA0LTAyLTA2IDA4OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIFJlLWluc3RhdGUgdGhlICdoeicgdmFyaWFibGUgZm9yIEZyZWVCU0QgKGJ1dCAqb25seSogRnJlZUJTRCkKCjIwMDQtMDItMDYgMDU6NTggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBhZ2VudF9hZGRyZXNzL3NubXBUcmFwQWRkcmVzcyBpbmZvcm1hdGlvbgogICAoQnVncyAjODY1MTc4ICYgIzg3NzU4NyBhbmQgUGF0Y2ggIzg4MzAyOCkKCjIwMDQtMDItMDUgMDg6MDQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcmV2aXNlZCBwZXIgcGVlciByZXZpZXcuCgoyMDA0LTAyLTA1IDA1OjQ1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEN1cnJlbnQgc3RhdHVzIGFwcGVhcnMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGludHJvZHVjdGlvbgogICBSZW1vdmVkIHJlZmVyZW5jZXMgdG8gYnVpbGRpbmcvdXNpbmcvaW5zdGFsbGluZyBuZXRzbm1wLkRMTAogICBBZGRlZCByZWdpc3RlcmluZyBhcyB3aW5kb3dzIHNlcnZpY2UKICAgTm90ZWQgbmV3IGRlcGVuZGVuY3kgb2Ygc25tcHRyYXBkIG9uIG5ldHNubXBtaWJzCiAgIE5vdGVkIHNubXB0cmFwZCBidWlsZHMgb25seSB1c2luZyB3aW4zMi5kc3cgd29ya3NwYWNlCiAgIEFkZGVkIEhvdyB0byBjaGFuZ2UgZXh0ZXJuYWwgcHJvamVjdCBzZXR0aW5ncyB0byBtYXRjaAogICBDbGFyaWZpZWQgd2hhdCBvdGhlciBwcm9qZWN0IHNldHRpbmdzIHNob3VsZCBiZSB1bm1vZGlmaWVkLgoKMjAwNC0wMi0wNSAwNToyNyAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgdW5yZWdpc3RlciBETEwgbGlicmFyeSBwcm9qZWN0IGZyb20gd29ya3NwYWNlcy4KCjIwMDQtMDItMDUgMDU6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGx5IHBhdGNoIDg0MzkxOSAtIG5ldyB0ZW1wRmlsZVBhdHRlcm4gc25tcC5jb25mIG9wdGlvbgoKMjAwNC0wMi0wNSAwNDo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIEFkZCB0aGUgTkVULVNOTVAtRVhBTVBMRVMtTUlCIHRvIHRoZSBsb2FkIGxpc3QKICAgKFBhdGNoICM4OTA4MzkgZnJvbSBZaXhpb25nIFpvdSkKCjIwMDQtMDItMDUgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENvcnJlY3QgdGhlIHVzZSBvZiBhIHdyb25nIGRlYnVnIHRva2VuIChQYXRjaCAjODg5Nzc3IGJ5IERpcmsgQmFsY2VyY3phaykKCjIwMDQtMDItMDUgMDQ6MzggIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQXBwbHkgcGF0Y2ggODUwNzg1IC0gaW5zdHJ1Y3Rpb25zIHRvIGNvcHkgaGVhZGVyIGZpbGVzIGZvbGxvd2luZyBidWlsZC4KCjIwMDQtMDItMDUgMDM6NDEgIHNsaWYKCiAgICogd2luMzIvOiBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBEb24ndCBidWlsZCB0aGUgUm1vbiBtb2R1bGVzLgoKMjAwNC0wMi0wNSAwMTo0OSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW46CgogICBBcHBseSBwYXRjaCA4NDM2NzkKCjIwMDQtMDItMDQgMjA6MTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIGV4cG9zZSBvbmUgbGVzcyBzdGF0aWMgZGF0YSB2YXJpYWJsZSAobG9naF9oZWFkKTsgbGlzdCB0d28gb3RoZXJzIGZvciBETEwuCgoyMDA0LTAyLTA0IDIwOjA3ICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwCiwgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwCiwgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgY2xlYW4gdXAgQkFTRSBDUFAgc2V0dGluZ3MuCgoyMDA0LTAyLTA0IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIERvbid0IG9wZXJhdGUgb24gYSBudWxsIHBvaW50ZXIgZm9yIGluZGV4ZXMgdGhhdCBkb24ndCBleGlzdC4KCjIwMDQtMDItMDQgMTQ6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBNZW50aW9uIHRoYXQgUm9iZXJ0IGhhcyB0aGUgYWJpbGl0eSB0byBzaWduIHBhY2thZ2VzIG5vdy4KCjIwMDQtMDItMDQgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB1c20uYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBVc2UgQUVTIGluc3RlYWQgb2YgQUVTMTI4LDE5MiwyNTYKCjIwMDQtMDItMDQgMTQ6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGNyZWF0ZSB0aGUgcGVyc2lzdGVudCBkaXJlY3RvcnkgaWYgaXQgaGFzbid0IGJlZW4gY3JlYXRlZCB5ZXQuCgoyMDA0LTAyLTA0IDEzOjAxICBzbGlmCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGNhc3QgdG8gcXVpZXQgbXN2YyBjb21waWxlci4KCjIwMDQtMDItMDQgMDU6MzEgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYwo6CgogICB1c2UgTmllbHMnIGNob2ljZXMgZm9yIG5hbWVzIHN1YnN0aXR1dGluZyBfX0ZVTkNUSU9OX18KCjIwMDQtMDItMDQgMDU6MjkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYXZvaWQgdm9pZCBjYXN0aW5nIGluIGZyZWUgdG8ga2VlcCBnY2MgaGFwcHkuCgoyMDA0LTAyLTAzIDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtZXJnZSBwYXRjaCBmcm9tIDUuMC1wYXRjaGVzCgoyMDA0LTAyLTAzIDE2OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBzdHJkdXAgdmFsdWUgZnJvbSBuZXRzbm1wX2RzX2dldF9zdHJpbmcsIHNpbmNlIGl0IGlzIGZyZWUnZCBsYXRlcgoKMjAwNC0wMi0wMyAxNDozMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzIHVzaW5nIGFwcHJvcHJpYXRlIHR5cGUgY2FzdGluZy4KCjIwMDQtMDItMDMgMTQ6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIHN5c3RlbS9taW5ndzMyLmg6CgogICBtb3ZlIGlmbmRlZiBIQVZFX1NTSVpFX1QgZnJvbSBNaW5HVyBzcGVjaWZpYyBoZWFkZXIgdG8gdHlwZXMgaGVhZGVyLAogICB0byBiZW5lZml0IG90aGVyIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCBkZWZpbmUgc3NpemVfdCAoZS5nLiwgbXN2YykuCgoyMDA0LTAyLTAzIDE0OjI1ICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgZXhwb3J0IHN5bWJvbHMgZm9yIGZ1bmN0aW9ucyB3aGVuIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBpcyBkZWZpbmVkLgoKMjAwNC0wMi0wMyAxNDoyNCAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBkb250IGluaXRpYWxpemUgdWNkLXNubXAgaW5pdF9kaXNrIGZvciBtc3ZjIGJ1aWxkcy4KCjIwMDQtMDItMDMgMTQ6MjEgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIGVuYWJsZSBBZ2VudFgsIFJtb24sIGRpc21hbi1ldmVudC1taWIsIGFuZCB1Y2Qtc25tcCBtb2R1bGUgZ3JvdXBzLgoKMjAwNC0wMi0wMyAxNDoxOSAgc2xpZgoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBkb24ndCBidWlsZCB0aGUgdWNkLXNubXAgZGlzayBtb2R1bGUgKG5vdCBpbXBsZW1lbnRlZCBmb3IgbSQgYnVpbGRzKQoKMjAwNC0wMi0wMyAwOToxNiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCBzbm1wbGliL3dpbnBpcGUuYwo6CgogICBGaW5pc2ggYXBwbHlpbmcgcGF0Y2ggODUyNjgyIGZvciBjYWxsYmFjayB0cmFuc3BvcnQgc3VwcG9ydCB1bmRlciBXaW4zMgoKMjAwNC0wMi0wMyAwODowMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQXBwbGllZCBwYXRjaCA4NTI2ODIgZm9yIGNhbGxiYWNrIHRyYW5zcG9ydCBvbiBXaW4zMjsgdG91Y2hlZCB1cCBNU1ZDIHByb2plY3QgZmlsZXMsIHRvby4KCjIwMDQtMDItMDMgMDc6MTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIG1vdmUgI2lmIEhBVkVfRVhFQ1YgdG8gaGVhZCBvZiBydW5fZXhlY19jb21tYW5kICBmb3IgcXVpZXRlciBNU1ZDIGJ1aWxkcy4KCjIwMDQtMDItMDMgMDM6MjUgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIFJlbW92ZSBwb3NpdGlvbmFsIGNvbW11bml0eSBmcm9tIHVzYWdlCgoyMDA0LTAyLTAzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgcmV0dXJuaW5nIG9ubHkgZm91ciBjaGFyYWN0ZXJzIGZvciB1cHRpbWUgc3RyaW5nCgoyMDA0LTAyLTAzIDAyOjA3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIGZvciByZS1pc3N1ZWQgQVRNIGFuZCBFdGhlckxpa2UgUkZDcwoKMjAwNC0wMi0wMyAwMjowNiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRml4IHJlZmVyZW5jZSB0byAtTGUgdG8gLUxFCgoyMDA0LTAyLTAzIDAyOjA1ICBuYmEKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBGaXggc3R1cGlkIGJ1ZyBmZXRjaGluZyB0aGUgdHJhcCBvaWQKCjIwMDQtMDItMDMgMDI6MDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEEgYml0IG9mIGNsZWFudXAgYW5kIHByb3Blcmx5IGRlZmF1bHQgY29tbXVuaXR5IGZyb20gY29uZiBmaWxlCgoyMDA0LTAyLTAzIDAyOjAxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmMsIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBBbGxvdyAlViB0byB0YWtlIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyCgoyMDA0LTAyLTAzIDAxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIEFwcGx5IChtb2RpZmllZCkgcGF0Y2ggODYwNDQzIHdoaWNoIGFsc28gZml4ZXMgYnVnIDg0ODI4NCBieSBwcm9wZXJseQogICB0ZXJtaW5hdGluZyB0aGUgaW5wdXQgYnVmZmVyLgoKMjAwNC0wMi0wMyAwMTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBkaXNrLmg6CgogICBUcnkgdG8gdW50YW5nbGUgYW4gI2lmZGVmIG1lc3MgdGhhdCBoaW5kZXJzIGNvbXBpbGF0aW9uIG9uIE9TL1gKCjIwMDQtMDItMDMgMDE6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFJlbW92ZSBhIGJ1bmNoIG9mIHN1cGVyZmx1b3VzIG5ld2xpbmVzIGluIG1lc3NhZ2VzCgoyMDA0LTAyLTAzIDAxOjUzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYywgYXQuYzoKCiAgIEZpeCByZXR1cm4gb2YgSVB2NCBhZGRyZXNzIG9uIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTAyLTAyIDIzOjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgaWZkZWYgYSBsaW51eCBzcGVjaWZpYyB2YXJpYWJsZQoKMjAwNC0wMi0wMiAyMzozOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGx5IHBhdGNoIDg0MTcwNSB0byBmaXggYnVnIDgxNzM4NgoKMjAwNC0wMi0wMiAyMzozNyAgbmJhCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQXBwbHkgcGF0Y2ggODM2NTY4IHRvIGZpeCBidWcgODI5MTE5CgoyMDA0LTAyLTAyIDIzOjM2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBBcHBseSBwYXRjaCA4NDU3OTggdG8gZml4IGJ1ZyA4MzEyOTkKCjIwMDQtMDItMDIgMjM6MzIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUHJvcGVybHkgcmVzZXQgd2lsZGNhcmRtYXRjaGVyIGJldHdlZW4gY2FsbHMKCjIwMDQtMDItMDIgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXBwbGllZCBwYXRjaCBmcm9tIGJ1ZyA4NDkxNTMKCjIwMDQtMDItMDIgMjM6MjEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBHaXZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBtb2R1bGUgbm90IGF2YWlsYWJsZQoKMjAwNC0wMi0wMiAyMzoxOCAgbmJhCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG8gbm90IGNhc3QgdW5zaWduZWQgdG8gc2lnbmVkCgoyMDA0LTAyLTAyIDIzOjE3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIFVzZSBzeXN0ZW0gZ2V0b3B0Lmggd2hlbiBhdmFpbGFibGUKCjIwMDQtMDItMDIgMjM6MTYgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVycnVuIGZvciBleHRyYW1lIGRpc2sgbmFtZXMKCjIwMDQtMDItMDIgMjM6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQXBwbHkgcGF0Y2ggODUwNzE2IHRvIGZpeCBidWcgODUwMTg1CgoyMDA0LTAyLTAyIDE2OjEwICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMsIHNubXB0cmFwZF9sb2cuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE2OjA1ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlCgoyMDA0LTAyLTAyIDE1OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDb3JyZWN0bHkgbG9vcCBhcm91bmQgbWlzc2luZyBlbnRyaWVzCgoyMDA0LTAyLTAyIDE1OjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBCZXR0ZXIgZmlsZSBzeXN0ZW0gdHlwZXMKCjIwMDQtMDItMDIgMTU6NTIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggc2V0dGluZyBvZiBjb21tdW5pdHkgbGVuCgoyMDA0LTAyLTAyIDE1OjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjM2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFByb3BlciBPSUQgZm9yIFRDUDQKCjIwMDQtMDItMDIgMTU6MzUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRkl4IG5ld2xpbmUgaGFuZGxpbmcgaW4gZmlsZSBsb2dnZXIKCjIwMDQtMDItMDIgMTU6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggc29tZSB3YXJuaW5ncywgYW5kIG1ha2Ugc29tZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMDQtMDItMDIgMTU6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBGaXggYSBmaWxlIGRlc2NyaXB0b3IgbGVhawoKMjAwNC0wMi0wMiAxNTozMiAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxMToyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcmVxdWlyZSBhbGwgYXJndW1lbnQgYmVmb3JlIG1pYk5vZGU7IGJhaWwgb24gdW5rbm93biBvcHRpb247IHdhcm4gaWYgbXVsdGlwbGUKICAgbWliTm9kZXMgc3BlY2lmaWVkOyBuZXcgJ2JhbGFuY2VkJyBmbGFnIGZvciBwcm9jZXNzOyBkZWZpbmUvdXNlIG5ldyBtMmNfZGllCiAgIHRoYXQgc3BpdHMgb3V0IGN1cnJlbnQgbGluZSBpbiBjb25mIGZpbGU7IHJlcGxhY2UgJ2JyZWFrJyB3aXRoICduZXh0JzsgYmFpbAogICBvbiBlbHNlaWY7IGJhaWwgb24gdW5iYWxhbmNlZCBjb25mIGZpbGUgKG1hbnkgdHdlYWtzIHRvIG1ha2UgdGhhdCB3b3JrKTsKICAgcmVtb3ZlIHVudXNlZCBza2lwaWY7IGZpeCBjdXJyZW50bGluZSB1cGRhdGVzIGluIGZvcmVhY2ggbG9vcHM7IGV4aXQgdy9lcnJvcgogICBpZiBjb25mIGZpbGUgbm90IGZvdW5kCgoyMDA0LTAyLTAyIDExOjA2ICByc3RvcnkKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgYWRkIGV4cGxpY2l0IGVuZHMgZm9yIGVhY2ggZm9yZWFjaAoKMjAwNC0wMi0wMiAxMDo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBmaXggdXAgbTJjX25vZGVfcGFyYW1fKiBkZWZhdWx0czsgcmVuYW1lIG5vZGUgZGVmYXVsdCBmaWxlOyBzZXQgZGVmYXVsdHMgZm9yIG0yY19jdHhfW2xofHJoXTsKICAgc2V0IHVwIG5vZGUgbWFwIGZ1bmMgZGVmYXVsdHMKCjIwMDQtMDItMDIgMTA6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHVzZSBuZXcgaW5kZXhlc19zZXQgZnVuY3Rpb24gaW4gZXhhbXBsZTsgbW92ZSBzb21lIGNvZGUgb3V0c2lkZSBvZiBleGFtcGxlCiAgIGNvbmRpdGlvbjsgdXNlIHZhbHVlIG1hcCB0byBjb3B5IGRhdGEKCjIwMDQtMDItMDIgMTA6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIG5ldyBpbmRleGVzX3NldCBmdW5jdGlvbgoKMjAwNC0wMi0wMiAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgdXNlIG1pYjJjIG5leHQgaW5zdGVhZCBvZiBicmVhawoKMjAwNC0wMi0wMiAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBhZGQgbWlzc2luZyB2YXIgZGVjbAoKMjAwNC0wMi0wMiAwODoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICB1c2UgbmV3IGZ1bmN0aW9uIHRvIG1hcCBiZXR3ZWVuIG1pYi9uYXRpdmUgZGF0YQoKMjAwNC0wMi0wMiAwODowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIG5ldyBmdW5jdGlvbiB0byBtYXAgYmV0d2VlbiBtaWIvbmF0aXZlIGRhdGEKCjIwMDQtMDItMDIgMDc6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBuZXcgZnVuY3Rpb24gdG8gc2V0IGluZGV4ZXMgZnJvbSBDIHR5cGVzCgoyMDA0LTAyLTAyIDA3OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBnZW5lcmljLWN0eC1jb3B5Lm0yaSwgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLAogICAgIGdlbmVyaWMtZ2V0LWRlY2wubTJpLCBtZmQtZGF0YS1nZXQubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBub2RlLWdldC5tMmksIG5vZGUtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBtb3JlIGNvbnNpc3RlbnQgdXNlIG9mIG0yY19jdHhfW2xofHJofGxoc3xyaHNdIGFuZCBtMmNfbm9kZV9wYXJhbSogdmFyczsgbmV3CiAgIG0yY19jb2RlX3ZlcmJvc2UgZmxhZyBmb3IgdmVyYm9zZSBjb21tZW50cyBpbiBjb2RlOyBuZXcgdmFsdWUgbWFwcGluZyBmdW5jIGZvcgogICBlYWNoIG5vZGUgaW5zdGVhZCBvZiBkdXBsaWNhdGVkIGNvZGUgaW4gbXVsaXRwbGUgZnVuY3M7IHVzZSBtaWIyYyBuZXh0IGluc3RlYWQKICAgb2YgYnJlYWs7CgoyMDA0LTAyLTAyIDA0OjE1ICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwKICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKOgoKICAgUmVzdG9yZSB3aW5zb2NrIDEuMSBsaWJyYXJ5IHVzYWdlLgoKMjAwNC0wMS0zMCAxMTozNyAgc2xpZgoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIG1vdmUgbmV0c25tcC5saWIgdG8gdGhlIGZyb250IG9mIHRoZSAiQWRkaXRpb25hbCBMaWJyYXJpZXMiIGxpc3RzLgoKMjAwNC0wMS0zMCAxMTozMSAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL3NubXBkLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbW92ZSBuZXRzbm1wLmxpYiB0byB0aGUgZnJvbnQgb2YgdGhlIEFkZGl0aW9uYWwgTGlicmFyaWVzIGxpc3QuCgoyMDA0LTAxLTMwIDEwOjI5ICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBlbmFibGUgc2VsZWN0aW9uIHRoYXQgd2lsbCBnZW5lcmF0ZSBzb3VyY2UgYnJvd3NpbmcgaW5mb3JtYXRpb24uCgoyMDA0LTAxLTMwIDEwOjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIG1vdmUgZXh0ZXJuIGxvZ2hfaGVhZCBpbnRvIHRoZSBsb2dnaW5nIG1vZHVsZSdzIGhlYWRlciBmaWxlLgoKMjAwNC0wMS0zMCAwNzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmVtb3ZlIGFuIHVud2FudGVkICdlbHNlJyBjbGF1c2UgdGhhdCBjbGFzaGVzIHdpdGggdGhlICJjb21tb24iICdlbHNlJwogICBjbGF1c2UgbGF0ZXIgaW4gdGhpcyB0YW5nbGUgb2YgdW5yZWFkYWJsZSBjb2RlLiAgKEJ1ZyAjODU3MjU3KQoKMjAwNC0wMS0zMCAwNzowMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHJlc3RvcmUgdGhlIERBVEEgaGludHMgdGhhdCB3ZXJlIGFjY2lkZW50YWxseSByZW1vdmVkLgoKMjAwNC0wMS0zMCAwNjo0NSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoaXRlc3BhY2UgKEMvUiAmIEwvRikgc2hvdWxkbid0IHRyaWdnZXIgaGV4IHN0cmluZyBiZWhhdmlvdXIgKEJ1ZyAjODY0MzY3KQoKMjAwNC0wMS0zMCAwNjozMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEZWZpbmUgYSAiZHVtbXkiIGxvZyBoYW5kbGVyIHRoYXQgc2ltcGx5IGRpc2NhcmRzIGFsbCBtZXNzYWdlcy4KICAgTm90IHJlYWxseSBhIHNlbnNpYmxlIHRoaW5nIHRvIGRvLCBidXQgY291bGQgYmUgdXNlZCB0byBwcmV2ZW50CiAgIHR1cm5pbmcgb24gdGhlICJsYXN0IGRpdGNoIiBsb2dnaW5nIHRvIHN0ZGVyciAoc2VlIEJ1ZyAjODY3NTc0KQoKMjAwNC0wMS0zMCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIElzc3VlIGEgd2FybmluZyB3aGVuIHR1cm5pbmcgb24gImxhc3QgZGl0Y2giIGxvZ2dpbmcgKEJ1ZyAjODY3NTc0KQoKMjAwNC0wMS0zMCAwMzoyMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIGNvbXBsZXRlbHkgZW1wdHkgR2V0QnVsayByZXF1ZXN0cyBwcm9wZXJseSAoQnVnICM4Nzc0MTkpCgoyMDA0LTAxLTMwIDAyOjUwICBzbGlmCgogICAqIHdpbjMyLzogLmN2c2lnbm9yZSwgd2luMzIub3B0OgoKICAgZml4IGJ1ZyAjODg3MTQwCgoyMDA0LTAxLTMwIDAxOjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBVc2UgJ3NucHJpbnRfaGV4c3RyaW5nJyBpbiB0aGUgZW5naW5lIHRlc3RpbmcgY29kZSwgcmF0aGVyCiAgIHRoYW4gdGhlIChub24tZXhpc3RlbnQpICdzcHJpbnRfaGV4c3RyaW5nJyAgKEJ1ZyAjODg2MTEwKQoKMjAwNC0wMS0yOSAxMzowMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBmaXggY291bnRzIGZvciBjZXJ0YWluIHVzZXMgb2Ygc3RybmNhc2VjbXAgKGkgbXVzdCBiZSBib3JlZCEpLgoKMjAwNC0wMS0yOSAxMjozMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZm9yIHdpbmRvd3Mgc2VydmljZSwgbWF0Y2ggZGlzcGxheSBuYW1lIHRvIHNlcnZpY2UgbmFtZS4KICAgZm9yIHdpbmRvd3Mgc2VydmljZSBkZXNjcmlwdGlvbiwgbWVudGlvbiBtaWJJSSBvYmplY3RzIGlmIGJ1aWx0IHVzaW5nIFNESy4KCjIwMDQtMDEtMjkgMTI6MTQgIHNsaWYKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jOgoKICAgdXNlIGNvcnJlY3QgY29uc3RhbnQgdGhhdCBwcmV2aW91c2x5IGFwcGxpZWQgcGF0Y2ggcmVmZXJzIHRvLgoKMjAwNC0wMS0yOSAwNjozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBCcmluZyB2ZXJzaW9uIGhhbmRsaW5nIGludG8gbGluZSB3aXRoIHRoZSAnc25tcF9wYXJzZV9hcmdzJyBsZWdlcmRlbWFpbgoKMjAwNC0wMS0yOSAwNjoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIFZhbGlkYXRlIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZhcmJpbmRzIHN1cHBvcnRlZAogICAoUGF0Y2ggIzgyNjcxNCBmcm9tIEplcmVteSBQdWhsbWFuKQoKMjAwNC0wMS0yOSAwNjoxMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLAogICAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LAogICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgVXNlIHRoZSBvZmZpY2lhbGx5IGRlZmluZWQgdHJhbnNwb3J0IE9JRHMKICAgKFBhdGNoICM4Mjg3NjYgZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIpCgoyMDA0LTAxLTI5IDA1OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfZGlzay5jLAogICAgIGhvc3QvaHJfZmlsZXN5cy5jLCBob3N0L2hyX25ldHdvcmsuYywKICAgICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3N0b3JhZ2UuYywKICAgICBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsCiAgICAgdWNkLXNubXAvbG9nbWF0Y2guYywgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsIHVjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMKOgoKICAgSW5jcmVhc2UgYXNzb3J0ZWQgZml4ZWQgYnVmZmVyIHNpemVzLiAgKFBhdGNoICM4MzYzOTUgZnJvbSBIb3dhcmQgV2lsa2luc29uKQoKMjAwNC0wMS0yOSAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZWplY3QgYXR0ZW1wdHMgdG8gZGVsZXRlIGEgJ3Blcm1hbmVudCcgcm93CiAgIChQYXRjaCAjODM3NDI3IGZyb20gQm9iIFJvd2xhbmRzKQoKMjAwNC0wMS0yOSAwNDoyMyAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhbiBlbXB0eSBjb250ZXh0RW5naW5lSUQKICAgKFdoaWNoIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBzZWVtcyB0byBvY2N1ciB1bmRlciBXaW5kb3dzKQogICAoUGF0Y2ggIzg0MDgzMCBmcm9tIEFsZXggQnVyZ2VyKQoKMjAwNC0wMS0yOSAwMzo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNZWNoYW5pc20gdG8gY29tcGxldGVseSBkaXNhYmxlIHRoZSBoYW5kbGluZyBvZiBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIHdvdWxkIGJyZWFrIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuIFNOTVB2MyBhZ2VudC4KICAgKFBhdGNoICM4NDkxNTkgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDEtMjkgMDM6MzkgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2VudW0uYzoKCiAgIFByb3Blcmx5IHJlbGVhc2UgdmFyaW91cyByZXNvdXJjZXMgd2hlbiBzaHV0dGluZyBkb3duIHRoZSBsaWJyYXJ5LgogICAoUGF0Y2ggIzg0OTE1NCBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wMS0yOSAwMTo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3ZpZGUgbWlzc2luZyBjb25maWcgZGVmaW5pdGlvbiB0ZW1wbGF0ZSBmb3IgJ3NzaXplX3QnIGZsYWcKICAgKFBhdGNoICM4ODY2NTUgZnJvbSBBbmR5IFNtaXRoKQoKMjAwNC0wMS0yOCAyMDozOSAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICAgIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBubyBpbmNyZW1lbnRhbCBsaW5rIG9uIERlYnVnIChwcmV2ZW50cyBnZW5lcmF0aW9uIG9mIC5pbGsgZmlsZSkKCjIwMDQtMDEtMjggMTg6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgaWZkZWYgYXJvdW5kIHZhcmlhYmxlcyB1c2VkIG9ubHkgd2hlbiBVTklYIHRyYW5zcG9ydHMgYXJlIHN1cHBvcnRlZC4KCjIwMDQtMDEtMjggMTc6NTcgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGludm9rZSB3aW5zb2NrIHZlciAyLjIKCjIwMDQtMDEtMjggMTc6MzQgIHNsaWYKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGNvbnNpc3RlbnQgcHJvamVjdCBzZXR0aW5nczsgbm8gQyBydW50aW1lIGNvbmZsaWN0czsgbGluayB3aXRoIHdpbnNvY2sgdmVyIDIuMgoKMjAwNC0wMS0yOCAxNzoyOCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBoYWNrIGZvciBjaG93bi4KCjIwMDQtMDEtMjggMTQ6NTYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGRlcmVmZXJlbmNlIHByaV9tYXggdG8gdGVzdCByZXR1cm4gZnJvbSBkZWNvZGVfcHJpb3JpdHkKCjIwMDQtMDEtMjggMTQ6NTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhbGFybS5jLCBldmVudC5jCiwgaGlzdG9yeS5jLCByb3dzLmMsIHN0YXRpc3RpY3MuYzoKCiAgIGZpbmQgcGxhdGZvcm0tYXBwcm9wcmlhdGUgc3Vic3RpdHV0ZSBmb3Igc3lzL3RpbWUuaAogICBmaXggbWlub3IgdHlwZSBjYXN0IHdhcm5pbmdzLiAgcmVtb3ZlIG9uZSB1bnVzZWQgdmFyaWFibGUuCgoyMDA0LTAxLTI4IDA4OjQwICBkdHMxMgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgSW1wb3J0IFNOTVBfU0xFRVAgdGltZSBmcm9tIGVudmlyb25tZW50LCBpZiBhdmFpbGFibGUKICAgKFBhdGNoICM4NTA5NTcgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIsCiAgICBtZXJnaW5nIGEgY2hhbmdlIGZyb20gdGhlIDUuMC54IGJyYW5jaCkKCjIwMDQtMDEtMjggMDg6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEVuc3VyZSB0aGUgc2l6ZSBvZiB0aGUgZXhlYy1jYWNoZSBpcyBoYW5kbGVkIGNvcnJlY3RseSBvbiA2NC1iaXQgc3lzdGVtcwogICAoUGF0Y2ggIzg2MDU3NSBieSBCb2IgUm93bGFuZHMpCgoyMDA0LTAxLTI4IDA3OjU1ICBkdHMxMgoKICAgKiBwZXJsLzogT0lEL09JRC54cywgU05NUC9TTk1QLnhzLCBhZ2VudC9hZ2VudC54cwo6CgogICBCZSBtb3JlIGNhdXRpb3VzIGFib3V0IHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBPSURzIChQYXRjaCA4NjIxODMgYnkgQXVzdGluIFNjaHV0eikKCjIwMDQtMDEtMjggMDc6NDEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBHdWFyZCBhZ2FpbnN0IGEgbWlzc2luZyBJUCBhZGRyZXNzIHN0cnVjdHVyZSAoUGF0Y2ggIzg2MTkzOSBieSBEYW4gTW9uZ3JhaW4pCgoyMDA0LTAxLTI4IDA3OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTWVyZ2UgTmVpbHMnIDUuMS54IGNoYW5nZXMgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCB0cmVlLgogICAoU2VlbXMgdG8gaW5jbHVkZSBwYXRjaGVzICM4NTUxNzAgYW5kICM4NTg1MTkpCgoyMDA0LTAxLTI4IDA2OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgZG9uJ3QgY2hvd24vY2htb2QgaWYgdW5peCBkb21haW4gc3VwcG9ydCBub3QgZW5hYmxlZAoKMjAwNC0wMS0yOCAwNjo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgcGVybCA1LjggZW50cnkgcG9pbnQuICAoUGF0Y2ggIzg1NDM5NSkKCjIwMDQtMDEtMjggMDY6MjMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBpbnN0YWxsIHNvIHRoYXQgc3ViZGlyIGxpYnMgYXJlIGluc3RhbGxlZCBiZWZvcmUgYmlucywgbm90ZWQgYnkgdGhlCiAgIGV2ZXItc28taGVscGZ1bCBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCgoyMDA0LTAxLTI4IDA0OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEluY3JlYXNlIHRoZSAoZml4ZWQpIG51bWJlciBvZiBkaXNrcyBoYW5kbGVkIChwYXRjaCAjODg0ODU5KQoKMjAwNC0wMS0yOCAwNDoxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtaW5ndzMyLmggc3lzdGVtIGhlYWRlciBmaWxlIChwYXRjaCAjODg0MTAwKQoKMjAwNC0wMS0yOCAwNDoxMyAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgQ2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2Ygc3NpemVfdCwgYW5kIGRvbid0IHJlZGVmaW5lIGl0IHdoZW4KICAgdXNpbmcgdGhlIFdpbkdXIGNvbXBpbGVyLiAgIChQYXRjaCAjODgxNzUyKQoKMjAwNC0wMS0yOCAwMzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIFJlbW92ZSB0d28gcmVkdW5kZW50IGZvcndhcmQgZGVjbGFyYXRpb25zICAocGF0Y2ggIzg3MzMyNikKCjIwMDQtMDEtMjggMDI6MDcgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBpbmV0cHJpbnQgYWxsb3RzIG1heCAyMiBjaGFycyBmb3IgYWRkcmVzcyArIDggY2hhcnMgZm9yIHBvcnQuCiAgIGNoYW5nZSB0byAxOCBhZGRyZXNzICsgMTIgcG9ydCwgc28gdGhhdCBtb3JlIG9mIHRoZSBwb3J0IGlzIGRpc3BsYXllZC4KCjIwMDQtMDEtMjcgMjI6NDIgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBpbmRpY2F0ZSBXaW4zMiBoYXMgbG9jYWxlLmggbWFsbG9jLmggbWVtb3J5LmguCiAgIGRvIG5vdCBzZXQgYnNkbGlrZSBvciBVU0V4eE1JQiBvciBTRUNVUklUWUVYQ0VQVElPTlMKICAgcmUtZm9ybWF0IGxpa2UgdGhlIE5ldC1TTk1QIGNvbmZpZ3VyZWQgbmV0LXNubXAtY29uZmlnLmguCgoyMDA0LTAxLTI3IDIyOjM0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluCjoKCiAgIHVwZGF0ZSBzdXBwb3J0IGZvciBPcGVuQlNELCBIUC1VWC8xMSwgYW5kIFdpbjMyIHN5c09iamVjdElEIC4KCjIwMDQtMDEtMjcgMjE6NDkgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYwo6CgogICBwcm92aWRlIGZ1bmN0aW9uIGhpbnRzIGluIGxpZXUgb2YgX19GVU5DVElPTl9fCgoyMDA0LTAxLTI3IDEzOjQ2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQWRkIGRlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIHVzZWQgaW4gYXBwcy9zbm1wdHJhcGRfaGFuZGxlci5jCgoyMDA0LTAxLTI3IDEzOjE1ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbm8gY2hvd24oKSBvbiBXaW4zMiAtLSBjb21waWxlcyB0byBub3RoaW5nLgoKMjAwNC0wMS0yNyAxMDo1NSAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgYnVpbGQgaW5kZXBlbmRlbnQgcHJvamVjdHMgKGxpYnJhcmllcykgYmVmb3JlIGRlcGVuZGVudCBwcm9qZWN0cy4KICAgcmVtb3ZlIGluY29tcGxldGUgZGVwZW5kZW5jeSBzcGVjaWZpY2F0aW9uIHRvIGJ1aWxkIGFsbCBmYXN0ZXIuCgoyMDA0LTAxLTI3IDEwOjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlLWFycmFuZ2VkIHRoZSBkZWNsYXJhdGlvbnMgb2YgdmFyaWFibGVzIGFuZC9vciBjb21waWxlIGNvbnN0YW50cywKICAgc28gdGhhdCB0aGUgdmFyaWFibGVzIGFyZSBkZWNsYXJlZCBvbmx5IGlmIG5lZWRlZC4KCjIwMDQtMDEtMjcgMTA6MTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgU3VwcGxpZWQgInJldHVybiAwIiB0byBleHRlbnNpYmxlX3VucmVnaXN0ZXIoKSwgYSBmdW5jdGlvbiByZXR1cm5pbmcgaW50LgoKMjAwNC0wMS0yNyAwOTo1OSAgc2xpZgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2FzdCB0byB2b2lkIHRoZSBhcmd1bWVudCB0byBmcmVlKCkuCgoyMDA0LTAxLTI3IDA5OjU3ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICB1c2UgdV9jaGFyIHR5cGUgY2FzdCBpbnN0ZWFkIG9mIG1hc2tpbmcgd2l0aCAweEZGLgoKMjAwNC0wMS0yNyAwOTo1MiAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIG1vdmUgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiB3aXRoaW4gdHlwZSBjYXN0IHNjb3BlLAogICBmb3IgdGhlIGJlbmVmaXQgb2Ygc29tZSBjb21waWxlcnMuCgoyMDA0LTAxLTI3IDA5OjUwICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHNwZWxsY2hlY2s6IG5ldHNubXBfY29udGFpbmVyX2ZyZWVfbGlzdAoKMjAwNC0wMS0yNyAwOTo0NiAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbGFyZSBpbml0X3N1YmFnZW50IG5lYXIgaXRzIG9ubHkgcmVmZXJlbmNlLgoKMjAwNC0wMS0yNyAwOTo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIFdpbjMyIGNvZGUuCgoyMDA0LTAxLTI3IDA5OjQ0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBtb3ZlIEhBVkVfRVhFQ1YgY29tcGlsZSB0ZXN0IGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9uIHRvIG5vdCBpbnRyb2R1Y2UgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDQtMDEtMjcgMDk6NDEgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvc25tcHZhY20uYywKICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MgdXNpbmcgYXBwcm9wcmlhdGUgdHlwZSBjYXN0aW5nLgoKMjAwNC0wMS0yNyAwOToyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgUmVmZXIgdG8gdGhlIG5ldHNubXAgbGlicmFyeSB2ZXJzaW9uIHN0cmluZyB2aWEgbmV0c25tcF9nZXRfdmVyc2lvbjsKICAgS2VlcCBkaXJlY3Qgc3RyaW5nIHJlZmVyZW5jZSBpZmYgVUNEX0NPTVBBVElCTEUgaXMgZGVmaW5lZC4KCjIwMDQtMDEtMjcgMDk6MDcgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgQXZvaWQgY29udmVyc2lvbiBtYWNyb3Mgd2hlbiBmb3JtaW5nIGhvc3QgY29weSBvZiAxNi1iaXQgcG9ydCB2YWx1ZQoKMjAwNC0wMS0yNyAwOTowNyAgc2xpZgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIERvbnQgZm9yY2UgdW5zaWduZWQgc2hvcnQgb250byB0d28gdW5zaWduZWQgY2hhcnMuCiAgIEJlIG1vcmUgZXhwbGljaXQgaW4gdGhlIHRyZWF0bWVudCBvZiB0aGUgeWVhciBjb21wb25lbnQuCgoyMDA0LTAxLTI3IDA5OjAyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIFdpbjMyIGFsbG9jYXRlcyBUQ1AgYW5kIFVEUCBjb25uZWN0aW9uIHN0cnVjdHVyZXMgdGhhdCBjb25zaXN0IG9mCiAgICBhIDMyLWJpdCBjb3VudCBmb2xsb3dlZCBieSBhIHBlciBjb25uZWN0aW9uIHRhYmxlLiAgV2hlbiBmcmVlaW5nIHRoZSB0YWJsZSwKICAgIGZpbmQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RydWN0dXJlLiAgVGhlIFRDUCB0YWJsZSBpbmNvcnJlY3RseSBjb3VudGVkCiAgICBlc3RhYmxpc2hlZCBUQ1AgY29ubmVjdGlvbnMsIGZpeGVkIHdpdGggdGhpcyBjaGFuZ2UuCgoyMDA0LTAxLTI3IDA4OjU4ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgc3VwcG9ydCBXaW4zMiBpbiBPU1RZUEUgZGVmaW5pdGlvbi4KCjIwMDQtMDEtMjcgMDg6NTQgIHNsaWYKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBpbmNsdWRlIGlvLmggZm9yIFdpbjMyIHRvIGludHJvZHVjZSB0aGUgY2xvc2UoKSBmdW5jdGlvbgoKMjAwNC0wMS0yNyAwNzo0OCAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmhlbHBlcnMvLmN2c2lnbm9yZSwgbmV0LXNubXAvLmN2c2lnbm9yZSwKICAgICBuZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCBuZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUKLCBuZXRzbm1wbWlicy8uY3ZzaWdub3JlLCBuZXRzbm1wbWlic3Nkay8uY3ZzaWdub3JlCiwgc25tcGRzZGsvLmN2c2lnbm9yZToKCiAgIHByb3ZpZGUgYSBDVlMgZmlsdGVyIHRvIGV2ZXJ5IHN1YmRpciB1bmRlciB3aW4zMi4KCjIwMDQtMDEtMjcgMDc6MzQgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kZWYsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYKOgoKICAgY29udmVydCB0byBET1MgZm9ybWF0IHRvIGtlZXAgY2VydGFpbiBJREUgaGFwcHkuCgoyMDA0LTAxLTI3IDA3OjI3ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmg6CgogICB0aGlzIGZpbGUgaXMgc3VwZXJzZWRlZCBieSB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLgoKMjAwNC0wMS0yNyAwNzoyMyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICBjaGFuZ2VzIGFwcHJvdmVkIGJ5IGF1dGhvciBwcm92aWRlIG1vcmUgcmVhZGFibGUgZm9ybWF0dGluZyBhbmQgY29tbWVudHMuCgoyMDA0LTAxLTI3IDA3OjIyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIHJlbW92ZSBDUiBjaGFyYWN0ZXJzIGZyb20gdGhlc2Ugc291cmNlcy4KCjIwMDQtMDEtMjcgMDc6MTkgIHNsaWYKCiAgICogUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dDoKCiAgIGNvbnZlcnQgQ1JMRiB0byBuZXdsaW5lCgoyMDA0LTAxLTI3IDA3OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRm9yd2FyZCB0cmFwcyB0byBwb3J0IDE2MiBieSBkZWZhdWx0LgoKMjAwNC0wMS0yNiAxNTo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5nCgoyMDA0LTAxLTI2IDE1OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBkb24ndCBoYXJkY29kZSBwb2ludGVyIHNpemU7IG5vdGVkIG9uIGNvZGVycyBieSByYWplc2ggYXJ1bXVnYW0KCjIwMDQtMDEtMjYgMDQ6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXggdGhlIG9yZGVyaW5nIG9mIGhvc3RuYW1lIGFuZCBJUCBhZGRyZXNzIGFzIHBhc3NlZCB0byB0cmFwIGhhbmRsZXIKICAgKEJ1ZyAjODgyMDcxIGFuZCBvdGhlcnMpCgoyMDA0LTAxLTI2IDA0OjE1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ29udmVydCB2MSB0cmFwcyB0byB2MiBmb3JtYXQgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhlIHRyYXAgaGFuZGxlcgogICAocGx1cyBtZXJnaW5nIHRoZSBvdGhlciA1LjEueCBwYXRjaGVzIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgdHJlZSkKCjIwMDQtMDEtMjYgMDI6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRW5zdXJlIHRoYXQgaHJGU1RhYmxlIGluZGV4ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBsaWZldGltZSBvZgogICB0aGUgYWdlbnQuCgoyMDA0LTAxLTI2IDAyOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFsaWduIGhyRlNTdG9yYWdlSW5kZXggdmFsdWVzIHdpdGggaHJTdG9yYWdlVGFibGUgKGJ1ZyAjODgyOTg3KQoKMjAwNC0wMS0yMCAwNTo0OCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIEFkZCBBbmR5IFNtaXRoIHRvIGNvbnRyaWJ1dG9ycwoKMjAwNC0wMS0yMCAwNTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpdXJlLmluCgoyMDA0LTAxLTIwIDA1OjI4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgcGFydGlhbCBhcHBsaWNhdGlvbiBvZiA4NjA5ODA6IEZpeCBmb3IgbWluZ3czMi5oCgoyMDA0LTAxLTIwIDA1OjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggODQzNjc5OiBDb25maWd1cmUgcGF0Y2ggZm9yIE1pbkdXCgoyMDA0LTAxLTE0IDA2OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBGaXggaGFuZGxpbmcgb2YgNjQtYml0IGNvdW50ZXJzLCBhbmQgdXNlIHRoZSBjb3JyZWN0IC9wcm9jIGludGVyZmFjZSBmaWxlCiAgIChub3QgdGhlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgdmVyc2lvbiEpCgoyMDA0LTAxLTE0IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgUHJvdmlzaW9uYWwgcmUtaW1wbGVtZW50YXRpb24gb2YgSUYtTUlCOjppZlRhYmxlIGFuZCBJRi1NSUI6OmlmWFRhYmxlCiAgIExpbnV4IHN1cHBvcnQgb25seSAoYW5kIHNvbWUgb2JqZWN0cyBhcmUgbWlzc2luZyksCiAgIGJ1dCBpdCBzaG91bGQgZ2l2ZSB0aGUgZ2VuZXJhbCBmbGF2b3VyLgoKMjAwNC0wMS0xNCAwNTozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL3NubXBfZW51bS5jCjoKCiAgIE5ldyBpbnRlcmZhY2VzIHRvIGZpbmQgYW4gdW51c2VkIHZhbHVlIHdpdGhpbiBhbiBlbnVtZXJhdGlvbiBsaXN0LgoKMjAwNC0wMS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgcm93X21lcmdlLmMsCiAgICAgdGFibGVfaXRlcmF0b3IuYzoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDowMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAxMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTEgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHR5cG8sIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wMS0xMSAxNjo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgc25tcGxpYi9jb250YWluZXIuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICAgIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLCBNYWtlZmlsZS5pbjoKCiAgIGZpeCByYW5nZSBjaGVja2luZyBjb2RlLCBub3RlZCBvbiBjb2RlcnMgYnkgT2xlZyBJdmFub3YKCjIwMDQtMDEtMDcgMDk6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksIG1mZC1kYXRhLXNldC5tMmMKLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMsCiAgICAgc3ViYWdlbnQubTJjOgoKICAgaWYgbmVlZGxlbmd0aCBub3Qgc2V0LCBzZXQgdmFyYmluZCB2YWxfbGVuIGZvciBHRVRzLCB2YWxpZGF0ZSB2YWxfbGVuIG9uIHNldDsKICAgZG9uJ3QgZGVjbGFyZXMgZnVuY3Rpb25zIHdoaWNoIGNhbid0IGJlIGlubGluZWQgYXMgaW5saW5lOyBjb21tZW50IHR3ZWFrcwoKMjAwNC0wMS0wNiAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdHJhbnNsYXRlIGEgTUlCIHR5cGUgb2YgSVBBRERSIHRvIElQQUREUkVTUyBpbnN0ZWFkIG9mIE9DVEVUX1NUUklORy4KICAgLSBzbWFsbCBvdGhlciBidWcgZml4CgoyMDA0LTAxLTA2IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNoYW5nZSB0aGUgbWFudWFsIHNvIGl0IGRvZXNuJ3QgcmVmZXJlbmNlIFVDRC1TTk1QIHYzIChhaGVtKQoKMjAwNC0wMS0wNiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBwcm9wZXIgc29ydGluZyB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUuCgoyMDA0LTAxLTAxIDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBvbmx5IHNldCBkZWZhdWx0cyBpZiBub3QgYWxyZWFkeSBzZXQKCjIwMDMtMTItMzAgMjA6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnhzLCB0ZXN0LnBsOgoKICAgaGFuZGxlIGltcGxpZWQgaW5kZXhlcwoKMjAwMy0xMi0zMCAxOTozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEEgbmV3IC0+Z2V0X2luZGV4ZXMoKSBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRyYWN0ZWQgaW5kZXhlcyBmcm9tIGEgT0lELgoKMjAwMy0xMi0zMCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWxsb3c6IHNlcGFyYXRlZCBwYXRocyBpbiBNSUIyQ19ESVIgZW52IHZhcgoKMjAwMy0xMi0zMCAxNToxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF9lbnVtLm0yaSwgbTJjX3NldHVwX25vZGUubTJpCjoKCiAgIHVucXVvdGUgdWMgY2FsbHMsIHNpbmNlIGV2YWwgd2l0aCBpbnRlcnByZXQgYXMgYSBsaXRlcmFsIGFuZCBJIGNhbid0CiAgIHJlcHJvZHVjZSB0aGUgJ2JhcmV3b3JkJyBwcm9ibGVtIHRoYXQgbWFkZSBtZSBxdW90ZSBpbiB0aGUgZmlyc3QgcGxhY2UKCjIwMDMtMTItMjkgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgcmVtb3ZlIHVudXNlZCByZXF1ZXN0X21vZGUKCjIwMDMtMTItMjYgMTI6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlbmFtZSB2YXJzIGZvciBjbGFyaWZpY2F0aW9uOiAke3RhYmxlfV9jdHgqIC0+ICR7dGFibGV9X3Jvd3JlcV9jdHgqOyBhZGQKICAgdmFycyBmb3IgbWZkX2RlZmF1bHRzOyB1c2UgbmV3IG1pYjJjIHB1c2gvcG9wIHRvIGdlbmVyYXRlIHBlciB0YWJsZSBkZWZhdWx0cwogICBmaWxlIGRlZmF1bHQtdGFibGUtJHRhYmxlLm0yZCBjb250YWluaW5nIGN1cnJlbnQgdmFsdWVzIG9mIHNvbWUgbTJjIHZhcnMKCjIwMDMtMTItMjYgMTI6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWRhdGEtc2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmMsCiAgICAgbWZkLXJlYWRtZS5tMmMsIG1mZC10b3AubTJjLCBub2RlLWdldC5tMmksCiAgICAgbm9kZS1zZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmkKLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmk6CgogICByZW5hbWUgdmFycyBmb3IgY2xhcmlmaWNhdGlvbjogaXRyX2N0eCogLT4gbG9vcF9jdHgqLCBsb29wKiAtPiBsb29wX2N0eCosCiAgICR7dGFibGV9X2N0eCogLT4gJHt0YWJsZX1fcm93cmVxX2N0eCoKCjIwMDMtMTItMjYgMTI6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcXVvdGUgYXNzaWdubWVudCBvZiB1cHBlcmNhc2VkIG5hbWUsIHNvIHZhbHVlcyB0aGF0IHN0YXJ0IHdpdGggYSBkaWdpdCBkb24ndAogICBnZXQgaW50ZXJwcmV0ZWQgYXMgYSBiYXJlIHdvcmQ7IGNoZyBkZWJ1ZyBwcmludCB0byBjb21tZW50CgoyMDAzLTEyLTI2IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgICBtMmNfc2V0dXBfZW51bS5tMmk6CgogICBxdW90ZSBhc3NpZ25tZW50IG9mIHVwcGVyY2FzZWQgbmFtZSwgc28gdmFsdWVzIHRoYXQgc3RhcnQgd2l0aCBhIGRpZ2l0IGRvbid0CiAgIGdldCBpbnRlcnByZXRlZCBhcyBhIGJhcmUgd29yZDsgY29uc29saWRhdGUgJG0yY19lbmFtZXkvJG0yY19pbmFtZSBwcm9jZXNzaW5nCiAgIGludG8gbTJjX3NldHVwX2VudW0ubTJpCgoyMDAzLTEyLTIzIDA3OjE5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIHJlbW92ZSBkZXByZWNhdGVkIG9wdGlvbiBmcm9tIGV4YW1wbGUKCjIwMDMtMTItMjMgMDc6MTggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2hhbmdlIGRlZmF1bHQgcnBtIGJ1aWxkIGluc3RydWN0aW9ucyB0byBlbWJlZCBwZXJsCgoyMDAzLTEyLTIzIDA3OjE3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgcmUtd29yayBwZXJsIG9wdGlvbnMgdG8gZml4IHByb2JsZW0gdy9jb25maWd1cmUgYXJndW1lbnQgcXVvdGluZwoKMjAwMy0xMi0yMyAwMjowMCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTm90ZSB0aGF0IEN5Z3dpbiBubyBsb25nZXIgbmVlZHMgYSBzZXBhcmF0ZSByZWdleCBsaWJyYXJ5CiAgIFJlcG9ydGVkIGJ5IEpvaG4gTWNDYXNoCgoyMDAzLTEyLTIyIDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgcHVzaC9wb3A7IHJlLXdvcmsgaW5kZXgvaW50ZXJuYWxpbmRleC9leHRlcm5hbGluZGV4L25vbmluZGV4IHNldHVwCgoyMDAzLTEyLTE5IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgICAgbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jaGVja192YWx1ZXMuY29uZiwKICAgICBtaWIyYy5jb25mOgoKICAgUGF0Y2ggZnJvbSBCcmlhbiBCdWVza2VyIHRvIGZpeCBtaXNjIHByb2JsZW1zICh2YXJpYWJsZSB7fWluZywgLi4uKQoKMjAwMy0xMi0xOCAwMTo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBuZXRzdGF0LjE6CgogICBGaXggbW9yZSBtYXJrdXAgZXJyb3JzLCByZXBvcnRlZCBieSBFcmljIFJheW1vbmQuCgoyMDAzLTEyLTE2IDAyOjAwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgQmUgY29uc2lzdGVudCBpbiB1c2Ugb2YgZm9yd2FyZCBkZWZpbml0aW9ucyAoZXhwbGljaXQgdnMgaW1wbGljaXQgc3RydWN0KQogICBSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlCgoyMDAzLTEyLTExIDE4OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBycG0gYnVpbGQgaW5zdHJ1Y3Rpb25zCgoyMDAzLTEyLTExIDE4OjUyICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCB1cGRhdGVkIHBlcmwgb3B0aW9ucyBmb3IgbmV3IHJwbSBtZXRob2QKCjIwMDMtMTItMTEgMTg6NDEgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcmVtb3ZlIFZFUi9SRUwsIHVzZSBWRVJTSU9OL1JFTEVBU0U7IHVwZGF0ZSBwZXJsIG9wdGlvbnMgZm9yIG5ldyBycG0gbWV0aG9kOwogICBhZGQgdGFyZ2V0IHRvIGJ1aWxkIHJwbSB0cmVlOyBkb24ndCBoYXJkY29kZSBhcmNoaXRlY3R1cmUKCjIwMDMtMTItMTEgMTg6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZG9jdW1lbnQgLUQgb3B0aW9uOyBhZGQgTWFrZWZpbGUgdHlwZQoKMjAwMy0xMi0xMSAxODoyMiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGRvbid0IHJlcXVpcmUgcGVybDsgYWRkIG5vdGUgb24gdmVuZG9yIHJlbGVhc2VzCgoyMDAzLTEyLTExIDA4OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBydW4gaW5kZW50CgoyMDAzLTEyLTExIDA4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBtb3ZlIGxvZ2ljIHRvIHNraXAgd2hlbiBjYWNoaW5nIGRpc2FibGUsIG5vIGNhY2hlIGZvdW5kIG9yIGNhY2hlIGRpc2FibGVkCgoyMDAzLTEyLTEwIDA2OjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGRlbGF5IHNvdXJjaW5nIG9mIG5zYi1mdW5jdGlvbnM7IG12IHJjIGZpbGUgaW50byB+Ly5zbm1wOyByZW1vdmUgYnVpbGQgZGlyCiAgIG9uIHN1Y2Nlc3MKCjIwMDMtMTItMTAgMDY6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZGVsYXkgc291cmNpbmcgb2YgbnNiLWZ1bmN0aW9uczsgbXYgcmMgZmlsZSBpbnRvIH4vLnNubXAKCjIwMDMtMTItMTAgMDY6MTcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBuZXcgdmFyczogTlNCX1ZFUlNJT04gTlNCX0JVSUxEX1NVRkZJWDsgZG9uJ3QgdXNlIGhvc3RuYW1lIC1zLCBzaW5jZSBzdW4KICAgZG9lc24ndCBzdXBwb3J0IGl0OyB0d2VhayBkZWZhdWx0IHBhdGhzCgoyMDAzLTEyLTEwIDAyOjQxICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsCiAgICAgc25tcF9jb25maWcuNS5kZWY6CgogICBGaXggYXNzb3J0ZWQgbWFya3VwIGVycm9ycywgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kLgoKMjAwMy0xMS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGZpeCBzY29wZSBvZiBoYXZlX2RpcmVudCBpZmRlZgoKMjAwMy0xMS0zMCAxNDoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBhZGQgY29tbWVudHM7IHJlbW92ZSBhc3NlcnQgb24gdmFsaWQgY29uZGl0aW9uCgoyMDAzLTExLTMwIDE0OjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZGVidWcgbXNnIHdoZW4gc2tpcHBpbmcgdmIgd2l0aCBib2d1cyBpbmRleAoKMjAwMy0xMS0zMCAxNDoxOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgcmVhZGFiaWxpdHkgZml4IC0gdXNlIG1hY3JvIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDAzLTExLTI4IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIElmIGEgcm93IGlzIGNyZWF0ZWQgdmlhIGEgU0VUIHJlcXVlc3QsIHRoZW4gaXQgbmVlZHMgdG8gYmUgbWFkZSBhdmFpbGFibGUKICAgdG8gdGhlIG90aGVyIGNvbHVtbnMgYW5kIHBhc3Nlcy4gIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGluc2VydGluZyB0aGlzCiAgIGludG8gdGhlIHJlcXVlc3QgbGlzdC4KICAgKFRoaXMgbG9va3Mgc3VzcGljaW91c2x5IHNpbWlsYXIgdG8gYW5vdGhlciByZWNlbnQgcGF0Y2g6LSkgICBEb2VzCiAgIHRoaXMgZnVuY3Rpb25hbGl0eSBwZXJoYXBzIGJlbG9uZyB3aXRoaW4gdGhlIHRvcC1sZXZlbCAndGFibGUnIGhhbmRsZXI/KQoKMjAwMy0xMS0yNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIHN1cHBvcnQgJG5vZGUuZGVzY3JpcHRpb24KICAgLSBzdXBwb3J0IEBwcmludGYgLi4uQAoKMjAwMy0xMS0yNSAxMjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGRlZmF1bHQgYnVpbGQgZGlyczsgZGVmYXVsdCB0byBob3N0L3ZlcnNpb24gaW5zdGVhZCBvZiBwbGF0Zm9ybS92ZXJzaW9uCiAgIChzaW5jZSBzZiBidWlsZCBob3N0cyBrZWVwIGNoYW5naW5nIHBsYXRmb3JtcykKCjIwMDMtMTEtMjUgMTI6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbW92ZSBkaXIgbXVuZ2luZyBpbiBuc2ItZnVuY3Rpb25zCgoyMDAzLTExLTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgdmVyc2lvbiBzdGFtcCB0aGUgLnNwZWMgZmlsZQoKMjAwMy0xMS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdmVyc2lvbiBudW1iZXIgY2hhbmdlCgoyMDAzLTExLTI0IDA5OjM4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGQgYSBncmVlY2UgbWlycm9yCgoyMDAzLTExLTI0IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEhhbmRsZSBpbnZhbGlkICg2NC1iaXQpIHZhbHVlcyBmb3IgZW5naW5lIGJvb3RzICYgdGltZQogICBQYXRjaCAjODI3MDQ0IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA5MjUwCgoyMDAzLTExLTI0IDA2OjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENvcnJlY3QgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIC1DeCBvcHRpb25zCiAgIFBhdGNoICM4MTg3NjYgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MTg2MzQKCjIwMDMtMTEtMjQgMDQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBIYW5kbGUgR0VUTkVYVCByZXF1ZXN0cyBvbiB0aGUgaHJEZXZpY2VUYWJsZSB3aXRoIGEgInRvbyBsYXJnZSIgaW5kZXguCiAgIFBhdGNoICM4MTE3MTcgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDczMTUKCjIwMDMtMTEtMjEgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgZGlza2lvIHZhbHVlcyBvbiA2NC1iaXQgU29sYXJpcy4KICAgUGF0Y2ggIzgwOTI1NSBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWcgIzgwODk3NQoKMjAwMy0xMS0yMSAwOTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IFNvbGFyaXMgaW1wbGVtZW50YXRpb24gb2YgaWZJbk5VY2FzdFBrdHMgJiBpZk91dE5VY2FzdFBrdHMKICAgUGF0Y2ggIzgwODgwNyBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWdzICM4MDgzOTkgJiAjODA4NDE3CgoyMDAzLTExLTIxIDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBJbXBsZW1lbnQgaWZTcGVjaWZpYyBvYmplY3Qgb24gU29sYXJpcy4KICAgUGF0Y2ggIzgwODc0NiBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwODQzMAoKMjAwMy0xMS0yMSAwNzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEVuc3VyZSAzMi1iaXQgdGltZXRpY2tzIHZhbHVlIHJldHVybmVkIG9uIFNvbGFyaXMga2l0LgogICBQYXRjaCAjODA4MDc0IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1ZyAjODA3Nzk2CgoyMDAzLTExLTIxIDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIFJldHVybiBhbiBlcnJvciBvbiBmYWlsZWQgb3ZlcnJyaWRlIHdyaXRlLgogICBQYXRjaCAjODA4MDU0IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA1MjU0CgoyMDAzLTExLTIxIDA2OjMwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcHVzbS4xLmRlZjoKCiAgIE1pbm9yIGNsYXJpZmljYXRpb25zIHRvIGEgZmV3IG1hbiBwYWdlcy4KICAgUGF0Y2ggIzgwNzkzNyBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwMy0xMS0yMSAwNjoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEhhbmRsZSBzdG9yYWdlIHVuaXRzIDwxMDI0IGJ5dGVzCiAgIChQYXRjaCAjODAxMzQxIGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjNzU3NDQ4KQoKMjAwMy0xMS0yMSAwNToyMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgV2hlbiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBsYXN0IHRhYmxlLCBtYWtlIHN1cmUgdGhhdCB0aGUgaGlnaGVyIGxldmVsCiAgIGhhbmRsZXJzIHdpbGwgcmVhbGlzZSB0aGlzLCBhbmQgbW92ZSBvbiB0byB0aGUgbmV4dCByZWdpc3RlcmVkIG1vZHVsZS4KICAgQWxzbyBjYXRjaCBtaXNzaW5nIGNvbHVtbnMgd2hlbiBwcm9jZXNzaW5nIEdFVE5FWFQgcmVxdWVzdHMuCgoyMDAzLTExLTIxIDA0OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBTdXBwb3J0IGFja25vd2xlZGdlZCBub3RpZmljYXRpb25zIChJbmZvcm0gYW5kIEFnZW50WCBOb3RpZnkpIGFzCiAgIHdlbGwgYXMgdW5hY2tub3dsZWRnZWQgb25lcy4gICBGaXJzdCByZXBvcnRlZCBieSBkYXZpZEBncmFuY2FuYXJpYQogICBQcm9iYWJseSBkb2Vzbid0IHJlc2VuZCBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZC4KCjIwMDMtMTEtMjAgMDc6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmM6CgogICBNb3ZlIHN1ZmZpeCBwcm9jZXNzaW5nIHdpdGhpbiB0aGUgcmVxdWVzdCBsb29wLCBzaW5jZSB2NS4xIGl0ZXJhdG9yCiAgIGhhbmRsZXJzIG1heSByZWNlaXZlIG11bHRpcGxlIHJlcXVlc3QgdmFyYmluZHMuICBGaXggcHJvdmlkZWQgYnkgQmFyYiBSb2VzY2gKCjIwMDMtMTEtMjAgMDY6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0ICd1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbicgZnJvbSBiZWluZyBjYWxsZWQgd2l0aCBhIE5VTEwKICAgc2Vzc2lvbiBwb2ludGVyLiAgKFVzZWQgd2hlbiB1bnJlZ2lzdGVyaW5nICJpbnRlcm5hbCIgTUlCIG1vZHVsZXMpCgoyMDAzLTExLTIwIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIHJldHVybiB2YXJpYWJsZSBuYW1lIGZvciBIUC1VWCAxMQogICAoRml4ZWQgYnVnICM4NDU0NjApCgoyMDAzLTExLTE5IDE2OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDMtMTEtMTkgMTY6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBkb24ndCB1c2Ugbm9uLXBvcnRhYmxlIC5jPS5vIHR5cGUgc3Vic3RpdHV0aW9ucyBpbiBtYWtlZmlsZTsgdGh1cyBwdXQgb2JqL2xvYmoKICAgZ2VuZXJhdGlvbiBiYWNrIGluIGNvbmZpZ3VyZQoKMjAwMy0xMS0xOSAwNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRW5hYmxlIHJldHJpZXMgb24gR2V0TmV4dCBub1N1Y2hJbnN0YW5jZSBleGNlcHRpb25zLiBGaXhlcyBidWcgIzg0Mzg0MgoKMjAwMy0xMS0xOSAwNzozMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jCjoKCiAgIEZpeCB3YXRjaGVkIHRpbWVzdGFtcCByZWdpc3RyYXRpb24uICdtYXJrZXJfdCcgaXMgYWxyZWFkeSBhIHBvaW50ZXIsCiAgIHNvIGRvZXNuJ3QgbmVlZCBmdXJ0aGVyIGRlcmVmZXJlbmNpbmchCgoyMDAzLTExLTE3IDA5OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIEZpeCBjcmVhdGlvbiBvZiBuZXcgbG9nZ2luZyBlbnRyaWVzLgoKMjAwMy0xMS0xNyAwOToxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIElmIGEgcm93IGlzIGNyZWF0ZWQgdmlhIGEgU0VUIHJlcXVlc3QsIHRoZW4gaXQgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgaW50bwogICB0aGUgaXRlcmF0aW9uIGRhdGEgc3RydWN0dXJlcywgc28gdGhhdCBpdCdzIGF2YWlsYWJsZSB0byBvdGhlciBjb2x1bW5zICYgcGFzc2VzLgoKMjAwMy0xMS0xNyAwOTowNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFJlbGVhc2UgdGhlIGRhdGEgc3RydWN0dXJlIG9uY2UgaXQncyBubyBsb25nZXIgbmVlZGVkLgoKMjAwMy0xMS0xNyAwMjo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS90Y3AuYywgdWNkLXNubXAvdm1zdGF0LmM6CgogICBBdm9pZCB1c2luZyB0aGUgdmFyaWFibGUgbmFtZSAnaHonICh3aGljaCBnZXRzIGNvcnJ1cHRlZCBvbiBBSVggYW5kIEhQVVgKICAgYnkgc3lzdGVtIHJlZGVmaW5pdGlvbnMpLiAgU2VlIGJ1ZyAjODQyNDc1ICYgIzg0MjQ4MwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC45IC0+IFY1LjEKCjIwMDMtMTEtMTMgMTg6NDYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZXZlcnNlIDUueCBhbmQgNC54IGxpc3Rpbmcgc2luY2UsIHVtLCB0aGlzIGlzIDUueCAoYWdhaW4pCiAgIAoyMDAzLTExLTEzIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmV2ZXJzZSA1LnggYW5kIDQueCBsaXN0aW5nIHNpbmNlLCB1bSwgdGhpcyBpcyA1LngKICAgCjIwMDMtMTEtMTMgMTg6NDIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfZGVwcmVjYXRlZC4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zCiwgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMQogICAKMjAwMy0xMS0xMyAxODoyMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4xCiAgIAoyMDAzLTExLTEzIDE4OjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoICM4MzgxMTIgdG8gZml4IHdpbmRvd3MgcGVybCBidWlsZGluZwogICAKMjAwMy0xMS0xMyAxNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IHJlZ2V4cCBmb3IgZHVwbGljYXRlIGluZGV4IGV4Y2x1c2lvbiB0byBvbmx5IG1hdGNoIHdob2xlIHdvcmRzCiAgIAoyMDAzLTExLTEzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHN0YXNoX2NhY2hlCiAgIAoyMDAzLTExLTEzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zQ2FjaGUuYywgbnNEZWJ1Zy5jLAogICBuc0xvZ2dpbmcuYzoKCiAgIC0gcHJvcGVybHkgY2hlY2sgZm9yIHRoZSAtPnByb2Nlc3NlZCBmbGFnLgogICAgIC0gKGZpeGVzIGEgYnVnIHBvaW50ZWQgb3V0IGJ5IEJydWNlIHdoZXJlIGEgZ2V0bmV4dCByZXR1cm5lZCBub1N1Y2hJbnN0YW5jZSkKICAgCjIwMDMtMTEtMTMgMTI6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCBjYWxsIGhhbmRsZXJzIGZvciBlcnJvciByZWNvdmVyeSBpZiB0aGV5IGhhZG4ndCBiZWVuIGNhbGxlZCBmb3IgYXQgbGVhc3QKICAgcmVzZXJ2ZTEgKGUuZy4gc2V0IHcvaW52YWxpZCBpbmRleGVzKQogICAKMjAwMy0xMS0xMyAxMTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZml4IHZvaWQgZGVmaW5pdGlvbiBmb3IgbmV0c25tcF9hc3NlcnQgd2hlbiBkZWJ1Z2dpbmcgZGlzYWJsZWQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMy0xMS0xMyAxMTozMiAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFwcGx5IHBhdGNoIFsgODQxNDYzIF0gNS4xcmMxIFJFQURNRS53aW4zMiBjaGFuZ2VzCiAgIAoyMDAzLTExLTEyIDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFByb3ZpZGVlIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIFJvdXRlX1NjYW5fUmVsb2FkCiAgIEhQLVVYIDExIG9ubHkuICBMYXRlc3QgaW4gdGhlIHNhZ2Egb2YgYnVnICMgODQwNjE1CiAgIAoyMDAzLTExLTEyIDA0OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwVGFibGUuYwo6CgogICBGaXggbW9yZSBIUC1VWCAxMSBzcGVjaWZpYyBib2d1cyBjb2RlLgogICBUcmFja2luZyBCdWcgIzg0MDYxNQogICAKMjAwMy0xMS0xMiAwMjozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBVc2UgY29ycmVjdCB2YXJpYWJsZSBmb3IgZGV0ZWN0aW5nIHdoaWNoIG9iamVjdCBpcyBiZWluZyBwcm9jZXNzZWQuCiAgIChIUFVYLTExIG9ubHkgLSBmaXhlcyBidWcgIzg0MDYxNSkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMTEtMTAgMDg6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZG9uJ3QgZG91YmxlIGNyZWF0ZSB0ZW1wIGRpcmVjdG9yeQogICAKMjAwMy0xMS0xMCAwODo0NiAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgYWx3YXlzIHVzZSBpbmxpbmUsIG5vdyB0aGF0IGl0IHdvcmtzIChuZWVkZWQgZXh0ZXJuKQogICAKMjAwMy0xMS0wNyAxNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC1pbnRlcmZhY2UubTJjCiwgbWZkLXRvcC5tMmMsIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmkKOgoKICAgdXNlIERFQlVHVFJBQ0UgaW5zdGVhZCBvZiBoYXJkY29kZWQgX19GVU5DVElPTl9fCiAgIAoyMDAzLTExLTA3IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG11Y2ggYmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIE1JQiBub2RlIGNhbid0IGJlIGZvdW5kIGluIHRoZQogICBjb21tYW5kIGxpbmUgYXJndW1lbnRzCiAgIAoyMDAzLTExLTA3IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBmaXggc2VkIHNjcmlwdCByZWdleHAgZm9yIG9kZCB2ZXJzaW9ucyAocHJlMmIsIGVnKS4KICAgLSBtYWtlIC1oIGFjdHVhbGx5IHByaW50IGhlbHAuCiAgIAoyMDAzLTExLTA3IDA5OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYnJhY2VzIGFyb3VuZCB2YXIgbmFtZQogICAKMjAwMy0xMS0wNiAyMDo0NiAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIGlubGluZSB0byBfX2lubGluZSBmcm9tIG1haW4gbmV0LXNubXAtY29uZmlnIGZpbGU7IGFkZCBleHRlcm4gdG8gYmFzaWMKICAgTkVUU05NUF9JTkxJTkUgZGVmLCBwZXIgTVMgdGVjaCBub3RlIDEyMzc2OAogICAKMjAwMy0xMS0wNiAyMDo0MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MjgzNjIgXSBGaXJzdCBwYXNzIGF0IE1pbkdXMzIKICAgCjIwMDMtMTEtMDYgMjA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDgzNjE2MiBdIDUuMXByZTMgd2luMzIgbWtkaXJoaWVyKCkKICAgCjIwMDMtMTEtMDYgMjA6MDAgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgYXBwbHkgcGF0Y2ggWyA4Mzc2MzMgXSA1LjFwcmUzIHdpbjMyIGxpYiByZW5hbWUKICAgCjIwMDMtMTEtMDYgMTY6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgcmVzdG9yZSBhY2NpZGVudGFsbHkgZGVsZXRlZCBcbiBpbiB0cmFjZSBtYWNybwogICAKMjAwMy0xMS0wNSAxOToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbW1lbnQgZm9yIHBvc3NpYmxlIGZ1dHVyZSBvcHRpbWl6YXRpb24KICAgCjIwMDMtMTEtMDUgMTk6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxOiB1c2UgbmV3IHRtcCBmaWxlIHBhdHRlcm4gbWFjcm87IHVzZSBfb3BlbiBvbgogICB3aW5kb3dzOyBhZGQgZXJyIGxvZyAmIGRlYnVnIG1zZzsgaW5jbHVkZSBzeXMvc3RhdC5oIGlmZiBleGlzdHMKICAgCjIwMDMtMTEtMDUgMTk6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjE6IGRlZmluZSBIQVZFX1NZU1RFTTsgYWRkIG5ldyB0bXAgZmlsZSBwYXR0ZXJuIG1hY3JvCiAgIAoyMDAzLTExLTA1IDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjEgZm9yIHJ1bl9zaGVsbF9jb21tYW5kOiB0ZXN0IGZvciBiYWQgcmV0dXJuIGNvZGVzCiAgIGZyb20gZnVuY3Rpb25zOyBkb24ndCB0b3VjaCBvdXRfbGVuIGlmIG91dHB1dCBub3Qgc2V0IG9yIG91dF9sZW4gaXMgbnVsbAogICAKMjAwMy0xMS0wNSAxODo1NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZWdlbmVyYXRlIGZyb20gYWNsb2NhbC5oLCB3aGljaCByZXZlYWxzIHRoYXQgd2UgY2FuJ3QgZG8gYW4gaWZkZWYgdGVzdAogICB0byBwcmV2ZW50IHJlZGVmaW5pbmcgUEFDS0FHRV8qIHVubGVzcyBpdCBpcyBtYW51YWxseSByZS1hZGRlZCBlYWNoIHRpbWUKICAgdGhpcyBmaWxlIGlzIHJlZ2VuZXJhdGVkIGZyb20gYWNjb25maWcuaC4gQmxlY2guCiAgIAoyMDAzLTExLTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBtYWNybyBmb3IgdGVtcCBmaWxlIG5hbWUgKGNvbmZpZ3VyZSBvcHRpb24gdGJkKQogICAKMjAwMy0xMS0wNSAxODoxNCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFwcGx5IHBhdGNoIFsgODMzMjE2IF0gNS4xLnByZTMgV2luMzIgY29tcGlsZSBwYXRjaAogICAKMjAwMy0xMS0wNSAxODoxMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlnLmluCiAgIAoyMDAzLTExLTA1IDE4OjExICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgaW5jbHVkZSBtaWJncm91cCB1dGlsaXRpZXMgZm9yIG1pbmktYWdlbnQgKHJ1bl9zaGVsbF9jb21tYW5kIGZvciBzbm1wdHJhcGQpCiAgIAoyMDAzLTExLTA1IDA5OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaQosIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCBtZmQtaW50ZXJmYWNlLm0yYwo6CgogICBhbHdheXMgY29udmVydCBnZW5lcmF0ZWQgYXJyYXkgbGVuIHRvIGFycmF5IGVsZW1lbnQgY291bnQgKG5vdCBieXRlcykKICAgCjIwMDMtMTEtMDUgMDI6NTIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdGFibGUuYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wdGFibGUuYzoKCiAgIERvbid0IHRyeSBzZWFyY2hpbmcgZm9yIGNvbHVtbiBvYmplY3RzIGlmIHRoZXJlIGlzbid0IGFueXRoaW5nIHRvIHNlYXJjaC4KICAgUmVwb3J0IHByb2JsZW1zIHVzaW5nIHRoZSBvYmplY3QgbmFtZSBvcmlnaW5hbGx5IHNwZWNpZmllZCwgcmF0aGVyIHRoYW4KICAgYSB0ZW1wb3JhcnkgaW50ZXJuYWwgYnVmZmVyLgogICAKMjAwMy0xMS0wNCAxNTowNiAgcnN0b3J5CgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIElOTElORSBjaGFuZ2VzIC0gZG9uJ3QgdXNlIGlubGluZSBmb3IgdGhlIERMTCB2ZXJzaW9uLCBhcyBpdCdzIHJlcG9ydGVkIHRvCiAgIGNhdXNlIGVycm9ycwogICAKMjAwMy0xMS0wNCAxNDo0NSAgcnN0b3J5CgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3csCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBhcHBseSBwYXRjaCBbIDgzMzIxNiBdIDUuMS5wcmUzIFdpbjMyIGNvbXBpbGUgcGF0Y2gKICAgCjIwMDMtMTEtMDQgMDg6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZG9uJ3QgZGVmaW5lIGNvbmZpZ3VyZSBQQUNLQUdFXyogbWFjcm9zIGlmIGFscmVhZHkgZGVmaW5lcy4KICAgCjIwMDMtMTEtMDQgMDg6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIEEgbmV3IGVudHJ5IGRpc2N1c3NpbmcgdGFibGVzIHdpdGggPjI1NiBjb2x1bW5zLgogICAKMjAwMy0xMS0wNCAwNzozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1zZXQubTJpOgoKICAgYWx3YXlzIGdlbmVyYXRlIGNvZGUgd2hlbiBkYXRhIGNvbnRleHQgaXMgZ2VuZXJhdGVkCiAgIAoyMDAzLTExLTA0IDA3OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50cwogICAKMjAwMy0xMS0wNCAwNzozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzOyB1c2UgZ2VuZXJpYy1zZXQgaW5zdGVhZCBvZiBnZXQKICAgCjIwMDMtMTEtMDQgMDc6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzCiAgIAoyMDAzLTExLTA0IDA3OjE5ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgc3luYyBjb250cmlidXRvcnMgdy81LjAueAogICAKMjAwMy0xMS0wNCAwMToyOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgRG9jdW1lbnQgdGhlIGVmZmVjdCBvZiAtQyBvbiBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlcy4KICAgCjIwMDMtMTEtMDMgMTQ6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IGdlbmVyYXRlZCBjb2RlIGZvciB1bmRvX3NldHVwCiAgIAoyMDAzLTExLTAzIDEyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBjbGFyaWZ5IGNvbW1lbnRzOyByZW1vdmUgYm9ndXMgYXNzZXJ0cwogICAKMjAwMy0xMS0wMyAxMDozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaToKCiAgIG1ha2UgSVNfU0VUIG1hY3JvcyB1bmlxdWUgcGVyIG5vZGUKICAgCjIwMDMtMTEtMDMgMTA6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaToKCiAgIGZpeCB2YXIgbmFtZSB0eXBvCiAgIAoyMDAzLTExLTAzIDEwOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpOgoKICAgbXVzdCB1c2UgYWRkciBvZiBsb2NhbCB2YXIgdG8gZ2V0IHB0cgogICAKMjAwMy0xMS0wMyAxMDoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmk6CgogICBtdXN0IHVzZSBhZGRyIG9mIGxvY2FsIHZhciB0byBnZXQgcHRyCiAgIAoyMDAzLTExLTAzIDEwOjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBzZXQgdXAgZGVmYXVsdHMgZm9yIG1mZCB0YWJsZXMKICAgCjIwMDMtMTEtMDMgMDc6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlY29nbml6ZSBTTk1QX01TR19TRVQgaXMgbm90IGEgdmFsaWQgR0VUIG1vZGU7IGNvbW1lbnQgdHdlYWtzCiAgIAoyMDAzLTExLTAzIDA3OjI2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIFJlY29nbmlzZSBTTk1QX01TR19TRVQgYXMgYSB2YWxpZCBTRVQgbW9kZQogICAoc28gdGhhdCB0aGUgdmFyYmluZCBjYWNoaW5nIGRvZXNuJ3QgbG9zZSB0aGUgYXNzaWduZWQgdmFsdWVzISkKICAgCjIwMDMtMTEtMDIgMDk6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICByZXN0b3JlIGFjY2lkZW50YWx5IGRlbGV0ZWQgaHB1eCBkZWZpbmU7IGFkZCBjb21tZW50CiAgIAoyMDAzLTExLTAyIDA0OjU1ICBuYmEKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5nczogY29uc3QtbmVzcywgY2FzdHMsIG1pc3NpbmcgcHJvdG95cGVzLAogICB1bnVzZWQgdmFyaWFibGVzLCBjdnMgaWdub3JlIGlnbm9yYWJsZSBmaWxlcwogICAKMjAwMy0xMS0wMiAwNDo1MCAgbmJhCgogICAqIC5jdnNpZ25vcmUsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFwcHMvLmN2c2lnbm9yZSwKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzOiBjb25zdC1uZXNzLCBjYXN0cywgbWlzc2luZyBwcm90b3lwZXMsCiAgIHVudXNlZCB2YXJpYWJsZXMsIGN2cyBpZ25vcmUgaWdub3JhYmxlIGZpbGVzCiAgIAoyMDAzLTExLTAyIDA0OjQ0ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBGaXggYSBiYWQgc3ludGF4IHdoZW4gdGVzdGluZyBmb3IgcGVybCBtb2R1bGVzCiAgIAoyMDAzLTExLTAyIDA0OjQyICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgQW5vdGhlciBsZWZ0IG92ZXIgLXAgb3B0aW9uCiAgIAoyMDAzLTExLTAxIDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGFsd2F5cyBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgbmUvZXEgdGVzdHM7IGFsbG93IG92ZXJyaWRlIG9mIHZhcmJpbmQgdmFyaWFibGUKICAgbmFtZTsgYWRkIHN1YmlkIHRvIG5vZGUgc3VtbWFyeQogICAKMjAwMy0xMS0wMSAxNjowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgbW92ZSBleGFtcGxlIGFuZCB0cmFuc2llbnQgZGVmYXVsdHMgdG8gdGFibGUgc2V0dXAKICAgCjIwMDMtMTEtMDEgMTY6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZyBjdHggZnJvbSB2b2lkKiB0byBuZXRzbm1wX2RhdGFfbGlzdCAqOyBtb3ZlIGV4YW1wbGUKICAgYW5kIHRyYW5zaWVudCBkZWZhdWx0cyBoZXJlIChmcm9tIHRvcCkKICAgCjIwMDMtMTEtMDEgMTU6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgYWRkICdUT0RPJyBjb21tZW50OyBkb24ndCBnZW5lcmF0ZSBjb2RlIGlmIGV4YW1wbGUgbm90IHNldCAmIG5vdCBnZW5lcmF0ZWQgZGF0YQogICBjb250ZXh0OyBkZWZhdWx0IHRvIHJldHVybmluZyBubyBkYXRhIGZvciBub2RlOwogICAKMjAwMy0xMS0wMSAxNTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICB1c2UgcXVvdGVzIG9uIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgZml4IHJlZyBwdHIgZGNsCiAgIAoyMDAzLTExLTAxIDE1OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBhZGQgdXNlcnMgdGFyZ2V0IHRvIG9ubHkgYnVpbGQgdXNlciBjb2RlCiAgIAoyMDAzLTExLTAxIDE1OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIHF1b3RlcyBvbiBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGNoZWNrX2luZGV4cyBpcyBvbmx5IGZvciByb3cKICAgY3JlYXRpb247IGRhdGEgbm90IGZvdW5kIG9ubHkgb2sgZm9yIHJvdyBjcmVhdGlvbiwgbm90IHNldHRhYmxlOyBzYW5pdHkKICAgY2hlY2sgZm9yIGJvZ3VzIGluZGV4IG9pZCBzaXplIGJlZm9yZSBtZW1jcHk7IHNldCBBU05fUFJJVl9SRVRSWSBmb3Igbm8gZGF0YSwKICAgc28gc3BhcnNlIHRhYmxlcyB3b3JrCiAgIAoyMDAzLTExLTAxIDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICBzZXQgb2lkIHNpemUgdG8gbWF4IGJlZm9yZSB0cnlpbmcgdG8gcGFyc2Ugb2lkCiAgIAoyMDAzLTExLTAxIDE1OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcmVuYW1lIHJlZiB0byBsb29wX3JlZjsgbW9yZSBhc3NlcnRzOyBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgbW92ZQogICBpdHJfY3RyIGZyZWUgb3V0c2lkZSBvZiBleGFtcGxlIGNvbmRpdGlvbmFsCiAgIAoyMDAzLTExLTAxIDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpOgoKICAgdHdlYWsgaW5kZW50aW9uCiAgIAoyMDAzLTExLTAxIDE1OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IGRvbid0IGluY2x1ZGUgY29kZSBpZiBleGFtcGxlcyBub3Qgc2V0CiAgIAoyMDAzLTExLTAxIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBkb2N1bWVudCBpbmNsdWRlIGluIGNvbW1lbnRzCiAgIAoyMDAzLTExLTAxIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWNvcHkubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyB0d2VhayBjb25kaXRpb25hbAogICAKMjAwMy0xMS0wMSAxNTo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBjb25kaXRpb25hbCBpbnNpZGUgaW5jbHVkZQogICAKMjAwMy0xMS0wMSAxNTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1yZWFkbWUubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzCiAgIAoyMDAzLTExLTAxIDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpCiAgIAoyMDAzLTExLTAxIDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmkKOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIGRlZmF1bHQgdG8gcmV0dXJuaW5nIG5vIGRhdGEgZm9yIG5vZGVzCiAgIAoyMDAzLTExLTAxIDE1OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwgbWZkLWRhdGEtc2V0Lm0yYwosIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cykKICAgCjIwMDMtMTEtMDEgMTU6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpOgoKICAgbmV3IGNvZGUgZm9yIGluZGV4ZXMgYW5kIG9pZCBjb252ZXJzaW9ucwogICAKMjAwMy0xMS0wMSAxMDo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICB1c2UgZW5kb2ZtaWJ2aWV3IGluc3RlYWQgb2Ygbm9fdmFycwogICAKMjAwMy0xMC0zMCAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCjoKCiAgIGFkZCBjb21tZW50cwogICAKMjAwMy0xMC0zMCAxNzozNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZnVuYyBwYXJhbWV0ZXIsIG5vdCB2YXJpYWJsZSB3ZSdyZSBhYm91dCB0byBvdmVyd3JpdGUKICAgCjIwMDMtMTAtMzAgMTc6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRlY2xhcmUgIGNhbGxiYWNrX21hc3Rlcl9udW0gZXZlbiBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gaXMgbm90CiAgIGRlZmluZWQgKHNvIEkgZG9uJ3QgbmVlZCB0byBhZGQgbW9yZSBpZmRlZidzIGluIG90aGVyIGNvZGUpCiAgIAoyMDAzLTEwLTMwIDE3OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgbG9nIHdhcm5pbmcgYW5kIGRvbid0IG9wZW4gY2FsbGJhY2sgdHJhbnNwb3J0IGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgogICBpcyBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0zMCAxNzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbG9nIHdhcm5pbmcgYW5kIGRvbid0IG9wZW4gY2FsbGJhY2sgdHJhbnNwb3J0IGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgogICBpcyBub3QgZGVmaW5lZDsgZml4IHRlc3QgZm9yIGFnZW50eF9vcGVuX3Nlc3Npb24KICAgCjIwMDMtMTAtMzAgMTc6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBjb2RlIGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0zMCAxNjo1MSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbWVyZ2UgdHJhbnNwb3J0IGNvbW1lbnRzIGZyb20gbm9uLXdpbiBuZXQtc25tcC1jb25maWcuaDsgdW5kZWYgY2FsbGJhY2sKICAgdHJhbnNwb3J0IGluc3RlYWQgb2YgZGVmIG9mIDAsIHNvIGl0IGFjdHVhbGx5IHR1cm5zIG9mZiBjb2RlOyB1bmRlZiBpbmxpbmUKICAgbWFjcm9zIGJlZm9yZSByZWRlZmluaW5nIHRoZW0KICAgCjIwMDMtMTAtMzAgMTY6NDkgIHJzdG9yeQoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIHJlcGxhY2UgY29udGVudHMgdy9pbmNsdWRlIG9mIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHNvIG9ubHkgb25lIGhlYWRlcgogICBuZWVkcyB0byBiZSBtYWludGFpbmVkLiBFdmVyeW9uZSBzaG91bGQgYmUgdXNpbmcgdGhlIG5ldyBvbmUgYW55d2F5LCByaWdodD8KICAgCjIwMDMtMTAtMzAgMDE6MzEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgY29uZmlndXJlIHRoZSBIb3N0LVJlc291cmNlcyBzdXBwb3J0IGJ5IGRlZmF1bHQuCiAgIEl0J3MgYSBnb29kIGlkZWEsIGJ1dCB3ZSdyZSB0b28gY2xvc2UgdG8gNS4xIGZvciB0aGlzIHRvIGJlIHNhZmUuCiAgIAoyMDAzLTEwLTI5IDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBpbmxpbmUgLT4gTkVUU05NUF9JTkxJTkUKICAgCjIwMDMtMTAtMjkgMDM6MTAgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmLCBzbm1wdHJhcGQuOC5kZWYKOgoKICAgRG9jdW1lbnQgbmV3IC1MeCBsb2dnaW5nIG9wdGlvbiBibG9jaywgYW5kIGFzc29ydGVkIGRlcHJlY2F0ZWQgb3B0aW9ucy4KICAgCjIwMDMtMTAtMjkgMDI6NTkgIGR0czEyCgogICAqIEZBUToKCiAgIFZhcmlvdXMgdXBkYXRlcyB0byB0aGUgRkFRLgogICAgIEhpZ2hsaWdodHMgaW5jbHVkZSBiZXR0ZXIgZXhwbGFuYXRpb24gb2YgYWNjZXNzIGNvbnRyb2wgYW5kIHRpbWVvdXQKICAgcHJvYmxlbXMsIGRpc2N1c3Npb24gb2Ygd2hhdCB0cmFwcyBhcmUgc2VudCBhbmQgd2hlcmUgdG8gKGluY2x1ZGluZwogICBEaXNtYW4gRXZlbnQtTUlCIHN1cHBvcnQpIGFuZCBtb3JlIG9uIG1pYjJjIHVzYWdlIChpbmNsdWRpbmcgdGhlCiAgIGRpZmZlcmVuY2VzIGJldHdlZW4gY29uZmlncywgYW5kIHBvaW50ZXJzIHRvIGV4YW1wbGVzKS4KICAgICBTZXBhcmF0ZSBzZWN0aW9ucyBmb3IgY29tcGlsYXRpb24gYW5kIGNvZGluZyBuZXcgbW9kdWxlcwogICAocmVzdHJ1Y3R1cmluZyBleGlzdGluZyBlbnRyaWVzKQogICAgIFJlZmVyIHRvIHByb2plY3QgYXMgJ05ldC1TTk1QJyByYXRoZXIgdGhhbiAnVUNEJyB0aHJvdWdob3V0CiAgIChleGNlcHQgd2hlcmUgc3BlY2lmaWNhbGx5IHY0IG9yIFVDRC1TTk1QLU1JQiBhcmUgbWVhbnQpCiAgIAoyMDAzLTEwLTI5IDAyOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuaCAoVjUtMC1wYXRjaGVzLjEpLAogICBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy5bMSwyXSksIHN5c09SVGFibGUuaDoKCiAgIEZpeCBudWxsIGRlZmluaXRpb24gb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUgKHdoZW4gbm90IHVzaW5nIHRoaXMgdGFibGUpLgogICBSZXBvcnRlZCBieSBNYXJrIEhvcGtpbnMKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmYsIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMKLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsCiAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywKICAgbWFuL25ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zCiwgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zCiwgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zCiwgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKLCBtYW4vbmV0c25tcF90b2RvLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4xLnByZTMKICAgCjIwMDMtMTAtMjggMTg6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTEwLTI4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBmaXggdmVyc2lvbiBmb3IgNS4xIHJlbGVhc2UKICAgCjIwMDMtMTAtMjggMTI6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVnZW5lcmF0ZSBmcm9tIG5ldyBhY2NvbmZpZy5oCiAgIAoyMDAzLTEwLTI4IDEyOjQ1ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGZpeCBidWcgWyA4MzA4NTIgXSBCdWlsZCBkb2Vzbid0IHdvcmsgb24gSFAtVVggMTFpCiAgIHVuZGVmIG1hY3JvIGJlZm9yZSByZWRlZmluaW5nIGl0CiAgIAoyMDAzLTEwLTI4IDEwOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiByb3V0ZV93cml0ZS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIHJvdXRlX3dyaXRlLmM6CgogICBhcHBseSBwYXRjaCBbIDgxMjAxOSBdIHNubXBzZXQgb24gaXBSb3V0ZURlc3QuMTI3LjAuMC4xIGtpbGwgYWdlbnQgZHVtcHMgY29yZQogICBmaXhlcyBidWcgWyA4MDg5NTggXSBPU1N1biBzbm1wc2V0IG9uIGlwUm91dGVEZXN0LjEyNy4wLjAuMSBraWxsIGFnZW50IGR1bXBzIC4uLgogICAKMjAwMy0xMC0yOCAxMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMgKFY1LTAtcGF0Y2hlcy4xKSwgZGVidWdfaGFuZGxlci5jCjoKCiAgIGFwcGx5IHBhdGNoIFsgODMxMTYxIF0gbmV0c25tcF9nZXRfZGVidWdfaGVscGVyIGNyYXNoZXMgc25tcGQKICAgZml4ZXMgYnVnIFsgODI2OTYzIF0gbmV0c25tcF9nZXRfZGVidWdfaGVscGVyIGNyYXNoZXMgc25tcGQKICAgCjIwMDMtMTAtMjggMTA6MDUgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFwcGx5IHBhdGNoIFsgODI5NjMzIF0gNS4xcHJlMSBQZXJsIHRyYW5zbGF0ZU9iaiBmaXgKICAgCjIwMDMtMTAtMjggMDc6MzIgIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYyAoVjUtMC1wYXRjaGVzLjMpLCBuZXQtc25tcC5zcGVjOgoKICAgYXBwYXJlbnRseSBuZXN0ZWQgJWlmJ3MgYXJlIGEgbm8tbm8KICAgCjIwMDMtMTAtMjggMDc6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBmaXggcGVybCBjb25kaXRpb25hbCBidWlsZHMgYWZ0ZXIgcmVhZCBycG0gZG9jcwogICAKMjAwMy0xMC0yNiAwMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGlubGluZSAtPiBORVRTTk1QX0lOTElORSBhcyBwb2ludGVkIG91dCBieSBBbGV4IEJ1cmdlcgogICAKMjAwMy0xMC0yNCAxNjo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICByZW5hbWUgbG9vcF9jdHggbG9vcF9jb250ZXh0OyBwcmVmaXggYWxsIGxvb3AgZnVuY3Rpb25zIHcvbG9vcAogICAKMjAwMy0xMC0yNCAxNjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIG1vdmUgZGVmYXVsdHMgdG8gYW4gZWFzaWVyIHRvIHNwb3QgcGxhY2UKICAgCjIwMDMtMTAtMjQgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLXRvcC5tMmMKOgoKICAgcmVuYW1lIHRhYmxlX2lkeCB0YWJsZV9taWJfaW5kZXg7IHJlbmFtZSBsb29wX2N0eCBsb29wX2NvbnRleHQ7IHByZWZpeCBhbGwKICAgbG9vcCBmdW5jdGlvbnMgdy9sb29wOyByZW1vdmUgaW5kZXgyb2lkCiAgIAoyMDAzLTEwLTI0IDA2OjAyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBIb3N0LVJlc291cmNlcyBzdXBwb3J0IHRvIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCIG1vZHVsZXMuCiAgIFdlJ3ZlIHRhbGtlZCBhYm91dCB0aGlzIGZvciB5ZWFycyAtIGl0J3MgYWJvdXQgdGltZSB3ZSBkaWQgc28hCiAgIAoyMDAzLTEwLTI0IDA1OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgTmV3IGNob2ljZXMgZm9yIHNvbWUgY29tbWFuZC1saW5lIG9wdGlvbnMsIHRvIGltcHJvdmUgY29uc2lzdGVuY3kKICAgYmV0d2VlbiBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyIHVzYWdlLiAgVGhlIHByZXZpb3VzIG9wdGlvbnMgc3RpbGwKICAgd29yayBidXQgYXJlIG5vdyBtYXJrZWQgYXMgImRlcHJlY2F0ZWQiLiAgVGhlc2Ugc2hvdWxkIHByb2JhYmx5CiAgIGJlIHJlbW92ZWQgY29tcGxldGVseSBpbiBhIGZ1dHVyZSByZWxlYXNlIChlLmcuIDUuMikuCiAgIAoyMDAzLTEwLTIzIDE1OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbW92ZSAnc3RydWN0JyBiZWZvcmUgdHlwZGVmCiAgIAoyMDAzLTEwLTIzIDE1OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbmFtZSBzdHJ1Y3R1cmUKICAgcmVtb3ZlIHVudXNlZCBub2FsbG9jIGZ1bmN0aW9uCiAgIAoyMDAzLTEwLTIzIDE1OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW5hbWUgc3RydWN0dXJlCiAgIAoyMDAzLTEwLTIzIDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHBhcnNlLmMgKFY1LTAtcGF0Y2hlcy4zKSwgcGFyc2UuYzoKCiAgIGZpeCBidWcgNzY3NzUzOiBzbm1wd2FsayBjcmFzaCAoYWRvcHRfb3JwaGFucykKICAgCjIwMDMtMTAtMjMgMTA6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0xMC0yMyAxMDozMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGFyZW50bHkgY29uZmlndXJlIHRyYW5zbGF0ZXMgJ18nIHRvICctJyBpbiBhcmd1bWVudHMvZW5hYmxlcywgc28gdXNlIC0KICAgY29uc2lzdGVudGx5OyBtb3ZlIGNvbW1vbiBtb2R1bGUgYXJnIG1pc3Rha2UgY2hlY2tzIHdpdGggb3RoZXIgbW9kdWxlCiAgIGNoZWNrcywgYW5kIGFkZCBhIGZldyBtb3JlOyBhZGQgY2hlY2sgZm9yIGVuYWJsZSBwZXJsLW1vZHVsZXMgdG9vCiAgIAoyMDAzLTEwLTIzIDEwOjI0ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG1vdmUgY29tbWVudCBmaXhlcyB0byBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlIG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIAoyMDAzLTEwLTIzIDA4OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSBub25zdGQgTkRFQlVHIGlmZGVmIHRzdDsgdXNlIERCR01TR1NVQk9JRCBpbnN0ZWFkIG9mIERCR01TRE9JRDsgYWRkCiAgIGRlYnVnIGZvciBjb21wYXJpc29uIHJlc3VsdAogICAKMjAwMy0xMC0yMyAwODo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBhZGQgY29tbWVudHM7IGZpeCBnZXRfbmV4dCB3L251bGwga2V5IChnZXQtZmlyc3QpOyByZW1vdmUgcmVkdW5kYW50IGRlYnVncwogICAKMjAwMy0xMC0yMiAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc25tcHVzbS5jOgoKICAgZml4IGJ1ZyA4MjI4NzAgKHVzbVN0YXRzRGVjcnlwdGlvbkVycm9ycyBkaWQgbm90IGluY3JlbWVudCBvbiBmYWlsZWQgZ2V0IHJlcSkKICAgd2l0aCBwYXRjaCA4MjcwNTYgZnJvbSBicm93bGFuZHMKICAgCjIwMDMtMTAtMjIgMDk6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBfX1NUUklORyBpZiBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0yMiAwNjoxNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGluY3JlbWVudCBsaWJ0b29sIHJldmlzaW9uCiAgIAoyMDAzLTEwLTIyIDA2OjEzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggY29tbWVudGNoZWNrIHBhdHRlcm4gdG8gZXhjbHVkZSBmdHAgYW5kIGh0dHAgdXJscwogICAKMjAwMy0xMC0yMiAwMjowOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVGhlIHZhcmlhYmxlcyAnZG9faGludCcgYW5kICdjaGVjaycgYXJlIG9ubHkgZGVjbGFyZWQKICAgb3IgbmVlZGVkIHdoZW4gJ0RJU0FCTEVfTUlCX0xPQURJTkcnIGlzIG5vdCBkZWZpbmVkLgogICBUaGVyZSdzIG5vIHBvaW50IGluIGdpdmluZyB0aGVtIGR1bW15IHZhbHVlcyBvdGhlcndpc2UuCiAgIAoyMDAzLTEwLTIxIDEyOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMTAtMjEgMTI6MTIgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIGMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG1vdmUgdXNhZ2Ugc3ViIHRvIHRvcCBzbyBpdCBhY3R1YWxseSBkb2VzIHNvbWV0aGluZzsgcHJpbnQgdXNhZ2UgZm9yIHBhcmFtCiAgIGVycm9ycywgaW5zdGVhZCBvZiBqdXN0IGR5aW5nCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjQyICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICByZW1vdmUgYm9ndXMgaW5zdGFsbCB0YXJnZXQKICAgCjIwMDMtMTAtMjEgMTE6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgZm9yIG5ldyBjb25maWcuaW4KICAgCjIwMDMtMTAtMjEgMTE6MTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gcGVybCB1bmluc3RhbGwgc3VwcG9ydDsgdXBkYXRlIHZlcnNpb24gaW4gaW5pdAogICAKMjAwMy0xMC0yMSAwMTo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluY2x1ZGUgPGZjbnRsLmg+IGZvciBkZWZpbml0aW9uIG9mIE9fUkRXUi4gUmVwb3J0ZWQgYnkgU2ViTm9iLgogICAKMjAwMy0xMC0yMSAwMTo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEVuc3VyZSB0aGF0IG11bHRpLWxpbmUgY29tbWVudHMgYXJlbid0IGJyb2tlbiB3aGVuIHRoZSBhY3RpdmUKICAgbmV0LXNubXAtY29uZmlnLmggZmlsZSBpcyBnZW5lcmF0ZWQuICBSZXBvcnRlZCBieSBTZWJOb2IuCiAgIChQb3NzaWJseSBiZWluZyBhIGJpdCBvdmVyLWNhdXRpb3VzIGhlcmUsIGJ1dCB5b3UgY2FuJ3QgYmUgdG9vIGNhcmVmdWwhKQogICAKMjAwMy0xMC0xNyAyMjo1MiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMy0xMC0xNyAyMjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvbiB0aGUgbG9va3VwIGNhY2hlLgogICAKMjAwMy0xMC0xNyAxNjozNSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kZXByZWNhdGVkLjMsCiAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgbmV0c25tcF91dGlsaXRpZXMuMzoKCiAgIG1vcmUgKG5ldykgdXBkYXRlcyBmcm9tIGRveHlnZW4KICAgCjIwMDMtMTAtMTcgMTY6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICB1cGRhdGVzIGZyb20gZG94eWdlbgogICAKMjAwMy0xMC0xNyAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGFkZGVkIGFueWRhdGEgbW9kdWxlcwogICAKMjAwMy0xMC0xNyAxNTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtYWtlIGdldHRhYmxlIHJldHVybiBhIGhhc2ggaW5zdGVhZC4KICAgCjIwMDMtMTAtMTcgMTU6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBhZGQgb2lkL2RlZmF1bHQgcG9ydGlvbiB0byBoZWxwIHRleHQgZm9yIHRoZSBmb3J3YXJkIHRva2VuCiAgIAoyMDAzLTEwLTE3IDE1OjAyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIHNwYXJ0YQogICAKMjAwMy0xMC0xNyAxNDo1OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGZvcndhcmQgdG9rZW4KICAgCjIwMDMtMTAtMTcgMTQ6NDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXNlIG5ldyB2ZXJzaW9uIG1vZGlmaWNhdGlvbiBzY3JpcHQKICAgCjIwMDMtMTAtMTcgMTQ6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBuZXcgdmVyc2lvbiBtZXNzaW5nLXdpdGggc2NyaXB0CiAgIAoyMDAzLTEwLTE3IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHBvcnRpb25zIG9sZCBzY3JpcHQgcmVwbGFjZWQgYnkgbmV3ZXIgVmVyc2lvbi1NdW5nZS5wbAogICAKMjAwMy0xMC0xNyAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTUgMDk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHJlbW92ZSBoYXJkY29kZWQgY29udGV4dCBuYW1lCiAgIAoyMDAzLTEwLTE0IDE2OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIGFkZCBub3RlIHRoYXQgZXhhbXBsZSBjb2RlIGlzIGJhc2Ugb24gYSBkYXRhIGZpbGUKICAgCjIwMDMtMTAtMTQgMTY6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBhZGQgbm90IHRoYXQgaXRlcmF0b3IgZ2V0L2dldC1uZXh0IGRvbid0IGNvcnJlc3BvbmQgdG8gcGR1IHR5cGVzLCBhbmQgdGhleQogICBzaG91bGRuJ3QgYmUgb3JkZXJpbmcgdGhlaXIgZGF0YQogICAKMjAwMy0xMC0xNCAxNjowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBzeW5jIGNvbW1lbnRzIHcvcmVhZG1lCiAgIAoyMDAzLTEwLTE0IDE2OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBhcyBsb25nIGFzIHdlJ3JlIHVzaW5nIGdudS1tYWtlIHNwZWNpZmljcywgb25seSBwcm9jZXNzIGNvbmZpZyB2YXJzIG9uY2UgKGFsc28KICAgbGV0cyBtYWtlIG91dHB1dCByZXByZXNlbnQgYWN0dWFsIHZhbHVlcywgaW5zdGVhZCBvZiBzY3JpcHQpCiAgIAoyMDAzLTEwLTE0IDE2OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIGJpZyBvYm5veGlvdXMgd2FybmluZzsgc2V0IGVycm9yIGZvciBubyBjb250ZXh0IGlmIHRhYmxlIG5vdCBzZXR0YWJsZQogICAKMjAwMy0xMC0xNCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmMtaW50ZXJuYWwtd2FybmluZy5tMmk6CgogICBiaWcgb2Jub3hpb3VzIHdhcm5pbmcgZm9yIHRvcCBvZiBpbXBsZW1lbnRhdGlvbiBmaWxlcwogICAKMjAwMy0xMC0xNCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIHN5bmMgZnVuY3Rpb24gaGVhZGVyIHN1bW1hcnkgY29tbWVudHMgdy9yZWFkbWUgc3VtbWFyeSBoZWFkZXIgY29tbWVudHM7CiAgIHByZXNlbnQgZnVuY3Rpb24gaW4gc2FtZSBvcmRlciBpbiBib3RoIGZpbGVzCiAgIAoyMDAzLTEwLTE0IDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBpbml0IG0yY19kYXRhX2luaXQKICAgCjIwMDMtMTAtMTQgMTM6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgcmVtb3ZlCiAgIHVudXNlZCBwcm90b3R5cGU7IGtlZXAgcHRyIHRvIHRhYmxlIGNvbnRleHQgaW4gZXhhbXBsZTsgcmVuYW1lIHNvbWUgdmFycwogICB1c2UgbmV3IE1GRF8qIGVycm9yIGNvZGVzOyByZW5hbWUgZXhhbXBsZSBmdW5jdGlvbjsgZG9jdW1lbmF0aW9uIHVwZGF0ZXM7CiAgIAoyMDAzLTEwLTE0IDEzOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgcmVtb3ZlCiAgIHVudXNlZCBwcm90b3R5cGU7IGtlZXAgcHRyIHRvIHRhYmxlIGNvbnRleHQgaW4gZXhhbXBsZTsgcmVuYW1lIHNvbWUgdmFycwogICAKMjAwMy0xMC0xNCAxMzozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyBkb24ndCBhdXRvCiAgIGFsbG9jYXRlIGNvbnRleHQgZm9yIGdldCBkYXRhLCBzbyB1c2VyIGNvdWxkIHVzZSBvbmUgdGhleSd2ZSBhbGxvY2F0ZWQKICAgCjIwMDMtMTAtMTQgMTM6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1zZXR1cC5tMmk6CgogICBjb21tb24gc2V0dXAgZm9yIHVuc29ydGVkIGV4dGVybmFsLCB3aGljaCBoYXMgMyBwYXJ0cyBpbmNsdWRlZCBhdCBkaWZmZXJlbnQKICAgdGltZXMKICAgCjIwMDMtMTAtMTQgMTM6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgaW52ZXJ0IHZlcmJvc2UgbG9naWMgdGVzdDsgYWRkIHF1aWNrIG92ZXJ2aWV3IG9mIGl0ZXJhdGlvbiBsb29wOyByZW9yZGVyCiAgIHNvbWUgdGV4dC9ibGFuayBsaW5lczsgdXBkYXRlIGZvciByZW5hbWVkIHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgaGFuZGxlIGNvdW50ZXI2NCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHVzZSBuZXcgTUZEXyogZXJyb3IgY29kZXM7IHVwZGF0ZSBmb3IgbTJjIHBhcmFtIHJlbmFtZTsgaGFuZGxlIGNvdW50ZXI2NCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBuYW1lIGRlcHMgZmlsZXMgZXhwbGljaXR5LCBzaW5jZSAuYz0uZGVwcyBpc24ndCBwb3J0YWJsZQogICAKMjAwMy0xMC0xNCAxMzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHVwZGF0ZSBiYXNlIHBhcmFtIGZyb20gbWZkIHJlZyB0byBtZmQgcGR1IGN0eDsgdXBkYXRlIGZvciByZW5hbWVkIG1mZC9tMmMgdmFyczsKICAgcmVuYW1lIHVzZXIgcmVnIHR5cGVkZWY7IG5vIHVuZG8gaW4gdGFibGUgY3R4IGlmIHRhYmxlIG5vdCBzZXR0YWJsZTsgYWRkIHVzZXIKICAgcmVnIHB0ciwgcmVxdWVzdCBtb2RlIGFuZCBkYXRhIGxpc3QgdG8gdGFibGUgY29udGV4dDsgbXYgY29udGFpbmVyIGluaXQgcHJvdG8KICAgYW5kIG90aGVyIGludGVyZmFjZSBwcm90b3R5cGVzIHRvIHRoZWlyIG93biBoZWFkZXI7IGFkZCBwcm90b3MgZm9yIHByZS9wb3N0CiAgIHJlcXVlc3RzLCB0YWJsZSBjb250ZXh0IGluaXQvY2xlYW51cDsgYWRkIHNldCBwcm90b3R5cGVzOyBpbmNsdWRlIG5ldyBoZWFkZXJzCiAgIGF0IGJvdHRvbSBvZiBtYWluIGhlYWRlcjsgbW92ZSBhcyBtdXNoIG9mIGluaXQgcm91dGluZSBhcyBwb3NzaWJsZSBpbnRvCiAgIGludGVyZmFjZSBjb2RlOyB1c2UgbmV3IE1GRF8qIHJldHVybiBjb2RlczsgZG9uJ3QgcnVuIG1ha2VmaWxlL3N1YmFnZW50CiAgIGNvbmYgZmlsZXMgaWYgdGhleSd2ZSBhbHJlYWR5IGJlZW4gcnVuCiAgIAoyMDAzLTEwLTE0IDEyOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgYWRkIG1mZCBvdmVydmlldyBvZiBTTk1QIGFuZCBtZmQgZGF0YSBzdHJ1Y3R1cmVzOyBkb2N1bWVudCBtMmMgY29uZmlndXJhdGlvbgogICB2YXJpYWJsZXM7IGluZGVudCBzb21lIGNvbW1lbnRzIHRvIGJlIG1vcmUgY29uc2lzdGVudDsgZG9jcyBmb3Igc2V0IHN1cHBvcnQKICAgCjIwMDMtMTAtMTQgMTI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZXBsYWNlIGhhcmRjb2RlZCBoZWFkZXIgbmFtZSB3LyRuYW1lLmg7IGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qCiAgIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgIHVwZGF0ZSByZW5hbWVkIG0yYyBwYXJhbXM7IHJlbW92ZSBsb2NhbCBzdGF0aWMKICAgcHJvdG90eXBlcyBmcm9tIGhlYWRlcnM7IG5ldyBwZXIgdGFibGUgaW50ZXJmYWNlIGNvbnRleHQ7IHJlbmFtZSBpbnRlcmZhY2UgaW5pdDsKICAgdXNlIHRhYmxlIHJlZyBpbiBsb2NhbCB0YWJsZSBjb250ZXh0IGluc3RlYWQgb2YgbWFsbG9jOyByZW1vdmUgXyBwcmVmaXggZnJvbQogICBwdWJsaWMgdGFibGUgYWxsb2NhdGUgJiByZWxlYXNlIGN0eCBmdW5jczsgaW5pdCB2YXJzIGluIGFsbG9jYXRlX2N0eDsgY2FsbAogICB0YWJsZSBjdHggaW5pdCBmdW5jIGluIGFsbG9jYXRlLCBpZiBkZWZpbmVkOyB3cmFwcGVycyBmb3IgYWxsIG1mZCBmdW5jdGlvbnMsIHRvCiAgIGNvbnZlcnQgZnJvbSBvdXIgdGFibGUgY29udGV4dCB0byB0aGUgdXNlcnMgcmVnaXN0cmF0aW9uIHBvaW50ZXI7IGFmdGVyIG9iamVjdAogICBsb29rdXAgc2V0IHVzZXJzIGluZGV4ZXMgYmFjayB0byB0aGUgdmFyYmluZCBvaWQgYW5kIHNldCBjb250ZXh0IHZhcnM7IG9ubHkKICAgZG8gZ2V0IHJvdXRpbmVzIGZvciBhY2Nlc3NhYmxlIGludGVybmFsIGluZGV4ZXM7IHByZWZpeCB3cmFwcGVycyB3L21mZF87CiAgIGRldGVjdCBpZiB1c2VyIGdldCByb3V0aW5lcyBtdW5nZXMgdmIgdmFsdWUgcG9pbnRlcjsgY2hlY2sgZm9yIG51bGwgcHRyIGJlZm9yZQogICBmcmVlOyBtZXJnZSBjaGVja19pbmRleCBpbnRvIGNoZWNrX2luZGV4ZXM7IGFkZCBzZXQgdmFsdWVzLCBjb21taXQsIHVuZG8KICAgYW5kIGlycmV2ZXJzaWJsZSBjb21taXQgd3JhcHBlcnM7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lczsKICAgc2ltcGxpZnkgcGFyYW0gZm9yIGludGVybmFsIGluZGV4IGNoZWNrIGZ1bmNzCiAgIAoyMDAzLTEwLTE0IDEyOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBwdXQgcHJvdG90eXBlcyBpbiAkbmFtZV9kYXRhX2dldC5oCiAgIAoyMDAzLTEwLTE0IDEyOjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHVwZGF0ZSBtMmMgbm9kZSBwYXJhbXMgdG8gYmUgYmFzZWQgb24gdmFyL3ZhbC9yZWYgaW5zdGVhZCBvZiBmdW5jdGlvbiBuYW1lCiAgIAoyMDAzLTEwLTE0IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpOgoKICAgdXBkYXRlIGZvciByZW5hbWUgbTJjIHZhciBuYW1lcwogICAKMjAwMy0xMC0xNCAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHVzZSBtMmNfbm9kZV9zdW1tYXJ5IGluIGNvbW1lbnQKICAgCjIwMDMtMTAtMTQgMTI6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgcHV0IHByb3RvdHlwZXMKICAgaW4gJG5hbWVfZGF0YV9zZXQuaDsgdXBkYXRlIHJlbmFtZWQgbTJjIHBhcmFtczsgYWRkIGV4dGVybmFsIGluZGV4IGNoZWNrIGZ1bmMKICAgaWYgdGFibGUgaGFzIGV4dGVybmFsIGluZGV4OyBzaW1wbGlmeSBwYXJhbSBmb3IgaW50ZXJuYWwgaW5kZXggY2hlY2sgZnVuY3MKICAgCjIwMDMtMTAtMTQgMTI6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICByZW1vdmUgbWZkIHJlZyBwYXJhbSAmJiBhc3NlcnQKICAgCjIwMDMtMTAtMTQgMTI6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyogcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBhZGQgcGVyIG5vZGUKICAgdW5kb19zZXR1cCA7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lczsgdXBkYXRlIHJlbmFtZWQgbWZkIHBhcmFtcwogICAKMjAwMy0xMC0xNCAxMjoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgY2hnIG1mZF9yZWcgcGFyYW1zIHRvIHRhYmxlX3JlZzsgdXNlIE1GRF8qIHJldHVybgogICBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgbm8gcGVyIG5vZGUgY29kZSBpbiB0YWJsZSB1bmRvX3NldHVwICh3aWxsIGJlIGluCiAgIG5ldyBwZXIgbm9kZSB1bmRvX3NldHVwKTsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgaW5kZW50IHRvIG1hdGNoIG90aGVyIHJlYWRtZXMKICAgCjIwMDMtMTAtMTQgMTI6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlbmFtZSBtMmNfdGFibGVfd3JpdGFibGUgdG8gbTJjX3RhYmxlX3NldHRhYmxlIChjb25zaXN0ZW50IHcvbm9kZS5zZXR0YWJsZSk7CiAgIGJhc2UgbTJjX3RhYmxlX3Jvd19jcmVhdGlvbiBvbiBuZXcgZnVuY3Rpb24gdGFibGVfaGFzX2NyZWF0ZTsgbmV3CiAgIG0yY190YWJsZV9leHRlcm5hbF9pbmRleGVzIGJhc2Ugb24gbmV3IGZ1bmN0aW9uIGNvdW50X2V4dGVybmFsX2luZGV4ZXMKICAgCjIwMDMtMTAtMTQgMTI6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICByZW1vdmUgdW51c2VkIGxpbmVzOyBhZGQgb2lkIGxlbmd0aCBpbiBvdXRwdXQKICAgCjIwMDMtMTAtMTQgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG9ubHkgc2V0IGRlZmF1bHRzIGlmIHZhbHVlIGlzIGVtcHR5CiAgIAoyMDAzLTEwLTE0IDExOjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGlmIHNvcnRlZCwgc2tpcCBpdGVyYXRpb24gb24gZmluZCBmaXJzdDsgYWRkIG5ldyByZXVzZSBwYXJhbSB0byBzYXZlX3BvcwogICAKMjAwMy0xMC0xNCAxMTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBsb2cgZWFjaCBhZ2VudHhwZXJtcyBwYXJ0IHNlcGFydGVseSwgc28gYXMgbm90IHRvIGNyYXNoIGlmIGFueSBvZiB0aGUgb3B0aW9uYWwKICAgaXRlbXMgYXJlIGxlZnQgb3V0OyB1cGRhdGUgaGVscCB0byBzaG93IHRoYXQgb3B0aW9uYWwgcGFybXMgbXVzdCBiZSBpbiBvcmRlcgogICAKMjAwMy0xMC0xNCAxMToxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2hhbmdlIGNvdW50ZXIgNjQgdHlwZSBmcm9tICdjb3VudGVyNjQnIHRvICdVNjQnLCBzaW5jZSB0aGUgZm9ybWVyIGNhbid0IGJlCiAgIHVzZWQgYXMgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0eXBlOyBwcm9jZXNzICRIT01FLy5zbm1wL21pYjJjLmNvbmYsIGlmIGl0CiAgIGV4aXN0czsgbmV3IGZvcmVhY2ggaW50ZXJuYWxpbmRleCBhbmQgZXh0ZXJuYWxpbmRleDsgbmV3IHN1YiB0YWJsZV9oYXNfY3JlYXRlCiAgIGFuZCBjb3VudF9leHRlcm5hbF9pbmRleGVzCiAgIAoyMDAzLTEwLTE0IDA5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkb24ndCByZXF1aXJlIERFQlVHIGRmaW5lIGZvciBhc3NlcnRzOyBuZXcgbG9naWM6IHVzZSBhc3NlcnQgaWYKICAgTkVUU05NUF9VU0VfQVNTRVJUIGRlZmluZXMuIG90aGVyd2lzZSwgZmFpbGVkIGFzc2VydHMgd2lsbCB1c2Ugc25tcF9sb2cKICAgdG8gbG9nIGEgbWVzc2FnZSAodW5sZXNzIFNOTVBfTk9fREVCVUdHSU5HIGlzIGRlZmluZWQpLgogICAKMjAwMy0xMC0xNCAwOTo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgbW9kZXM7IGNoZyBjYWxsYmFjayBwYXJhbSB0byB1c2UgbmV3IG1mZF9wZHVfY3R4OyBkb24ndAogICBzcGxpdCBjYWxsYmFja3MgaW50byB0d28gc3RydWN0dXJlczsgZGVmaW5lIG1mZCBzcGVjaWZpYyBlcnJvciBjb2RlcyBhcyBhCiAgIHN1YnNldCBvZiBleGlzdGluZyBlcnJvciBjb2RlczsgYWRkIGRvY3VtZW50YXRpb247IHJlbW92ZSB0YWJsZSByZWdpc3RyYXRpb24KICAgZnJvbSByZWdpc3RyYXRpb24gcGFyYW0gbGlzdCwgc2luY2UgaXQncyBpbiB0aGUgbWZkIHJlZyBvYmo7IGhhbmRsZSBnZXQgcmVxdWVzdAogICBzcGxpdCBpbnRvIG9iamVjdF9sb29rdXAgYW5kIGdldCB2YWx1ZXM7IG9ubHkgY2FsbCBuZXh0IGhhbmRsZXIgaWYgbmV4dCBoYW5kbGVyCiAgIGhhcyBhY2Nlc3MgbWV0aG9kOyB0d2VhayBsb29rdXAgcGFyYW1zOiByZXR1cm4gZXJyb3IgY29kZSBhbmQgc2V0IGZvdW5kIHJvdwogICBpbiBuZXcgcGR1IGN0eCBwYXJhbQogICAKMjAwMy0xMC0xNCAwOTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaDoKCiAgIGFkZCByZXVzZSBmbGFnIHRvIGN0eCBkdXAgcGFyYW1zCiAgIAoyMDAzLTEwLTE0IDA5OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgbW9kZSBtc2cgZGVmaW5lcyBmb3IgYmFieSBzdGVwIG1vZGVzOyBzaW1wbGlmeSBtb2RlIHRlc3QgbWFjcm9zOyBhZGQKICAgbmV4dF9tb2RlIHRvIGFnZW50X3JlcXVlc3RfaW5mbwogICAKMjAwMy0xMC0xNCAwOToyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBhZGQgaW50ZXJuYWwgbXNnIGRlZmluZXMgZm9yIGJhYnkgc3RlcCBtb2RlczsgcmVudW1iZXIgZ2V0IHN0YXNoIG1vZGU7IGZpeCB0eXBvCiAgIGluIGNvbW1lbnQ7IHJlc2VydmUgIG1vZGVzIDwgMTI4IGZvciBzZXQgcHJvY2Vzc2luZyB0byBzaW1wbGlmeSBtb2RlIHRlc3RzCiAgIAoyMDAzLTEwLTE0IDA5OjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICByZW5hbWUgYSBmZXcgbW9kZXMKICAgCjIwMDMtMTAtMTQgMDk6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBtb2RlczsgYWRkIG1vZGUgbWFwIGZvciBnZXQtcmVxdWVzdHMgYXMgd2VsbAogICAKMjAwMy0xMC0xNCAwOToxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMy0xMC0xNCAwOToxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBpZmRlZidkIGNvZGUgYWZ0ZXIgcmVzdG9yaW5nIHNvbWUgb2YgaXQ7IHVwZGF0ZSBuZXcgcmVxaW5mbyBwdHIgaW4KICAgcmVxdWVzdHM7IGZpeCBlbmxlc3MgbG9vcDsgZml4IHR5cG9zIGluIGFzc2VydHMKICAgCjIwMDMtMTAtMTQgMDk6MTUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBjaGVjayBmb3IgcmVsYXRpdmUgcGF0aCB0byBzcmMgZGlyIGZvciBidWlsZC1kaXIgY2hlY2tzCiAgIAoyMDAzLTEwLTE0IDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiAoVjUtMC1wYXRjaGVzLjMpLCBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGxlYXZlIHBvc3NpYmx5IGVtcHR5IGNvbmZpZ3VyZSBAdmFyQCBvbiBjb250aW51YXRpb24gbGluZSBieSBpdHNlbGYKICAgCjIwMDMtMTAtMDggMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY1LTAtcGF0Y2hlcy4yKSwgdmFyX3JvdXRlLmMKOgoKICAgcGF0Y2ggZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgdG8gZml4IEhQVVggMTEKICAgCjIwMDMtMTAtMDggMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhZGQgZGV0YWlsIG9uIGltcHJvcGVyeWx5IHJlZ2lzdGVyZWQgdGFibGUgbWVzc2FnZSwgYW5kIGNoZyB0byBFUlIgKGZyb20gSU5GTyk7CiAgIGZpeCB2YWxpZCBjb2x1bW4gc2VhcmNoIGZvciByYW5nZXM7IGdvIHN0cmFpZ2h0IHRvIGZpcnN0IHJvdyBpZiBubyBpbmRleGVzCiAgIAoyMDAzLTEwLTA3IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIG1vcmUgdXNlZnVsIGhlbHAgdGV4dCBmb3IgYWdlbnR4cGVybXMKICAgCjIwMDMtMTAtMDcgMTQ6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGxvZ2ljIGNoZWNrIG9mIERTX0FHRU5UX1FVSVRfSU1NRURJQVRFTFkgc28gdGhhdCBwYXJlbnQgYW5kIGNoaWxkIGRvbid0CiAgIGJvdGggdHJ5IHRvIGJlY29tZSB0aGUgbWFzdGVyIGFnZW50LiBMb2dpYyBzZWVtcyBiYWNrd2FyZHMgdG8gbWUgLSBkbyB3ZSBoYXZlCiAgIGFsbCB0aGVzZSBEUyB2YXJzIGRvY3VtZW50IHNvbWV3aGVyZT8KICAgCjIwMDMtMTAtMDcgMTQ6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbmV0c25tcF9kYWVtb25pemU6IGluaXQgbG9jYWwgdmFyOyBjaGcgcmV0dXJuIGNvZGUgdG8gYmUgZm9yayByZXN1bHQ7IGFkZCBkb2NzCiAgIAoyMDAzLTEwLTA3IDA3OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjIChWNS0wLXBhdGNoZXMuMyksIG1pYjJjOgoKICAgQ2hlY2sgZm9yIF4tUyBpbnN0ZWFkIG9mIC1TLCBhcyByZXBvcnRlZCBieSBKZWFuLU1hcmMgUmFuZ2VyIG9uIC11c2VycwogICAKMjAwMy0xMC0wNyAwMzoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBUaGVyZSBhcmUgbm8gc3RhdGlzdGljcyBwcmludGVkLCBzbyB0aGVyZSdzIG5vIHBvaW50IGluIGhhdmluZwogICBhIGZsYWcgdG8gdHVybiB0aGVtIG9mZi4KICAgCjIwMDMtMTAtMDQgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBjaGFuZ2VzIGZyb20gNS4wIHBhdGNoZXMgYnJhbmNoOyBmaXggdG8gYnVpbGQgd2l0aG91dCByZXF1aXJpbmcgYXJndW1lbnRzOwogICBzZXBhcmF0ZSBlbWJlZGRlZCBwZXJsIGFuZCBwZXJsIG1vZHVsZXMgb3B0aW9uczsgZml4IGZpeCBmb3IgaW5pdC5kIHNjcmlwdAogICBmb3Igbm9uLS91c3IvbG9jYWwgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTEwLTAzIDA3OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlIHYxIGRlbW8gY29tbXVuaXR5IHRvIG1hdGNoIHdoYXQgaXMgYWN0dWFsdCBjb25maWd1cmVkIG9uIHRoZQogICBzb29uLXRvLWJlLXJlb3BlbmVkIHRlc3QubmV0LXNubXAub3JnCiAgIAoyMDAzLTEwLTAyIDE5OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgYWRkIGV4cGxhbmF0b3J5IHRleHQgYW5kIGxpbmVzL2Fycm93cyBzaG93aW5nIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGVudHJpZXM7CiAgIGFkZCBjcmVhdGVVc2VyIGxpbmVzLCB3L25vdGUgZXhwbGFpbmluZyB0aGV5IG1pZ2h0IGJlIGJldHRlciBzdWl0ZWQgZm9yCiAgIHRoZSBwZXJzaXN0ZW50ZGlyIHNubXBkLmNvbmYgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLgogICAKMjAwMy0xMC0wMiAxMTowNCAgaGFyZGFrZXIKCiAgICogbWFuL21pYjJjLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIC1JIHN3aXRjaAogICAKMjAwMy0xMC0wMiAxMDo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgTkVXUywgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIG1pYnMvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBSb2JlcnQgdG9sZCBtZSB0byBrZWVwIGdvaW5nLCBzbyBJIGFkZGVkIHN1cHBvcnQgZm9yIGEgLS13aXRoLWluc3RhbGwtcHJlZml4CiAgIGZsYWcgdG8gY29uZmlndXJlIChhbmQgdGh1cyBhIElOU1RBTExfUFJFRklYIG1ha2UgdmFyaWFibGUgYXMgd2VsbCkuCiAgIAoyMDAzLTEwLTAxIDE2OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwKICAgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgosIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIFN1cHBvcnQgZm9yICJtYWtlIHVuaW5zdGFsbCIKICAgCjIwMDMtMTAtMDEgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgQWRkZWQgLUwgc3VwcG9ydCBmb3Igb3V0cHV0IGxvZ2dpbmcuCiAgIAoyMDAzLTEwLTAxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oOgoKICAgdXBkYXRlZCBwcm90b3R5cGVzIHRvIG1hdGNoIGVhcmxpZXIgdHJhcCAtPiBub3RpZmljYXRpb24gc3RyaW5nIHJlcGxhY2VtZW50cy4KICAgCjIwMDMtMDktMzAgMTc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIHN5bnRheCBzcGVjaWZpYyB2YXJiaW5kIHZhbGlkYXRpb24KICAgCjIwMDMtMDktMzAgMTc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmksCiAgIHN5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpOgoKICAgc3ludGF4IHNwZWNpZmljIGRlcGVuZGVuY3kgY2hlY2tzCiAgIAoyMDAzLTA5LTMwIDE3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGZpeCB0eXBvcwogICAKMjAwMy0wOS0zMCAxNzoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IHVwZGF0ZSB2YXJpYWJsZSBuYW1lCiAgIAoyMDAzLTA5LTMwIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzOyBuZXcgdmFsaWRhdGVfaW5kZXgsCiAgIHVuZG9fc2V0dXAsIHJldmVyc2libGVfY29tbWl0LCBmaW5hbF9jb21taXQKICAgCjIwMDMtMDktMzAgMTc6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyBpbiBjaGVja19kZXBlbmRlbmNpZXMsIHJlbW92ZSBub24tZXhpc3RhbnQgcGFyYW0gYW5kCiAgIGluY2x1ZGUgYW55IG5vZGUgc3BlY2lmaWMgc3ludGF4IGRlcGVuZGVuY2llcwogICAKMjAwMy0wOS0zMCAxNzoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgbmV3IGluY2x1ZGUgdG8gZG8gYmFzaWN5IHN5bnRheCB2YWxpZGF0aW9uIGFnYWluc3QgYW4gaW5jb21pbmcgdmFyYmluZAogICAKMjAwMy0wOS0zMCAxNzoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyBjaGFuZ2UgZXhhbXBsZSBmcm9tIGxpbmtlZCBsaXN0CiAgIHRvIGZsYXQgZmlsZTsgdXNlIHZhciBmb3IgZnVuYyBwYXJhbXMgc28gaXQncyBlYXN5IHRvIGNoYW5nZTsgY2hlY2sgbmV3CiAgIG0yY19pbmNsdWRlX2V4YW1wbGVzIGJlZm9yZSBpbmNsdWRpbmcgZXhhbXBsZSBjb2RlOwogICAKMjAwMy0wOS0zMCAxNzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IGNoYW5nZSBleGFtcGxlIGZyb20gbGlua2VkIGxpc3QKICAgdG8gZmxhdCBmaWxlOyB1c2UgdmFyIGZvciBmdW5jIHBhcmFtcyBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlCiAgIAoyMDAzLTA5LTMwIDE3OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICBzZXQgZW1hY3MgdGFnIHRvIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgdXNlIGxvY2FsCiAgIHN0YXRpYyB2YXJpYWJsZV9saXN0IGZvciBpbmRleCB0byBvaWQgY29udmVyc2lvbjsgZnJlZSBtZW1vcnkgdXNlZCBpbiB0aGF0CiAgIGNvbnZlcnNpb24sIGV2ZW50dWFsbHk7IGRvbid0IGlnbm9yZSByYyBmcm9tIGJ1aWxkX29pZF9ub2FsbG9jIGhlcmUgKHJldHVybgogICBpdCBhbmQgbGV0IHNvbWVvbmUgZWxzZSBpZ25vcmUgaXQpOyBwcmVmaXggc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgbmFtZXMgdy8nXyc7CiAgIHdyYXBwZXIgYXJvdW5kIGdldF9kYXRhIHRvIGFsbG9jYXRlIG5ldyBjb250ZXh0CiAgIAoyMDAzLTA5LTMwIDE3OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbm9kZS1nZXQubTJpLCBub2RlLXNldC5tMmk6CgogICBzZXQgZW1hY3MgdGFnIHRvIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50cwogICAKMjAwMy0wOS0zMCAxNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIG5ldyBtZmRfYmFzZV9wYXJhbXMgdmFyIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2UgcGFyYW1zOyBjaGcgY29tbWVudHMgc28gdGhhdAogICBpbmRlbnQgd29uJ3Qgbm90IGluZGVudDsgZG9uJ3QgaW5jbHVkZSBzb21lIHByb3RvdHlwZXMgaGVyZSBpZiB0aGUgZnVuY3Rpb24KICAgaXMgaW4gKl9pbnRlcmZhY2VzOyBuZXcgcHJlL3Bvc3QgcmVxdWVzdCBmdW5jdGlvbnM7IG1vdmVkIGJ1bGsgb2YgdGFibGUKICAgaW5pdCBpbnRvIGludGVyZmFjZXMsIGp1c3QgYSBsaXR0bGUgZnVuY3Rpb24gc2V0dXAgaGVyZQogICAKMjAwMy0wOS0zMCAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gTWFrZWZpbGU7IHR1cm4gb2ZmIHN0cmljdCB0b2tlbiBjaGVja3MgdGlsIHdlcyBnZXRzIEAgZXNjYXBlOwogICBleHBhbmQgZGVwcyBpbmNsdWRlcyBzaW5jZSAkKHg6LmM9LmRlcHMpIGlzbid0IHBvcnRhYmxlCiAgIAoyMDAzLTA5LTMwIDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBvbmx5IHB1dCBNSUIyQ19ESVIgZW52IHZhciBpbiBzZWFyY2ggcGF0aCBpZiBpdCBpc24ndCBlbXB0eQogICAKMjAwMy0wOS0zMCAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGNyZWF0ZSBuZXcgJG5hbWVfaW50ZXJmYWNlLmggaGVhZGVyOyBtb3ZlIHRhYmxlIGluaXRpYWxpemF0aW9uIGhlcmU7IHByZWZpeCBhCiAgIGJ1bmNoIG9mIGludGVyZmFjZSBmdW5jdGlvbnMgdy8nXyc7IHVzZSBuZXcgbTJjX25vZGVfc3VtbWFyeTsgdXNlIG5ldwogICBtMmNfbm9kZV92YXJfKiB2YXJpYWJsZXM7IGNoYW5nZSBzb21lIGFjY2Vzc2libGUgdGVzdHMgdG8gc2V0dGFibGUgdGVzdHM7IHVzZQogICBuZXcgbm9kZS12YXJiaW5kLXZhbGlkYXRlIGluY2x1ZGU7IGFsd2F5cyBjYWxsIHVzZXIgJG5vZGVfY2hlY2tfdmFsdWU7IG5ldwogICBmdW5jdGlvbnMgdG8gY2hlY2sgbmV3IGluZGV4IHN5bnRheDsgbmV3IF9zZXRfdmFsdWVzLCBfdW5kb19zZXR1cCBhbmQKICAgX3VuZG9fdmFsdWVzIHRvIGNhbGwgdXNlciBmdW5jdGlvbnMKICAgCjIwMDMtMDktMzAgMTY6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHR3ZWFrIHByb2Nlc3NpbmcgbXNnczsgYWx3YXlzIGluY2x1ZGUgcGFyZW50LXNldDsgbW92ZQogICBwYXJlbnQgZGVwZW5kZW5jaWVzIHRvIGJvdHRvbSBvZiBmaWxlOyBhZGQgJG5vZGVfY2hlY2tfaW5kZXgKICAgCjIwMDMtMDktMzAgMTY6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHR3ZWFrIHByb2Nlc3NpbmcgbXNncwogICAKMjAwMy0wOS0zMCAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBhZGQgc29tZSBzYW5pdHkgY2hlY2tzOyBzZXQgdXAgbmV3ICRtMmNfZW51bV9tYXNrLAogICAkbTJjX25vZGVfdmFyX3ZhbCwgJG0yY19ub2RlX3Zhcl9yZWYsICRtMmNfbm9kZV92YXJfdmFsX3B0ciwgJG0yY19ub2RlX3N1bW1hcnkKICAgCjIwMDMtMDktMzAgMTY6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHJlbW92ZSB1bnVzZWQgY3JlYXRlX3VuZG9fY29udGV4dAogICAKMjAwMy0wOS0zMCAxNjoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgc3VjayAnY3R4LT4nIG9yICdjdHguJyBpbnRvICRtMmNfZGF0YV9pdGVtCiAgIAoyMDAzLTA5LTMwIDE2OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYwogICAKMjAwMy0wOS0zMCAxNjoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGdlbmVyYXRlIGRlZmluZSBmb3IgbWFzayBvZiBhbGwgYml0cwogICAKMjAwMy0wOS0zMCAxNDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgeHh4IHRhZ2dpbmcuCiAgIAoyMDAzLTA5LTMwIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGNyZWF0ZSB0aGUgTWFrZWZpbGUgdG8gZWl0aGVyIHJlZmVyZW5jZSBhIE5ldC1TTk1QIHNvdXJjZSBkaXIgb3Igbm90CiAgICAgKGFuZCByZXF1aXJlIGdudS1tYWtlIG9yIG5vdCkuCiAgIAoyMDAzLTA5LTMwIDA2OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBuZXcgZmxhZy90b2tlbiBzdHJpY3RfdW5rX3Rva2VuIHdpbGwgYWJvcnQgb24gdW5rbm93IEB0b2tlbgogICAKMjAwMy0wOS0zMCAwNjozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmg6CgogICBhZGQgbmV0c25tcF9jaGVja192Yl9zaXplLCBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UKICAgYW5kIG5ldHNubXBfY2hlY2tfdmJfcm93c3RhdHVzX3ZhbHVlCiAgIAoyMDAzLTA5LTMwIDA2OjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBtb3JlIG51bGwgcHRyIGNoZWNrczsgYWRkIG5ldHNubXBfY2hlY2tfdmJfc2l6ZSwgbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlCiAgIGFuZCBuZXRzbm1wX2NoZWNrX3ZiX3Jvd3N0YXR1c192YWx1ZQogICAKMjAwMy0wOS0zMCAwNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy1nZXQtY2hhci5tMmksIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwKICAgZ2VuZXJpYy1nZXQtZGVjbC5tMmksIGdlbmVyaWMtZ2V0LWxvbmcubTJpLAogICBnZW5lcmljLWdldC1vaWQubTJpLCBnZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLAogICBnZW5lcmljLWhlYWRlci10b3AubTJpLCBnZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpCiwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCBtMmNfc2V0dXBfZW51bS5tMmksCiAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG5vZGUtc3RvcmFnZS5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQosIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYwogICAKMjAwMy0wOS0zMCAwNjoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgZml4IGdlbmVyYXRlZCBjb21tZW50CiAgIAoyMDAzLTA5LTMwIDA2OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBuZXcgZmxhZyBmb3IgaW5jbHVkaW5nIGV4YW1wbGUgY29kZQogICAKMjAwMy0wOS0yOSAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpCiwgbWZkLXJlYWRtZS5tMmM6CgogICBNaXNjIHVwZGF0ZXMgZm9yIHJlYWRhYmlsaXR5LCBldGMuCiAgIAoyMDAzLTA5LTI5IDE2OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBJbml0aWFsIHdvcmQgc21pdGhpbmcgb2YgdGhlIGdsb2JhbCBSRUFETUUuCiAgIAoyMDAzLTA5LTI5IDE1OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFN1cHBvcnQgYSAtSSBzd2l0Y2ggdG8gc3BlY2lmeSBjb25maWcgZmlsZSBzZWFyY2ggcGF0aHMuCiAgIAoyMDAzLTA5LTI5IDE1OjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgbWlzc2luZyBzb21lIGVuZCBzdGF0ZW1lbnRzCiAgIAoyMDAzLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVmZXJlbmNlIG5ldyBkaXNtYW4gZmVhdHVyZXMKICAgCjIwMDMtMDktMjkgMTQ6MjUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgKHBvb3JseSBvZiBjb3Vyc2UpIG5ldyBtb25pdG9yaW5nIGZlYXR1cmVzLgogICAKMjAwMy0wOS0yOSAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIC0gdHJhcEV2ZW50IC0+IG5vdGlmaWNhdGlvbkV2ZW50CiAgIAoyMDAzLTA5LTI5IDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgLSBsaW5rVXBEb3duVHJhcHMgLT4gbGlua1VwRG93bk5vdGlmaWNhdGlvbnMKICAgCjIwMDMtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oCiwgbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEEgbmV3IHNubXBkLmNvbmYgdG9rZW4gKHRyYXBFdmVudCkgZm9yIGdlbmVyYXRpbmcgdHJhcHMgb2YgYW55IGtpbmQKICAgICBvbiBhIG1vbml0b3JpbmcgZXZlbnQgYW5kIGEgLWUgc3dpdGNoIHRvIG1vbml0b3IgdG9rZW4gdG8gcmVmZXJlbmNlIGl0LgogICAtIEEgbmV3IHNubXBkLmNvbmYgdG9rZW4gbGlua1VwRG93blRyYXBzIHRvIGVuYWJsZSBsaW5rVXAvbGlua0Rvd24KICAgICB0cmFwcyB1c2luZyB0aGUgYWJvdmUgcGllY2UuCiAgIAoyMDAzLTA5LTI5IDA3OjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIC9ldGMvaW5pdC5kIC0+IC9ldGMvcmMuZC9pbml0LmQKICAgCjIwMDMtMDktMjggMjE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIGNvbW1lbnQgaW4gY29tbWVudCBwcm9ibGVtLgogICAKMjAwMy0wOS0yOCAxOTo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBBZGRlZCBEYXZlJ3MgcmVhbGx5IGNvbGwgYXNjaWkgZGlhZ3JhbSBmcm9tIC11c2VycyBleHBsYWluaW5nIGhvdwogICB0cmFwcyBhcmUgc2VudCB0byB0aGVpciBkZXN0aW5hdGlvbnMgb3ZlciBhbnkgU05NUCB2ZXJzaW9uLgogICAKMjAwMy0wOS0yOCAxOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBBZGRlZCBEYXZlJ3MgcmVhbGx5IGNvbGwgYXNjaWkgZGlhZ3JhbSBmcm9tIC11c2VycyBleHBsYWluaW5nIGhvdwogICB0cmFwcyBhcmUgc2VudCB0byB0aGVpciBkZXN0aW5hdGlvbnMgb3ZlciBhbnkgU05NUCB2ZXJzaW9uLgogICAKMjAwMy0wOS0yNiAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgcHJvcGVybHkgbWFsbG9jIHRoZSBlbnRlcnByaXNlIHBvaW50ZXIgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMy0wOS0yNiAyMToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjUtMC1wYXRjaGVzLjQpLCBTTk1QLnhzOgoKICAgY29ycmVjdCBsZW5ndGggaW4gc3RyaW5nIGZpeGVkIHN0cmluZyBjb21wYXJpc29uCiAgIAoyMDAzLTA5LTI2IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtaXNjIGluc3RhbGwgZml4ZXMgKG1vc3RseSBwZXJsKSBhbmQgb25lIHBlcmwgcGF0Y2guCiAgIAoyMDAzLTA5LTI2IDEwOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNS0wLXBhdGNoZXMuMyksIFNOTVAueHM6CgogICBmaXggdXNlTnVtZXJpYyBvbmNlIGFuZCBmb3IgYWxsIChtYXliZSkKICAgCjIwMDMtMDktMjAgMjI6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNS0wLXBhdGNoZXMuMSksIGhyX3N3cnVuLmMKOgoKICAgUGF0Y2ggIzgwOTI0MyBmb3IgYnVnICM4MDg5MjAgZnJvbSBCb2IgUi4gZm9yIGZpeGluZyBwcm9jZXNzIG5hbWUgZGlzY3JlcGVuY3kgKHBzIHZzIFNOTVApCiAgIAoyMDAzLTA5LTIwIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogaW5zdGFuY2UuYyAoVjUtMC1wYXRjaGVzLjEpLCBpbnN0YW5jZS5jOgoKICAgcGF0Y2ggIzgwNzQxNCBmb3IgYnVnICM3NTc5MjMgYnkgQm9iIFJvd2xhbmRzIHRvIGZpeCBpbnQgd2F0Y2hpbmcgb24gNjQgYml0IHN5c3RlbXMKICAgCjIwMDMtMDktMTcgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgdXNlIG5ldCBkYXRhX2xpc3RfYWRkX2RhdGEKICAgCjIwMDMtMDktMTcgMTc6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgY2hhbmdlIG1mZCBhcGkgcGFyYW1ldGVycwogICAKMjAwMy0wOS0xNyAxNzo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWx3YXlzIGNyZWF0ZSBhZ2VudF9yZXFfaW5mbyB3aGVuIGNyZWF0aW5nIGFzcDsgbW92ZQogICBnZXRidWxrIHJlb3JkZXIgY29kZSBpbnRvIGFuIGlubGluZSBmdW5jdGlvbiBmb3IgY29kZSByZWFkYWJpbGl0eTsgZGVwcmVjYXRlCiAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgYW5kIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdF9lcnJvciBpbiBmYXZvcgogICBvZiBuZXcgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcjsgZGVwcmVjYXRlIG5ldHNubXBfc2V0X2FsbF9yZXF1ZXN0c19lcnJvciBpbgogICBmYXZvciBvZiBuZXcgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcl9hbGw7IHRyeSBhbmQgcmV0dXJuIHVzZWZ1bCBlcnJvciBjb2RlcwogICAKMjAwMy0wOS0xNyAxNzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBtYWtlIHN1cmUgcGFyYW1zIGFyZSB1bmlxdWUKICAgCjIwMDMtMDktMTcgMTc6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlciB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCiAgIAoyMDAzLTA5LTE3IDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaToKCiAgIHNldHVwIGZvciBlbnVtIHZhcnMKICAgCjIwMDMtMDktMTcgMTc6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgY3JlYXRlX3VuZG9fY29udGV4dCAoYXNzdW1pbmcgdW5kb19jb250ZXh0ID09IGRhdGFfY29udGV4dCBmb3Igbm93KTsKICAgZml4IGxvZyBsZXZlbCBtYWNybzsgYWxsb2NhdGVfZGF0YV9jb250ZXh0IG1vdmVkIGVsc2V3aGVyZQogICAKMjAwMy0wOS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGZpeCBwYXJhbWF0ZXIgdHlwZTsKICAgCjIwMDMtMDktMTcgMTY6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGRvbid0IG5lZWQgc291cmNlIGRpciBpZiB3ZSB1c2UgbmV3IG5ldC1zbm1wLWNvbmZpZyAtLWJ1aWxkLWluY2x1ZGVzOyBhZGQKICAgYnVpbGQvc3JjIGRpciAtSSBwYXRocyBiZWZvcmUgYmFzZSBjZmxhZ3MKICAgCjIwMDMtMDktMTcgMTY6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFkZCBvYmplY3Rfc3ludGF4X2NoZWNrIHByb2Nlc3Npbmc7CiAgIAoyMDAzLTA5LTE3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBvbmx5IGluY2x1ZGUgcGFyZW50LXNldCBpZiBkYXRhIGNvbnRleHQgaXMgZ2VuZXJhdGVkICYgYWxsb2NhdGVkCiAgIAoyMDAzLTA5LTE3IDE2OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHBlciBub2RlIHNldHVwIGZvciBlbnVtcwogICAKMjAwMy0wOS0xNyAxNjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICBuZXcgZmlsZSB0byBzZXR1cCBlbnVtcyB2YXJzCiAgIAoyMDAzLTA5LTE3IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtZW51bXMubTJjOgoKICAgbmV3IGZpbGUgdG8gZ2VuZXJhdGUgZW51bXMgaGVhZGVyIGZpbGUKICAgCjIwMDMtMDktMTcgMTY6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICBnZW5lcmljLWN0eC1zZXQubTJpLCBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIG0yY19zZXR1cF90YWJsZS5tMmksIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmkKOgoKICAgbmV3IG0yY19kYXRhX2l0ZW0gZm9yIGdldHRpbmcgdG8gZGF0YSBpdGVtcywgc28gaW5jbHVkZXMgZG9uJ3QgbmVlZCB0byBrbm93CiAgIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBkYXRhLT5pdGVtIG9yIGRhdGEuaXRlbS4KICAgCjIwMDMtMDktMTcgMTY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBtb3ZlIHNvbWUgc2V0dXAgZm9yIGVudW1zIHRvIG0yY19zZXR1cF9ub2RlIGFuZCBuZXcgbTJjX3NldHVwX2VudW07IGFkZCBzb21lCiAgIGNvbW1lbnRzIGFuZCBleGFtcGxlcyB0byBkb2N1bWVudCBwcm9jZXNzIGZsb3c7IG1vdmUgc29tZSBjb21tZW50cyB0byB0aGUKICAgdG9wIG9mIHRoZSBoZWFkZXIgaW5zdGVhZCBmb3IgZWFjaCBub2RlOyBtYWtlIHN1cmUgaW50ZXJuYWwgbWFwcGluZwogICBkZWZpbmVzIGFyZSB1bmlxdWUgcGVyIG5vZGUKICAgCjIwMDMtMDktMTcgMTY6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgdXNlIGRveHlnZW4gZGVwcmVjYXRlZCB0YWcgaW5zdGVhZCBvZiBzaW1wbGUgY29tbWVudHMKICAgCjIwMDMtMDktMTcgMTY6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgY2hhbmdlIEZJUlNUIHRvIHVzZSBmaW5kX25leHQgaW5zdGVhZCBvZiBmaW5kOyBhZGQKICAgZnVuYyBwb2ludGVyIGZvciBpdGVtIG1lbW9yeSBmcmVlCiAgIAoyMDAzLTA5LTE3IDE2OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaDoKCiAgIHByb3RvdHlwZSBmb3IgbmV3IGNoZWNrX3ZiX3R5cGUKICAgCjIwMDMtMDktMTcgMTM6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50czsgYWRkIGFnZW50X3JlcXVlc3RfaW5mbyBwdHIgdG8gcmVxdWVzdF9pbmZvOyBhZGQKICAgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcjsgZGVwcmVjYXRlIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgYW5kCiAgIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyByZW1vdmUgdW51c2VkIHBkdQogICBwb2ludGVyIGZyb20gYWdlbnRfcmVxdWVzdF9pbmZvCiAgIAoyMDAzLTA5LTE3IDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIGZvciBzZXQsIHNhdmUgcm93IGluIGZpcnN0IHJlcXVlc3Q7IGNoZyBtZmQgcGFyYW0gbGlzdDsgZG9uJ3QgY2FsbCBsYXRlcgogICBtb2RlcyB1bmxlc3Mgcm93IGV4aXN0czsgY2FsbCBsb3dlciBoYW5kbGVyczsKICAgCjIwMDMtMDktMTcgMTI6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIHNubXBsaWIvZGF0YV9saXN0LmMKOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhZGQgZGF0YV9saXN0X2FkZF9ub2RlLCBkYXRhX2xpc3RfYWRkX2RhdGEKICAgCjIwMDMtMDktMTcgMTI6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zCiAgIAoyMDAzLTA5LTE3IDEyOjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIG5ldyBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldF9idWZfZnJvbV92YXJzCiAgIAoyMDAzLTA5LTE3IDExOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBuZXcgbmV0c25tcF9kYXRlYW5kdGltZV9zZXRfYnVmX2Zyb21fdmFycwogICAKMjAwMy0wOS0xNyAwOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNybwogICAKMjAwMy0wOS0xNyAwOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBuZXcgY2hlY2tfdmJfdHlwZQogICAKMjAwMy0wOS0xNyAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBiaW5hcnkgYXJyYXkgdGVzdCBiaW5hcnkKICAgCjIwMDMtMDktMTcgMDk6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IGlubGluZSBtYWNyb3MgKEkgdGhpbmsgbWljcm9zbG90aCBzdXBwb3J0cyBpbmxpbmUpCiAgIAoyMDAzLTA5LTE3IDA5OjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgaHB1eC5oLCBpcml4LmgKLCBvc2Y1Lmg6CgogICB0dXJuIG9mZiBuZXQtc25tcCB1c2Ugb2YgaW5saW5lIGZvciBub24tZ2NjIGNvbXBpbGVycyAoZG9uJ3QgdW5kZWYgaW5saW5lKQogICAKMjAwMy0wOS0xNyAwOTozOCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgKGFuZCBjb21tZW50KSBtYWNyb3MgZm9yIGhhbmRsaW5nIGlubGluZSB1c2UgaW4gbmV0LXNubXAKICAgCjIwMDMtMDktMTcgMDk6MzcgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBtdiBidWlsZCBkaXIgY2hlY2sgdG8gc3Vicm91dGluZTsgYWRkIG1pc3NpbmcgTlNDX1NSQ19MSUJESVJTOyBhZGQgbmV3CiAgIC0tYnVpbGQtaW5jbHVkZXMKICAgCjIwMDMtMDktMTcgMDk6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgLVdpbmxpbmUgdG8gZGV2IGZsYWdzCiAgIAoyMDAzLTA5LTE3IDA5OjMzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBnaXZlIHJlYXNvbiB3aGVuIHJlLXJ1bm5pbmcgY29uZmlnLnN0YXR1cwogICAKMjAwMy0wOS0xNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgcGV0ZXIgaGlja3MKICAgCjIwMDMtMDktMTYgMTc6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUGF0Y2ggZnJvbSBQZXRlciBIaWNrcyBmb3IgYSBuZXcgZ2V0X3RhYmxlIGZ1bmN0aW9uCiAgIAoyMDAzLTA5LTE2IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAoVjUtMC1wYXRjaGVzLjEpLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggZnJvbSBLYXRzdWhpc2EgQUJFIGZyb20gLXVzZXJzIHRvIGZpeCBhIG1hc2tpbmcgcHJvYmxlbQogICAKMjAwMy0wOS0xMiAxMjo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC86IFJFTEVBU0UtSU5TVFJVQ1RJT05TLCBuZXQtc25tcC5zcGVjOgoKICAgLSBtaW5vciBjaGFuZ2VzIGZvciBpbXByb3ZlZCBwZXJsIE1ha2VmaWxlLlBMIGFyZ3VtZW50IHN1cHBvcnQgKD49IDUuMC45KQogICAKMjAwMy0wOS0xMiAxMTowMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gKFY1LTAtcGF0Y2hlcy4yKSwgTWFrZWZpbGUuaW46CgogICBQYXRjaCBmb3IgLS13aXRoLXBlcmwtbW9kdWxlcyBleHRyYSBhcmd1bWVudCBzdXBwb3J0CiAgIAoyMDAzLTA5LTEyIDA2OjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wOS0xMiAwNjoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtaXMtbWF0Y2hlZCBwYXJlbnMKICAgCjIwMDMtMDktMTEgMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2RhZW1vbml6ZSBsaWJyYXJ5IGNhbGwKICAgCjIwMDMtMDktMTEgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBtb3ZlIGNvbW1lbnRzIGFib3V0IHJvdXRpbmVzIGNsb3NlciB0byByb3V0aW5lcyB0byByZWR1Y2UgY29uZnVzaW9uCiAgIAoyMDAzLTA5LTExIDE1OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgQGRlYnVnQCB0b2tlbiB0byB0dXJuIGRlYnVnIG9uL29mZjsgcHJpbnQgbG9jYXRpb25zIGZvciBtb3JlIHdhcm5pbmdzL2Vycm9ycwogICAKMjAwMy0wOS0xMSAxNTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgZGVmYXVsdHMgZm9yIHR3byBuZXcgZmxhZ3M6IHJlYWRtZV92ZXJib3NlIGFuZCBkYXRhX3RyYW5zaWVudAogICAKMjAwMy0wOS0xMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIHJlYWRtZSBmb3IgRGF0ZUFuZFRpbWUKICAgCjIwMDMtMDktMTEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmk6CgogICBhZGQgYnVmIGxlbiBwYXJhbSB0byBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldAogICAKMjAwMy0wOS0xMSAxNTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHVuLWNvbW1lbnQgaW5jbHVkZSBvZiBlbnVtcyBoZWFkZXI7IG1vdmUgYWxsIGRhdGEgY29udGV4dCBwcm9jZXNzaW5nIGludG8KICAgaW5jbHVkZTsgZG9uJ3QgYXNzdW1lIHBvaW50ZXJzIHRvIGRhdGEvdW5kbyBjb250ZXh0czsgb25seSBkZWZpbmUgcHJvdG90eXBlCiAgIGZvciBhbGxvY2F0ZV9kYXRhIGlmIG5lZWRlZDsgcnVuIGVudW0gaGVhZGVyIGNvbmYgZmlsZTsgcnVuIG5ldyByZWFkbWUgY29uZiBmaWxlCiAgIAoyMDAzLTA5LTExIDE0OjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGJ1aWxkLWxpYi1kZXBzCiAgIAoyMDAzLTA5LTExIDE0OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBvcGVuIGZpbGUgZWFybGllcjsgdXNlIG5ldyB2YXIgZm9yIGRlZmF1bHQgTkVUU05NUERJUjsgZG9uJ3QgYXNzdW1lIE5FVFNOTVBESVIKICAgaXMgc291cmNlZGlyOyB1c2UgbmV3IG5ldC1zbm1wLWNvbmZpZyBvcHRpb25zIGZvciBnZXQgbGliIGRpcnMvZGVwcwogICAKMjAwMy0wOS0xMSAxMzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluY2x1ZGUgbmV3IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZSBpZiBkYXRhX2FsbG9jYXRlIHNldCBhbmQgZGF0YV9jb250ZXh0IGlzCiAgIGdlbmVyYXRlZDsgbW92ZSB0YWJsZV8oYWxsb2NhdGV8cmVsZWFzZSlfY3R4IGhlcmUKICAgCjIwMDMtMDktMTEgMTM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIG5ldyBmaWxlIGZvciBhbGxvY2F0ZS9yZWxlYXNlIG9mIGRhdGEgY29udGV4dAogICAKMjAwMy0wOS0xMSAxMzo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgbW92ZSBkYXRhIGFsbG9jYXRlL3JlbGVhc2UgdG8gaXQncyBvd24gaW5jbHVkZTsgb25seSBpbmNsdWRlIGl0IGlmIGRhdGFfYWxsb2NhdGUKICAgc2V0IGFuZCBkYXRhX2NvbnRleHQgaXNuJ3QgZ2VuZXJhdGVkCiAgIAoyMDAzLTA5LTExIDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpCiwgbWZkLXJlYWRtZS5tMmM6CgogICBuZXcgcmVhZG1lIGdlbmVyYXRpb24KICAgCjIwMDMtMDktMTEgMTM6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHdyYXAgZ2V0X2ZpcnN0L2dldF9uZXh0IHNvIHdlIGNhbiBtb3ZlIGluZGV4Mm9pZCBoZXJlIGFuZCBtYWtlIGl0IHN0YXRpYwogICAKMjAwMy0wOS0xMSAxMzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgb25seSBnZW5lcmF0ZSB0YWJlX2dldF9kYXRhIGZvciB0cmFuc2llbnQgZGF0YTsgbW92ZSBpbmRleDJvaWQgaW50byBpbnRlcmZhY2UKICAgY29kZTsgZ2VuIGRpZmZlcmVudCBjb2RlIGJhc2VkIG9uIGRhdGEgdHJhbnNpZW50IHNldHRpbmcKICAgCjIwMDMtMDktMTEgMTM6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGRlZmF1bHQgdG8gZ2VuZXJhdGVkLCBub24tYWxsb2NhdGVkIGRhdGFfY29udGV4dAogICAKMjAwMy0wOS0xMSAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIGZpeCByZW5hbWVkIHZhcgogICAKMjAwMy0wOS0xMSAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgZG9uJ3QgaW5jbHVkZSBlbnVtIHN0dWZmIGluIG9pZCBoZWFkZXIKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHJlbW92ZSB1bnVzZWQgb3duZXIgcHRyCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaToKCiAgIGZpeCBsZW5fcHRyIHZhcmlhYmxlIG5hbWUKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmk6CgogICBkZWZpbmUgSVNfU0VUXyogbWFjcm9zIGhlcmUgaW5zdGVhZCBvZiBpbiBoZWFkZXIKICAgCjIwMDMtMDktMTEgMTM6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpOgoKICAgbWVyZ2UgZGF0YSBzdHJ1Y3QgYmFjayBpbnRvIHNpbmdsZSB0eXBlZGVmOyBkb24ndCBnZW5lcmF0ZSBzdHJ1Y3QgaWYgdXNlcgogICBzcGVjaWZpZWQgZXhpc3Rpbmcgc3RydWN0OyBhZGQgKiBpbiB0eXBlZGVmIGlmIGRhdGFfYWxsb2NhdGUgc2V0CiAgIAoyMDAzLTA5LTExIDEzOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWNvcHkubTJpOgoKICAgcmVtb3ZlIGV4YW1wbGUgc3RhcnQvZW5kIChwYXJlbnQgZGVjaWRlcyB0aGF0KQogICAKMjAwMy0wOS0xMSAxMzozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1vcmUgZGlzdGluY3RpdmUgc2VwYXJhdG9yIGJlZm9yZSB0YWJsZXMKICAgCjIwMDMtMDktMTEgMTM6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICByZW1vdmUgSVNfU0VUXyogbWFjcm9zOyB0d2VhayBjb25kaXRpb25zIGZvciBnZW5lcmF0aW5nIGVudW1zIGFuZCBtYXBwaW5nCiAgIG1hY3JvcwogICAKMjAwMy0wOS0xMSAxMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBuZXcgbmV0c25tcF9kYWVtb25pemUKICAgCjIwMDMtMDktMTEgMTM6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICByZWR1Y2Ugc2NvcGUgb2Ygc3VuJ3MgY29weXJpZ2h0IGNsYWltOyBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBub3QgaW5jbHVkZWQ7CiAgIHByb3RvdHlwZSBmb3IgbmV3IG5ldHNubXBfZGFlbW9uaXplCiAgIAoyMDAzLTA5LTExIDEyOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmM6CgogICBmaXggY29tbWVudCB0eXBvOyBkb2N1bWVudCBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiBhbmQgbW92ZSBvbmUgbGluZSB0bwogICBtYWtlIHdpbmRvdyBzbWFsbGVyCiAgIAoyMDAzLTA5LTExIDEyOjU1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIHZhcnMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB3aGF0IGZsYWdzIGFyZSB3aGF0IGluIGdlbmVyYXRlZAogICB2ZXJzaW9uOyBncm91cCBzaW1pbGFyIG9wdGlvbnMgdG9nZXRoZXI7IGFkZCBvcHRpb25zIHRvIHRvIGdldCBzb3VyY2UKICAgZGlyZWN0b3J5IGFuZCBsaWIgcGF0aCBpbiBidWlsZCBkaXI7IGFkZCAtLWJhc2Utc3ViYWdlbnQtbGlicyAobm8gbGliIHBhdGgpLAogICAtLWxpYmRpcgogICAKMjAwMy0wOS0xMSAwODozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWcuaW4KICAgCjIwMDMtMDktMTEgMDg6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB0cmFwIGJhZCBvcHRpb25zIC0td2l0aC1tb2R1bGVzIG9yIC0td2l0aC1vdXQtbW9kdWxlcwogICAKMjAwMy0wOS0wNSAyMzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FIChWNS0wLXBhdGNoZXMuNyksIFJFQURNRToKCiAgIGFkZGVkIEJvYiBSb3dsYW5kcwogICAKMjAwMy0wOS0wNSAyMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmMgKFY1LTAtcGF0Y2hlcy5bMiwyXSksCiAgIHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjODAwNTYxIGZyb20gQm9iIFJvd2xhbmRzIHRvIGZpeCA2NGJpdCBwcm9ibGVtcyAoLT4gc2l6ZV90KQogICAKMjAwMy0wOS0wNSAyMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjUtMC1wYXRjaGVzLjEpLCBwcm90b2NvbC5jCjoKCiAgIFBhdGNoICM4MDA0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIDY0IGJpdCBhZ2VudHggcHJvYmxlbXMKICAgCjIwMDMtMDktMDUgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcHVzbS5jOgoKICAgUGF0Y2ggIzc5MjAwOCBmcm9tIFRob21hcz8gdG8gYWxsb3cgdXNtVXNlciB0b2tlbnMgdG8gb3ZlcnJpZGUgcHJldmlvdXMgZW50cmllcwogICAKMjAwMy0wOS0wNSAyMjowNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwKICAgc25tcG5ldHN0YXQuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHRyYW5zbGF0ZS4xLmRlZiAoVjUtMC1wYXRjaGVzLlsyLDIsMSwxLDEsMSwxLDEsMV0pLCBtaWIyYy4xLmRlZgosIG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwosIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwKICAgc25tcG5ldHN0YXQuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLAogICBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZjoKCiAgIFBhdGNoICM3ODk0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIGEgbG9uZyBuZWVkZWQgb3ZlcmhhdWwgb2YgdGhlIG1hbnVhbCBwYWdlcy4KICAgCjIwMDMtMDktMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjUtMC1wYXRjaGVzLls5LDksOV0pLAogICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgb3B0aW9uYWwgYXJndW1lbnRzIHRvIHRoZSAtLXdpdGgtcGVybC1tb2R1bGVzIGZsYWcgZm9yIHBhc3NpbmcgZG93bgogICAKMjAwMy0wOS0wNSAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAogICAoVjUtMC1wYXRjaGVzLls0LDJdKSwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gZml4IGEgZ2V0YnVsayBidWcgcG9pbnRlZCBvdXQgYnkgSnVyaWogU21ha292LgogICAKMjAwMy0wOS0wNSAwNjoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L2FnZW50X3RyYXAuYwo6CgogICBSZS13cml0dGVuIGludGVybmFscyBvZiBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCiAgIFdvcmsgd2l0aCBzZXBhcmF0ZSB2MSBhbmQgdjIgdGVtcGxhdGUgUERVcywgYW5kIHNlcGFyYXRlCiAgIChzdGFuZGFsb25lKSByb3V0aW5lcyB0byBjb252ZXJ0IGJldHdlZW4gdGhlbSwgZm9sbG93aW5nIFJGQyAyNTc2LAogICBIb3BlZnVsbHkgYSBzb21ld2hhdCBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gYmVmb3JlLAogICAKMjAwMy0wOS0wMiAyMzowOSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBuZXcgc3BlYyB0byBpbmNsdWRlIGJ1aWxkaW5nIHRoZSBwZXJsIG1vZHVsZXMuCiAgICAgLSBkb25lIGluIHNvcnQgb2YgYSB0ZW1wb3JhcnkgaGFja3kgd2F5IHRpbGwgcHJvcGVyIHN1cHBvcnQgaXMgcHV0CiAgICAgICBkaXJlY3RseSBpbnRvIHRoZSBtYXN0ZXIgTWFrZWZpbGUgdG8gc3VwcG9ydCBvcHRpb25hbCBhcmd1bWVudHMKICAgICAgIGJlaW5nIHBhc3NlZCB0byB0aGUgTWFrZWZpbGUuUEwgc2NyaXB0LgogICAKMjAwMy0wOS0wMiAyMzowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSB0byBpbmNsdWRlIFJQTSBidWlsZGluZyBpbnN0cnVjdGlvbnMuCiAgIAoyMDAzLTA5LTAyIDIzOjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgTW9kaWZpY2F0aW9ucyB0byBzdXBwb3J0IHBlcmwgYW5kIGJ1aWxkaW5nIHNvdXJjZSBhbmQgYmluYXJ5IGF0IG9uY2UuCiAgIAoyMDAzLTA5LTAyIDE0OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gdG8gbm90IHNvdXJjZSB+Ly5uc2ItbmlnaHRseTsgZG9uJ3QgcmVtb2JlIGJ1aWxkIGRpciBvbiBzdWNjZXNzIGhlcmUKICAgCjIwMDMtMDktMDIgMTQ6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhbGxvdyBlbnYgdmFycyB0byBvdmVycmlkZSBkZWZhdWx0cyBmb3IgbW9yZSBvcHRpb25zOyByZW5hbWUgREFURSB0bwogICBOU0JfREFURTsgb25seSBzY3AgbWFrZSBmaWxlcyBmcm9tIHRoaXMgcnVuOyBhZGQgdW5hbWUgdG8gb3V0cHV0CiAgIAoyMDAzLTA5LTAxIDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHBydW5lIGRpc3QvcnBtIGZyb20gZXRhZ3MgcmVzdWx0cwogICAKMjAwMy0wOC0yOCAwMjowMiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEEgY29uZmlndXJlIHRva2VuIHRvIGNvbnRyb2wgdGhlIGFkZHJlc3Nlcy9wb3J0cyB0aGF0IHRyYXBkIGxpc3RlbnMgb24uCiAgIAoyMDAzLTA4LTIyIDAyOjM4ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIERvY3VtZW50IHRoZSBkZWZhdWx0IHZlcnNpb24gY2hhbmdlLgogICAKMjAwMy0wOC0yMSAxNDoyOCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBtYWtlIHVwbG9hZCB0YXJiYWxsIG5hbWUgYmFzZWQgb24gZGF0ZQogICAKMjAwMy0wOC0yMSAwMTo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSWYgYSBHRVRCVUxLIGhpdHMgdGhlIGVuZCBvZiB0aGUgTUlCIHRyZWUsIG1ha2Ugc3VyZSBhbnkgZW1wdHkgdmFyYmluZHMKICAgYXJlIHJldHVybmVkIGFzICdlbmRPZk1pYlZpZXcnIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuICguMC4wID0gTlVMTCkKICAgCiAgIElmICphbGwqIHRoZSByZXBlYXRpbmcgdmFyYmluZHMgaGl0IHRoZSBlbmQgb2YgdGhlIE1JQiB0cmVlLCB0cnVuY2F0ZQogICBhZnRlciB0aGUgZmlyc3QgZnVsbCBlbXB0eSByb3cuCiAgIAoyMDAzLTA4LTIxIDAxOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJZiB0aGVyZSdzIGEgbWl4dHVyZSBvZiAic3RpbGwgYWN0aXZlIiByZXBldGl0aW9ucywgYW5kIG9uZXMgdGhhdCBoYXZlCiAgIGFscmVhZHkgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBPSUQgdHJlZSwgdGhlbiBzb21lIG9mIHRoZSB2YXJiaW5kIHN0cnVjdHVyZXMKICAgbWF5IHdlbGwgYmUgTlVMTC4KICAgICBJdCdzIHByZWZlcmFibGUgdG8gc2tpcCB0aGVzZSwgYW5kIGNvbnRpbnVlIHByb2Nlc3NpbmcgZXZlcnl0aGluZyBlbHNlLAogICByYXRoZXIgdGhhbiBjcmFzaCB0aGUgc2VydmVyOi0pCiAgIAoyMDAzLTA4LTIxIDAxOjI5ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBEZWZhdWx0IHRvIGdsb2JhbCBTTVVYIGFjY2VzcyAoYXMgY3VycmVudGx5KSwgYnV0IHN1cHBseSBhIGNvbmZpZ3VyZQogICBvcHRpb24gdG8gc2V0IGRlZmF1bHQgU01VWCBhY2Nlc3MgdG8gYmUgbG9jYWxob3N0IG9ubHkuCiAgIEhhcHB5IG5vdz8KICAgCjIwMDMtMDgtMjEgMDE6MjQgIGR0czEyCgogICAqIGFjY29uZmlnLmg6CgogICBFbnN1cmUgdGhhdCB0aGUgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIHRva2VuIHJlbWFpbnMgYXZhaWxhYmxlCiAgIHdoZW4gY29uZmlndXJlIHN5c3RlbSBmaWxlcyBhcmUgcmVjcmVhdGVkLgogICAKMjAwMy0wOC0yMCAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcG9zdC1CVUxLIHJlLW9yZ2FuaXNhdGlvbiwgc28gaXQncyBzb21ld2hhdAogICBjbGVhcmVyIHdoYXQncyBoYXBwZW5pbmcuICBJdCB0b29rIG1lIGJlc3QgcGFydCBvZiBhbiBob3VyIChwbHVzIGluc2VydGluZwogICBhc3NvcnRlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cykgdG8gbWFrZSBzZW5zZSBvZiB0aGlzIQogICAKMjAwMy0wOC0yMCAwMjozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVnaXN0ZXIgTUlCcyB1c2luZyB0aGUgbG93ZXN0LWxldmVsIGF2YWlsYWJsZSBuYW1lLCByYXRoZXIgdGhhbiB0aGUKICAgZmlyc3QgaGFuZGxlciBpbiB0aGUgY2hhaW4uICAgVGhpcyBubyBsb25nZXIgcmVzdWx0cyBpbiB0aGUgd2hvbGUgTUlCCiAgIHJlZ2lzdHJ5IGJlaW5nIGlkZW50aWZpZWQgYXMgImJ1bGtfdG9fZ2V0IiEKICAgCjIwMDMtMDgtMjAgMDI6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmg6CgogICBVbnJlZ2lzdGVyIChyZWxvY2F0YWJsZSkgZXh0ZW5zaW9ucyB3aGVuIHJlLXJlYWRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KICAgVGhpcyBhbGxvd3MgImV4ZWMiIGxpbmVzIHRvIGJlIHJlLWxvYWRlZCB3aXRob3V0IGNhdXNpbmcgdGhlIGFnZW50IHRvIGNyYXNoIQogICAKMjAwMy0wOC0xOSAwODoxMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBCZXR0ZXIgZml4IGZvciBCdWcgIzYzMDM0OC4gIFRyZWF0IGFsbCBEQlBSVCBjYWxscyBjb25zaXN0ZW50bHksIGFuZAogICBtYWtlIHN1cmUgdGhlIFBlcmxJT19wcmludGYgY2FsbCBpcyBwYXNzZWQgdGhlIGNvcnJlY3QgcGFyYW1ldGVyIGxpc3QuCiAgIAoyMDAzLTA4LTE5IDA3OjMxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFdoYXRldmVyIHRoZSBjYXVzZSBvZiBidWcgIzYzMDM0OCB3YXMsIHRoaXMgaXNuJ3QgdGhlIGFuc3dlci4KICAgV2l0aCAnUGVybElPX2ZwcmludGYnLCBpdCBkb2Vzbid0IGNvbXBpbGUhICBNb3JlIGludmVzdGlnYXRpb24gbmVlZGVkLgogICAKMjAwMy0wOC0xOSAwMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBBbGxvdyB0aGUgKGNvbXBpbGUtdGltZSkgb3B0aW9uIG9mIHJlc3RvcmluZyBnbG9iYWwgYWNjZXNzIHRvIFNNVVggc2VydmljZXMuCiAgIElmIHRoZSBjb25zZW5zdXMgaXMgdGhhdCB0aGlzIHNob3VsZCBiZSB0aGUgZGVmYXVsdCAoYXMgY3VycmVudGx5KSwgdGhlbgogICBJJ3ZlIG5vIHN0cm9uZyBmZWVsaW5ncyBlaXRoZXIgd2F5LiAgRmVlbCBmcmVlIHRvIGFkanVzdCBhY2NvcmRpbmdseS4KICAgCjIwMDMtMDgtMTkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQXV0b21hdGljYWxseSByZWxlYXNlIGV4cGlyZWQgY2FjaGUgcmVzb3VyY2VzLgogICAKMjAwMy0wOC0xOSAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBJbnZhbGlkYXRlIHRoZSBjYWNoZSBvbiAoc3VjY2Vzc2Z1bCkgU0VUIHJlcXVlc3RzLgogICBUaGlzIGlzIGN1cnJlbnRseSBkb25lIHJlZ2FyZGxlc3MgLSBpdCB3b3VsZCBiZSBzZW5zaWJsZSB0byBtYWtlIGl0CiAgIGNvbmZpZ3VyYWJsZSBvbiBhIHBlci1jYWNoZSBiYXNpcy4KICAgCjIwMDMtMDgtMTggMTU6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgY29tbWVudCBvdXQgY29kZSB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gY2hlY2tlZCBpbiB5ZXQKICAgCjIwMDMtMDgtMTggMTU6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGZvciBjb3JyZWN0IG1ldGhvZCB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3Q7IHJlbW92ZQogICByZWxlYXNlX2lmX3RvcCBhbmQgX2JhXyogZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE4IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXBkYXRlIHByb3RvdHlwZSBmb3IgY29ycmVjdCBmdW5jdGlvbiB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3Q7IGZpeAogICBjb21tZW50IHR5cG9zOyByZW1vdmUgcmVsZWFzZV9pZl90b3AgcHJvdG90eXBlIGFuZCBjYWxsIGluIENPTlRBSU5FUl9GUkVFCiAgIAoyMDAzLTA4LTE4IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjYWxsIGNvcnJlY3QgZnVuY3Rpb24gdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0CiAgIAoyMDAzLTA4LTE4IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG9jdW1lbnQgc2VnZmF1bHQgbG9jYXRpb24gZm9yIGZ1dHVyZSBmaXhpbmcKICAgCjIwMDMtMDgtMTggMDk6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIEJyaW5nIGludG8gbGluZSB3aXRoIG5ldyBjYWNoZSByZWxlYXNlIEFQSSBkZWZpbml0aW9uLgogICAKMjAwMy0wOC0xOCAwODo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBzb3VyY2UgZm9yIHRhYmxlX21mZAogICAKMjAwMy0wOC0xOCAwODozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oOgoKICAgb3Bwcy4gIG1pc3NlZCB0aGUgaGVhZGVyCiAgIAoyMDAzLTA4LTE4IDA4OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGRvbid0IHJlZmVyZW5jZSBub24tZXhpc3RlbnQgZmlsZQogICAKMjAwMy0wOC0xOCAwODowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBoZWFkZXIgZm9yIHRhYmxlX21mZAogICAKMjAwMy0wOC0xOCAwNjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaDoKCiAgIGhlYWRlciBmb3IgY29udGFpbmVyIGl0ZXJhdG9yCiAgIAoyMDAzLTA4LTE4IDA1OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgTmV3IHY1LXN0eWxlIGhhbmRsZXJzIHNob3VsZCBvbmx5IGV2ZXIgcmVjZWl2ZSBNT0RFX0dFVCByZXF1ZXN0cy4KICAgTG9nIGEgd2FybmluZyBmb3Igb3RoZXIgdW5leHBlY3RlZCAob3IgdW5yZWNvZ25pc2VkKSByZXF1ZXN0IG1vZGVzLgogICAKMjAwMy0wOC0xOCAwMzoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIFVzZSB0aGUgbmV3IChpbnRlcm5hbCkgY2FjaGUgdmFsaWRpdHkgY2hlY2tpbmcuCiAgIFFuOiBIb3cgY2FuIHdlIGFjY2VzcyB0aGUgcmVxdWVzdC1pbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgKG9yIHNpbWlsYXIpCiAgICAgICBmcm9tIHdpdGhpbiBpdGVyYXRvciBkYXRhX3BvaW50IHJvdXRpbmVzPwogICAKMjAwMy0wOC0xOCAwMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgUHJvdmlkZSBhbiBBUEkgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjYWNoZSBpcyBjdXJyZW50bHkgdmFsaWQuCiAgIFJlbGVhc2Ugb2xkIGNhY2hlIHJlc291cmNlcyBiZWZvcmUgbG9hZGluZyB0aGUgbmV3IHZhbHVlcy4KICAgTkI6IFRoaXMgaW52b2x2ZXMgYSBjaGFuZ2UgaW4gdGhlICdmcmVlJyBob29rIEFQSS4KICAgCjIwMDMtMDgtMTggMDM6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIFRoZSBtYWNybyBmdW5jdGlvbiBkZWZpbml0aW9ucyByZWx5IG9uIGxvZ2dpbmcgcm91dGluZXMgZnJvbSAnc25tcF9sb2dnaW5nLmMnCiAgIHNvIHRoZSBhcHByb3ByaWF0ZSBkZWNsYXJhdGlvbnMgYW5kIGRlZmluZWQgY29uc3RhbnRzIG5lZWQgdG8gYmUgYXZhaWxhYmxlLgogICAKMjAwMy0wOC0xOCAwMzoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNvY2tldCBhZGRyZXNzIHRvIGxpc3RlbiBmb3IgU01VWCBjb25uZWN0aW9ucyBvbi4KICAgCiAgIE5vdGU6IENoYW5nZSBvZiBiZWhhdmlvdXIgLSB0aGlzIHBhdGNoIGRlZmF1bHRzIHRvIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMKICAgZnJvbSB0aGUgbG9jYWxob3N0IG9ubHkuCiAgIAoyMDAzLTA4LTE4IDAyOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdmlzaW9uYWwgc3VwcG9ydCBmb3Igc2VuZGluZyBjbGllbnQgcmVxdWVzdHMgZnJvbSBhIHNwZWNpZmllZCBpbnRlcmZhY2UKICAgb3Igc29ja2V0IGFkZHJlc3MuCiAgIFFuOiBTaG91bGQgdGhpcyBiZSBhcHBsaWVkIHRvIFRDUCBjb25uZWN0aW9ucyB0b28/CiAgICAgICBXaGF0IGFib3V0IG90aGVyIHRyYW5zcG9ydHM/CiAgIAoyMDAzLTA4LTE4IDAyOjUzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBJbXBsZW1lbnQgJ3NucHJpbnRmX2Rlc2NyaXB0aW9uJyByb3V0aW5lcywKICAgdG8gb3V0cHV0IE1JQiBkZWZpbml0aW9ucyB0byBhIHN0cmluZyByYXRoZXIgdGhhbiBhIGZpbGUuCiAgIAoyMDAzLTA4LTE3IDE2OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBoYXJkY29kZWQgdmFyIG5hbWVzL2NvbnN0YW50cyAoZWVrISkKICAgCjIwMDMtMDgtMTcgMTY6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW5hbWUgc29tZSB0eXBlZGVmczsgYWRkICpfcmVmXyogdHlwZWRlZnM7IG1ha2UgbmV0c25tcF9pbmRleCBmaXJzdCBpdGVtCiAgIGluIGN0eDsgbWFrZSBpbmRleCBsb2NhbCBpbnN0ZWFkIG9mIHB0cjsgcnVuIG5ldyBtZmQtYWNjZXNzLSotaGVhZGVyOyBhZGQKICAgc29tZSBwcm90b3R5cGVzLCBkZWJ1ZyBtc2dzOyB1cGRhdGUgaW5pdCB0byBzZXQgdXAgbWZkX3JlZ2lzdHJhdGlvbiwgY29udGFpbmVyLAogICAqX2dldF92YWx1ZXM7IGZpeCByZW5hbWVzIG1mZCByZWdpc3RyYXRpb24gcm91dGluZTsgcnVuIG5ldyBtYWtlZmlsZSBhbmQKICAgc3ViYWdlbnQgY29uZiBmaWxlcwogICAKMjAwMy0wOC0xNyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluY2x1ZGUgbWZkIGhlYWRlcjsgbmV3ICpfZ2V0X3ZhbHVlczsgdHdlYWsgKl9nZXRfY29sdW1uOiBpbmNsdWRlIGFjY2Vzc2libGUKICAgaW5kZXhlcywgcHVzaCB2YXIgbWVtb3J5IGNoZWNrIHVwIGEgbGV2ZWwgKl9nZXRfdmFsdWVzIChzaG91bGQgZ28gdXAgb25lCiAgIG1vcmUsIGludG8gaGVscGVyIGluc3RlYWQgb2YgZ2VuZXJhdGVkIGNvZGUpOyBydW4gbmV3IG1mZF9hY2Nlc3NfKl9pbnRlcmZhY2UKICAgCjIwMDMtMDgtMTcgMTY6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIG1vdmUgcHJvY2VzcyBwcmludCBhZnRlciBub2FjY2VzcyB0ZXN0CiAgIAoyMDAzLTA4LTE3IDE2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBuZXcgKl8oYWxsb2NhdGV8cmVsZWFzZSlfKGRhdGF8Y3R4KTsgbW92ZSBwcm9jZXNzIHByaW50IGFmdGVyIG5vYWNjZXNzIHRlc3QKICAgCjIwMDMtMDgtMTcgMTY6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHJlbmFtZSBhY2Nlc3MtKiB0byBtZmQtYWNjZXNzLSoKICAgCjIwMDMtMDgtMTcgMTY6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGFkZCBoZWFkZXI7IGluY2x1ZGUgZW51bXMgdG9vCiAgIAoyMDAzLTA4LTE3IDE2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC1tYWtlZmlsZS5tMm0KLCBzdWJhZ2VudC5tMmM6CgogICBuZXcgbWZkIGRhdGEgYWNjZXNzIGNvbmYgZmlsZXMgKHdyYXAgYXJvdW5kIG5ldyBjb250YWluZXIgaXRlcmF0b3IpOyBuZXcgbWZkCiAgIGNvbmYgZmlsZXMgdG8gZ2VuZXJhdGUgbWFrZWZpbGUvc3ViYWdlbnQgbWFpbgogICAKMjAwMy0wOC0xNyAxNjozMSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIGNvbmZpZy5oIGRlZmluZSB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHdpbiBjYWxsYmFjayB0cmFuc3BvcnQsIGluc3RlYWQKICAgb2Ygd2luIHNwZWNpZmljIGlmZGVmcyBpbiBjb2RlCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBuZXcgZGVidWdtc2dfc3Vib2lkCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgY2hlY2sgZm9yIG51bGwgcHRyCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICByZW1vdmUgbm9hbGxvYyBmdW5jdGlvbnM7IHJlbmFtZSB0eXBlZGVmCiAgIAoyMDAzLTA4LTE3IDE2OjE4ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW1vdmUgbm9hbGxvYyBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTcgMTY6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIgYW5kIG5vYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE3IDE2OjE3ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGFkZCBvcHRpb25hbCB1cGxvYWQgb2Ygc3JjIHRhcmJhbGwgYWZ0ZXIgdXBkYXRlCiAgIAoyMDAzLTA4LTE3IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkIChkb2Vzbid0IHVzZSBtaWJzKTsgcmV3b3JrIGlmZGVmcyBmb3IKICAgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZF90cmVlICYgRElTQUJMRV9NSUJfTE9BRElORwogICAKMjAwMy0wOC0xNyAxNToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBhZGQgbmV3IGNvbnRhaW5lciBpdGVyYXRvcgogICAKMjAwMy0wOC0xNyAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZG9uJ3QgcnVuIGluZGVudCBvbiBmaWxlcyB1bmxlc3MgdGhleSBlbmQgdy8gLmMgb3IgLmg7IHByaW50IG1vcmUgaW5mbyB3aGVuCiAgIGRpZSBvZiB1bmV4cGVjdGVkIGVsc2UKICAgCjIwMDMtMDgtMTcgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgbmV3IERFQlVHTVNHU1VCT0lEICYgc3VwcG9ydGluZyBjYXN0CiAgIAoyMDAzLTA4LTE3IDE1OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGZpeCBjb21tZW50cyB3aGljaCBleGNlZWQgODAgY2hhcnMKICAgCjIwMDMtMDgtMTcgMTU6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBuZXcgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZCBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBuZXcgbmV0c25tcF90YWJsZV9maW5kX25leHRfcm93IHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBuZXcgbmV0c25tcF9lbmFibGVfc3ViYWdlbnQgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBuZXcgbmV0c25tcF9jaGVja19yZXF1ZXN0c19lcnJvciBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBuZXcgKHRlbXBvcmFyeT8pIGJhYnkgc3RlcHMgaGVscGVyCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIGJhYnlfc3RlcHMuaCwgcm93X21lcmdlLmgsIHRhYmxlX21mZC5oCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBkZWZpbmUgbmV3IGNhbiBiYWJ5IHN0ZXAgbW9kZSBmbGFnCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV3IG5ldHNubXBfcmVmX3ZvaWQsIG5ldHNubXBfcmVmX3NpemVfdCB0eXBlZGVmcwogICAKMjAwMy0wOC0xNyAxNTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBoYXNuJ3QgYmVlbiBpbmNsdWRlZDsgYWRkIGNvbnRhaW5lci9hc3NlcnQgaGVhZGVycwogICAKMjAwMy0wOC0xNyAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIGhhc24ndCBiZWVuIGluY2x1ZGVkOyBkb24ndCBpbmxjdWRlIHV0aWxpdGllcyB0d2ljZQogICAKMjAwMy0wOC0xNyAxNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbmV3IG5ldHNubXBfZW5hYmxlX3N1YmFnZW50LCBvbmx5IGRlZmluZWQgaWYgVVNJTkdfQUdFTlRYX1NVQkFHRU5UX01PRFVMRSwgc28KICAgYSBsaW5rIGVycm9yIHdpbGwgb2NjdXIgaWYgYWdlbnR4IHN1cHBvcnQgbm90IGNvbXBpbGVkIGluCiAgIAoyMDAzLTA4LTE3IDE1OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGZpbmRfbmV4dF9yb3csIHVzZSBuZXcgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93OyBmaXggdHlwbwogICAKMjAwMy0wOC0xNyAxNTowMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG5vdGVzIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzOyBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrOyBuZXcKICAgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93CiAgIAoyMDAzLTA4LTE3IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIHNraXAgZ3JvdXBpbmcgaWYgb25seSAxIHZhcmJpbmQ7IG5vdGUgZm9yIGZ1dHVyZSBlbmhhbmNlbWVudHMKICAgCjIwMDMtMDgtMTcgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBiYWJ5X3N0ZXBzLCB0YWJsZV9tZmQgaGVscGVyczsgYnVpbGQgb2Jqcy9sb2JqcyBmcm9tIHNyY3MKICAgCjIwMDMtMDgtMTcgMTQ6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBuZXcgbmV0c21wX2NoZWNrX3JlcXVlc3RzX2Vycm9ycwogICAKMjAwMy0wOC0xNyAxNDo1OCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGNvZGUgcmV1c2UgKGNhbGxfaGFuZGxlcnMgdXNlcyBjYWxsX2hhbmRsZXIpOyBhZGQgbmV3IG1vZGUgdGV4dCBmb3IKICAgaGFuZGxlcl9jYW5fbW9kZSBzbGlzdAogICAKMjAwMy0wOC0xNiAwNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBtb3ZlIHNvbWUgcG9pbnRlciBzYXZpbmcgZm9yIFNUQVNIIHJlbGF0ZWQgc3R1ZmYgb3V0c2lkZSB0aGUgbW9yZQogICAgIGZyZXF1ZW50bHkgY2FsbGVkIGxvb3AuCiAgIAoyMDAzLTA4LTE1IDA0OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wY21kLjEuZGVmLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTW92ZSBwcmVmaXgvc3VmZml4IG9wdGlvbnMgdW5kZXIgLUkKICAgCjIwMDMtMDgtMTUgMDM6MzMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBhZGQgYSB0cmFpbGluZyBkb3QgaWYgd2UncmUgc2V0dGluZyBhIHByZWZpeCwgYnV0IG5vdCBhIHN1ZmZpeC4KICAgCjIwMDMtMDgtMTQgMDE6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCBidWxrX3RvX25leHQuYywKICAgY2FjaGVfaGFuZGxlci5jLCBkZWJ1Z19oYW5kbGVyLmMsIGluc3RhbmNlLmMsCiAgIG1vZGVfZW5kX2NhbGwuYywgbXVsdGlwbGV4ZXIuYywgcmVhZF9vbmx5LmMsCiAgIHJvd19tZXJnZS5jLCBzY2FsYXIuYywgc2NhbGFyX2dyb3VwLmMsCiAgIHNlcmlhbGl6ZS5jLCB3YXRjaGVyLmM6CgogICBSZW9yZ2FuaXNlIHRoZSBhZ2VudCBoZWxwZXIgJ2RveHlnZW4nIHN0cnVjdHVyZSwgdG8gbWFrZSBpdCBsZXNzICJmbGF0Ii4KICAgR3JvdXAgImxlYWYtb2JqZWN0IiBoZWxwZXJzIHRvZ2V0aGVyLCBhbmQgaW50ZXJuYWwgInV0aWxpdHkiIGhlbHBlcnMgc2ltaWxhcmx5LgogICAKMjAwMy0wOC0xNCAwMTowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVHJ5IHRvIGNhdGNoIChzb21lKSBQRFUgZHVhbC1mcmVlJ3MuCiAgIAoyMDAzLTA4LTE0IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAxIG9mIDIgbWVtb3J5IGxlYWtzIGZvdW5kIChvaywgSSBzYWlkIEkgd2Fzbid0IGdvaW5nIHRvIGZpbmQgaXQgYnV0Li4uKQogICAKMjAwMy0wOC0xMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluLCBhbGxfaGVscGVycy5jLAogICBzdGFzaF9jYWNoZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgLSBhZGRlZCBhIG5ldyBoZWxwZXIgdG8gYXV0by1jYWNoZSBkYXRhLiAgQ3VycmVudGx5IHRoZSBvbmx5CiAgICAgc3ViLW1vZHVsZSBzdXBwb3J0ZWQgYnkgdGhpcyBpcyB0aGUgdGFibGVfaXRlcmF0b3IsIGJ1dCBzaWduaWZpY2FudAogICAgIHNwZWVkIGltcHJvdmVtZW50cyBjYW4gYmUgc2VlbiB3aGVuIGNhY2hpbmcgb2YgaXRlcmF0b3IgZGF0YSBpcwogICAgIHR1cm5lZCBvbi4KICAgICAtIHRvIHRlc3QgYWRkIHRvIHNubXBkLmNvbmY6CiAgICAgICAgIGluamVjdEhhbmRsZXIgc3Rhc2hfY2FjaGUgTU9EVUxFIHRhYmxlX2l0ZXJhdG9yCiAgICAgICAoYSBnb29kIHRlc3QgbW9kdWxlIGlzIHRoZSBuc01vZHVsZVRhYmxlIHdoaWNoIGhhcyBhIGxvdCBvZiByb3dzKQogICAgIC0gd2FybmluZzogbm90IGhlYXZpbHkgdGVzdGVkLiAgU2VlbXMgb2sgZm9yIGF0IGxlYXN0IHRoZSBzaW1wbGUgY2FzZXMuCiAgIAoyMDAzLTA4LTEzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvc25tcF9hZ2VudC5oLCBsaWJyYXJ5L3NubXAuaAo6CgogICAtIGRlZmluZSBhIG5ldyBpbnRlcm5hbC11c2UgbW9kZTogIE1PREVfR0VUX0NBQ0hFCiAgIAoyMDAzLTA4LTEzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgdXNlIGNhbGxvYyB0byBpbml0aWFsaXplIGFuZCB6ZXJvIG1lbW9yeSAoZml4ZXMgYW4gZXJyb3Igc3BvdHRlZCBieSB2YWxncmluZCkuCiAgIAoyMDAzLTA4LTEzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgc3BvdHRlZCBvbmUgbWVtb3J5IGxlYWsuCiAgIAoyMDAzLTA4LTEzIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIC0gYWRkZWQgYSAtQ3Qgb3B0aW9uIHRvIHNubXB3YWxrIHRvIGRpc3BsYXkgd2FsayBjbG9jayB0aW1lciByZXN1bHRzCiAgIAoyMDAzLTA4LTEzIDIyOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgLSBhZGRlZCBhIHBhcmVudCBub2RlIGZvciB1cHdhcmQgdHJhdmVyc2FsLgogICAtIGEgZ2V0bmV4dCBpbXBsZW1lbnRhdGlvbiB0aGF0IGFjdHVhbGx5IHdvcmtzIChmYWlybHkgaGVhdmlseSB0ZXN0ZWQpLgogICAKMjAwMy0wOC0xMyAyMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIG1vZGlmaWVkIHRoZSBmcmVlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGFrZSBhIGNhY2hlIGFyZ3VtZW50IGZvcgogICAgIGdlbmVyYWxpemluZyBpdCBhIGJpdCBtb3JlLgogICAKMjAwMy0wOC0xMyAyMjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIC0gSW1wbGVtZW50IG5ldHNubXBfaW5qZWN0X2hhbmRsZXJfYmVmb3JlKCkgd2hpY2ggdGFrZXMgYW4gYXJndW1lbnQgdG8KICAgICBkZXRlcm1pbmUgd2hlcmUgaW4gdGhlIGhhbmRsZXIgY2hhaW4gaXQgc2hvdWxkIGluamVjdCBzb21ldGhpbmcuCiAgIC0gTW9kaWZ5IHRoZSBpbmplY3RIYW5kbGVyIC5jb25mIHRva2VuIHRvIHRha2VuIGFuIG9wdGlvbmFsIGZpbmFsCiAgICAgQkVGT1JFIGFyZ3VtZW50LgogICAKMjAwMy0wOC0xMCAxMTozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgbWlzYyBoaWdoIGxldmVsIGNvcHlyaWdodCBub3RlcyBhZGRlZCAoSUUsIHNlZSB0aGUgQ09QWUlORyBmaWxlLCAuLi4pLgogICAKMjAwMy0wOC0xMCAxMTozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBtaXNjIGNvcHlyaWdodCBub3RlcyBhZGRlZC4KICAgCjIwMDMtMDgtMDUgMDE6NDIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENhdGNoIG1pc3NpbmcgcGFyYW1ldGVycyBpbiBjb21waWxlLXN1YmFnZW50IGhhbmRsaW5nIHRvbwogICAKMjAwMy0wOC0wNSAwMTozOCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ2F0Y2ggbWlzc2luZyBwYXJhbWV0ZXJzIGluIGNyZWF0ZS1zbm1wdjMtdXNlciBoYW5kbGluZwogICAKMjAwMy0wOC0wNSAwMTozMiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgVXNlICQxIHBhcmFtZXRlciBkaXJlY3RseSBpbiBjcmVhdGUtc25tcHYzLXVzZXIgcHJvY2Vzc2luZy4KICAgU29tZXdoYXQgbGVzcyBjb25mdXNpbmcgdGhhbiB3aXRoIHRoZSBhZGRpdGlvbmFsICRhcmcgcGFyYW1ldGVyLAogICBhbmQgbGVzcyBjaGFuY2Ugb2Ygc2hpZnRpbmcgYSBub24tZXhpc3RlbnQgdmFsdWUuCiAgIChSZWxldmFudCB0byBidWcgIzc1NTU3MSkKICAgCjIwMDMtMDgtMDIgMDY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW9nL3VwZGF0ZSBjb2RlIGdlbmVyYXRpb247IHJ1biBtZmQtZGF0YS1hY2Nlc3M7IHNldCBoYW5kbGVyIFJXUklURSBpZiB0YWJsZQogICB3cml0YWJsZTsgY2hnIHRhYmxlIHJlZ2lzdHJhdGlvbiB0eXBlOyBpbmNsdWRlIG5ldyB0YWJsZSBzZXR1cAogICAKMjAwMy0wOC0wMiAwNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHNpbXBsaWZ5IHBhcmFtIGxpc3RzOyB1cGRhdGUgY29kZSBnZW5lcmF0aW9uCiAgIAoyMDAzLTA4LTAyIDA2OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHNldHVwIG5vZGUgc3JoIGluZGVwZW5kZW50IG9mIGdldCB0ZW1wIHVzZQogICAKMjAwMy0wOC0wMiAwNjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgYmUgbW9yZSBwYXJhbm9pZCBhYm91dCB0ZW1wb3Jhcnkgb3ZlcnJpZGUgb2YgJG5hbWUKICAgCjIwMDMtMDgtMDIgMDY6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGNoZyBpbmRlbnRpb24gb24gc29tZSBjb21tZW50IGJsb2NrczsgdXNlIG5ldyBub2RlLXN0b3JhZ2UubTJpOyBybXYgZGF0YSBwdHIKICAgCjIwMDMtMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLAogICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBub2RlLXN0b3JhZ2UubTJpOgoKICAgbmV3IGNvZGUgdGVtcGxhdGVzCiAgIAoyMDAzLTA4LTAyIDA2OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLWdldC1vaWQubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMsIG5vZGUtZ2V0Lm0yaSwKICAgbm9kZS1zZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZDoKCiAgIGRhdGEgYXQgY3R4LT5kYXRhLCBub3QgY3R4OyBjaGcgaW5kZW50aW9uIG9uIGJsb2NrIGNvbW1lbnRzOyBmaXggc29tZSBtaXNzZWQKICAgbmFtZSBjaGFuZ2VzOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29uZiBmaWxlczsgc2ltcGxpZnkgc29tZSBwYXJhbSBsaXN0czsKICAgYWRkIHNvbWUgYXNzZXJ0cwogICAKMjAwMy0wNy0zMSAwNzoyMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRG9uJ3Qgc2hpZnQgYXdheSBjb21tYW5kLWxpbmUgcGFyYW1ldGVycyB0aGF0IHByb2JhYmx5IGFyZW4ndCB0aGVyZQogICAoYW5kIGNlcnRhaW5seSBhcmVuJ3QgcmVsZXZhbnQgdG8gdGhlIGFjdGlvbiBiZWluZyBoYW5kbGVkKQogICBSZXBvcnRlZCBieSBWaW5vZCBKb2huc29uCiAgIAoyMDAzLTA3LTMxIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGFuZGxlIHByb3hpZWQgU0VUcyBpbiB0aGUgQUNUSU9OIHBhc3MsIHJhdGhlciB0aGFuIHRoZSBjb21taXQgcGFzcy4KICAgVGhpcyBhbGxvd3MgZmFpbHVyZXMgaGVyZSB0byBiYWNrIG91dCBhc3NpZ25tZW50cyBpbiBvdGhlciBtb2R1bGVzLgogICBXZSBjYW4ndCBwcm9jZXNzIFVORE8gcmVxdWVzdHMgc3VjY2Vzc2Z1bGx5LCBidXQgd2UgY2FuIGF0IGxlYXN0IHJlcG9ydAogICB0aGlzIGZhY3QuICBXaGljaCBpcyBwcmVmZXJhYmxlIHRvIGNsYWltaW5nIGZhaWx1cmUgYnV0IChzaWxlbnRseSkKICAgYWN0aW5nIG9uIHNvbWUgYXNzaWdubWVudHMuCiAgIAoyMDAzLTA3LTMxIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRG9uJ3QgbG9nIHdhcm5pbmdzIGZvciBkZWxpYmVyYXRlbHkgdW51c2VkIFNFVCBwYXNzZXMuCiAgIAoyMDAzLTA3LTMxIDAzOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGFuZGxlIFNOTVAgZXJyb3JzIGZyb20gcHJveGllZCBzZXJ2ZXJzIGNvcnJlY3RseS4KICAgUGFzc2luZyB0aGUgZXJyb3IgYmFjayB1cCB0aGUgY2hhaW4gc2VlbXMgdG8gRG8gVGhlIFJpZ2h0IFRoaW5nLgogICAKMjAwMy0wNy0zMSAwMzowMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvYmxlbXMgaW4gTUlCIHByb2Nlc3NpbmcgYXJlIGluZGljYXRlZCB2aWEgdGhlICdhc3AtPnN0YXR1cycgZmllbGQsCiAgIHJhdGhlciB0aGFuIHRoZSByZXR1cm4gdmFsdWUuICBTbyB1c2UgdGhhdCB3aGVuIGRvd25ncmFkaW5nIHYyLXN0eWxlCiAgIGVycm9ycyBmb3IgdjEgcmVzcG9uc2VzLgogICAKMjAwMy0wNy0zMCAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgbmV3IE1JQnMgRm9yIER1bW1pZXMgKG1mZCkgY29uZiBmaWxlcwogICAKMjAwMy0wNy0zMCAxMDo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGV4YW1wbGVfKHN0YXJ0L2VuZCk7IGZpeCAkeC5yYW5nZXM7IGFsbG93IGxpdGVyYWwgdmFyIG5hbWVzIGluIHVzZXIgY29kZQogICB2aWEgJEB2YXI7IGFkZCB0YWJsZV9pc193cml0YWJsZSBmdW5jdGlvbgogICAKMjAwMy0wNy0zMCAxMDo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksIGdlbmVyaWMtZ2V0LWRlY2wubTJpLAogICBnZW5lcmljLWdldC1sb25nLm0yaSwgZ2VuZXJpYy1nZXQtb2lkLm0yaSwKICAgZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwgZ2VuZXJpYy1oZWFkZXItdG9wLm0yaSwKICAgZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLAogICBnZW5lcmljLXRhYmxlLW9pZHMubTJjLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksIG5vZGUtZ2V0Lm0yaQosIG5vZGUtc2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgIHBhcmVudC1zZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZCwKICAgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLAogICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgbG90cyBvZiBuZXcgbWliMmMgaGVscGVycyAoaW5jbHVkZXMpCiAgIAoyMDAzLTA3LTMwIDEwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksIGRldGFpbHMtbm9kZS5tMmkKLCBkZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1vc3RseSB2YXJpYWJsZSByZW5hbWVzOyBzb21lIHJlb3JnCiAgIAoyMDAzLTA3LTMwIDA2OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRGlzY2FyZCB2YWx1ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgcHJveHkgaWYgdGhlIE9JRCBpcyBpbnZhbGlkLgogICAoVHlwaWNhbGx5IHdoZW4gYSBHZXROZXh0IHdhbGtzIHBhc3QgdGhlIGVuZCBvZiB0aGUgcHJveGllZCBzdWJ0cmVlKS4KICAgQWxzbyB1cGRhdGUgdGhlIGNvbW1lbnRzIHRvIGRlc2NyaWJlIHRoZSBiZWhhdmlvdXIgaW4gYSBiaXQgbW9yZSBkZXRhaWwuCiAgIAoyMDAzLTA3LTMwIDA2OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgUmVzcG9uZCB0byBTTk1QIGVycm9ycyBmcm9tIHRoZSBwcm94aWVkIGFnZW50LgogICAoVGhlIHJlc3BvbnNlIGlzIG11Y2ggdG9vIHNpbXBsaXN0aWMsIGFuZCBpcyBsaWtlbHkgdG8gcHJvdmUgYW4KICAgb3Zlci1yZWFjdGlvbiBpbiBtYW55IGNhc2VzLiAgIEJ1dCBpdCdzIGEgc3RhcnQpCiAgIE5vdGUgdGhhdCB0aGUgaW5kZW50YXRpb24gaGFzIG5vdCBiZWVuIGFkanVzdGVkIC0gd2FpdCB1bnRpbCB0aGluZ3MKICAgc2V0dGxlIGRvd24gZmlyc3QuCiAgIAoyMDAzLTA3LTI5IDA4OjEzICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRmLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGRmLmM6CgogICBGaXggYSB0eXBvIGluIGFuIGVycm9yIG1lc3NhZ2UgKFBhdGNoICM3NjkyMjEpCiAgIAoyMDAzLTA3LTI5IDA1OjA3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgQ29ycmVjdCB0aGUgY29tbWVudHMgaWRlbnRpZnlpbmcgaGV4L2FzY2lpIHZhbHVlcyBmb3IgUERVIHR5cGVzLgogICBSZXBvcnRlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMjkgMDI6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCB1dGlsaXRpZXMvZXhlY3V0ZS5jCjoKCiAgIFN1cHBvcnQgZm9yIG11bHRpLWNvbW1hbmQgZGlyZWN0aXZlcyBmb3IgJ3NoJyBleHRlbnNpYmlsaXR5LgogICAgICAgKGkuZS4gcnVubmluZyAidGhpczsgdGhhdDsgdGhlIG90aGVyIikKICAgUmV0YWluZWQgdGhlIG9yaWdpbmFsIGJlaGF2aW91ciBvZiB0cnVuY2F0aW5nIGF0IHRoZSBmaXJzdCAnOycgZm9yCiAgICdleGVjJyBkaXJlY3RpdmVzICAoZm9sbG93aW5nIHRoZSBQcmluY2lwbGUgb2YgTGVhc3QgQXN0b25pc2htZW50KQogICAKMjAwMy0wNy0yOSAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIExvZyBmYWlsdXJlIHRvIHNldCB1cCBwcm94eSBjb21tYW5kIChyYXRoZXIgdGhhbiBwbG91Z2hpbmcgb24gcmVnYXJkbGVzcyEpCiAgIAoyMDAzLTA3LTI5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBGaXggc3VwcG9ydCBmb3IgbXVsdGktbGluZSAocmVsb2NhdGFibGUpIG91dHB1dC4KICAgCjIwMDMtMDctMjcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC86IG1pYjJjIChWNS0wLXBhdGNoZXMuMiksIG1pYjJjOgoKICAgZml4IGZpbGVuYW1lIGluIGVycm9yIG1zZywgYXMgbm90ZWQgaW4gY29kZXJzCiAgIAoyMDAzLTA3LTI0IDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggb2lkbGVuZ3RoIGZ1bmN0aW9uCiAgIAoyMDAzLTA3LTI0IDE3OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgY3ZzIGlkIHRhZzsgYWRkIGNvbW1lbnQgZG9jdW1lbnRpbmcgbm9uaW5kZXg7IGluZGV4ZXMgbG9vcCB3aWxsIG5vdwogICBpbmNsdWRlIGluZGV4IGZvciB0YWJsZXMgdXNpbmcgYXVnbWVudHMKICAgCjIwMDMtMDctMjQgMTc6NTIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBhY2Nlc3MgdG8gdGhlIEFVR01FTlRTIGF0dHJpYnV0ZQogICAKMjAwMy0wNy0yMyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHdhcm5pbmcgZm9yIHVua25vd24gJHZhci50YWcgdGFncyB0byBjYXRjaCB0eXBvczsgd2F0Y2ggZm9yIHVubWF0Y2hlZAogICBAIGluIHNraXB2YXJzOyBkb24ndCBvcGVuIG5ldyBmaWxlIGl0IGl0J3MgYWxyZWFkeSBvcGVuOyBhZGQgZmxhZyB0bwogICBwcm9jZXNzX2ZpbGUgZm9yIHNhdmUvcmVzdG9yZSBvZiB2YXJzOyBmaXggcHJvY2VzcyBhZ2FpbiBzbyBpdCB3aWxsIGNhdGNoCiAgIHVubWF0Y2hlcyBAQDsgYWRkIG5ldyBAZm9yZWFjaCBub25pbmRleEAKICAgCjIwMDMtMDctMjIgMDk6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHplcm8gb3V0IHNlbnNpdGl2ZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIChjb21tdW5pdHkgc3RyaW5nLCB1c2VyIG5hbWUsCiAgICAgICBhdXRoZW50aWNhdGlvbiBwYXNzcGhyYXNlLCBwcml2YWN5IHBhc3NwaHJhc2UpLgogICAKICAgICAgIE5PVEU6IHRoaXMgZG9lcyBub3Qgd29yayBmb3IgYWxsIHBsYWZvcm1zIC0tIGNlcnRhaW5seSBpdCBkb2Vzbid0CiAgICAgICAgICAgICB3b3JrIGZvciBTb2xhcmlzLiAgQSBkaWZmZXJlbnQsIG1vcmUgZ3Jvc3MgbWV0aG9kIGlzIG5lZWRlZAogICAgICAgICAgICAgZm9yIHRoZXNlIHBsYXRmb3JtcyAoc2VlIHNlbmRtYWlsIGNvZGUgZm9yIGRldGFpbHMgLS0gIG5lZWQKICAgICAgICAgICAgIEkgc2F5IG1vcmU/KS4KICAgCjIwMDMtMDctMjIgMDg6NDUgIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEltcHJvdmVkIGRlc2NyaXB0aW9ucyBvZiB0aGUgdmFyaW91cyBzdWJjb21tYW5kcy4KICAgQmFzZWQgb24gbWF0ZXJpYWwgc3VwcGxpZWQgYnkgTmljayBEaVJpY28uCiAgIAoyMDAzLTA3LTIyIDA4OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgVmFyaW91cyBmaXhlcyB0byB0aGUgcmVjZW50IFRDUCB0YWJsZSByZWRlc2lnbiwgc3VwcGxpZWQgYnkgS2F0c3VoaXNhIEFCRS4KICAgKFNvbWUgb3RoZXJzIHN0aWxsIG91dHN0YW5kaW5nLCBhd2FpdGluZyBkaXNjdXNzaW9uLiAgQnV0IHRoZXNlIGFyZSBjbGVhcgogICBtaXN0YWtlcywgd2hpY2ggbmVlZCBmaXhpbmcpLgogICAKMjAwMy0wNy0yMiAwODowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgVXNlIHRoZSB0YWJsZSBpbmZvcm1hdGlvbiAnY29sbnVtJyBmaWVsZCB0byBpZGVudGlmeSB0aGUgcmVxdWVzdGVkIGNvbHVtbgogICBvYmplY3QocykgcmF0aGVyIHRoYW4gcHVsbGluZyBzdHVmZiBvdXQgb2YgdGhlIE9JRC4gIFN1Z2dlc3RlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMjIgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIE1ha2UgdGhlIGNyZWF0ZVZpZXcgbWFzayBwYXJhbWV0ZXIgb3B0aW9uYWwKICAgKGFzIHdpdGggdGhlICd2aWV3JyBjb25maWcgZGlyZWN0aXZlKQogICAKMjAwMy0wNy0yMiAwNzo1NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQ29ycmVjdCB0aGUgbGF5b3V0IG9mIHRoZSB1c2FnZSBtZXNzYWdlLgogICAKMjAwMy0wNy0yMiAwNzo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgVXNlIHRoZSBtb3JlIGZsZXhpYmxlIEFQSSBjYWxsIGZvciBoYW5kbGluZyB2aWV3IE9JRHMKICAgCjIwMDMtMDctMTkgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwgZGV0YWlscy1ub2RlLm0yaQosIGRldGFpbHMtdGFibGUubTJpOgoKICAgbWliMmMgaW5jbHVkZSBmaWxlcyB0byBnZW5lcmF0ZSBub2RlIGRldGFpbHMKICAgCjIwMDMtMDctMTkgMTA6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHRyYWNrIGN1cnJlbnQgbGluZSBhbmQgZmlsZSBuYW1lOyBuZXcgZmluZF9jb25mLCBwcm9jZXNzX2ZpbGUgc3ViczsgcmVtb3ZlCiAgIEBza2lwIE5AIGFiaWxpdHk7IHNraXAgQHRva2VuQCBzZWFyY2ggaWYgbGluZSBkb2Vzbid0IGJlZ2luIHdpdGggQDsKICAgYWRkIEBza2lwaWZALCBAYnJlYWtAOyBkb250IHJlcXVpcmUgc3BhY2VzIGZvciBAY2xvc2VAOyBhZGQgLWlmZXhpc3RzIHBhcmFtIHRvCiAgIEBpbmNsdWRlQDsgbmV3IEBpZmNvbmZAICsgcmV3b3JrIGNvZGUgdG8gbWFrZSBvdGhlciBAaWZYWFhAIHRva2VucyBlYXN5OyBtZXJnZQogICBlbHNlL2Vsc2lmIGluIHByb2Nlc3MgbG9vcAogICAKMjAwMy0wNy0xOCAxMzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHBhcnNpbmcgb2YgaW5pdGlhbCBkZWZhdWx0IGZpbGU7IGRlbGF5IHByb2Nlc3Npbmcgb2YgY21kIGxpbmUgdmFycyB0aWwKICAgYWZ0ZXIgcHJvY2Vzc2luZyBkZWZhdWx0IGZpbGU7IGFkZCBuZXcgJGMubmVlZHNsZW5ndGgsICRjLmhhc2RlZnZhbCwgJGMuZGVmdmFsLAogICAkYy5tb2R1bGUsICRjLmFjY2Vzc2libGUsICRjLmNoaWxkcmVuIChuZWVkcyB3b3JrKSwgJGMuaGFzaGludCwgJGMuaGludCwKICAgJGMucmFuZ2VzLCRjLmVudW1yYW5nZSAobmVlZHMgd29yaykgYW5kIHZhcmlvdXMgY29kZSB0byBzdXBwb3J0IHRoZW07IGFkZAogICBwYXJhbWV0ZXIgdG8gc2tpcCB0byBhbGxvdyBvbmUgdG8gYnJlYWsgb3V0IG9mIG11bHRpcGxlIGxldmVscyAobmVlZHMgd29yayk7CiAgIGFsbG93IHNwYWNlcyBhZnRlciBAY21kQCB0byBhbGxvdyBmb3IgYmV0dGVyIGNvbnRyb2wgb2YgaW5kZW50aW9uOyBtb3ZlIGZpbGUKICAgb3Blbi9jbG9zZSB0byBzdWJyb3V0aW5lczsgbmV3IEBhcHBlbmQgZmlsZUAsIEBjbG9zZSBmaWxlQCwgQGluY2x1ZGUgZmlsZUA7CiAgIGFsbG93IHdyaXRpbmcgdG8gbXVsdGlwbGUgZmlsZXMgYXQgb25jZTsgbmV3IEBwcmludCB0ZXh0QCAodG8gc3Rkb3V0KTsKICAgd2hldyEgbW9yZSB0byBjb21lLi4uCiAgIAoyMDAzLTA3LTE2IDAzOjI5ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTdXBwb3J0IHByb2Nlc3Npbmcgb2YgY29tcGlsZS1zdWJhZ2VudCBzdWItb3B0aW9ucyBpbiBhbnkgb3JkZXIKICAgCjIwMDMtMDctMTYgMDM6MjggIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEhhbmRsZSBjb21waWxlLXN1YmFnZW50IGNhbGxlZCB3aXRoIG5vIHBhcmFtZXRlcnMKICAgCjIwMDMtMDctMTYgMDM6MjQgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEZpeCBpbmNvbnNpc3RlbnQgdXNhZ2Ugd2l0aGluIGNvbXBpbGUtc3ViYWdlbnQKICAgCjIwMDMtMDctMTYgMDM6MjEgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEhhbmRsZSAtLWNyZWF0ZS1zbm1wdjMtdXNlciBjYWxsZWQgd2l0aCBubyBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA3LTE2IDAyOjA3ICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBDbGFyaWZ5IHRoZSByb2xlcyBvZiB0aGUgdmFyaW91cyBtYWlsaW5nIGxpc3RzLCBhbmQgd2hpY2ggb25lcyB0byB1c2UKICAgKG9yIG5vdCB1c2UpLiAgQWxzbyB1cGRhdGVkIHRoZSBwcm9qZWN0IHdlYiBwYWdlIGFsb25nIHRoZSBzYW1lIGxpbmVzLgogICAKMjAwMy0wNy0xNSAyMTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcmVuYW1lIGlzdGFibGUgdG8gaXNjb2x1bW47IGFkZCBlbnVtczsgYWRkIGN1cnJlbnR2YXI7IGZpeCBlbnVtIGR1bXAgdG8gd29yawogICBmb3Igc2NhbGFycwogICAKMjAwMy0wNy0xNSAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4IGEgdmFyYXJncyB0eXBlIHNwZWNpZmljYXRpb24uICBTcG90dGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0xNSAwNzozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgQXZvaWQgcmVmZXJlbmNpbmcgZnJlZWQgbWVtb3J5LiAgKFJlcG9ydGVkIGJ5IFN0ZXZlIEJlbm5ldHQpCiAgIAoyMDAzLTA3LTE1IDA3OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBSdW4gcGFzcy10aHJvdWdoIHNjcmlwdHMgaW4gdGhlIEFDVElPTiBwYXNzLCBub3QgQ09NTUlULCBzbyBhbnkgZXJyb3JzCiAgIGNhbiBiZSByZXBvcnRlZCBiYWNrIHByb3Blcmx5LgogICBBbHNvIHR3ZWFrIHRoZSBlcnJvci1jaGVja2luZyBjb2RlIHRvIHJlY29nbmlzZSB0aGUgZXJyb3Igc3RyaW5ncyBwcm9wZXJseS4KICAgCjIwMDMtMDctMTQgMTc6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWFjaCBjb25maWd1cmUuaW4KICAgCjIwMDMtMDctMTQgMTY6NTIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCBmcm9tIFN0ZXZlIEJlbm5ldHQgPHN0ZXZlYkBzbmFwZ2Vhci5jb20+IHRvIGFsbG93IG9uZSB0byBkaXNhYmxlCiAgIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgYW5kIHJlZHVjZSBhZ2VudCBzaXplLiBUd2Vha2VkIGJ5IG1lIGEgYml0LiBkaXNhYmxlCiAgIGFnZW50eCBpZiBjYWxsYmFja3MgZGlzYWJsZWQKICAgCiAgIHJlbW92ZSAodHJhbnNwb3J0fHNlY3VyaXR5KV9bbF1vYmpfbGlzdCwgYXMgW2xdb2JqIGxpc3RzIGFyZSBub3cgZ2VuZXJhdGVkCiAgIGZyb20gc3JjczsgcmVtb3ZlIEFnZW50WCBiZXRhIGNvZGUgd2FybmluZyBmcm9tIGhlbHAKICAgCjIwMDMtMDctMTQgMTY6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gU3RldmUgQmVubmV0dCA8c3RldmViQHNuYXBnZWFyLmNvbT4gdG8gYWxsb3cgb25lIHRvIGRpc2FibGUKICAgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCBhbmQgcmVkdWNlIGFnZW50IHNpemUuIFR3ZWFrZWQgYnkgbWUgYSBiaXQuIGRpc2FibGUKICAgYWdlbnR4IGlmIGNhbGxiYWNrcyBkaXNhYmxlZC4KICAgCjIwMDMtMDctMTMgMTE6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIGFkZCBwcmlvcml0eSB0byBjYWxsYmFjayBzbyB1c2VyIGNhbiBkZXRlcm1pbmUgY2FsbGJhY2sgb3JkZXIKICAgCjIwMDMtMDctMTMgMDk6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oOgoKICAgcmVzdG9yZSBpbnBjYiBzdHJ1Y3QgZm9yIGxpbnV4ICh1bnRpbCBpdCBzaG93cyB1cCBzb21ld2hlcmUgZWxzZSBpbiBjdnMpCiAgIAoyMDAzLTA3LTExIDA1OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcHZhY20uMS5kZWY6CgogICBGaXggZXJyb3JzIGluIHRoZSBleGFtcGxlcywgc3BvdHRlZCBieSBOaWNrIERpUmljbwogICAKMjAwMy0wNy0xMCAwNjoxMSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2UKOgoKICAgc3luYyB3L3BhdGNoZXMKICAgCjIwMDMtMDctMTAgMDU6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwLmMsIHRjcC5oLCB0Y3BUYWJsZS5jCiwgdGNwVGFibGUuaCwgdWRwLmMsIHVkcC5oLCB1ZHBUYWJsZS5jCiwgdWRwVGFibGUuaDoKCiAgIE5ldy1BUEkgaW1wbGVtZW50YXRpb24gb2YgVURQIGFuZCBUQ1AgdGFibGVzLCB1c2luZyBjYWNoZSBhbmQgaXRlcmF0b3IgaGVscGVycy4KICAgV29ya3Mgb24gTGludXggYW5kIEhQLVVYIDEwLCBjb21waWxlcyAoYnV0IHVudGVzdGVkKSBvbiBTb2xhcmlzICYgV2luZG93cy4KICAgCjIwMDMtMDctMTAgMDM6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5Lmg6CgogICBDb2xvbj8gc2VtaWNvbG9uPyAgV2hhdCdzIGEgcGl4ZWwgb3IgdHdvIGJldHdlZW4gZnJpZW5kcy4uLi4KICAgCjIwMDMtMDctMTAgMDI6MTIgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzJzZGsuZHN3LCBsaWJhZ2VudC9saWJhZ2VudC5kZWYsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgVmlzdWFsIEMrKyB0d2Vha3MsIHRvIGdldCBldmVyeXRoaW5nIHRvIGNvbXBpbGUgY2xlYW5seS4KICAgCjIwMDMtMDctMDkgMDg6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIE1pc3NpbmcgaGVhZGVyIHByb3RlY3Rpb24gY2hlY2tzCiAgIAoyMDAzLTA3LTA5IDA4OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBnZXRwd25hbSBvciBnZXRncm5hbQogICAKMjAwMy0wNy0wOSAwODowNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9ucyBvZiBzeXNsb2cgY29uc3RhbnRzIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuCiAgIAoyMDAzLTA3LTA5IDA4OjA1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGZvcndhcmQgZGVjbGFyYXRpb25zCiAgIAoyMDAzLTA3LTA5IDA1OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3VwcG9ydCBmb3IgdGhlIG9sZCAnLUwnIG9wdGlvbi4KICAgKEluY3JlZGlibHkgY2x1bmt5LCBidXQgbmVjZXNzYXJ5KQogICAKMjAwMy0wNy0wOSAwNToyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgU3VwcG9ydCBmb3IgInBlcnNpc3RlbnQgZW51bWVyYXRpb25zIi4KICAgCjIwMDMtMDctMDggMDY6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdWRwLmM6CgogICBJbXByb3ZlZCBkZWJ1Z2dpbmcgZm9yIG5ldyBzY2FsYXJfZ3JvdXAgaW1wbGVtZW50YXRpb25zLgogICAKMjAwMy0wNy0wNyAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBQYXRjaCBmcm9tIENodWNrIFllcmtlcyB0byBtYWtlIHRoZSBNVEEtTUlCIHdvcmsgd2l0aCBuZXdlciBzZW5kbWFpbCB2ZXJzaW9ucywgaW5jbHVkaW5nIEZGUl9RVUFSQU5USU5FIHN1cHBvcnQKICAgCjIwMDMtMDctMDcgMDY6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIEV4cG9ydCB0aGUgJ21ha2VfdGVtcGZpbGUnIHJvdXRpbmUuCiAgIAoyMDAzLTA3LTA2IDIwOjQxICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggdHlwb3MKICAgCjIwMDMtMDctMDQgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBhZGRlZCBzeXMvdHlwZXMKICAgCjIwMDMtMDctMDMgMjE6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZyZWUgY29udGFpbmVyIG9uIGZyZWU7IHNvcnQgYmVmb3JlIGZvcl9lYWNoIGV4ZWN1dGVzOyBhZGQgaW5pdCB0byByZWdpc3RlcgogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgbmV3IGNvbnRhaW5lcnMKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1cGRhdGUgQ09OVEFJTkVSX0ZSRUUgZm9yIG5ldyByZXF1aXJlbWVudCB0aGF0IGNvbnRhaW5lcnMgZnJlZSB0aGVtc2VsdmVzCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGFkZCBpbml0IGZvciBsaXN0X3NzbGwgYW5kIG51bGwgY29udGFpbmVyczsgYWRkIGFsaWFzZXMgZm9yIGxpc3QgYW5kCiAgIGJpbmFyeSBjb250YWluZXJzOyB1cGRhdGUgQ09OVEFJTkVSX0ZSRUUgZm9yIG5ldyByZXF1aXJlbWVudCB0aGF0CiAgIGNvbnRhaW5lcnMgZnJlZSB0aGVtc2VsdmVzCiAgIAoyMDAzLTA3LTAzIDIwOjUzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oOgoKICAgbmV3IGZpbGVzCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9saXN0X3NzbGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI1c25tcHYzZ2V0U0hBREVTCjoKCiAgIFVzZSBhIFNLSVBJRk5PVCBmb3IgcmVhbCB0b2tlbnMgKHR5cG8pLgogICAKMjAwMy0wNy0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBmaXggbmV3IHRlc3RzIGluIHZhcmlvdXMgd2F5cwogICAKMjAwMy0wNy0wMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZyZWUgdGhlIHJvb3QgcG9pbnRlci4KICAgCjIwMDMtMDctMDIgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmcmVlIHRoZSBlbmdpbmVpZCBhdCAqc2h1dGRvd24qIG5vdCAqc3RhcnR1cCo6LS8KICAgCjIwMDMtMDctMDIgMTQ6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBkb24ndCBjYWxsIHRoZSBjbGVhbnVwIHJvdXRpbmVzIGF0IHNodXRkb3duIHNpbmNlIHRoZXkncmUgZmlsbGVkIHdpdGgKICAgZG91YmxlIGZyZWVzKCkKICAgCjIwMDMtMDctMDIgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICByZXF1aXJlIG5lZWRzIGV4YW1wbGVzLyBwcmVmaXgKICAgCjIwMDMtMDctMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBVc2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgcmVjdXJzaXZlIGZ1bmN0aW9uLgogICAKMjAwMy0wNy0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IGVtcHR5IHJvd3MuCiAgIAoyMDAzLTA3LTAyIDEzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgZml4IGNvbnRhaW5lciBjb2RlIGZyb20gdGhlIGxhc3QgcGF0Y2gKICAgCjIwMDMtMDctMDIgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBQYXRjaDogNzU2Mjg2OiBBIGdsb2JhbCBmcmVlIC0+IFNOTVBfRlJFRSByZXBsYWNlbWVudAogICAKMjAwMy0wNy0wMiAxMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFBhdGNoICM3MjQ5MjUgZnJvbSBQZXRlciBXYXJhc2luIHRvIGZyZWUgbG90cyBvZiBtZW1vcnkgZm9yIGEgcmVhbGx5IGNsZWFuIHNodXRkb3duCiAgIAoyMDAzLTA3LTAyIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY1LTAtcGF0Y2hlcy4yKSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmaXggbmV0c25tcF9zdWJ0cmVlX3VubG9hZCgpIHRvIHVwZGF0ZSB0aGUgcm9vdCBwb2ludGVyCiAgIAoyMDAzLTA3LTAyIDEyOjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUxc29sYXJpc2hvc3RkaXNrCiwgVDE1Mmhvc3R1cHRpbWUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIFBhdGNoOiA3NTYyODY6IE5ldyBzb2xhcmlzIHNwZWNpZmljIEhSIHRlc3RzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMy0wNy0wMiAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBQYXRjaCAjNzYwNDQ4IGZyb20gQm9iIFJvd2xhbmRzL1N1biB0byBmaXggYnVnICM3NTE5MTMgdG8gcHJvdGVjdCBhIGZldyBtaW5vciBzZWN1cml0eSB2aW9sYXRpb25zCiAgIAoyMDAzLTA3LTAyIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zdHJsY3B5LmM6CgogICBQYXRjaCAjNzYwNDE3IGZyb20gQm9iIFJvd2xhbmRzL1N1biBmb3IgZml4aW5nIEJ1ZyAjNzUxOTIwIGZvciBtaW5vciBzZWN1cml0eSBwcm9ibGVtcyAoUElEIGZpbGUgdW5saWtlZCBmaXJzdCwgYW5kIHVzZSBzdHJsY3B5IGluc3RlYWQgb2Ygc3RyY3B5LiAgQSBuZXcgc3RybGNweSBmaWxlIHdhcyBkZWZpbmVkIGlmIG5vdCBkZWZpbmVkIGZvciBhIHN5c3RlbS4KICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3RybGNweS5jOgoKICAgZmlsZSBzdHJsY3B5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMiAxMDoyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9kZWJ1Zy5oIChWNS0wLXBhdGNoZXMuMSksCiAgIHNubXBfZGVidWcuaDoKCiAgIFBhdGNoICM3NjQwNDcgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBmcm9tIHNubXBfZGVidWcuaCBhbmQgZml4IGEgZmV3IGNvbW1lbnRzCiAgIAoyMDAzLTA3LTAyIDEwOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjUtMC1wYXRjaGVzLls3LDddKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNzU5MzA5IGZyb20gU3RlcGhlbiBGcmllZGwgdG8gYWRkIHByb21wdCBvdmVyLXJpZGUgZmxhZyBkZXNjcmlwdGlvbnMgdG8gcHJvbXB0IG91dHB1dAogICAKMjAwMy0wNy0wMiAxMDoxNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNzU5Mjk4OiBmaXggc3BlbGxpbmcgZXJyb3IKICAgCjIwMDMtMDctMDEgMDU6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jOgoKICAgUmVtb3ZlIHJlZHVuZGVudCBmaWxlLgogICAKMjAwMy0wNy0wMSAwMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGljbXAuaCwgaXAuYywKICAgaXAuaCwga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oLAogICBtaWJJSV9jb21tb24uaCwgdGNwLmMsIHRjcC5oLCB1ZHAuYywgdWRwLmgKOgoKICAgUmUtaW1wbGVtZW50IHRoZSBzY2FsYXIgbmV0d29yayBzdGF0aXN0aWNzIHVzaW5nIG5ldyBBUEkgZmVhdHVyZXMuCiAgIFRoaXMgc2VydmVzIGFzIGFuIGV4YW1wbGUgb2YgdGhlICdzY2FsYXJfZ3JvdXAnIGFuZCAnY2FjaGVfaGFuZGxlcicKICAgaGVscGVycywgYXMgd2VsbCBhcyAoaG9wZWZ1bGx5KSBzaW1wbGlmeWluZyB0aGUgY29kZSBzb21ld2hhdC4KICAgCjIwMDMtMDctMDEgMDI6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyX2dyb3VwLmM6CgogICBNaW5vciB0d2Vha3MgdG8gaGFuZGxlIHdhbGtpbmcgZnJvbSBvbmUgc2NhbGFyIHRvIGFub3RoZXIgY29ycmVjdGx5LAogICBhbmQgZGVhbCB3aXRoIGludGVybmFsIG1pc3Npbmcgb2JqZWN0cyB3aXRoaW4gYSBzY2FsYXIgZ3JvdXAuCiAgIAoyMDAzLTA2LTMwIDIyOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIHVwZGF0ZSBmb3Igcm93IGRlbGV0aW9uCiAgIAoyMDAzLTA2LTMwIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIHVwZGF0ZSB0byBzdXBwb3J0IHJvdyBjcmVhdGlvbi4gIERlbGV0aW9uIHN1cHBvcnQgc3RpbGwgY29taW5nLCBhcyBpcwogICBhIHNlcGFyYXRlIGhhbmRsZXIuCiAgIAoyMDAzLTA2LTMwIDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgbW9yZSAibm90IHNlcmlhbGl6ZWQiIGNvZGUuCiAgIAoyMDAzLTA2LTMwIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IG5ldFNubXBIb3N0c1RhYmxlLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlLmgsIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaDoKCiAgIFVwZGF0ZWQgZm9yIHJvdyBjcmVhdGlvbi4KICAgCjIwMDMtMDYtMzAgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIHBhdGNoIGZyb20gRm9uZyBUc3VpIGZvciBmaXhpbmcgTlVMTCByZWZlcmVuY2VzCiAgIAoyMDAzLTA2LTMwIDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gbWFrZSB0aGUgZGVmYXVsdCBhZ2VudHggcGluZyBpbnRlcnZhbCBiZSAxNSBzZWNvbmRzLgogICAKMjAwMy0wNi0zMCAwOToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIE1ha2Ugc3VyZSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGUgbmV3IGFwcHJvYWNoIHRvIHN1Yi1jb21tYW5kCiAgIGludm9jYXRpb24gYXJlIHByb3Blcmx5IGFja25vd2xlZGdlZC4KICAgCjIwMDMtMDYtMzAgMDc6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENoZWNrIGZvciB2YWxpZGl0eSBvZiBwYXJhbWV0ZXJzIGJlZm9yZSB1c2luZyB0aGVtLiAgKFBhcmFub2lkPyBXaG8sIG1lPykKICAgCjIwMDMtMDYtMzAgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENhY2hpbmcgb2YgaW50ZXJmYWNlIGRhdGEgaXMgYWN0dWFsbHkgTGludXgtc3BlY2lmaWMuCiAgIAoyMDAzLTA2LTMwIDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIHJlY2VudCBoZWxwZXIgbW9kdWxlcyBpbiB0aGUgaGVscGVyIGxpYnJhcnkgYW5kIG1ldGEtaW5jbHVkZSBmaWxlLgogICAKMjAwMy0wNi0yNyAwNDo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFNpbXBsaWZ5IHRoZSBwcm9jZXNzaW5nIG9mICJ0cmFwaGFuZGxlIiBkaXJlY3RpdmVzCiAgICh1c2luZyB0aGUgbmV3IGdlbmVyaWMgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMsCiAgIGFuZCB0aGUgaW1wcm92ZWQgdmFybGlzdCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24pCiAgIAoyMDAzLTA2LTI3IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBVc2UgdGhlIG5ldyBnZW5lcmljIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzIGluc3RlYWQKICAgb2YgdGhlIGV4dGVuc2libGUtc3BlY2lmaWMgb25lcy4KICAgCjIwMDMtMDYtMjcgMDQ6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEluY2x1ZGUgYSBnZW5lcmFsICdtYWdpYycgcGFyYW1ldGVyIGluIGJvdGggY2FjaGUgZGF0YSBzdHJ1Y3R1cmUKICAgYW5kIGNhY2hlIGxvYWRpbmcgcm91dGluZS4gICBKdXN0IEluIENhc2UgSXQgTWlnaHQgQ29tZSBJbiBVc2VmdWwuCiAgIEhhcHB5LCBXZXM/CiAgIAoyMDAzLTA2LTI3IDA0OjA5ICBkdHMxMgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICBtaWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgR2VuZXJhbGlzZWQgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMuCiAgIChUaGUgY3VycmVudCAnZXhlY19jb21tYW5kJyBhbmQgJ3NoZWxsX2NvbW1hbmQnIHJvdXRpbmVzIGFyZSB2ZXJ5IHNwZWNpZmljCiAgICB0byB0aGUgZGV0YWlscyBvZiB0aGUgJ3N0cnVjdCBleHRlbnNpYmxlJyBkYXRhIHN0cnVjdHVyZSkuCiAgIFRoZXNlIHJvdXRpbmVzIGNhbiBiZSB1c2VkIG1vcmUgd2lkZWx5LCB3aGVyZXZlciBhIHN1Yi1wcm9jZXNzIGlzIG5lZWRlZC4KICAgCiAgIFF1ZXN0aW9uczoKICAgICBhKSAgU2hvdWxkIHRoZXNlIHV0aWxpc2UgdGhlICJyZWFsbG9jIiBtZWNoYW5pc20sIHJhdGhlciB0aGFuCiAgICAgICAgIGVuZm9yY2UgYSBmaXhlZCBzaXplIG91dHB1dCBidWZmZXI/CiAgICAgYikgIERvIHRoZXkgYmVsb25nIGluIHRoZSBtYWluIGxpYnJhcnkgKG9yIHBvc3NpYmx5IHRoZSBhZ2VudCBsaWJyYXJ5KQogICAgICAgICByYXRoZXIgdGhhbiBhIG1pYmdyb3VwPwogICAKMjAwMy0wNi0yNyAwMTo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBNb3JlIGZsZXhpYmxlIGhhbmRsaW5nIG9mIGZvcm1hdHRpbmcgdmFyYmluZCBsaXN0cy4KICAgIiVWIiBjb25maWd1cmVzIHRoZSB2YXJiaW5kIHNlcGFyYXRvciBjaGFyYWN0ZXIgKGFsdF9mb3JtYXQgPT4gYWRkZWQgc3BhY2UpCiAgICIldiIgdXNlcyB0aGlzIHNlcGFyYXRvciAoYWx0X2Zvcm1hdCA9PiBzZXBhcmF0b3IgYWxzbyBwcmludGVkIGJlZm9yZSB0aGUgbGlzdCkKICAgRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGVhcmxpZXIgJ1x0JyBvciAiLCAiIGlmIG5vIHNlcGFyYXRvciBpcyBzcGVjaWZpZWQuCiAgIAoyMDAzLTA2LTI2IDAyOjI3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIFVzZSB0aGUgbmV3IGZlYXR1cmVzIG9mIG1pYjJjIHRvIHRpZHkgdXAgdGhlIG91dHB1dCBhIGJpdC4KICAgCjIwMDMtMDYtMjYgMDI6MjYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRXh0ZW5kIG1pYjJjJ3MgbmV3IGNvdW50ZXIgcm91dGluZXMgdG8gY292ZXIgInN1Ymxvb3BzIiBhcyB3ZWxsCiAgIChpLmUuIHRoZSBudW1iZXIgb2YgY29sdW1ucy9pbmRleGVzIGluIGEgcGFydGljdWxhciB0YWJsZSwKICAgIGFuZCB0aGUgbnVtYmVyIG9mIG9iamVjdHMgdG8gYmUgaW5jbHVkZWQgd2l0aCBhIGdpdmVuIG5vdGlmaWNhdGlvbikKICAgCjIwMDMtMDYtMjUgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIHByb21wdCBzdXBwb3J0IGZvciBtaWIyYyB0byBhc2sgcXVlc3Rpb25zIHRvIHRoZSB1c2VyLgogICAtIEEgbmV3IHRvcC1sZXZlbCB3cmFwcGVyIGFyb3VuZCBhbGwgdGhlIG90aGVyIG1pYjJjIGZpbGVzIHRoYXQgd2Fsa3MKICAgICB5b3UgdGhyb3VnaCBzZWxlY3RpbmcgdGhlIHJpZ2h0IG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZSB5b3Ugd2lzaCB0bwogICAgIHVzZSBhbmQgdGhlbiBzb3VyY2VzIGl0IGZvciB5b3UuCiAgICAgLSB0b2RvOiBnZW5lcmF0ZSB1bmlxdWUgZmlsZSBuYW1lcyBpZiBib3RoIHNjYWxhciBhbmQgdGFibGUgY3JlYXRpb24KICAgICAgIGlzIGRvbmUsIGVnLgogICAKMjAwMy0wNi0yNSAyMzoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIGJveSBpcyB0aGF0IG5vdCBuZWVkZWQgYW55IG1vcmUKICAgCjIwMDMtMDYtMjUgMTQ6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRGF2ZSBhc2tzLCBkYXZlIGdldHM6CiAgICAgLSBuZXcgZnVuY3Rpb25zIHJldHVybmluZyAxIG9yIDI6ICAkdmFyLmlzc2NhbGFyLCAkdmFyLmlzY29sdW1uCiAgICAgLSAkdmFyLnBhcmVudCByZXR1cm5zIHRoZSBwYXJlbnQgbGFiZWwgc3RyaW5nIG9mIHRoZSBub2RlLgogICAKMjAwMy0wNi0yNSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCByZXF1ZXN0IC0+IHJlcXVlc3RzIGFzIHBvaW50ZWQgb3V0IGJ5IFN0ZXZlIEJlbmV0dAogICAKMjAwMy0wNi0yNSAwNzozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBTdGFtcCBvbiBhIHRyYWlsaW5nICcuJyB3aGVuIHNwZWNpZnlpbmcgVkFDTSBPSURzLgogICAKMjAwMy0wNi0yNSAwNzozMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENhbGxzIHRvIHJlbGVhc2UgZW51bWVyYXRpb24gbGlzdHMgd2hlbiBubyBsb25nZXIgcmVxdWlyZWQuCiAgIE5vcm1hbGx5IHRoaXMgd291bGQgYmUgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYW4gYXBwbGljYXRpb24KICAgZXhpc3RzLCBidXQgaXQgbWlnaHQgYmUgdXNlZnVsIHRvIHJlbGVhc2UgcmVzb3VyY2VzIGVhcmxpZXIuCiAgIAoyMDAzLTA2LTI1IDA3OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlICdkbG1vZC5oJyBoZWFkZXIgZmlsZQogICAKMjAwMy0wNi0yNCAwNjoyMCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMubm90aWZ5LmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIGNvZGUgdG8gc2VuZCBvdXQgdHJhcHMgYW5kIGluZm9ybXMuCiAgIFRoaXMgc3RpbGwgZG9lc24ndCBhZGRyZXNzICp3aGVuKiBzdWNoIG5vdGlmaWNhdGlvbnMgc2hvdWxkCiAgIGJlIGdlbmVyYXRlZCwgYnV0IGl0IGF0IGxlYXN0IGhlbHBzIHdpdGggZG9pbmcgc28uCiAgIAoyMDAzLTA2LTIzIDIyOjMwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlbW92ZSB0b28gbXVjaCBtZW1kdXAnaW5nIGluIGluZm9ybSByZXBseQogICAKMjAwMy0wNi0yMyAxNDozMyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBBUFMtTUlCIGFuZCBNQUxMT0MtTUlCCiAgIAoyMDAzLTA2LTIzIDE0OjMxICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAzLTA2LTIzIDE0OjMwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZSBub3cgdW51c2VkIHNubXBfY2xvbmVfcGR1MgogICAKMjAwMy0wNi0yMyAxMjozNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBpbmNsdWRlIHdhaXQuaCBmb3Igd2FpdHBpZCwgYW5kIHJlLWluc3RhdGUgdGhlIGNvZGUgdGhhdCByZXNwb25kcyB0byBhbiBpbmZvcm0KICAgCjIwMDMtMDYtMjMgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgKOgoKICAgVXRpbGl0eSByb3V0aW5lIHRvIGNvbnZlcnQgdjEgdHJhcHMgdG8gdjItbm90aWZpY2F0aW9uLXN0eWxlIHZhcmJpbmQgbGlzdC4KICAgCjIwMDMtMDYtMjMgMDY6MzUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDb25zdHJ1Y3QgYSBsaWJyYXJ5IGNvbnRhaW5pbmcgdGhlIGNvcmUgdHJhcGQgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4KICAgCjIwMDMtMDYtMjMgMDY6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIFRoZSBzeXNPUlRhYmxlIG1vZHVsZSBpcyBkZXBlbmRlbnQgb24gc3lzdGVtX21pYiwgc28gZW5zdXJlIHRoaXMgaXMgYXZhaWxhYmxlLgogICAKMjAwMy0wNi0yMyAwNjoxMyAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBDb25zb2xpZGF0ZSB0aGUgbm90aWZpY2F0aW9uIGhhbmRsZXIgaW4gd2l0aCB0aGUgcmVzdCBvZiB0aGUKICAgTk9USUZJQ0FUSU9OLU1JQiByZWxhdGVkIGNvZGUuCiAgIAoyMDAzLTA2LTIzIDA2OjAxICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIFNodWZmbGUgY29kZSBhcm91bmQgYSBiaXQuICBUaGUgdGhyZWUgZmlsZXMgJ3NubXB0cmFwZF9oYW5kbGVycy5jJywKICAgJ3NubXB0cmFwZF9sb2cuYycgYW5kICdub3RpZmljYXRpb24uYycgbm93IGNvbnRhaW4gYWxsIHRoZSBjb2RlCiAgIG5lZWRlZCB0byBwcm9jZXNzIGFuIGluY29taW5nIHRyYXAuCiAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBlbWJlZCB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aGluIGFuIGxhcmdlcgogICBhcHBsaWNhdGlvbiwgcmF0aGVyIHRoYW4gaGF2aW5nIHRvIHVzZSB0aGUgJ3NubXB0cmFwZC5jJyB3cmFwcGVyLgogICAKMjAwMy0wNi0yMiAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSAqLmMgYW5kICouaCBmaWxlcy4KICAgCjIwMDMtMDYtMjIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogbmV0U25tcEhvc3RzVGFibGUuYywKICAgbmV0U25tcEhvc3RzVGFibGUuaCwgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jCiwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaCwKICAgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywKICAgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwKICAgbmV0U25tcEhvc3RzVGFibGVfY29sdW1ucy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9lbnVtcy5oOgoKICAgLSBBIG5ldFNubXBIb3N0c1RhYmxlIGltcGxlbWVudGF0aW9uIHRoYXQgaW1wbGVtZW50cyBhIHRhYmxlX2l0ZXJhdG9yCiAgICAgd3JhcHBlciBhcm91bmQgL2V0Yy9ob3N0cy4gIE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGlzIHRoZSBmaXJzdCBjaGVjawogICAgIGluLCBpdCBpcyBub3QgZW50aXJlbHkgY29tcGxldGUgeWV0LiAgU3BlY2lmaWNhbGx5OgogICAgIC0gSXQgZG9lc24ndCBzdXBwb3J0IHJvdyBjcmVhdGlvbiB5ZXQgKG15IG5leHQgdGFyZ2V0KSBhbmQgZGVsZXRpb24geWV0LgogICAgIC0gSXQgaW1wbGVtZW50cyBhIGJ1bmNoIG9mIHN0dWZmIGl0c2VsZiBpbiBuZXRTbm1wSG9zdHNUYWJsZS5jIHRoYXQKICAgICAgIHdpbGwgZXZlbnR1YWxseSBnbyBpbnRvIGEgbW9yZSBnZW5lcmljIGhlbHBlci4KICAgICAtIEl0IGRvZXNuJ3Qgc3VwcG9ydCBhbnl0aGluZyBidXQgaXB2NCB5ZXQgYnV0IGRvZXNuJ3QgaWdub3JlIGl0IGluCiAgICAgICB0aGUgaG9zdHMgZmlsZSAoaW5ldF9hdG9uIHJldHVybnMgYSAtMSB0aHVzIGFsbCBpcHY2IGFkZHJlc3MgZ2V0CiAgICAgICBtYXBwZWQgdG8gMjU1LjI1NS4yNTUuMjU1KS4KICAgLSBJdCBpcyBzdGlsbCB1c2VmdWwganVzdCB0byBzaG93IGhvdyBTRVQgb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkCiAgICAgdXNpbmcgYSB0YWJsZV9pdGVyYXRvci4KICAgLSBQbHVzIEkgbmVlZGVkIHRvIGNoZWNrIGl0IGluIGJlZm9yZSBJIHN0YXJ0IG1lc3Npbmcgd2l0aCBpdCBhZ2FpbgogICAgIGp1c3QgZm9yIGFyY2hpdmFsIHB1cnBvc2VzLgogICAKMjAwMy0wNi0yMiAxNjoxNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQ3JlYXRlIGFuIGV4YW1wbGUgdGFibGUgdGhhdCBpcyBhIHdyYXBwZXIgYXJvdW5kIC9ldGMvaG9zdHMgZGF0YS4KICAgCjIwMDMtMDYtMjIgMTI6NTMgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSU5GTyBpcyBub3QgYSBmYWNpbGl0eSAtIFVTRVIgY291bGQgYmUKICAgCjIwMDMtMDYtMjIgMTI6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQWRkIHRoZSBuZXcgLUwgb3B0aW9uIHRvIHRoZSB1c2FnZSBtZXNzYWdlCiAgIAoyMDAzLTA2LTIyIDEyOjQ5ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIEFkZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcywgYW5kIHVzZSB0aGVtCiAgIAoyMDAzLTA2LTIyIDEyOjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIERvIGF3YXkgd2l0aCBzb21lIHdhcm5pbmdzCiAgIAoyMDAzLTA2LTIyIDEyOjQ0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgY29uc3RpZnkgYSBmZXcgYXJndW1lbnRzLCBtYWtlIHN1cmUgdGhhdCB3ZSBkZWZhbHQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMy0wNi0yMiAxMjo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIERvIGF3YXkgd2l0aCBzb21lIHdhcm5pbmdzCiAgIAoyMDAzLTA2LTIyIDEyOjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBVbnRhbmdsZSBhIG1vc3QgZXh0cm9yZGluYXJ5IHdlYiBvZyBGcmVlQlNEIGFuZCBMaW51eAogICAKMjAwMy0wNi0yMiAwNzoyMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IGhlbHAgdXNhZ2UgZm9yIGZsYWcgb3JkZXJpbmcuCiAgIAoyMDAzLTA2LTIyIDA3OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gYWRkIC1zIFNVRkZJWCBhbmQgLVMgUFJFRklYIGZsYWdzCiAgIC0gZG94eWdlbiBkb2N1bWVudCBzbm1wX3BhcnNlX29pZAogICAtIEFkZCBhIHByb3BlciBMOiB0b2tlbiB0byBnZXRvcHQgZm9yIGEgbWlzc2luZyBhY2NlcHRlZCBmbGFnCiAgIAoyMDAzLTA2LTIwIDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggdGhlIGxvb3AgZnJlZSBiZWZvcmUgY2FsbC1zdWItaG9vayBvcmRlcmluZyBwcm9ibGVtIERhdmUgcG9pbnRlZCBvdXQKICAgCjIwMDMtMDYtMjAgMTE6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgU3VwcG9ydCB0aGUgb3B0aW9uIGZvciBzb3J0ZWQgaXRlcmF0b3ItYmFzZWQgdGFibGVzLCB0b28uCiAgIAoyMDAzLTA2LTIwIDExOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBTdG9wIHNlYXJjaGluZyBvbmNlIHdlJ3ZlIGZvdW5kIGFsbCAiZXhhY3QiIHJlcXVlc3RlZCByb3dzLgogICAKMjAwMy0wNi0xOSAwMTo1NCAgZHRzMTIKCiAgICogbWFuLzogc25tcHNldC4xLmRlZiwgc25tcHRyYXAuMS5kZWY6CgogICBDbGFyaWZ5IHRoZSBBU04uMSB0eXBlIG1hcHBpbmdzIGZvciBjb21tYW5kLWxpbmUgdHlwZSBzcGVjaWZpY2F0aW9ucy4KICAgCjIwMDMtMDYtMTcgMDU6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTdGFydCB1c2luZyB0aGUgbmV3IC1MeCBzdHlsZSBsb2dnaW5nIG91dHB1dC4KICAgVW5mb3J0dW5hdGVseSwgdGhpcyBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCB0aGUgb2xkIC1MIGZvcm1hdAogICAoc2VlIGNvbW1lbnRzIGluIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgZm9yIGRldGFpbHMpLgogICAKICAgSXQgbWF5IHByb3ZlIG5lY2Vzc2FyeSB0byByZXZlcnNlIHRoaXMgcGF0Y2g6LSgKICAgQnV0IEknbSBjb21taXR0aW5nIGl0IGFueXdheSwgaW4gY2FzZSBhbnlvbmUgY2FuIHNwb3QgYSBzdWl0YWJsZSB3b3JrYXJvdW5kLgogICAKMjAwMy0wNi0xNyAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE1pbm9yIHR3ZWFrIHRvIHN0ZG91dC9zdGRlcnIgaGFuZGxpbmcsIHRvIGltcHJvdmUgdGhlIGFwcGVhcmFuY2Ugb2YKICAgTUlCIGdyb3VwIG91dHB1dC4KICAgCjIwMDMtMDYtMTcgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKOgoKICAgTUlCIGdyb3VwIHRvIG1hbmFnZSBhZ2VudCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIAoyMDAzLTA2LTE2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMgKFY1LTAtcGF0Y2hlcy40KSwgUlVOVEVTVFM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBjb21tZW50IGFib3V0IGl0IGJlaW5nIGJyb2tlbiwgYXMgcG9pbnRlZCBvdXQKICAgYnkgQnJ1Y2UuCiAgIAoyMDAzLTA2LTE2IDE0OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMgKFY1LTAtcGF0Y2hlcy4zKSwgUlVOVEVTVFM6CgogICBzdXBwb3J0ICwgc2VwYXJhdGVkIGFyZ3VtZW50cyB0byAtVCBsaWtlIC1oIHNheXMgaXQgd2lsbC4KICAgCjIwMDMtMDYtMTYgMTQ6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBQYXRjaCBmcm9tIEJydWNlIFNoYXcgdG8gZml4IG91dHB1dCBudW1iZXJpbmcgd2hlbiB1c2luZyAtVCBvcgogICBpbnRlcmFjdGl2ZWx5IHBpY2tlZCBzdWItc2VyaWVzIG9mIHRlc3RzLgogICAKMjAwMy0wNi0xNiAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY1LTAtcGF0Y2hlcy4yKSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc1NTU0MCBmcm9tIEJydWNlIFNoYXcgYW5kIElSQzpTZWJOb2IgdG8gZml4IGJ1ZyAjNzAxNDM5IGZvciA2NCBiaXQgc29sYXJpcyBzeXN0ZW1zIGFuZCA2NCBiaXQgaW50ZWdlcnMgcmV0dXJuZWQgYnkgZ2V0S3N0YXQKICAgCjIwMDMtMDYtMTYgMTM6MTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAKOgoKICAgUGF0Y2ggIzc1NDEwNSBmcm9tIEJydWNlIFNoYXcgdG8gZml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzCiAgIAoyMDAzLTA2LTE2IDA3OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgeWV0IG1vcmUgaW1wcm92ZW1lbnRzIHdvcmtpbmcgdG93YXJkIHRoZSBlbmQtZ29hbC4KICAgCjIwMDMtMDYtMTYgMDc6MTcgIGhhcmRha2VyCgogICAqIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQsIFJFQURNRS5NYXRzdXNoaXRhLnR4dDoKCiAgIHJlbmFtZWQgdG8gUGFuYXNvbmljX0FNM1ggYnkgcmVxdWVzdAogICAKMjAwMy0wNi0xMyAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgT2ssIHRoZXJlIHdhcyAxIG1lbW9yeSBsZWFrLiAgQnV0IGl0cyBnb25lIG5vdy4KICAgCjIwMDMtMDYtMTMgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEEgY29tcGxldGUgcmV3cml0ZSBvZiB0aGUgaXRlcmF0b3IgZnJvbSBzY3JhdGNoLgogICAgIC0gNjAgbGluZXMgb3Igc28gbGVzcyBjb2RlLgogICAgIC0gbm8gbG9uZ2VyIGZvcmNlZC1zZXJpYWxpemVkCiAgICAgLSBtZW1vcnktbGVhayBmcmVlCiAgICAgLSBiZXR0ZXIgY29tbWVudGVkICh0aG91Z2ggbW9yZSBjb3VsZCBhbHdheXMgYmUgdXNlZnVsKS4KICAgICAtIHNpZ25pZmljYW50bHkgc2ltcGxlciBpbiBkZXNpZ24uCiAgICAgLSBkZW1vbnN0cmF0aW9uIGV4YW1wbGUgbWliIG1vZHVsZSBjb2RlIHRvIGJlIGNoZWNrZWQgaW4gZWFybHkgbmV4dCB3ZWVrLgogICAKMjAwMy0wNi0xMyAxMToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBmaXggcmFuZ2UgY2hlY2tzIG5vdyB0aGF0IGl0cyBubyBsb25nZXIgdGhlIGxhc3QgdGhpbmcgY2FsbGVkLgogICAKMjAwMy0wNi0xMyAxMToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgbWlzYyBtaW5vciBmaXhlcy4KICAgCjIwMDMtMDYtMTMgMTE6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGVsc2UgY2xhdXNlcyB3aXRoaW4gaWYgc3RhdGVtZW50cy4KICAgCjIwMDMtMDYtMTMgMDg6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYWRpbmcgcHJvY2VzcyBpbmZvcm1hdGlvbiBvbiBTb2xhcmlzIGtpdCwgY29uc2lzdGVudGx5IGFuZCBjbGVhbmx5LgogICAKMjAwMy0wNi0xMyAwNjoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wbGVtZW50ICctTHgnIGNvbW1hbmQtbGluZSBtZXRhLW9wdGlvbiBmb3IgY29uZmlndXJpbmcgbG9nZ2luZyBzZXR0aW5ncy4KICAgTm90IDEwMCUgY29udmluY2VkIHRoaXMgaXMgZnVsbHkgd29ya2luZywgYnV0IGRvZXMgc2VlbSB0byBzdXBwb3J0CiAgIG11bHRpcGxlIG91dHB1dCBsb2NhdGlvbnMuCiAgIAoyMDAzLTA2LTEwIDE1OjQ4ICBuYmEKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy43KSwgc25tcF9hcGkuYzoKCiAgIEJld2FyZSBvZiBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAzLTA2LTEwIDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYWRkIGNhY2hpbmcgaGFuZGxlciBmaWxlCiAgIAoyMDAzLTA2LTEwIDA4OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbml0aWFsIGJhc2ggYXQgYSBtb2R1bGFyICJsb2dfaGFuZGxlciIgaW1wbGVtZW50YXRpb24uCiAgIExheWluZyB0aGUgZm91bmRhdGlvbnMgZm9yIG1vcmUgZmxleGlibGUgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICAKMjAwMy0wNi0xMCAwODozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSB1bnVzZWQgZnVuY3Rpb24gYXMgcG9pbnRlZCBvdXQgYnkgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA2LTA5IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYwogICAoVjUtMC1wYXRjaGVzLlsxLDMsMSwxXSksIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgTG9uZyBvdmVyZHVlIHBhdGNoICM2OTUxOTIgZnJvbSBSb24gVGFib3IgdG8gZml4IHRoZSBWQUNNIHNwaW5uaW5nIHByb2JsZW0gdGhhdCBJIGRpZG4ndCBxdWl0ZSBmaXggYmVmb3JlCiAgIAoyMDAzLTA2LTA5IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCBjb25maWd1cmU6CgogICBmaXggYnVnICM3MDY3MTAgdG8gc2hvdyB3aGVuIHByaXZhY3kgaGFzIGJlZW4gZGlzYWJsZWQKICAgCjIwMDMtMDYtMDkgMTU6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBmaXggYnVnICM3MDY3NDEgZnJvbSBTZWFuIEJ1cmtlOiBjaGVjayBmb3Igd29yZCBib3VuZGFyaWVzIGJhc2VkIG9uIGEKICAgcHJvcGVyIHNpemUgKHNpemVvZihsb25nKSkuCiAgIAoyMDAzLTA2LTA5IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGJ1ZyAjNzQ4NDMxIGZyb20gSm9obiBTaGl2ZXI6IGZpeCB0aHJlYWQtc2FmZSBwcm9ibGVtcyB3aXRoIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uICh3aGljaCB3YXMgbWlzc2luZyBpbiB0aGUgNS54IGxpbmUgYW55d2F5KS4gIEFsc28gc2VwYXJhdGUgb3V0IHVuaW9uIHN0cnVjdHVyZSBpbnRvIGEgc2VwYXJhdGUgdHlwZWRlZiByYXRoZXIgdGhhbiB1c2UgaXQgaW5saW5lIGluIHRoZSB2YXJpYWJsZSBsaXN0IHN0cnVjdHVyZQogICAKMjAwMy0wNi0wOSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBidWcgIyA3NTExOTcgcG9pbnRlZCBvdXQgYnkgVG9tIEV2YW5zIHdoZXJlIGlzc3BhY2UgaXMgdXNlZCB0byBjaGVjayBmb3IgaGV4IGNoYXJhY3RlcnMgd2hlbiBpc3ByaW50KCkgaXMgYWxsIHRoYXQgaXMgbmVlZGVkCiAgIAoyMDAzLTA2LTA5IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsIGFjY29uZmlnLmgsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM3NDk1NTIgZnJvbSB2YXhwb3dlciAod2l0aCBtb2RpZmljYXRpb25zIGJ5IFdlcyk6IG11Y2ggaW1wcm92ZWQgQUlYIHN1cHBvcnQKICAgCjIwMDMtMDYtMDkgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5NYXRzdXNoaXRhLnR4dCAoVjUtMC1wYXRjaGVzLjEpLCBSRUFETUUuTWF0c3VzaGl0YS50eHQKOgoKICAgUGF0Y2ggIzc0ODMwNSBmcm9tIHNyaW5pdmFzYSByYW8gZ3VydXN1IGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIG5ldC1zbm1wIG9uIE1hdHN1c2hpdGEgZW1iZWRkZWQgc3lzdGVtcwogICAKMjAwMy0wNi0wOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjUtMC1wYXRjaGVzLjMpLCBpcEFkZHIuYzoKCiAgIFBhdGNoIDc0NjMzOTogT3R0byBTb2xhcmVzIGZpeGVzIGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gbGludXgKICAgCjIwMDMtMDYtMDkgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NDkwNjIgdG8gZml4IGNhY2hpbmcgY3Jhc2hpbmcgYW5kIGNsYXNoaW5nIHVuZGVyIFNvbGFyaXMKICAgCjIwMDMtMDYtMDkgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYyAoVjUtMC1wYXRjaGVzLjIpLCBwcm94eS5jCjoKCiAgIHBhdGNoICM3NDkxMDMgZnJvbSBHYXJyeSBDIE1hcnNoYWxsIHRvIGZpeCB0aGUgcHJveHkgd2hlbiBhIHRpbWVvdXQgb2NjdXJzIGZyb20gdGhlIHRhcmdldAogICAKMjAwMy0wNi0wOSAwNDowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0CjoKCiAgIE1JQiBvYmplY3RzIHRvIG1hbmFnZSBjb25maWd1cmF0aW9uIG9mIE1JQiBkYXRhIGNhY2hpbmcuCiAgIAoyMDAzLTA2LTA5IDAzOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0Ciwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBSZXdvcmsgbnNEZWJ1Z1Rva2VuVGFibGUgdG8gYmUgaW5kZXhlZCBieSB0aGUgZGVidWcgdG9rZW4gc3RyaW5nIHZhbHVlcy4KICAgCjIwMDMtMDYtMDYgMDg6NDUgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgSW1wbGVtZW50IHZhcmlvdXMgc2VwYXJhdGUgbGlzdHMgb2YgImdsb2JhbCIgaGFuZGxlcnMsIHRvIHN1cHBvcnQKICAgcHJlLSBhbmQgcG9zdC1zcGVjaWZpYyBnbG9iYWwgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyAiYXV0aGVudGljYXRpb24iCiAgIGhhbmRsZXJzLCB3aGljaCBhcmUgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgZmlyc3QuCiAgIEFsc28gc3VwcG9ydCBmb3IgdGVybWluYXRpbmcgdHJhcCBwcm9jZXNzaW5nIGVhcmx5LgogICAKICAgRG9uJ3QgbGV0IG1lIGhlYXIgeW91IHNheSB0aGF0IEkgbmV2ZXIgbGlzdGVuIHRvIHlvdSwgV2VzIQogICAKMjAwMy0wNi0wNiAwNjo0MiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggbWlzc2luZyBsZW5ndGggYnl0ZSB3aGVuIHNldHRpbmcgaW5kZXggd2l0aCBjaGVja3MgZGlzYWJsZWQKICAgCjIwMDMtMDYtMDYgMDE6MzIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwo6CgogICBDbGFyaWZ5IHdoaWNoICJyW293XXt1c2VyLGNvbW11bml0eX0iIHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsLCBhbmQgIGluIHdoaWNoIGNvbWJpbmF0aW9ucy4KICAgCjIwMDMtMDYtMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEZpcnN0IHBhc3MgYXQgYSBkYXRhLWNhY2hpbmcgaGVscGVyIC0gaW5kZXBlbmRlbnQgb2YgaW5kaXZpZHVhbCBNSUIgbW9kdWxlcy4KICAgKGkuZS4gaXQncyB1cCB0byBlYWNoIE1JQiBtb2R1bGUgdG8gcHJvdmlkZSAibG9hZCBkYXRhIiBhbmQgImZyZWUgZGF0YSIKICAgIHJvdXRpbmVzLCBidXQgdGhlIGhhbmRsaW5nIG9mIHdoZW4gdG8gbG9hZCB0aGVzZSBjYWNoZXMgaXMgZG9uZSBoZXJlKS4KICAgCiAgIFRoZSBpbnRlbnRpb24gaXMgdGhhdCB0aGlzIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBTTk1QLW1hbmFnZWFibGUgKGluY2x1ZGluZwogICBjb25maWd1cmF0aW9uIG9mIHZhbGlkaXR5IHRpbWVvdXRzLCBpbnZhbGlkYXRpb24gb2YgY2FjaGVkIHZhbHVlcywgZXRjKS4KICAgQnV0IGZvciBub3csIHRoaXMgaXMganVzdCB0aGUgYmFzaWMgaGFuZGxlci4KICAgCjIwMDMtMDYtMDQgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmg6CgogICBTaW5nbGUgaGVscGVyIHRvIGltcGxlbWVudCBhIGdyb3VwIG9mIHNjYWxhciBvYmplY3RzIGluIG9uZSBnby4KICAgKENsb3NlciB0byB0aGUgbW9kZWwgb2YgdGhlIGVhcmxpZXIgdjQgQVBJKQogICAKMjAwMy0wNi0wMyAxNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWVudGlvbiB3aGVyZSAibGF0ZXIiIGFjdHVhbGx5IGlzLgogICAKMjAwMy0wNi0wMiAwNTo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmg6CgogICBEZWNsYXJhdGlvbnMgZm9yIGltcHJvdmVkIFNvbGFyaXMgQ1BVIHN1cHBvcnQgZnJvbSBwYXRjaCAjNzM4NDY1KQogICAoT29wcyEpCiAgIAoyMDAzLTA2LTAyIDA1OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgU2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIGZvcndhcmRpbmcgdHJhcHMgdG8gYW5vdGhlciBkZXN0aW5hdGlvbi4KICAgKEkndmUgZ290IGEgbnVtYmVyIG9mIGlkZWFzIG9mIGhvdyB0aGlzIGNvdWxkIGJlIGRvbmUgbW9yZSBmbGV4aWJseSwKICAgIGJ1dCB0aGlzIHNlcnZlcyBhcyBhIGJhc2ljIHByb29mLW9mLWNvbmNlcHQsIGZvciBmZWVkYmFjayAmIGNvbW1lbnQpCiAgIAoyMDAzLTA2LTAyIDA1OjMzICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIE1vZHVsYXJpc2VkIGFwcHJvYWNoIHRvIGRpZmZlcmVudCBzdHlsZXMgb2YgaGFuZGxpbmcgaW5jb21pbmcgdHJhcHMuCiAgIFRoaXMgc2VlbXMgdG8gcmV0YWluIHRoZSBzYW1lIGJlaGF2aW91ciBhbmQgb3V0cHV0IGZvcm1hdHMgYXMgdGhlCiAgIGVhcmxpZXIgY29kZSwgYnV0IHNob3VsZCBiZSBtdWNoIG1vcmUgZmxleGlibGUgdG8gZXh0ZW5kIGFuZCBhZGFwdC4KICAgCjIwMDMtMDUtMzAgMTc6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIG1ha2UgdXNlIG9mIG5ldyBleHBvcnRlZCBpdGVtcyBmcm9tIHNubXBfZGVidWcuCiAgIAoyMDAzLTA1LTMwIDE3OjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBtb3JlIGNsZWFudXBzCiAgIAoyMDAzLTA1LTMwIDE2OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLCBtaWIyYy5jaGVja192YWx1ZXNfbG9jYWwuY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgVXBkYXRlIHRvIG1pYjJjIGNvZGUgZm9yIHByb2R1Y2luZyB3aGF0IEkgdGhpbmsgc2hvdWxkIGJlIGFuIGVhc2llciB0bwogICB1c2UgQVBJIHNldCAodGhhdCBpcyBub3QgYWxsIHdyYXBwZWQgaW50byBhIHNpbmdsZSBmdW5jdGlvbikuCiAgIAoyMDAzLTA1LTMwIDE2OjUxICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaXggbWliIHR5cG8KICAgCjIwMDMtMDUtMzAgMTY6NTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBkZWZpbmUgYSBub29wIGZyZWUgZnVuY3Rpb24uCiAgIAoyMDAzLTA1LTMwIDE2OjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYwo6CgogICBleHBvcnQgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBuZXcgZGVidWcgbW9kdWxlcy4KICAgCjIwMDMtMDUtMzAgMTQ6NDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgY29tcGlsaW5nIHNlY3Rpb24gd2l0aCBvbmUgbmV3IHF1ZXN0aW9uIGFib3V0IGxpYmVsZi4gIE90aGVyIHF1ZXN0aW9ucyBwcm9iYWJseSBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIG5ldyBzZWN0aW9uCiAgIAoyMDAzLTA1LTMwIDA1OjE0ICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcHZhY20uMS5kZWY6CgogICBQcmVsaW1pbmFyeSBtYW4gcGFnZSBmb3Igc25tcHZhY20KICAgCjIwMDMtMDUtMzAgMDM6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEhhbmRsZSBibG9jayBzaXplcyA8MUsgd2hlbiBjb252ZXJ0aW5nIGJsb2NrIGNvdW50cyB0byBLYi4KICAgUmVwb3J0ZWQgYnkgRXVnZW5lIFYuIENodXByaXlhbm92ICh3YXkgYmFjayBpbiBPY3RvYmVyISkuCiAgIEZsYXdzIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgcGF0Y2ggYXJlIG15IHJlc3BvbnNpYmlsaXR5LgogICAoSSdtIG5vdCB0b3RhbGx5IGhhcHB5IGFib3V0IGNhc3RpbmcgdG8gZmxvYXQgaW4gdGhpcyB3YXksCiAgICBidXQgaXQgc2VlbWVkIHRoZSBiZXN0IG9mIGEgYmFkIGxvdCkuCiAgIAoyMDAzLTA1LTMwIDAzOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFNpZ25pZmljYW50bHkgaW1wcm92ZWQgc3VwcG9ydCBmb3IgU29sYXJpcyBDUFUgaW5mb3JtYXRpb24KICAgKGluY2x1ZGluZyBkZXNjcmlwdGlvbiwgc3RhdHVzIGFuZCBtdWx0aS1DUFUgc3VwcG9ydCkuCiAgIFRoYW5rcyB0byBKYW1lcyBJcndpbiBmb3IgaW1wbGVtZW50aW5nIGl0IChzZWUgcGF0Y2ggIzczODQ2NSkKICAgTm8gdGhhbmtzIHRvIERhdmUgU2hpZWxkIGZvciBzaXR0aW5nIG9uIGl0IGZvciBhIGNvdXBsZSBvZiB3ZWVrcy4KICAgQmFkIERhdmUhIEJhZCBEYXZlIQogICAKMjAwMy0wNS0yOCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IG9sZF9hcGkuYyAoVjUtMC1wYXRjaGVzLjEpLCBvbGRfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgYXMgcG9pbnRlZCBvdXQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNS0yOCAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBnZXRidWxrIG9wZXJhdGlvbnMgKGhvcGVmdWxseSksIGFzIHBvaW50ZWQgb3V0IGJ5IFJvbiBUYWJvci4KICAgCjIwMDMtMDUtMjggMDY6MTIgIGR0czEyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciBiZWZvcmUgZGlzcGxheWluZyB0aGUgc2Vjb25kIChvciBzdWJzZXF1ZW50KQogICB2YXJiaW5kIGluIGEgbXVsdGktdmFsdWUgdGFibGUgZm9ybWF0LiAgQnVnIHNwb3R0ZWQgYnkgU3RlZmFubyBCb2RyYXRvLgogICAKMjAwMy0wNS0yOCAwNToxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIEhlbHBlciB0byBncm91cCByZWxhdGVkIHJlcXVlc3RzIGZvciB0aGUgc2FtZSByb3cgdG9nZXRoZXIuICBTdWItaGFuZGxlcnMKICAgY2FuIHRoZXJlZm9yZSB3b3JrIHdpdGggbXVsdGlwbGUgdmFyYmluZHMsIGFsbCByZWxhdGluZyB0byB0aGUgc2FtZSByb3cuCiAgIAogICBUaGlzIHdhcyBvcmlnaW5hbGx5IGludGVuZGVkIGZvciB1c2Ugd2l0aCB0aGUgaXRlcmF0b3IgaGVscGVyLCBidXQKICAgdGhhdCBoZWxwZXIgaXMgYXBwYXJlbnRseSBiZWluZyByZXdvcmtlZCBhdCB0aGUgbW9tZW50LiAgQnV0IHRoaXMgc2VlbXMKICAgYSBwb3RlbnRpYWxseSB1c2VmdWwgZmVhdHVyZSBhbnl3YXksIHNvIEknbSBjb21taXR0aW5nIGl0IHJlZ2FyZGxlc3MhCiAgIAoyMDAzLTA1LTI4IDA0OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHN0cmF5IF5NIGxpbmUgZW5kaW5ncwogICAKMjAwMy0wNS0yOCAwMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGRsbW9kLmMsIGRsbW9kLmg6CgogICBSZW1vdmUgcmVkdW5kZW50IHZlcnNpb24gb2YgJ2RsbW9kJy4gICBUaGlzIHdhcyBtb3ZlZCB0byAndWNkLXNubXAnCiAgIGluIDIwMDAsIGFuZCB0aGlzICdtaXNjJyB2ZXJzaW9uIGhhcyBiZWVuIGVmZmVjdGl2ZWx5IHVudG91Y2hlZCBzaW5jZS4KICAgTGVhdmluZyBpdCBhcm91bmQgaXMganVzdCBhc2tpbmcgZm9yIHBlb3BsZSB0byBnZXQgY29uZnVzZWQuCiAgIAoyMDAzLTA1LTI3IDA4OjU2ICBkdHMxMgoKICAgKiBBR0VOVC50eHQ6CgogICBNZW50aW9uIHRoYXQgdGhpcyBkZXNjcmliZXMgdGhlIHY0IEFQSSwgcmF0aGVyIHRoYW4gdGhlIHY1IGhlbHBlciBtZWNoYW5pc20uCiAgIAoyMDAzLTA1LTIxIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcnBtIGZpeGVzCiAgIAoyMDAzLTA1LTIxIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBpbnN0YWxsIHRoZSBzcGVjIGZpbGUKICAgCjIwMDMtMDUtMjEgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYklJL3ZhY21fY29udGV4dC5jOgoKICAgRml4IGZvciBwcm9wZXIgbm9uLXNlcmlhbGl6ZWQgaXRlcmF0b3IgdXNhZ2UuCiAgIAoyMDAzLTA1LTIxIDA2OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgTmV3IE1JQiBncm91cCB0byBtb25pdG9yIGFuZCBjb250cm9sIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSB0aGUgYWdlbnQuCiAgIE5vdGUgdGhhdCB0aGlzIGlzIGEgcHJvdmlzaW9uYWwgaW1wbGVtZW50YXRpb24sIGFuZCB0aGUgTUlCIGRlZmluaXRpb25zCiAgIGFyZSBjdXJyZW50bHkgc3ViamVjdCB0byBjaGFuZ2UgKGF0IGxlYXN0IHVudGlsIHdlIG1ha2UgYSBmdWxsIHJlbGVhc2UKICAgaW5jbHVkaW5nIHRoaXMgZ3JvdXApCiAgIAoyMDAzLTA1LTIxIDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAoVjQtMi1wYXRjaGVzLjcpLCBwYXNzLmM6CgogICBGaXggcGFzc2luZyBvZiAic2V0IiBwYXJhbWV0ZXJzIHRvIGEgcGFzcy10aHJvdWdoIHNjcmlwdAogICAoQnVnICM2ODk5MzYsIGZpeGVkIGJ5IEVyaWMgQm93bGVzKQogICAKMjAwMy0wNS0yMCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBNYW51IFNoYXJtYSdzIGR5bmFtaWNhbGx5LWNvbmZpZ3VyYWJsZSBkZWJ1ZyB0b2tlbiBoYW5kbGluZy4KICAgCjIwMDMtMDUtMjAgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBJbXBsZW1lbnQgYSAid2F0Y2hlZCBzcGlubG9jayIgaGVscGVyLgogICAKMjAwMy0wNS0yMCAwNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgRml4IGxvYWQgYXZlcmFnZSBzdXBwb3J0IGZvciBBSVg1IChCdWcgIzU2Mzk3OCByZXBvcnRlZCBieSBKZWZmIEN1bm5pbmdoYW0pCiAgIAoyMDAzLTA1LTIwIDAzOjI5ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBJbmNvcnBvcmF0ZSBOaWtvbGFpIERldmVyZWF1eCdzIG92ZXJ2aWV3IG9mIHRoZSBWaXN1YWwgQysrIG9yZ2FuaXNhdGlvbiwKICAgcGx1cyBzb21lIG1pbm9yIHJlYXJyYW5nZW1lbnQgb2Ygc2VjdGlvbnMsIGFuZCB0b25lIGRvd24gYSBzb21ld2hhdAogICBvdmVybHkgZW50aHVzaWFzdGljIGNvbW1lbnQuCiAgIAoyMDAzLTA1LTE1IDIyOjQyICBoYXJkYWtlcgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG9zZjUgcGF0Y2ggdGhhdCBuZXZlciBnb3QgYWRkZWQuCiAgIAoyMDAzLTA1LTE1IDIyOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgTWlub3IgZml4LgogICAKMjAwMy0wNS0xNCAxODoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgb29wc2llIGRvb3NpZSBmbG9vc2llIHdvb3ppZQogICAKMjAwMy0wNS0xNCAxODoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgb3BwcwogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgb3RoZXIgLmNvbmYgZmlsZXMKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgcmVtb3ZlIHVubmVlZGVkIHZhcgogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtaXNjIG1pbm9yIGNoYW5nZXMKICAgCjIwMDMtMDUtMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNhY2hpbmcgc3VwcG9ydCBmcm9tIGEgcGF0Y2ggIzcyNjQxOCBmcm9tIExhcnJ5IFNpbW1vbnMuCiAgIAoyMDAzLTA1LTE0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRhYmxlLjEuZGVmOgoKICAgMm5kIFBhdGNoIDcwMjcxMSBieSBSb24gVGFib3IgZG9jdW1lbnRpbmcgbmV3IHNubXB0YWJsZSBvcHRpb25zCiAgIAoyMDAzLTA1LTE0IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgUGF0Y2ggIzcxMzA3MiBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIGNvbTJzZWMgbWFwcGluZ3Mgb24gdW5peCBzb2NrZXRzCiAgIHdpdGggcGVyLXNvY2tldCBtYXBwaW5ncy4KICAgCjIwMDMtMDUtMTQgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYzoKCiAgIFBhdGNoICM3MzU0ODAgZnJvbSBCcnVjZSBTaGF3OiBhc3N1bWUgbm8gY28tcHJvY2Vzc29yIGZvciBTdW5zLCBhcyBpcyB0aGUgbW9yZSBjb21tb24gY2FzZQogICAKMjAwMy0wNS0xNCAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgVXNlIC9ldGMvcHJpbnRjYXAgdG8gZGV0ZWN0IHByaW50ZXJzIGluIHByZWZlcmVuY2UgdG8gcnVubmluZyBscHN0YXQKICAgKG9yIHRoZSBjZ2V0bmV4dCgpIEFQSSkuICAgVGhpcyBzZWVtcyBtb3JlIGluIGtlZXBpbmcgb2Ygb3VyIGdlbmVyYWwKICAgcHJpbmNpcGxlIG9mIHRyeWluZyB0byBhdm9pZCBpbnZva2luZyBzdWItcHJvY2Vzc2VzIHdoZXJldmVyIHBvc3NpYmxlLgogICAKMjAwMy0wNS0xMiAyMzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIFJvbiBUYWJvcgogICAKMjAwMy0wNS0xMiAyMzoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IG5ldyBzbm1wdGFibGUgb3B0aW9ucwogICAKMjAwMy0wNS0xMiAyMzowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIHBhdGNoICM3MDI3MTEgZnJvbSBSb24gVGFib3I6IEFkZCBuZXcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIHNubXB0YWJsZSBmb3IgdmFyaW91cyBuZXcgZmVhdHVyZXMKICAgCjIwMDMtMDUtMTIgMjI6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjUtMC1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM3MzU1MTEgZnJvbSBBbGV4IEJ1cmdlcjogZml4IHNubXB0cmFwZCB0byBlbnN1cmUgdGhlcmUgYXJlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YXJiaW5kcwogICAKMjAwMy0wNS0xMiAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jIChWNS0wLXBhdGNoZXMuMSksIHByb3h5LmMKOgoKICAgUGF0Y2ggIzczNjc4NCBmcm9tIFJvbiBUYWJvcjogZml4IHByb3hpZXMgZm9yIHJlc3RhcnRlZCBOU01QdjMgc3ViLWFnZW50cwogICAKMjAwMy0wNS0wOSAwODo0NyAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgdmFyaW91cyBtaXNzaW5nIGZ1bmN0aW9uIG5hbWVzLCBzdXBwbGllZCBieSBBbGV4IEJ1cmdlcgogICAKMjAwMy0wNS0wOSAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwgd2luMzJzZGsuZHN3LAogICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFwcGx5IE5pa29sYWkgRGV2ZXJlYXV4J3MgVkMrKyBjbGVhbnVwIHBhdGNoICgjNjk0NzY2KQogICBJdCBhcHBlYXJzIHRvIHdvcmsgT0sgLSBJIGp1c3QgaG9wZSB0aGUgbGluZSB0ZXJtaW5hdGlvbnMKICAgZG9uJ3Qgc2NyZXcgdGhpbmdzIHVwIQogICAKMjAwMy0wNS0wOCAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQYXRjaCAjNzMzODgwIGZyb20gQWxleCBCdXJnZXIgdG8gZml4IHVzZU51bWVyaWMKICAgCjIwMDMtMDUtMDggMTY6MjEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBQYXRjaCAjNzM0Nzc0IGZyb20gQW5kcmV3IEZpbmRsYXk6IGZpeCB0aGUgdGVzdCBlbnZpcm9ubWVudCBmb3Igc25tcGQgdG8gZ2l2ZSBpdCBmdWxseSBxdWFsaWZpZWQgcGF0aCBuYW1lcyBmb3IgY29uZmlndXJhdGlvbiBmaWxlcyBzaW5jZSBzbm1wZCBub3cgY2hkaXIncyB0byAvCiAgIAoyMDAzLTA1LTA4IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKFY1LTAtcGF0Y2hlcy42KSwgUkVBRE1FOgoKICAgbWVudGlvbiBBbmRyZXcgRmluZGxheQogICAKMjAwMy0wNS0wOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzIChWNS0wLXBhdGNoZXMuMSksIGFnZW50LnhzOgoKICAgKGV4Y2VsbGVudCkgcGF0Y2ggIzcwNTU2NiBmcm9tIEFuZHJldyBGaW5kbGF5IG9uIHBlcmwgYWdlbnQgc3VwcG9ydDoKICAgCiAgIDEpIEFnZW50IGNhbm5vdCByZXR1cm4gTUFDIGFkZHJlc3NlcyBjb250YWluaW5nIHplcm8gb2N0ZXQuCiAgIAogICAyKSBBZ2VudCBjb3JlZHVtcHMgd2hlbiB0cnlpbmcgdG8gcmV0dXJuIElQIGFkZHJlc3NlcwogICBpZiB0aGVzZSBhcmUgc3VwcGxpZWQgYXMgZG90dGVkLXF1YWQgb3IgYXMgYSBob3N0bmFtZQogICB0aGF0IGZhaWxzIHRvIHJlc29sdmUuCiAgIAogICAzKSBBZ2VudCBjb3JydXB0cyBPSUQgdmFsdWVzLgogICAKICAgNCkgQWdlbnQgdHJ1bmNhdGVzIGFueSBPQ1RFVF9TVFJJTkcgb3IgQklUX1NUUklORyB0aGF0CiAgIGNvbnRhaW5zIGEgemVybyBvY3RldCAodGhpcyBpcyB0aGUgcm9vdCBjYXVzZSBvZiAoMSkgYWJvdmUpCiAgIAogICBBUEkgY2hhbmdlcyBpbnRyb2R1Y2VkOgogICAKICAgYSkgSVAgYWRkcmVzc2VzIG5vdyBwYXNzZWQgYXMgYmluYXJ5IHN0cmluZ3MgKDQgb2N0ZXRzCiAgIGZvciBJUHY0KSByYXRoZXIgdGhhbiBkb3R0ZWQtcXVhZCBvciBuYW1lLiBUaGlzCiAgIHNpZGVzdGVwcyB0aGUgSVB2NC9JUHY2IHByb2JsZW0gYW5kIGxlYXZlcyB0aGUgY2FsbGluZwogICBzY3JpcHQgdG8gZGVhbCB3aXRoIG5hbWUtPmFkZHJlc3MgcmVzb2x1dGlvbiBhbmQKICAgYXNzb2NpYXRlZCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwxLDEsMSwzLDQsMV0pLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHBhdGNoICM3MTAyNzUgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogY29uc3QgZml4ZXMgZm9yIEFQSXMgdGhhdCBkb24ndCBtb2RpZnkgdGhlaXIgYXJndW1lbnRzCiAgIAoyMDAzLTA1LTA4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzeXN0ZW0uaCAoVjUtMC1wYXRjaGVzLjEpLCBzeXN0ZW0uaAo6CgogICBtaXNzZWQgYSBjb21taXQgZm9yIGEgcGVybCBwYXRjaAogICAKMjAwMy0wNS0wOCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjUtMC1wYXRjaGVzLjIpLCBpcEFkZHIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzcxMjEwMTogbWlub3IgaXJpeCBmaXgKICAgCjIwMDMtMDUtMDggMDk6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1JFQURNRQosIFNOTVAvU05NUC54cywgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggIzcxNTYwMzogZml4IHBlcmwgbW9kdWxlIGJ1aWxkcyB1bmRlciB3aW5kb3dzCiAgIAoyMDAzLTA1LTA4IDA4OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFwcGx5IHBhdGNoIFsgNzI0OTI3IF0gdG8gZml4IGxvZyBtc2c7IGFkZCBcbiB0byBsb2cgbXNncwogICAKMjAwMy0wNS0wOCAwODoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgY2hnIE5FVF9TTk1QX1VTRV9BU1NFUlQgZGVmaW5lIHRvIE5FVFNOTVBfVVNFX0FTU0VSVCB0byBiZSBjb25zaXN0ZW50CiAgIAoyMDAzLTA1LTA1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1vdmUgaW4gYWdlbnR4IGRvY3VtZW50YXRpb24gc29tZW9uZSBvbmx5IGFkZGVkIHRvIHRoZSBwYXRjaGVzIGJyYW5jaCAoYmFkIHNvbWVvbmUpCiAgIAoyMDAzLTA1LTA1IDE1OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNS0wLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDMtMDQtMjkgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUmVhbGx5IGZpeCBzb2xhcmlzIGJ5IHJlbW92aW5nIHN1cHBvcnQgZm9yIHRoZSBjaWRyIHRhYmxlIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yOSAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmg6CgogICBhdHRlbXB0IHRvIGZpeCBzb2xhcmlzIGJ5IHJlbW92aW5nIHN1cHBvcnQgZm9yIHRoZSBjaWRyIHRhYmxlIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBMaW51eCBNdWx0aS1DUFUgZGV0ZWN0aW9uIChob3BlZnVsbHkhKS4KICAgRG9uZSBhdCBpbml0aWFsaXNhdGlvbiwgc28gd29uJ3QgZGV0ZWN0IGNoYW5nZXMgZHVyaW5nIHJ1biB0aW1lLgogICAocHJvYmFibHkgZmFpcmx5IHVubGlrZWx5ISkuCiAgIEFsc28gY2hhbmdlcyBkZXZpY2UgaW5kZXggdmFsdWUgZm9yIHNpbmdsZSBDUFUgZGV2aWNlIG9uIG90aGVyIGFyY2hzLgogICAKMjAwMy0wNC0yOSAwMTo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBGaXJzdCBkcmFmdCBvZiBMaW51eCBDUFUgZGV0ZWN0aW9uIChzdGlsbCBvbmx5IHN1cHBvcnRzIG9uZSBDUFUpLgogICAKMjAwMy0wNC0yOSAwMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3Byb2MuYywgaHJfb3RoZXIuYzoKCiAgIENvbnNvbGlkYXRlIGFsbCBoclByb2Nlc3NvclRhYmxlIGltcGxlbWVudGF0aW9uIGludG8gb25lIHBsYWNlLgogICAoQmFzaWNhbGx5IGp1c3QgbW92aW5nIGNvZGUgZnJvbSBocl9vdGhlci5jIHRvIGhyX3Byb2MuYykKICAgCjIwMDMtMDQtMjggMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIGRveHlnZW4gZG9jdW1lbnRhdGlvbiBmb3IgZXZlcnl0aGluZyAoZ2FzcCkKICAgLSBTdXBwb3J0IGZvciBzYXZpbmcvcmVzdG9yaW5nIG9mIGVudGlyZSBkYXRhX2xpc3RzLgogICAKMjAwMy0wNC0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIG1ha2UgZG9jcy4KICAgCjIwMDMtMDQtMjggMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIGFkZGVkIHByb3RvdHlwZXMgZm9yIHNhdmUvcmVzdG9yZSBvZiBkYXRhIGxpc3RzLgogICAKMjAwMy0wNC0yOCAyMzozNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIHB1dCBkYXRhX2xpc3QuaCBiZWxvdyBjYWxsYmFjay5oCiAgIAoyMDAzLTA0LTI4IDIzOjM1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgc25tcHRyYXBkIC10IGFuZCBkaXNraW8gb24gbGludXgKICAgCjIwMDMtMDQtMjUgMTE6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG9wcHMKICAgCjIwMDMtMDQtMjUgMDg6MDEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHR5cG8gaW4gJ1dyaXRlT25seScgKHNlZSBidWcgIzcxMTMyNCkKICAgCjIwMDMtMDQtMjUgMDc6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIHBlb3BsZQogICAKMjAwMy0wNC0yNSAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb2N1bWVudCBkaXNraW8gc3VwcG9ydCBmb3IgbGludXgKICAgCjIwMDMtMDQtMjUgMDc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzcxMjI1OSBmcm9tIEphbWVzIEtuaXR0ZXI6IGRpc2tpbyBzdXBwb3J0IGZvciBsaW51eAogICAKMjAwMy0wNC0yNSAwNzowMiAgaGFyZGFrZXIKCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgcGF0Y2ggIzcxMDY4NzogZml4IGZvcm1hdHRpbmcgYnVnCiAgIAoyMDAzLTA0LTI1IDA2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgcGF0Y2ggIzcwMjM1MSBmcm9tIEphbWVzIElyd2luOiBhIG5ldyBnZXRLc3RhdFN0cmluZygpIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yNSAwNjowMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHRoZSAtZSBFTkdJTkVJRCBmbGFnIGZvciBjcmVhdGVVc2VyLgogICAgIC0gcG9pbnRlZCBvdXQgYnkgRGFuYSBDb29rCiAgIAoyMDAzLTA0LTI0IDA4OjE5ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHVzbS5jLCBzbm1wdmFjbS5jOgoKICAgRml4IGEgdHlwbyBpbiBvdXRwdXQgbWVzc2FnZXMuICAoU2VlIEJ1ZyAjNzI2OTQzKQogICAKMjAwMy0wNC0yNCAwNjowMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFJlcG9ydCBiYWNrIGZhaWx1cmVzIGluIG5ldHNubXBfY2FsbGJhY2tfY2xvc2UgY29ycmVjdGx5LgogICBQYXRjaCAjNzI0OTI4IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDQtMjMgMDc6MzggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQYXRjaCAjNzI1MTQxIGJ5IFBldGVyIFdhcmFzaW46IEZpeCBzZWdtZW50YXRpb24gZmF1bHQgb24gc25tcHRhYmxlCiAgIAoyMDAzLTA0LTIzIDA2OjU2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wdXNtLmM6CgogICBQYXRjaCAjNzI0OTEzIGJ5IFBldGVyIFdhcmFzaW4gLSByZW1vdmVzIDIgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDMtMDQtMjMgMDY6NDYgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgU3Vic3RpdHV0ZSBzeXNjb25mZGlyIGNvcnJlY3RseSB3aGVuIGJ1aWxkaW5nIHNlZHNjcmlwdC4KICAgUGF0Y2ggIzcxMDY4OSBieSBQZXRlciBCcmVpdGVubG9obmVyCiAgIAoyMDAzLTA0LTIzIDA2OjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgbWFuL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBoZWFkZXIgZmlsZXMgYW5kIG1hbiBwYWdlcyB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLgogICBGcm9tIHBhdGNoICM3MTA2ODUgYnkgUGV0ZXIgQnJlaXRlbmxvaG5lcgogICAKMjAwMy0wNC0yMyAwNjoyMiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IHJlZmVyZW5jZXMgdG8gaW5jb3JyZWN0IEFQSSBjYWxscwogICAKMjAwMy0wNC0yMyAwMzowNiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBBZGQgYW4gZXhwbGljaXQgZXhhbXBsZSBmb3IgY29tMnNlYyBhZGRyZXNzIG1hc2tpbmcsIGFzIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAzLTA0LTIyIDA2OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXN0b3JlIHRoZSBvcmlnaW5hbCBkZWJ1ZyBpbmRlbnRhdGlvbiBsZXZlbCB3aGVuIGR1bXBpbmcgYW4gU05NUHYxL3YyYwogICByZXF1ZXN0IFBEVS4gICBSZXBvcnRlZCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA0LTE3IDA3OjIzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9wYWdhdGUgZXJyb3Igc3RhdHVzIHZhbHVlcyBiYWNrIHVwIHRvIHRoZSBtYWluIGFnZW50IHByb2Nlc3NpbmcKICAgKHNvIHRoYXQgZS5nLiBmYWlsZWQgU05NUHYyIHNldCByZXF1ZXN0cyB1c2luZyBhIHJlYWQtb25seSBjb21tdW5pdHkKICAgIHJlcG9ydCBhIGZhaWx1cmUsIHJhdGhlciB0aGFuIGFwcGVhcmluZyB0byBzdWNjZWVkISkKICAgCjIwMDMtMDQtMTYgMDY6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIERlZmluZSBhICJwcml2YXRlIGV4cGVyaW1lbnRhdGlvbiIgYXJlYSBvZiB0aGUgT0lEIHRyZWUsCiAgIGZvciB0aG9zZSB3aG8gd2lzaCB0byBoYXZlIGEgcGxheSB3aXRoIHRoaW5ncywgYW5kIGRvbid0CiAgIHlldCBoYXZlIGFuIGVudGVycHJpc2UgT0lEIG9mIHRoZWlyIG93bi4KICAgCiAgIFNlZSB0aGUgbmV0LXNubXAtdXNlcnMgdGhyZWFkICdPSUQgcmVnaXN0cmF0aW9uJywgZnJvbSBNYXJjaC9BcHJpbCAyMDAzLgogICAKMjAwMy0wNC0xNiAwNjozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBUd2FlayB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IHRvIGJlIGJhcmUgdGhlIHN1ZmZpeCBmb3JtCiAgIChhcyBleHBlY3RlZCBieSBTTk1QOjpPSUQgdGVzdCBoYXJuZXNzKS4KICAgV2Ugc2hvdWxkIHByb2JhYmx5IGRlZmF1bHQgdG8gTUlCOjp2YXJpYWJsZSBmb3JtLCB0byBtYXRjaAogICB0aGUgQyBsaWJyYXJ5LCBhbmQgcHJvdmlkZSBhIGZsYWcgZm9yIHRoZSBiYXJlIHN1ZmZpeC4KICAgCjIwMDMtMDQtMTYgMDI6NDYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGhhbmRsaW5nIG9mICdVc2VOdW1lcmljJyBhbmQgJ1VzZUxvbmdOYW1lcycgZm9yIGdldC9nZXRuZXh0L2dldGJ1bGsgbWV0aG9kcy4KICAgCiAgIEZpeGluZyAnZ2V0bmV4dCcvJ2dldGJ1bGsnIG1vc3RseSBpbnZvbHZlZCB1cGRhdGluZyB0aGUgY29uc29saWRhdGVkCiAgIE5FVFNOTVBfRFNfTElCX09JRF9PVVRQVVRfRk9STUFUJyBzZXR0aW5nLCByYXRoZXIgdGhhbiB0aGUgaW5kaXZpZHVhbCBib29sZWFucy4KICAgRml4aW5nICdnZXQnIHJlcXVpcmVkIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byB0aGUgb3V0cHV0IGNvZGUsIHNvIEkgc2ltcGx5CiAgIGNvcGllZCB0aGUgJ2dldG5leHQnIHJvdXRpbmUgZW4tbWFzc2UsIGFuZCB0d2Vha2VkIGl0IGFwcHJvcHJpYXRlbHkuCiAgIFRoZXJlIGlzIGEgbGFyZ2UgYW1vdW50IG9mIG92ZXJsYXAgYmV0d2VlbiB0aGVzZSB0aHJlZSByb3V0aW5lcywgYW5kIGl0IG1pZ2h0CiAgIGJlIHdvcnRoIGxvb2tpbmcgYXQgY29uc29saWRhdGluZyB0aGUgY29tbW9uIGNvZGUgaW4gc29tZSB3YXkuCiAgIAoyMDAzLTA0LTE2IDAyOjQyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHMKOgoKICAgQXBwbHkgQWxleCBCdXJnZXIncyBwZXJsICd0cmFuc2xhdGVPYmonIGhhbmRsaW5nIHBhdGNoICgjNzIyMDc1KQogICAKMjAwMy0wNC0xNSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBLaXJpbGwgU2VtZW5rb3YgZm9yIG9uZSBtb3JlIGZpeCB0byBsaW51eCBpbnRlcmZhY2Ugc3BlZWQKICAgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDQtMTAgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgaHJfcGFydGl0aW9uLmM6CgogICBGaXggaGFuZGxpbmcgb2YgaHJQYXJ0aXRpb25UYWJsZSwgYnJva2VuIGR1cmluZwogICBUaGUgR3JlYXQgU1VTRSAncHJpbnRmJyBIdW50LgogICBUaGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIGZvciB0aGlzIHBhdGNoLgogICAKMjAwMy0wNC0wOSAwMTo1MiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgSW1wb3J0IFNubXBBZG1pblN0cmluZywgYXMgc3VnZ2VzdGVkIGJ5IFZhZGltIFRhcmFzc292LgogICAKMjAwMy0wNC0wOCAwNzo1NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBGaXggdGhlIGVycm9yIGNvZGUgdXNlZCBmb3IgdW5hdmFpbGFibGUgcmVzb3VyY2VzLgogICBTcG90dGVkIGJ5IGNoaWNoaWVuLgogICAKMjAwMy0wNC0wMiAwOToyMyAgc3JhZG1hbgoKICAgKiBjb25maWd1cmUuaW46CgogICBpbXByb3ZlIGxtU2Vuc29ycyBzdXBwb3J0CiAgIC0gY2hlY2sgZm9yIGhlYWRlcnMKICAgLSBjaGVjayBmb3IgbGlicwogICAKMjAwMy0wNC0wMiAwNjozMSAgc3JhZG1hbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaDoKCiAgIGFkZCBMTS1TRU5TT1JTLU1JQiB3aGVuIG1vZHVsZSBpcyBpbmNsdWRlZAogICAKMjAwMy0wMy0yOCAwNjo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjUgKFY1LTAtcGF0Y2hlcy4xKSwgUkVBRE1FLmtyYjU6CgogICBLZW4gSG9ybnN0ZWluIG5vdGVkIHRoYXQgdGhlIHJ3dXNlciAtcyBmbGFnIHdhcyBtaXNzaW5nIGl0J3MgYXJndW1lbnQKICAgCjIwMDMtMDMtMjggMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wa3NtLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gZm9yIG1pc2Mga3JiNSBmaXhlcyAoZW5jcnlwdGlvbiB0eXBlcywgTmV3IGNyeXB0byBzdXBwb3J0LC4uLgogICAKMjAwMy0wMy0yMCAxMToxOCAgc3JhZG1hbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggYnVnICM2NzI0NjQ6IGlmQWRtaW5TdGF0dXMgbXVzdCBjaGFuZ2UgdG8gZG93bgogICAtIGlmQWRtaW5TdGF0dXMgdXAgaWYgaW50ZXJmYWNlIGlzIFVQCiAgIC0gaWZPcGVyU3RhdHVzIHVwIGlmIGludGVyZmFjZSBpcyBVUCBhbmQgUlVOTklORwogICAtIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSAibGlua191cCIga3N0YXQKICAgLSBhZGRlZCBDYXNzaW5pIEdpZ2FiaXQtRXRoZXJuZXQgKGNlKSBzdXBwb3J0CiAgIAoyMDAzLTAzLTE5IDExOjQ1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdHJhaWxpbmcgXCBmcm9tIGxhc3QgbGluZSBvZiBwZXJsIHJ1bGVzCiAgIAoyMDAzLTAzLTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wX2FnZW50LmM6CgogICBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuIHRvIGZpeCBzb21lIEFnZW50WCAobW9zdGx5KSBtZW1vcnkgbGVha3MKICAgCjIwMDMtMDMtMTIgMTA6MzkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiAoVjUtMC1wYXRjaGVzLjMpLCBuZXQtc25tcC1jb25maWcuaW46CgogICBwYXRjaCAjNjk5MzgwOiBGcm9tIENocmlzdG9waGUgS2FsdDogbWFrZSBuZXQtc25tcC1jb25maWcgZG8gd2hhdCBpdCdzIGRvY3VtZW50IHRvIGRvIChhZGQgLUxAbGliZGlyQCkKICAgCjIwMDMtMDMtMTIgMDg6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuMyksIHNubXBfYXBpLmM6CgogICBwYXRjaCAjNzAwNjcyOiByZXNldCBpdG1wIHRvIHRoZSBuZXcgdmFsdWUgbGVuZ3RoIGFmdGVyIGRlY29kaW5nIGEgaGV4IHN0cmluZwogICAKMjAwMy0wMy0xMiAwODo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZXR1cm4gaW5kZXhlcyBmb3IgYXVnbWVudGVkIHRhYmxlcwogICAKMjAwMy0wMy0xMiAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIFJFQURNRToKCiAgIFBhdGNoICM3MDEzOTg6IGNvbTJzZWN1bml4IHRva2VuIGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgdW5peCBzb2NrZXRzCiAgIAoyMDAzLTAzLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUzoKCiAgIHVwZGF0ZSB0byByZWFsIHdvcmxkIGFuZCBhZGQgYmV0dGVyIC1oIG91dHB1dAogICAKMjAwMy0wMy0xMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgYXR0ZW1wdCB0byBjb3JyZWN0IGZvciBkeW5hbWljIGxvYWRpbmcgb2YgYSBvbGRlciBvcGVuc3NsIGxpYnJhcnksIHdoaWNoIGlzIGNvbW1vbiBpZiB5b3UgaGF2ZSB0aGUgbW9kX3NzbCBycG0gaW5zdGFsbGVkIGFuZCBhIG5ld2VyIGxpYmNyeXB0byBsaWJyYXJ5IGF0IHRoZSBzYW1lIHRpbWUKICAgCjIwMDMtMDMtMTAgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSBvcGVuc3NsIGZyZWUgYnVnIGZvciB0aGUgbGFzdCB0aW1lCiAgIAoyMDAzLTAzLTA1IDIyOjQyICByc3RvcnkKCiAgICogY29uZmlndXJlIChWNS0wLXBhdGNoZXMuMiksIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wMy0wNSAyMjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBmb3IgbGlid3JhcCB3L25zbAogICAKMjAwMy0wMy0wNCAwOTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBuc01vZHVsZVRhYmxlLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgbnNNb2R1bGVUYWJsZS5jOgoKICAgd3JvbmcgdHlwZSByZXR1cm5lZCBmb3IgbnNNb2R1bGVNb2RlcyBhcyByZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0KICAgCjIwMDMtMDMtMDQgMDE6NTQgIGR0czEyCgogICAqIElOU1RBTEw6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgYWdlbnQuCiAgIAoyMDAzLTAzLTAxIDA3OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4Lzogc3ViYWdlbnQuYyAoVjUtMC1wYXRjaGVzLjEpLCBzdWJhZ2VudC5jCjoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKICAgCjIwMDMtMDMtMDEgMDY6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAoVjUtMC1wYXRjaGVzLjEpLCBtYXN0ZXIuYwo6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogZG9uJ3QgY3JlYXRlIGRlbGVnYXRlZCBjYWNoZSBmb3IgQ0xFQU5VUFNFVAogICAKMjAwMy0wMi0yOCAyMDo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgKFY1LTAtcGF0Y2hlcy4zKSwgTWFrZWZpbGUuUEw6CgogICB0eXBvCiAgIAoyMDAzLTAyLTI4IDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUGF0Y2ggIzU1MTkwOSBmcm9tIEdhcnkgRWR3YXJkczogZGV0ZWN0IHpvbWJpZSBwcm9jZXNzZXMgYW5kIHByZXZlbnQKICAgdGhlbSBmcm9tIGJlaW5nIGNvdW50ZWQgYXMgdmFsaWQgdXNlcnMuCiAgIAoyMDAzLTAyLTI4IDIwOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAoVjUtMC1wYXRjaGVzLjIpLCBNYWtlZmlsZS5QTDoKCiAgIFBhdGNoICM1OTc2MjkgZnJvbSBNYXR0IFNlbHNreSB0byBmaXggbWFuIHBhZ2UgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTAyLTI4IDIwOjAyICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvOiBERVZFTlYsIGVsZmRlcGVuZC5zaCwKICAgbmV0LXNubXAtNS4wLjYtYnVpbGQ6CgogICBwYXRjaCAjNjU0NTgxIGZyb20gU3RlZmFuIFJhZG1hbjogU29sYXJpcyBQYWNrYWdpbmcgYnVpbGQgc2NyaXB0cwogICAKMjAwMy0wMi0yOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM2OTUzMTIgZnJvbSBBbGV4IEJ1cmdlcjogYWRkIC10IHN3aXRjaCB0byBkaXNhYmxlIHN5c2xvZy4KICAgCjIwMDMtMDItMjggMTk6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBkb2N1bWVudCAtdAogICAKMjAwMy0wMi0yOCAwMjowOCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgU2ltcGxlIHBhdGNoIHRvIGNhdGNoIHJlLWRlY2xhcmF0aW9ucyBvZiB0aGUgInRvcC1sZXZlbCIgb2JqZWN0cy4KICAgU3VwcGxpZWQgYnkgU2VhbiBCdXJrZQogICAKMjAwMy0wMi0yOCAwMToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgUmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlcyBmb3IgaXB2NkZvcndhcmRpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFlpeGlvbmcgWm91IChCdWcgIzY5NDc0NSkKICAgCjIwMDMtMDItMjYgMjE6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBkZWZhdWx0IG9jdGV0IHN0cmluZ3MgdG8gdW5zaWduZWQgY2hhciBhcnJheXM7IGZpeCBleGFtcGxlOyBmaXggbG9naWMgb2YKICAgY29uZGl0aW9uYWw7IG1ha2UgY29kZSByZWZlcmVuY2luZyBjYW5fKGRlKWFjdGl2YXRlIGNvbmRpdGlvbmFsIHdpdGggc2FtZSBsb2dpYwogICB1c2VkIHRvIGdlbmVyYXRlIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcwogICAKMjAwMy0wMi0yNiAxMDozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3ZhY21jb25maWcsIFN2YWNtY29uZmlnLAogICBUMTMwc25tcHYxdmFjbWdldCwgVDEzMXNubXB2MmN2YWNtZ2V0LAogICBUMTMyc25tcHYzdmFjbWdldCwgVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICBUMTQxc25tcHYyY3ZhY21nZXRmYWlsLCBUMTQyc25tcHYzdmFjbWdldGZhaWw6CgogICBQYXRjaCAjNjg3ODM3IGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgVkFDTSB0ZXN0IGNhc2VzCiAgIAoyMDAzLTAyLTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgd2luMzIvY29uZmlnLmguYm9ybGFuZAosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBSRUFETUUsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIHBhdGNoICM2OTAzNTMgZnJvbSBLZXZpbiBHcmFoYW06IHBvcnQgdG8gVHJ1NjQgdjUgLyBvc2Y1CiAgIAoyMDAzLTAyLTI2IDEwOjEwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoICM2OTI4MzQgZnJvbSBEYXZpZCBWcmFiZWw6IGFkZCAtLXdpdGhvdXQtcnBtIGZvciBkaXNhYmxpbmcgcnBtIGNoZWNrcwogICAKMjAwMy0wMi0yNiAwODoyOCAgZHRzMTIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgT29wcyAtIG1pc3NlZCB0aGUgZGVmaW5pdGlvbiBvZiAnSU5TVEFMTF9EQVRBJyBmcm9tIFBldGVyJ3Mgb3JpZ2luYWwgcGF0Y2guCiAgIFNvcnJ5IQogICAKMjAwMy0wMi0yNiAwNzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgVGhhbmtzIHRvIFNyaWthbnRoIFBpbmRpcHJvbGkKICAgCjIwMDMtMDItMjYgMDc6MTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgdXBkYXRlIHRvIHBhdGNoICM2NTU0NDQ6IGRvY3VtZW50IGluY2x1ZGVBbGxEaXNrcyBmcm9tIFNyaWthbnRoIFBpbmRpcHJvbGkKICAgCjIwMDMtMDItMjYgMDQ6NDUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFN0b21wIG9uIHRyYWlsaW5nIHdoaXRlc3BhY2UgaW4gY29uZmlnIGxpbmVzLgogICBUaGlzIGFsbG93cyB0b2tlbiBjb21wYXJpc29ucyB0byB3b3JrIGFzIGV4cGVjdGVkLgogICAoU2VlIGJ1ZyAjNjkwNzcwKQogICAKMjAwMy0wMi0yNiAwNDoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBnZXRvcHQgaGFuZGxpbmcgb2YgLVMgKHNlZSBidWcgIzY5MzE2NykKICAgCjIwMDMtMDItMjUgMTE6NDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgZG9uJ3QgdHJ5IGFuZCBydW4gYXV0b2NvbmYvYXV0b2hlYWRlciBpZiBub3QgaW5zdGFsbGVkCiAgIAoyMDAzLTAyLTI1IDA2OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBuZXQtc25tcC1jb25maWcgcGF0Y2ggKCM2OTIzNzMpCiAgIAoyMDAzLTAyLTI1IDA2OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgUmVjb2duaXNlICJkZWZWZXJzaW9uIHYzIiBhcyB3ZWxsIGFzICJkZWZWZXJzaW9uIDMiIGFzIGRvY3VtZW50ZWQKICAgaW4gdGhlIG1hbiBwYWdlcyAocHJpb3IgdG8gUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvcnJlY3Rpb24pCiAgIFtXZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQgYm90aCBzdHlsZXMuLi4uXQogICAKMjAwMy0wMi0yNSAwNjowNiAgZHRzMTIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYKLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGNtZC4xLmRlZiwKICAgc25tcGNvbmYuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAwNjowNCAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzZWRzY3JpcHQuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb25maWd1cmF0aW9uLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIGNoYW5nZXMuCiAgIChwYXRjaGVzICM2OTIzNzIsICA2OTIzNzcsICA2OTIzNzkgYW5kIDY5MjM4NikKICAgCjIwMDMtMDItMjUgMDU6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaDoKCiAgIExpc3QgImZpeGVkIHR5cGUiIHN0b3JhZ2UgZW50cmllcyBmaXJzdCwgc28gdGhhdCB0aGVyZSBpc24ndCBhbgogICBhcmJpdHJhcnkgbGltaXQgb2YgMTAwIGRpc2stYmFzZWQgc3RvcmFnZSBlbnRyaWVzLgogICAKMjAwMy0wMi0yNSAwNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIEhhbmRsZSB1c2VyL2dyb3VwIG5hbWVzIHdoZW4gc2V0dGluZyBBZ2VudFggc29ja2V0IG93bmVyc2hpcC4KICAgCjIwMDMtMDItMjUgMDM6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgUHJlbGltaW5hcnkgcGF0Y2ggdG8gc3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIEFnZW50WCBzb2NrZXQgcGVybWlzc2lvbnMuCiAgIAogICBQZXJzb25hbGx5LCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoaXMgaXMgcmVhZHkgZm9yIGNvbW1pdHRpbmcgdG8gdGhlCiAgIENWUyB0cmVlIHlldCwgYnV0IE15IE1hc3RlciBIYXMgU3Bva2VuLCBhbmQgSSBNdXN0IE9iZXkuLi4uLi4uCiAgIAoyMDAzLTAyLTIxIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQ2lkclJvdXRlVGFibGUuYywKICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLAogICBpcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5oLCBpcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmMsCiAgIGlwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuaCwgaXBDaWRyUm91dGVUYWJsZV9jb2x1bW5zLmgKLCBpcENpZHJSb3V0ZVRhYmxlX2VudW1zLmg6CgogICBBIGJlZ2lubmluZyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSVAtRk9SV0FSRC1NSUI6OmlwQ2lkclJvdXRlVGFibGUuCiAgICAgLSB0aGlzIHRhYmxlIGlzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBvYnNvbGV0ZSBpcFJvdXRlVGFibGUsIHdoaWNoCiAgICAgICBpc24ndCBldmVuIGltcGxlbWVudGVkIGJ5IG1vc3QgdmVuZG9ycyBhbnkgbW9yZS4KICAgICAtIG5vdCBjb21wbGV0ZS4gIFdyaXRlIHN1cHBvcnQgbm90IGltcGxlbWVudGVkIHlldC4gIFJlYWQtc3VwcG9ydAogICAgICAgd29ya2luZyB0aG91Z2guCiAgICAgLSBTaG91bGQgd29yayBvbiBldmVyeXRoaW5nIGJ1dCBocHV4MTE/ICB0ZXN0aW5nIG5lZWRlZC4KICAgICAtIHRoaXMgaXMgYW5vdGhlciBleGFtcGxlIG9mIGEgdGFibGVfaXRlcmF0b3IgYXBwbGljYXRpb24gKGRpZmZlcmVudAogICAgICAgdGhhbiB0aGUgcmVzdCB1c2luZyBhY2Nlc3NvcnMpLgogICAKMjAwMy0wMi0yMSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiByb3V0ZV9oZWFkZXJzLmgsIHZhcl9yb3V0ZS5jOgoKICAgbW92ZWQgaGVhZGVycyB0byBhIHNlcGFyYXRlIGZpbGUgdXNhYmxlIGJ5IG90aGVyIG1vZHVsZXMuCiAgIGV4cG9ydGVkIHRoZSBjb2xsZWN0ZWQgcm91dGUgdGFibGUuCiAgIAoyMDAzLTAyLTIxIDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIG1vdmVkIGhlYWRlcnMgdG8gYSBzZXBhcmF0ZSBmaWxlIHVzYWJsZSBieSBvdGhlciBtb2R1bGVzCiAgIAoyMDAzLTAyLTIxIDIwOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgQW4gYWx0ZXJuYXRlIHRhYmxlX2l0ZXJhdG9yIC5jb25mIGZpbGUgKHRoYXQgbWF5IGV2ZW50dWFsbHkgYmVjb21lIHRoZQogICBkZWZhdWx0KS4gIFRoaXMgb25lIHVzZXMgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGdldC9zZXQgZGF0YSBhbmQgc2hvdWxkCiAgIHRha2UgY2FyZSBvZiBtb3N0IG90aGVyIFNOTVAgc3BlY2lmaWMgc3R1ZmYgZm9yIHlvdS4gIE5vdCBjb21wbGV0ZSwKICAgYW5kIGEgZ29vZCBwZXJjZW50YWdlIG9mIHRoZSBjb2RlIHJlcGV0aXRpb24gd2lsbCBsaWtlbHkgbW92ZSBpbnRvCiAgIGFub3RoZXIgc3ViLWl0ZXJhdG9yIGhhbmRsZXIgaW4gdGhlIGZ1dHVyZS4gIFRoZSBpcENpZHJSb3V0ZVRhYmxlIGlzCiAgIGFuIGV4YW1wbGUgb2YgdGhpcyBvdXRwdXQuCiAgIAoyMDAzLTAyLTIxIDIwOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICAtIGNvbW1lbnQgYWRkaXRpb25zIGFuZCBjbGVhbnVwcy4KICAgLSBwdXQgdGhlIGZyZWUvZXRjIGZ1bmN0aW9uIHBvaW50ZXJzIGluIGFuICNpZmRlZiBjbGF1c2UKICAgCjIwMDMtMDItMjEgMjA6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mOgoKICAgY29tbWVudCBtb3ZlIGZvciBiZXR0ZXIgZm9ybWF0dGluZy4KICAgCjIwMDMtMDItMjEgMjA6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgLSBnZW5lcmF0ZSBhbmQgdXNlIHRoZSBlbnVtcyBoZWFkZXIgZmlsZS4KICAgLSBnZW5lcmF0ZSBhIC5oIGZpbGUuCiAgIC0gbWlzYyBmaXhlcy4KICAgCjIwMDMtMDItMjEgMjA6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIEEgLmNvbmYgZmlsZSB0byBnZW5lcmF0ZSBnZXRfL3NldF8gYWNjZXNzIGZ1bmN0aW9ucyBmb3IgZWFjaCBjb2x1bW4uCiAgICAgLSBpdGVyYXRvciBzcGVjaWZpYy4KICAgCjIwMDMtMDItMjEgMjA6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBlbnVtIGZpeC4KICAgLSBkb24ndCBzb3VyY2UgKHJ1bikgLmNvbmYgZmlsZXMgdHdpY2UuCiAgIAoyMDAzLTAyLTIxIDIwOjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIC0gZG94eWdlbiB1cGRhdGUuCiAgIC0gaW5jbHVkZXMgbmV3IG5ldHNubXBfb2lkX3N0YXNoIG1hbiBwYWdlLgogICAKMjAwMy0wMi0yMSAyMDowNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIC0gZG94eWdlbiBjb21tZW50IGV2ZXJ5dGhpbmcKICAgLSBzdGFydGVkIChub3QgY29tcGxldGUpIGEgZ2V0bmV4dCBmdW5jdGlvbi4KICAgLSBpbXBsZW1lbnRlZCBhICJmcmVlIHRoZSB0cmVlIiBmdW5jdGlvbi4KICAgCjIwMDMtMDItMjEgMjA6MDQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBhZGRlZCBhdXRvbTR0ZS5jYWNoZQogICAKMjAwMy0wMi0yMSAyMDowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgdGhlIGluY2x1ZGUgZGlyZWN0b3J5IHRvIHRoZSBtb2R1bGUgZWdyZXAgY3BwIC1JIGxpc3QuCiAgIAoyMDAzLTAyLTIxIDAxOjUwICBkdHMxMgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIEhUTUwtZXNjYXBlICc8JyBhbmQgJz4nIGNoYXJhY3RlcnMgaW4gRkFRIGVudHJpZXMKICAgCjIwMDMtMDItMjAgMDg6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgVXNlICduZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcicgaW5zdGVhZCBvZiAnbmV0c25tcF9yZWdpc3Rlcl9pbnN0YW5jZScKICAgZm9yIGhhbmRsaW5nIHNjYWxhciBvYmplY3RzLgogICAKMjAwMy0wMi0xOSAyMTozOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0xOSAyMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTE5IDE2OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIHRvcCBsZXZlbCBkb3h5Z2VuIHdlYiBwYWdlIHRleHQKICAgCjIwMDMtMDItMTkgMTY6NTIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2xkX2FwaS4zCiwgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zZXRfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMy0wMi0xOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcnVuIHRoZSBjb2x1bW5fZW51bSBhbmQgY29sdW1uX2RlZmluZSAuY29uZiBmaWxlcyBhbmQgaW5jbHVkZSB0aG9zZSBoZWFkZXJzLgogICAKMjAwMy0wMi0xOSAxNjo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBBZGQgYSBAcnVuQCB0YWcgdG8gcnVuIG90aGVyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0aGUKICAgY3VycmVudCBvbmUuCiAgIAoyMDAzLTAyLTE5IDE2OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIG1vcmUgKGJhZCkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGl0ZXJhdG9yIChnYXNwKQogICAKMjAwMy0wMi0xOSAxNjo1MCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHByb2Nlc3NpbmcuCiAgIAoyMDAzLTAyLTE5IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJlbW92ZSBvbGQgdW51c2VkIGNvbW1lbnQuCiAgIAoyMDAzLTAyLTE5IDEzOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBjb252ZXJ0ZWQgYSBidW5jaCBvZiBub24tZG94eWdlbiBkb2NzIHRvIGRveHlnZW4gZG9jcy4KICAgCjIwMDMtMDItMTkgMTM6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgZG94eWdlbml6ZSBhIGZldyBkZWZpbmVzLgogICAKMjAwMy0wMi0xOCAwNzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGNvbmZpZ3VyZQogICAKMjAwMy0wMi0xNyAxMToyMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBzbXV4IHRvIGxpc3Qgb2YgbW9kdWxlcyBmb3IgZGlzdHJpYnV0aW9uOyBtb3ZlIHRlc3QgZm9yIG1ha2UgaW5zaWRlIG9mCiAgIG5zYi1tYWtlOyBhZGQgYmxhbmsgbGluZSBhYm92ZSBBQk9SVDsgcmVtb3ZlIHRlZSB0byBsb2dmaWxlLCBhcyBpdCBlYXRzCiAgIHJjIGZyb20gY29tbWFuZDsgYWRkIE5PQVVUT0RFUFM9eSB0byBhbGwgbWFrZSBzdGVwczsgZG8gbWFrZSB0b3VjaGl0IHdoZW4KICAgdGFyZ2V0ID0gYWxsOyB1c2UgbnNiLW1ha2UgZm9yIGRpc3RjbGVhbgogICAKMjAwMy0wMi0xNyAxMToxOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZG8gYW55IG9mIHRoZSBhdXRvY29uZi9hdXRvaGVhZGVyIGRlcHMgaWYgTk9BVVRPREVQPSogc3BlY2lmaWVkCiAgIAoyMDAzLTAyLTE3IDExOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgYW5vdGhlciBkaXIgbGV2ZWwgZm9yIG1ha2UgZGVwZW5kcyAocGVyIERTLCBmcm9tIGEgd2hpbGUgYmFjayAtIHRob3VnaHQKICAgdGhpcyB3YXMgYWxyZWFkeSBjaGVja2VkIGluKQogICAKMjAwMy0wMi0xNyAwNzozMCAgbmJhCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTm90ZSBhYm91dCBiYWQgL3Vzci94cGc0L2Jpbi9zZWQKICAgCjIwMDMtMDItMTcgMDY6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgVGhlIGluY2x1ZGUgZm9yIGRtYWxsb2MgYmV0dGVyIGNvbWUgYWZ0ZXIgdGhlIHN0ZCBpbmNsdWRlcwogICAKMjAwMy0wMi0xNyAwNTozNiAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIERvbnQgc2VhcmNoIC91c3IvbG9jYWwgZm9yIGRtYWxsb2MgdW5sZXNzIHVzZXIgZXhwbGljaXRseSBhc2tzIGZvciBpdAogICAKMjAwMy0wMi0xNyAwNTozNCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIGJhY2sgdGhlIGRldmVsb3BlciB3YXJuaW5ncwogICAKMjAwMy0wMi0xNyAwNTozMyAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0ZXh0IGZvciBzb2NrbGVuX3QKICAgCjIwMDMtMDItMTcgMDU6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBTb21lIGVycm9yIG1lc3NhZ2VzIGZvciBTb2xhcmlzCiAgIAoyMDAzLTAyLTE3IDA0OjIzICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTkVULVNOTVAtVEMgbWliCiAgIAoyMDAzLTAyLTE0IDA3OjQxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgaW5jbHVkZUFsbERpc2tzCiAgIAoyMDAzLTAyLTE0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZGlzay5oOgoKICAgUGF0Y2ggIzY1NTQ0NCBmcm9tIFNyaWthbnRoIFBpbmRpcHJvbGk6CiAgICAgSW1wbGVtZW50IGEgbmV3IGluY2x1ZGVBbGxEaXNrcyBzbm1wZC5jb25mIHRva2VuIHRvIHBsYWNlIGFsbCBmb3VuZAogICAgIGRpc2tzIGludG8gdGhlIGRza1RhYmxlIGxpc3RpbmcuCiAgIAoyMDAzLTAyLTEzIDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNS0wLXBhdGNoZXMuMSksIHZhcl9yb3V0ZS5jCjoKCiAgIFBhdGNoICM2NTQzMjk6IGRvdWJsZSBjaGVjayBsZW5ndGhzIHdoZW4gY29weWluZwogICAKMjAwMy0wMi0xMyAxNDo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMKLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0tZGlzYWJsZS1taWItbG9kYWluZyByZW1vdmVzIHRoZSBtaWIgbG9hZGluZyBjb2RlIGZyb20gYnVpbGRzLgogICAgIChvaWQgcHJpbnRpbmcgYXJlIGZvcmNlZCBudW1lcmljKQogICAgIFRoaXMgc2F2ZXMgYWJvdXQgYWJvdXQgMjAwayBpbiBiaW5hcnkgc2l6ZSBvbiBhIGxpbnV4IGJveC4KICAgICBUaGlzIHNhdmVzIGFib3V0IGFib3V0IDEwMGsgaW4gcnVubmluZyBzaXplIG9uIGEgbGludXggYm94IChhc3N1bWluZwogICAgICAgdGhlIHdpdGgtbWliLWxvYWRpbmcgaXMgYWN0dWFsbHkgbm90IGxvYWRpbmcgYW55dGhpbmcganVzdCB0byBiZQogICAgICAgZmFpciwgb3RoZXJ3aXNlIGl0cyBhYm91dCA+NTAwaykuCiAgIAoyMDAzLTAyLTEzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTkVXUywgYWNsb2NhbC5tNCwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gTWlzYyBjb25maWd1cmUgY2hhbmdlcy9maXhlcyAoZWcsIG91dHB1dCB0aGUgZGlzYWJsZWQgc3RhdGVzIGZvciBwZXJsKQogICAtIEEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMgICAgICAgICAgRG8gbm90IGJ1aWxkIHRoZSBhcHBzIChzbm1wZ2V0LCAuLi4pLgogICAgIC0tZGlzYWJsZS1hZ2VudCAgICAgICAgICAgICAgICAgRG8gbm90IGJ1aWxkIHRoZSBhZ2VudCAoc25tcGQpLgogICAgIC0tZGlzYWJsZS1tYW51YWxzICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIG1hbnVhbHMuCiAgICAgLS1kaXNhYmxlLXNjcmlwdHMgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgc2NyaXB0cyAobWliMmMsIC4uLikuCiAgICAgLS1kaXNhYmxlLW1pYnMgICAgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgbWliIGZpbGVzLgogICAKMjAwMy0wMi0xMyAwNjo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBjaGVjayBlbnRyeSBub2RlIGFzIHN1Z2dlc3RlZCBieSBJcmZhbiBTaGVyaWZmCiAgIAoyMDAzLTAyLTEzIDA1OjU5ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBSZW1vdmUgaW52YWxpZCAndGVzdGluZycgY29uZmlnX2ZpbGUgdGFyZ2V0LgogICBTaW5jZSB0aGlzIGlzIGEgZGlyZWN0b3J5LCAnY29uZmlnLnN0YXR1cycgZmFpbHMgdG8gY3JlYXRlIGl0LgogICAKICAgSSdtIG5vdCBxdWl0ZSBzdXJlIHdoZXJlIHRoaXMgYXBwZWFyZWQgZnJvbS4gIEl0J3Mgbm90IHBhcnQgb2YKICAgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mIDIuNTMsIGJ1dCBpdCBtaWdodAogICBoYXZlIGJlZW4gaW50cm9kdWNlZCBiZXR3ZWVuIHRoZXJlIGFuZCAyLjU3LgogICAKMjAwMy0wMi0xMyAwMjoxMCAgZHRzMTIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIE1lY2hhbmlzbSBmb3IgcGFzc2luZyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gdGhlIHRlc3QgcnVuLgogICBTdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMy0wMi0xMiAxMTozMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgaW5jbHVkZSBhZ2VudC9taWJncm91cCBoZWFkZXJzIGZyb20gJHtzcmNkaXJ9CiAgIAoyMDAzLTAyLTEyIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gdXBncmFkZSBjb25maWd1cmUgdG8gYXV0b2NvbmYgMi41NwogICAtIFRoaXMgaXMgZnVuY3Rpb25hbCBub3csIGJ1dCBub3QgYWxsIGZsYWdzLCBmZWF0dXJlcyBhbmQgdGVzdHMgaGF2ZQogICAgIGJlZW4gdGVzdGVkLiAgUGxlYXNlIHJlcG9ydCBlcnJvcnMhICBUaGVyZSBhcmUgbW9yZSB0aGluZ3MgdG8gZG8sCiAgICAgbGlrZSBjb252ZXJzaW9uIG9mIGxvY2FsIG1hY3JvcyAoZWcsIFNUUlVDVF9GT1IpIHRvIGF1dG9jb25mCiAgICAgbmV3ZXIgc3RhbmRhcmQgbWFjcm9zLgogICAKMjAwMy0wMi0xMiAwNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmggKFY1LTAtcGF0Y2hlcy4xKSwgdHVubmVsLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIHR1bm5lbC5oOgoKICAgdXBkYXRlCiAgIAoyMDAzLTAyLTExIDE4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgb25seSBkZWZpbmUgc3R1ZmYgaWYgaGF2ZV9yZWdleCBpcyBkZWZpbmVkCiAgIAoyMDAzLTAyLTExIDE4OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJ1biBjb25maWdfcmVxdWlyZSBjaGVja3MgdGhyb3VnaCBjcHAKICAgCjIwMDMtMDItMTEgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgSXJmYW4gU2hlcmlmZiBwb2ludGVkIG91dCBhIGJ1ZyB3aXRoIGdldG5leHQgcmVxdWVzdHMgZGlyZWN0bHkgdG8KICAgYSBjb2x1bW4uCiAgIAoyMDAzLTAyLTExIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBwYXRjaCBmcm9tIENocmlzdG9waGUgVmFyb3F1aSB0byBmaXggZHJvcHBpbmcgc3RhdGUgY2hhbmdlIGZvciB0aHJlc2hvbGRzLgogICAKMjAwMy0wMi0xMSAwODoyNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHN5c3RlbS5jIChWNC0yLXBhdGNoZXMuNSksIHN5c3RlbS5jOgoKICAgUmVtb3ZlIGxhc3QgcmVtYWluaW5nIHVzZSBvZiAnbmxpc3QnIHVuZGVyIEhQLVVYIDEwICYgMTEuCiAgIEFzIHBlciBwYXRjaCAjNjU2NzczIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAzLTAyLTExIDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIENoZWNraW5nIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgYnVmZmVyIG9uY2UgaXMgc3VmZmljaWVudC4KICAgVXNpbmcgJ3N0cm5uY3B5JyBbc2ljXSB0byBjaGVjayB0aGlzIGxlbmd0aCB0d2ljZSBpcyB1bm5lY2Vzc2FyeS4uLgogICAKMjAwMy0wMi0xMSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGlmZGVmIG91dCB1bmxpa2VseS1jb3JyZWN0LWNvZGUgb24gd2luMzIKICAgCjIwMDMtMDItMTEgMDc6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgTWVzcyB3aXRoIG91dHB1dCBvZiBkb3h5Z2VuIHRvIGFkZCBzZiBsb2dvcywgZXRjLCB0byB0aGUgYm90dG9tIG9mIHRoZQogICBnZW5lcmF0ZWQgaHRtbCBmaWxlcy4KICAgCjIwMDMtMDItMTEgMDc6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXRjaCAjNjU1MTU0IGZyb20gSm9lbCBSb3NkYWhsOiBtb3JlIHByb3BlciBkZW1vbml6YXRpb246CiAgICAgLSBjbG9zZSBzdGRpbi9zdGRvdXQvc3RkZXJyIGlmIGFwcHJvcHJpYXRlLgogICAgIC0gZG91YmxlIGZvcmsuCiAgICAgLSBjaGRpciAvICAgW0knbSBub3QgY29udmluY2VkIHRoaXMgaXMgY29ycmVjdCB1bmRlciB3aW5kb3dzPyAgQW55b25lP10KICAgCjIwMDMtMDItMTEgMDc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIHBhdGNoICM2Njc2OTQgKGFub24pIHRvIGFkZCBiYWNrIG5ld2xpbmVzIHRvIHBhc3MgY29kZQogICAKMjAwMy0wMi0xMSAwNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjNjYyMTY5IGZyb20gSmFuIFdpbGxlbSBMdWl0ZW46IGRpc2tpbyBzdXBwb3J0IGZvciBEYXJ3aW4KICAgCjIwMDMtMDItMTEgMDY6MTQgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgc2V0LnQ6CgogICBGaXggdGVzdHMgZm9yIGJ1bGt3YWxrIChkdXBsaWNhdGUgaGVhZGVyKSBhbmQgc2V0IChpbnZhbGlkIE9JRCBjb25zdGFudCkKICAgCjIwMDMtMDItMTEgMDQ6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgQWNjb21tb2RhdGUgYSBmdXNzeSBJUklYIGVudmlyb25tZW50LCB3aGljaCBpcyBwaWNreSBhYm91dCA8dW5pc3RkLmg+CiAgIFNlZSBidWcgIzY2NzcyNgogICAKMjAwMy0wMi0xMCAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIGZpeCBpbmRlbnQgY29tbWVudCBkYW1hZ2UuCiAgIAoyMDAzLTAyLTEwIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgRVhURU5TSUJMRSAtPiBVQ0RBVklTX01JQgogICAKMjAwMy0wMi0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMTAgMTU6MzggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEw6CgogICBmaXggbXkgZGVjbGFyYXRpb25zIGFzIHBvaW50ZWQgb3V0IGJ5IEFuZHJldyBQYWdlCiAgIAoyMDAzLTAyLTEwIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgZmlsZSBuYW1lIHR5cG8KICAgCjIwMDMtMDItMTAgMDc6NTcgIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgbHRtYWluLnNoLAogICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgVXBkYXRlIGxpYnRvb2wgdG8gMS40LjMKICAgCjIwMDMtMDItMTAgMDc6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICB0dXJuIG9uIGxvZ19tYXRjaCBieSBkZWZhdWx0CiAgIAoyMDAzLTAyLTEwIDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBDaHJpc3RvcGhlIFZhcm9xdWkgdG8gdGhlIHRoYW5rcyBmb3IgaGlzIERJU01BTiBwYXRjaGVzCiAgIAoyMDAzLTAyLTA5IDEwOjAyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFuIGFkZGl0aW9uYWwgY2hhbmdlIHRvIHN1cHBvcnQgJ3QnIGhpbnRzCiAgIAoyMDAzLTAyLTA2IDIxOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4Lmg6CgogICBGb3IgbGludXgsIHVzZSAvcHJvYy9YL3N0YXR1cyBpbnN0ZWFkLiAgSXQgaGFzIHRoZSBuYW1lIG9mIHByb2Nlc3NlcwogICB3aGVuIC9wcm9jL2NtZGxpbmUgZG9lcyBub3QuICBBIGRlZmluZSAoY29tbWVudGVkIG91dCkgd2FzIHB1dCBpbgogICBzeXN0ZW0vbGludXguaCB0byByZXZlcnQgdG8gcHJldmlvdXMgYmVoYXZpb3IgaWYgZGVzaXJlZC4gIEknbSBub3QKICAgc3VyZSBhdCB3aGljaCBrZXJuZWwgcmVsZWFzZSB0aGUgc3RhdHVzIGZpbGUgd2FzIGFkZGVkLgogICAKMjAwMy0wMi0wNiAyMDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQWRkIGEgZGVidWdnaW5nIHRhZyAicHJvYyIgd2hpY2ggcHJpbnRzIHByb2Nlc3MgbmFtZXMgYXMgZm91bmQgaW4gc29sYXJpcy4KICAgKHRoaXMgc2hvdWxkIGJlIG5pY2Ugd2hlbiBzZWFyY2hpbmcgZm9yIHVua25vd24gZXhhY3QgcHJvY2VzcyBuYW1lcykKICAgCjIwMDMtMDItMDYgMTE6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBwYXRjaCAjNjc0MjE4OiByZW9wZW4gbG9nIGZpbGVzIG9uIEhVUC4KICAgCjIwMDMtMDItMDYgMTA6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMDYgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIFBhdGNoIGZyb20gQ2hyaXN0b3BoZSB0byBzdXBwb3J0IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTA1IDIyOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIEEgbWliMmMgZmlsZSB0aGF0IGdlbmVyYXRlcyBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0byBjaGVjayB0aGUgdmFsdWUgb2YKICAgaW5jb21pbmcgU0VUIHJlcXVlc3RzLgogICAgIChub3QgY29tcGxldGUgeWV0LiAgTmVlZHMgc3VwcG9ydCBmb3IgQklUUyBlbnVtcyBhbmQgYSBoZWFkZXIgZmlsZQogICAgIHdpdGggcHJvdG90eXBlcykKICAgCiAgIEhhcHB5IEJpcnRoZGF5IChsYXRlKSB0byBSb2JlcnQuCiAgIAoyMDAzLTAyLTA1IDIyOjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFN1cHBvcnQgZm9yIGZvcmVhY2ggb24gcmFuZ2VzLgogICAKMjAwMy0wMi0wNSAwMzoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB0aGUgbG9jYWwtb25seSBhY2Nlc3MgZm9yIG5vbi1zdGFuZGFyZCBwb3J0IEFnZW50WCBjb25uZWN0aW9ucy4KICAgCjIwMDMtMDItMDUgMDE6MTMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIERvbid0IHByb21wdCBmb3IgYW4gYXV0aGVudGljYXRpb24gcGFzcy1waHJhc2UsIGlmIG9uZSBoYXMgYWxyZWFkeQogICBiZWVuIHN1cHBsaWVkLiAgUmVwb3J0ZWQgYnkgRGFycmVuIEdhbWJsZS4KICAgCjIwMDMtMDItMDQgMDY6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBkZXNjcmliaW5nIGNvbmZpZ3VyaW5nIEFnZW50WCBvbiBhIG5vbi1zdGFuZGFyZCBwb3J0LgogICAKMjAwMy0wMi0wMyAwNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc25tcF9hcGkuYzoKCiAgIEZyb20gUmljaGFyZCBMYWluZzogY2hhbmdlIHZhbHVlIGNoZWNrIG9mIGEgc3RyaW5nIHRvIHVzZSBhIHByb3BlciBsZW5ndGguCiAgIAoyMDAzLTAxLTI5IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGVybCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgZnJvbSBIYXJyaWUKICAgCjIwMDMtMDEtMjQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzY3MjAyMSBmcm9tIEpvc2h1YSBHaWxlczogbGFyZ2Ugc2V0IHJlcXVlc3QgZml4ZXMKICAgCjIwMDMtMDEtMjIgMTQ6NDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgSGF2aW5nIGZvdW5kIGEgbmV3IHJvdyB0byB3b3JrIHdpdGgsIHVwZGF0ZSB0aGUgaW5kZXggdmFsdWVzIGFzIHdlbGwuCiAgIFRoaXMgc2VlbXMgdG8gZml4IHRoZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBPSUQgYmVpbmcgcHJvY2Vzc2VkCiAgIGFuZCB0aGUgaW5kZXggdmFyYmluZHMuCiAgIAoyMDAzLTAxLTIwIDE5OjExICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN0cmluZyB0ZXN0IGNhc2UgZm9yIGJpbmFyeSBhcnJheSB0ZXN0aW5nCiAgIAoyMDAzLTAxLTIwIDE5OjExICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXhlcyBmb3IgYXJyYXlfcXNvcnQgLSBub3QgcXVpdGUgc3VyZSB3aHkvaG93IGl0IHdvcmtlZCBiZWZvcmUuLjotLwogICAKMjAwMy0wMS0yMCAxOTowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBuZXcgbmV0c25tcF9jb21wYXJlX21lbTsgZml4IHR5cG8gaW4gZGVidWcgbWVzc2FnZQogICAKMjAwMy0wMS0yMCAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjcmVhdGUgbWQ1c3VtcyBhZnRlciBjcmVhdGluZyBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMTQgMDY6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciAxNi1iaXQgcmVxdWVzdElEcywgZXRjIC0gZm9yIHRhbGtpbmcgdG8gYnJva2VuIGFnZW50cy4KICAgKEFzIHBlciBhIHN1Z2dlc3Rpb24gb2YgTmllbHMsIGluIGRpc2N1c3Npb24gd2l0aCBIZW5yaWsgT3N0ZXJnYWFyZCBNYWRzZW4pCiAgIAoyMDAzLTAxLTE0IDA1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYwosIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb3h5Z2VuIGNoYW5nZXMKICAgCjIwMDMtMDEtMTMgMTg6NDkgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMyAxNzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZWNvZ25pemUgbmV3ICd0JyBjb2RlIGluIGRpc3BsYXkgaGludHMKICAgCjIwMDMtMDEtMTMgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXRjaCBmb3IgbWVtb3J5IGxlYWtzIHNlbnQgdG8gY29kZXJzIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMTAgMjI6MjcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcgKQogICAKMjAwMy0wMS0xMCAyMjoyNiAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTAgMjI6MTUgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGNvbmZpZ3VyZS1zdW1tYXJ5CiAgIAoyMDAzLTAxLTEwIDIyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wMS0xMCAyMjowOCAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgdmFyaWF0aW9ucyBvZiBjaGFuZ2Vsb2cuYWRkCiAgIAoyMDAzLTAxLTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBkb3h5Z2VuIG91dHB1dCB0YWdzIHRvIHB1dCB0aGUgcmVjZW50bHkgZGVmaW5lZCBmdW5jdGlvbnMgaW50byBncm91cHMuCiAgIAoyMDAzLTAxLTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlcwogICAKMjAwMy0wMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBvcHBzCiAgIAoyMDAzLTAxLTEwIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkb3VibGUgY2hlY2tpbmcgb3V0cHV0CiAgIAoyMDAzLTAxLTEwIDExOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggcG9zaXRpb25hbCBhcmd1bWVudHMKICAgCjIwMDMtMDEtMTAgMDY6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIFJlZmVyZW5jZSBCcnVjZSBTaGF3J3MgZGlzY3Vzc2lvbiBvZiB0aGUgcGVybCBjb21waWxhdGlvbiBwcm9ibGVtcwogICAoc2VlIFJFQURNRS5zb2xhcmlzKQogICAKMjAwMy0wMS0xMCAwNTozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiBBZ2VudFggdW5kZXIgd2luZG93cywgYW5kIGJlZWYgdXAgdGhlIHBlcmwgc3R1ZmYgYSBiaXQuCiAgIEFkZCBhIG1pc3NpbmcgZW50cnkgaW4gdGhlIGNvbnRlbnRzIGxpc3QuCiAgIChUaGlzIG1heSBwcm92ZSB0b28gbGF0ZSBmb3IgNS4wLjgsIGJ1dCBhdCBsZWFzdCBpdCdsbCBiZSByZWFkeSBmb3IgbmV4dCB0aW1lISkKICAgCjIwMDMtMDEtMDkgMTU6NDEgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTU6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTU6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaDoKCiAgIGVuZC1vZi1tb2RlIGhlbHBlciB0byBjYWxsIG1vcmUgaGFuZGxlcnMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbWFpbgogICBsaW5lLiAgRnVuY3Rpb25hbGx5IGFsbG93cyBwYXJhbGxlbCBoYW5kbGVyIHRyZWVzIGFuZCBjYWxsYmFja3MgYWZ0ZXIKICAgYSBwYXJ0aWN1bGFyIG1vZGUgaXMgY29tcGxldGVkICh1c2VmdWwgZm9yIHRoaW5ncyByZWdpc3RlcmVkIHVuZGVyIGEKICAgc2VyaWFsaXplIGhhbmRsZXIgd2hlbiB5b3UgZG9uJ3Qga25vdyB3aGVuIHRoZSBtb2RlIGlzIG92ZXIpLgogICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gcHJvZHVjdGlvbiBjb2RlIHlldC4pLgogICAKMjAwMy0wMS0wOSAwODo1NSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgcGVybCBzaGFyZWQvc3RhdGljIGxpYnJhcnkgcHJvYmxlbSwKICAgdGhlIHVucmVzcG9uc2l2ZSBhZ2VudCBwcm9ibGVtIChhbmQgZml4KSwgYW5kCiAgIGRpc2NsYWltIGFsbCBrbm93bGVkZ2Ugb2YgRGF2aWQgVG93bidzIE5ldDo6U05NUCBtb2R1bGUsCiAgIAoyMDAzLTAxLTA5IDA3OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNjBzbm1wdjJjYnVsa2dldCwgVDAyMjBzbm1wdjNidWxrZ2V0CjoKCiAgIEdldEJ1bGsgdGVzdGluZyBzdXBwbGllZCBieSBYaWFvZmVuZyBMaW5nCiAgIAoyMDAzLTAxLTA5IDA3OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQWRkIC14IGZsYWcgZm9yIGNhbGxpbmcgc3VidGVzdHMgd2l0aCAic2ggLXgiLgogICBGaXggbnVtYmVyIGNvdW50aW5nIGZvciBpbnRlcmFjdGl2ZSBvdXRwdXQuCiAgIAoyMDAzLTAxLTA3IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuOCksIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQogICAKMjAwMy0wMS0wNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIGlyYyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKICAgCjIwMDMtMDEtMDcgMDg6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBidWcgIzY2MzYyOCBhbmQgcGF0Y2g6IGZpeCBpcCBhZGRyZXNzIGluZGV4IHBhcnNpbmcgZnJvbSBPSURzCiAgIAoyMDAzLTAxLTA3IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IGNvZGUgdG8gZnJlZSAnY2FsbGJhY2tfZGF0YV9rZWVwJyBkYXRhLgogICBUaGlzIGJyYW5jaCB3b3VsZCBuZXZlciBiZSBpbnZva2VkLCBhbmQgaXMgaW4gdGhlIHdyb25nCiAgIHBsYWNlIGFueXdheS4gIFBhdGNoIHN1cHBsaWVkIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMDYgMDg6MTYgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgU29sYXJpcyA5IGhlYWRlcgogICAKMjAwMy0wMS0wNSAxNToxNCAgbmJhCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTQ6MjggIG5iYQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIHdpbjMyLm9wdAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxMjo0NSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsCiAgIFNOTVAtTVBELU1JQi50eHQsIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dAosIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItVE0udHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb25zCiAgIAoyMDAzLTAxLTAzIDEyOjUwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBjYWxsIEFDX0RJU0FCTEVfU0hBUkVELCBhcyBzZXRzIHRoZSBkZWZhdWx0IHRvIGRpc2FibGVkIChpdCdzIHZlcnkKICAgcHJlc2VuY2UgaW4gY29uZmlndXJlLmluIGdlbmVyYXRlcyBhIGNvbmZpZ3VyZSB3aXRoIHNoYXJlZCBkaXNhYmxlZCwgZXZlbgogICBpZiBpdCB3YXMgaW4gYW4gaWYgYmxvY2s7IGZvciBkZXZlbG9wZXIgZGVmYXVsdCwgc2V0IGVuYWJsZV9zaGFyZWQgZGlyZWN0bHkKICAgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IHNldDsgdGVzdCB0aGF0IGVuYWJsZV9zaGFyZWQ9eWVzIGZvciBlbWJlZGRlZC1wZXJsCiAgIAoyMDAzLTAxLTAzIDA1OjAyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTWVudGlvbiB0aGUgU3RyYXR1cyBWT1MgcG9ydC4gKFRoYW5rcyB0byBCcmFuZG9uIEhhbGwpCiAgIAoyMDAzLTAxLTAyIDE1OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgcGFyZW5zIGFyb3VuZCB4IGluIG1hY3JvIGluIGNhc2UgeCBpcyBtdWx0aXBsZSBDIHRva2VucwogICAKMjAwMi0xMi0yMiAwOTozMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLAogICBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTIgKQogICAKMjAwMi0xMi0yMiAwOTozMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMgogICAKMjAwMi0xMi0yMiAwOToyMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMjAgMDQ6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNsZWFuIGF3YXkgbmV0LXNubXAtY29uZmlnIG9uIG1ha2UgY2xlYW4KICAgCjIwMDItMTItMjAgMDQ6NTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHN0YXNoIHRoZSBvaWRfc3Rhc2ggLi4uCiAgIAoyMDAyLTEyLTIwIDAxOjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQSBwYXRjaCBmcm9tIFY0IHRoYXQgZGlkbid0IG1ha2UgaXQgLi4uIGFsbG93IGxpc3Qgb2YgbnVtZXJpYyBiaXRzIHNldHRpbmcgQklUUwogICAKMjAwMi0xMi0xOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGFkZCBhIGdsb2JhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgcmVnaXN0ZXJpbmcgZGlyZWN0bHkgdmlhIGEgY2FsbGJhY2suCiAgIAoyMDAyLTEyLTE5IDIzOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYWRkIGNhbGxiYWNrLmgKICAgCjIwMDItMTItMTkgMjM6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZSByZW5hbWluZy4gIChzbnByaW50ZiBjaGFuZ2UgbWlzdGFrZSkKICAgCjIwMDItMTItMTkgMjM6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzb21lIG5ldyByb3V0aW5lcyBmb3Igc2F2aW5nIG9pZCBzdGFzaCBkYXRhIHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gY3VycmVudCBwcm9kdWN0aW9uIGNvZGUpCiAgIAoyMDAyLTEyLTE5IDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gd2F0Y2ggZm9yIHVuZGVmcyBwYXNzZWQgaW4gYXMgYSB2YWx1ZSB0byBhIFNFVCBjbGF1c2UuCiAgIC0gY2hhbmdlIEJJVFMgdG8gYSBPY3RldCBTdHJpbmcgYXMgaXQgc2hvdWxkIGJlLgogICAgIC0gb24gYSBzaWRlIG5vdGUsIGRvIHlvdSBrbm93IHRoYXQgdGhlIE5ldC1TTk1QIHBhcnNlciBkb2Vzbid0CiAgICAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIEJJVFMgYW5kIEJJVCBTVFJJTkcgaW4gaXQncyBsaXN0IG9mIHR5cGVzPyAgSQogICAgICAgZG9uJ3QgdGhpbmsgaXQncyBwb3NzaWJsZSB0byB1c2UgYm90aCB0eXBlcyBpbiB0aGUgY29kZSB0b2RheQogICAgICAgKHdoaWNoIGlzIGZpbmUsIHNpbmNlIEJJVCBTVFJJTkcgaXMgbm90IHVzZWQgaW4gU05NUHYyIGFuZCBiZXlvbmQpLgogICAKMjAwMi0xMi0xOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcHJpbnQgYSB3YXJuaW5nIHdoZW4geW91IGNhbid0IHBhcnNlIGFuIE9JRCAoZXJyLCBub3QgaWRlYWwpCiAgIAoyMDAyLTEyLTE5IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBza2lwIFNFVGluZyBjb2x1bW5zIHdpdGggbm8gdmFsdWUgcGFzc2VkIGluLgogICAKMjAwMi0xMi0xOSAxMTo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvZXhhbXBsZS5jLCBob3N0L2hyX25ldHdvcmsuYwosIGhvc3QvaHJfc3dpbnN0LmM6CgogICBCZWluZyBhIGJpdCBxdWljaywgZWgsIERhdmUgLi4uCiAgIAoyMDAyLTEyLTE5IDA4OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMgKFY0LTItcGF0Y2hlcy4yKSwgYXQuYzoKCiAgIEVuc3VyZSB0aGUgaWZuYW1lIGJ1ZmZlciBpcyBiaWcgZW5vdWdoIHRvIHJlYWQgaW4gYSBmdWxsLWxlbmd0aCBuYW1lLgogICAoRnJvbSB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYwogICAoVjQtMi1wYXRjaGVzLls4LDksMywzLDBdKSwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmM6CgogICBEZXRlY3Qgd2hlbiBtZW1vcnkgYWxsb2NhdGlvbnMgZmFpbCwgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzLgogICAoQmFzZWQgb24gY2hhbmdlcyB3aXRoaW4gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMDc6MDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFRoZSBHcmVhdCBTVVNFICdzcHJpbnRmJyBIdW50Li4uLi4KICAgCjIwMDItMTItMTkgMDM6MDIgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSBjb2RlIHdpdGggQlNEaTQKICAgCjIwMDItMTItMTkgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoYW5nZSBhIGNvbW1lbnQgdGhhdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRoZSB0cmFuc3BvcnQgc3R1ZmYKICAgICAtIGZpeCBzb21lIHBhcnRpY3VsYXJseSBiYWQgZm9ybWF0dGluZyBpbiBzbm1wX29wZW5fZXgKICAgCjIwMDItMTItMTggMTA6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHJlbW92ZSBtZW0tbGVhayBjb21tZW50LiAgT3V0IG9mIGRhdGUgYW5kIHdhcyBmaXhlZAogICAKMjAwMi0xMi0xOCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgZGVsZXRlIGV4cGVyaW1lbnRhbCB3YXJuaW5nIGFib3V0IGFnZW50eAogICAKMjAwMi0xMi0xOCAxMDo0MCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgZml4IGJ1ZyM2NTU0ODg6IGRlc2NyaXB0aW9ucyBvZiBzc0lPUmF3UmVjZWl2ZWQgYW5kIHNzUmF3SW50ZXJydXB0cyB3ZXJlIHJldmVyc2VkCiAgIAoyMDAyLTEyLTE4IDA1OjE5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzdGRlcnIgbG9nZ2luZyBvbiBIVVAgKGlmIC1MIHdhcyBnaXZlbiBvbiBjb21tYW5kIGxpbmUpCiAgIAoyMDAyLTEyLTE3IDE2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlICc7JyBmcm9tIGRlZmluZTsgaWYgdGFibGUgaGFzIGEgc3RvcmFnZSB0eXBlLCBjaGVjayB0aGF0IGl0J3Mgbm90CiAgIHJlYWQgb25seSBiZWZvcmUgYWxsb3dpbmcgc2V0cwogICAKMjAwMi0xMi0xNyAxNjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIG5ldmVyIG1pbmQKICAgCjIwMDItMTItMTcgMTY6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEb24ndCBjaGVjayBmb3IgcHJlZml4ZXMgaW4gdGVzdC4gIFRoZXkgZG9uJ3QgZXhpc3QuICBIb3dldmVyLCBkbyBzZXQgU05NUENPTkZQQVRIIGluIHRlc3QgaW5pdGlhbGl6YXRpb24gdG8gYSBib2d1cyB2YWx1ZQogICAKMjAwMi0xMi0xNyAxNTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRpcmVjdCBjYWxsIHRvIGluaXRfc25tcCgpLiAgVGhpcyBpcyBhbHJlYWR5IGNhbGxlZCBieSB0aGUgLnBtIGZpbGUKICAgCjIwMDItMTItMTcgMDc6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBwZXJzaXN0ZW5jZSBmb3IgYXJyYXktdGFibGVzCiAgIAoyMDAyLTEyLTE3IDA3OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeDsgYWRkIEFTTl9USU1FVElDS1Mgdy9BU05fVU5TSUdORUQgY2FzZXMKICAgCjIwMDItMTItMTcgMDY6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRvbid0IHVzZSBTT19SRVVTRV9BRERSIHNvIGFnZW50IHBvcnQgY2FuJ3QgYmUgaGlqYWNrZWQKICAgCjIwMDItMTItMTcgMDY6NDMgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgbG9jYWwgdmFyIGZvciBiYXNlIGFnZW50IGxpYnM7IHJlb3JkZXIgYmFzZSBhZ2VudCBsaWJzIHNvIHN0YXRpYyBsaW5raW5nCiAgIHdvcmtzCiAgIAoyMDAyLTEyLTE2IDE1OjMyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBZZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nIC4uLgogICAKMjAwMi0xMi0xNiAxNDo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcmVtb3ZlIGJvZ3VzIGNvbW1lbnQgcmVmZXJlbmNlIHRvIHRhYmxlX2RhdGFzZXQgaGVscGVyLgogICAKMjAwMi0xMi0xNiAxNDo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCBhcHBzL3NubXB0cmFwZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYwo6CgogICBTcHJlYWQgc29tZSBtYWdpYyBkdXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzICh3aHkgaXNuJ3QgLS1lbmFibGUtc2xpZW50LWxpYnRvb2wgdGhlIGRlZmF1bHQgLi4uKQogICAKMjAwMi0xMi0xNiAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIChwZWVybmFtZSBpcyBjb3BpZWQgYnkgc25tcF9vcGVuX2V4KQogICAKMjAwMi0xMi0xNiAwODozMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAwODoxOSAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDA3OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZSAoY2F1c2VkIHByb2JsZW1zIG9uIFN1biA1LjcsIHJlcG9ydGVkIGJ5IGpicG4pCiAgIAoyMDAyLTEyLTE2IDA1OjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHcvb3V0IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwNToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgREVWRkxBR1M9IiIgaWYgbm90IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNSAyMzozOSAgbmJhCgogICAqIHNubXBsaWIvOiBvaWRfc3Rhc2guYywgc2NhcGkuYywgc25tcEFBTDVQVkNEb21haW4uYwosIHNubXBJUFhEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xNSAyMzozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgUG9zc2libGUgbGVhayBvZiBmZCBvbiBlcnJvciByZXR1cm4KICAgCjIwMDItMTItMTQgMDc6MjIgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMSApCiAgIAoyMDAyLTEyLTE0IDA3OjIxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA2OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFnZW50L21pYmdyb3VwOyBmaXggbW9kdWxlcyBmb3IgY29uZmlnX2Rpc3QKICAgCjIwMDItMTItMTQgMDY6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDY6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIHJldiB0byA1LjAuNwogICAKMjAwMi0xMi0xNCAwNjo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1uIHRvIGdyZXAgZm9yIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwNjo0NyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTE0IDA2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA2OjMwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHMgdG8gc29tZSBzdHJ1Y3R1cmUgbWVtYmVycwogICAKMjAwMi0xMi0xNCAwNjoyOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGVycm9ycyBkdXJpbmcgY29tbWl0IHVuZG8gc2hvdWxkIGJlIHh4RkFJTEVEOyB1c2Ugc2V0X3JlcXVlc3RfZXJyb3IgaW5zdGVhZCBvZgogICBzZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQ7IG1vcmUgZGVidWdnaW5nOyBjaGVjayBmb3IKICAgYW5kIGNhbGwgbG93ZXIgaGFuZGxlcnMKICAgCjIwMDItMTItMTQgMDY6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbHdheXMgcHJvY2VzcyBsYXRlciBwYXNzZXMgb2YgYSBzZXQgcmVxdWVzdAogICAKMjAwMi0xMi0xMyAxMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMjo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMjo0MCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIHplcm9pbmcgb2Ygc2VjdXJpdHkgZGF0YQogICAKMjAwMi0xMi0xMyAxMjozOSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBhIHBvc3NpYmxlIGZyZWVpbmcgb2YgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDItMTItMTMgMTI6MzggIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMDg6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENsZWFyIHRoZSAncHJvY2Vzc2VkJyBmbGFnIGJldHdlZW4gcGFzc2VzLCBzbyB0aGF0IGhhbmRsZXJzCiAgIGNhbiBjb3JyZWN0bHkgY2xlYW4gdXAgYWZ0ZXIgZXJyb3JzIGhhdmUgYmVlbiBkZXRlY3RlZC4KICAgCjIwMDItMTItMTMgMDg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGFkZCBhc3NlciB0byB0cnkgYW5kIGNhdGggaW50ZXJtaXR0ZW50IGNyYXNoIGkndmUgYmVlbiBzZWVpbmcKICAgCjIwMDItMTItMTMgMDg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBsb2cgdW5rbm93biBhZ2VudHggb3BlcmF0aW9uCiAgIAoyMDAyLTEyLTEzIDA3OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWYgbm8gcm93IGNyZWF0ZSBjYWxsYmFjayBvbiBzZXQsIHVzZSBOT1RXUklUQUJMRSBpbnN0ZWFkIG9mIE5PU1VDSElOU1RBTkNFCiAgIAoyMDAyLTEyLTEzIDA3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBmaXggY3V0LW4tcGFzdGUgc28gZGVsZWdhdGVkIGZsYWcgZGlzcGxheWVkIHByb3Blcmx5CiAgIAoyMDAyLTEyLTEzIDA3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBsb2cgdGV4dCAoQVBQfExJQnxUT0spIGluc3RlYWQgb2Ygc3RvcmUgaWQgaW4gZGVidWcgbXNncwogICAKMjAwMi0xMi0xMyAwNjo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCAtLXdpdGgtbGlid3JhcAogICAKMjAwMi0xMi0xMyAwNjo0OSAgcnN0b3J5CgogICAqIEZBUToKCiAgIGdyYW1tYXIvaW5kZW50aW9uIHR3ZWFrICsgbWVudGlvbiBzdHJpcCBmb3IgbWVtb3J5IGZvb3RwcmludCBxdWVzdGlvbgogICAKMjAwMi0xMi0xMyAwNjozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGV4cGxpY2l0IG1lbnRpb24gb2YgU05NUCBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KICAgVGhpcyBzZXR0aW5nIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWNlc3NhcnksIGFuZCB3aXRob3V0IGl0LAogICB0aGUgbWFuIHBhZ2UgaXMgaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkuCiAgIAoyMDAyLTEyLTEzIDA0OjQ3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSAtUyBkbyB0aGUgc2FtZSBhcyBzbm1wZCAtUyAoc2V0IHRoZSBzeXNsb2cgZmFjaWxpdHkpCiAgICAgLSBtYWtlIC1sIHByaW50IGEgd2FybmluZyBzYXlpbmcgdGhhdCBpdCBpcyBkZXByZWNhdGVkIGFuZCAtUyBzaG91bGQKICAgICAgIGJlIHVzZWQgaW5zdGVhZAogICAKMjAwMi0xMi0xMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gaW5jcmVhc2Ugd2lkdGggb2YgdG9rZW4gZmllbGQgdG8gaW1wcm92ZSBsZWdpYmlsaXR5IG9mCiAgICAgICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBoZWxwIG91dHB1dAogICAKMjAwMi0xMi0xMiAxNDo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5rbm93biAtTyBvcHRpb25zCiAgIAoyMDAyLTEyLTEyIDEyOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc29tZSBzaXplX3QgdGhhdCByZWFsbHkgc2hvdWxkIGJlIGludAogICAKMjAwMi0xMi0xMiAxMToxOCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBBIGxvbmcgb3ZlcmR1ZSBwYXRjaCAoIzQxNTI1MikgZnJvbSBSb2JlcnQgSGFzdGluZ3MgdGhhdCBpbXBsZW1lbnRzCiAgIHJldmVyc2UgRElTUExBWS1ISU5UIHByb2Nlc3NpbmcsIGkuZS4gaXQgYWxsb3dzIHlvdSB0byBpbnB1dCBkYXRhCiAgIGZvcm1hdHRlZCBsaWtlIHRoZSBESVNQTEFZLUhJTlQgcHJlc2NyaWJlcy4gRW5hYmxlZCBieSBkZWZhdWx0LCBidXQKICAgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhlIC1JaCBvcHRpb24gb3Igbm9EaXNwbGF5SGludCBpbiBzbm1wLmNvbmYKICAgCjIwMDItMTItMTIgMTA6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHBhcnNlIG9pZHMgaW4gdmlldyBzdGF0ZW1lbnRzIHRoZSBzYW1lIHdheSB0aGUgYXBwcyBkbyBpdCAoY29uc2lzdGVuY3ksIGhlIHNhaWQpCiAgIAoyMDAyLTEyLTEyIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQWRkIGEgZ2V0Um9vdE9JRCBmdW5jdGlvbiB0byB0aGUgcmVnaW5mbyBwb2ludGVyIHBhc3NlZCBpbnRvIGhhbmRsZXJzLgogICAKMjAwMi0xMi0xMiAxMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNoYW5nZSBjcmVhdGUgYW5kIGR1cGxpY2F0ZSByb3cgdG8gcmV0dXJuIHNwZWNpZmljIGNvbnRleHQgaW5zdGVhZCBvZiBnZW5lcmljCiAgIG5ldHNubXBfaW5kZXg7IGNhdGNoIGVycm9yIGZyb20gcGFyc2Vfb2lkX2luZGV4ZXMgb24gcm93IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEyIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIFByaW50IGVycm9ycyB0byBTVERFUlIgaW5zdGVhZC4KICAgICAoYWN0dWFsbHkgZG9uJ3QgYmVjYXVzZSB0aGVzZSBzdGF0ZW1lbnRzIGFyZSBjb21tZW50ZWQgb3V0IGluIHRoZQogICAgIGZpcnN0IHBsYWNlKQogICAKMjAwMi0xMi0xMiAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJldmVyc2UgdGhlIGNvbnRleHQgb2YgYSBjb250ZXh0IGlmIHN0YXRlbWVudCBzbyBpZiBub3QgdGhlIGNvbnRleHQKICAgdGhlbiBkb24ndCB1c2UgdGhlIGNvbnRleHQgaW4gdGhlIGdpdmVuIGNvbnRleHQuCiAgIAoyMDAyLTEyLTEyIDA5OjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCBsb25nLWRlcHJlY2F0ZWQgLXEgYW5kIC1TIG9wdGlvbnMKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMTItMTIgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBtZXNzYWdlIGluIHVzYWdlCiAgIAoyMDAyLTEyLTEyIDA4OjM3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuMS5kZWYsIGFnZW50L3NubXBkLmM6CgogICBJbXBsZW1lbnQgYSBjb21tYW5kLWxpbmUgb3B0aW9uICgtUykgdG8gc2V0IHRoZSBmYWNpbGl0eSB0byB1c2Ugd2hlbgogICBsb2dnaW5nIHZpYSBzeXNsb2cuICAgQmFzZWQgb24gYW4gaWRlYSBieSBKb2VsIFJvc2RhaGwgKFBhdGNoICM2Mjc3MDEpCiAgIE5vdGUgdGhhdCAtbCBhbmQgLUwgYXJlIGFscmVhZHkgdGFrZW46LSgKICAgCiAgIFRvRG86CiAgICAgUHJvdmlkZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgZm9yIGJvdGggdGhpcywgYW5kIHRoZSBzeXNsb2cgdG9rZW4gKCdzbm1wZCcpLgogICAKMjAwMi0xMi0xMiAwODoxOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwo6CgogICBTdXBwb3J0IHNldHRpbmcgb2Ygc3lzRGVzY3IgYW5kIHN5c09iamVjdElEIHZpYSBzbm1wZC5jb25mCiAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyAodGhvdWdoIG5vdCB2aWEgU05NUCBTRVQgcmVxZXN0cykuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3NzAyIGFuZCAjNjI4MDExKQogICAKMjAwMi0xMi0xMiAwNzo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIHRhYmxlLmM6CgogICBTdXBwcmVzcyBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBDaHJpcyBKb2hucyAoIzY0NDA0MSkKICAgCjIwMDItMTItMTIgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBVc2UgJ3N5c2NvbmYnIHRvIHJlcG9ydCBvbiBTb2xhcmlzIG1lbW9yeSB1c2FnZS4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmVuIFN0ZXJuICgjNjUxMTgyKQogICAKMjAwMi0xMi0xMiAwNzowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQmFzaWMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgQWdlbnRYIHNvY2tldHMgKG9uIHRoZSBtYXN0ZXIgc2lkZSBhdCBsZWFzdCkuCiAgIFNlZSBGZWF0dXJlIFJlcXVlc3QgIzYzMjU1NgogICAKMjAwMi0xMi0xMiAwNTo1NyAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBjcmVhdGUgdmVyc2lvbiB0YWcgZnJvbSB2ZXJzaW9uIHNvIGN2cyBleHBvcnQgd29ya3M7IGZpeCBSRUw7IGFkZCB0YXIuZ3oKICAgb2Ygc291cmNlIGFzIGRlcGVuZGVuY3kgZm9yIHJwbWZpbGVzCiAgIAoyMDAyLTEyLTEyIDA1OjA0ICBuYmEKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2VudW0uYywgc25tcF9zZWNtb2QuYywgc25tcF90cmFuc3BvcnQuYwo6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTIgMDQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb2N1bWVudCB0aGUgLU9VIG9wdGlvbiwgYW5kIGFscGhhYmV0aXNlIHRoZSBoYW5kbGluZyBvZiBvcHRpb25zLgogICAKMjAwMi0xMi0xMiAwMzoyNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgJ3NubXBpbmZvcm0nIGFzIGEgcmVsYXRpdmUgbGluaywgcmF0aGVyIHRoYW4gYW4gYWJzb2x1dGUgb25lLgogICBGaXggcHJvdmlkZWQgYnkgdGhlIGluZGVmYXRpZ2FibGUgU3RlZmFuIFJhZG1hbiAoQnVnICM2NTI1ODcpCiAgIAoyMDAyLTEyLTEyIDAyOjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1b3RlIGNvbmZpZ3VyZSBvcHRpb25zIHdoZW4gY29udHJ1Y3RpbmcgbmV0LXNubXAtY29uZmlndXJlIGFuZCBuZXQtc25tcC1jb25maWd1cmUuaAogICBUaGlzIGFsbG93cyBvcHRpb25zIGNvbnRhaW5pbmcgc3BhY2VzLCBldGMsIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LgogICAoU2VlIEZlYXR1cmUgUmVxdWVzdCAjNTQ3MTUyKQogICAKMjAwMi0xMi0xMSAxMzo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgUGF0Y2ggZm9yIEZyZWVCU0QuIFRoYW5rcyB0byBKdW4gS3VyaXlhbWEKICAgCjIwMDItMTItMTEgMDk6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIFRyeSBkaXNhYmxpbmcgbGluZS1idWZmZXJpbmcgb24gV2luZG93cyBzeXN0ZW1zIChzaW5jZSBpdAogICBhcHBhcmVudGx5IGVuYWJsZXMgZnVsbC1idWZmZXJpbmcgaW5zdGVhZCkuICBTZWUgQnVnICM1NTg4MzcuCiAgIAoyMDAyLTEyLTExIDA4OjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGdldC50LCBnZXRuZXh0LnQsCiAgIG5vdGlmeS50LCBzZXQudDoKCiAgIEV4cGxpY2l0bHkgc2V0IFNOTVAgdmVyc2lvbiA9IDEgKHRoZSBvcmlnaW5hbCBkZWZhdWx0IGFzIGV4cGVjdGVkIGJ5IHRoZSB0ZXN0cykKICAgVGhpcyBzaG91bGQgbm93IHBhc3MgYWxsIHRlc3RzIGFwYXJ0IGZyb20gY29uZi50ICMzCiAgIAoyMDAyLTEyLTExIDAzOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaDoKCiAgIEJlIG1vcmUgc2VsZWN0aXZlIGluIHVzaW5nIHRoZSA2NC1iaXQgdmVyc2lvbiBvZiBubGlzdC4gKEJ1ZyAjNjExNjU1KQogICAKMjAwMi0xMi0xMSAwMzoyNyAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBub24tZnVuY3Rpb25hbGl0eSBvZiBvbmUgb2YgdGhlIHN1Z2dlc3RlZCBhcHByb2FjaGVzLgogICAoQnVnICM2MTcxMTkpLiAgIFJlcG9ydGVkIGJ5IFF1YW5haCBHaWJzb24tTW91bnQKICAgCjIwMDItMTItMTEgMDM6MjAgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgdGhlCiAgIGVtYmVkZGVkIHBlcmwgc2NyaXB0LiAgKEJ1ZyAjNjE3ODkxKSBGaXggcHJvdmlkZWQgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDItMTItMTEgMDI6NTYgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKFY0LTItcGF0Y2hlcy40KSwgUkVBRE1FLnNubXB2MzoKCiAgIERvY3VtZW50IHRoZSBsb2NhdGlvbiBhc3N1bXB0aW9ucyBiZWluZyBtYWRlIGluIHRoaXMgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgZm9yY2luZyBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBpbiBlaXRoZXIKICAgQVNDSUkgb3IgSGV4IGZvcm1hdCwgYnlwYXNzaW5nIHRoZSAiZ3Vlc3MiIG1lY2hhbmlzbSBhcyB0byB3aGljaAogICBpcyBtb3JlIGFwcHJvcHJpYXRlLiAgIFN1Z2dlc3RlZCBieSBOaWNrIEthbmFrYWtvcm4uCiAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYWZmZWN0IG9iamVjdHMgd2l0aCBhIERpc3BsYXktSGludCBpbgogICB0aGVpciBNSUIgZGVmaW5pdGlvbi4KICAgCjIwMDItMTItMTEgMDE6MzAgIGR0czEyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaAogICAoVjQtMi1wYXRjaGVzLlsyLDYsNl0pLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENvbW1hbmQtbGluZSBvcHRpb24gdG8gY29udHJvbCB3aGV0aGVyIHRvIHVubGluayB0aGUgUElEIGZpbGUgb3Igbm90LgogICBOZWNlc3NhcnkgZm9yIGNvcnJlY3QgdGVzdCBvcGVyYXRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjIxICBkdHMxMgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgVGhlIGxhdGVzdCBsaWJyYXJ5IGRlZmF1bHRzIHRvIE1PRFVMRTo6bmFtZSBzdHlsZSBvdXRwdXQsCiAgIHNvIGFkanVzdCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGNoZWNrcyBhY2NvcmRpbmdseS4KICAgQWxzbywgdGhlcmUgYXJlIGFjdHVhbGx5IDM2IHRlc3RzLCBub3QgMzUhCiAgIAoyMDAyLTEyLTExIDAxOjE3ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBJbml0aWFsaXNlIHRoZSBTTk1QIGxpYnJhcmllcywgdG8gc2V0IHVwIHRoZSBPSUQgdHJlZS4KICAgQWRkcmVzc2VzIGJ1Z3MgIzYzODAyNCBhbmQgIzYyNzY0MwogICAgIFtRbjogRG8gd2UgbmVlZCB0byBzdXBwbHkgYW4gJ2FwcG5hbWUnIChjLmQgdGhlIFNOTVAgbW9kdWxlKSA/XQogICAKMjAwMi0xMi0xMCAxNjoyOSAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgQWxsb3cgcnVudGltZSBjb25maWd1cmF0aW9uIG9mIHBlcnNpc3RlbnQgZGlyZWN0b3J5CiAgIAoyMDAyLTEyLTEwIDE2OjI0ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVwb3J0IGVycm9ycyBoYW5kbGluZyBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMKICAgCjIwMDItMTItMTAgMTY6MjMgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGFzcyB1cCBlcnJvciBvbiBkaXJlY3RvcnkgY3JlYXRpb24KICAgCjIwMDItMTItMTAgMTQ6MjcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQmV0dGVyIHJlc3BlY3QgZm9yIHRoZSBtYXggd2lkdGggb3B0aW9uIChzbm1wdHJhbnNsYXRlIC1UZCkKICAgCjIwMDItMTItMTAgMTQ6MjYgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG9pZE91dHB1dEZvcm1hdCBvcHRpb24KICAgCjIwMDItMTItMTAgMTQ6MjUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ2xlYW4gdXAuIFJlbW92ZSBjYWxscyB0byBvYnNvbGV0ZSBmdW5jdGlvbnMgc25tcF9zZXRfcXVpY2tfcHJpbnQsCiAgIHNubXBfZ2V0X2R1bXBfcGFja2V0LCBzbm1wX2dldF9zdWZmaXhfb25seS4gUmVtb3ZlIGxhc3QgdHJhY2VzIG9mIHRoZQogICBub25fc2VxdWVudGlhbCBiYWNrd2FyZHMgaGFjay4gTWFrZSBzdXJlIGl0IHdvcmtzIGZvciBhbGwgLU8gb3B0aW9ucy4KICAgCjIwMDItMTItMTAgMDg6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuNiksCiAgIGludGVyZmFjZXMuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBlbXB0eSBsaW5lcyBpbiAvcHJvYy9uZXQvZGV2ICAoQnVnICM2MjU0MjYpCiAgIAoyMDAyLTEyLTEwIDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcHYzLmM6CgogICBGcmVlIGRlc3RpbmF0aW9uIG1lbW9yeSBiZWZvcmUgY2xvbmluZyBTTk1QIEVuZ2luZSBJRC4KICAgRml4IHByb3ZpZGVkIGJ5IE1hcnRpbiBDYXJsc3Nvbi4gIChCdWcgIzgzNTQ4MSkKICAgCjIwMDItMTItMTAgMDg6MDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgQWRkICIkQ29uZmlne2NjZmxhZ3N9IiB0byBDQ0ZMQUdTLiAgIChTZWUgYnVnICM2NDA4OTkpCiAgIAoyMDAyLTEyLTEwIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNC0yLXBhdGNoZXMuOCksIGlwQWRkci5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIExpbnV4IHZpcnR1YWwgaW50ZXJmYWNlcyBpbiB0aGUgaXBBZGRyZXNzVGFibGUuCiAgIChOb3RlIHRoaXMgZG9lcyAqbm90KiBpbmNsdWRlIHNlcGFyYXRlIHBlci12LWludGVyZmFjZSBzdGF0aXN0aWNzCiAgICBpbiB0aGUgaW50ZXJmYWNlcyB0YWJsZSkuCiAgIAogICBQYXRjaCBzdXBwbGllZCBieSBKZW5zIFNpdHRuZXIgKCM2MjEyNzQpCiAgIAoyMDAyLTEyLTEwIDAxOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgZXh0cmFuZW91cyBeTSBjaGFyYWN0ZXJzLgogICAKMjAwMi0xMi0wOSAyMzozNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGVuIHVzaW5nIC1PcXYgYW5kIHByaW50aW5nIGFuIGVtcHR5IHN0cmluZyB5b3UgY291bGQgZW5kIHVwIHdpdGgKICAgYSBOVUxMIHN0cmluZyBhbmQgbm90IGFuIGVtcHR5IHN0cmluZyBsZWFkaW5nIHRvIHNvbWUgdmVyeSBvYnNjdXJlCiAgIHByb2JsZW1zIGluIHNubXB0YWJsZSBhbmQgb3RoZXIgYXBwbGljYXRpb25zLgogICAKMjAwMi0xMi0wOSAwODoxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSGFuZGxlIG1pc3NpbmcgaW50ZWdlciB2YWx1ZXMgKHdoZXRoZXIgMzItIG9yIDY0LWJpdCEpLiAgIE9vcHMhCiAgIAoyMDAyLTEyLTA5IDA3OjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wX2FwaS5jOgoKICAgSGFuZGxlIGludGVnZXItYmFzZWQgdmFsdWVzIGNvcnJlY3RseSBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVGhvbWFzIFdlYmVyICgjNTYxMDcxKQogICAKMjAwMi0xMi0wOSAwNjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVGFrZSBub3RlIG9mIHN1YmFnZW50LXJlcXVlc3RlZCBieXRlIG9yZGVyaW5nIGluIHN1YnNlcXVlbnQgY29tbXVuaWNhdGlvbnMuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFVyYmFuICgjNjMyMjg0KQogICAKMjAwMi0xMi0wOSAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBkLmM6CgogICBSZW1vdmUgdGhlIFBJRCBmaWxlIG9uIGFnZW50IHNodXRkb3duLgogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTkpCiAgIAoyMDAyLTEyLTA5IDA2OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSGFuZGxlICdzdHJ1Y3Qgc29ja2FkZHInIHRoYXQgY29udGFpbiAnc2FfbGVuJyBmaWVsZHMgZGlmZmVyZW50bHkKICAgdG8gdGhvc2UgdGhhdCBkb24ndCAoYy5mIGlmaWx0ZXJfaW9jdGwuYyBpbiBCSU5EIDkuMi4xIHNvdXJjZXMpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5NikKICAgCjIwMDItMTItMDkgMDQ6MTIgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVjb2duaXNlIEJTRGk0LCBhbmQgdHdlYWsgdGhlIHJlY29nbml0aW9uIG9mICdkbG9wZW4nLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobC4KICAgCjIwMDItMTItMDkgMDM6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCjoKCiAgIFJlbW92ZSBzb21lIHdhcm5pbmdzLCBhbmQgdHJ5IHRvIGNvcGUgd2l0aCAnc3lzY3RsJyBmYWlsdXJlcy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBDaHJpcyBKb2hucy4KICAgCjIwMDItMTItMDkgMDE6MjAgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbGltaXRhdGlvbnMgb24gL3Vzci91Y2Ivc2VkLAogICBhbmQgcG9pbnQgcGVvcGxlIHRvd2FyZHMgL3Vzci9iaW4vc2VkIGluc3RlYWQuCiAgIAoyMDAyLTEyLTA3IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEluc2VydCBuZXdseS1jcmVhdGVkIHJvd3MgaW50byB0aGUgcGVyLXJlcXVlc3QgbGlzdHMsIHNvIHRoYXQgbG93ZXIKICAgbGV2ZWwgaGFuZGxlcnMgY2FuIGFjY2VzcyB0aGVtLgogICAgIFtRbjogU2hvdWxkIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggdXBkYXRlZCBsaXN0cyBhcyB3ZWxsP10KICAgCjIwMDItMTItMDcgMDU6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVwb3J0IGJhY2sgdGhlIGNvcnJlY3QgZXJyb3IgZm9yIHJvd3MgdGhhdCBjb3VsZG4ndCBiZSBjcmVhdGVkLgogICAKMjAwMi0xMi0wNyAwNTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhIHJvdyB0aGF0IG5ldmVyIGdvdCBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KICAgCjIwMDItMTItMDYgMTU6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIFNraXAgb24gbm9uLW9wZW5zc2wgbWFjaGluZXMuICBUSGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGp1c3Qgbm90IHVzaW5nIGVuY3J5cHRpb24gb24gdGhvc2UgbWFjaGluZXMsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSB0aW1lIGF0IHRoZSBtb21lbnQKICAgCjIwMDItMTItMDYgMTA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDA5OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IGRlbGV0ZSB0aGUgIm9sZCIgKG5vbi1leGlzdGVudCkgcm93LCB3aGVuIHRpZHlpbmcgdXAgYWZ0ZXIKICAgY3JlYXRpbmcgYSBuZXcgcm93LgogICAKMjAwMi0xMi0wNiAwODo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBUd2VhayBoYW5kbGluZyBvZiAoaW52YWxpZCkgUm93U3RhdHVzIGNyZWF0aW9uIHJlcXVlc3RzIGluIGFuCiAgICJhdXRvbWF0aWMgY3JlYXRpb24iIHRhYmxlLiAgIFRoZXNlIHNob3VsZCByZXR1cm4gd3JvbmdWYWx1ZSBvcgogICBpbmNvbnNpc3RlbnRWYWx1ZSwgcmF0aGVyIHRoYW4gbm90V3JpdGFibGUuCiAgIAoyMDAyLTEyLTA1IDAyOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN1cHBvcnQgdXNlIG9mIFJvd1N0YXR1cyBvYmplY3QgdG8gY29udHJvbCBjcmVhdGlvbiBvZiBuZXcgcm93cwogICAoaS5lLiB3aGVuIHRoZSAnYWxsb3dfY3JlYXRpb24nIGZsYWcgaXMgbm90IHNldCkuCiAgIFRoaXMgc2hvdWxkIGRlYWwgd2l0aCBldmVyeXRoaW5nIGV4Y2VwdCBkZXRlcm1pbmluZyB3aGV0aGVyIGEKICAgcm93IGlzIHJlYWR5IHRvIGdvICdhY3RpdmUnIChlLmcuIHZpYSAnY3JlYXRlQW5kR28nKS4gIFN1Y2ggYQogICBkZWNpc2lvbiBpcyBpbmhlcmVudGx5IHNwZWNpZmljIHRvIGVhY2ggaW5kaXZpZHVhbCBNSUIsIHNvIG11c3QKICAgcmVhbGx5IGJlIGRvbmUgaW4gdGhlIGxvd2VyLWxldmVsIGhhbmRsZXIuCiAgIAoyMDAyLTEyLTA1IDAyOjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN0b3AgcHJvY2Vzc2luZyB3aGVuIGEgJ25vbi13cml0YWJsZSBjcmVhdGUnIGlzIGRldGVjdGVkLgogICAKMjAwMi0xMi0wNCAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIC0gcnVuIGV2ZW50VGFibGUgZW50cmllcy4KICAgCjIwMDItMTItMDQgMTY6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYzoKCiAgIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgCjIwMDItMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmM6CgogICB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgdG8gZ2V0IHJlYWwgc3RyaW5ncyBmcm9tIG1pYiBkYXRhLgogICAKMjAwMi0xMi0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiwgbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmg6CgogICAtIGltcGxlbWVudGVkIHRoZSBtdGVFdmVudFRhYmxlIGFuZCB0aGUgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZQogICAgIC0gRllJLCB0b3RhbCBpbXBsZW1lbnRhdGlvbiB0aW1lOiBhYm91dCA0IGhvdXJzCiAgICAgLSBubyBlYXN5LXRvLXVzZSAuY29uZiB3cmFwcGVycyB5ZXQgdGhvdWdoLiAgc25tcHNldCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAyLTEyLTA0IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgLSB1c2UgdGhlIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uIHdoaWNoIGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0xMi0wNCAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBjcmVhdGUgYSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbi4KICAgLSBBbGxvdyByb3cgY3JlYXRpb24gdXNpbmcgcm93U3RhdHVzIHdoZW4gdGhlIGRhdGEgY29sdW1uIGV4aXN0cywgYnV0CiAgICAgdGhlcmUgaXMgbm8gYXNzaWduZWQgdmFsdWUgKGllLCBpcyBOVUxMKS4KICAgLSB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgaW5zdGVhZCBvZiBtZW1kdXAgdG8gbWFrZSBzdXJlIGFuCiAgICAgaW1wbGljaXQgTlVMTCBpcyBpbiBwbGFjZSBmb3IgdGhpbmdzIHRoYXQgdXNlIHRoZSBkYXRhIGFuZCBuZWVkIGl0CiAgICAgYXMgYSByZWFsIHN0cmluZy4KICAgCjIwMDItMTItMDQgMTY6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGRvY3VtZW50IC0tcHJlZml4CiAgIAoyMDAyLTEyLTA0IDEwOjE2ICBoYXJkYWtlcgoKICAgKiBORVdTIChWNC0yLXBhdGNoZXMuOSksIE5FV1M6CgogICBkb2N1bWVudCA0LjIuNgogICAKMjAwMi0xMi0wMyAwMTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgQ2xvc2UgcHJpbnRlciBmaWxlIGhhbmRsZSB3aXRoICdmY2xvc2UnIHJhdGhlciB0aGFuICdwY2xvc2UnIHRvIGF2b2lkCiAgIGEgbWVtb3J5IGxlYWsgb24gU29sYXJpcyAyLjYuICAgRml4IHByb3ZpZGVkIGJ5IEphY29ibyBNYXR1dGUuCiAgIAoyMDAyLTEyLTAzIDAxOjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBUcmFuc2xhdGUgR2V0TmV4dCAoYW5kIEdldEJ1bGspIHJlcXVlc3RzIGludG8gc2ltcGxlIEdldCByZXF1ZXN0cywKICAgd2hlbiBwYXNzaW5nIHRoZW0gZnJvbSB0aGUgdGFibGVfZGF0YSBoYW5kbGVyIHRvIHRhYmxlX2RhdGFzZXQuCiAgICAgVGhpcyBpcyBhbmFsb2dvdXMgdG8gaG93IHRoZSBpdGVyYXRlIGhhbmRsZXIgd29ya3MsIGFuZCBhbGxvd3MKICAgbG93ZXIgbGV2ZWwgaGFuZGxlcnMgdG8gb3ZlcnJpZGUgdGhlIGJhc2ljIGJlaGF2aW91ciAod2l0aG91dAogICBoYXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgImZpbmQgbmV4dCByb3ciIGNvZGUgZXZlcnkgdGltZSkuCiAgIAoyMDAyLTEyLTAyIDAxOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXR1cm4gU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuIHRoZSBTTk1QdjEgJ25vU3VjaE5hbWUnIGVycm9yLgogICBUaGlzIHVzZWQgdG8gYnJlYWsgQWdlbnRYIHN1YmFnZW50cywgYnV0IHRoZSBsYXRlc3QgY2hhbmdlIHRvIHNubXBfYWdlbnQuYwogICAodG8gY2F0Y2ggbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucykgc2VlbXMgdG8gaGF2ZSBmaXhlZCB0aGF0IHByb2JsZW0uCiAgIAoyMDAyLTEyLTAyIDAxOjQwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBsaWNpdGx5IHBhcmVudGhlc2lzZSBhIGNvbXBhcmlzb24sIHRvIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LgogICAKMjAwMi0xMi0wMiAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVzaXZlLXJhbmdlIEdldE5leHQgcmVxdWVzdHMgYXJlIHRyYW5zbWl0dGVkIGFzIEdldCByZXF1ZXN0cywgc28gbWF5CiAgIHdlbGwgcmV0dXJuIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMuICBDYXRjaCB0aGVzZSBhcyB3ZWxsLgogICAKMjAwMi0xMi0wMiAwMTozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDYXRjaCAoYW5kIHJlamVjdCkgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbmV3IHJvdyB2aWEgYSBub24td3JpdGFibGUgb2JqZWN0LgogICAKMjAwMi0xMS0yOCAwMToyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTnVsbCBvdXQgb25lIGZpbmFsIGxvb3BfY29udGV4dCBwb2ludGVyIGFmdGVyIGJlaW5nIGZyZWVkLgogICAoUGF0Y2ggcHJvdmlkZWQgYnkgUm9nZXIgTWNDYWxtYW4pCiAgIAoyMDAyLTExLTI2IDE0OjU5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRGlzY2FyZCB0aGUgc2Vjb25kYXJ5IChHUk9VUCkgREVTQ1JJUFRJT04gaW5zaXplIGEgTU9EVUxFLUNPTVBMSUFOQ0UKICAgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuIFRoYW5rcyB0byBFdWdlbmVfQnJ1a0BibWMuY29tCiAgIAoyMDAyLTExLTI2IDE0OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZWluc3RhdGUgdGhlIC13IG9wdGlvbnMgdGhhdCB3YXMgbG9zdCBpbiB0aGUgaW5kZW50IGZ1cnkKICAgCjIwMDItMTEtMjYgMDc6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgVGhlIG5vdGlmaWNhdGlvbiB2YXJpYWJsZSBzaG91bGRuJ3QgYmUgc3RhdGljLiAgQSBidWcgZm91bmQgd2hpbGUKICAgdHJhY2tpbmcgZG93biBhIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgVmVuaWNlIG9uIElSQy4KICAgCjIwMDItMTEtMjYgMDE6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggaW5jb3JyZWN0IHVzYWdlIG9mIFNFX01BWF9JRFMgdnMgU0VfTUFYX1NVQklEUy4KICAgUmVwb3J0ZWQgYnkgJ3NoaW5lcGVhaycKICAgCjIwMDItMTEtMjUgMTk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgaGFjayBvZiBhIGhhY2sgb2YgYSBoYWNrLCBvcjogZml4IG11bHRpLWxpbmUgRkFRIHF1ZXN0aW9ucwogICAKMjAwMi0xMS0yNSAwNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAyLTExLTE4IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIGFwcGxpZWQgcGF0Y2ggIzUyNzY1MAogICAKMjAwMi0xMS0xMSAxNDoxMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXNwZWN0IHRoZSBtaWJkaXJzIGNvbmYgZGlyZWN0aXZlLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMTEgMTM6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBhIG1pc3NpbmcgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTExIDExOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBmaXggdGFkZHIgZ2VuZXJhdGlvbi9wYXJzaW5nIGZvciBwb3J0IGJhc2VkIHRyYW5zcG9ydHMgdG8gcHJvcGVybHkgdXNlCiAgIG5ldHdvcmsgYnl0ZSBvcmRlcmluZy4KICAgCjIwMDItMTEtMTEgMTE6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBmaXggd3JpdGUgc3VwcG9ydCBmb3IgdGhlIHRpbWVvdXQgY29sdW1uCiAgIAoyMDAyLTExLTA5IDA3OjA2ICBuYmEKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIERvIGF3YXkgd2l0aCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTExLTA5IDA2OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywgaG9zdC9ocl9wcmludC5jCjoKCiAgIFplcm8gaXMgYW4gT0sgZmlsZSBkZXNjcmlwdG9yLiAtMSBpcyB0aGUgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTA5IDA2OjU0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1vcmUgdG8gdGhlIHBvaW50IG1lc3NhZ2UgZm9yIHVuZGVmaW5lZCBpZGVudGlmaWVycy4gQnJvdWdodCBmb3J3YXJkIGZyb20gNC4yCiAgIAoyMDAyLTExLTA5IDA2OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgUHJpbnQgdGhlIGVycm9yIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgCjIwMDItMTEtMDkgMDY6NTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdjIgZXhjZXB0aW9uIHJlc3VsdHMKICAgCjIwMDItMTEtMDkgMDY6NDkgIG5iYQoKICAgKiBzZWRzY3JpcHQuaW4sIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdGVjdCBQUkVGSVggd2hlbiBpdCBpcyB0aGUgZW52IHZhci4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTA5IDA2OjQ3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIFJGQyAzMzcxIEwyVFAtTUlCCiAgIAoyMDAyLTExLTA5IDA2OjQ2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIGZyb20gSUFOQQogICAKMjAwMi0xMS0wNyAwMjo1NSAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCAtQ2YgYW5kIC1DdyBvcHRpb24gcHJvY2Vzc2luZyAocHJldmlvdXNseSB3b3VsZCBjb3JlIGR1bXAgaWYKICAgICAgIG5vIG9wdGlvbiBwYXNzZWQpLCBhcyBwb2ludGVkIG91dCBieSBoYW1wYSBvbiAjbmV0LXNubXAKICAgCjIwMDItMTEtMDYgMTI6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggY3V0L3Bhc3RlCiAgIAoyMDAyLTExLTA2IDEyOjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbiAmIG1ha2VmaWxlcwogICAKMjAwMi0xMS0wNiAxMTowOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBtaXNzaW5nIGVuZCBxdW90ZQogICAKMjAwMi0xMS0wNiAxMDozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBAREVWRkxBR1NAIHdlaGVydmVyIHRoZXJlIGlzIGEgQENGTEFHU0AsIGV4Y2VwdCBmb3IgdGhlIG5ldyAtLWJhc2UtY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEwOjIyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYWRkIEBERVZGTEFHU0AgdG8gQ0ZMQUdTCiAgIAoyMDAyLTExLTA2IDEwOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgc2VwZXJhdGUgZGV2ZWxvcGVyIGNmbGFncyBmcm9tIG5vcm1hbCBjZmxhZ3MKICAgCjIwMDItMTEtMDYgMDk6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBjaGFuZ2Ugc3RydWN0LmggaW5jbHVkZSB0byB1c2UgIiIgaW5zdGVhZCBvZiA8bmV0LXNubXAvPiwgc2luY2UgaXQgaXQgYSBsb2NhbAogICBpbmNsdWRlLCBub3QgYSBzeXN0ZW0gaW5jbHVkZQogICAKMjAwMi0xMS0wNiAwOTozOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcHVyZ2UgSU5fVUNEX1NOTVBfU09VUkNFCiAgIAoyMDAyLTExLTA1IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGFkZGVkIGEgeG1sc2hvcnQgZGVsaW1pdGVyIGFzIHJlcXVlc3RlZCBieSBsYW5kcyBvbiBJUkMKICAgCjIwMDItMTEtMDUgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdGFicyAtPiBzcGFjZXMgb25seSB0cnkgdG8gY2htb2QgUk8gc3JjIGRpciBpZiBvd25lciBvZiBkaXJzCiAgIAoyMDAyLTExLTA1IDA4OjU2ICByc3RvcnkKCiAgICogbWtpbnN0YWxsZGlyczoKCiAgIG1ha2luZyBhIGRpcmVjdG9yeSBpcyBub3QgYW4gZXJyb3IsIHNvIGRvbid0IHNlbmQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMi0xMS0wNCAwODoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgYWxsb3cgdW5yZWdpc3RlcmVkIHNlY3VyaXR5IG1vZGVscyA8PSAyCiAgIAoyMDAyLTExLTA0IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIHRvIGJlIGJldHRlciBzdXBwb3J0ZWQgKHJvd3N0YXR1cyBubyBsb25nZXIgaGFzIHRvCiAgIGJlIGZpcnN0IGluIHRoZSBsaXN0LCAuLi4pCiAgIAoyMDAyLTExLTA0IDA4OjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY3BwZmxhZ3MgdG8gLS1jZmxhZ3MKICAgCjIwMDItMTEtMDQgMDg6MTMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGQgc3R1ZmYgZm9yIDUuMC43IChvciB3aGF0ZXZlcikgbWVudGlvbmluZyBhIGZldyBuZXcgZmVhdHVyZXMuCiAgIAoyMDAyLTExLTAxIDA5OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBidWcgIzYzMjA5NCB1c2luZyB0aGUgc3VnZ2VzdGVkIG1ldGhvZDogd2F0Y2ggZm9yIE5VTEwgc3RyZXJyb3IoKSByZXR1cm4KICAgCjIwMDItMTEtMDEgMDc6MDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVuZG8gbXkgY2hhbmdlcyBmcm9tIHIgNS4xNywgYXR0ZW1wdGluZyB0byByZWR1Y2UgcnVucyBvZiBjb25maWcuc3RhdHVzCiAgIGJ5IHVzaW5nIGV4cGxpY2l0IHBhdGhzIHRvIHNyY2RpciwgYW5kIGxldCBWUEFUSCBkbyBpdCdzIHRoaW5nCiAgIAoyMDAyLTEwLTI5IDExOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHRhcmdldCB0byBidWlsZCBiaW5hcnkgYXJyYXkgdGVzdCBhcHA7IHR3ZWFrIHRvIHBhcnNlIHRlc3QgdGFyZ2V0IChyZWR1Y2VzIG1vc3QKICAgYnV0IG5vdCBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcykKICAgCjIwMDItMTAtMjkgMTE6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBmb3IgYmluYXJ5IHNlYXJjaCBwcm9ibGVtIG5vdGVkIGJ5IFJvbXkgQ2hyaXN0ZW5zZW4gb24gY29kZXJzOyBwYXJ0aWFsCiAgIChpZmRlZidkIG91dCkgY29kZSBmb3IgYSBiaW5hcnkgYXJyYXkgaXRlcmF0b3IKICAgCjIwMDItMTAtMjkgMTE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBzaW1wbGUgdGVzdCBwcm9ncmFtIGZvciBiaW5hcnkgYXJyYXkKICAgCjIwMDItMTAtMjkgMDY6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGRlYnVnZ2luZyBhcyBub3RlZCBpbiBidWcgIzYzMDM0OAogICAKMjAwMi0xMC0yOCAxNjo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIC4xLjYuMyB0byAxLjMuNiBhcyBub3RlZCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIAoyMDAyLTEwLTI4IDEyOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2VkIHBhc3N3b3JkCiAgIAoyMDAyLTEwLTI4IDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBtaXNjIHZhY20gZml4ZXMKICAgCjIwMDItMTAtMjggMDU6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBlcnJvbmVvdXMgZnJlZSgpIG9mIHJ4YnVmCiAgIAoyMDAyLTEwLTI1IDA5OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXhlZCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgLT4gTkVUU05NUF9PUF9DQUxMQkFDS19ESVNDT05ORUNUIGFzIG5vdGVkIGJ5IFRyb2dMIG9uIElSQwogICAKMjAwMi0xMC0yNSAwNDozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0eXBlIGNhbGxiYWNrIGlmIHdlCiAgICAgICBkZWNpZGUgdG8gc2h1dGRvd24gYSBzdHJlYW0gdHlwZSBjb25uZWN0aW9uIGJlY2F1c2Ugd2UgcmVjZWl2ZWQKICAgICAgIGFuIGV4Y2Vzc2l2ZWx5IGxhcmdlIHBhY2tldC4KICAgCjIwMDItMTAtMjQgMDc6NDEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBzdXBlci1idWctcGF0Y2ggZ2VuZXJhdG9yIFN0ZWZhbiBSYWRtYW4gdG8gdGhlIFRIQU5LUyBsaXN0CiAgIAoyMDAyLTEwLTI0IDA3OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBidWcgIzYxNzUwODogYWRkZWQgdGhlIG10YV9zZW5kbWFpbCBtb2R1bGUgdG8gLS1oZWxwCiAgIAoyMDAyLTEwLTI0IDA3OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBpbnN0YWxsIGxpc3QgZm9yIG1pYjJjIGNvbmYgZmlsZXMgYW5kIHJlbW92ZSBvbGQgb25lCiAgIAoyMDAyLTEwLTIzIDE3OjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpbmNvcnJlY3QgdmFyaWFibGUgbmFtZSBJIG5vdGljZWQgd2hlbiBjb3B5aW5nIHRvIGEgZGlmZmVyZW50IGNvbmZpZ3VyZSBzY3JpcHQgaW4gYW5vdGhlciBwYWNrYWdlCiAgIAoyMDAyLTEwLTIzIDE3OjI4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeGVkIGJ1ZyM2MTc4Mzg6IHZlcnNpb250YWcgaXNuJ3QgZGlzdHJpYnV0ZWQgYW5kIHNob3VsZG4ndCBiZSBhbHdheXMKICAgdXNlZCBpbiB0aGUgbWFrZSBkaXN0Y2xlYW4gY2FsbHMuCiAgIAoyMDAyLTEwLTIzIDE3OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBpbmNvbnNlcXVlbmNpYWwgbWVtb3J5IGxlYWtzIGZpeGVkIChpbml0IHRpbWUgbGVha3MpLgogICAKMjAwMi0xMC0yMyAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRml4ZWQgdmFyaW91cyBtZW1vcnkgbGVha3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIFJvZ2VyIE1jQ2FsbWFuIGFuZCBKYXkgUGFybGFyIG9uIHRoZSAtY29kZXJzIGxpc3QgKGluY2x1ZGluZyB0aGVpciBwYXRjaGVzKQogICAKMjAwMi0xMC0yMyAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc25tcE5vdGlmeVRhYmxlLmMKICAgCjIwMDItMTAtMjMgMTU6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZyZWUgYSBwcmV2aW91c2x5IG1hbGxvY2VkIHBvaW50ZXIgdG8gdGhlIHdhdGNoIHZhcmlhYmxlIGJlZm9yZSByZXBsYWNpbmcgaXQuCiAgIAoyMDAyLTEwLTIzIDE1OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICByZW1vdmUgZHVwbGljYXRlIHVudXNlZCBtYWxsb2MuCiAgIAoyMDAyLTEwLTIxIDA5OjQzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgICAgLSBhZGQgc3lzdGVtIGZpbGUgZm9yIFNvbGFyaXMgOQogICAKMjAwMi0xMC0xNyAxOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBPcHRpbWl6ZWQgdGhlIFZBQ00gY2hlY2tzIGluIHRoZSBjYXNlIG9mIGdldG5leHQvZ2V0YnVsayBzbyB0aGF0IHdoZW4KICAgbGFyZ2UgcG9ydGlvbnMgb2YgdGhlIG1pYiB0cmVlIGFyZSBleGNsdWRlZCwgdGhlIHN1Yi1taWIgYWNjZXNzIGNvZGUKICAgd29uJ3QgYmUgY2FsbGVkIGF0IGFsbCAoZmluYWxseSBpbXBsZW1lbnRpbmcgYSB2ZXJ5IGxvbmcgbmVlZGVkIG9wdGltaXphdGlvbikuCiAgIAoyMDAyLTEwLTE3IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG5ldyBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb25hbGl0eSBiZXR3ZWVuIHR3byBvaWRzOiBuZXRzbm1wX29pZF9maW5kX3ByZWZpeAogICAKMjAwMi0xMC0xNyAxOTozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUHJpbnQgb3V0IGEgInN1bW1hcnkiIGF0IHRoZSBlbmQgb2YgYSBydW4KICAgCjIwMDItMTAtMTcgMDI6NDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFByb3Blcmx5IHRlcm1pbmF0ZSBhIGxvb3AgY29uc3RydWN0IChtaXNzaW5nICdAZW5kQCcpCiAgIFNwb3R0ZWQgYnkgS2FybCBDb29wZXIuICAgIE9vcHMhCiAgIAoyMDAyLTEwLTE2IDE0OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgY29udGludWUgYWZ0ZXIgRUlOVFIgY2F1c2VkIGJ5IHNpZ25hbCB3ZSBoYW5kbGVkIChpbnN0ZWFkIG9mIGZhbGxpbmcKICAgdGhvcm91Z2ggdG8gZXhpdCEpCiAgIAoyMDAyLTEwLTE2IDE0OjAwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZWNrIGZvciBvdXIgc2lnbmFsIGZsYWdzIG9uIEVJTlRSLCBhbmQgb25seSByZWxlc2VjdCBpZiBub3QgY2hhbmdlZDsKICAgZGVidWcgbXNnIHdoZW4gc2lnbmFscyByZWdpc3RlcmVkIGFuZCBmb3Igc2VsZWN0L2Zkc2V0czsKICAgCjIwMDItMTAtMTYgMTI6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIENQUEZMQUdTIGJlZm9yZSB1c2VyIGNvbmZpZ3VyZSBDRkxBR1MuLiBzbyBpZiBhIHVzZXIgYWRkcyBzb21ldGhpbmcKICAgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGUgdG8gQ0ZMQUdTLCB3ZSB3aWxsIHBpY2sgdXAgb3VyIGxvY2FsIGluY2x1ZGVzIGZpcnN0LAogICBpbnN0ZWFkIG9mIGluY2x1ZGVzIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLi4KICAgCjIwMDItMTAtMTUgMjE6MDYgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oCjoKCiAgIG1ha2Ugc3VyZSBzbm1wdHJhcGQgYWx3YXlzIGhvbm9ycyBEU19BUFBfTlVNRVJJQ19JUCBmb3IgbG9nZ2luZwogICAKMjAwMi0xMC0xNSAxNDowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXRzbm1wX2dldF9ib29sZWFuIC0+IG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4KICAgCjIwMDItMTAtMTUgMTE6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggY29uc3RhbnQgdXNlZCBpbiBhc3NlcnQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMi0xMC0xNSAxMTowNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgc3lzbG9nIGZvciBsaWJ3cmFwIGxvZyBsZXZlbHMKICAgCjIwMDItMTAtMTUgMDc6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkIHlldCBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xNCAwODo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggaXB2NiB0cmFuc3BvcnQgYWRkcmVzcyBzcGVjcwogICAKMjAwMi0xMC0xMSAxNjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmNtdSwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVtb3ZlIHRoZSBSRUFETUUuY211IGZpbGUgKGVudGlyZWx5IG91dCBvZiBkYXRlIGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0xMC0xMSAxMzo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM2MDA5MzMgZnJvbSBEb25hbCBEaWFtb25kOiBkc2tQZXJjZW50Tm9kZSBmb3IgRnJlZUJTRDQKICAgCjIwMDItMTAtMTEgMTM6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTk4MjgwIGZyb20gSmVmZiBXYXRzb246IG1ha2UgLU9RIG5vdCBwcmludCB0eXBlIHdhcm5pbmdzLgogICAKMjAwMi0xMC0xMSAxMzo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBpbmNsdWRlIGRpcmVjdG9yeQogICAKMjAwMi0xMC0xMSAxMzo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHJwbSBzdWJkaXIKICAgCjIwMDItMTAtMTEgMTM6MzIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBiZXR0ZXIgZG9jcyBhYm91dCBhdXRvLWV4dHJhY3RlZCBTRiBuZXdzCiAgIAoyMDAyLTEwLTExIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBpbiBwYXRjaCAjNTk4ODY5OiBNYXJrIEhhcmlnJ3MgYmV0dGVyIHJwbSBzdHVmZgogICAKMjAwMi0xMC0xMSAxMjoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBBbHRlcm5hdGl2ZSB0byBhIHBhdGNoIHN1Z2dlc3Rpb246IGFkZCAtT1UgdG8gbm90IHByaW50IFVOSVRTIHN1ZmZpeGVzLgogICAKMjAwMi0xMC0xMSAxMjoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAuLi9hZ2VudC9zbm1wX2FnZW50LmMKICAgCjIwMDItMTAtMTEgMTI6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBkb250UHJpbnRVbml0cwogICAKMjAwMi0xMC0xMSAxMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggIzYxNzE1MSBmcm9tIEFuZHJldyBSdWNrZXIgSm9uZXM6IGZpeCBsaWJ3cmFwIGhlYWRlcnMuCiAgICAgLSBJJ20gc3RpbGwgdW5oYXBweSB3aXRoIGhvdyBsaWJ3cmFwIGZ1bmN0aW9ucy4uLiAgbmVlZHMgdGhpbmtpbmcgYWJvdXQuCiAgIAoyMDAyLTEwLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICMzMTI2OTQgZnJvbSBKb2huIFN1cnZleW9yOiBmaXggZGlza2lvIG9uIHNvbGFyaXMuCiAgIAoyMDAyLTEwLTExIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNjIxMzk4IGZyb20gTWF0dGhldyBLcmVuemVyIHRvIGZpeCBsaW51eCBhcnAgdGFibGUuCiAgIAoyMDAyLTEwLTExIDA2OjQ3ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgY2hnIG5ldHNubXBtaWJzIC0+IG5ldHNubXBtaWJzc2tkIChub3RlZCBvbiBjb2RlcnMgYnkgSmVkIFdoaXR0ZW4pCiAgIAoyMDAyLTEwLTExIDA2OjQ1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIG5vdGUgc3F1YXJlIGJyYWNrZXRzIGZvciBJUHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xMSAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc2VsZWN0KCkgbW9yZSBxdWlja2x5IGlmIGFuIEVJTlRSIGhhcHBlbnMKICAgCjIwMDItMTAtMTAgMjI6NTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFwcGxpZWQgSGFycmllJ3MgcGF0Y2ggZGVzY3JpYmluZyBsb3cgbWVtb3J5IGZvb3RwcmludHMKICAgCjIwMDItMTAtMTAgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gSG9yc3RlaW4gdG8gZml4IEtTTSBtb2R1bGUKICAgCjIwMDItMTAtMTAgMDM6MjIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgICAtIHJlbW92ZSBiYWQgaW5saW5lcyB3aGljaCBjYXVzZSBmaWxlIG5vdCB0byBjb21waWxlIHdpdGggU3VuIENDLgogICAgICAgU2VlIGJ1ZyAjNjIwODI3LgogICAKMjAwMi0xMC0wOSAyMzowMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIC5sYSBmaWxlcwogICAKMjAwMi0xMC0wOSAyMzowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWFrZSB0aGUgLnNwZWMgZmlsZSBhbG1vc3QgdXNhYmxlLgogICAKMjAwMi0xMC0wOCAxNTo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgRkFRIHVwZGF0ZXMgZm9yIGRvd25sb2FkIHNpdGVzLgogICAKMjAwMi0xMC0wOCAwNzozNiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgUGF0Y2ggZnJvbSBKb3NodWEgS2Vyb2VzIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKICAgCjIwMDItMTAtMDcgMTA6NTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgc3RhdGVtZW50IGFib3V0IHRoZSBDT1BZSU5HIGZpbGUgKHN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTEwLTA2IDExOjMyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIG5zYi0qIGxpa2VzIGZ1bGwgcGF0aHMsIHVwZGF0ZSBleGFtcGxlczsgZml4IHNvdXJjZWZvcmdlIHVwbG9hZCBzaXRlCiAgIAoyMDAyLTEwLTA1IDE0OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYwosIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjYgKQogICAKMjAwMi0xMC0wNSAxNDo0MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jcwogICAKMjAwMi0xMC0wNSAxNDo0MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0xMC0wNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEwLTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIGlsbGVnYWwgZmxhZyBmcm9tIG5zYi1jb25maWcKICAgCjIwMDItMTAtMDUgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IGFsbG9jYXRlIDAgYnl0ZXMKICAgCjIwMDItMTAtMDUgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgcmVmZXJlbmNlIHB0ciBhZnRlciBpcyBoYXMgYmVlbiBmcmVlJ2QuCiAgIAoyMDAyLTEwLTA0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggc2Vjb25kYXJ5IGVmZmVjdCBvZiBidWcgNjEzOTgzIGFuZCByZWFsbHkgZml4IGl0IHRoaXMgdGltZS4KICAgCjIwMDItMTAtMDIgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5jIChWNC0yLXBhdGNoZXMuMiksIHR1bm5lbC5jCjoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc29tZSBjb2RpbmcgZXJyb3JzCiAgIAoyMDAyLTEwLTAxIDA3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBvZmZpY2FsIHBhdGNoIDYxNzA0OTogaW5pdGlhbGl6ZSBjb250YWluZXIgbGlzdCBlYXJsaWVyIChpbiBpbml0X2FnZW50KQogICAKMjAwMi0xMC0wMSAwNzozNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMgKGRhbW4gd2luZG93cyBlZGl0b3JzKQogICAKMjAwMi0wOS0zMCAxNToxNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNSApCiAgIAoyMDAyLTA5LTMwIDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBpbmZvIG9uIG1kNXN1bXMgYW5kIGdwZyBzaWduaW5nCiAgIAoyMDAyLTA5LTMwIDE1OjE1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBjaG1vZCB0byBkbyB3aGF0IEkgd2FudGVkLCBub3Qgd2hhdCBJIHRvbGQgaXQKICAgCjIwMDItMDktMzAgMTU6MTQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE1ha2VmaWxlLnRvcCwgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjUKICAgCjIwMDItMDktMzAgMTQ6MjcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICBtZXJnZSBwcmUgY2hhbmdlcyBpbnRvIDUuMC40IGNvbW1lbnRzCiAgIAoyMDAyLTA5LTMwIDE0OjI1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBORVdTIHVwZGF0ZXMgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQKICAgCjIwMDItMDktMzAgMTM6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIGxlbiBhIHNpemVfdCB0byBmaXggcHJvYmxlbSBvbiA2NCBiaXQgc3lzdGVtLCByZXBvcnRlZCBieSBzZWJub2RgIGluIElSQwogICAKMjAwMi0wOS0zMCAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdGF0aWMgbG9jYWwgdmFycywgYXMgdGhleSBhcmUgbGlrZWx5IHRvIGNhdXNlIHByb2JsZW1zIHdpdGggdGhyZWFkcwogICAKMjAwMi0wOS0zMCAxMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtYWtlIHN1cmUgaW5zdGFsbCBkaXIgaXMgcmVsYXRpdmUgdG8gYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTMwIDEyOjIwICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnCiAgIAoyMDAyLTA5LTMwIDEyOjE5ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCiAgIAoyMDAyLTA5LTMwIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYXZvaWQgaW5maW5pdGUgbG9vcAogICAKMjAwMi0wOS0zMCAxMTo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGFzc3VtZSBtYWtlIGlzIEdOVSBtYWtlLCBhbmQgc2VhcmNoIGZvciBpdC4gcmVxdWlyZSB1c2VyIHRvIHNldCBhbgogICBlbnYgdmFyIGlmIG5vIEdOVSBtYWtlIGlzIGZvdW5kIGluIFBBVEgKICAgCjIwMDItMDktMzAgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgaWYgQ1ZTIGRpciBpcyBybywgYXV0b21hZ2ljYWxseSBtYWtlIGl0IHJ3IGJlZm9yZSB1cGRhdGUgYW5kIHJvIGFmdGVyIHVwZGF0ZQogICAKMjAwMi0wOS0yNyAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWFrZSBnZXRfc2V0X2NhY2hlKCkgcmV0dXJuIGFuIGVycm9yIGlmIG5vIHByZXZpb3VzIFNFVCBoYXMgYmVlbiBzdGFydGVkLgogICAKMjAwMi0wOS0yNyAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRvdWJsZSBjaGVjayBhZ2FpbnN0IHNvbWUgbnVsbCBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbSBpbiB0aGUgY2FjaGUgY29kZS4KICAgCjIwMDItMDktMjcgMTA6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCB0cmVlY2FjaGVfbnVtIHRvIC0xIGF0IGluaXQgb2YgbWVtb3J5LCB0byBiZSBleHRyYSBzYWZlLgogICAKMjAwMi0wOS0yNiAxMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICBtb3ZlIGxpYndyYXAgdmFyaWFibGVzCiAgIAoyMDAyLTA5LTI2IDExOjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgb2ssIHJlbW92ZSB0Y3B3cmFwcGVycyB2YXJzCiAgIAoyMDAyLTA5LTI2IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZGVmaW5lIHN0dXBpZCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRjcHdyYXBwZXJzIGJlY2F1c2UgdGhleSBkb24ndCBnZXQKICAgY29uY2VwdHMgb2YgZW5jYXBzdWxhdGlvbi4gIGFyZy4KICAgCjIwMDItMDktMjYgMDg6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBjaGFuZ2UgY2FsbF9wdiB0byBwZXJsX2NhbGxfcHYgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHBlcmwuCiAgIAoyMDAyLTA5LTI2IDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcnVuIHN0cmR1cCgpIG9uIGdldF9taWJfZGlyKCkgcmVzdWx0cyB0byBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEV1Z2VuZSBCcnVrLgogICAKMjAwMi0wOS0yMyAxMDoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1lbnRpb24gZnJlc2htZWF0CiAgIAoyMDAyLTA5LTIzIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSBpbXBsZW1lbnQgYSAobG9uZyBuZWVkZWQpIHNldHRhYmxlIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBjdXJyZW50CiAgICAgcGVyc2lzdGVudCBpbmZvcm1hdGlvbi4KICAgCjIwMDItMDktMjMgMDk6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbWFrZSBub3QgaW4gdGltZSB3aW5kb3cgcmVwb3J0cyB0cmlnZ2VyIGEgcmVzZW5kIG9mIGluZm9ybXMuCiAgICAgKHN1Z2dlc3Rpb24gZnJvbSBFcmlrIEFuZ2dhcmQpCiAgIAoyMDAyLTA5LTIwIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgICAtIHJlbW92ZSBmdW5jdGlvbnMgdmFjbV9wYXJzZV9zZWN1cml0eSBhbmQgdmFjbV9mcmVlX3NlY3VyaXR5IHdoaWNoCiAgICAgICBkb24ndCBleGlzdAogICAKMjAwMi0wOS0xOSAxNDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gc3VwcG9ydCBhZ2VudCBzaHV0ZG93bnMgKHdlbGwsIG9rIGl0J3MganVzdCBhbiBhcGkgc2luY2UgaXQgZG9lc24ndCB3b3JrKS4KICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDktMTkgMTM6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cywgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICBmaXggYWdlbnQgcmVxdWVzdF9pbmZvUHRyIHByb2JsZW1zLgogICAKMjAwMi0wOS0xOSAwOTowNCAgZHRzMTIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIENvbXBpbGUgYW5kIGxpbmsgd2l0aCAnZ2V0b3B0LmMnIGV4cGxpY2l0bHkuCiAgIAogICBUaGlzIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LCBidXQgZm9yIHNvbWUgcmVhc29uCiAgICh0aGF0IGNvbXBsZXRlbHkgZXNjYXBlcyBtZSEpLCB1c2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucwogICAoc3VjaCBhcyAtSVIpIHdpdGggdGhlIFJlbGVhc2UgdmVyc2lvbiBvZiBzbm1wdHJhbnNsYXRlCiAgIGNhdXNlcyBhIHJ1bi10aW1lIERMTCBlcnJvci4gIChUaGUgRGVidWcgdmVyc2lvbiBpcyBmaW5lKS4KICAgVGhlIG90aGVyIGFwcGxpY2F0aW9ucyBzZWVtIHRvIGJlIE9LIC0gdGhpcyBwcm9ibGVtIG9ubHkKICAgc2VlbXMgdG8gaGl0IHNubXB0cmFuc2xhdGUuICBTbyBhcyBhIHN0aWNraW5nLXBsYXN0ZXIsCiAgIGNvbXBpbGlpbmcgZ2V0b3B0LmMgaW4gYXMgcGFydCBvZiB0aGUgcHJvamVjdCwga2VlcHMgYm90aAogICB2ZXJzaW9ucyBvZiB0aGUgYXBwbGljYXRpb24gaGFwcHkuCiAgICAgU29tZW9uZSB3aXRoIGJldHRlciBXaW5kb3dzIGtub3dsZWRnZSB0aGFuIG1lIG5lZWRzIHRvCiAgIGxvb2sgYXQgdGhpcyBhbmQgZml4IGl0IHByb3Blcmx5LgogICAKMjAwMi0wOS0xOSAwMzoxNCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSB1bmRvIHdvcnN0IG9mIGluZGVudCBkYW1hZ2UKICAgCjIwMDItMDktMTkgMDM6MDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIF9kcGFyc2UgZnVuY3Rpb25zICh3aGljaCBkb24ndCBleGlzdCkKICAgCjIwMDItMDktMTggMDc6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlc2V0IFNOTVBfU0xFRVAgYWZ0ZXIgbG9vcAogICAKMjAwMi0wOS0xOCAwNzo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcmVtb3ZlIHZlcnkgb2Jzb2xldGUgKGFuZCBub3QgdXNlZCBhbnl3aGVyZSkgI2RlZmluaXRpb25zIG9mCiAgICAgICBQQVJUWV9NSUJfQkFTRSBhbmQgQ09OVEVYVF9NSUJfQkFTRQogICAKMjAwMi0wOS0xNyAyMzo1OSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHR3ZWFrIGZvciA1LjAuNCBsYXN0IG1pbnV0ZSB1cGRhdGUKICAgCjIwMDItMDktMTcgMjM6NDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBjaGcgPiB0byAtZ3QgdG8gYWNoaWV2ZSBpbnRlbmRlZCByZXN1bHQKICAgCjIwMDItMDktMTcgMjI6MzkgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xNyAyMjozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNCApCiAgIAoyMDAyLTA5LTE3IDIyOjMyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xNyAyMTo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkICQoc3JjZGlyKSB0byBhIGZldyBkZXBlbmRlbmNpZXMgdG8gdHJ5IGFuZCByZWR1Y2UgdGhlICMgb2YgdGltZXMgdGhhdAogICBjb25maWcuc3RhdHVzIGlzIHJ1biB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNyYyBkaXIKICAgCjIwMDItMDktMTcgMjE6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICB2aXN1YWxseSBwcm92b2NhdGl2ZSBzZWN0aW9uIGhlYWRlcnM7IGFkZCByZWNlbnQgc3RhdHVzIChhbGwgYmFkIG5ld3MpOwogICBub3QgdG8gdXNlIG5ldyB3aW4zMnNkay5kc3cgdG8gZ2V0IGFkZGl0b25hbCBmdW5jdGlvbmFsaXR5IHdpdGggcGxhdGZvcm0gc2RrOwogICByZW1vdmUgaW5mbyBvbiByZW1vdmluZyBhZ2VudHgsIGFzIGl0J3MgYmVlbiBhcm91bmQgbm93IGZvciBhIHdoaWxlOyBhZGQKICAgc2VjdGlvbiBvbiB3aGF0IGZpbGVzIHRvIGVkaXQgdG8gYWRkIG1pYjJjIGdlbmVyYXRlZCBjb2RlIHRvIGFnZW50OyByZW1vdmUKICAgcmVmZXJlbmNlIHRvIHNwZWNpZmljIHJlbGVhc2UgbnVtYmVyIGluIGV4YW1wbGUKICAgCjIwMDItMDktMTcgMjE6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICB0YWtlICdzZGsnIG91dCBvZiBleGUgbmFtZQogICAKMjAwMi0wOS0xNyAyMToyNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHN3YXAgc25tcGRzZGsgZm9yIHNubXBkCiAgIAoyMDAyLTA5LTE3IDIxOjE0ICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGdldCBhbGwgb3VyIGR1Y2tzIGluIGEgcm93OiBhZGQgYWR2YXBpMzIubGliIHRvIGxpbmsgbGluZXMsIG1ha2Ugc3VyZSBhbGwKICAgUmVsZWFzZSBhbmQgRGVidWcgbGlicy9hcHBzIGFyZSBjb21waWxlIHdpdGggc2FtZSBDKysgc2V0dGluZ3MKICAgCjIwMDItMDktMTcgMjE6MTIgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICByZW1vdmUgc2RrIGRlcGVuZGVudCBtb2R1bGVzCiAgIAoyMDAyLTA5LTE3IDIxOjEwICByc3RvcnkKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZ3JvdXAgbW9kdWxlcyB0aGF0IGRlcGVuZCBvbiB3aW4zMiBzZGsgdG9nZXRoZXIsIHdpdGggaWZkZWYKICAgCjIwMDItMDktMTcgMjE6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG5vIGNhbGxiYWNrIGZvciB3aW4zMiB1bnRpbCBwaXBlIGZkIHByb2JsZW0gaXMgZml4ZWQKICAgCjIwMDItMDktMTcgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbmV3IHZlcnNpb25zIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTcgMjE6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBuZXcgd29ya3NwYWNlIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTYgMTM6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWliIG1vZHVsZSBsb2FkaW5nIGZpeGVzIGJ5IGNhbGxpbmcgaW5pdF9zbm1wIGZpcnN0CiAgIAoyMDAyLTA5LTEzIDEyOjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIGV4YW1wbGUgbnNiLWNvbmZpZyBjb21tYW5kOyBhZGQgLWIgYmFjayB0byBjdnMyY2wsIG90aGVyd2lzZSB5b3UKICAgZ2V0IGNoYW5nZWxvZyBtc2dzIGZyb20gb3RoZXIgYnJhbmNoZXMgYW5kIGhhdmUgdG8gd2VlZCB0aGVtIG91dAogICAKMjAwMi0wOS0xMyAwOTozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIGZpeCBpbGxlZ2FsIG9pZHMgdG8gbm90IHJldHVybiBhIHBvaW50ZXIuCiAgIAoyMDAyLTA5LTEzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIG1pbm9yIG9wdGltaXNhdGlvbjsgd2UgZG9uJ3QgbmVlZCBhIHplcm8tdGVybWluYXRlZCBjb21tdW5pdHkKICAgICAgIHN0cmluZyBleGNlcHQgZm9yIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAyLTA5LTEzIDA3OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZGVkIC1pIG9wdGlvbiB0byByZXF1ZXN0IGluZGVudCBub3QgYmUgcnVuCiAgIAoyMDAyLTA5LTEzIDA3OjA2ICBqYnBuCgogICAqIENPUFlJTkc6CgogICAgIC0gYWRkIG1pc3NpbmcgdmVyYiBpbiBpbnRyb2R1Y3Rpb24KICAgCjIwMDItMDktMTIgMTI6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcHJvdGVjdCBjYWxsaW5nIHNvbWUgU3ZJViBkZXJlZmVyZW5jZSBmdW5jdGlvbnMgaWYgaXQncyBub3QgYW4gSVYuCiAgICAgLSBlbGltaW5hdGVzIHRoZSByZW1haW5pbmcgcGVybCB3YXJuaW5ncy4KICAgCjIwMDItMDktMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGluY2x1ZGUgbGRmbGFncyB3aGVyZSBhcHByb3ByaWF0ZSAoLS1saWJzLCAtLWFnZW50LWxpYnMsIC4uLikKICAgCjIwMDItMDktMTEgMjI6NDggIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlOgoKICAgYWRkL3VzZSBuZXcgb3B0aW9uIHRvIHJlbW92ZSBidWlsZCBkaXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBidWlsZAogICAKMjAwMi0wOS0xMSAyMjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHByaW50IGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMSAyMjoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG11Y2ggbW9yZSBjb21wbGV4IHRlc3RzIG9mIFVTTSB1c2VyIGNyZWF0aW9uL21vZGlmaWNhdGlvbi4KICAgCjIwMDItMDktMTEgMjI6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LAogICB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RzL1QwMDRzbm1wdjFub3N1Y2g6CgogICAtIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRlc3RzIGF0IG9uY2UuCiAgIC0gbWVyZ2UgdjEgdGVzdHMgaW50byBhIHNpbmdsZSAoZmFzdGVyKSB0ZXN0LgogICAKMjAwMi0wOS0xMSAyMTozNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IG1vbmtleSBhcm91bmQgd2l0aCByZXR1cm5pbmcgZXJyb3IgY29kZXMsIGp1c3QgZXhpdDsgbW9yZSByZWdleHAgdHdlYWtzCiAgIAoyMDAyLTA5LTExIDE2OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIHVzZSBzdWItc2Vjb25kIHNsZWVwcyBpZiBhdmFpbGFibGUKICAgLSBzbGVlcCAxIChzdWItKXNlY29uZCBhdCBhIHRpbWUgd2hlbiB3YWl0aW5nIGZvciBwYXJ0aWN1bGFyIHRlc3RzCiAgICAgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgU05NUF9TTEVFUCBkdXJhdGlvbi4KICAgCjIwMDItMDktMTEgMTY6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB1c2Ugc25tcF9sb2cgaW5zdGVhZCBvZiBwcmludGYgZm9yIHNodXRkb3duIG1lc3NhZ2UuCiAgIAoyMDAyLTA5LTExIDE1OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNzaW5nIHZhcmlhYmxlIGRlY2wgcG9pbnRlZCBvdXQgYnkgaXJjOmRmCiAgIAoyMDAyLTA5LTEwIDEzOjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwcyAmIGVycm9yIG1lc3NhZ2VzCiAgIAoyMDAyLTA5LTEwIDEyOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29tcGlsZXIgd2FybmluZ3MgYXJlIHlvdXIgZnJpZW5kITsgZml4IGVtYmVkZWQgY29tbWVudHM7IGZpeCBub24tdm9pZAogICBmdW5jdGlvbnMgdy9ubyBydG4gdmFsdWVzOyBjb2RlIHJlb3JnIHRvIGZpeCBlbWFjcyBpbmRlbnQgY29tcGxhaW50cwogICAKMjAwMi0wOS0xMCAxMjoyNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgdGFyZ2V0cyB0byBoZWxwIG5pZ2h0bHkgYnVpbGQgc2NyaXB0IGRldGVybWluZQogICBpZiBhIG1ha2UgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogICAKMjAwMi0wOS0xMCAxMjoxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrcyBmb3IgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzOyBhZCBuc2ItYWJvcnQsIG5zYi1mbG93OwogICBkaXJlY3Qgc29tZSBtZXNzYWdlcyB0byBzdGRlcnI7IHVzZSBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyBtYWtlIHRhcmdldHM7CiAgIHVwZGF0ZSBlcnJvciBncmVwIHRvIGluY2x1ZGUgJyoqKic7IGNoZWNrIGZvciBuZXcgdmFsdWUgdG8gcm0gLWZSIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMCAxMjowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHMKICAgCjIwMDItMDktMTAgMTI6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgYWRkIG9wdGlvbiB0byBybSAtZlIgYnVpbGQgZGlyIGF0IHN0YXJ0OyBjaGVjayBzY3JpcCBwYXRoIGZvciBuc2ItZnVuY3Rpb25zOwogICBwcmVmaXggZGVmYXVsdCBidWlsZCBkaXIgdy92ZXJzaW9uOyBleGl0IHcvcmMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDktMTAgMTI6MDUgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLXBsYXRmb3JtOgoKICAgYWRkIGN1cnJlbnQgcGF0aCB0byBzY3JpcHQgdG8gbnNiLWZ1bmN0aW9uIHNlYXJjaCBwYXRoCiAgIAoyMDAyLTA5LTA5IDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEphcmVkIFNtaXRoLU1pY2tlbHNvbiAoYnVnICM2MDUxNDcpCiAgICAgICB3aGVyZWJ5IHBhc3NpbmcgYW4gdW5rbm93biB0eXBlIGNoYXJhY3RlciB0byBzbm1wX2FkZF92YXIgd291bGQKICAgICAgIGNhdXNlIGEgc2VnZmF1bHQuCiAgIAoyMDAyLTA5LTA5IDA2OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgdmFsdWUgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMi0wOS0wOSAwNjowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDdXJyZW50IGhlYWRlciB1cGRhdGUgcGF0Y2ggZm9yIG5ldGJzZCBmcm9tIFBhdHJpY2sgV2VsY2hlLgogICAKMjAwMi0wOS0wNiAxNTozMCAgZHJpZWh1aXMKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTWFyayB0aGUgbm9uLXJhdyB2YXJpYW50cyBvZiBvYmplY3RzIHRoYXQgYXJlIGFjY2Vzc2FibGUgYXMgcmF3IGNvdW50ZXJzCiAgIGFzIGRlcHJlY2F0ZWQsIHRvIChob3BlZnVsbHkhKSBjdXQgZG93biBvbiB0aGUgbnVtYmVyIG9mIHVzZXJzIHRoYXQgZ2V0CiAgIGJpdHRlbiBieSBpdC4uCiAgIAoyMDAyLTA5LTA0IDExOjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGFkZGVkIEJydWNlJ3MgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0wNCAxMToyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IHBlcmxjbGVhbgogICAKMjAwMi0wOS0wNCAxMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBwcm9jZXNzIGdyb3VwaW5nIGJ5IGNhbGxpbmcgc2V0c2lkKCkgKHJlcG9ydGVkIGJ5IGlyYzpUcm9nTCkKICAgCjIwMDItMDktMDQgMTE6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNldHNpZCgpLgogICAKMjAwMi0wOS0wMyAxMDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FzZXMgd2hlcmUgdGhlcmUgZWl0aGVyIGFyZSBubyB0YWJsZXMgb3Igbm8gc2NhbGFycy4KICAgCjIwMDItMDktMDMgMTA6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZG9uJ3QgdXNlIE5VTEwgdmFyaWFibGVzLgogICAKMjAwMi0wOS0wMiAxOTozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUyICkKICAgCjIwMDItMDktMDIgMTk6MzMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMgogICAKMjAwMi0wOS0wMiAxOToyMiAgcnN0b3J5CgogICAqIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZWQgZG9jcwogICAKMjAwMi0wOS0wMiAxOToxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOS0wMiAxOToxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIHRyeSBhbmQgZ3Vlc3MgYXQgc3JjIGRpciBpZiBub3Qgc3BlY2lmaWVkCiAgIAoyMDAyLTA5LTAyIDE5OjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBub3RlIGFib3V0IGVyciB3aGVuIGJ1aWxkaW5nIGluIGFuZCBvdXQgb2Ygc291cmNlIHRyZWUKICAgCjIwMDItMDktMDIgMTg6NTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZ1bGwgcGF0aCB0byB2ZXJzaW9udGFnLCBpbiBjYXNlIHdlIGFyZSBidWlsZGludCBvdXRzaWRlIG9mIHNyYyBkaXJlY3RvcnkKICAgCjIwMDItMDktMDIgMTg6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgZm9yY2VkIHByb21wdCBvbiBlcnJvcnMKICAgCjIwMDItMDktMDIgMTg6MzYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCB3YXJuaW5ncyB3aGVuIFZFUlNJT04gaXMgcmVxdWlyZWQ7IGFkZCB0YXJjbGVhbiB0YXJnZXQ7IGFkZCB0YXJjbGVhbiB0bwogICBkaXN0Y2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBtc2cgb24gZXJyb3I7IGFkZCBjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMTc6MjcgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIHdpbjMyICYgQWdlbnRYIHN0YXR1cwogICAKMjAwMi0wOS0wMiAxNzoyMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBmaXggdG8gYXZvaWQgbG9ja2luZyB1cCB0aGUgYWdlbnQgd2hlbiBhIHN1Z2FnZW50IGRpZXMgZHVyaW5nIGEgc2V0IHJlcXVlc3QuIFdlCiAgIG11c3QgY2xlYW4gdXAgdGhlIGRlbGVnYXRlZCByZXF1ZXN0cyB3aGVuIHRoZSBzZXNzaW9uKHMpIGFyZSBjbG9zZWQsIHNvIHRoYXQKICAgdGhleSB3aWxsIGJlIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCwgYWxsb3dpbmcgZnVydGhlciByZXF1ZXN0cyB0byBiZSBwcm9jZXNzZWQuCiAgIAoyMDAyLTA5LTAxIDEwOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBjaGFuZ2UgcmVzdWx0IHR5cGUgYmFjayB0byBpbnQsIGFzIGl0IG1heSByZWNlaXZlIGEgbmVnYXRpdmUgdmFsdWUKICAgCiAgIFBMRUFTRSBjaGVjayB0aGUgdXNlIG9mIGEgdmFyaWFibGUgYmVmb3JlIGNoYW5naW5nIGlzIHNpZ25lZG5lc3MsIGVzcGVjaWFsbHkKICAgYXJlb3VuZCByZWxlYXNlIHRpbWUhCiAgIAoyMDAyLTA4LTMwIDEyOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGluY2x1ZGUgY2hlY2tfdmFyYmluZC5oCiAgIAoyMDAyLTA4LTMwIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgY2hhbmdlIE5PU1VDSE5BTUUgdG8gTk9TVUNISU5TVEFOQ0UgYWdhaW4sIGFzIGl0IHNlZW1zIHRoZSBhZ2VudFggZml4IGFsc28KICAgY29ycmVjdGx5IGRlYWxzIHdpdGggdGhpcyBlcnJvciBjb2RlCiAgIAoyMDAyLTA4LTMwIDA2OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gZGVsZXRlIHN1bnNpdGUuY25sYWItc3dpdGNoLmNoIG1pcnJvciwgYXMgaXQgaXNuJ3Qgb25lIGFueW1vcmUuCiAgIAoyMDAyLTA4LTI5IDEwOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIG1vZHVsZXMgYmVmb3JlIGNvbmZpZ3VyaW5nIHRoZW0KICAgCjIwMDItMDgtMjkgMDc6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCB0aGUgbGFzdCBBRVMgYnVnIEkga25vdyBvZi4gIEFFUzEyOCB3b3JrcyBncmVhdC4KICAgICBJIHN0aWxsIE5lZWQgdG8gZml4IDE5Mi8yNTYgZm9yIGxvbmdlciBrZXkgZ2VuZXJhdGlvbiBmcm9tIE1ENS9TSEEKICAgCjIwMDItMDgtMjkgMDc6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICB1c2UgdGhlIHJpZ2h0IHBlcmwgbW9kdWxlIG5hbWUgaW4gdGhlIHVzZSBsaW5lLgogICAKMjAwMi0wOC0yOSAwMzo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgTW9yZSBXaW4zMi1yZWxhdGVkIHRpZHlpbmcgdXAuCiAgIFRoZSBhZ2VudCBub3cgY29tcGlsZXMgd2l0aCByZWxhdGl2ZWx5IGZldyB3YXJuaW5ncy4KICAgCjIwMDItMDgtMjkgMDE6NTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBEZWNsYXJlIG5ldyByb3V0aW5lICduZXRzbm1wX29pZF9lcXVhbHMnLCBhbmQgYXNzb3J0ZWQgV2luMzIgY2xlYW51cCBmaXhlcy4KICAgCjIwMDItMDgtMjggMTE6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2xhcmlmeSBjdnMyY2wgc2NyaXB0IG5hbWU7IHJlbW92ZSAtYiBmbGFnIGZyb20gY3ZzMmNsIHBlciBEYXZlOyBhIGxpdHRsZQogICByZW9yZ2FuaXphdGlvbjsgcHV0IGNvbW1hbmRzIG9uIHNlcGFyYXRlIGxpbmVzIHByZWZpeGVkIHdpdGggJDsgbm90ZSA1LngvNC54CiAgIGRpZmZlcmVuY2VzIHBlciBEYXZlJ3MgZW1haWw7IHBsdWcgbXkgbmV3IHNjcmlwdHMgd2hlcmUgYXBwcm9wcmlhdGUKICAgCjIwMDItMDgtMjcgMTE6NDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIFVSTCBmb3IgY3ZzMmNsOyB1cGRhdGUgY3ZzMmNsIGNtZHMgdG8gY3ZzMmNsLnBsLCBzaW5jZSB0aGF0J3MgdGhlIGZpbGUKICAgdGhhdCdzIGFjdHVhbGx5IGRpc3RyaWJ1dGVkCiAgIAoyMDAyLTA4LTI2IDIxOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUxICkKICAgCjIwMDItMDgtMjYgMjE6MjQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yNiAyMToxNyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgbWFuIHBhZ2VzIGZvciA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgbmV3IGZpbGUgdG8gY29uZmlndXJlIHVzaW5nIHNhbWUgb3B0aW9ucyBhcyBuc2ItcGFja2FnZSBmb3IgdGVzdCBvciBkaXN0CiAgIAoyMDAyLTA4LTI2IDIxOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRvbid0IGFwcGVuZCBzeXMtbmFtZSB3aGVuIGJ1aWxkaW5nIGluIHNyYyB0cmVlCiAgIAoyMDAyLTA4LTI2IDIxOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDgtMjYgMjE6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW5hbWUgbnNiLWdldC1jb25mZyAtPiBuc2ItY29uZmlnLWRpc3Q7IHVzZSBkb3VibGUgcXVvdGVzIGN1eiBvZiBzb21lCiAgIHdpZXJkIHNoZWxsIHRoaW5nIEkgZG9uJ3QgeWV0IHVuZGVyc3RhbmQ7IGNoZWNrIGZvciBzcmMgZGlyIGluIGNvbmZpZyoKICAgCjIwMDItMDgtMjYgMjA6MzQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIGNvbW1lbnRjaGVjayB0YXJnZXQgdG8gd29yayBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAyMDozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzIChhbmQgYW55dGhpbmcgdGhhdCBldmVuIHJlbW90ZWx5IHJlc2VtYmxlcyBvbmUpCiAgIAoyMDAyLTA4LTI2IDE0OjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcGFzcyBtYWtlIHBhcmFtcyB0byBtYWtlLCBzbyB3ZSBkb24ndCB0cnkgdG8gaW5zdGFsbCBpbiAvdXNyL2xvY2FsL2JpbiBvZgogICB0aGUgY29tcGlsZSBzZXJ2ZXJzLi4uOi0vCiAgIAoyMDAyLTA4LTI2IDE0OjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSBkaXN0ICYgZXh0cmEgdHJhbnNwb3J0czsgbm8gaXB2NiBvbiBEYXJ3aW47IG1ha2UgdG91Y2hpdCBiZWZvcmUgbWFrZQogICAKMjAwMi0wOC0yNiAxNDowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYzoKCiAgIHJlcGxhY2UgdV9pbnQzMl90LCB3aGljaCBkb2Vzbid0IGNvbXBpbGUgb24gU3VuIDUuOCwgd2l0aCB1X2ludAogICAKMjAwMi0wOC0yNiAxMzo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jOgoKICAgZml4IHVuZGVjbGFyZWQgdmFyaWFibGUgZXJyb3Igc3BvdHRlZCBvbiBTdW4sIHdoaWNoIGxpbnV4IG1pc3NlZCBjb21wbGV0ZWx5LgogICBJIGhhdmUgbm8gaWRlYSBob3cgdGhpcyBjb21waWxlZCBiZWZvcmUhIQogICAKMjAwMi0wOC0yNiAxMzo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNsZWFuZXIgd2F5IHRvIGFkZCBzeXN0ZW0gc3BlY2lmaWMgbW9kdWxlczsgZGlzYWJsZSBwZXJsLCBhcyBpdCBicmVha3MKICAgYnVpbGRzIG91dHNpZGUgb2YgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDEyOjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4CiAgIAoyMDAyLTA4LTI2IDEyOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4OyBiYWlsIG9uIGNvbmZpZ3VyZSBlcnJvcnMKICAgCjIwMDItMDgtMjYgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIHN1Z2dlc3Rpb24gdG8gc3ltbGluayBuc2ItKiBpbiBsb2NhbCBiaW4gZGlyCiAgIAoyMDAyLTA4LTI2IDEyOjAzICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlLCBuc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiBmb3IgcHJlLXJlbGVhc2UgdGVzdCBjb25maWd1cmUgb3B0aW9ucwogICAKMjAwMi0wOC0yNiAxMjowMiAgcnN0b3J5CgogICAqIFJFQURNRS5zbm1wdjM6CgogICBtYWtlIHNlY3Rpb24gaGVhZGVycyBzdGFuZCBvdXQgbW9yZTsgbW92ZSBub3RlIGFib3V0IGVuY3J5cHRpb24gbm90IGJlaW5nCiAgIGVuYWJsZWQgdG8gYSBtb3JlIHByb21pbmVudCBwbGFjZS4KICAgCjIwMDItMDgtMjIgMDU6MzEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oOgoKICAgICAtIERPTlRfVVNFX05MSVNUIHJlaW5zdGF0ZWQsIHNvIE5PX0tNRU1fVVNBR0UgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTIyIDA1OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gcmVpbnN0YXRlIHRlc3QgZm9yIERPTlRfVVNFX05MSVNUCiAgIAoyMDAyLTA4LTIyIDA0OjExICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwMTozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIEFkZCB0aGUgbWlzc2luZyAnLXgvWCcgb3B0aW9ucyB0byB0aGUgZXhhbXBsZSBhdXRoUHJpdiBjb21tYW5kIGxpbmUKICAgICAocmVwb3J0ZWQgYnkgUHJhc2FkYSBSIFZhbmtheWFsYXBhdGkpCiAgIAoyMDAyLTA4LTIwIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBGQVE6CgogICBxdWlldCBzbm1wdHJhcGQgd2hlbiBpdCBjYW4ndCBjb25uZWN0IHRvIHRoZSBhZ2VudHggbWFzdGVyLgogICAKMjAwMi0wOC0yMCAwNTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43Lmg6CgogICAgIC0gYWRkICNkZWZpbmUgTk9fS01FTV9VU0FHRSAxIHNpbmNlIG5ldC1zbm1wLWNvbmZpZy5oLmluIG5vIGxvbmdlcgogICAgICAgcGF5cyBhdHRlbnRpb24gdG8gdGhlIERPTlRfVVNFX05MSVNUIHRva2VuLiAgT21pc3Npb24gb2YgdGhpcwogICAgICAgY2F1c2VzIHRoZSBhZ2VudCB0byBleGl0IHdpdGggdGhlIG1lc3NhZ2UgImluaXRfa21lbToga3ZtX29wZW4KICAgICAgIGZhaWxlZDogZXJyb3IgMCIuCiAgIAogICAgICAgTk9URTogdGhpcyBtYXkgbmVlZCBhcHBseWluZyB0byBvdGhlciBtZW1iZXJzIG9mIHRoZSBTb2xhcmlzIDIKICAgICAgIGZhbWlseSwgYnV0IEkgZG9uJ3QgaGF2ZSBtYWNoaW5lcyB0byBoYW5kIHRvIHRlc3QgdGhpcy4KICAgCjIwMDItMDgtMjAgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBnaWdhYml0IGV0aGVybmV0IGRldmljZXMgKGdlTikKICAgICAtIHVuZG8gaW5kZW50IG1heWhlbQogICAKMjAwMi0wOC0yMCAwMjo1NyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgICAtIGZvciBub3csIGRvbid0ICNpbmNsdWRlIHNubXBfbG9ja2luZy5oIHNpbmNlIGl0IGJyZWFrcyByZS1lbnRyYW50CiAgICAgICBzdXBwb3J0IChiZWNhdXNlIG11dGV4X3R5cGUgZ2V0cyBtdWx0aXBseS1kZWZpbmVkKS4gIEZ1cnRoZXJtb3JlLCB0aGUKICAgICAgIGZ1bmN0aW9ucyBpdCBkZWNsYXJlcyBhcmUgbmV2ZXIgdXNlZCBhbnl3aGVyZSwgbm9yIGRlZmluZWQgYW55d2hlcmUuCiAgIAoyMDAyLTA4LTIwIDAyOjU2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0Lmg6CgogICAgIC0gZG9uJ3QgZGVmaW5lICJkbyBub3RoaW5nIiBtYWNyb3MgZm9yIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucwogICAgICAgb24gV2luMzIgcGxhdGZvcm0gKHNpbmNlIHJlYWwgImRvIG5vdGhpbmciIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQgZm9yCiAgICAgICByZWFzb25zIGJlc3Qga25vd24gdG8gc29tZW9uZSBlbHNlKS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDI6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oOgoKICAgICAtIGZpeCBoaWdobHkgYm9ndXMgbm9uLUMgc3ludGF4CiAgIAoyMDAyLTA4LTIwIDAyOjUzICBqYnBuCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgICAtIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucyBubyBsb25nZXIgI2RlZmluZWQgdG8gImRvIG5vdGhpbmciCiAgICAgICB0YXJnZXRzIGZvciBXaW4zMiBpbiBtdF9zdXBwb3J0LmgsIHRoZXJlZm9yZSBubyBuZWVkIHRvICN1bmRlZiB0aGVtCiAgICAgICBoZXJlLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0xOSAyMjoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgaGVhZGVycyBmb3IgY2FjaGUgZW5hYmxpbmcgZnVuY3Rpb25zLgogICAKMjAwMi0wOC0xOSAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZG9uJ3QgdXNlIG5vbi1leGlzdGVudCBtZW1vcnkgcG9pbnRlcnMgdG8gdGhlIHJlc3BvbnNlIGRhdGEgKGVnOiAidGltZW91dCIpCiAgIAoyMDAyLTA4LTE5IDE0OjQ2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQ2hhbmdlIGEgZmV3IGNvbmRpdGlvbmFscyB0byB1c2UgI2lmIGluIHBsYWNlIG9mICNpZmRlZgogICAKMjAwMi0wOC0xOSAxNDoyOCAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIEFsaWduIHdpdGggNC4yIGJyYW5jaAogICAKMjAwMi0wOC0xOSAxNDoyNiAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIElBTkFpZlR5cGUtTUlCLnR4dAosIElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIGlhbmFsaXN0CiwgbWliZmV0Y2gsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBNSUJzCiAgIAoyMDAyLTA4LTE5IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBCYWlsIG91dCBmb3IgYmFkIHNubXBBZG1pblN0cmluZyB2YWx1ZQogICAKMjAwMi0wOC0xOSAwNzo0MyAgamJwbgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4zKSwgRkFROgoKICAgICAtIGRvbid0IHVzZSBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgaW4gZXhhbXBsZXMKICAgICAtIGJyZWFrIGEgY291cGxlIG9mIG92ZXItbG9uZyBsaW5lcwogICAgIC0gbWVudGlvbiBuZXRzbm1wXyB2YXJpYW50IG9mIGRzX3NldF8gZnVuY3Rpb24KICAgCjIwMDItMDgtMTkgMDI6NDQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBBZGQgYW4gZW50cnkgYWJvdXQgdGhlIHNubXB0cmFwZC9BZ2VudFggd2FybmluZyBtZXNzYWdlLgogICAKMjAwMi0wOC0xOCAxODoyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGNvbmZpZ3VyZSB3aXRoIGJ1aWxkIGluc3RhbGwgZGlyLCBpdCBpcyBhbHJlYWR5IHNwZWNpZmllZCBvbiBjbWQgbGluZQogICBmb3IgbWFrZSBpbnN0YWxsCiAgIAoyMDAyLTA4LTE4IDEwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbW9yZSBkZWJ1Z2dpbmcgLSBsb2cgdmFsdWUgcmVxdWVzdCBpcyB0cnlpbmcgdG8gc2V0CiAgIAoyMDAyLTA4LTE2IDE1OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBCcnVjZSBTaGF3IHRvIHRoZSB0aGFua3MgbGlzdAogICAKMjAwMi0wOC0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBBIGdyZWF0IHVwZGF0ZSB0YWxraW5nIGFib3V0IHBlcmwgYW5kIHNvbGFyaXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAyLTA4LTE2IDAxOjUxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDYXRjaCBleHBsaWNpdGx5ICdub1N1Y2hJbnN0YW5jZScgZXhjZXB0aW9ucywgd2hlbiB3YWxraW5nIGFuCiAgIGl0ZXJhdG9yLWhhbmRsZWQgbW9kdWxlLCBzbyB0aGF0IGhvbGVzIGNhbiBiZSBza2lwcGVkIGFuZCB0aGUKICAgbmV4dCByZWFsIGluc3RhbmNlIHJldHJpZXZlZC4gIChUaGlzIHdhcyBhbHJlYWR5IGhhbmRsZWQgZm9yCiAgIG1vZHVsZXMgdGhhdCBkaWRuJ3QgbWFyayBtaXNzaW5nIGluc3RhbmNlcyBleHBsaWNpdGx5KS4KICAgCjIwMDItMDgtMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgYnkgZGVmYXVsdCwgc2luY2UgdGhlIGFnZW50eCBjb2RlIGFwcGVhcnMgYnJva2VuLgogICAKMjAwMi0wOC0xNiAwMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmM6CgogICBzcGVlZCBlbmhhbmNlbWVudHMgdmlhIGltcGxlbWVudGluZyBhIHJlZ2lzdHJhdGlvbiBzdWJ0cmVlIGxvb2t1cAogICBjYWNoZS4gIGdyZWF0bHkgc3BlZWRzIHRoaW5ncyB1cCB3aGVuIHNpbWlsYXIgcmVxdWVzdHMgY29tZSBpbgogICAoc25tcHdhbGssIC4uLikuCiAgIAoyMDAyLTA4LTE1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwcm90ZWN0IGFnYWluc3QgTlVMTCBsYWJlbHMgaW4gc3VidHJlZXMKICAgCjIwMDItMDgtMTUgMDg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdXNlIG5ldHNubXBfb2lkX2VxdWFscyAod2hpY2ggaXMgc29tZXRpbWVzIGZhc3RlciB0aGFuCiAgIHNubXBfb2lkX2NvbXBhcmUpIGluIGEgZmV3IHBsYWNlcyB0byBhY2hpZXZlIGJhcmVseSBub3RpY2VhYmxlIHNwZWVkIGdhaW5zLgogICAKMjAwMi0wOC0xNSAwODoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciBleGlzdHMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gc3RyY21wKCkKICAgCjIwMDItMDgtMTUgMDg6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSBNQU4zUE9EUyB0byBzb21ldGhpbmcgY29tcGxpYW50IHdpdGggdGhlIHBlcmwgbWFudWFscy4gIEkgdGhpbmsuCiAgIAoyMDAyLTA4LTE0IDEwOjQyICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgZGVidWcgZm9yIGxvY2FsIHBhcnNpbmcgb2YgYXJncwogICAKMjAwMi0wOC0xNCAwOToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYywKICAgc3ViYWdlbnQuYzoKCiAgIGFkZCBtb3JlIGRldGFpbGVkIGluIGRlYnVnIG1lc3NhZ2VzOyBhZGQgYSBmZXcgbmV3IGRlYnVncwogICAKMjAwMi0wOC0xNCAwOToyMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gYWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGZpbmlzaGVkLCBjaGVjayBhbGwgcmVxdWVzdHMgc3RhdHVzIHNvIHRoYXQKICAgYXNwIHN0YXR1cyBpcyBzZXQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBhZ2VudHggc2V0IHByb2Nlc3NpbmcuCiAgIChub3cgaWYgSSBjYW4ganVzdCBnZXQgYWxsIHRoaXMgaGFpciBvZmYgdGhlIGZsb29yLCBhbmQgZ2x1ZSBpdCBiYWNrIHRvIG15CiAgIGhlYWQsIGFuZCB0aGVuIGZpeCB0aGF0IGRlbnQgaW4gdGhlIHdhbGwgd2hlcmUgSSd2ZSBiZWVuIGJhbmdpbmcgbXkgaGVhZC4uLi4pCiAgIAoyMDAyLTA4LTEzIDE0OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYSBsZW5ndGggY29tcGFyaXNvbiBwcm9ibGVtIHdpdGggbmV0c25tcF9vaWRfaXNfc3VidHJlZSgpCiAgIAoyMDAyLTA4LTEzIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgYSBmZXcgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTA4LTEzIDE0OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBGaXggb3BlbiBmaWxlIHJ1bmF3YXkgb24gc29sYXJpcy4gIFNlZSBidWcgIzU5MjgwNiByZXBvcnRlZCBieSBKYW1lcyBJcndpbi4KICAgCjIwMDItMDgtMTMgMTI6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhcnJheSBvZiBwb2ludGVycyA9IHBvaW50ZXIgdG8gYSBwb2ludGVyCiAgIAoyMDAyLTA4LTA5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIG1pc2MgZG9jIGZpeGVzLgogICAKMjAwMi0wOC0wOSAxNjozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIHNsaWdodCBzcGVlZCB1cHMgZm9yIHNubXBfb2lkX2NvbXBhcmUoKSB0byBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIHRpbGwgIT0KICAgCjIwMDItMDgtMDkgMTY6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gb3BlbnNzbCAwLjkuNyBzdXBwb3J0IGZvciBERVMgY2hhbmdlcy4KICAgLSBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxNjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgaW5kZW50IGZpeGVzLgogICAKMjAwMi0wOC0wOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc2NhcGkuaCwgc25tcHVzbS5oOgoKICAgZGVmaW5lIEFFUyBrZXkgc3BlY2lmaWNzCiAgIAoyMDAyLTA4LTA5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gY2hlY2sgZm9yIG9wZW5zc2wgLjAuOS43IERFUyBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMuCiAgIC0gY2hlY2sgZm9yIEFFUyBzdXBwb3J0IGluIG9wZW5zc2wgKD4gMC45LjcpCiAgIAoyMDAyLTA4LTA5IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBtb2RlIHByb2Nlc3NpbmcgZm9yIFJFU0VSVkUxL1JFU0VSVkUyIHRlc3QgZmFpbHVyZXMKICAgCjIwMDItMDgtMDkgMTU6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBsb2cgbXNnIHdoZW4gd2UgaWdub3JlL2ZpeCBpbGxlZ2FsIGVycm9yX3ZhbHVlcyBmb3IgdGhlIGNsaWVudCBBUElzCiAgIAoyMDAyLTA4LTA5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29ycmVjdGlvbnMgdG8gZXhhbXBsZSBjb2RlCiAgIAoyMDAyLTA4LTA5IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgcmV2ZXJ0IGVycm9ycyB0byB1bmluZm9ybWF0aXZlIFNOTVB2MSBub1N1Y2hOYW1lIGZvciBBZ2VudFggZ2V0LW5leHQvaW5jbHVzaXZlCiAgIHByb2Nlc3Npbmc7IGFsc28gYWRkIG1vcmUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUKICAgCjIwMDItMDgtMDkgMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBkZWJ1ZyBtc2cgZm9yIGFnZW50eCBvaWQgZm9yIGNhc2VzIG90aGVyIHRoYW4gZ2V0L2dldG5leHQKICAgCjIwMDItMDgtMDkgMDg6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBkb24ndCBmcmVlIHJlZ2lzdHJhdGlvbiBpbmZvIG9uIGZhaWx1cmUsIGFzIG5ldHNubXBfcmVnaXN0ZXJfbWliIGFscmVhZHkgZGlkIGl0CiAgIAoyMDAyLTA4LTA5IDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gcmVuYW1lIHNubXBfPGRvbWFpbj5fYmxhaCBmdW5jdGlvbnMgdG8gbmV0c25tcF88ZG9tYWluPl9ibGFoCiAgICAgLSBtYWtlIHRyYW5zcG9ydCBtZW1iZXIgZnVuY3Rpb25zIHN0YXRpYywgdG8gZW1waGFzaXNlIHRoYXQgdGhleSBzaG91bGQKICAgICAgIG5vdCBiZSB1c2VkIGRpcmVjdGx5CiAgICAgLSBoYW5kbGUgRUlOVFIgaW4gc2VuZCBhbmQgcmVjdiBmdW5jdGlvbnMgKGFzIHBvaW50ZWQgb3V0IGJ5IEFudHRpIEt1bnRzaQogICAgICAgaW4gYnVnIHJlcG9ydCAjNTc2ODA2KQogICAgIC0gZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwNjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wSVBYRG9tYWluLmgsIHNubXBUQ1BEb21haW4uaCwgc25tcFRDUElQdjZEb21haW4uaAosIHNubXBVRFBEb21haW4uaDoKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA2OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgICAtIGRvbid0IGV4cG9ydCBuZXRzbm1wX3VuaXhfYmxhaCgpIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wOSAwNjo1MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBmaXggbmFzdHkgZm9ybWF0dGluZwogICAKMjAwMi0wOC0wOCAwOToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICByZXdvcmQgY29uZmlnX3BlcnJvciBtc2dzIHRvIHJlbW92ZSAiRXJyb3IiLCBhcyBpdCBpcyByZWR1bmRhbnQKICAgCjIwMDItMDgtMDggMDk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICByZW1vdmUgaWZkZWYgdG8gbG9nIG1zZyB0byB1c2VyLCBhZnRlciBtYWtpbmcgbXNnIG1vcmUgaW5mb3JtYXRpdmU7IHJlbW92ZQogICBhbm5veWluZyBibGFuayBsaW5lcwogICAKMjAwMi0wOC0wOCAwODozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCBmcm9tIEhhcnJpZSB0byBjb21wbGV0ZWx5IGRpc2FibGUga21lbSB1c2FnZQogICAKMjAwMi0wOC0wNiAwMDozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMDoyNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgCjIwMDItMDgtMDYgMDA6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYywgc25tcF9hcGkuYzoKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNSAwNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hdGNoIGZ1bmN0aW9uIGRlZmluaXRpb24gdy9OZXRzbm1wXypfRGF0YVBvaW50IHR5cGVkZWZzOyBhZGQgY3ZzIElkCiAgIAoyMDAyLTA4LTAzIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJyZWFrIHVwIGxpbmVzIGxvbmcgdGhhbiA4MCBjaGFyczsgYWJjZGUsIG5vdCBhYmNkZAogICAKMjAwMi0wOC0wMyAwMDoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgdXBkYXRlcyBhYm91dCB0aGluZ3MgV2VzIGRvZXMgYXQgMTI6MzAgYW0KICAgCjIwMDItMDgtMDIgMjM6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMyApCiAgIAoyMDAyLTA4LTAyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBVcGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDIzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkIC5saWJzCiAgIAoyMDAyLTA4LTAyIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wOC0wMiAyMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTAyIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yZ290dGVuIHRvIGNoZWNrIGluIHRlc3QgZm9yIHBlcmxfZXYgY2hhbmdlcwogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZW1vdmUgZGVidWdnaW5nIHByaW50IChvcHBzKQogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHZlcnNpb24gdXNhZ2UuCiAgIAoyMDAyLTA4LTAyIDIzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjNTcyMzk0IGZyb20gS2F0c3VoaXNhIEFCRToKICAgICAtIHN1cHBvcnQgbGluayBsb2NhbCBhZGRyZXNzZXMKICAgICAtIGJpbmQgdG8gaXB2NiBvbmx5IGlmIElQVjZfVjZPTkxZIGlzIGRlZmluZWQuCiAgIAoyMDAyLTA4LTAyIDIzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IGNvbmZpZ3VyZSBzcGVjaWZpZWQgZGVmYXVsdCB2ZXJzaW9uaW5nCiAgIAoyMDAyLTA4LTAyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM1NzIzOTQ6IGFkZCBpcHY2IHRyYW5zcG9ydHMgd2hlbiAtLWVuYWJsZS1pcHY2IGRlZmluZWQuICBUaGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDgtMDIgMTQ6NTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICB1cGRhdGUKICAgCjIwMDItMDgtMDIgMTQ6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIGRvY3MuCiAgIAoyMDAyLTA4LTAyIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zLCBNYWtlZmlsZS5pbjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBmb3IgeWV0IG1vcmUgc3R1ZmYuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgYSBmZXcgbW9yZSBkaXN0IHJlbGF0ZWQgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlcnJvciBtZXNzYWdlIGNoYW5nZSB0byByZW1vdmUgREVTIHNwZWNpZmljIGVycm9yIG1zZy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIHNwYWNpbmcgZml4ZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnhzOgoKICAgcmVuYW1lZCBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIHJlbmFtZWQgZmlsZQogICAKMjAwMi0wOC0wMiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBBZGQgYSAiZXZhbHZhcnMiIGRpcmVjdGl2ZSB0byBkbyBzaW1wbHkgcmVwbGFjZW1lbnRzLgogICAKMjAwMi0wOC0wMiAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBDVlNVU0VSIHZhcmlhYmxlIHdoZW4gZG9pbmcgc3R1ZmYgaW5zdGVhZCBvZiBteSBoYXJkLWNvZGVkIG5hbWUuCiAgIAoyMDAyLTA4LTAyIDE0OjE0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjaGFuZ2UgY2hlY2tjb21tZW50IHRhZyB0byBleGNsdWRlIHdpbjMyIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGNoYW5nZWxvZyBidWlsZCBub3RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNyZWF0ZWQgYSBob3ctdG8gZmlsZSBmb3IgbWFraW5nIHJlbGVhc2VzCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIGNoYW5nZWxvZyBmaXgtdXAgc2NyaXB0CiAgIAoyMDAyLTA4LTAyIDEwOjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHJhbnNsYXRlICcvJyBpbiBzeXN0ZW0gbmFtZSB0byAnXycgKGZvciBjeWd3aW4pCiAgIAoyMDAyLTA4LTAyIDA5OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIGN2cyBnZXQgY29tbWFuZCBleGFtcGxlCiAgIAoyMDAyLTA4LTAyIDA5OjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBTdXBwcmVzcyAnaW5saW5lJyB3aGVuIG5vdCB1c2luZyBHQ0MuIFN1Z2dlc3RlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDItMDgtMDIgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gb24gc2tpcHBpbmcgbWFrZSB0ZXN0OyBhZGQgLXAgZmxhZyB0byBleGFtcGxlcwogICAKMjAwMi0wOC0wMiAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBkZXNjcmliZSB1c2Ugb2YgbnNiLXBhY2thZ2Ugc2NyaXB0LiBUZXN0ZXJzIGFuZCBjb21tZW50cyBhcHByZWNpYXRlZC4uLgogICAKMjAwMi0wOC0wMiAwODozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBsYXRmb3JtOgoKICAgb3V0cHV0IHBsYXRmb3JtIGluZm8KICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbmFtZWQgdG8gbnNiLXBhY2thZ2UKICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgcmVuYW1lZCBuc2ItYnVpbGQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2NyaXB0IGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTAyIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDaGFuZ2UgbG9jYXRpb24gbmFtZSB0byBVbmtub3duCiAgIAoyMDAyLTA4LTAyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowNCAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggcmV0dXJuIGNvZGUKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGRvbid0IHB1bGwgZmlyc3QgYXJnIHRpbCBhZnRlciBnZXRvcHRzL3NoaWZ0OyBtb3ZlIHNldCBvZiBkZWZhdWx0IG9wdHMKICAgCjIwMDItMDgtMDIgMDc6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgYWRkIC1mIG9wdGlvbiB0byBwcm9tcHQgdG8gb3ZlcnJpZGUKICAgbm8gcHJvbXB0IGZsYWcgKHVzZWZ1bCBmb3IgZXJyb3JzKTsgbmV3IG5zYi1tYWtlIG1ldGhvZDsgY2hlY2sgcmMgb2YKICAgbWFrZSBjbGVhbgogICAKMjAwMi0wOC0wMiAwNzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IHR3ZWFrIHVzYWdlCiAgIAoyMDAyLTA4LTAyIDA3OjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggdHlwbzsgcmVtb3ZlIGV4dHJhIHRyYWlsaW5nIHNsYXNoIGluIGRpcgogICAKMjAwMi0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgY2hlY2sgbW9yZSBwbGFjZXMgdG8gc291cmNlIG5zYi1mdW5jdGlvbnM7IGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgcGF0aAogICAKMjAwMi0wOC0wMiAwNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGp1c3Qgc2hvdyBlcnJvcnMgYWZ0ZXIgYnVpbGQsIG5vdCB3YXJuaW5ncwogICAKMjAwMi0wOC0wMSAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmV2ZXJ0IHRvIG5vbi1hbnNpIHByb3RvdHlwZXMgZm9yIG9sZGVyIHBlcmwgd2l0aCBvbGRlciBjb21waWxlcnMgb24KICAgb2xkZXIgc3lzdGVtcy4gIE5vdCB0aGF0IEknbSBncnVtcHksIG9mIGNvdXJzZS4KICAgCjIwMDItMDgtMDEgMTY6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBjaGVjayBmb3Igb2xkZXIgYW5kIG5ldyBlbWJlZGRlZCBwZXJsIGNhbGwgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTAxIDE0OjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3Qgc3ltbGluayB0byBzcmMgZnJvbSBidWlsZDsgdXBkYXRlIG5zYi1nZXQtY29uZmlnCiAgIAoyMDAyLTA4LTAxIDE0OjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIGRpcgogICAKMjAwMi0wOC0wMSAxMjo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBjb25maWcgaW5zdGFsbCBwYXRoOyByZW1vdmUgcGxhdGZvcm0gc3BlY2lmaWMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDgtMDEgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbW92ZSBoYXJkIGNvZGVkIGluZm8KICAgCjIwMDItMDgtMDEgMTI6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgcHJvbXB0czsgcmVtb3ZlIHByZXZpb3VzIGluc3RhbGxzOyB0d2VhayBlcnIgcGF0dGVybgogICAKMjAwMi0wOC0wMSAxMjoxNCAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpIGluc3RlYWQgb2YgZHNfc2V0X2Jvb2xlYW4oKQogICAKMjAwMi0wOC0wMSAxMjoxMiAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICAgIC0gY2hhbmdlIGNvZGUgc2FtcGxlIHRvIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkKICAgICAtIHVwZGF0ZSByZWZlcmVuY2VzIHRvIGxpYnJhcmllcyAod2hpY2ggd2VyZSBzdGlsbCB0YWxraW5nIGFib3V0CiAgICAgICBsaWJ1Y2RhZ2VudCBldCBhbC4pIC0tIFBMRUFTRSBSRVZJRVcgQkVGT1JFIDUuMC4zCiAgIAoyMDAyLTA4LTAxIDEyOjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbG90cyBvZiBmaXhlcyB0byBwcmV2aW91c2UgdW50ZXN0ZWQgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgc2NyaXB0IHRvIGJ1aWxkIHJlbGVhc2VzLi4uIHN0aWxsIHNvbWUgaGFyZGNvZGluZyB3aGlsZSB0ZXN0aW5nLCBidXQgaXRzCiAgIGdldHRpbmcgdGhlcmUuLi4KICAgCjIwMDItMDgtMDEgMTE6NTEgIHJzdG9yeQoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXA6CgogICB1dGlsaXR5IHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyMi5jOgoKICAgR28gd2l0aCB0aGUgInNjYWxhciBhcyBzdXBlci1oYW5kbGVyIG9mIGluc3RhbmNlIiBpbXBsZW1lbnRhdGlvbi4KICAgU2NhbGFyMS5jIGlzIHByb2JhYmx5IHJlZHVuZGVudCwgYnV0IHdlIGNhbiByZW1vdmUgdGhpcyBsYXRlci4KICAgKFl1cCAtIEknbSBhIGNvd2FyZC4uLi4pCiAgIAoyMDAyLTA4LTAxIDAxOjExICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBNaW5vciB0eXBvcywgcGx1cyBlbXBoYXNpc2UgdGhlIG5lZWQgZm9yIHRoZSBJcEhscEFQSSBsaWJyYXJ5LgogICAKMjAwMi0wNy0zMCAwODoyNiAgZHRzMTIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQ6CgogICBSZWNvZ25pc2UgJzAnIGFzIGEgdmFsaWQgc2V0dGluZyBmb3Igc3VmZml4UHJpbnRpbmcsIGFuZCB1cGRhdGUgdGhlCiAgIHByb21wdHMgdG8gbWF0Y2ggdGhlIHY1IG91dHB1dCBmb3JtYXRzIGRlZmF1bHRzLiBTZWUgQnVnICM1Njc0NTEKICAgCjIwMDItMDctMzAgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXJzdCBhdHRlbXB0IGF0IHRhY2tsaW5nIEJ1ZyAjNTc0NDM0CiAgIFJlY29nbmlzZSB0aGF0IGRlZmF1bHQgb3V0cHV0IGZvcm1hdCBpcyBlcXVpdmFsZW50IHRvIC1PUy4KICAgU25tcHRhYmxlIHN0aWxsIGNyYXNoZXMgd2l0aCAtT2Ygb3IgLU91LCBidXQgYXQgbGVhc3QgdGhlCiAgIGRlZmF1bHQgaW52b2NhdGlvbiB3b3Jrcy4KICAgCjIwMDItMDctMzAgMDU6NDEgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0IG5ld2x5LWRlZmluZWQgcHVibGljIG5hbWVzLCBhbmQgcmUtZXhwb3J0IHNvbWUgcm91dGluZXMgdGhhdAogICBoYXZlIGNoYW5nZWQgbmFtZS4gIFRoaXMgc2hvdWxkIG5vdyBjb21waWxlIHVuZGVyIFZpc3VhbCBDKysgYWdhaW4uCiAgIAoyMDAyLTA3LTMwIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IHJlbW92ZSBhIFJvdy1TdGF0dXMgYXV0by1kZWxldGVkIHJvdyB1bnRpbCB0aGUgbGFzdCBtaW51dGUsCiAgIGluIGNhc2Ugb3RoZXIgKGxvd2VyKSBoYW5kbGVycyB0cnkgdG8gYWNjZXNzIGl0LgogICAKMjAwMi0wNy0zMCAwMTozOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMSksIEZBUToKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gZXNjYXBlIHF1b3RlcyB3aGVuIHF1ZXJ5aW5nIHN0cmluZy1pbmRleGVkIHRhYmxlcy4KICAgCjIwMDItMDctMjkgMjM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1cGRhdGUgcmVnaXN0ZXIgZnVuY3Rpb24gbmFtZQogICAKMjAwMi0wNy0yOSAyMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGF1dG9nZW4gZXhhbXBsZSBjb2RlIGZvciBpbmRleCBjaGVja2luZyBpbiBleHRyYWN0X2luZGV4OyB1cGRhdGUgcmVnaXN0ZXIKICAgZnVuY3Rpb24gbmFtZTsgdXNlIGNvbnRhaW5lciBpbiAqX2dldF9ieV9pZHgoKQogICAKMjAwMi0wNy0yOSAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgbmV3IHN0cnVjdCBuYW1lOyBhZGQgZXhhbXBsZSBjb2RlIGFzIGNvbW1lbnRzIGluc3RlYWQgb2YgdmFyX1hYWAogICBhbmQgc3VjaDsgaW4gYSBmZXcgaW1wb3J0YW50IHBsYWNlcyBhZGQgY29kZSB3aGljaCB3aWxsIGFsbG93IGEgbmV3bHkKICAgZ2VuZXJhdGVkIG1vZHVsZSB0byBiZSBjb21waWxlZCBpZiAtRFRBQkxFX0NPTlRBSU5FUl9UT0RPIGlzIHNwZWNpZmllZDsKICAgcHJvYmFibHkgYSBmZXcgb3RoZXIgdHdlYWtzIEkgZm9yZ290CiAgIAoyMDAyLTA3LTI5IDAzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfYXJyYXkuYywgdGFibGUuYywgdGFibGVfZGF0YS5jCiwgdGFibGVfZGF0YXNldC5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGRlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMuCiAgIChNb3N0IG9mIHRoZXNlIFNob3VsZCBOZXZlciBIYXBwZW4gYnV0IFlvdSBDYW4ndCBCZSBUb28gQ2FyZWZ1bCEpCiAgIAoyMDAyLTA3LTI5IDAzOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgYGRtZmUnIGV0aGVybmV0IGNhcmRzIGFzIGZvdW5kIG9uIE5ldHJhIFgxIG1hY2hpbmVzLgogICAgICAgVGhhbmtzIHRvIEpvaG4gT2xzb24gZm9yIHZlcmlmeWluZyB0aGlzIGZpeC4KICAgCiAgICAgICBBbHNvIG5vdGUgdGhhdCBgaW5kZW50JyBoYXMgLS0tLWVkIHRoZSBmb3JtYXR0aW5nIG9mIHRoaXMgZmlsZQogICAgICAgYmV5b25kIGxlZ2liaWxpdHkgaW4gc2V2ZXJhbCBwbGFjZXMuICBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8KICAgICAgIGRvICp0aGF0KiBhZ2Fpbi4KICAgCjIwMDItMDctMjkgMDI6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRnVsbGVyIHZhbGlkYXRpb24gb2YgUm93U3RhdHVzIHZhbHVlcyB3cnQgcm93IGNyZWF0aW9uL2V4aXN0aW5nIHJvd3MuCiAgIAoyMDAyLTA3LTI5IDAxOjI1ICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFRha2UgYWNjb3VudCBvZiByZWNlbnQgY2hhbmdlcyBpbiBsaWJyYXJ5IGZpbGVzLgogICAnUmVsZWFzZScgYXBwbGljYXRpb25zIHN0aWxsIGRvbid0IGxpbmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdAogICB0aGUgbGlicmFyaWVzIGNvbXBpbGUsIGFuZCB0aGUgJ0RlYnVnJyBzaWRlIHNlZW1zIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTI5IDAxOjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFR3ZWFrIGlubGluZSBoYW5kbGluZyBmb3IgQUlYIC0gc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDItMDctMjYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGF1dG9kZXBlbmRlbmNpZXMgdW50aWwgcG9ydGFibGUgc29sdXRpb24gY2FuIGJlIGZvdW5kCiAgIAoyMDAyLTA3LTI2IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgbWliX21vZHVsZV9pbml0cy5oOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChvYnNvbGV0ZSkgdWNkLXNubXAvcmVnaXN0cnkgbW9kdWxlLgogICAKMjAwMi0wNy0yNiAwNzozMiAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBQcm90ZWN0IHRoZSBXaW4zMiB2ZXJzaW9uIG9mIHRoZSBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgb3RoZXIgaGVhZGVyCiAgIGZpbGVzIHJlY29nbmlzZSB0aGF0IGl0IGhhcyBpbmRlZWQgYmVlbiBpbmNsdWRlZC4KICAgCjIwMDItMDctMjYgMDc6MjQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjApLCBGQVE6CgogICBBIGJpdCBtb3JlIGRldGFpbCBvbiBtaWIyYywgcGx1cyB0aGUgbm9uLXdyaXRlYWJpbGl0eSBvZiBzeXN7TG9jYXRpb24sQ29udGFjdH0KICAgCjIwMDItMDctMjYgMDU6MjIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjkpLCBGQVE6CgogICBBbm90aGVyIGVudHJ5IGFib3V0IGludmFsaWQgdXNlIG9mIG1pYjJjLgogICAKMjAwMi0wNy0yNiAwNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFN1cHByZXNzIHRoZSAibm9uLXN0YW5kYXJkIiBjb25kaXRpb25hbCBjb25zdHJ1Y3QsCiAgIHNpbmNlIGl0J3Mgbm90IHJlY29nbmlzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiAnbWFrZScuCiAgIAoyMDAyLTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIHRoZSAnc2NhbGFyJyBhbmQgJ3dhdGNoZXInIGhlbHBlcnMgdG8gdGhlIGhlbHBlciBsaWJyYXJ5LgogICAKMjAwMi0wNy0yNSAwMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIFN1cHBvcnQgZm9yIHdhdGNoaW5nIGEgc3lzVXBUaW1lIG1hcmtlci4KICAgCjIwMDItMDctMjUgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIE5ldyByb3V0aW5lIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIHZhbHVlIGRpcmVjdGx5IGZyb20gYSByZXF1ZXN0IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMTM6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNoZWNrIGZvciBzZXR0aW5nIHNhbWUgdmFsdWUgaW4gZHNfc2V0X3N0cmluZywgc2luY2UgaXQgZnJlZXMgdGhlIG9sZAogICB2YWx1ZSBiZWZvcmUgZHVwaW5nIHRoZSBuZXcgb25lCiAgIAoyMDAyLTA3LTI0IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICBmaXJzdCBzdGFiIGF0IGluaXQuZCBzdGFydHVwIHNjcmlwdCBmb3Igc25tcGQKICAgCjIwMDItMDctMjQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgV2hlbiBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIG9uZSBjb2x1bW4sIGFuZCBtb3Zpbmcgb24gdG8gdGhlIG5leHQKICAgKGluIGEgR2V0TmV4dCksIHdlIG5lZWQgdG8gc3RhcnQgYWdhaW4gd2l0aCB0aGUgZmlyc3Qgcm93LgogICBUaGlzIGlzIHByb2JhYmx5IHRoZSBpbnRlbnRpb24gb2YgdGhlIGNvbmRpdGlvbmFsIGJsb2NrIGF0IHRoZSBzdGFydAogICBvZiB0aGlzIGxvb3AsIGJ1dCBJIGNhbid0IHNlZSBob3cgdGhpcyB0ZXN0IGNvdWxkIGV2ZXIgcG9zc2libHkgbWF0Y2guCiAgIAogICBOb3RlIHRoYXQgdGhlcmUgaXMgYWxzbyBhIHJlZmVyZW5jZSB0byB0aGUgcm93IGRhdGEgYWNjZXNzaWJsZSB2aWEKICAgdGhlICdyZXF1ZXN0LT5wYXJlbnRfZGF0YScgZGF0YSBsaXN0LiAgIFRoaXMgd2lsbCBhbHNvIG5lZWQgdG8gYmUKICAgcmV3b3VuZC4gIFN1Z2dlc3Rpb25zIGFzIHRvIGhvdyBiZXN0IHRvIGRvIHNvIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCiAgIAoyMDAyLTA3LTI0IDA2OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgZmFpbGluZyB0byBleHRyYWN0IGEgcm93IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMDY6MzUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBpbnZhbGlkIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTIzIDE0OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtaXNzaW5nIGNvbW1lbnQgdGVybWluYXRvci46LSgKICAgCjIwMDItMDctMjMgMTI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKICAgCjIwMDItMDctMjMgMTI6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICBhZGQgbmV3IG5ldHNubXBfYXNzZXJ0LCB3aGljaCBkZWZhdWx0cyB0byBsb2dnaW5nIGEgbWVzc2FnZQogICAKMjAwMi0wNy0yMyAwNzo0MyAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zIChWNC0yLXBhdGNoZXMuMyksIG1pYl9hcGkuMy5kZWY6CgogICBGaXggdGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgJ3NwcmludF9yZWFsbG9jJyBjYWxscywgdG8gaW5jbHVkZSB0aGUgJ2FsbG93X3JlYWxsb2MnIHBhcmFtZXRlci4KICAgCjIwMDItMDctMjIgMTA6NTggIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYywgbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyAoYWxtb3N0IGVtcHR5KSBzcGVjIGZpbGU7IHN0YXJ0IGNyZWF0aW5nIGZ1bmN0aW9ucyBmb3IgYXV0b21hdGVkIGJ1aWxkcwogICAKMjAwMi0wNy0yMiAwMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEEgbW9yZSBnZW5lcmFsaXNlZCBmb3JtIG9mIHRoZSAnbnNfcmVnaXN0ZXJfe3R5cGV9X2luc3RhbmNlJyByb3V0aW5lcywKICAgaW1wbGVtZW50ZWQgYXMgYSBzZXBhcmF0ZSBoZWxwZXIgbW9kdWxlLCBhbmQgdXNlYWJsZSB3aXRoIGJvdGggdGhlCiAgIGluc3RhbmNlIGFuZCBzY2FsYXIgaGVscGVycy4KICAgICBUaGlzIGFsc28gc3VwcG9ydHMgYXJiaXRyYXJ5IEFTTiB0eXBlcyAoaW5jbHVkaW5nIHN0cmluZ3MgYW5kIE9JRHMpLgogICAKMjAwMi0wNy0yMiAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyMi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oOgoKICAgQWdlbnQgaGVscGVyIG1vZHVsZSBmb3Igc3VwcG9ydCBvZiBzY2FsYXIgb2JqZWN0cy4KICAgVmVyeSBzaW1pbGFyIHRvIHRoZSAiaW5zdGFuY2UiIGhlbHBlciwgZXhjZXB0IHRoYXQgdGhpcyBkZWFscyB3aXRoCiAgIGludmFsaWQgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgYXMgd2VsbCAocmVwb3J0aW5nIG5vU3VjaEluc3RhbmNlCiAgIHJhdGhlciB0aGF0IG5vU3VjaE9iamVjdCkuCiAgIAogICBUaGVyZSBhcmUgdHdvIHBhcmFsbGVsIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgbW9tZW50OgogICAgIC0gc2NhbGFyMSBpcyBlc3NlbnRpYWxseSBhbiBlbmhhbmNlZCBjb3B5IG9mIHRoZSBpbnN0YW5jZSBoZWxwZXIsCiAgICAgICBidXQgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBpdC4KICAgICAtIHNjYWxhcjIgc2l0cyBhYm92ZSB0aGUgaW5zdGFuY2UgaGVscGVyLCBhbmQgdXNlcyB0aGF0IHRvIGRvIG1vc3QKICAgICAgIG9mIHRoZSByZWFsIHByb2Nlc3NpbmcuCiAgIFNjYWxhcjEgaXMgcHJvYmFibHkgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQsIHdoaWxlIHNjYWxhcjIgZmVlbHMgbW9yZQogICBpbiBrZWVwaW5nIHdpdGggdGhlIGdlbmVyYWwgZXRob3Mgb2YgdGhlIGhhbmRsZXIgbWVjaGFuaXNtLgogICBXZSBwcm9iYWJseSBuZWVkIHRvIGRlY2lkZSB3aGljaCB0byBhZG9wdCwgYW5kIGp1bmsgdGhlIG90aGVyLgogICAKMjAwMi0wNy0xOSAxNDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHVzZSBuZXQgYWdlbnR4IHJldGlyZXMvdGltZW91dCBkcyB2YWx1ZXMKICAgCjIwMDItMDctMTkgMTQ6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgcmVnaXN0ZXIgcGFyc2VyIGZvciBhZ2VudHhUaW1lb3V0IGFuZCBhZ2VudHhSZXRyaWVzIHRva2VucwogICAKMjAwMi0wNy0xOSAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbi1leGlzdGVudCBuc3RBZ2VudCogZmlsZXMKICAgCjIwMDItMDctMTkgMTQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbW92ZSBPTkVfU0VDIHRvIGRlZmluaXRpb25zLmg7IGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMgZGVmYXVsdHMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oOgoKICAgbW92ZSBkZWZpbml0aW9uIG9mIE9ORV9TRUMgaGVyZSBmcm9tIHNubXBkLmMKICAgCjIwMDItMDctMTkgMTE6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcGFzcyBsb2NhbCBvYmosIG5vdCByYW5kb20gdW5pdGlhbGl6ZWQgcG9pbnRlci46LSgKICAgCjIwMDItMDctMTkgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgTUFYUEFUSExFTiBpc24ndCBkZWZpbmVkLgogICAKMjAwMi0wNy0xOSAwMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgdGhlICJzeXN0ZW0taW5kZXBlbmRlbnQiIFNOTVBfTUFYUEFUSCBsZW5ndGggZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIE1BWFBBVEhMRU4KICAgCjIwMDItMDctMTggMjI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub25leGlzdGVudCBtaWJncm91cC9uc3RBZ2VudE1vZHVsZU9iamVjdC5oCiAgIAoyMDAyLTA3LTE4IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIgKQogICAKMjAwMi0wNy0xOCAxOTo0MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuMgogICAKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWlub3IgcGF0Y2ggZm9yIG5vbi1leGlzdGVudCAoZGllZCkgbG9nIGZpbGVzLgogICAKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMgogICAKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBtYWtlIGRlcGVuZCBmaXhlcy4KICAgCjIwMDItMDctMTggMTg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhbGFybS5jLCBldmVudC5jOgoKICAgbWFrZSB0aGUgcm1vbiBjb2RlIGNvbXBpbGUuCiAgICAtIG5ldyBzdWJ0cmVlIHBvaW50ZXIgc3RydWN0dXJlLgogICAgLSBzcHJpbnRfb2JqaWQgLT4gc25wcmludF9vYmppZAogICAKMjAwMi0wNy0xOCAxODozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBzaWxlbmNlIHBlcmwgc3ViZGlyZWN0b3J5IGJ1aWxkIGNvbW1hbmRzLgogICAKMjAwMi0wNy0xOCAxODozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIFVzZSBuZXRzaCAtdCAtZCB4bWwgdG8gZ2V0IHhtbCBvdXRwdXQgZnJvbSBuZXRzaC4KICAgICAoT2ssIEknbSBzaXR0aW5nIGhlcmUgYXQgYW4gSUVURiBjb25mZXJlbmNlIGhhdmluZyBhbiBhcmd1bWVudCBhYm91dAogICAgICB4bWwgdnMgQkVSIGFuZCBuZWVkZWQgYSBYTUwoLWxpa2UpIGV4YW1wbGUgb2YgYSBodWdlIGRhdGEgc2V0LCBzbyBJCiAgICAgIG1hZGUgbmV0c2ggZG8gaXQuKQogICAKMjAwMi0wNy0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gaW5pdGlhbCBzdXBwb3J0IGZvciBkb2luZyByZXF1ZXN0cyBmcm9tIG11bHRpcGxlIGhvc3RzIChyZXRyaWV2YWwsIG5vdCBzZXRzKQogICAKMjAwMi0wNy0xOCAxNzo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBtb3JlIGZpeGVzIHRvIHN0aWxsIHVnbHkgY29sb3JpemVkIHRleHQgKHdlbGwsIHRoZSB0ZXh0IGlzIHByZXR0eSBidXQKICAgdGhlIHN1cHBvcnQgaXMgdWdseSkuCiAgIAoyMDAyLTA3LTE4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBjaGFuZ2UgdGV4dCBzdHJpbmcgZXJyb3IgdG8gbWF0Y2ggZnVuY3Rpb24gbmFtZSBjYWxsZWQuCiAgIAoyMDAyLTA3LTE4IDE1OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW5hbWUgZnJlZSAtPiBjZnJlZSB0byBhdm9pZCBzb21lIHByb2JsZW0gd2VzIGhhZC4uLiA7LSkKICAgCjIwMDItMDctMTggMTQ6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdHdvIHBlb3BsZSBmaXhpbmcgbWVtb3J5IGxlYWsgaW4gZGlmZmVyZW50IHBsYWNlcyA9IHNlZ2ZhdWx0CiAgIAoyMDAyLTA3LTE4IDExOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgJG5hbWUgLT4gJGkKICAgCjIwMDItMDctMTggMTA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTggMDk6NDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1kZWJ1Zy10b2tlbnMsIC0taW5kZW50LW9wdGlvbnMKICAgCjIwMDItMDctMTggMDk6MTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCBzbm1wbGliL3NubXAtdGMuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIEFwcGx5IHBhdGNoIGZyb20gQnVnICM1ODIzNDcsIGZvciBJcml4IDYuNSBzdXBwb3J0LgogICBTdWJtaXR0ZWQgYnkgSmFuIFllbnlhIEthc3ByemFrCiAgIAoyMDAyLTA3LTE4IDA5OjEyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuOC5kZWY6CgogICBGaXggbWFya3VwIHByb2JsZW0gb24gc25tcHRyYXBkIG1hbiBwYWdlIChCdWcgIzU4MzMyOSkKICAgCjIwMDItMDctMTggMDk6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVGhlIGZpeCBmb3IgdGhlIHRtX2dtdG9mZiBwcm9ibGVtIG9uIEFJWCAoQnVnICM1NjU3NjkpIGFsc28gYXBwbGllcyB0byBBSVggNQogICAKMjAwMi0wNy0xOCAwOTowNiAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAoVjQtMi1wYXRjaGVzLjEpLCBlbmNvZGVfa2V5Y2hhbmdlLmMKOgoKICAgRml4IG9mZi1ieS1vbmUgYnVmZmVyIG92ZXJmbG93IChwYXRjaCAjNTc3MjYxKQogICAKMjAwMi0wNy0xOCAwODo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgR2VuZXJhdGUgb25lIGNvZGUtZmlsZSBwZXIgdGFibGUgKHRvIG1hdGNoIHRoZSBoZWFkZXIgc3RydWN0dXJlKS4KICAgTXkgYXBvbG9naWVzIGlmIHRoaXMgaXNuJ3QgY29ycmVjdCwgUm9iZXJ0IC0gYnV0IHRoZSBwcmV2aW91cyBiZWhhdmlvdXIKICAgc2VlbWVkIHRvIGJlIGJyb2tlbi4KICAgCjIwMDItMDctMTggMDg6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFRhY2tsZSBzb21lIG9mIHRoZSBpbW1lZGlhdGUgZGVmaWNpZW5jaWVzIGluIHRoZSBmaXJzdCBkcmFmdCBvbGQtYXBpIGNvbmZpZy4KICAgKE5vdyB0aGF0IFdlcyBoYXMgcG9pbnRlZCBtZSBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uISkKICAgCjIwMDItMDctMTggMDg6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHRoZSAnZGVjbCcgc3Vic3RpdHV0aW9uIGhhbmRsaW5nIChzbyBpdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludGVybmFsIHRva2VuIGFzIHdlbGwpLgogICAKMjAwMi0wNy0xOCAwNzoxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBQcm92aWRlIHRoZSBtaXNzaW5nIHBhcmFtZXRlciBpbiBhIHJlYWRfb25seSBpbnN0YW5jZSByZWdpc3RyYXRpb24uCiAgIAoyMDAyLTA3LTE4IDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBCcmluZyB0aGUgJ3JlYWRfb25seV9pbnQnIGluc3RhbmNlIGhhbmRsZXIgaW4gbGluZSB3aXRoIHRoZSByZXN0IG9mCiAgIHRoZSBjb252ZW5pZW5jZSBpbnN0YW5jZSBoYW5kbGVycy4KICAgKGFuZCBldmVuIGJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lIGFuZCBkZWNsYXJlIHRoZSB0aGluZy4uLi4pCiAgIAoyMDAyLTA3LTE4IDA1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYW5vdGhlciBtZW1vcnkgbGVhayBkdWUgdG8gYW4gaW1wcm9wZXIgaWZkZWZlZCBvdXQgc2VjdGlvbiBvZiBjb2RlCiAgIAoyMDAyLTA3LTE4IDA0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBJJ20gYmVnaW5uaW5nIHRvIHJlZ3JldCBldmVyIHJ1bm5pbmcgaW5kZW50IG9uIHRoZSBjb2RlIGJhc2UuLi4KICAgCjIwMDItMDctMTcgMTU6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICBkb2N1bWVudCBhbmQgaW5zdGFsbCBtaWIyYy5vbGQtYXBpLmNvbmYKICAgCjIwMDItMDctMTcgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggc2VnZmF1bHQgKHBvc3NpYmx5IGNyZWF0aW5nIG1lbW9yeSBsZWFrKTsgYXV0aG9yIG5lZWRzIHRvIGV4YW1pbmUgY29kZQogICAKMjAwMi0wNy0xNyAwNzo0MSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNvbmYsCiAgIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLmludF93YXRjaC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgRGF2ZSdzIGJlaW5nIHVucmVhc29uYWJseSBwaWNreSBhYm91dCBncmFtbWFyICYgc3BlbGxpbmcgYWdhaW4uCiAgIEp1c3QgaWdub3JlIGhpbSwgYW5kIGhlJ2xsIGdvIGF3YXkuLi4uLgogICAKMjAwMi0wNy0xNyAwNzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgb2xkIDR4LXN0eWxlIGFnZW50IEFQSSB1c2luZyB0aGUgbmV3IHZlcnNpb24gb2YgbWliMmMuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHR5cGVzIHByb3Blcmx5LCBhbmQgSSdtIHN1cmUgSSdsbCBoYXZlIGJ1Z2dlcmVkIHVwIHNvbWUgb2YKICAgdGhlIGNvbnRyb2wgc3RydWN0dXJlIGhhbmRsaW5nLCBidXQgaXQgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZXRoaW5nIHRoYXQncwogICBwcmV0dHkgY2xvc2UgdG8gdGhlIG9sZCBvdXRwdXQuICAgSXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLi4uLi4KICAgCjIwMDItMDctMTYgMjI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgcmVzdG9yZSBpbmxpbmUgZnVuY3Rpb25zIChzaWdoLiBJIGZlZWwgbGlrZSBJJ20gcGxheWluZyByaW5nLWFyb3VuZC10aGUtcm9zaWUpCiAgIAoyMDAyLTA3LTE2IDIxOjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbmFtZSBzb21lIHN0cnVjdCBtZW1iZXJzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgYSBiaXQgb2YgcmUtb3JkZXJpbmcKICAgaW4gdGhlIHNldCBjb2RlOyBuZXcgZmxhZ3MgZm9yIG5ldyBhbmQgZGVsZXRlZCByb3dzOyByb3cgZGVsZXRlcyBub3cKICAgYWN0dWFseSB3b3JrIQogICAKMjAwMi0wNy0xNiAxOTozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGFuZ2UgY29tcGxleCBtYWNyb3MgaW50byBmdW5jdGlvbnMuIHdvdWxkIGJlIG5pY2UgaWYgQyBoYWQgaW5saW5lLgogICAKMjAwMi0wNy0xNiAxODowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHVtbSwgdHJ5IHVzaW5nIGNvcnJlY3QgZGVmaW5lLjotLwogICAKMjAwMi0wNy0xNiAxODowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHRlc3QgdGhhdCBuZXQtc25tcC1jb25maWcuaCBoYXMgYmVlbiBpbmNsdWRlZCwgaW5zdGVhZCBvZiBhY3R1YWxseSBpbmNsdWRpbmcgaXQuLgogICAoc2hvdWxkbid0IHRoaXMgcmVhbGx5IGJlIGluIGFsbCB0aGUgaGVhZGVyIGZpbGVzPykKICAgCjIwMDItMDctMTYgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTYgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0xNiAxMToxNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcyAoZ3J1bWJsZSBncnVtYmxlKQogICAKMjAwMi0wNy0xNiAxMToxNCAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuZGVwZW5kLCBtaWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGZhY3RvcnkuYwogICAKMjAwMi0wNy0xNiAxMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2NvbnRhaW5lcl9pbml0X2xpc3QoKSBpbiBzdGFydHVwIGluaXRzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLCBzbm1wbGliL29pZF9hcnJheS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hnIHBhcmFtIHR5cGUgZnJvbSB2b2lkKiB0byBzdHJ1Y3QgKgogICAKMjAwMi0wNy0xNiAxMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaDsgYWRkIGZhY3RvcnksIGJpbmFyeSBhcnJheSAuW2NoXTsgZGVyaXZlCiAgIE9CSlMgYW5kIExPQkpTIGZyb20gQ1NSQ1M7IGFkZCAob3B0aW9uYWwpIGF1dG8gZGVwZW5kZW5jeSBnZW5lcmF0aW9uCiAgIAoyMDAyLTA3LTE2IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaAogICAKMjAwMi0wNy0xNiAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIHN0cnVjdCBzdWJ0cmVlIC0+IG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNiAwOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGxhc3QgcmVtYWluaW5nIHJlZnMgdG8gbm93IGRlZnVuY3Qgb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBnZW5lcmljIGJpbmFyeSBhcnJheSBjb250YWluZXIgZXh0cmFjdGVkIGZyb20gb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaDsgbmV3IHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaW5kZXggKG9pZCBwdHIgKyBsZW4pCiAgIAoyMDAyLTA3LTE2IDA5OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgZ2VuZXJpYyBjb250YWluZXIgaW50ZXJmYWNlOyB1c2UgbmV3IG5ldHNubXBfaW5kZXggaW5zdGVhZCBvZgogICBvaWRfYXJyYXlfaGVhZGVyOyByZW5hbWUgYXJyYXlfZ3JvdXAgLT4gcmVxdWVzdF9ncm91cAogICAKMjAwMi0wNy0xNiAwOTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaXRlcmF0b3JzOyBtb3JlIGZ1bmN0aW9uIHR5cGVkZWZzOyByZW5hbWUgc29tZSBmdW5jIHB0cnMsIGFkZCBmaW5kX25leHQsCiAgIGdldF9zdWJzZXQsIGdldF9pdGVyYXRvciwgZm9yX2VhY2gsIG5jb21wYXJlOyBhZGQgYWJpbGl0eSB0byBoYXZlIG5lc3RlZAogICBjb250YWluZXJzOyBtb3JlIHV0aWxpdHkgcm91dGluZXM7IGNvbnZlbmllbmNlIG1hcmNyb3M7IHN0YXJ0IGFkZGluZyBjb21tZW50cwogICAKMjAwMi0wNy0xNiAwOToyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5Lmg6CgogICBkZWNsYXJhdGlvbnMgZm9yIGEgZ2VuZXJpYyBmYWN0b3J5CiAgIAoyMDAyLTA3LTE2IDA4OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9keW5peC5jLCBtZW1vcnlfaHB1eC5jCiwgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9ocHV4LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIGJ1ZyByZXBvcnQgNTgxNjE4IChhbHNvIGFwcGxpY2FibGUgdG8gZHluaXgpCiAgIFByb3ZpZGVkIGJ5IE5pY2hvbGFzIEwuIE5pZ2F5CiAgIAoyMDAyLTA3LTE2IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgcmVtb3ZlICJvdXIiIHByb2JsZW0gYW5kIHVzZSBvbGRlciAidXNlIHZhcnMiIGluc3RlYWQgZm9yIG9sZGVyIHBlcmwuCiAgICAgKHRoaXMgc2hvdWxkIG1ha2UgaXQgd29yayB3aXRoIHBlcmwgNS4wMDUuICBDb3VsZCBzb21lIG9uZSB0ZXN0IHRoaXMKICAgICAgZm9yIG1lPykKICAgCjIwMDItMDctMTUgMDY6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIG5hbWVzIG9mIG5ldHNubXBfc3VidHJlZSBlbGVtZW50cyBjaGFuZ2VkCiAgIAoyMDAyLTA3LTE1IDA2OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNSAwNToyNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBTb21lIHJlYWxseSBuYXN0eSBoYWNrcyB0byBnZXQgY29sb3JpemVkIHRhYmxlcyB0byB3b3JrLgogICAKMjAwMi0wNy0xNCAyMDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWIudDoKCiAgIGNvbW1lbnQgb3V0IGJyb2tlbiB0ZXN0cyBmb3Igbm93IChYWFggbWFya2VkKQogICAKMjAwMi0wNy0xNCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZ2V0YnVsay4KICAgCjIwMDItMDctMTQgMjA6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBBIG5ldyBmdW5jdGlvbiB0byBjYWxsIGEgc3ViLWhhbmRsZXIgYnV0IHBhc3NpbmcgaXQgb25seSBvbmUgcmVxdWVzdCB0byBoYW5kbGUuCiAgIAoyMDAyLTA3LTEwIDIxOjIxICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkZWZpbmUgTE9HX0RBRU1PTiwgc2luY2Ugd2luZG93cyBkb2Vzbid0IGhhdmUgaXQKICAgCjIwMDItMDctMTAgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBkZWZpbmUgb2YgaW5fYWRkcl90LCB3aGljaCBjYW4gYmUgZm91bmQgaW4gbmV0LXNubXAvdHlwZXMuaAogICAKMjAwMi0wNy0xMCAwMjozNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTAgMDI6MzUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBkb24ndCB1c2UgMCBpbiAlcCBmb3JtYXQgc3BlY2lmaWVycwogICAKMjAwMi0wNy0xMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIGZpeCBzb21lIGhvcnJpYmxlIGluZGVudCBicm9rZW4gZm9ybWF0dGluZwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gcmVtb3ZlIHNvbWUgb2Jzb2xldGUgdmFyaWFibGVzCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHJlZmxlY3QgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBmcm9tIGFnZW50X3JlZ2lzdHJ5CiAgIAoyMDAyLTA3LTEwIDAyOjMyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgICAgLSBjaGFuZ2VzIGR1ZSB0byByZW5hbWluZyBvZiBzdHJ1Y3Qgc3VidHJlZSB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIE5PVEUgTUVNT1JZIExFQUsgKHdoaWNoIEkgY2FuJ3Qgc2VlIGhvdyB0byBmaXggLS0gbmV3IGFnZW50IEFQSQogICAgICAgZXhwZXJ0cyBwbGVhc2UgZXhhbWluZSkKICAgCjIwMDItMDctMTAgMDI6MjkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gbmFtZSwgc3RhcnQsIGVuZCBtZW1iZXJzIGFyZSBub3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRvIHJlZHVjZQogICAgICAgd2FzdGVkIG1lbW9yeSAoYnkgYSBmYWN0b3Igb2YgNSBvciBzbykKICAgICAtIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCBjb25zaXN0ZW50bHkKICAgCjIwMDItMDctMTAgMDI6MjAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG5ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMDkgMDY6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUgY2FjaGVfaWQgc3RvcmFnZSB3aGVuIGNsb3Npbmcgc2Vzc2lvbgogICAKMjAwMi0wNy0wOSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0ganVzdCBjYWxsIG5ldHNubXBfZHNfc2h1dGRvd24oKSBvbmNlIGluIHNubXBfc2h1dGRvd24oKQogICAKMjAwMi0wNy0wOSAwNDoxNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBuZXRzbm1wX2ZpeHVwX21pYl9kaXJlY3RvcnkoKQogICAKMjAwMi0wNy0wOSAwMzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBhIGNhc3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wOCAyMjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGV4dGVybiBDIGZvciBDKysgY29tcGlsZXMKICAgCjIwMDItMDctMDggMDc6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wNy0wNyAxOTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0wNyAxOTozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA3LTA3IDE5OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIHByb2MuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDItMDctMDcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG1ha2UgcGFyYW0gY29uc3Q7IGZpeCBjb21waWxlIGNvbnN0IHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpeCBtZW1vcnkgbGVhazsgcHJlcCBhIGZldyBjb21tZW50cyBmb3IgaW5kZW50CiAgIAoyMDAyLTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMi5wcmUxICkKICAgCjIwMDItMDctMDYgMTQ6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSBwcm9qZWN0IHZlcnNpb24gdG8gNS4wLjIKICAgCjIwMDItMDctMDYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHNubXB0cmFwZCBpcyBhY3R1YWxseSBidWlsdCBpbiB0aGUgYXBwcyBkaXJlY3RvcnksIG5vdCB0aGUgYWdlbnQgZGlyZWN0b3J5LgogICAKMjAwMi0wNy0wNSAxMTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xhcmlmeSBkaXJlY3Rpb25zIGZvciBvYnRhaW5pbmcgcGVybC9TTk1QIG1vZHVsZS4KICAgCjIwMDItMDctMDUgMDU6MTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gLi4uCiAgIAoyMDAyLTA3LTA1IDAzOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2NsaWVudC5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gc3lzT2JqZWN0SUQgd2FzIGJlaW5nIHJldHVybmVkIG1pbnVzIGl0cyBsYXN0IHN1Yi1pZGVudGlmaWVyIGJlY2F1c2UKICAgICAgIHRoZSBsZW5ndGggdmFyaWFibGUgaGFkIG5vdCBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IGl0CiAgICAgICBpcyBub3cgbG9uZ2VyLiAgQ29kZSBjaGFuZ2VkIHRvIHVzZSBzaXplb2YoKSBpbnN0ZWFkLCBzbyB0aGlzIHdvbid0CiAgICAgICBoYXBwZW4gYWdhaW4uICBSZXBvcnRlZCBieSBTdGlhbiBTb2lsYW5kIChidWcgIzU3NzQzOSkuCiAgIAoyMDAyLTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAKICAgCjIwMDItMDctMDQgMDc6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIGhhbmRsaW5nIG9mIG9wYXF1ZSBwb2ludGVyIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cyB0bwogICAgICAgYXZvaWQgYm90aCBtdWx0aXBsZSBmcmVlKCkgcHJvYmxlbSBhbmQgdW5uZWNlc3NhcnkgY29weWluZy4KICAgCjIwMDItMDctMDQgMDY6MDAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAoVjQtMi1wYXRjaGVzLls1LDldKSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTmV0d29ya0Rpc2sgcGF0Y2ggIzU1NDU1NAogICAKMjAwMi0wNy0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oCiAgIChWNC0yLXBhdGNoZXMuWzUsMV0pLCBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5GUyBmaWxlc3lzdGVtIHBhdGNoICM1NTQ1NTMKICAgKHNpbXBsaWZpZWQgdG8gYXZvaWQgdGhlIHJlLWluZGVudGF0aW9uIC0gd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIHNlZQogICAgd2hhdCdzIGNoYW5nZWQuICBUaGUgd2hvbGUgSG9zdFJlcyBncm91cCBuZWVkcyBjbGVhbmluZyB1cCBhbnl3YXkhKQogICAKMjAwMi0wNy0wNCAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5zdXJlIHRyYW5zcG9ydCBvcGFxdWUgZGF0YSBpc24ndCBtdWx0aXBseSBhc3NpZ25lZAogICAoYW5kIGhlbmNlIG11bHRpcGx5IGZyZWVkKSBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMuCiAgIERhdGFncmFtLWJhc2VkIHRyYW5zcG9ydHMgZG9uJ3Qgc3VmZmVyIGZyb20gdGhpcyBwcm9ibGVtLgogICBCYXNlZCBvbiBQYXRjaCA1NzM3NzEKICAgCjIwMDItMDctMDMgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGJlIHByZWNpc2UgYWJvdXQgd2hhdCBmaWxlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGFjY2VzcyBjb250cm9sCiAgIAoyMDAyLTA3LTAzIDE0OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCBtaW5vciBncmFtbWFyIGVycm9yczsgYWRkIGRlc2NyIGZvciBtaWIyYy5hcnJheS11c2VyOyBhZGQgc2VjdGlvbiBoZWFkZXIKICAgZm9yIGdlbmVyYXRpbmcgaGVhZGVyIGRlZmluaXRpb24gZmlsZXMKICAgCjIwMDItMDctMDMgMTM6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1vdmUgaW5jbHVkZSBmb3IgaW5fYWRkcl90IHRvIG5ldC1zbm1wL3R5cGVzLmgsIHdoZXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkCiAgIGZvciBzeXN0ZW1zIHcvb3V0IG5ldGluZXQvaW4uaAogICAKMjAwMi0wNy0wMyAxMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgbW9yZSB0d2Vha3Mgbm90aWNlZCBvbiB0aGUgbWFpbGluZyBsaXN0CiAgIAoyMDAyLTA3LTAzIDA4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBtYWtlIHRlc3QgY2xlYW51cHMgdGVzdC5wbAogICAKMjAwMi0wNy0wMyAwMzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMgKFY0LTItcGF0Y2hlcy4xKSwgdXRpbF9mdW5jcy5jCjoKCiAgIFNodXQgdGhlIGFnZW50IGRvd24gY2xlYW5seSBiZWZvcmUgcmVzdGFydGluZy4KICAgVGhpcyBjbG9zZXMgYW55IFNOTVAvQWdlbnRYIHBvcnRzIGFzIHdlbGwuCiAgIAoyMDAyLTA3LTAzIDAzOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBPSUQgc3ViLWlkZW50aWZpZXJzIGFyZSB1bnNpZ25lZCwgc28gdHJlYXRpbmcgdGhlbSBhcyBzaWduZWQgY2FuCiAgIGdpdmUgdGhlIHdyb25nIHJlc3VsdHMgd2l0aCBsYXJnZSB2YWx1ZXMuCiAgIAoyMDAyLTA3LTAzIDAzOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5oIChWNC0yLXBhdGNoZXMuNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIEVuc3VyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZC4KICAgCjIwMDItMDctMDMgMDI6MzQgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdGluZyBmb3IgPHN5cy9kaXNrbGFiZWwuaD4gcmVxdWlyZXMgPG1hY2hpbmUvdHlwZXMuaD4gb24gTmV0QlNEIDEuNS4KICAgUmVwb3J0ZWQgYnkgRmVsaWNpYSBOZWZmLgogICAoQXBwYXJlbnRseSBmcm9tIHRoZSBOZXRCU0QgYnVnIGRhdGFiYXNlIC0gd2h5IHRoZXkgZGlkbid0IHRlbGwgdXMgYWJvdXQKICAgaXQgaXMgYSBteXN0ZXJ5IHRvIG1lLi4uLikKICAgCjIwMDItMDctMDMgMDI6MTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc3lzT2JqZWN0SUQgYXMgcmVwb3J0ZWQgaW4gdGhlIGNvbmZpZ3VyZSAtLWhlbHAgb3V0cHV0LgogICAoVGhlIGFjdHVhbCB2YWx1ZSB1c2VkIGlzIGNvcnJlY3QgLSBpdCdzIGp1c3QgdGhlIGhlbHAgb3V0cHV0IHRoYXQncyB3cm9uZykuCiAgIFNwb3R0ZWQgYnkgU2FuZGh5YSBTYXR5YW5hcmF5YW4uCiAgIAoyMDAyLTA3LTAyIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgdXBkYXRlIHRleHQgZm9yIHZhcmlvdXMgLmNvbmYgZmlsZXMKICAgCjIwMDItMDctMDIgMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIGZpeGVzIG5vdGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgUGF0cmljZSBLYWRpb25payA8a2FkaW9uaWtAZW5zZWlyYi5mcj4KICAgCjIwMDItMDctMDIgMDI6MzkgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgJ3NubXBkJyBhbmQgJ3NubXB0cmFwZCcgYmluYXJ5IG5hbWVzIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXRocwogICB3aGVuIHNldHRpbmcgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgogICAKMjAwMi0wNy0wMSAwNzo1MyAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjgpLCBhc24xLmM6CgogICBFbmNvZGUvRGVjb2RlIE9JRHMgb2YgdGhlIGZvcm0gMi5YIChYID4gNDApIGNvcnJlY3RseS4KICAgCjIwMDItMDctMDEgMDI6NDAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGhvcnJpYmxlIGZvcm1hdHRpbmcgaW4gaGVscCBmb3IgdHJhbnNwb3J0cwogICAKMjAwMi0wNy0wMSAwMjoyMyAgZHRzMTIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgUGljayB1cCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIGZvciB0aGUgcm9vdCBvZiB0aGUgVUNEIGV4dGVuc2libGUgYWdlbnQgdGFibGVzCiAgIChzbyB0aGF0IHRoZSBFWEFNUExFLmNvbmYgZmlsZSBnZXRzIHNldCB1cCB3aXRoIHRoZSBjb3JyZWN0IG51bWVyaWMgT0lEcykKICAgCjIwMDItMDYtMjggMDY6NDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3RjcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjggMDQ6NDEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIFVwZGF0ZSBkZWZhdWx0IHN0b3JlIHJldHJpZXZhbCBmdW5jdGlvbnMgdG8gdXNlIHRoZSBjb3JyZWN0IG5hbWUuCiAgIAogICBOb3RlIHRoYXQgdGhpcyB0ZXN0IHNjcmlwdCBhcHBlYXJzIHRvIGluY2x1ZGUgdHdvIGluZmluaXRlIGxvb3BzLgogICBJJ20gbm90IGNsZWFyIGhvdyB0aGlzIGlzIGV4cGVjdGVkIHRvIHJ1biBzdWNjZXNzZnVsbHkgPwogICAKMjAwMi0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJlbW92ZSByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZ3VnZ2luZyBmdW5jdGlvbi4KICAgCjIwMDItMDYtMjggMDQ6MzcgIGR0czEyCgogICAqIHBlcmwvbWFuYWdlci86IE1ha2VmaWxlLlBMLCBkaXNwbGF5dGFibGUucG0sCiAgIGdldFZhbHVlcy5wbSwgbWFuYWdlci5wbSwgc25tcHRvc3FsOgoKICAgQnJpbmcgcGVybCAnbWFuYWdlcicgbW9kdWxlIHVuZGVyIHRoZSBOZXRTTk1QIGJhbm5lcgogICAoYm90aCBpbiB0ZXJtcyBvZiBtb2R1bGUgZ3JvdXAgbmFtZSwgYW5kIHJlZmVyZW5jZXMgdG8gJ3VjZC1zbm1wJykuCiAgIFJlbW92ZSBzb21lIFVDRC1zcGVjaWZpYyBzZXR0aW5ncy4KICAgCiAgIE5vdGUgdGhhdCBzbm1wdG9zcWwgc3RpbGwgcmVmZXJzIGV4cGxpY2l0bHkgdG8gV2VzJyBVQ0QgZW1haWwgYWRkcmVzcywKICAgYW5kIG1hbmFnZXIucG0gdG8gV2VzJyBVQ0QgZmlsZXN0b3JlIHBhdGguICBUaGUgcmVsZXZhbnQgbGluZXMgaGF2ZQogICBiZWVuIGhpZ2hsaWdodGVkLCB0byBlbmNvdXJhZ2UgYW55b25lIHdpc2hpbmcgdG8gdXNlIHRoaXMgdG8gY2hhbmdlIHRoZW0uCiAgIAoyMDAyLTA2LTI4IDA0OjEyICBkdHMxMgoKICAgKiBwZXJsLzogQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBtYW5hZ2VyL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGNoZWNraW5nIGZvciAiaW50ZXJuYWwiIHByZXJlcXVpc2l0ZXMsIHNvIHRoYXQgInBlcmwgTWFrZWZpbGUuUEwiCiAgIGF0IHRoZSB0b3AgbGV2ZWwgd2lsbCB3b3JrIC0gZXZlbiBvbiBhIHByaXN0aW5lIHN5c3RlbS4KICAgCiAgIFFuOgogICAgIElzIGl0IG5lY2Vzc2FyeS9kZXNpcmFibGUgdG8gc2VwYXJhdGUgdGhlIE5ldFNOTVAgbW9kdWxlcyB0byB0aGlzIGV4dGVudD8KICAgV291bGQgaXQgbm90IGJlIHNpbXBsZXIgdG8gaGF2ZSBhbGwgb2YgdGhlIG1haW4gLnBtLy54cyBmaWxlcyBpbiBhIHNpbmdsZQogICBOZXRTTk1QIGRpcmVjdG9yeSwgYW5kIGNvbXBpbGUvaW5zdGFsbCB0aGVtIGFsbCBmcm9tIHRoZXJlPwogICAKMjAwMi0wNi0yOCAwMTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgLS13aXRoLWVudGVycHJpc2UgKGV0IGFsKSBiZWluZyBpbnZva2VkIHdpdGhvdXQgYSB2YWx1ZSwgYW5kIGJvbWIgb3V0LgogICAKMjAwMi0wNi0yNyAyMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbmV3IFJFQURNRSBkZXRhaW5saW5nIHRoZSB1c2Ugb2YgU0ZJTyB0byBjaXJjdW12ZW50IHRoZSAyNTUgZmQgbGltaXQgb24KICAgc29sYXJpcy4KICAgCjIwMDItMDYtMjcgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBjaGFuZ2luZyBhcnJheTsgYWRkIG5ldHNubXBfdGFibGVfYXJyYXlfcmVtb3ZlX3JvdygpCiAgIAoyMDAyLTA2LTI3IDA0OjE1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgJ21ha2VkZXBlbmQnIChlLmcuIFJlZEhhdCA3LjEpLCBjYW4ndCBoYW5kbGUgIi1vc3VmZml4IgogICBhcyBhIHNpbmdsZSBvcHRpb24uICBBbGwgdmVyc2lvbnMgc2VlbSBoYXBweSB3aXRoICItbyBzdWZmaXgiIHNvIHVzZSB0aGF0LgogICAKMjAwMi0wNi0yNyAwMzozMSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBFTlZfU0VQQVJBVE9SX0NIQVIgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyAnOicgaW4gbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeQogICAoYXMgc3VnZ2VzdGVkIGJ5IFJvYmVydCkKICAgCjIwMDItMDYtMjcgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3VkcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjcgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX21pYi5jCjoKCiAgIFZhbGlkYXRlIG5ldyBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgdmFsdWUgYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgIFNwb3R0ZWQgJiBmaXhlZCBieSBTaGFudGhhIEt1bWFyYQogICAKMjAwMi0wNi0yNSAxNDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIEFQUFRPUFMgKC1DcSkgZm9yIHN1cHByZXNzaW5nIG91dHB1dCBvZiBzZXQgcmVzdWx0cyBvbiBzdWNjZXNzCiAgIAoyMDAyLTA2LTI1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBcHBseSBwYXRjaCAjNTU5ODQ4IHRvIHVzZSB0aGUgL3Byb2MgcHNldWRvLWZpbGVzeXN0ZW0gdW5kZXIgTGludXgKICAgKHJhdGhlciB0aGFuIHBhcnNpbmcgdGhlIG91dHB1dCBvZiBwcykKICAgCjIwMDItMDYtMjUgMDg6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ2hlY2sgZm9yICdhaXg0JyAod2hpY2ggaXMgdGhlIHRva2VuIGRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSkKICAgcmF0aGVyIHRoYW4gJ2FpeCcuICAgU2VlIGJ1ZyAjNTY1NzY5CiAgIAoyMDAyLTA2LTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBUcmVhdCAnMCcgYXMgYW4gaW52YWxpZCBpbmRleCBmb3IgYSAic2ltcGxlIHRhYmxlIi4KICAgCjIwMDItMDYtMjUgMDc6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc3lzQ29udGFjdC4wIGFuZCBzeXNMb2NhdGlvbi4wCiAgIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgogICAKMjAwMi0wNi0yNSAwNjo0MCAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcDoKCiAgICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IHRvIGRlZmF1bHRfc3RvcmUgZnVuY3Rpb25zCiAgIAogICAgIC0gY2xlYW4gdXAgbWFucGFnZSBhIGJpdAogICAKICAgICAtIGZpeCBicmVha2FnZSBpbiBnZW5lcmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUuMy5oIGR1ZSB0byBhdXRvLWluZGVudGF0aW9uCiAgICAgICBvZiBkZWZhdWx0X3N0b3JlLmgKICAgCjIwMDItMDYtMjUgMDI6NTUgIGpicG4KCiAgICogRVhBTVBMRS5jb25mLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgICAtIG1lbnRpb24gdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uIGV0IGFsLiBpbiBzbm1wZC5jb25mIG1ha2VzIHRoZW0KICAgICAgIHJlYWQtb25seQogICAKICAgICAtIGFsc28gY2hhbmdlIHN5bnRheCBvZiBhbGwgZXhhbXBsZSBjb21tYW5kIGxpbmUgdG9vbHMgdG8gdXNlIG5ld2VyCiAgICAgICAtYyBDT01NVU5JVFkgc3ludGF4IG5vdCBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKMjAwMi0wNi0yNCAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBtYWtlIGJ1ZmZlciBzaXplIGluY3JlYXNlIG5vdGUgYSBkZWJ1ZyBzdGF0ZW1lbnQgcmF0aGVyIHRoYW4gYSBnZW5lcmljCiAgIGxvZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTA2LTIzIDE4OjQwICBkcmllaHVpcwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEhhbmRsZSBDT1VOVEVSNjQgaW4gX190cmFuc2xhdGVfYXNuX3R5cGUuCiAgIAoyMDAyLTA2LTIzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzY3JpcHQgYW5kIHRoZSBsYW5ndWFnZSBpdCBob3VzZXMuCiAgICAgKG1hbiBwYWdlIGF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnRhaW5lZCBwb2QgZG9jdW1lbnRhdGlvbikKICAgCjIwMDItMDYtMjMgMTU6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICB1cGRhdGUgdG8gcmVmZXJlbmNlIHRvcCBsZXZlbCBNYWtlZmlsZS5QTAogICAKMjAwMi0wNi0yMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjQtMi1wYXRjaGVzLjEpLCBTTk1QLnhzOgoKICAgZml4IHJlcG9ydGVkIGJ5IFdpbGxlbSBEZWtrZXIgZm9yIFdpbmRvd3MuICBCdWcgIzU0MzE5NCBmaXhlZC4KICAgCjIwMDItMDYtMjIgMDg6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgZm9yIHJlY2VudCBtZXRob2RvbG9naWVzCiAgIAoyMDAyLTA2LTIxIDE2OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpbmFsIChob3BlZnVsbHkhKSBmaXggZm9yIHBhcnNpbmcgaXAgYWRkcmVzc2VzIGZyb20KICAgIkZjby4gSmF2aWVyIFJpZHJ1ZWpvIiA8YWNicmlwZWZAc2kuZWh1LmVzPgogICAKMjAwMi0wNi0xOSAxNDozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZyb20gZG94eWdlbgogICAKMjAwMi0wNi0xOSAxMTo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pbnRfd2F0Y2guY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBzY2FsYXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgZ2VuZXJhdGluZyBzY2FsYXIgY29kZS4KICAgCjIwMDItMDYtMTkgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGNsZWFuIHVwIG11bHRpLWxpbmUgY29tbWVuZCB3aGljaCB3YXMgbWVzc2VkIHVwIGJ5IGluZGVudC4KICAgCjIwMDItMDYtMTkgMTE6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBhZGQgc3VwcG9ydCBmb3IgcHJvbXB0aW5nIG9mIHVua25vd24gcGFyYW1ldGVycyB0byBhbGlhc2VzLgogICAtIG1pc2Mgb3RoZXIgaW1wcm92ZW1lbnRzIChsaWtlICJyZWhhc2giKQogICAKMjAwMi0wNi0xOSAxMTozOCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGZvciBuZXcgZGVmYXVsdCBzdG9yZSBBUEkKICAgCjIwMDItMDYtMTkgMTE6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQVJHR0dHR0cKICAgSSBsb3ZlIHBlcmwuCiAgIEkgaGF0ZSBwZXJsJ3MgbWFrZSBzeXN0ZW0uCiAgIEkgaGF0ZSB0aGUgZmFjdCB0aGF0IHBlcmwgc2VnZmF1bHRzIGlmIEdldE9wdGlvbnMoKSBpcyBjYWxsZWQgbW9yZQogICB0aGFuIG9uY2UuCiAgIHNpZ2guCiAgIFRoaXMgaG9wZWZ1bGx5IHdpbGwgZml4IHRoZSBwZXJsIG1vZHVsZSBidWlsZCByb3V0aW5lcyBzbyBpdCBhdCBsZWFzdAogICB3b3JrcyAoYnV0IGl0J3Mgc3RpbGwgdWdseSBhbmQgY291bGQgdXNlIG1vcmUgY2xlYW5pbmcpLgogICAKMjAwMi0wNi0xOSAwNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBpbmZpbnRlIGxvb3AgYW5kIGFkZCBkZWJ1ZyBpbiByZW1vdmVfZGVsZWdhdGVkCiAgIAoyMDAyLTA2LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBOVUxMIHRoZSBwcml2IHBvaW50ZXIgb24gc2Vzc2lvbiBkdXBsaWNhdGlvbi4gIHRoYW5rcyB0byByZXppdG96CiAgIAoyMDAyLTA2LTE3IDA2OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2VkIEthdHN1aGlzYSdzIGVtYWlsIGFkZHJlc3MsIG9uIHJlcXVlc3QKICAgCjIwMDItMDYtMTQgMDc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM1NjkwMjE6IGZyb20gTGF1cmkgTXlsbGFyaQogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHRoZSB0YWJsZSBpdGVyYXRvciBzdXBwb3J0LgogICAKMjAwMi0wNi0xNCAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbGllZCBwYXRjaCAjNTY5MDIwIGZyb20gcmV6aXRveiBvbiBJUkMgdG8gZml4IG5vbi1pbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMi0wNi0xNCAwMzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgQWRkIChudWxsKSBjb250ZXh0LCB0byBicmluZyBpbnRvIGxpbmUgd2l0aCB0aGUgdjUgcmVnaXN0cnkgQVBJcy4KICAgRml4ZXMgYnVnIDU2ODU4MC4KICAgCjIwMDItMDYtMTQgMDI6MjcgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFVzZSBtYXRjaGluZyAnIGFuZCAiIHF1b3RlcyBmb3IgQUlYIGNvbmZpZ3VyZSB0ZXN0LgogICBNZW50aW9uZWQgaW4gcGFzc2luZyBpbiBidWcgNTY1NzY5LgogICAKMjAwMi0wNi0xMyAxNDozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgZml4IGRlZmF1bHRfc3RvcmUgcm91dGluZXMKICAgCjIwMDItMDYtMTIgMDY6NDMgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQnJpbmcgV2luZG93cyBPSUQgdXNhZ2UgaW50byBsaW5lIHdpdGggdGhlIG1haW4gY29uZmlnIGZpbGUgc2V0dGluZ3MuCiAgIAoyMDAyLTA2LTEyIDA2OjM3ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ29ycmVjdCB0aGUgZGVmYXVsdCBFbnRlcnByaXNlIE9JRCB1c2VkIGluIHRyYXBzLCB0byBhdm9pZCBhIHJlcGVhdGVkIDAKICAgc3ViaWRlbnRpZmllci4gIChGaXhlcyBidWcgIzU2NjkxNykKICAgCjIwMDItMDYtMTIgMDU6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSAnbGVuZ3RoJyBhcyBhIHNpZ25lZCB2YXJpYWJsZSwgc28gaXQgY2FuIGhhbmRsZSBhbiBlcnJvciB2YWx1ZSBvZiAtMS4KICAgUmVwb3J0ZWQgYnkgSm9ha2ltIEFsdGhpbmkuCiAgIAoyMDAyLTA2LTEyIDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHN1cmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5leHQgbGluayBpcyBwcm9wZXJseSBzYXZlZCwgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICBQcm9ibGVtIGRpc2NvdmVyZWQgYnkgSHVnbyBDYWNvdGUuCiAgIAoyMDAyLTA2LTEyIDAyOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvYWdlbnRfaW5kZXguaCwgYWdlbnQvYWdlbnRfdHJhcC5oCiwgYWdlbnQvYWxsX2hlbHBlcnMuaCwgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9idWxrX3RvX25leHQuaCwgYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9tdWx0aXBsZXhlci5oLCBhZ2VudC9udWxsLmgKLCBhZ2VudC9vbGRfYXBpLmgsIGFnZW50L3JlYWRfb25seS5oLAogICBhZ2VudC9zZXJpYWxpemUuaCwgYWdlbnQvc2V0X2hlbHBlci5oLAogICBsaWJyYXJ5L2NtdV9jb21wYXQuaCwgbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCBsaWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIGxpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIGxpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCBsaWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBsaWJyYXJ5L3NubXBfc2VjbW9kLmgsIGxpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgbGlicmFyeS91Y2RfY29tcGF0Lmg6CgogICBTdXBwbHkgbWlzc2luZyAjaWZuZGVmLyNkZWZpbmUvI2VuZGlmIGFuZCBleHRlcm4gIkMiIHt9IHdyYXBwZXJzCiAgIAoyMDAyLTA2LTExIDE3OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlbW92ZSBzcHVyaW91cyBwcmludGYgdG8gc3RkZXJyCiAgIAoyMDAyLTA2LTExIDE0OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYWRkIGV4dGVybiAiQyI7IGFkZCB2b2lkX2FycmF5IHN0cnVjdAogICAKMjAwMi0wNi0xMSAxNDoyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB0c2VhcmNoOyB1c2UgbmV3IGNvbnRhaW5lciBpbnN0ZWFkCiAgIAoyMDAyLTA2LTExIDE0OjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGNvbnRhaW5lciBmb3Igc2Vjb25kYXJ5IGluZGV4CiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjb250YWluZXIgdG8gaGVhZGVyczsgYWRkIGNvbnRhaW5lci5jCiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGluaXQgZnVuY3Rpb25zIGZvciBiYXNpYy9zb3J0ZWQgY29udGFpbmVyCiAgIAoyMDAyLTA2LTExIDE0OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgbW9yZSBtZXRob2RzIGZvciBiYXNpYyBjb250YWluZXI7IGFkZCBzb3J0ZWQgKHdpbGwgcHJvYmFibHkgcmVuYW1lKSBjb25hdGluZXIKICAgCjIwMDItMDYtMTEgMTI6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVkZXM7IGFkZCBleHRlcm4gIkMiIGZvciBfX2NwbHVzcGx1cwogICAKMjAwMi0wNi0xMSAxMToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgbmV0c2gsIHNubXBzaDoKCiAgIHJlbmFtZWQgc25tcHNoIHRvIG5ldHNoLCBhcyBJIGxpa2UgdGhlIG5hbWUgYmV0dGVyIGFuZCBpdCBhcHBlYWxzIHRvIGEKICAgd2lkZXIgbnVtYmVyIG9mIHBlb3BsZS4KICAgCjIwMDItMDYtMTAgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGRlbGV0aW5nIGFuIGFzcCBwb2ludGVyLCBtYWtlIHN1cmUgaXQgaXNuJ3QgaW4gdGhlIGRlbGVnYXRlZCBsaXN0CiAgIAoyMDAyLTA2LTEwIDA4OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBwYXJzZV9vbmVfb2lkX2luZGV4IHRvIGFsbG93IHRvbyBzaG9ydCBJUCBhZGRyZXNzIHdoZW4gY29tcGxldGUgaXMKICAgc3BlY2lmaWVkOyBhZGQgbmV0c25tcF9vaWQyY2hhcnMgJiBuZXRzbm1wX29pZDJzdHIKICAgCjIwMDItMDYtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGRlZmluZXMKICAgCjIwMDItMDYtMTAgMDc6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvTWFrZWZpbGUuUEw6CgogICBUb3AgbGV2ZWwgcGVybCBNYWtlZmlsZS5QTCB0byBpbnN0YWxsIHRoZSB3aG9sZSBidW5jaCB1bmRlcm5lYXRoLgogICBUaGlzIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBsb3dlciBsZXZlbCBtYWtlZmlsZXMgZm9yCiAgIHNpbXBsaWNpdHkuCiAgIAoyMDAyLTA2LTEwIDA3OjI3ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIEFja25vd2xlZGdlIGtub3duIGZhaWxpbmcgdGVzdHMuCiAgIFRoaXMgbWVzc2FnZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBwcm9ibGVtIGhhcyBiZWVuIGlzb2xhdGVkIGFuZCBmaXhlZC4KICAgCjIwMDItMDYtMTAgMDc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0IGZvciBpcGFkZHJlc3MgYnVpbGRpbmcvcGFyc2luZyBvZiBPSUQgaW5kZXhlcy4KICAgCjIwMDItMDYtMTAgMDI6MDcgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBNZW50aW9uIHRoZSBvdGhlciBwZXJsIG1vZHVsZXMsIGludHJvZHVjZWQgd2l0aCB2NSAocGFydGljdWxhcmx5ICdkZWZhdWx0X3N0b3JlJykKICAgCjIwMDItMDYtMTAgMDE6MjggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBOZXcgZW50cnkgZGVzY3JpYmluZyBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRyYXAgaGFuZGxlcnMuCiAgIAoyMDAyLTA2LTA4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNi0wOCAyMDo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYnJlYWsgcGVybCBtYWtlZmlsZSBjcmVhdGlvbiBpbnRvIHNlcGVyYXRlIHN0ZXA7IG9ubHkgY2xlYW4gcGVybCBkaXJlY3RvcnkKICAgaWYgdGhlcmUgaXMgYSBtYWtlZmlsZQogICAKMjAwMi0wNi0wOCAyMDoxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHBlcmx0ZXN0IHRhcmdldCB0byBtYWtlIHRlc3QgaW4gYWxsIHBlcmwgZGlyZWN0b3JpZXMKICAgCjIwMDItMDYtMDggMDk6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBmaXggdG8gZGVhbCB3aXRoIHVwZGF0ZWQgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wNi0wOCAwNzowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSB0byBTUUwtU3RhdGVtZW50IHJlcXVpcmVtZW50IG9mIDEuMDA0CiAgIAoyMDAyLTA2LTA4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBtaWIgaW5pdCBjb2RlIGZyb20gQyBzbm1wX3RyYW5zbGF0ZV9vYmogY2FsbAogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbml0X3NubXAgaW5zaWRlIHRyYW5zbGF0ZU9iagogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gMC4xCiAgIAoyMDAyLTA2LTA4IDA2OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBBIGZldyBjbGVhbnVwcyB0byBpZmNvbmZpZyBhbmQgbmV0c3RhdCBjb21tYW5kcwogICAKMjAwMi0wNi0wOCAwNjozNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgLSBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgaW1wb3J0L2V4cG9ydCBvZiBkYXRhIChjdXJyZW50bHkgdG8vZnJvbSBDU1YpLgogICAtIHN1cHBvcnQgZm9yICJkaWZmIiB3aGljaCBjb21wYXJlcyBvbGQgKHBvc3NpYmx5IGltcG9ydGVkIGRhdGEpIHRvIGN1cnJlbnQuCiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSByZXF1aXJlZCBTTk1QIG1vZHVsZSB2ZXJzaW9uIGZyb20gNCB0byA1CiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSB0dXRvcmlhbCBwbGFjZSBob2xkZXIgY29tbWVudCBPSUQuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0a21pYiBmb3IgbmV3ZXIgcGVybCBtb2R1bGVzLgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICB0dXJuIG9mZiBleHRyYSBib2xkL3VuZGVybGluZSBmb3JtYXR0aW5nIGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA2LTA3IDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZ2VuZXJpYyBjb250YWluZXIgc3RydWN0dXJlIGZvciBzdG9yaW5nIGRhdGEKICAgCjIwMDItMDYtMDcgMTM6MDEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA2LTA3IDEwOjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSB0byBrZWVwIGluIGxpbmUgd2l0aCBjb25maWd1cmUuaW4gKHdoeT8gc2hvdWxkbid0CiAgIGNvbmZpZ3VyZSBub3QgYmUgaW4gQ1ZTIGFuZCBiZSBhdXRvZ2VuZXJhdGVkPyBPbmUgb2YgdGhlc2UgZGF5cyBJJ20gZ29pbmcKICAgdG8gaGF2ZSB0byBsZWFybiBhdXRvY29uZi4uLi4pCiAgIAoyMDAyLTA2LTA3IDEwOjM1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWx3YXlzIGNoZWNrIHJldHVybiBzdGF0dXMgb2YgbWFrZSB3aGVuIGluc2lkZSBhIGxvb3AsIGFuZCBleGl0IG9uIGVycm9ycwogICAKMjAwMi0wNi0wNyAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4zKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgT25seSBudWxsLXRlcm1pbmF0ZSB0aGUgaW50ZXJmYWNlIG5hbWUgd2hpbGUgaXQncyBhY3R1YWxseSBiZWluZyBjb3BpZWQuCiAgIFJlc3RvcmUgdGhlIGRhdGEgbGluZSBhZnRlcndhcmRzLCBzbyB0aGUgZGVidWdnaW5nIG91dHB1dCBpcyBtZWFuaW5nZnVsLgogICAKMjAwMi0wNi0wNyAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGZvciBpbmRleGluZyBlcnJvciwgdGhhdCBjYXVzZXMgYSBjcmFzaCBpZiBtb3JlIHRoYW4gMTYgdmFyYmluZHMKICAgYXJlIGFkZGVkIHRvIHRoZSBjYWNoZSBpbiBvbmUgZ28uICBTcG90dGVkIGJ5IFNoYW50aCBLdW1hcmEKICAgCjIwMDItMDYtMDYgMDE6MTIgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLls3LDVdKSwgYWNsb2NhbC5tNCwKICAgY29uZmlndXJlOgoKICAgRG9uJ3QgZGlmZmVyZW5jaWF0ZSBiZXR3ZWVuIGVsZi0gYW5kIGEub3V0LWJhc2VkIE5ldEJTRCBzeXN0ZW1zLgogICAoUHJvYmxlbSBoaWdobGlnaHRlZCBieSBGZWxpY2lhIE5lZmYpCiAgIAoyMDAyLTA2LTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHB1dCBkZWZpbmVzIGZvciBzb2NrbGVuX3QgYW5kIGluX2FkZHJfdCBpbiBuZXQtc25tcC90eXBlcy5oIGluc3RlYWQgb2YgaGF2aW5nCiAgIGNvbmZpZ3VyZSBnZW5lcmF0ZSB0aGVtOyBjb25maWd1cmUgaW5zdGVhZCBnZW5lcmF0ZXMgSEFWRV9TT0NLTEVOX1QgYW5kCiAgIEhBVkVfSU5fQUREUl9UIGZvciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5lZWQgdGhlIGRlZmluZXM7IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgV2luMzIgcGxhdGZvcm0sIHdoaWNoIGRvZXNuJ3QgaGF2ZSBjb25maWd1cmUuCiAgIAoyMDAyLTA2LTA1IDA5OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZG9uJ3QgYWR2YW5jZSByZXF1ZXN0IHBvaW50ZXIgaW5zaWRlIGZvciBsb29wLCBzaW5jZSBmb3IgbG9vcCBkb2VzIGl0IGZvcgogICB1czsgb3RoZXJ3aXNlIGZvciBsb29wIG1heSBlbmQgdXAgZGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIuCiAgIAoyMDAyLTA2LTA1IDA2OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgdmFyaW91cyB1bml4IHV0aWxpdGllczoKICAgIC0gY3VycmVudGx5OiBuZXRzdGF0LCBwcywgZGYsIGlmY29uZmlnCiAgIAoyMDAyLTA2LTA1IDA2OjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGk6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbiBKdWVyZ2VuJ3MKICAgc2NsaSBjb21tYW5kLgogICAKMjAwMi0wNi0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgbmV3IGNvbW1hbmRzOgogICAgIHNvdXJjZSBmaWxlIC0tIHNvdXJjZXMgYW4gcmMgZmlsZQogICAgIHdhdGNoIGV4cHJlc3Npb24gLS0gcmVwZWF0ZWRseSBydW5zIGEgY29tbWFuZCBhbmQgY29sb3JpemVzCiAgICAgICBkaWZmZXJlbmNlcyBpbiBkYXRhCiAgICAgZXZhbCBleHByZXNzaW9uIC0tIGV2YWx1YXRlcyBhbiBleHByZXNzaW9uIGRpcmVjdGx5IGluIHBlcmwKICAgICAgIC0gYmVnaW5uaW5ncyBvZiBvdmVybG9hZHMgaW4gcGVybCBzbyB0aGF0IGNhbGxpbmcgc3lzQ29udGFjdCgpCiAgICAgICAgIHdpbGwgcmV0dXJuIHRoZSBzeXNDb250YWN0IHZhbHVlLiAgdGFibGVzIG5vdCByZXR1cm5lZCB5ZXQuCiAgIGZpeGVzOgogICAgIHR1cm5zIG9mIG9ybmFtZW50YWwgcHJvbXB0IHN1cHBvcnQgKGljaykgYnkgZGVmYXVsdAogICAKMjAwMi0wNi0wNSAwNDo0MyAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0yLXBhdGNoZXMuOCksIHNubXBjbWQuMS5kZWY6CgogICBCcmllZiBtZW50aW9uIG9mIHRoZSBuZWVkIHRvIHF1b3RlIE9JRHMgY29udGFpbmluZyBzdHJpbmcgaW5kZXhlcywKICAgdG8gcHJvdGVjdCB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHRoZSBzaGVsbC4KICAgCjIwMDItMDYtMDQgMTA6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhIG51bGwgdHJlZWNhY2hlIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0CiAgIAoyMDAyLTA2LTA0IDEwOjMzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYXNwLT5wZHUgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldC4KICAgCjIwMDItMDYtMDQgMDU6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgZm9yIHByaW50Ziwgc2luZ2xlIHF1ZXJ5L3NldHMgb2Ygc2NhbGFycywgbXVsdGktbGluZSBhbGlhc2VzLgogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBtYWtlIG5ldygpIG9wZXJhdG9yIGEgYml0IHNtYXJ0ZXIKICAgCjIwMDItMDUtMjkgMTk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9hbGFybS5jOgoKICAgc2V0IHRoZSBzdG9yYWdlIHBvaW50ZXIgdG8gTlVMTCwgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBIb3kuCiAgIAoyMDAyLTA1LTI5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIEFQSWlmeSBNSUJESVJTIHN1cHBvcnQKICAgCjIwMDItMDUtMjkgMDc6NDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBFeHBhbmQgb24gd2hlbiBPcGVuU1NMIGlzIG5lY2Vzc2FyeSwgYW5kIGhvdyB0byBjb21waWxlIHVzaW5nIGl0LgogICAKMjAwMi0wNS0yOSAwNjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBTZXQgUkVVU0VBRERSIHNvIHRoYXQgc3BlY2lmeWluZyB0aGUgc2FtZSBwb3J0IHR3aWNlIGRvZXNuJ3Qga2lsbCB0aGUgYWdlbnQuCiAgIChTdWdnZXN0ZWQgYnkgUm9iZXJ0IEhhc3RpbmdzKQogICAKMjAwMi0wNS0yOSAwMjo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIFJlZmVyZW5jZSBib3RoIHZlcnNpb25zIG9mIHRoZSB0dXRvcmlhbCAoc2luY2UgdGhpcyBkb2N1bWVudCBpcyB1c2VkCiAgIGZvciBidWlsZGluZyB0aGUgb24tbGluZSB2ZXJzaW9uIG9mIHRoZSBGQVEpCiAgIAoyMDAyLTA1LTI5IDAyOjE2ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy40KSwgRkFROgoKICAgQ2xhcmlmeSB0aGF0IHRyYXAgZmlsdGVyaW5nIGlzIG5vdCB5ZXQgb3BlcmF0aW9uYWwuCiAgIAoyMDAyLTA1LTI4IDE0OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHJlbW92ZSBeTSBjaGFycwogICAKMjAwMi0wNS0yOCAxNDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpeCBsb2dpYyBpbiBjYW5fZGVsZXRlOyBjb25zb2xpZGF0ZSB1c2Ugb2YgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0IGJ5IHNldHRpbmcKICAgcmMgZm9yIHVzZSBhdCBlbmQgb2YgbG9vcDsgZG9uJ3QgdXNlIHJlbW92ZWQgbWFjcm9zIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUsCiAgIHVzaW5nIG5ldyBuZXRzbm1wX2NoZWNrX3ZiKiByb3V0aW5lcyBpbnN0ZWFkOyBhZGQgYXNzZXJ0cyBmb3IgZXJyb3IgY2FzZXMgdGhhdAogICBzaG91bGQgYmUgY2F1Z2h0IGJ5IGVhcmxpZXIgcm91dGluZXMKICAgCjIwMDItMDUtMjggMTQ6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByb3cgKGRlKWFjdGl2YXRpb24KICAgCjIwMDItMDUtMjggMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgIiNpbmNsdWRlIDxzZWFyY2guaD4iIHdpdGggdGhlIEhBVkVfU0VBUkNIX0ggdG9rZW4uICAoU3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjggMDY6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIEZpeCB0aGUgZGVjbGFyYXRpb24gb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50LiAoU3BvdHRlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI3IDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRG9uJ3QgaGFyZHdpcmUgc3lzbG9nIGZhY2lsaXR5IHRvIExPR19EQUVNT04uCiAgIEZpeCBwcm92aWRlZCBieSBKb2FraW0gRmFsbHNqby4KICAgCjIwMDItMDUtMjcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKICAgKFY0LTItcGF0Y2hlcy5bMiw4XSksIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBUd2VhayAndXNtVXNlcicgaGVscCBzdHJpbmcgdG8gYWNjdXJhdGVseSByZWZsZWN0IHdoaWNoIGJpdHMgYXJlIG9wdGlvbmFsLgogICBSZXBvcnRlZCBieSBBbGkgQ2hhbmF1aS4KICAgCjIwMDItMDUtMjcgMDE6MjIgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY0LTItcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICJmaWxlIiBkaXJlY3RpdmVzLgogICAKMjAwMi0wNS0yNyAwMToxNyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2gsIHRoYXQgY29uZnVzZXMgc29tZSAnbWFrZSdzCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgUHJvcGVyIGNyZWF0aW9uIG9mIHJldHVybmVkIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50cyBvbiByZXR1cm5lZCBtaWIgcmVnaXN0cmF0aW9uIG9iamVjdHMgc28KICAgdGhleSdyZSBub3QgYXV0by1jbGVhbmVkIGJ5IHBlcmwgKHRoZSBhZ2VudCBub3cgaGFzIGEgY29weSBvZiB0aGUgcG9pbnRlcikKICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGRlZmF1bHRfc3RvcmUgbmV0c25tcF8gcHJlZml4ZXMuCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIHNjYWxhcnMgKG1pYjJjLnNjYWxhci5jb25mIGZpbGUgY29taW5nIHNob3J0bHkpCiAgIAoyMDAyLTA1LTI0IDA5OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEEgbmV3IHJ1bGUgY2FsbGVkICJjb21tZW50Y2hlY2siIHRvIGdyZXAgYWxsIHNvdXJjZXMgZm9yIC8vIGNvbW1lbnRzLgogICAKMjAwMi0wNS0yNCAwODowOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERlY2xhcmUgJ3JlZ2lzdGVyX21pYl9kZXRhY2hfbm9kZScgYmVmb3JlIGl0J3MgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgIChTcG90dGVkIGJ5IFhpYW5nIFpoYW5nKQogICAKMjAwMi0wNS0yNCAwNzo0NCAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaC4KICAgKFRoYXQgKm1pZ2h0KiBiZSBjb25mdXNpbmcgU3VuJ3MgbWFrZSwgYnV0IGlzIHdyb25nIGFueXdheSkKICAgCjIwMDItMDUtMjMgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9ic2RpNC5jLAogICB2bXN0YXRfZHluaXguYywgdm1zdGF0X2ZyZWVic2QyLmMsIHZtc3RhdF9ocHV4LmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgQnJpbmcgdGhlIHZhcmlvdXMgJ3Zhcl9leHRlbnNpYmxlX3Ztc3RhdCcgZGVmaW5pdGlvbnMgaW50byBsaW5lCiAgIHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZSAtIGkuZS4gbm9uLXN0YXRpYy4KICAgCjIwMDItMDUtMjEgMTU6MjUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtSSQoc3JjZGlyKS9pbmNsdWRlIHRvIENQUCBwYXRoIGZvciBwZW9wbGUgYnVpbGRpbmcgb3V0c2lkZSBvZiBzcmMgdHJlZQogICAKMjAwMi0wNS0yMSAwODoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNTU4MTI5IF0gTWFrZSB0aGUgdHVubmVsIG1pYiBjb21waWxlIGluIDUuMC4xLCBzdWJtaXR0ZWQKICAgYnkgTG9yZW56byBDb2xpdHRpIChsY29saXR0aSksIHdoaWNoIGFkZHMgbWlzc2luZyBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNS0yMSAwNTozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBjb3JlIGR1bXAgaW4gLXUgb3B0aW9uIHByb2Nlc3NpbmcsIG5vdGVkIGJ5IEFuZHJlYXMgTWF1cwogICAKMjAwMi0wNS0yMSAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjkpLCBtZW1vcnkuYwo6CgogICBMYXRjaCBtZW1vcnkgcmVwb3J0aW5nIGF0IDJeMzEtMSwgcmF0aGVyIHRoYW4gMl4zMi0xIHNpbmNlIHRoZXNlCiAgIG9iamVjdHMgYXJlIGRlZmluZWQgYXMgKHNpZ25lZCkgSW50ZWdlcjMyLgogICBPbmx5IGxhdGNoIGlmIHRoZSB2YWx1ZSBpcyAqZ3JlYXRlciogdGhhbiB0aGlzIHRocmVzaG9sZCwgbm90IGxlc3MhCiAgIAoyMDAyLTA1LTIxIDAxOjIwICBqYnBuCgogICAqIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3VjZF9jb21wYXQuYwo6CgogICAgIC0gYWRkIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucyBmb3IgbmV3bHktcmVuYW1lZAogICAgICAgZGVmYXVsdCBzdG9yZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgKGRlZmluZWQgaWZmCiAgICAgICAtLWVuYWJsZS11Y2QtY29tcGF0aWJpbGl0eSBpcyBnaXZlbiB0byBhdCBjb25maWd1cmF0aW9uIHRpbWUpCiAgIAoyMDAyLTA1LTIxIDAwOjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgICAtIG1vdmUgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX2RzX3JlYWRfY29uZmlnIHR5cGUgZnJvbSBkZWZhdWx0X3N0b3JlLmgKICAgICAgIGludG8gZGVmYXVsdF9zdG9yZS5jIChzaW5jZSBpdCBpcyBub3QsIGFuZCBzaG91bGQgbm90LCBiZSB1c2VkCiAgICAgICBlbHNld2hlcmUpLgogICAKMjAwMi0wNS0yMCAwMzo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVnaXN0ZXJzIHRva2VucyBmb3IgaXB2NiByby9ydyBjb21tdW5pdHksIGFuZCBtYWtlIHN1cmUgdG8gcGFyc2UgdGhlbQogICBhcyBpcHY2LCBub3QgdjQuCiAgIAoyMDAyLTA1LTE5IDExOjM4ICBkcmllaHVpcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEJ1Z2ZpeCBmb3IgRnJlZUJTRCBzdXBwb3J0IG9mIHRoZSBkaXNrSU8gbWliLiBUaGUgb3JpZ2luYWwgY29kZSBuZWdsZWN0ZWQKICAgdGhlIGRldmljZSBudW1iZXIsIHdoaWNoIG1hZGUgZGlzdGluZ3Vpc2hpbmcgYmV0d2Vlbiwgc2F5LCBhZDAgYW5kIGFkMQogICBpbXBvc3NpYmxlLgogICAKMjAwMi0wNS0xNyAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBzbGlnaHRseSByZWR1Y2UgbWVtb3J5IGNvc3RzIG9mIHJlZ2lzdGFydGlvbnMKICAgCjIwMDItMDUtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgc3RvcmUgdGFnIG5hbWVzLgogICBmaXggaW5pdF9zbm1wKCkgZGVmaW5pdGlvbiB0byBtYXRjaCBub3JtYWwgcGVybCBub24tYW5zaSBtb2RlLgogICAKMjAwMi0wNS0xNiAxNjozOSAgZHJpZWh1aXMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFrZSBzdXJlIC0tY2ZsYWdzIHNwaXRzIG91dCB0aGUgcmVxdWlyZWQgaW5jbHVkZSBwYXRoIHdoZW4gaW5zdGFsbGluZwogICBpbiBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uLCBhcyBkb2N1bWVudGVkIGluIHRoZSB1c2FnZSBpbmZvIGluIHRoZSBzY3JpcHQuCiAgIAoyMDAyLTA1LTE2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBhZGQgYSBsaW5lIHRvIHRoZSBzeXNTZXJ2aWNlcyBwcm9tcHQgc2F5aW5nIGlmIHlvdSBkb24ndCBrbm93LCBzYXkgbm8uCiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgdXBkYXRlIHRvIG5ldyBkZWZpbmUgbGlzdAogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB0ZXN0IHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMjo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIGF1dG9nZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGVzIHRvIG5ldyAuaCB0b2tlbnMKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICAuaCAtPiBwZXJsbW9kdWxlIHJlZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMDc6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIENvbnNvbGlkYXRlIHRoZSB2YXJpb3VzIE9JRCBvdXRwdXQgY29uZmlndXJhdGlvbiBtZWNoYW5pc21zIGludG8gb25lLgogICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgKHlldCEpIC0ganVzdCB0aGUgaW50ZXJuYWxzLgogICAKMjAwMi0wNS0xNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjcmVhdGUgYSBkZWZpbmUgbG9jYXRpb24gZm9yIEhBVkVfR0VUREVWUwogICAKMjAwMi0wNS0xNSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIGRlcGVuZCB1cGRhdGUsIHdoaWNoIEkgbWVhbnQgdG8gY2hlY2sgaW4gYmVmb3JlIHRoZSA1LjAuMSByZWxlYXNlCiAgIAoyMDAyLTA1LTE1IDA1OjUzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3BlcmwuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM5ICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9zZWNtb2QuYywgc25tcHVzbS5jLAogICBzbm1wdjMuYywgdWNkX2NvbXBhdC5jLCB2YWNtLmM6CgogICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIGZyb20gZGVmYXVsdF9zdG9yZSBmcm9tIGRzX2JsYWgKICAgICAgIHRvIG5ldHNubXBfZHNfYmxhaAogICAKMjAwMi0wNS0xNSAwMjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuMCksIHNtdXguYzoKCiAgICAgLSBpbml0aWFsaXNlIHNtdXhfbGlzdGVuX3NkIHRvIGF2b2lkIHByb2JsZW1zIG5vdGVkIGluIGJ1ZyAjNTQ1NDQ4CiAgICAgICAoYSBiaXQgdW5yZWFzb25hYmxlIGluIG15IHZpZXcgYnV0IGl0IGNhbid0IGRvIGFueSBoYXJtKS4KICAgCjIwMDItMDUtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwcmVjaXNpb24gZXh0cmFjdGlvbiBvZiB0dW1vciBpbnN0ZWFkIG9mIGFtcHV0YXRpb24sIG9yLCBpZmRlZiBzZWFyY2guaAogICBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgZXNzZW50aWFsIHRvIHRhYmxlX2FycmF5IG9wZXJhdGlvbiBhbmQgd2lsbCBwcm9iYWJseQogICB2YW5pc2ggaW4gdGhlIG5lYXIgZnV0dXJlIGFueXdheS4KICAgCjIwMDItMDUtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IHR5cGUgaW4gc2l6ZW9mCiAgIAoyMDAyLTA1LTEzIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzZWFyY2guaCBiZWZvcmUgY29tcGlsaW5nIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIKICAgCjIwMDItMDUtMTMgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0wNS0xMyAwMDozOSAgZHJpZWh1aXMKCiAgICogQ2hhbmdlTG9nOgoKICAgTm90ZSBjaGFuZ2VzIHRvIGNvbmZpZ3VyZS5pbi4KICAgCjIwMDItMDUtMTIgMTA6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE1ha2Ugc3VyZSB0aGUgY2hlY2tzIGZvciBrdm0gcmVsYXRlZCBzdHVmZiBoYXBwZW5zIHdoZW4gLWxrdm0gaXMgaW4gc2NvcGUuCiAgIEFkZCBkZXRlY3Rpb24gb2YgdGhlIC1sZGV2c3RhdCByZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIHdpdGggdWNkLXNubXAvZGlza2lvLgogICAKMjAwMi0wNS0xMCAyMzozMyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjEgKQogICAKMjAwMi0wNS0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbGlidG9vbCB2ZXJzaW9uIGluYwogICAKMjAwMi0wNS0xMCAyMjozMiAgaGFyZGFrZXIKCiAgICogTkVXUywgQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuMQogICAKMjAwMi0wNS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIHR1dG9yaWFsLTUgaW5zdGVhZCBvZiB0dXRvcmlhbAogICAKMjAwMi0wNS0xMCAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICByZXF1ZXN0IGluZm8gcGVybCBjb2RlIG1vdmVkIHRvIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAyLTA1LTEwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgT0lEIGJ1aWxkaW5nIG92ZXJsb2Fkcy4KICAgCjIwMDItMDUtMTAgMTY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEFkZCBwcm9wZXIgbGVuZ3RoIHNlZ21lbnQgdG8gdGhlIGJ1aWxkIHZpZXcgT0lELgogICAKMjAwMi0wNS0xMCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBkb2MgcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcKICAgCjIwMDItMDUtMTAgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy4wKSwgdmFjbV92YXJzLmMKOgoKICAgZml4IHZhY20gcHJvYmxlbSBvbiBzZXRzIHdpdGggT0lEcyBjb250YWluaW5nIGxhcmdlIG51bWJlcnMgYXMgbm90ZWQKICAgYnkgVmluYXkgR2FvbmthciBvbiB0aGUgLWNvZGVycyBtYWlsaW5nIGxpc3QuCiAgIAoyMDAyLTA1LTEwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYWxsaW5nIG9uIG11bHRpcGxlIHRhYmxlcwogICAKMjAwMi0wNS0xMCAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1lcmdlICJTVFJJTkc6IEhleDoiIHR5cGUgdG9rZW5zIGludG8gYSBzaW5nbGUgdG9rZW4gIkhleC1TVFJJTkc6IgogICAKMjAwMi0wNS0xMCAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgUmVwb3J0IG5vbi1leGlzdGVudCBzdWJpbnN0YW5jZXMgYXMgJ25vU3VjaEluc3RhbmNlJyByYXRoZXIgdGhhbiAnbm9TdWNoT2JqZWN0Jy4KICAgInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjAuOTkiIG5vdyByZXNwb25kcyBjb3JyZWN0bHkuCiAgICh0aG91Z2ggInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjEiIHN0aWxsIHJldHVybnMgJ25vU3VjaE9iamVjdCcpCiAgIAogICBBbHNvIGd1ZXNzIHRoYXQgZmFpbGVkIFNFVCByZXF1ZXN0cyBhcmUgJ25vQ3JlYXRpb24nIGVycm9ycyAod2hpY2ggaXMKICAgcHJvYmFibHkgdGhlIG1vc3QgbGlrZWx5IG9wdGlvbikuCiAgIAoyMDAyLTA1LTA5IDE1OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGV4aXQgcHJvcGVybHkgd2hlbiBhIHN1YmRpciBmYWlscyB0byBtYWtlIHByb3Blcmx5CiAgIAoyMDAyLTA1LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY3JlYXRlIGEgdG9rZW4gZm9yIHRoZSAtT3YgZXF1aXZlbGFudAogICAKMjAwMi0wNS0wOSAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjUpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIHBhdGNoIGZyb20gVGFrdW1pIEthZG9kZSB0byBmaXggbWVtb3J5IHVzYWdlIG9uIHNvbGFyaXMKICAgCjIwMDItMDUtMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgdXBkYXRlcyBmcm9tIG1hbGxvY2VkIHZtc3RhdCBmaXhlcyBmcm9tIHBhdGNoZXMgYnJhbmNoCiAgIAoyMDAyLTA1LTA4IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBuZXcgLS1jb21waWxlLXN1YmFnZW50IGZlYXR1cmVzOgogICAgIC0tY2ZsYWdzCiAgICAgLS1ub3JtCiAgICAgLS1sZGZsYWdzCiAgICAgaW5jbHVkZXMgaGVhZGVyIGZpbGVzCiAgICAgbWlzYyBvdGhlciBidWcgZml4ZXMuCiAgIAoyMDAyLTA1LTA4IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1ha2UgdGhlIHN1YmFnZW50IHByb3Blcmx5IGNhbGwgdGhlIHJlc2VydmUyIHN0YXRlIGFnYWluLgogICAKMjAwMi0wNS0wOCAxMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA4IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHVtLCB1c2UgMzAgc2Vjb25kcyBsaWtlIGFkdmVydGlzZWQuCiAgIAoyMDAyLTA1LTA4IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmgsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGRlZmluZSBhIGJldHRlciBub3RpZmljYXRpb24gZXhhbXBsZSAobm8gcmVxdWVzdHMuICBqdXN0IGFsYXJtIC0+IHNlbmQpCiAgIAoyMDAyLTA1LTA3IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHVwZGF0ZSB0byBjdXJyZW50IGluZGVudCBjb21tYW5kCiAgIAoyMDAyLTA1LTA3IDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgbW92ZSB0ZXh0IGluIGNvbW1lbnQgbGVmdCBzbGlnaHQgKHdhcyB0b28gbG9uZykuCiAgIAoyMDAyLTA1LTA3IDIyOjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGVudW0gZml4ZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLAogICBtaWIyYy5jb2x1bW5fZW51bXMuY29uZiwgbWliMmMuY29uZjoKCiAgIE5ldyBtaWIyYyBmaWxlcyBmb3IgZ2VuZXJhdGluZyBoZWFkZXJzIGZ1bGwgb2YgY29sdW1uIG51bWJlciBkZWZpbmVzCiAgIGFuZCBlbnVtIGRlZmluZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBhZ2VudCBsaWJyYXJ5IHJlb3JkZXJpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IG5vdyBzdXBwb3J0cyAubyBmaWxlcyAocHJlY29tcGlsZWQgY29kZSkuCiAgIAoyMDAyLTA1LTA3IDIyOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmU6CgogICBobW0uICBtaXNzZWQgc29tZSBjaGVja2luIGZpbGVzLgogICAKMjAwMi0wNS0wNyAxMToxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBjb25mdGVzdC5jb25mLCBzdGFydGFnZW50LnBsLCBjb25mLnQKOgoKICAgdGVzdCBmb3IgY29uZmlndXJhdGlvbiBmaWxlL2RlZmF1bHRfc3RvcmUgc3VwcG9ydAogICAKMjAwMi0wNS0wNyAxMToxNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1ha2UgaW5pdF9zbm1wKCkgdGFrZSBhIGNoYXIgKiBhcmd1bWVudCBsaWtlIHRoZSByZWFsIEFQSQogICAKMjAwMi0wNS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgdHlwb3MuCiAgIAoyMDAyLTA1LTA3IDA5OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGZpeCB0aGUgLWcgZmxhZy4KICAgCjIwMDItMDUtMDcgMDk6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBsaWtlIGEgZ29vZCBib3kuCiAgIAoyMDAyLTA1LTA2IDIwOjQzICByc3RvcnkKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBmaXggbWlzc2luZyAkIG5vdGVkIGJ5IEpvaG4gTWlsbHMgb24gdGhlIGNvZGVycyBsaXN0CiAgIAoyMDAyLTA1LTA2IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9hcGkuYwogICAoVjQtMi1wYXRjaGVzLls0LDIsMywzXSksIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUgKGNvcnJlY3RseSBkb25lIHRoaXMgdGltZSkKICAgCjIwMDItMDUtMDYgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywgc25tcFVuaXhEb21haW4uYwo6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbgogICAoVjQtMi1wYXRjaGVzLlszLDcsMSwyXSksIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wNiAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIFBhdGNoZXMgIzU1MTkxNCsgZnJvbSBHYXJ5IEVkd2FyZHMgdG8gc3VwcG9ydCBocHV4MTEgZm9yIG1lbW9yeSBhbmQgdm1zdGF0IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTU6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBhZGQgbmV3IGhwdXggbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbmV3IGNvbnRyaWJ1dG9ycy4KICAgCjIwMDItMDUtMDYgMTQ6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmCiwgc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1NTE0ODk6IEZyb20gSmVmZnJleSBXYXRzb24gdG8gYWRkIGEgLVEgb3B0aW9uIGZvciBxdWljayBidXQgdy8gYW4gJz0nCiAgIAoyMDAyLTA1LTA2IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBjaGFuZ2UgLUQgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IGN1cnJlbnQgY29kZS4KICAgCjIwMDItMDUtMDYgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIG1pc2Mgc21hbGwgYnVncyBhbmQgZXJyb3IgbWVzc2FnZSB3b3JkaW5nIGZpeGVzLgogICAKMjAwMi0wNS0wNiAwOTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjkpLCBzbXV4LmM6CgogICBidWcgIzU0NzAxMDogZml4IHNtdXggYXV0aCBidWcgYXMgcmVwb3J0ZWQgYW5kIGZpeGVkIGJ5IFN0ZWZhbiBSYWRtYW4KICAgCjIwMDItMDUtMDEgMjM6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgZm9yIHVwZGF0ZSB0byB0YWJsZV9hcnJheQogICAKMjAwMi0wNS0wMSAyMzowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIG9iamVjdF9tb25pdG9yIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjaGVja192YXJiaW5kIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHZhbGlkYXRpb24gdmFicmluZCBpbmZvCiAgIAoyMDAyLTA1LTAxIDIyOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBkbyBJIHJlYWxseSBoYXZlIHRvIGRvIHRoaXM/IHNpZ2guIE9rLCByZW5hbWUgZGVidWcgdG9rZW47IHJldmFtcCBsb2dpYyB0bwogICBtb2RpZnkgcm93cyBpbiBwbGFjZSwga2VlcGluZyB1bmRvIGluZm8gKHZzIGFsd2F5cyBjaGFuZ2luZyBhIGNvcHkgb2YgYSByb3cKICAgYW5kIHN3YXBwaW5nIHJvd3Mgd2hlbiBzZXQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkgdG8gYWxsb3cgZXh0ZXJuYWwgY29kZQogICB0byBrZWVwIHBvaW50ZXJzIHRoYXQgZG9uJ3QgZGlzYXBwZWFyIG9uIHRoZW07IGFkZCBhIGZldyBjYWxsYmFja3MsIGluY2x1ZGluZwogICByb3dfY29tcGFyZSwgc28gdGFibGVfYXJyYXkgY2FuIG1haW50YWluIHRoZSBzZWNvbmRhcnkgaW5kZXggdHJlZTsgZG9uJ3QgY2FsbAogICBjYW5fYWN0aXZhdGUvY2FuX2RlbGV0ZSB1bmxlc3Mgd2UgYXJlIGFjdHVhbGx5IHRyeWluZyB0byBhY3RpdmF0ZS9kZWxldGUgcm93OwogICBhZGQgc2tlbGV0b24gKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBjb29wZXJhdGl2ZSBub3RpZmljYXRpb25zIG9mIHJvdyBldmVudHM7CiAgIHVwZGF0ZSBjaGFuZ2luZyBhcnJheSBpbiBjb21taXQgJiB1bmRvIGNhc2VzLCBub3QganVzdCBjb21taXQ7IGNoYW5nZSB0eXBkZWZzCiAgIGZvciBhIGZldyBjYWxsYmFjayBwb2ludGVyczsgdW1tbW0uLi4gSSAqdGhpbmsqIHRoYXQncyBpdC4uLi46LSkKICAgCjIwMDItMDUtMDEgMTc6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBBZGQgaW5kZXggYnVpbGRpbmcgdG8gdGhlICsgb3BlcmF0b3IuCiAgIAoyMDAyLTA1LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgT0lEL09JRC54cywgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9hZ2VudC5wbSwgYWdlbnQvYWdlbnQueHMsIGFnZW50L3Rlc3QucGwKLCBhZ2VudC90eXBlbWFwOgoKICAgTWFrZSBnZXRPSUQgZm9yIHJlcXVlc3RzIHJldHVybmVkIGEgTmV0U05NUDo6T0lEIGJsZXNzZWQgcmVmZXJlbmNlLgogICBJJ20gbm90IGhhcHB5IGFib3V0IGhvdyB0aGlzIGlzIGRvbmUsIGJ1dCBhbGwgYXR0ZW1wdHMgdG8gZG8gaXQKICAgY29ycmVjdGx5IG9ubHkgbGVmdCBtZSBpbiBjb25mdXNpb24uCiAgIAoyMDAyLTA1LTAxIDA5OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKOgoKICAgQ2hhbmdlIHRoZSBkb21haW4gT0lEcyB0byBwb2ludCB0byB0aGUgbmV0LXNubXAgZG9tYWlucyBjcmVhdGVkIGJ5IERhdmUuCiAgIFRoaXMgZml4ZXMgYnVnICM1NDQyNDUgYXMgd2VsbC4KICAgCjIwMDItMDUtMDEgMDk6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIHRoZSBPSUQgcGVybCBtb2R1bGUgdG8gdGhlIGxpc3Qgb2YgbW9kdWxlcy4KICAgCjIwMDItMDUtMDEgMDc6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuMCksIFVDRC1TTk1QLU1JQi50eHQ6CgogICByZW1vdmUgb2xkIChhbmQgY29uZmxpY3Rpbmcgd2l0aCB0cmFwcykgdHJhbnNwb3J0IGRvbWFpbiBPSURzCiAgIAoyMDAyLTA1LTAxIDA2OjE5ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLAogICBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLmRlZiwKICAgc25tcHNldC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB3YWxrLjEuZGVmOgoKICAgQWRkIHR5cGUgdGFncyAiU1RSSU5HOiAiIGFuZCAiSU5URUdFUjogIiB0byBleGFtcGxlIG91dHB1dC4KICAgQWRkIGV4cGxpY2l0IHNldHRpbmcgb2YgcHJvdG9jb2wgdmVyc2lvbiB0byBleGFtcGxlIGNvbW1hbmRzLgogICAKMjAwMi0wNS0wMSAwMzozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWd1dGlsLmMsIGFndXRpbC5oLAogICBhZ3V0aWxfYXBpLmgsIGFsYXJtLmMsIGFsYXJtLmgsIGV2ZW50LmMsCiAgIGV2ZW50LmgsIGhpc3RvcnkuYywgaGlzdG9yeS5oLCByb3dfYXBpLmgsCiAgIHJvd3MuYywgcm93cy5oLCBzdGF0aXN0aWNzLmMsIHN0YXRpc3RpY3MuaDoKCiAgICAgLSByZW1vdmUgQ1ZTIExvZzogZW50cmllcyB3aGljaCBhcmUgY2F1c2luZyBwcm9ibGVtcyBzaW5jZSB0aGV5IGFyZQogICAgICAgZW1iZWRkZWQgaW4gYSBjb21tZW50LCBidXQgc29tZSBvZiB0aGUgbG9nIGVudHJpZXMgY29udGFpbiBjb21tZW50CiAgICAgICBkZWxpbWl0ZXJzLgogICAKMjAwMi0wNC0zMCAyMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZW1vdmUgbmV0c25tcF9wcm9jZXNzaW5nX3NldCwgaXQgbGl2ZXMgaW4gc25tcF9hZ2VudC5jCiAgIAoyMDAyLTA0LTMwIDIyOjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmMKOgoKICAgcmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXI7IGFsbG93IE5PTkUgYXMgb2xkIHZhbHVlIGZvciBzdG9yYWdlIHR5cGUgdHJhbnN0aW9ucwogICAKMjAwMi0wNC0zMCAyMjoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbW92ZSBvdmVybHkgY29tcGxleCBtYWNybyBzdHVmZiBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlCiAgIAoyMDAyLTA0LTMwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FCiwgdGVzdC5wbDoKCiAgIC0gYWxsb3cgY29udmVyc2lvbnMgdG8gYW4gYXJyYXkgKG5lZWRzIHRvIGJlIHRpZWQgc3RpbGwpLgogICAtIGRvY3VtZW50YXRpb24uCiAgIAoyMDAyLTA0LTMwIDA4OjE1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wZC5jOgoKICAgICAtIGZpeCBidWcgIzU0NTc3NSwgcmVwb3J0ZWQgYnkgRGF2ZSBEZW5zb24sIHdoZXJlYnkgdGhlIFBJRCBvZiBhbgogICAgICAgYWxyZWFkeS1ydW5uaW5nIHNubXBkIHdvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHN0YXJ0aW5nIGEgbmV3IHNubXBkCiAgICAgICAod2hpY2ggd291bGQgdGhlbiBleGl0LCBsZWF2aW5nIHRoZSBvcmlnaW5hbCBzbm1wZCBydW5uaW5nIGFuZCB0aGUKICAgICAgIHdyb25nIFBJRCBpbiB0aGUgZmlsZSkuICBTb2x1dGlvbiBpcyBub3QgdG8gd3JpdGUgdGhlIFBJRCB1bnRpbCB3ZQogICAgICAgaGF2ZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGFsbCBvdXIgc29ja2V0cy4KICAgCjIwMDItMDQtMzAgMDc6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogLmN2c2lnbm9yZSwgQ2hhbmdlcywgTUFOSUZFU1QsCiAgIE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FLAogICB0ZXN0LnBsLCB0eXBlbWFwOgoKICAgT0lEIHBlcmwgbW9kdWxlIHNvIHlvdSBjYW4gZG8gc2ltcGxlIE9JRCBtYW5pcHVsYXRpb25zIHdpdGhpbiBwZXJsIGVhc2lseToKICAgICAtIEV4YW1wbGU6ICBuZXcgTmV0U05NUDo6T0lEKCdpbnRlcmZhY2VzJykgPiBuZXcgTmV0U05NUDo6T0lEKCdzeXN0ZW0nKQogICAKMjAwMi0wNC0yOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlZ2V4cCBmaXggZm9yIHdoaXRlIHNwYWNlIGNoZWNrcyBpbiBpbmRlbnQgZm9ybWF0dGVkIGNvZGUKICAgCjIwMDItMDQtMjkgMTY6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVvcmRlciBwZXJsIG1vZHVsZSBuYW1lcyB0byByZWZsZWN0IChuZXcpIGRlcGVuZGVuY2llcy4KICAgCjIwMDItMDQtMjkgMDk6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgZml4IGEgZmV3IHdhcm5pbmdzIG9uIGZhaWxlZCB0ZXN0cyAoanVzdCBzY3JlZW4gY2xlYW51cHMpCiAgIAoyMDAyLTA0LTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbToKCiAgIE1ha2UgdGhlIHBlcmwgbW9kdWxlIHJlc3BlY3Qgc25tcC5jb25mIHNldHRpbmdzIChmaW5hbGx5KS4KICAgICAtIE5vdyByZXF1aXJlcyBhIGRlcGVuZGVuY3kgb24gdGhlIE5ldFNOTVA6OmRlZmF1bHRfc3RvcmUgbW9kdWxlIHRob3VnaC4KICAgCjIwMDItMDQtMjcgMDg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb24ndCBwcm9jZXNzIHNldCByZXF1ZXN0IHRpbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGFyZSBjb21wbGV0ZSwgYW5kIHF1ZXVlCiAgIGFueSBvdGhlciByZWNlaXZlZCBwYWNrZXRzIHVudGlsIGEgc2V0IGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZy4KICAgCjIwMDItMDQtMjcgMDg6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjbGVhbiB1cCBjb21tZW50cyBtdW5nZWQgYnkgaW5kZW50CiAgIAoyMDAyLTA0LTI3IDA4OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDQtMjcgMDg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IG9iamVjdF9tb25pdG9yLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWZkZWYgZ3ltbmFzdGljcyB0byBtYWtlIHN1cmUgYXNzZXJ0cyBhcmUgb25seSBjb21waWxlZCBpbiBvbmx5IGlmIGV4cGxpY2l0eQogICByZXF1ZXN0ZWQKICAgCjIwMDItMDQtMjYgMjE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCB1bmJhbGFuY2VkIGVuZGlmIG9uIGxpbnV4LiBob3BlIEkgZGlkbid0IGJyZWFrIGFueXRoaW5nIGVsc2UuCiAgIAoyMDAyLTA0LTI2IDE5OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCB1bnVzZWQgdmFyIHdhcm5pbmcgZm9yICF3aW5kb3dzCiAgIAoyMDAyLTA0LTI2IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBmaXggT0lEX0xFTkdUSCBkZWZpbml0aW9ucwogICAKMjAwMi0wNC0yNiAxMDo1MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMgaW4gbWFrZWZpbGVzLiAgTWFrZSBldmVyeXRoaW5nIHVzZQogICBuZXQtc25tcC1jb25maWcsIC4uLgogICAKMjAwMi0wNC0yNiAxMDoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbToKCiAgIC0gQ2xlYW51cC4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIENoYW5nZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgZm9yIHVjZC1zbm1wCiAgIC0gQ2hhbmdlIGNvbnRhY3QgbG9jYXRpb24gdG8gbmV0LXNubXAtdXNlcnMgKHBlciBKb2UncyBhZ3JlZW1lbnQpCiAgIAoyMDAyLTA0LTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFJFQURNRQosIGRlZmF1bHRfc3RvcmUucG0sIHRlc3QucGw6CgogICAtIGNsZWFudXAuCiAgIC0gVXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaW5kIGxpYnJhcnksIGV0Yy4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIGEgZmV3IG1vcmUgdGVzdHMgYWRkZWQKICAgLSB1c2UgY29ycmVjdCBsaWJyYXJpZXMKICAgLSBhZGQgZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wNC0yNiAwNDoyMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBFeHRyYWN0aW5nIHRoZSB2ZXJzaW9uIGZyb20gJ3NubXBsaWIvc25tcF92ZXJzaW9uLmMnIG5lZWRzIHRvIHRha2UgYWNjb3VudAogICBvZiBibGFuayBzcGFjZS4gIFJlcG9ydGVkIGJ5IFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNTQ3Mzc5KQogICAKMjAwMi0wNC0yNiAwNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjgpLCBtZW1vcnkuYwo6CgogICBIYW5kbGUgbWVtb3J5IHZhbHVlcyA+IDMyYml0IChsYXRjaGluZyBhdCAyXjMyLTEpCiAgIFBhdGNoICM1NDg2NjMgZnJvbSBSb2IgTXllcnMKICAgCjIwMDItMDQtMjYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICdJbnZhbGlkIG9wdGlvbicgbWVzc2FnZSwgc2luY2UgdGhpcyBpcyB0eXBpY2FsbHkKICAgcmVwb3J0ZWQgYnkgZ2V0b3B0KCkuICAoU3VnZ2VzdGVkIGJ5IEFuZHJldyBSdWNrZXIgSm9uZXMgLSBwYXRjaCAjNTQ4NzQ4ICkKICAgCjIwMDItMDQtMjYgMDM6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBZGQgJ3YnIHRvIHRoZSBsaXN0IG9mIHZhbGlkIG9wdGlvbnMgKHBhdGNoICM1NDg3NDgpCiAgIFRoYW5rcyB0byBBbmRyZXcgUnVja2VyIEpvbmVzLgogICAKMjAwMi0wNC0yNiAwMzozNiAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgaW1wcm92ZWQgSFAtVVggMTEgcGF0Y2gKICAgKCM1MzA3MjQpIHRvIHRoZSBtYWluIHY1IGxpbmUsIGFzIHdlbGwgYXMgdGhlIHY0LTIgYnJhbmNoLgogICBUaGUgY29kZSBub3cgY29tcGlsZXMgY2xlYW5seSB1bmRlciBIUC1VWCAxMSB1c2luZyBnY2MuCiAgIAoyMDAyLTA0LTI1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgUGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcgdG8gZml4IHBvc3NpYmxlIHZhcmlhYmxlIG5hbWUgY2xhc2gKICAgCjIwMDItMDQtMjQgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgaGFuZGxlIGNhbGxiYWNrcyBzZW5kaW5nIG5ldyBub3RpZmljYXRpb25zICh3aGlsZSBwcm9jZXNzaW5nIG5vdGlmaWNhdGlvbnMpCiAgIAoyMDAyLTA0LTI0IDIxOjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgaGVhZGVyIGZvciBuZXcgZnVjbnRpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdHMKICAgCjIwMDItMDQtMjQgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgbmV3IGZ1bmN0aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3QgdmFsdWVzCiAgIAoyMDAyLTA0LTI0IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC9wcm9jL3N0YXQgY2FuIGJlIGxhcmdlciB0aGFuIDEwMjQKICAgCjIwMDItMDQtMjQgMDY6MTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtaXNzaW5nICdtZDUuaCcgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTA0LTIzIDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2FycmF5LmM6CgogICByZW1vdmUgbGFzdCBvZiB0aGUgI3dhcm5pbmdzLCBhZGQgeHh4LXJrcyBpZiBuZWNlc3NhcnkKICAgCjIwMDItMDQtMjMgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB3YXJuaW5ncwogICAKMjAwMi0wNC0yMiAxOToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FOgoKICAgdXBkYXRlIFVSTCB0byB1c2UgZnJlZW5tcC5jb20gbWlycm9yICh1bmxlc3Mgc29tZW9uZSBrbm93cyBhIGJldHRlciBwbGFjZT8pCiAgIAoyMDAyLTA0LTIyIDE0OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFwcGx5IGRvY3VtZW50YXRpbiBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZ2VyIDxBeGVsLktpdHRlbmJlcmdlckBtYXh4aW8uY29tPgogICAKMjAwMi0wNC0yMiAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSBleHRyYSBAZW5kQCAoc3VyZSB3b3VsZCBiZSBuaWNlIGlmIG1pYjJjIHdvdWxkIGNoZWNrIGZvciB1bmJhbGFuY2VkCiAgIEBlbmRAcykKICAgCjIwMDItMDQtMjIgMDk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgdXBkYXRlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIGhlYWRlciAobm8gbWl4ZWQgY2FzZSkKICAgCjIwMDItMDQtMjIgMDg6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggYnVnICM1NDcxMTA6IHByb3Blcmx5IHNwZWxsIGRlZmluZQogICAKMjAwMi0wNC0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgYWRkIHN0YXRpYyB0byBhIHJldHVybmVkIHZhcmlhYmxlCiAgIAoyMDAyLTA0LTIxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzCiAgIAoyMDAyLTA0LTIxIDExOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIDUuMC5wcmUzIC0+IDUuMDsgKEknbSBzdXJlIHRoZXJlIGFyZSBvdGhlciBwbGFjZXMgdGhpcyBuZWVkcyB0byBjaGFuZ2UsCiAgIGJ1dCBJIHdhbnRlZCB0byBnZXQgdGhlIGZpcnN0IHBvc3QgNS4wIGNoZWNraW4uLi46LSkKICAgCjIwMDItMDQtMjAgMDA6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAgKQogICAKMjAwMi0wNC0yMCAwMDozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGNoYW5nZSB2ZXJzaW9uIHRvIDUuMAogICAKMjAwMi0wNC0yMCAwMDoyOSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQUdFTlQudHh0LCBDT1BZSU5HLCBDaGFuZ2VMb2cKLCBDb2RpbmdTdHlsZSwgRVhBTVBMRS5jb25mLmRlZiwgRkFRLAogICBJTlNUQUxMLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsCiAgIE1ha2VmaWxlLnRvcCwgTkVXUywgUE9SVElORywgUkVBRE1FLAogICBSRUFETUUuYWdlbnR4LCBSRUFETUUuY211LCBSRUFETUUuaHB1eDExLAogICBSRUFETUUua3JiNSwgUkVBRE1FLnNubXB2MywgUkVBRE1FLnRocmVhZCwKICAgUkVBRE1FLndpbjMyLCBUT0RPLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LAogICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgZG90Z2RiaW5pdCwgZG94eWdlbi5jb25mLCBpbnN0YWxsLXNoLAogICBsdG1haW4uc2gsIG1ha2VkZXBlbmQuaW4sIG1ha2VmaWxlaW5kZXBlbmQucGwsCiAgIG1ha2Vub3N5c2RlcGVuZC5wbCwgbWFrZXRhcmdldCwgbWtpbnN0YWxsZGlycywKICAgbmV0LXNubXAtY29uZmlnLmluLCByZW1vdmUtZmlsZXMsIHNlZHNjcmlwdC5pbiwKICAgc3RhbXAtaCwgc3RhbXAtaC5pbiwgYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLAogICBhZ2VudC9zbm1wX3BlcmwucGwsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvZGxtb2RzLy5jdnNpZ25vcmUsCiAgIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYwosIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jCiwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SRUFETUUKLCBhZ2VudC9taWJncm91cC9SRUFETUUuc211eCwgYWdlbnQvbWliZ3JvdXAvUm1vbi5oCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLCBhZ2VudC9taWJncm91cC9hZ2VudHguaAosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaCwgYWdlbnQvbWliZ3JvdXAvc211eC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQuaCwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwgYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaAosIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFnZW50L21pYmdyb3VwL1Jtb24vUkVBRE1FCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWxfYXBpLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmgKLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfYWxhcm0uc2gsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9oaXN0LnNoLAogICBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kcywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oCiwgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwosIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaAosIGluY2x1ZGUvbmV0LXNubXAvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAosIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAosIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaAosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oLAogICBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmUsIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmgsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAosIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCwgbG9jYWwvLmN2c2lnbm9yZSwKICAgbG9jYWwvRkFRMkhUTUwsIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9SRUFETUUubWliMmMKLCBsb2NhbC9jb252ZXJ0Y29kZSwgbG9jYWwvZml4cHJvYywKICAgbG9jYWwvaXBmLW1vZC5wbCwgbG9jYWwvbWliMmMsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuY29uZiwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCiwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiwgbG9jYWwvcGFzc19wZXJzaXN0dGVzdAosIGxvY2FsL3Bhc3N0ZXN0LCBsb2NhbC9zbm1wLXVjZC5zaCwKICAgbG9jYWwvc25tcGNoZWNrLmRlZiwgbG9jYWwvc25tcGNvbmYsIGxvY2FsL3RrbWliLAogICBsb2NhbC90cmFwdG9lbWFpbCwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9hdXRob3B0cwosIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvZGVidWdnaW5nLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL21pYnMsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0LAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvYWNsLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9iYXNpY19zZXR1cCwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvZXh0ZW5kaW5nLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9tb25pdG9yLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9vcGVyYXRpb24sCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS90cmFwc2lua3MsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZSwgbWFuLy5jdnNpZ25vcmUKLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9hZGRfbWliZGlyLjMsCiAgIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LAogICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWFuL2dldF9tb2R1bGVfbm9kZS4zLAogICBtYW4vaW5pdF9taWIuMywgbWFuL2luaXRfbWliX2ludGVybmFscy4zLAogICBtYW4vbWliMmMuMS5kZWYsIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9hZ2VudC4zCiwgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMsCiAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfdGFibGUuMywKICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKLCBtYW4vbmV0c25tcF90b2RvLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLAogICBtYW4vcHJpbnRfbWliLjMsIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMwosIG1hbi9wcmludF92YXJpYWJsZS4zLCBtYW4vcmVhZF9hbGxfbWlicy4zLAogICBtYW4vcmVhZF9jb25maWcuMy5kZWYsIG1hbi9yZWFkX21pYi4zLAogICBtYW4vcmVhZF9tb2R1bGUuMywgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywKICAgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zLAogICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWYsCiAgIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWYsCiAgIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zCiwgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLAogICBtYW4vc25tcF9zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmLAogICBtYW4vc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgbWFuL3NubXBfc2Vzc19jbG9zZS4zLAogICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLAogICBtYW4vc25tcF9zZXNzX29wZW4uMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywKICAgbWFuL3NubXBfc2Vzc19yZWFkLjMsIG1hbi9zbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywKICAgbWFuL3NubXBfc2Vzc19zZW5kLjMsIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLAogICBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgbWFuL3NubXBfdGltZW91dC4zLAogICBtYW4vc25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLAogICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgbWFuL3NubXBjb25mLjEuZGVmLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGRlbHRhLjEsIG1hbi9zbm1wZGYuMQosIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsCiAgIG1hbi9zbm1waW5mb3JtLjEsIG1hbi9zbm1wbmV0c3RhdC4xLCBtYW4vc25tcHNldC4xLmRlZgosIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLAogICBtYW4vc25tcHRlc3QuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLAogICBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsCiAgIG1hbi9zbm1wd2Fsay4xLmRlZiwgbWFuL3ZhcmlhYmxlcy41LmRlZiwKICAgbWlicy8uY3ZzaWdub3JlLCBtaWJzL0FHRU5UWC1NSUIudHh0LAogICBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0LCBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0CiwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQsIG1pYnMvRXRoZXJMaWtlLU1JQi50eHQKLCBtaWJzL0hDTlVNLVRDLnR4dCwgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LAogICBtaWJzL0hPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwKICAgbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwKICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LAogICBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsIG1pYnMvSUYtTUlCLnR4dCwKICAgbWlicy9JTkVULUFERFJFU1MtTUlCLnR4dCwgbWlicy9JUC1GT1JXQVJELU1JQi50eHQsCiAgIG1pYnMvSVAtTUlCLnR4dCwgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwKICAgbWlicy9JUFY2LU1JQi50eHQsIG1pYnMvSVBWNi1UQy50eHQsCiAgIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwgbWlicy9JUFY2LVVEUC1NSUIudHh0LAogICBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dCwgbWlicy9NVEEtTUlCLnR4dCwKICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5taWIsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0CiwgbWlicy9ORVQtU05NUC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dAosIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtVEMudHh0CiwgbWlicy9ORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsCiAgIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0LCBtaWJzL1JFQURNRS5taWJzLAogICBtaWJzL1JGQy0xMjE1LnR4dCwgbWlicy9SRkMxMTU1LVNNSS50eHQsCiAgIG1pYnMvUkZDMTIxMy1NSUIudHh0LCBtaWJzL1JNT04tTUlCLnR4dCwKICAgbWlicy9TTVVYLU1JQi50eHQsIG1pYnMvU05NUC1DT01NVU5JVFktTUlCLnR4dCwKICAgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LCBtaWJzL1NOTVAtTVBELU1JQi50eHQsCiAgIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgbWlicy9TTk1QLVBST1hZLU1JQi50eHQKLCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsCiAgIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBtaWJzL1NOTVB2Mi1DT05GLnR4dCwKICAgbWlicy9TTk1QdjItTUlCLnR4dCwgbWlicy9TTk1QdjItU01JLnR4dCwKICAgbWlicy9TTk1QdjItVEMudHh0LCBtaWJzL1NOTVB2Mi1UTS50eHQsCiAgIG1pYnMvVENQLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQsCiAgIG1pYnMvVUNELURFTU8tTUlCLmluYywgbWlicy9VQ0QtREVNTy1NSUIudHh0LAogICBtaWJzL1VDRC1ESVNLSU8tTUlCLmluYywgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsCiAgIG1pYnMvVUNELURMTU9ELU1JQi5pbmMsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsCiAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi5pbmMsIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsCiAgIG1pYnMvVUNELUlQRldBQ0MtTUlCLmluYywgbWlicy9VQ0QtSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi1PTEQudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi5pbmMsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgbWlicy9VRFAtTUlCLnR4dCwgbWlicy9pYW5hbGlzdAosIG1pYnMvbWliZmV0Y2gsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYKLCBtaWJzL3NtaXN0cmlwLCBvdi8uY3ZzaWdub3JlLCBvdi9NYWtlZmlsZS5pbgosIG92L1JFQURNRSwgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLAogICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwKICAgb3YvYml0bWFwcy9VQ0QuMjAubSwgb3YvYml0bWFwcy9VQ0QuMjAucCwKICAgb3YvYml0bWFwcy9VQ0QuMjYubSwgb3YvYml0bWFwcy9VQ0QuMjYucCwKICAgb3YvYml0bWFwcy9VQ0QuMzIubSwgb3YvYml0bWFwcy9VQ0QuMzIucCwKICAgb3YvYml0bWFwcy9VQ0QuMzgubSwgb3YvYml0bWFwcy9VQ0QuMzgucCwKICAgb3YvYml0bWFwcy9VQ0QuNDQubSwgb3YvYml0bWFwcy9VQ0QuNDQucCwKICAgb3YvYml0bWFwcy9VQ0QuNTAubSwgb3YvYml0bWFwcy9VQ0QuNTAucCwKICAgb3YvYml0bWFwcy9VQ0QuZmllbGRzLCBwZXJsLy5jdnNpZ25vcmUsCiAgIHBlcmwvQVNOLy5jdnNpZ25vcmUsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BU04vQVNOLnhzCiwgcGVybC9BU04vQ2hhbmdlcywgcGVybC9BU04vTUFOSUZFU1QsCiAgIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL0FTTi90ZXN0LnBsLAogICBwZXJsL0FueURhdGFfU05NUC8uY3ZzaWdub3JlLCBwZXJsL0FueURhdGFfU05NUC9DaGFuZ2VzCiwgcGVybC9BbnlEYXRhX1NOTVAvREJEX0FueURhdGEucGF0Y2gsCiAgIHBlcmwvQW55RGF0YV9TTk1QL0Zvcm1hdC5wbSwgcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTCwKICAgcGVybC9BbnlEYXRhX1NOTVAvTUFOSUZFU1QsIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMCiwgcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtCiwgcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoLCBwZXJsL1NOTVAvLmN2c2lnbm9yZSwKICAgcGVybC9TTk1QL0JVRywgcGVybC9TTk1QL01BTklGRVNULAogICBwZXJsL1NOTVAvTUFOSUZFU1QuU0tJUCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLAogICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHMKLCBwZXJsL1NOTVAvVE9ETywgcGVybC9TTk1QL3Blcmxzbm1wLmgsCiAgIHBlcmwvU05NUC90eXBlbWFwLCBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMxLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMyLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvYnVsa3dhbGsucGwKLCBwZXJsL1NOTVAvZXhhbXBsZXMvaXBmb3J3YXJkLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvbWlidHJlZS5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL21pYndhbGsucGwKLCBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL3RhYmxld2Fsay5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL3Rlc3RsZWFrLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBwZXJsL1NOTVAvaGludHMvaXJpeC5wbAosIHBlcmwvU05NUC9oaW50cy9zb2xhcmlzLnBsLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlCiwgcGVybC9TTk1QL3QvUkVBRE1FLCBwZXJsL1NOTVAvdC9hc3luYy50LAogICBwZXJsL1NOTVAvdC9idWxrd2Fsay50LCBwZXJsL1NOTVAvdC9nZXQudCwKICAgcGVybC9TTk1QL3QvZ2V0bmV4dC50LCBwZXJsL1NOTVAvdC9taWIudCwKICAgcGVybC9TTk1QL3QvbWliLnR4dCwgcGVybC9TTk1QL3QvbWlibG9hZC50LAogICBwZXJsL1NOTVAvdC9ub3RpZnkudCwgcGVybC9TTk1QL3Qvc2Vzc2lvbi50LAogICBwZXJsL1NOTVAvdC9zZXQudCwgcGVybC9TTk1QL3Qvc25tcHRlc3QuY29uZiwKICAgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwgcGVybC9hZ2VudC8uY3ZzaWdub3JlLAogICBwZXJsL2FnZW50L0NoYW5nZXMsIHBlcmwvYWdlbnQvTUFOSUZFU1QsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHBlcmwvYWdlbnQvdGVzdC5wbCwKICAgcGVybC9hZ2VudC90eXBlbWFwLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZQosIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgcGVybC9kZWZhdWx0X3N0b3JlL0NoYW5nZXMKLCBwZXJsL2RlZmF1bHRfc3RvcmUvTUFOSUZFU1QsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbCwgcGVybC9kZWZhdWx0X3N0b3JlL3R5cGVtYXAsCiAgIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlLCBwZXJsL21hbmFnZXIvSU5TVEFMTCwKICAgcGVybC9tYW5hZ2VyL01ha2VmaWxlLlBMLCBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtLAogICBwZXJsL21hbmFnZXIvZ2V0VmFsdWVzLnBtLCBwZXJsL21hbmFnZXIvZ3JlZW4uZ2lmLAogICBwZXJsL21hbmFnZXIvbWFuYWdlci5wbSwgcGVybC9tYW5hZ2VyL3JlZC5naWYsCiAgIHBlcmwvbWFuYWdlci9zZXR1cGF1dGgsIHBlcmwvbWFuYWdlci9zZXR1cGRiLAogICBwZXJsL21hbmFnZXIvc2V0dXB1c2VyLCBwZXJsL21hbmFnZXIvc25tcHRvc3FsLAogICBzbm1wbGliLy5jdnNpZ25vcmUsIHNubXBsaWIvTVNHMDAwMDEuYmluLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIHNubXBsaWIvc25tcGtzbS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbnByaW50Zi5jCiwgc25tcGxpYi9zdHJ0b2wuYywgc25tcGxpYi9zdHJ0b3VsLmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL3VjZF9jb21wYXQuYywKICAgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvd2luc2VydmljZS5jLAogICBzbm1wbGliL3dpbnNlcnZpY2UubWMsIHNubXBsaWIvd2luc2VydmljZS5yYywKICAgdGVzdGluZy8uY3ZzaWdub3JlLCB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JFQURNRQosIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL1QyLnNoCiwgdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsCiAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcwosIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLAogICB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsCiAgIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jLCB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLAogICB0ZXN0aW5nL3Rlc3Rfa3VsLnNoLCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywKICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M0RFU2NvbmZpZywKICAgdGVzdGluZy90ZXN0cy9TdjNTSEFERVNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZ3NoYSwgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywKICAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMDJzbm1wdjFnZXRuZXh0CiwgdGVzdGluZy90ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDA0c25tcHYxbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0CiwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsCiAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0CiwgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsCiAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAKLCB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcAosIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LAogICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwKLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgd2luMzIvLmN2c2lnbm9yZSwKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaCwgd2luMzIvc25tcHNtX2luaXQuaCwKICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5vcHQsIHdpbjMyL2Jpbi8uY3ZzaWdub3JlCiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLAogICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWIvLmN2c2lnbm9yZSwgd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZSwKICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AKLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICB3aW4zMi9saWJzbm1wLy5jdnNpZ25vcmUsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsLy5jdnNpZ25vcmUsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9saWJ1Y2RtaWJzLy5jdnNpZ25vcmUsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaCwKICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICB3aW4zMi9zbm1wYnVsa2dldC8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGRlbHRhLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGdldC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcAosIHdpbjMyL3NubXB0ZXN0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHdpbjMyL3NubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYXAvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICB3aW4zMi9zbm1wdHJhcGQvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AKLCB3aW4zMi9zbm1wdmFjbS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AKLCB3aW4zMi9zbm1wd2Fsay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKOgoKICAgY3ZzIGZpbGUgdmVyc2lvbiBudW1iZXIgY2hhbmdlCiAgIAoyMDAyLTA0LTIwIDAwOjIwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBjaGFuZ2Vsb2cKICAgCjIwMDItMDQtMjAgMDA6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2F1dG9ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9tMm0uaCwgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgKLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHguaCwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL21pYklJLmgKLCBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaAosIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAosIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWxfYXBpLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmgKLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaAosIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oCiwgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAosIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9nZXRvcHQuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3N0cnRvbC5jCiwgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLAogICBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvd2luc2VydmljZS5jLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9ldGltZXRlc3QuYwosIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBXaGl0ZSBzcGFjZSwgb2ggZ2xvcmlvdXMgd2hpdGUgc3BhY2UuCiAgIEhvdyBncmVhdCBvdXIgdGhvdWdoPwogICBUaGUgY29kZSBpcyBmaW5lLgogICBXZSBhZ3JlZSBvbiBmdW5jdGlvbmFsaXR5IGVhc2lseS4KICAgV2hhdCByZWFsbHkgdHJvdWJsZXMgdXM/CiAgIFNvbWV0aGluZyB3ZSBjYW4ndCBzZWUuCiAgIFNvbWV0aGluZyBiZXR3ZWVuIHRoZSBjb2RlLgogICBXZSBib3cgZG93biB0byB5b3VyIG1hZ25pZmljZW5jZSwKICAgRm9yIHlvdSBhcmUgZXZlcnl3aGVyZSwKICAgQmV0d2VlbiBldmVyeXRoaW5nLgogICBQcmV0dHkgbm90aGluZ25lc3MgeW91IGFyZS4KICAgCjIwMDItMDQtMjAgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdHVybiBvbiB1Y2QgY29tcGF0IGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA0LTIwIDAwOjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbGFzdCB1cGRhdGVzCiAgIAoyMDAyLTA0LTE5IDIzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgcmVtb3ZlIHRlc3RkZWxheWVkCiAgIAoyMDAyLTA0LTE5IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiAuY3ZzaWdub3JlLCAuY3ZzaWdub3JlOgoKICAgY3ZzIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA0LTE5IDIzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGRvbid0IGRpZSBpZiBwZXJsIGRvZXNuJ3QgaW5pdC4KICAgCjIwMDItMDQtMTkgMjM6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgUkVBRE1FLCBTTk1QLnBtOgoKICAgY2hhbmdlIHdhcm5pbmcuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb3VibGUgY2hlY2sgdGhhdCBtdWx0aXBsZSBpbnNlcnRzIGludG8gdGhlIGRlbGVnYXRlZCBjaGFpbiBkb24ndAogICBoYXBwZW4gKHJlYWQ6IHRoZXkgc2hvdWxkbid0IGFueXdheSwgYnV0Li4uLi4pLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB0eXBlZGVmIHVwZGF0ZQogICAKMjAwMi0wNC0xOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIEZpeCB0aGUgY2FsbGJhY2sgYnVpbGQgaG9vayB0byB0dXJuIG9mZiB0aGUgZXhwZWN0IHJlc3BvbnNlIGZsYWcgd2hlbgogICBub3QgYXBwcm9wcmlhdGUuCiAgIAoyMDAyLTA0LTE5IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgc3BlbGxpbmcgbWlzdGVhazsgcmVtb3ZlIGNhcGl0YWwgbGV0dGVycyBpbiBmdW5jdGlvbiBuYW1lcwogICAKMjAwMi0wNC0xOSAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VkIGluIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA0LTE5IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1ha2UgdGhlIHBlcmxJbml0RmlsZSBhbmQgZGlzYWJsZVBlcmwgdG9rZW5zIHJlZ2lzdGVyIGFzIHByZW1pYiBzdWNoCiAgIHRoYXQgd2hlbiBwYXNzZWQgYXMgYSAtLUZMQUcgaXQnbGwgYWN0dWFsbHkgZG8gdGhlIHJpZ2h0IHRoaW5nIGFuZAogICBkaXNhYmxlIHRoZSBsYXRlciAicGVybCIgdG9rZW4gaGFuZGxlcnMuCiAgIAoyMDAyLTA0LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudC4zCiwgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMsCiAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfdGFibGUuMywKICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKLCBtYW4vbmV0c25tcF90b2RvLjM6CgogICBkb2N1bWVudGF0aW9uLiAgQ2FuJ3QgZ2V0IGVub3VnaC4KICAgICAtIG1ha2UgZG9jcyBub3cgaW5zdGFsbHMgbWFuIHBhZ2VzIGludG8gdGhlIG1hbiBkaXIsIHdoaWNoIGFyZSB0aGVuIGluc3RhbGxlZC4KICAgCjIwMDItMDQtMTkgMTc6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0LCBUMTIxcHJveHlzZXQ6CgogICBDb3JyZWN0IGZvciBuZXcgU1RSSU5HIHByZWZpeC4KICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBLYXRzdWhpc2EgQUJFCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi54cywgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgZml4IGhlYWRlciBmaWxlcyBmb3IgbmV3IHBhdGhzLgogICAKMjAwMi0wNC0xOSAxNzowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBBcHBseSBwYXRjaCAjNTMyNTU1OiBpcHY2IGNvbTJzZWMgc3VwcG9ydCwgdGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA0LTE5IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgZml4IHN5c1VwVGltZSAoYW5kIHJlbGF0ZWQgZnVuY3Rpb25zKSB0byBoYW5kbGUgbXVjaCBsYXJnZXIgdXBUaW1lCiAgIHZhbHVlcyAoaWUsIGZpeCBzaWduZWQgaW50ZWdlciB3cmFwcGluZykuCiAgIAoyMDAyLTA0LTE5IDExOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGVtYmVkZGVkIHBlcmwgc3VwcG9ydC4KICAgCjIwMDItMDQtMTkgMTE6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXBfcGVybC5jLCBhZ2VudC9zbm1wX3BlcmwucGwsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTAo6CgogICBBZGQgc29tZSBuZXcgc25tcGQuY29uZiB0b2tlbnMgZm9yIGNvbnRyb2xsaW5nIHBlcmwgYmV0dGVyLgogICBGaXggZW1iZWRkZWQgcGVybCBzdXBwb3J0IHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0wNC0xOSAxMTozMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHM6CgogICBBZGRlZCBtaXNzaW5nIGFnZW50IGRlZmF1bHRfc3RvcmUgc3R1ZmYuICAodGhleSBleGlzdGVkIG9uIG15IG1hY2hpbmUsCiAgIEkgZG9uJ3Qga25vdyB3aHkgZXZlcnlvbmUgZWxzZSB3YXMgaGF2aW5nIHByb2JsZW1zKQogICAKMjAwMi0wNC0xOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoaW5ncyB0aGF0IHNob3VsZCBuZXZlciBldmVyIGhhcHBlbgogICAKMjAwMi0wNC0xOSAwMzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICA8U2lnaD4gQSBsaXR0bGUgbGVhcm5pbmcgaXMgYSBkYW5nZXJvdXMgdGhpbmcuCiAgIEFwcGx5IHRoZSByZXN0IG9mIHRoZSBwYXRjaCBmcm9tIEF4ZWwgLSBzb3JyeS4KICAgCjIwMDItMDQtMTkgMDE6NDkgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBkb2N1bWVuYXRpb24gd2hlbiBzcmNkaXIgIT0gY29uZmlnZGlyCiAgIChQYXRjaCBzdXBwbGllZCBieSBBeGVsIEtpdHRlbmJlcmdlcikKICAgCjIwMDItMDQtMTggMTc6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZml4IHNubXBJUFhEb21haW4gKGFnYWluKQogICAKMjAwMi0wNC0xOCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogb25seSBvcGVuIHN1YmFnZW50IGNvbm5lY3Rpb25zIG9uY2UgYXQgc3RhcnR1cAogICAKMjAwMi0wNC0xOCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBmb3IgZG93biBzdWJhZ2VudCBjYXNlcywgbWFyayByZWdpc3RyYXRpb25zIGFzIGRldGFjaGVkCiAgIAoyMDAyLTA0LTE4IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWZpbmUgYSBtYXhpbXVtIHBhY2tldCBzaXplIHdlIGNhbiBhY2NlcHQgdG8gcHJvdGVjdCBjZXJ0YWluIGVycm9yCiAgIGNvbmRpdGlvbnMgKC0xIGFmdGVyIGNvbnZlcnNpb24gaXMgbm93IHRvbyBsYXJnZSkuCiAgIAoyMDAyLTA0LTE4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgY2hhbmdlIHRoZSBlbnRlcnByaXNlIE9JRHMgaW4gdGhlIHByb3BlciBwbGFjZSAobmV0LXNubXAtY29uZmlnLmguaW4KICAgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlKS4KICAgCjIwMDItMDQtMTggMTM6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgLSBBZGQgdHdvIG5ldyBvcHRpb25zIHRvIG5ldC1zbm1wLWNvbmZpZyBhcyByZXF1ZXN0ZWQgb24gdGhlIElSQyBjaGFubmVsLgogICAgIC0tY29uZmlndXJlLW9wdGlvbnMKICAgICAtLXNubXBkLW1vZHVsZS1saXN0CiAgIAoyMDAyLTA0LTE4IDExOjQzICByc3RvcnkKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDQtMTggMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2Ygc3VwcGxpZWQgZW50ZXJwcmlzZSBPSURzIGNvcnJlY3RseQogICAoYW5kIHVzZSBhIG1vcmUgbWVhbmluZ2Z1bCBvdXRwdXQgbWVzc2FnZSkKICAgCiAgIFNoYW1lIHRoZXNlIHNldHRpbmdzIGFyZW4ndCBjYWNoZWQgZm9yIGxhdGVyIHJlLXVzZS4uLi4KICAgCjIwMDItMDQtMTggMDc6MTggIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBOb3RpZnkgb24gYWdlbnQgcmVjb25maWd1cmF0aW9uLgogICAKMjAwMi0wNC0xOCAwNzoxNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgbm90aWZpY2F0aW9ucyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xOCAwNzowOCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4IHRoZSB0YWJsZS1vZi1jb250ZW50cyBzZXF1ZW5jZSBmb3IgdGhlIG5zTW9kdWxlVGFibGUsIGFkZCBub3RpZmljYXRpb24KICAgZGVmaW5pdGlvbnMgZm9yIHRoZSBhZ2VudCwgYW5kIGRlZmluZSBncm91cHMgZm9yIGV2ZXJ5dGhpbmcuCiAgIAoyMDAyLTA0LTE4IDAyOjUyICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQnJpbmcgaW50ZWdlciBhbmQgc3RyaW5nIG91dHB1dCBmb3JtYXRzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciB0eXBlcwogICBieSBwcmludGluZyBhIHR5cGUgdG9rZW4gYmVmb3JlIHRoZSB2YWx1ZSAodW5sZXNzIHN1cHJlc3NlZCBieSAncXVpY2sgcHJpbnQnKQogICBUaGFua3MgdG8gRXJpayBmb3IgdGhlIHBhdGNoCiAgIAoyMDAyLTA0LTE4IDAxOjQ2ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXBsYWNlIHRoZSBkbG1vZCAnV0hFUkUnIHdpdGggc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bC4uLi4KICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZGVmaW5lIHRoZSBpcHhEb21haW4gdmFyaWFibGVzCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBFcnJvciBjb25kaXRpb24gdGVzdHMKICAgCjIwMDItMDQtMTcgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgT2gsIGp1c3QgYSBzbWFsbCBwYXRjaCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIG1ha2UgbW9kdWxlcyByZXF1ZXN0CiAgIHRoYXQgYWxsIHF1ZXJpZXMgdG8gYSBzZXQgb2YgcmVnaXN0cmF0aW9ucyBnZXQgcGFzc2VkIGFsbCBhdCBvbmNlCiAgICh3aGljaCBhcHBhcmVudGx5IGlzIGltcG9ydGFudCBmb3IsIG9oLCBhZ2VudHgpCiAgIAoyMDAyLTA0LTE3IDEwOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtaXNjIG5vbi1jaGFuZ2UgY2xlYW4gdXBzCiAgIAoyMDAyLTA0LTE3IDEwOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW5hbWUgc3RydWN0dXJlcyBiZWdpbm5pbmcgd2l0aCBfIHRvIGVuZGluZyB3aXRoIF9zCiAgIAoyMDAyLTA0LTE3IDEwOjAyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgc2Vzc2lvbiBjcmVhdG9yIHRvIHVzZSBhdCB3aWxsIChkaWZmZXJlbnQKICAgZnJvbSB0aGUgY2FsbGJhY2sgbWFnaWMpLgogICAKMjAwMi0wNC0xNyAwOTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIHN5c09JRHMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTcgMDg6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZS4KICAgCjIwMDItMDQtMTcgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UKICAgCjIwMDItMDQtMTcgMDY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgbW92ZSBuc01vZHVsZVRhYmxlIGludG8gRGF2ZSdzIHN0cnVjdHVyZS4KICAgCjIwMDItMDQtMTcgMDY6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmgsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICBmaXggZGVjbGFyYXRpb25zIG9mIERvbWFpbiBvYmplY3RzIChjb25zdCAtPiBleHRlcm4pCiAgIAoyMDAyLTA0LTE3IDA2OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBzbm1wZC1kYXRhL3NubXBjb25mLWNvbmZpZywgc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnCjoKCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZGF0YQogICAKMjAwMi0wNC0xNyAwMzowMSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgcmVwb3J0ZWQgZGVmYXVsdCBzZXR0aW5ncyBmb3Igc3lzb2lkICYgbm90aWZpY2F0aW9uIE9JRHMKICAgYmFjayBpbnRvIGxpbmUgd2l0aCB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoaS5lLiB0aGUgdWNkYXZpcyBPSURzKS4KICAgCiAgIFFuOiAgRG8gd2Ugd2FudCB0byBzd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldC1zbm1wIGVxdWl2YWxlbnQgc3lzT0lEcz8KICAgUW46ICBXaGF0IGFib3V0IGRlZmluaW5nIG5ldC1zbm1wIG5vdGlmaWNhdGlvbnM/CiAgIAoyMDAyLTA0LTE3IDAyOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCAtLXdpdGgtZW50ZXJwcmlzZS1zeXNvaWQgYW5kIC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQsCiAgIGFuZCB0cnkgdG8gY2xhcmlmeSB0aGF0IHRoZXNlIGFyZSBPSURzLCB3aGlsZSAtLXdpdGgtZW50ZXJwcmlzZS1vaWQKICAgaXMgYWN0dWFsbHkganVzdCB0aGUgZW50ZXJwcmlzZSAqbnVtYmVyKgogICAKICAgUW46ICBzaG91bGQgd2UgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHRvIHJlZmxlY3QgdGhpcz8KICAgCjIwMDItMDQtMTYgMTA6MDQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMyApCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBkZWxldGUgdG9wIGRpc2NsYWltZXJzCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTA0LTE2IDEwOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1pc2MgYnVnIGZpeGVzCiAgIAoyMDAyLTA0LTE2IDA4OjE5ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgY29uY2VybmluZyB0aGUgJ2xpYmNyeXB0bycgUlBNIGRlcGVuZGVuY3kuCiAgIAoyMDAyLTA0LTE2IDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDQtMTYgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBhIG5vIGxvbmdlciBhcHByb3ByaWF0ZSB0b2RvIGNvbW1lbnQKICAgCjIwMDItMDQtMTYgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEkgZ3Vlc3MgSSBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA0LTE1IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHNubXBjb25mLCBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgc25tcGNvbmYgZGF0YSBkaXJlY3RvcmllcyB0byBkaWZmZXJlbnQgbmFtZXMgdG8gYXZvaWQgY29uZnVzaW9uCiAgIAoyMDAyLTA0LTE1IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvYXV0aG9wdHMsCiAgIHNubXAtZGF0YS9kZWJ1Z2dpbmcsIHNubXAtZGF0YS9taWJzLCBzbm1wLWRhdGEvb3V0cHV0Ciwgc25tcGQtZGF0YS9hY2wsIHNubXBkLWRhdGEvYmFzaWNfc2V0dXAsCiAgIHNubXBkLWRhdGEvZXh0ZW5kaW5nLCBzbm1wZC1kYXRhL21vbml0b3IsCiAgIHNubXBkLWRhdGEvb3BlcmF0aW9uLCBzbm1wZC1kYXRhL3N5c3RlbSwKICAgc25tcGQtZGF0YS90cmFwc2lua3MsIHNubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcsCiAgIHNubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGU6CgogICBkYXRhIGZpbGUgbW92aW5nCiAgIAoyMDAyLTA0LTEyIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIE1hc3NpdmUgY2xlYW51cCBlZmZvcnQuICBJdCBzaG91bGQgbm93IHJlc3BlY3Qgb3JkZXJpbmcgaW4gdGhlCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXMgd2VsbC4KICAgCjIwMDItMDQtMTIgMTM6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBmaXggZm9yIG92ZXJ6ZWFsb3VzIHBlcmwgc2NyaXB0CiAgIAoyMDAyLTA0LTEyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjb3B5IHVjZCBwZXJzaXNlbnQgZGlyZWN0b3J5IHRvIG5ldC1zbm1wIChwcm9tcHRzLCBmbGFncyBhbmQgb3RoZXIgZnVuKQogICAKMjAwMi0wNC0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHRyYXB0b2VtYWlsCiAgIAoyMDAyLTA0LTEyIDA3OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICByZW1vdmUgdHJhcG5vdGlmCiAgIAoyMDAyLTA0LTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCByc25tcDoKCiAgIHJlbW92ZSByc25tcCwgd2hpY2ggaXMgdmVyeSB2ZXJ5IG9sZCBhbmQgb3V0IG9mIGRhdGUKICAgCjIwMDItMDQtMTIgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBtaWIyYy4xLmRlZjoKCiAgIEEgbWFudWFsIHBhZ2UgZm9yIG1pYjJjIChoZWxwLCBJJ20gdHVybmluZyBpbnRvIERhdmUpCiAgIAoyMDAyLTA0LTEyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBkb3RnZGJpbml0OgoKICAgYSBnZGIgaW5pdGlhbGl6YXRpb24gZmlsZSB3aXRoIGhlbHBmdWwgZnVuY3Rpb25zCiAgIAoyMDAyLTA0LTEyIDAyOjQyICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEFkZCAnc25tcGNvbmYnIGFuZCAnbWliMmMnIHRvIHRoZSBsaXN0IG9mIHNjcmlwdHMgdG8gaW5zdGFsbC4KICAgCiAgIEkndmUgbGVmdCAndHJhcHRvZW1haWwnIG9mZiB0aGlzIGxpc3QsIHNpbmNlIGl0IHNheXMgaXQncyBub3QgaW50ZW5kZWQKICAgYXMgYSBkaXJlY3RseSB1c2VyLWludm9rZWQgY29tbWFuZCwgc28gcHJvYmFibHkgb3VnaHQgbm90IHRvIGJlIGluc3RhbGxlZAogICBpbnRvIGEgYmluYXJ5IGRpcmVjdG9yeS4KICAgCjIwMDItMDQtMTIgMDI6NDEgIGR0czEyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgRml4IHRoZSBwYXRoIG9mIHNubXB3YWxrIHRvIGJlIHNvbWV0aGluZyBtb3JlIHBsYXVzaWJsZS4KICAgKEknbSBub3QgY29udmluY2VkIGFib3V0IHRoZSB2YWxpZGl0eSBvZiB0aGF0IGluaXRpYWwgJ3J0b3BtaWInIE9JRCBtaW5kISkKICAgCjIwMDItMDQtMTIgMDI6MzYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBGaXggdHlwbyBpbiByZWZlcmVuY2UgdG8gJ21pYjJjLml0ZXJhdGUuY29uZicKICAgCjIwMDItMDQtMTIgMDI6MzMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWFpbiBsaWJyYXJ5IGFzICdsaWJzbm1wJyBpZiBjb25maWd1cmVkIHVzaW5nIFVDRCBjb21wYXRpYmlsaXR5LgogICBUaGlzIHNob3VsZCBoYW5kbGUgdGhlIHJlcXVpcmVtZW50cyBvZiBhcHBsaWNhdGlvbiBjb21wYXRpYmlsaXR5LgogICBBZ2VudCBsaWJyYXJ5IGNvbXBhdGliaWxpdHkgaXMgbGlrZWx5IHRvIHByb3ZlIGEgaGFyZGVyIHByb2JsZW0KICAgKHNpbmNlIHRoZXJlIGFyZSBub3cgdGhyZWUgbGlicmFyaWVzLCBub3QganVzdCB0d28uLi4pCiAgIAoyMDAyLTA0LTExIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgc2V0IFNOTVBDT05GUEFUSCBpZmYgW3NpY10gbm90IHNldAogICAKMjAwMi0wNC0xMSAyMjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZXR1cm4gZnJvbSBpbml0TWliIGJlZm9yZSBkb2luZyBhbnl0aGluZy4KICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR1cm4gb2ZmIGNvbXBsaWVyIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0ICJzaG93IGNvbHVtbnMgZnJvbSBUQUJMRSIKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIG5ldyBkZW1vIHNjYWxhcjogdGhlIHNsZWVwZXIuICAoZGFoIGRhaCBkYWggZHVtbW1tbSkKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGluZGVudC4KICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMuaCwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jCiwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oOgoKICAgQWRkIGEgZGVsYXllZCBpbnN0YW5jZSBleGFtcGxlLCBzaG93aW5nIGhvdyB0byByZXR1cm4gbWliIHJlcXVlc3QKICAgcmVzdWx0cyBsYXRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KICAgCjIwMDItMDQtMTEgMjI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICByZW1vdmUgbGVnYWN5IGV4YW1wbGUuCiAgIAoyMDAyLTA0LTExIDIyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhZGQgY29tbWVudCBhYm91dCBwb3NzaWJseSBmaXhpbmcgaW5jbHVzaXZlIHJlcXVlc3RzIGluIHRoZSBmdXR1cmUuCiAgIAoyMDAyLTA0LTExIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICBjaGFuZ2UgbW9kdWtlcy0+IG1vZHVsZXMKICAgCjIwMDItMDQtMTEgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB0dXJuIG9mZiBkZWJ1Z2dpbmcgd2hlbiBjYWxsaW5nIGxvZ2dpbmcgY2FsbGJhY2tzCiAgIAoyMDAyLTA0LTEwIDEyOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgZml4IHBlcmwgbW9kdWxlIGluIG1hbnkgbWFueSBwbGFjZXMuICBtb3N0IHRlc3RzIG5vdyBwYXNzLgogICAKMjAwMi0wNC0xMCAxMjo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIGZvcmNlIHNldHRpbmcgdG8gYSAiYm9ndXMiIFNOTVBDT05GUEFUSC4KICAgCjIwMDItMDQtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIEV4cG9ydGluZyBmdW5jdGlvbnMgZ29vZC4gIEludGVybmFsaXppbmcgYmFkLgogICAKMjAwMi0wNC0xMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgc2lnaC4KICAgCjIwMDItMDQtMTAgMDk6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDQtMTAgMDk6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBNYWtlIHRoZSBwZXJsIG1vZHVsZSBjYWxsIGluaXRfc25tcCgpCiAgICAgLSB0aGlzIGlzIGEgZmFpcmx5IG1ham9yIGNoYW5nZSwgaXMgaXQgbm93IHdpbGwgcmVhZCAuY29uZiBmaWxlcy4KICAgICAtIG1hbnkgcGVvcGxlIGhhdmUgYXNrZWQgZm9yIHRoaXMuCiAgIC0gbWlzYyBjbGVhbiB1cHMuCiAgIAoyMDAyLTA0LTEwIDA5OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIERvbid0IHJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyBmb3IgdGhlIGNvbnNpdHVlbnQgc3VidGFyZ2V0cyBvZiAibWFrZSBpbnN0YWxsIgogICAKMjAwMi0wNC0xMCAwOTowOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIGEgZmV3IHRoaW5ncywgc2VwYXJhdGVkIHBlcmwgc3R1ZmYgaW50byBpdCdzIG93biBzZWN0aW9uLgogICAKMjAwMi0wNC0xMCAwODo0NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgaGVscCBtZXNzYWdlIGZvciB0aGUgVUNEIGNvbXBhdGFiaWxpdHkgb3B0aW9uIGludG8gbGluZSB3aXRoCiAgIHdoYXQncyBhY3R1YWxseSByZWNvZ25pc2VkLgogICAKMjAwMi0wNC0xMCAwNzo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2hhbmdlIGxpYnRvb2wgdmVyc2lvbmluZyB0byB0aGVpciByZWNvbW1lbmRlZCBtZXRob2Qgb2YgZG9pbmcgdGhpbmdzCiAgICh3aGljaCBJIGhhdGUsIGJ1dCBpcyBzdGlsbCBiZXR0ZXIgdGhhbiB3aGF0IHdlIHdlcmUgZG9pbmcsIEkgZ3Vlc3MpCiAgIAoyMDAyLTA0LTEwIDA3OjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEJyaW5nIHVzZSBvZiBCVUlMVFNVQkRJUiB3aXRoaW4gJ2luc3RhbGxsb2NhbGhlYWRlcnMnIGludG8gbGluZQogICB3aXRoIHRoZSBwcmVjZWRpbmcgY29tbWVudCwgYW5kIGFjdHVhbCB1c2FnZS4KICAgKGkuZS4gSU5TVEFMTEJVSUxUU1VCRElSIHJhdGhlciB0aGFuIElOQ0xVREVCVUlMVFNVQkRJUikKICAgCjIwMDItMDQtMTAgMDU6NTggIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUeXBvIGluIHNlY3VyaXR5LWluY2x1ZGUgaGVhZGVyIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSB2YXJpYWJsZQogICAKMjAwMi0wNC0xMCAwNTo1NSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgbWliMmMgY29uZiBmaWxlcy4KICAgCjIwMDItMDQtMTAgMDE6NTUgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDA0c25tcHYxbm9zdWNoLCBUMDE5c25tcHYyY25vc3VjaDoKCiAgIFR3byBuZXcgdGVzdHMgdG8gY2hlY2sgaGFuZGxpbmcgb2YgR0VUaW5nIG5vbi1leGlzdGFudCBpbnN0YW5jZXMKICAgCjIwMDItMDQtMTAgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEEgZml4IGZvciBTTk1QdjEgZXJyb3JzIHRoYXQgZG9lc24ndCBlbmQgdXAgYnJlYWtpbmcgQWdlbnRYIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMi0wNC0wOSAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBEYXZlIHRvIGZpeCB2MSBlcnJvciByZXN1bHRzLgogICAKMjAwMi0wNC0wOCAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaXggaW5jb3JyZWN0IGxlbmd0aCByZXR1cm4gdmFsdWUKICAgCjIwMDItMDQtMDggMTg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgZG9uJ3QgYWxsb3cgbm8tY29uZmlndXJhdGlvbiBhY2Nlc3MgYW55bW9yZS4KICAgCjIwMDItMDQtMDggMTc6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wdXNtLmMKOgoKICAgbW9yZSB1bmNvbnN0IGNvcnJlY3RuZXNzCiAgIAoyMDAyLTA0LTA4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHNpemVfdCBleHRlcm5zIGZvciBleHBvcnRlZCBvaWRzCiAgIAoyMDAyLTA0LTA4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHRoYXQgYWNjaWRlbnRhbGx5IGJlY2FtZSBwZXJtYW5lbnQuCiAgIAoyMDAyLTA0LTA4IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgZGVmaW5lIGxlbmd0aCBzaXplX3QncyBmb3Igb2lkIHZhcmlhYmxlcy4KICAgCjIwMDItMDQtMDggMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgc3VwcG9ydCAibnVsbCIgdHlwZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBub3RpZmljYXRpb24gbG9nIG1pYiBzdXBwb3J0IGJlZm9yZSAtSCB1c2FnZS4KICAgCjIwMDItMDQtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaXggYSBmZXcgdGhpbmdzIGFuZCBtYWtlIHN1YmhhbmRsZXJzIG5vdCBhYmxlIHRvIHRlbGwgdGhlcmUgd2VyZSBtb3JlIHJlcXVlc3RzLgogICAKMjAwMi0wNC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIEEgY28td29ya2VyIHBvaW50ZWQgb3V0IHRoYXQgdGhlIElOU1RBTEwgc2NyaXB0IHN0aWxsIHNhaWQgdG8gZWRpdCBjb25maWcuaAogICAKMjAwMi0wNC0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB1bnN0YXRpYy1pemUgYSBmZXcgb2lkcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gZXh0ZXJuYWwKICAgCjIwMDItMDQtMDggMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfdHJhbnNwb3J0LmMKLCBzbm1wdXNtLmM6CgogICBDaGFuZ2UgY29uc3Qgb2lkIGRlY2xhcmF0aW9ucyBpbnRvIHN0YXRpYyBvbmVzIHNpbmNlIHNoYXJlZCBsaWJyYXJpZXMKICAgaGF2ZSBhIHByb2JsZW0gd2l0aCBpbml0aWFsaXppbmcgdGhlbSBvbiBsaW51eCBzeXN0ZW1zIGF0IGxlYXN0LgogICAKMjAwMi0wNC0wOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5pbWFsIGRvY3VtZW50YXRpb24gZm9yIGRlYnVnZ2luZyBhbmQgdGhlIGluamVjdEhhbmRsZXIgdG9rZW4KICAgCjIwMDItMDQtMDUgMTQ6MzIgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXB0cmFwZC44LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgTk9USUZJQ0FUSU9OLUxPRy1NSUIgc3VwcG9ydC4KICAgCjIwMDItMDQtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgY29udGV4dCBuYW1lIHN1cHBvcnQgaW4gcHJveHkgY29kZS4KICAgCjIwMDItMDQtMDUgMTM6NTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGRpc21hbiBldmVudCBtaWIgc3VwcG9ydCBmb3Igc2VuZGluZyB0cmFwcyB2aWEgbW9uaXRvcmVkIE9JRHMuCiAgIAoyMDAyLTA0LTA1IDEwOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHB1dCB0cmFwIGNvbmZpZyBpbnRvIGl0cyBvd24gc2VjdGlvbi4KICAgZG9jdW1lbnQgdGhlICJvdmVycmlkZSIgdG9rZW4uCiAgIAoyMDAyLTA0LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgY2hhbmdlIGRlZmF1bHQgY29udGV4dCB0byBhbiBlbXB0eSBzdHJpbmcKICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjUpLCBhZ2VudF9yZWdpc3RyeS5jCjoKCiAgIGRlYWwgd2l0aCBmZCB1bnJlZ2lzdHJhdGlvbnMgcHJvcGVybHkuCiAgIAoyMDAyLTA0LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaAosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIE1ha2UgYW4gZXhhbXBsZSBkYXRhc2V0IHRhYmxlIHRvIGhvbGQgYW5kIHN0b3JlIGRhdGEgaW4gKGFkbWl0dGVkbHkKICAgdXNlbGVzcyBkYXRhIGZyb20gYSBuZXR3b3JrIG1hbmFnZW1lbnQgcG9pbnQgb2YgdmlldywgYnV0IGl0J3MgYW4gZXhhbXBsZSkuCiAgIAoyMDAyLTA0LTAyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIGZyb20gc3ViZGlyIGJ1aWxkIGNhc2UuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMgZnJvbSBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oIGFuZCBtaWJfbW9kdWxlX2luY2x1ZGVzLmggZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLmggZnJvbSB0aGUgYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBjcmVhdGUgc29tZSBpbnN0YWxsIGZyb20gYnVpbHQgaGVhZGVyIHJ1bGVzLgogICAKMjAwMi0wNC0wMiAxNzoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZjoKCiAgIHJlbW92ZSBkZWxldGVkIGFycmF5LWF1dG8gZnJvbSAuY29uZiBpbnN0YWxsL3JlZmVyZW5jZSBsaXN0cwogICAKMjAwMi0wNC0wMiAxNTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5jLAogICB1Y2Qtc25tcC9yZWdpc3RyeS5oOgoKICAgcmVtb3ZlIHRoZSByZWdpc3RyeSBtb2R1bGUsIGFzIGl0J3Mgb2Jzb2xldGUgZHVlIHRvIGNvbnRleHRzLiAgVXNlIHRoZSBuc01vZHVsZVRhYmxlIGluc3RlYWQKICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAoVjQtMi1wYXRjaGVzLjcpLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNC0yLXBhdGNoZXMuOCksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDIgMDc6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGNoYXIgZm9yIE5VTEwgYmVmb3JlIHNldHRpbmcgdG86CiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjkpLCBjbXVfY29tcGF0LmMsCiAgIHNubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOSAxNTowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyAmIHVwZGF0ZXMKICAgCjIwMDItMDMtMjkgMTA6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWRkIGNvbW1lbnQKICAgCjIwMDItMDMtMjkgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgYSBhbGxvd19jcmVhdGlvbiBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0yOSAwODoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIG5ldC1zbm1wLWNvbmZpZyBleGVjdXRhYmxlIGFmdGVyIGl0J3MgYnVpbHQKICAgCjIwMDItMDMtMjkgMDg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc2V0U2VyaWFsTm8uYywgc2V0U2VyaWFsTm8uaDoKCiAgIG9wcHMuICBmb3Jnb3QgdG8gY2hlY2sgdGhlIHNldFNlcmlhbCBjb2RlIGluCiAgIAoyMDAyLTAzLTI4IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAoVjQtMi1wYXRjaGVzLjQpLCBwYXNzLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIGZvciBwYXNzIG1vZHVsZXMuICBQYXRjaCAjNDgyMDA1CiAgIAoyMDAyLTAzLTI4IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNTE3MzQwOiBmcmVlYnNkNSBzdXBwb3J0CiAgIAoyMDAyLTAzLTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jIChWNC0yLXBhdGNoZXMuNCksIGhyX2ZpbGVzeXMuYwo6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL2ludGVyZmFjZXMuYwosIG1pYklJL2lwQWRkci5jOgoKICAgQXBwbHkgbmV0YnNkIGZpeCBwYXRjaCAjNTI5NzMzCiAgIAoyMDAyLTAzLTI4IDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wX2FwaS5jLAogICBzbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjI1ICBkdHMxMgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCByZWFkX2NvbmZpZy4zLmRlZiwKICAgc25tcF9hcGkuMy5kZWY6CgogICBUd2VhayB0byB1c2UgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZS4KICAgCjIwMDItMDMtMjggMTU6MjMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBBZGQgYSBmZXcgbmV3IGVudHJpZXMgKG1vc3RseSByZWxhdGluZyB0byB0cmFwcykKICAgCjIwMDItMDMtMjggMTQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW5hbWUvcHJlZml4IGZ1bmN0aW9uczsgYWRkIGRveHlnZW4gZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wMy0yOCAxMzowMCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIGFkZCBkZWZpbmUgZm9yIGV4Y2x1ZGluZyBzdHVmZiAoRE9YWUdFTl9TSE9VTERfU0tJUF9USElTKQogICAKMjAwMi0wMy0yOCAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCBzZXRTZXJpYWxObwogICAKMjAwMi0wMy0yOCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBmaXggYSBuZXZlci1zZWVuLWJ1dC12ZXJ5LW9sZC1idWcgdXNpbmcgdGhlIHdyb25nIGRlZmF1bHRfc3RvcmUgdG9rZW4uCiAgIAoyMDAyLTAzLTI4IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvbmx5IHNldCB0aGUgZGVmYXVsdCBvdXRwdXQgc3R5bGUgaWYgaXQncyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nLgogICAKMjAwMi0wMy0yOCAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIHdyYXBwaW5nLgogICAKMjAwMi0wMy0yOCAxMjoxNyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHZlcnNpb24gbnVtYmVyCiAgIAoyMDAyLTAzLTI4IDEyOjA4ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBiYWNrIG91dCBjaGFuZ2UgZnJvbSB2ZXJzaW9uIDEuNjUgdW50aWwgYmV0dGVyIHNvbHV0aW9uIGNhbiBiZSBmb3VuZDsKICAgYnVnICM1MzUwMjkKICAgCjIwMDItMDMtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmV0dXJuIHNwZWNpZmljIHJlc3VsdCBjb2RlIGZvciByZWdpc3RyYXRpb24gZmFpbHVyZSBpZiBhdmFpbGFibGUuCiAgIAoyMDAyLTAzLTI4IDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwo6CgogICBwZXJsIHR5cG8KICAgCjIwMDItMDMtMjcgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBkZWxldGUgb2xkLCB1bnVzZWQgY29uZiBmaWxlCiAgIAoyMDAyLTAzLTI3IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jLCBub3RpZmljYXRpb25fbG9nLmgsCiAgIHNubXB0cmFwZC5jOgoKICAgYWRkICJkb250UmV0YWluTG9ncyIgdG9rZW4gdG8gc25tcHRyYXBkLmNvbmYgdG8gbm90IGVuYWJsZSB0aGUKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIuCiAgIAoyMDAyLTAzLTI3IDAxOjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGNvcnJlY3QgbmFtZSBvZiB0aGUgV2luZG93cyBJUCBIZWxwZXIgQVBJIGxpYnJhcnkuCiAgIChDb21wdXRlcnMgY2FuIGJlIHNvb29vIHBpY2t5ISkKICAgCjIwMDItMDMtMjYgMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIFJlYWxseSBmaXggdGhlICJ1bmRvIGZhaWxlZCIgcHJvYmxlbS4gIElFLCBub3QganVzdCBhbnkgb2xkIGVycm9yCiAgICAgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCBtZXNzYWdlIHRvIGdldCBzZW50IGJhY2suICBPbmx5IHZhcmJpbmRzCiAgICAgd2l0aCBhbiB1bmRvIGZhaWxlZCBlcnJvciBjb2RlIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgcmVzdWx0LgogICAgIHVuZG8gZmFpbGVkIHJlc3VsdHMgZG8gc3RpbGwgc3VwZXJzZWRlIGFsbCBvdGhlciBlcnJvciBjb2RlcywKICAgICBob3dldmVyLCB3aGljaCBpcyB3aGF0IHRoZSBvcmlnaW5hbCBwcm9ibGVtIHdhcyBhbGwgYWJvdXQuICBXZSBzdGlsbAogICAgIGhhdmUgdG8gZGVwZW5kIG9uIHRoZSBtb2R1bGVzIHJldHVybmluZyB0aGUgcmlnaHQgZXJyb3IgY29kZSAoYnV0CiAgICAgdGhhdCdzIHRoZWlyIGZhdWx0IGlmIHRoZXkgZG9uJ3QpLgogICAtIG1pc2MgY2xlYW51cHMgYW5kIHJlbmFtZXMKICAgCjIwMDItMDMtMjYgMjM6MjAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBDcmFpZyBTZXRlcmEKICAgCjIwMDItMDMtMjYgMTQ6MDcgIHJzdG9yeQoKICAgKiBUT0RPOgoKICAgYWRkIGNyZWF0aW5nIHNyYyBycG0gc3BlYyBmaWxlCiAgIAoyMDAyLTAzLTI2IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2tpby5jIChWNC0yLXBhdGNoZXMuMiksIGRpc2tpby5jCjoKCiAgIGVuYWJsZSBkaXNraW8gb24gZnJlZWJzZDUuICBJbXBsZW1lbnRzIHBhdGNoIDUxNzMyOCBpbiBhIGRpZmZlcmVudCB3YXkuCiAgIAoyMDAyLTAzLTI2IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZml4IGZvciBvdGhlci1kaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTI2IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpbmZvIGluIHNwbGl0X3N1YnRyZWUKICAgCjIwMDItMDMtMjYgMDc6NDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzAsMF0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAvZXRjL2ZpbGVzeXN0ZW1zIHRvIGxpc3Qgb2YgbW91bnQgdGFibGUgZmlsZXMgKGZvciBBSVgpCiAgIFNob3VsZCBmaXggYnVncyAyMzI1ODggYW5kICg/KTUxNzExMwogICAKMjAwMi0wMy0yNiAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bOSw5XSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGxpc3Qgb2YgYWdlbnQgbGlicmFyaWVzLCB3aGVuIHJ1bm5pbmcgb24gV2luZG93cwogICAodXNpbmcgQ3lnd2luKS4gIFNob3VsZCBmaXggQnVnICM1MzQ0MDkuCiAgIAoyMDAyLTAzLTI1IDIyOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IHBhcnNlLmMgKFY0LTItcGF0Y2hlcy4zKSwgcGFyc2UuYzoKCiAgIGZpeCBidWcjNTIwNDc4IHNob3dNaWJFcnJvcnMgdG9rZW4gaXMgaW52ZXJ0ZWQKICAgCjIwMDItMDMtMjUgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAzLTI1IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCjoKCiAgIHVzZSBlbWFjcyB0byBmaXggcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIHBlcmwgdG8gc2VhcmNoIGFuZCByZXBsYWNlIHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTI1IDA4OjQzICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbnMgb2YgJ2dldG9wdC5jJyBhbmQgJ3NubXBfcGFyc2VfYXJncy5jJyBpbgogICBlYWNoIGluZGl2aWR1YWwgYXBwbGljYXRpb24gcHJvamVjdC4gIFRoZXNlIHJvdXRpbmVzIGFyZSBpbmNsdWRlZCB3aXRoaW4KICAgdGhlIGxpYnJhcmllcywgc28gd2UgbWlnaHQgYXMgd2VsbCB1c2UgdGhvc2UuCiAgIAoyMDAyLTAzLTI1IDA1OjUzICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCwgd2luMzIub3B0LAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBHb3RjaGEhICBFdmVyeXRoaW5nIG5vdyBidWlsZHMgKG1vcmUtb3ItbGVzcykgY2xlYW5seSB1bmRlciBWaXN1YWwgQysrLgogICBZb3Ugc3RpbGwgaGF2ZSB0byB1c2UgdGhlICJCYXRjaCBCdWlsZCIgbWVjaGFuaXNtIChvciBlbHNlIGJlIGNhcmVmdWwgd2hpY2gKICAgb2YgbGlic25tcC9saWJzbm1wX2RsbCB5b3UgYnVpbGQgaW4gZWFjaCBvZiB0aGUgRGVidWcgJiBSZWxlYXNlIG1vZGVzKSwKICAgYW5kIHlvdSBuZWVkIHRvIGJ1aWxkIHR3aWNlIGluIG9yZGVyIHRvIGdldCBlbmNvZGVfa2V5Y2hhbmdlIGxpbmtpbmcuCiAgIEJ1dCB0aGluZ3MgKmRvKiBmaW5hbGx5IGJ1aWxkLgogICAKMjAwMi0wMy0yNCAwNToyMSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIzIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgcmVhbGx5IGZpeCBzbm1waW5mb3JtIGluc3RhbGxzIHRoaXMgdGltZS4KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmluYWwgY2xlYW51cHMgb2Ygbm90aWZpY2F0aW9uIGxvZyBzdXBwb3J0CiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBvZiBzbm1waW5mb3JtCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUmVuYW1lIHN0dWZmLiAgRml4IHN0dWZmLiAgWW91IGtub3csIG5vcm1hbCByb3V0aW5lLgogICAKMjAwMi0wMy0yMiAyMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggdmVyc2lvbiBmaWxlIGxvY2F0aW9uIGZvciBub24tc291cmNlZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmb3Jnb3QgdG8gY29tbWl0IGEgcHJvdG90eXBlLgogICAKMjAwMi0wMy0yMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIHJlZ2lzdGVyX21pYl9jb250ZXh0MiAtPiBuZXRzbm1wX3JlZ2lzdGVyX21pYiAoYW5kIG1hcmtlZCBhcyBpbnRlcm5hbCkKICAgCjIwMDItMDMtMjIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBzdWJhZ2VudC5jOgoKICAgdXNlIG5ldyBlcnJvciBsb2dnaW5nIGFwaSB3aGVuICFyb290CiAgIAoyMDAyLTAzLTIyIDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlbmFibGUgbG9nZ2luZyBzZXNzaW9uIGVycm9ycyB0byBzb21lIGxvZyBsZXZlbCBvdGhlciB0aGFuIEVSUi4KICAgCjIwMDItMDMtMjIgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBzdWJhZ2VudC5jOgoKICAgYmV0dGVyIGFnZW50eCBjb25uZWN0aW9uIHJlbGF0ZWQgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTIyIDA5OjM1ICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCBzbm1wZC9zbm1wZC5kc3A6CgogICBTbG93bHkgbWFraW5nIHByb2dyZXNzIG9uIDUuMCBXaW5kb3dzIGJ1aWxkLgogICBFdmVyeXRoaW5nIG5vdyBjb21waWxlcywgdGhvdWdoIHRoZSBSZWxlYXNlIHZlcnNpb24gZG9lc24ndCBsaW5rLgogICAgIChjb21wbGFpbnMgYWJvdXQgYXNzb3J0ZWQgdW5rbm93biByb3V0aW5lcyB0aGF0IGFyZSB0aGVyZSwKICAgICAgc3RhcmluZyBpdCBpbiB0aGUgZmFjZS4gIEdycnIhISEhKQogICAKMjAwMi0wMy0yMiAwODoyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBub3QgInR3ZWFrIiByYW5nZV9zdWJpZCB3aGVuIGRlYWxpbmcgd2l0aCBjb21wcmVzc2VkIE9JRHMuCiAgICAgICBUaGFua3MgdG8gQ3JhaWcgU2V0ZXJhIGZvciBwb2ludGluZyBvdXQgdGhpcyBkZXZpYXRpb24gZnJvbSBSRkMKICAgICAgIDI3NDEuCiAgIAoyMDAyLTAzLTIyIDA3OjUwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9vaWRfYXJyYXkuYwosIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVmFyaW91cyBtaW5vciBpbmNvbnNpc3RlbmNpZXMgKG1vc3RseSB0byBkbyB3aXRoIHN1YnRsZSB2YXJpYXRpb25zIGluIHR5cGVzKQogICAKMjAwMi0wMy0yMiAwNzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggdHlwbwogICAKMjAwMi0wMy0yMiAwNzoyOSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIG5ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CgogICBCcmluZyBXaW5kb3dzIHZlcnNpb25zIG9mICJhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCIgaGVhZGVyIGZpbGVzIHVwIHRvIGRhdGUuCiAgIAoyMDAyLTAzLTIyIDAyOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkb24ndCB1c2UgInJlZyIgYXMgYSBwYXJhbWV0ZXIgbmFtZSBpbiBrZXJuZWxfc3Vub3M1X2NhY2hlX2FnZSgpCiAgICAgICBhcyAvdXNyL2luY2x1ZGUvaW5ldC9jb21tb24uaCBzYXlzOgogICAgICAgI2RlZmluZSByZWcgcmVnaXN0ZXIKICAgICAgICghKSB3aGljaCB0aGUgY29tcGlsZXIgdGhlbiBiYXJmcyBvbi4gIFJlcG9ydGVkIGFzIGJ1ZyAjNTMzMzM2IGJ5CiAgICAgICBBbm9ueW1vdXMuCiAgIAoyMDAyLTAzLTIxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIHNubXBfY29uZmlnKiAtPiBuZXRzbm1wX2NvbmZpZyAoZm9yIG5ldyBmdW5jdGlvbnMgb25seSkKICAgLSBmaXggYnVnIHdoZXJlIHNubXBfY29uZmlnKCkgc3RyaW5ncyB3ZXJlIGdldHRpbmcgcGFyc2VkIHR3aWNlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHdyYXAgYWdlbnR4IHN0dWZmIGluIGEgc3RpbGwgdW51c2VkIHZhcmlhYmxlIChhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgZml4IG9pZCBwYXJzaW5nLgogICAKMjAwMi0wMy0yMSAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uL2FsYXJtLmMsIFJtb24vc3RhdGlzdGljcy5jLAogICBtaWJJSS9hdC5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMSAwNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIwIDIwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgYSBsaXN0IG9mIHJlZ2lzdGVyZWQgdGV4dCBlbnVtcyB0byBBU05fKiB2YWx1ZXMuCiAgICAgKEluIHByb2JhYmx5IHRoZSB3cm9uZyBwbGFjZS4pCiAgIAoyMDAyLTAzLTIwIDIwOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaDoKCiAgIGNyZWF0ZSBhIG5ldyAib3ZlcnJpZGUiIGRpcmVjdGl2ZSB0byBmb3JjZSBhbiBPSUQgdG8gYSBwYXJ0aWN1bGFyIHZhbHVlCiAgIC0gbm90IGZpbmlzaGVkLiAgSXQncyBkZXNpZ25lZCB0byBkbyByZWFkLXdyaXRlIGFzIHdlbGwsIGJ1dCBkb2Vzbid0LgogICAKMjAwMi0wMy0yMCAyMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2hlY2sgZm9yIGluY2x1c2l2ZQogICAKMjAwMi0wMy0yMCAxMTozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBpbmNsdWRlIG5ldyBkZWxldGUvcmVtb3ZlIGJyZWFrZG93biBBUElzCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFQSSBjaGFuZ2UuCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIHNvbWUgInRoaXMgd2lsbCBjaGFuZ2UiIGVhcmx5IHJvdyBzdGF0dXMgaW1wbGVtZW50YXRpb24uCiAgICAtICh0aGlzIHdpbGwgbW92ZSB0byBhIHNlcGFyYXRlIGhhbmRsZXIpCiAgIAoyMDAyLTAzLTIwIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHBvaW50ZXIgY2hlY2tpbmcgYWdhaW5zdCBpbGxlZ2FsIGFkZHMgKGllLCBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBjaGVjayBhbnl3YXkpCiAgIAoyMDAyLTAzLTIwIDA4OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgT2ssIEkgbWFrZSBtaXN0YWtlcy4gIEkgYWRtaXQgaXQuICBJdCByZWFsbHkgc2hvdWxkIGhhdmUgYmVlbiBhIE5VTEwuCiAgIAoyMDAyLTAzLTIwIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDMtMjAgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIHNlcGFyYXRlIG91dCBkZWxldGUvcmVtb3ZlIHJvdyBmdW5jdGlvbmFsaXR5CiAgIAoyMDAyLTAzLTIwIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBzeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTIwIDA2OjI3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZSwgbG9jYWwvbWliMmM6CgogICAtIGFkZCBtYW55IG1hbnkgLVQgZmxhZ3MgZm9yIGRlZmluaW5nIHR5cGVzLgogICAKMjAwMi0wMy0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZvcmNlIHNldHRpbmcgb2YgJyFyb290JyBmbGFnIHNvIHRoYXQgaXQgd2lsbCBydW4gZm9yIG5vbi1wcml2aWxlZ2VkCiAgIHVzZXJzIG9yIHdoZW4gYW4gYWdlbnR4IG1hc3RlciBzaW1wbHkgaGFzIG5ldmVyIGV4aXN0ZWQuCiAgIAoyMDAyLTAzLTE5IDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGFsbG93IHRhYmxlcyB0byBiZSBtYXJrZWQgd2hldGhlciB0aGV5IHNob3VsZCBzdXBwb3J0IGNyZWF0aW9uIG9yIG5vdC4KICAgLSBidWcgZml4ZXMKICAgCjIwMDItMDMtMTkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MjggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBoZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jCjoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBwZXJsL2FnZW50L2FnZW50LnhzLAogICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW5hbWVkIGEgZmV3IGJhZGx5IG5hbWVkIGZ1bmN0aW9ucyAobmV0c25tcF8gYXBwZWFyZWQgdHdpY2UpLgogICAtIGltcGxlbWVudGVkIHRoZSBiZWdpbm5pbmcgb2YgY3JlYXRpb24gc3VwcG9ydCBmb3IgZGF0YXNldHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBBcHBhcmVudGx5IEkgcmFuIGF1dG9jb25mIGVhcmxpZXIgYW5kIG1pc3NlZCBjaGVja2luZyBpbiB0aGUgcmVzdWx0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgYWRkIC1uZmNhCiAgIAoyMDAyLTAzLTE3IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBTZXQgZGVmYXVsdCBwb3J0IHRvIDE2Mi4KICAgCjIwMDItMDMtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIGltcHJvdmVkIGZvcm1hdHRpbmcgc3RyaW5ncyBzaG93aW5nIGJvdGggdHJhbnNwb3J0IHR5cGUgYW5kIHBvcnQgbnVtYmVyLgogICAKMjAwMi0wMy0xMyAyMzozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgbWlzc2luZyAiaW5zdGFsbHN1YmRpcnMiIHRhcmdldCBtaXNzaW5nICh0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSkKICAgCjIwMDItMDMtMTMgMjM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY3JlYXRlLXNubXB2My11c2VyIHRvIGF1dG9tYXRlIGFkZGluZyBhIHYzIHVzZXIgdG8gYm90aCB0aGUgdXNtCiAgIGFuZCB2YWNtIHRhYmxlcyAoYnkgYWRkaW5nIGxpbmVzIHRvIGJvdGggdGhlIHBlcnNpc3RlbnQgYW5kIG5vcm1hbAogICBjb25mIGZpbGVzKS4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGJ1ZyBmaXggZm9yIHByZS1wcm9jZXNzZWQgcmVxdWVzdHMuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmgsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAosIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAosIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgoKICAgLSAtLWVuYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGFjdHVhbGx5IGluc3RhbGxzIGhlYWRlcnMgKGFzIG9wcG9zZWQKICAgICB0byBhbHdheXMsIHdoaWNoIGlzIHdoYXQgaXQgdXNlZCB0byBkbykuCiAgIC0gYWRkIGFnZW50X21pYnMgdG8gY29uZmlndXJlIGRlZmF1bHQgbWliIG1vZHVsZXMgYW5kIGRvY3VtZW50LgogICAtIGNoYW5nZSBoZWxwIGRvY3VtZW50YXRpb24gYSBiaXQgZm9yIHRoZSBtaWIgbW9kdWxlcy4KICAgLSBhZGQgYSBmb3JjZWQgZGVwZW5kZW5jeSBmb3IgbWliX21vZHVsZXMubG8KICAgCjIwMDItMDMtMTMgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Lmg6CgogICBvcHBzLiAgZHVwbGljYXRlcyBleGlzdGluZyBhZ2VudF9taWJzLmgKICAgCjIwMDItMDMtMTMgMTU6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dAogICAoVjQtMi1wYXRjaGVzLlsxLDEsMSwxLDEsOV0pLCBVQ0QtREVNTy1NSUIudHh0LAogICBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwKICAgVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZHJlc3MgY2hhbmdlcyBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgbm90ZSBzYXlpbmcgdGhlc2UgbWlicyBhcmUgbm8KICAgbG9uZ2VyIHN1cHBvcnRlZCBieSBVQ0QuCiAgIAoyMDAyLTAzLTEzIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQWRkZWQgYSBuc01vZHVsZVRhYmxlIHRhYmxlIHdoaWNoIHJlcGxhY2VzIHRoZSBvbGRlciBtclRhYmxlLgogICBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGl0ZW1zIHdpdGhpbiB0aGUgTUlCCiAgIHRyZWUganVzdCBsaWtlIHRoZSBtclRhYmxlIHdhcywgYnV0IHdpdGggc3VwcG9ydCBmb3IgY29udGV4dHMgYW5kIGZvcgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyB3aXRoIGRpZmZlcmVudCBwcmlvcml0aWVzLgogICAKMjAwMi0wMy0xMyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHRvb2xzLmMgKFY0LTItcGF0Y2hlcy40KSwgdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGRlYnVnIHN0YXRlbWVudAogICAKMjAwMi0wMy0xMyAxNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBsb2NhbCB2YXJpYWJsZSBuYW1lIGJ1ZmZlcnMgYnkgZGVmYXVsdCB3aGVuIGJ1aWxkaW5nIG9pZCBzZWdtZW50cy4KICAgCjIwMDItMDMtMTMgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC8qIHN0b3Agd2F0ZXIgZnJvbSBmbG93aW5nIHRocm91Z2ggZGFtICovCiAgIGZpbmdlci0+aW5zZXJ0KCJob2xlIikKICAgCjIwMDItMDMtMTMgMDQ6MDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBBZGQgYSBkZXNjcmlwdGlvbiBvZiAidW5saW5rZWQgT0lEcyIuCiAgIAoyMDAyLTAzLTEyIDIxOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZgo6CgogICBmaXggaGVhZGVycy4KICAgCjIwMDItMDMtMTIgMjE6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGRvbid0IGZvcm1hdCBjb21tZW50cyBvcHRpb24KICAgCjIwMDItMDMtMTIgMjE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGZvciB0YWJsZXMgd2l0aCBob2xlcy4KICAgCjIwMDItMDMtMTIgMjE6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBtb3ZlIGRlZmF1bHQgbWlicyB0byB0aGVpciBvd24gdmFyaWFibGUuCiAgIAoyMDAyLTAzLTEyIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2FnZW50LnhzLCBhZ2VudC90eXBlbWFwOgoKICAgLSB1c2UgbmV0LXNubXAtY29uZmlnIHRvIGZpZ3VyZSB0aGluZ3Mgb3V0LgogICAtIHVwZGF0ZSBoZWFkZXJzIGFuZCB0eXBlaW5mbyBmb3IgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IEZBUTJIVE1MLCBSRUFETUUubWliMmMsIG1pYjJjLCB0a21pYgosIG1pYjJjLmFycmF5LWF1dG8uY29uZiwgbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBtaWIyYy5jb25mIGZpbGUKICAgCjIwMDItMDMtMTIgMTg6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9uJ3QgZm9yZ2V0IHRvIHNldCByb3ctPm5leHQtPnByZXYgdG8gc29tZXRoaW5nIHdoZW4gcmVtb3Zpbmcgcm93LgogICAKMjAwMi0wMy0xMiAxNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGFnZW50eCBpbmNsdXNpdmUgc2VhcmNoZXMgdG8gaWdub3JlIGdldCBlcnJvcnMuCiAgIAoyMDAyLTAzLTEyIDE3OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgc29tZSBtaW5pbWFsIGR1bXAgZGVidWdnaW5nLgogICAKMjAwMi0wMy0xMiAwODozNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIFVwZGF0aW5nIG9mIHRoZSBGQVEgcmVhZHkgZm9yIHRoZSBuZXh0IHJlbGVhc2UuCiAgIChNb3N0bHkgcmVwaHJhc2luZyBvZiBleGlzdGluZyBlbnRyaWVzLCBidXQgYSBmZXcgbmV3IHF1ZXN0aW9ucykKICAgCjIwMDItMDMtMTEgMTg6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGNhc3QgLTEgdG8gdV9jaGFyIHNvIHRlc3QgZG9lc24ndCBhbHdheXMgZmFpbCAoZml4IGNvbXBpbGVyIHdhcm5pbmcpCiAgIAoyMDAyLTAzLTExIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB0cmVhdCAoaWxsZWdhbCkgZXJyb3JzIGZyb20gc3ViYWdlbnRzIHNwZWNpYWxseSBmb3IgZ2V0bmV4dCBjYXNlcy4KICAgCjIwMDItMDMtMTEgMTM6NDEgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBvdXIgc25tcCBsaWJyYXJpZXMgdG8gb3V0cHV0CiAgIAoyMDAyLTAzLTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogdGFibGVfZGF0YS5oLCB0YWJsZV9kYXRhc2V0LmgKOgoKICAgZGVsZXRlL3JlbW92ZSBzdXBwb3J0IGhlYWRlciBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMSAwOToxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBjb21waWxhdGlvbiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VENQCiAgIAoyMDAyLTAzLTExIDA4OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gZml4ZXMgZm9yIC0tZGlzYWJsZS1kZWJ1Z2dpbmcKICAgCjIwMDItMDMtMTEgMDc6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIGNvcnJlY3Qgc2Vzc2lvbiBJRCB3aGVuIHRhbGtpbmcgdG8gc3ViYWdlbnRzLiAgVGhhbmtzIHRvIENyYWlnCiAgICAgICBTZXRlcmEgZm9yIHRoaXMgZml4LgogICAKMjAwMi0wMy0xMSAwNToyMCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTEgMDA6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBjaGVjayBmb3IgTlVMTCBmcmVlcywgZXZlbiB0aG91Z2ggaXQncyBzdXBwb3NlZCB0byBiZSBvayBhY2NvcmRpbmcgdG8gYW5zaS4KICAgCjIwMDItMDMtMTEgMDA6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYmVnaW5uaW5nIHN1cHBvcnQgZm9yIG1heGltdW0gbG9nZ2VkIGNoZWNraW5nLgogICAKMjAwMi0wMy0xMSAwMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIC0gbnVsbCBjaGVjawogICAtIGRvYyBjb21tZW50cy4KICAgCjIwMDItMDMtMTEgMDA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgCjIwMDItMDMtMTEgMDA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV4dCBoYW5kbGVycyAob3BwcykuCiAgIAoyMDAyLTAzLTEwIDE0OjExICBuYmEKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBGaXggb25lIHNwcmludF92YXJpYWJsZSA9PiBzbnByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAzLTEwIDE0OjA2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgQWRkIHNucHJpbnRfKiBmdW5jdGlvbnMgdGhhdCB3ZXJlIHNwcmludF8qIGluIHVjZC1zbm1wIDQKICAgCjIwMDItMDMtMTAgMTQ6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHdoZW4gSVBYLXRyYW5zcG9ydCBlbmFibGVkCiAgIAoyMDAyLTAzLTEwIDE0OjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBjb21waWxhdGlvbiBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDMtMDggMjI6MjYgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbSwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMiApCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtaXNjIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0wOCAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQgdG8gZGVhbCB3aXRoIFNlbmRtYWlsIDguMTIgcXVldWVncm91cHMuCiAgIAoyMDAyLTAzLTA4IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBjc2V0ZSB0byBmaXggd2luMzIgYnVpbGRzCiAgIAoyMDAyLTAzLTA4IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBDYWxsYmFjayB0cmFuc3BvcnQgdG8gY3lnd2luCiAgIAoyMDAyLTAzLTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBybW9uIHN1cHBvcnQuCiAgIAoyMDAyLTAzLTA4IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHJlbW92ZSBvbGQgYW4gdW51c2VkIHBvaW50ZXIKICAgCjIwMDItMDMtMDggMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCiwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwKICAgbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mLCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIHN0cnVjdCBzbm1wX3Nlc3Npb24gdHlwZWRlZmVkIHRvIG5ldHNubXBfc2Vzc2lvbi4gICYgcGR1LiAmIC4uLgogICAKMjAwMi0wMy0wOCAxNDowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXRfc3ltYm9sIC0+IGdldF90cmVlCiAgIAoyMDAyLTAzLTA4IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9TTk1QLnhzLCBhZ2VudC9hZ2VudC5wbSwgYWdlbnQvYWdlbnQueHMKLCBhZ2VudC90ZXN0LnBsOgoKICAgbWlzc2VkIHVwZGF0ZXMKICAgCjIwMDItMDMtMDggMDc6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgZGVmYXVsdF9zdG9yZS5jLCBtaWIuYwosIG9pZF9hcnJheS5jLCBvaWRfc3Rhc2guYywgcmVhZF9jb25maWcuYwosIHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYwosIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLAogICBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wdjMuYzoKCiAgIG1pc3NpbmcgdXBkYXRlZCBjb2RlCiAgIAoyMDAyLTAzLTA4IDAyOjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgICAgLSBzb21lIHNubXAgLT4gbmV0c25tcCBmaXhlcwogICAKMjAwMi0wMy0wNyAxMzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgNCkKICAgCjIwMDItMDMtMDcgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAzKQogICAKMjAwMi0wMy0wNyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDIpCiAgIAoyMDAyLTAzLTA3IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMSkKICAgCjIwMDItMDMtMDcgMDY6MjEgIGpicG4KCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjQ3ICBqYnBuCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgICAtIG1pbm9yIHVwZGF0ZXMKICAgCjIwMDItMDMtMDcgMDU6MzkgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjAwICBqYnBuCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgICAgLSBtYWtlIHByb3RvdHlwZXMgbWF0Y2ggaGVhZGVyCiAgIAogICAgIC0gbWFrZSBzdHlsZSBjb25zaXN0ZW50IHdpdGggbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMzowNyAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBmaXggdXAgc25wcmludF8gZGVjbGFyYXRpb25zLCBmaXggc21hbGwgdHlwby4gIFBhdGNoIGJ5IEd1eQogICBIYXJyaXMuCiAgIAoyMDAyLTAzLTA3IDAyOjQ0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHNwcmludF9yZWFsbG9jX2J5X3R5cGUsIGFzIG5vdGVkCiAgICAgICBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZQo6CgogICBuZXcgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAzLTA2IDE3OjEzICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGRvY3MKICAgCjIwMDItMDMtMDYgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmg6CgogICBleGFtcGxlcyBtb2R1bGUgd3JhcHBlciB0byBpbmNsdWRlIGFsbCAobmV3KSBleGFtcGxlcy4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50IGJldHRlci4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIHNlYXJjaCBleGFtcGxlcyBmb3IgZG9jcy4KICAgCjIwMDItMDMtMDYgMTY6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGV4YW1wbGUgTUlCIHRlbXBsYXRlIChhbmQgb25lIG5vZGUpCiAgIAoyMDAyLTAzLTA2IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLU1JQi50eHQ6CgogICBpbnN0YW50aWF0ZSBleGFtcGxlcwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc29tZSBOUyBtaWJzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHNjYWxhcl9pbnQuYywgc2NhbGFyX2ludC5oOgoKICAgRXhhbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBhIFNOTVAgZW5hYmxlZCBpbnQgcmVnaXN0ZXJlZCBhdCBhIHNjYWxhci4KICAgCjIwMDItMDMtMDYgMTY6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIG1hbnkgY2hhbmdlcyBmb3IgaW5zdGFuY2VzLiAgU3BlY2lmaWNpY2FsbHk6CiAgICAgLSBhbGxvdyBmb3Igc3ViaGFuZGxlcnMuCiAgICAgLSBwcm92aWRlIGFuIGludCB3cmFwcGVyLgogICAgIC0gcmV1c2UgbW9yZSBjb2RlLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmM6CgogICBGaXggbWFzdGVyIGFnZW50IGdldGJ1bGsgc3VwcG9ydC4gIHRoaXMgaGFzIHRvIGJlIGluZGVwZW5kZW50bHkgb2YgdGhlCiAgIG5vcm1hbCBidWxrLT5uZXh0IGZpeGVzIGR1ZSB0byBkZWxlZ2F0aW9uLiAgTG9uZyBzdG9yeS4KICAgCjIwMDItMDMtMDYgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBtb3ZlIGJ1bGtfdG9fbmV4dCBmaXhpbmcgZnVuY3Rpb25hbGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlLgogICAKMjAwMi0wMy0wNiAxMDoyNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICAgIC0gc3ByaW5rbGUgbWFnaWMgY29uc3QgZHVzdAogICAKMjAwMi0wMy0wNiAxMDoxOCAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBkb2N1bWVudCBjaGFuZ2VkIEFQSSwgaW5jb3Jwb3JhdGluZyBwYXRjaGVzIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDA5OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMmFnZW50eHNldGZhaWwsIFQxMjJwcm94eXNldGZhaWw6CgogICBmaXggdGVzdHMuCiAgIAoyMDAyLTAzLTA2IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgcmUtZW5hYmxlIHNldHRpbmcgb3B0aW5kIHRvIDEgdGlsbCBEYXZlIHRlbGxzIG1lIHdoZXJlIHRoaXMgYnJlYWtzLgogICAKMjAwMi0wMy0wNiAwOTowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgZml4ZXMgZm9yIG5ldyBjb21tYW5kIGxpbmUgdXNhZ2UuCiAgIAoyMDAyLTAzLTA2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBtb3JlIGltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIChtb3N0bHkpCiAgIAoyMDAyLTAzLTA2IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBhdXRvY29uZgogICAKMjAwMi0wMy0wNiAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuMyksIHNubXB2My5jOgoKICAgRml4IGEgY29uZnVzaW9uIGJldHdlZW4gZGVmQXV0aFR5cGUgYW5kIGRlZlByaXZUeXBlLgogICAKMjAwMi0wMy0wNiAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHByb3RvY29sLmM6CgogICBwcm9wZXIgZml4IGZvciBub3QgcmVxdWlyaW5nIHJlc3BvbnNlcyB0byBDTEVBTlVQIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wNiAwNjowNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gemVybyB0aGUgbmFtZSBvZiBlbGVtZW50cyBvZiB0aGUgYnVsayBjYWNoZQogICAKMjAwMi0wMy0wNiAwNjowNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNhbGxvYygpIG5vdCBtYWxsb2MoKSBpbiBhIGZldyBwbGFjZXMgdG8gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMKICAgICAgIHRvIHplcm9lcy4KICAgCjIwMDItMDMtMDYgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwNTo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCByZXF1ZXN0cyBmb3IgT0lEcyBwcmVjZWVkaW5nIHRoZSBzdGFydCBvZiBhIHJlZ2lvbgogICAgICAgKHRoaXMgY2FuIGxlYWQgdG8gbG9vcHMgaWYgZS5nLiBhIHN1YmFnZW50IGhhcyByZWdpc3RlcmVkIHR3bwogICAgICAgYWRqYWNlbnQgcm93cykuCiAgIAoyMDAyLTAzLTA2IDA1OjA3ICBqYnBuCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAgIC0gaWdub3JlIGVycm9ycyBkb2luZyBybSAtcmYgL3RtcC9zbm1wLXRlc3QqIHdoZW4gbWFraW5nIHRlc3RjbGVhbgogICAKMjAwMi0wMy0wNiAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHVzZSBtb3JlIGVmZmljaWVudCBnZXRfdHJlZSgpIGluIHNwcmludF9yZWFsbG9jX3ZhbHVlKCkKICAgCjIwMDItMDMtMDUgMTg6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE1c25tcHYyY2dldG5leHQsIFQwMDFzbm1wdjFnZXQsCiAgIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQxMDBhZ2VudGh1cDoKCiAgIGZpeGVzIGZvciBuZXcgZm9yY2VkIC1jIGZsYWdzCiAgIAoyMDAyLTAzLTA1IDE4OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgYXBwcm9wcmlhdGUgY29tbWVudC4KICAgCjIwMDItMDMtMDUgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IGR1cGxpY2F0ZSBmcmVlIGJ5IGNsb25pbmcgdGhlIHBkdSBiZWZvcmUgc2VuZGluZyBpdCBvdXQgYWdhaW4KICAgKHRob3VnaHQgSSBoYWQgZG9uZSB0aGlzIG9uY2UgaW4gdGhlIHBhc3QgYWxyZWFkeSwgYnV0IEkgZ290IDEvMiBmdW5jdGlvbnMpLgogICAKMjAwMi0wMy0wNSAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUZW1wb3JhcnkgZml4IHRvIGZpeCBmb3IgYWdlbnR4IFNFVCByZXF1ZXN0cy4gIFRoaXMgcmV2ZXJzZXMgYQogICBwcmV2aW91cyBKb2huIGNoYW5nZSB3aGVyZSByZXNwb25zZXMgdG8gY2xlYW51cHMgYXJlIG5vdyBleHBlY3RlZAogICBhZ2Fpbi4gIFRoaXMgdG9vayBtZSBhIGdvb2QgMiBkYXlzIHRvIHRyYWNrIGRvd24sIHNpZ2guLi4KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gYWRkIChhc2NpaSkgYWdlbnR4IHN0YXRlIGRpYWdyYW0KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gbXVsdGlwbGUgZnJlZSBidWcgZml4ZXMuCiAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAzLTA1IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jLCBtYXN0ZXJfcmVxdWVzdC5oCjoKCiAgIHJlbW92ZWQgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTAzLTA1IDEwOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIGZpeCBiYWQgY3V0IGFuZCBwYXN0ZQogICAKMjAwMi0wMy0wNSAxMDoyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZWludHJvZHVjZSBzY29wZSBwcm9jZXNzaW5nIChzZWUgUkZDIDI3NDEsIHAuIDY2LCBzZWN0aW9uIDcuMi4zLjIKICAgICAgIHBhcmFncmFwaCAyKTogIklmIHRoZSBzdWJhZ2VudCBjYW4ndCBsb2NhdGUgYW4gYXBwcm9wcmlhdGUKICAgICAgIHZhcmlhYmxlLCBfX3YubmFtZV9pc19zZXRfdG9fdGhlX3N0YXJ0aW5nX09JRF9fIFt0aGUgaW1wb3J0YW50CiAgICAgICBiaXRdIGFuZCB0aGUgVmFyQmluZCBpcyBzZXQgdG8gYGVuZE9mTWliVmlldyciCiAgIAoyMDAyLTAzLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgc25tcF9hZ2VudC5jLAogICBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBuZXcgREVCVUdNU0dWQVIgbWFjcm8gaW4gYSBmZXcgcGxhY2VzCiAgIAoyMDAyLTAzLTA1IDA4OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR01TR1ZBUiBtYWNybyB0byBwcmludCBvdXQgYSB2YXJpYWJsZQogICAKMjAwMi0wMy0wNSAwODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIHByaW50X3ZhbHVlIGZ1bmN0aW9uIHVwZGF0ZXMuCiAgIAoyMDAyLTAzLTA1IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHVjZERlbW9QdWJsaWMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICB1Y2REZW1vUHVibGljLmM6CgogICBBZGQgbWlzc2luZyAic3RhbmRhcmQiIGhlYWRlcnMsIGFuZCB0d2VhayBhIHR5cGUgc2xpZ2h0bHkuCiAgIChCYXNlZCBvbiByZXF1ZXN0cyBmcm9tIEdyZWdvcnkgVG90aCkuCiAgIAoyMDAyLTAzLTA1IDA4OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBncnJyLCBib3RjaGVkIGxhc3QgZml4CiAgIAoyMDAyLTAzLTA1IDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBjYWxsYmFjayBzZXNzaW9uIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBnZW5lcmljIC0xCiAgIHZlcnNpb24gYWxsb3dpbmcgdGhlIHBkdSB0byBwYXNzZWQgd2l0aG91dCB2ZXJzaW9uIGNoZWNraW5nLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbW92ZSBOVUxMIGNoZWNrIHRvICpiZWZvcmUqIHlvdSBhY3R1YWxseSB1c2UgdGhlIHBvaW50ZXIuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBtYXJrIElOQ0xVU0lWRSByZXF1ZXN0cyBhcyBzdWNoCiAgIAoyMDAyLTAzLTA1IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gdXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHdoaWxlIGxvb3AsIGp1c3QgYSBwcmVjYXV0aW9uIGZvciBmdXR1cmUgcHJvYmxlbXMuCiAgIAoyMDAyLTAzLTA1IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2NoZWNrX3BhcnNlKSBhbGxvdyBpbnRlcm5hbCBzZXQgdHJhbnNhY3Rpb25zIHRvIGJlIHBhc3NlZCB0bwogICAgIHRoZSBhZ2VudCwgc2luY2UgYWdlbnR4IHNlbmRzIHRoZW0uCiAgIAoyMDAyLTAzLTA1IDA3OjIxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZG9uJ3QgYWRkIHRoZSAibW9kdWxlIElEIiB0byBPSURzIGlmIGl0IGlzIG51bWVyaWMgYmVjYXVzZSB3ZQogICAgICAgY291bGRuJ3QgbG9vayBpdCB1cCBwcm9wZXJseSAodG8gYXZvaWQgaG9ycmlibGUgbG9va2luZyBvdXRwdXQKICAgICAgIGxpa2UgdGhpczogIk9JRDogIy0xOjppc28uMi4zLjQuNS4iKQogICAKMjAwMi0wMy0wNSAwNzowNSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byAyYyBpbiBlcnJvciBtZXNzYWdlIGZyb20gdmVyc2lvbiBwcm9tcHQKICAgCjIwMDItMDMtMDUgMDc6MDEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgdGVzdHMKICAgCjIwMDItMDMtMDUgMDY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSByZS1lbXBoYXNpcyBhIHN1Z2dlc3Rpb24gdG8gc3dpdGNoIHRvIGEgc2VjdXJlIHZlcnNpb24gb2YgdGhlIHByb3RvY29sLgogICAtIGRlbGV0ZSBub3Rpb24gdGhhdCB2MyB3aXRob3V0IGF1dGgvcHJpdiBwcm92aWRlcyBiZXR0ZXIgc2VjdXJpdHkgKGl0IGRvZXNuJ3QpLgogICAtIERvbid0IGFjY2VwdCB2MmMgYXMgYW4gYWNjZXB0ZWQgdmFsdWUsIGFzIGl0J3MgdXNlZCBhcyBhbiBpbnQuCiAgICAgLSBidXQgZG8gY2hhbmdlIGhlbHAgbWVzc2FnZXMsIGV0YywgdG8gcmVmbGVjdCB0aGF0IDIgPSB2MmMuCiAgIAoyMDAyLTAzLTA1IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ2FzdCBhIGNhbGxvYyBhcHByb3ByaWF0ZWx5IChyZXF1ZXN0ZWQgYnkgR3JlZ29yeSBUb3RoKQogICAKMjAwMi0wMy0wNSAwNjoyMCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvIGluIE9CSlMgZGVmaW5pdGlvbgogICAKMjAwMi0wMy0wNSAwNjoxOCAgamJwbgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgICAgLSBjbGVhbiB0YXJnZXQgZGVwZW5kcyBvbiAkKE9CSlMpIGFuZCAkKExPQkpTKSwgc28gZGVmaW5lIHRoZW0KICAgCjIwMDItMDMtMDUgMDM6NTIgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBkZWZhdWx0IHZlcnNpb24gdGVzdHMgKHNwbGl0dGluZyB0aGVtIG92ZXIgc2V2ZXJhbCBsaW5lcwogICAgICAgY29uZnVzZXMgc2ggb24gU29sYXJpcywgYXQgbGVhc3QpLgogICAKICAgICAtIGRpc2FtYmlndWF0ZSBzb21lIGluc3RhbmNlcyBvZiAidmVyc2lvbiIgaW4gZGVmYXVsdCB2ZXJzaW9uCiAgICAgICBwcm9tcHQgdGV4dC4KICAgCjIwMDItMDMtMDUgMDI6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29ycmVjdGx5IGRldGVjdCB3aGVuIG5vIGluaXRpYWwgZGVmYXVsdCB2ZXJzaW9uIGhhcyBiZWVuIHNldC4KICAgQWNjZXB0ICcyYycgYXMgd2VsbCBhcyAnMicgZm9yIGEgZGVmYXVsdCB2ZXJzaW9uIGNob2ljZS4KICAgRml4IHRoZSB0aXRsZSBmb3IgdGhpcyBwcm9tcHQsIGFuZCByZXdvcmQgdGhlIGRlc2NyaXB0aW9uIHRvCiAgIG1ha2UgaXQgYSAqc2xpZ2h0bHkqIGxlc3MgbGVhZGluZyBxdWVzdGlvbiwgbSdsdWQuCiAgIAogICBRbjogU2hvdWxkIHdlIHN1cHBvcnQgYSAibm8gZGVmYXVsdCB2ZXJzaW9uIiBvcHRpb24gPwogICAgIChoZW5jZSBhbGxvdyB0aGUgYWRtaW4gdG8gZm9yY2UgdGhlIGRlY2lzaW9uIGRvd24gdG8gdGhlIHVzZXIpCiAgIAoyMDAyLTAzLTA0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2UKICAgCjIwMDItMDMtMDQgMTg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIChUbyBKb2huKTogZG8gbm90IGZyZWUgdGhlIG15dm9pZCBwb2ludGVyIGluIGEgaGFuZGxlci4gIFlvdSBjYW4gbm90CiAgIGFzc3VtZSB0aGF0IGl0J3MgYSBmcmVlYWJsZSByZXNvdXJjZS4gIEZvciBpbnN0YW5jZSwgdGhlIGFnZW50eCBtYXN0ZXIKICAgYWdlbnQgd2FzIHVzaW5nIGl0IHRvIHN0b3JlIHRoZSBtYXN0ZXIgc2Vzc2lvbiBwb2ludGVyIGluIGl0ICh3aGljaAogICB3b3VsZCBleGlzdCBpbiBtdWx0aXBsZSByZWdpc3RlcmVkIG5vZGVzKS4KICAgCjIwMDItMDMtMDQgMTc6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB1c2UgYSBjb25maWd1cmUgZ2VuZXJhdGVkIHdyYXBwZXIgaGVhZGVyIGZvciB2MyBzZWN1cml0eSBtb2R1bGVzLgogICAKMjAwMi0wMy0wNCAxMTo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGRtYWxsb2MuaCB0byB0aGUgcHJvcGVyIHBsYWNlLgogICAKMjAwMi0wMy0wNCAxMTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3RyaW5nIGNsZWFuIHVwcy4KICAgCjIwMDItMDMtMDQgMTE6NTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgSW1wbGVtZW50IGEgZGVmYXVsdCB2ZXJzaW9uIHByb21wdCBmb3IgY29uZmlndXJlLgogICAgLSAoV2VzIGR1Y2tzIGFzIHRoaXMgaXMgY3VycmVudGx5IHNldCB0byAnMycgd2hpY2ggaGUgbWF5IGhhdmUgdG8KICAgICAgIGNoYW5nZSBhcyBpdCBoYXNuJ3QgZXhhY3RseSBiZWVuIGFncmVlZCB1cG9uIGFzIHRoZSBwcm9wZXIgZGVmYXVsdCB5ZXQpLgogICAgLSAtLXdpdGgtZGVmYXVsdC1zbm1wLXZlcnNpb24gYWxzbyBjcmVhdGVkLgogICAgLSBjaGFuZ2VkIGhhbmRsaW5nIG9mIGRlZmF1bHQgc3RvcmUgLyBzbm1wLmNvbmYgdXNhZ2UgYnV0IGltcGFjdAogICAgICBzaG91bGQgYmUgbG93LCBob3BlZnVsbHkuCiAgIAoyMDAyLTAzLTA0IDExOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhIGZldyBlcnJvciBzdHJpbmdzIHNsaWdodGx5IGltcHJvdmVkLiAgV2UgcmVhbGx5IG5lZWQgdG8gY2hhbmdlIHRoZQogICB3YXkgdGhlc2UgYXJlIGhhbmRsZWQgdG8gZ2V0IGJldHRlciBpbXByb3ZlbWVudC4KICAgCjIwMDItMDMtMDQgMDc6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIGNsZWFuaW5nIG9mIC90bXAgZnJvbSB0aGUgbWFpbiBjbGVhbmluZyB0byBwcm92aWRlIGl0CiAgIGFzIGEgc3BlY2lhbCB0YXJnZXQuCiAgIAoyMDAyLTAzLTA0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC1XYWxsIGZpeGVzLgogICAKMjAwMi0wMy0wNCAwNTozMiAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLAogICBzbm1wZ2V0LjEuZGVmLCBzbm1wZ2V0bmV4dC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZgosIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhcC4xLmRlZjoKCiAgICAgLSByZW1vdmUgZnVydGhlciBpbnN0YW5jZXMgb2YgcG9zaXRpb25hbCBjb21tdW5pdHkgc3RyaW5nIHBhcmFtZXRlciwKICAgICAgIGFmdGVyIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDA1OjI1ICBqYnBuCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXB3YWxrLjEuZGVmOgoKICAgICAtIHBhdGNoZXMgZnJvbSBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjYpLCBtZW1vcnkuYwo6CgogICBDb3JyZWN0IGRlYnVnIG91dHB1dCBtZXNzYWdlICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAzLTAxIDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIG1ha2luZyB0aGUgKHNhbWUpIGRlYnVnZ2luZyBzdGF0ZW1lbnQgbW9yZSB1c2VmdWwuCiAgIAoyMDAyLTAzLTAxIDIyOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgdG8gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgogICAKMjAwMi0wMy0wMSAxMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIG1pYi5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGEgZmV3IGJldHRlciBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDEgMTI6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBkb24ndCBpbnN0YWxsIGhlYWRlcnMgaGVyZS4KICAgCjIwMDItMDMtMDEgMDU6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGFkZCBzbnByaW50X3ZhbHVlLCBzbnByaW50X3ZhcmlhYmxlLCBzbnByaW50X29iamlkCiAgIAoyMDAyLTAyLTI4IDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgQWRkIGJhY2sgdGhlICdzbm1wQ2FsbGJhY2snIGRvbWFpbiB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNyAxMDowNCAgamJwbgoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYwosIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jCiwgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYwosIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzLCBtYWtlIHRoZW0gbW9yZSBjb25zaXN0ZW50IGFuZCBicmluZyBpbiBsaW5lCiAgICAgICB3aXRoIG1hbnVhbCBwYWdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBtYW4vOiBzbm1wc2V0LjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsIHNubXB0cmFwLjEuZGVmCiwgc25tcHVzbS4xLmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGNoYW5nZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzIHRvIGJlIG1vcmUgY29uc2lzdGVudCBhbmQgaW4gbGluZSB3aXRoIG1hbnVhbAogICAgICAgcGFnZXMKICAgCjIwMDItMDItMjcgMDk6NDcgIGR0czEyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbS5jOgoKICAgSGFuZGxlIHZpZXdzIHRoYXQgc3BlY2lmeSBhIGZ1bGwgaW5zdGFuY2UgT0lELgogICAoU2luY2UgdGhlIGludGVybmFsbHkgc3RvcmVkIE9JRCBwcmVwZW5kcyB0aGUgbGVuZ3RoIGFzIHdlbGwsCiAgICB0aGUgYXBwYXJlbnQgbGVuZ3RoIGlzIG9uZSBncmVhdGVyIHRoYW4gaXQgcmVhbGx5IGlzKQogICAKMjAwMi0wMi0yNyAwNjo1MCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIFtBRERSRVNTRVNdIC0+IFtMSVNURU5JTkcgQUREUkVTU0VTXSBpbiB1c2FnZSBtZXNzYWdlLCB0byBtYXRjaAogICAgICAgbWFudWFsIHBhZ2UuCiAgIAoyMDAyLTAyLTI3IDA2OjA5ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRyb3Agb3B0aW9uYWwgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGZyb20gdHJhcHNlc3MKICAgICAgIGRlc2NyaXB0aW9uLgogICAKMjAwMi0wMi0yNyAwNTo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICAgIC0gZHJvcCBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBubyBzbnByaW50X2JsYWggeWV0CiAgIAoyMDAyLTAyLTI3IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jOgoKICAgVXNlIHRoZSBtb3JlIGluZm9ybWF0aXZlICdvdXRwdXRfYXBpLmgnIGhlYWRlciBmaWxlIG5hbWUKICAgICAoSSBtdXN0IGhhdmUgbWlzc2VkIHRoZXNlIGVhcmxpZXIpCiAgIAoyMDAyLTAyLTI3IDA1OjM1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0geWVzLCBmb3Igb25jZSB0aGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiB1cGRhdGVkICpiZWZvcmUqIHRoZQogICBjb2RlIQogICAKMjAwMi0wMi0yNyAwNToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNToxMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgsCiAgIHN5c3RlbS5oOgoKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjEwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1BMIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA0OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMKLCBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwMjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNyAwMjowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZSwgbm8sIEkgTUVBTiBpdCB0aGlzIHRpbWUKICAgCjIwMDItMDItMjcgMDI6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjYgMTI6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjbGVhciBuZXcgbWVtb3J5IGFmdGVyIHJlYWxsb2MoKSBzaW5jZSByZWFsbG9jIGRvZXNuJ3QgZG8gaXQuCiAgIAoyMDAyLTAyLTI2IDEyOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBVTlNJR05FRDMyCiAgIAoyMDAyLTAyLTI2IDA4OjU1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgIG1pYklJL2F0LmMsIG1pYklJL2ljbXAuYywgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pcC5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIGNoYW5nZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhZnRlciBzb21lIGludGVyZXN0aW5nIHByb2ZpbGluZyAoc2VlCiAgICAgICBsZW5ndGh5IG5ldyBjb21tZW50IGluIGtlcm5lbF9zdW5vczUuYykKICAgCjIwMDItMDItMjYgMDg6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIHNubXBsaWIvc25tcC10Yy5jLAogICBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIFJlbW92ZSBhc3NvcnRlZCBleHRyYW5lb3VzIF5NJ3MKICAgCjIwMDItMDItMjYgMDc6MTQgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEEgcXVpY2sgZ3VpZGUgdG8gaW5zdGFsbGluZyB0aGUgQ29yZSBQbGF0Zm9ybSBTREssIG5lZWRlZCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI2IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQXNzb3J0ZWQgbWlub3IgdHdlYWtzIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICBNb3N0bHkgYmVjYXVzZSBWQysrIGlzIGZ1c3N5IGFib3V0IHNvcnQtb2YtY29tcGF0aWJsZSBkYXRhIHR5cGVzCiAgICAgKGUuZy4gc2lnbmVkIHZzIHVuc2lnbmVkIGludGVnZXJzKS4KICAgCjIwMDItMDItMjYgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oLCB3aW4zMi5kc3csIHdpbjMyLm9wdAosIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICBzbm1wZC9zbm1wZC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgUmVuYW1lICdsaWJ1Y2RtaWJzJyB0byByZWZsZWN0IHRoZSBjaGFuZ2Ugb2YgcHJvamVjdCBuYW1lLAogICBhbmQgYXNzb3J0ZWQgdHdlYWtzIHNvIHRoYXQgdGhlIGZ1bGwgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgICAoTi5COiBUaGUgYWdlbnQgcmVxdWlyZXMgIk1pY3Jvc29mdCBQbGF0Zm9ybSBDb3JlIFNESyIgaW4gb3JkZXIKICAgICAgIHRvIGJ1aWxkIHRoZSAnbmV0c25tcG1pYnMnIHByb2plY3QpCiAgIAoyMDAyLTAyLTI2IDA2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB2YXJpYWJsZSBpbiBhIHdhcm5pbmcKICAgCjIwMDItMDItMjYgMDY6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wMi0yNSAyMTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1vcmUgaW5zdGFsbCBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI1IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpbnN0YWxsaW5nIERCRDo6RmlsZS4KICAgCjIwMDItMDItMjUgMjA6MzggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBvbmUgdG9vIG1hbnkgJzAncyBpbiBhIHVybC4KICAgCjIwMDItMDItMjUgMjA6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICByZXdvcmQuCiAgIAoyMDAyLTAyLTI1IDIwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgbW92ZSB3YXJuaW5nIG91dHNpZGUgc2Vjb25kYXJ5IHdhcm5pbmcgYXVnbWVudGF0aW9uIGxvb3AuCiAgIAoyMDAyLTAyLTI1IDIwOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDItMjUgMTY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgZmluZF90YWJsZV9hcnJheV9oYW5kbGVyKCk7IHJlbW92ZSBkZWJ1Z2dpbmcgY29kZS9jb21tZW50czsKICAgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGhhbmRsZXIgYmVmb3JlIHVzaW5nIHRoZSB2b2lkIHBvaW50ZXI7CiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAyLTI1IDExOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgKOgoKICAgMiBuZXcgZnVuY3Rpb25zLgogICAKMjAwMi0wMi0yNSAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzZXQgc2VjdXJpdHkgbW9kZWwKICAgCjIwMDItMDItMjUgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsIHdpbjMyL3dpbjMyLmRzdzoKCiAgIENvbnRpbnVpbmcgaW1wcm92ZW1lbnRzIHRvIGNvbXBpbGF0aW9uIG9mIHRoZSBsYXRlc3QgY29kZSB1bmRlciBWaXN1YWwgQysrLgogICBUaGUgJ2xpYmhlbHBlcnMnIHByb2plY3Qgbm93IGNvbXBpbGVzLCBhbmQgdGhpcyBhbHNvIGFkZHJlc3NlcyBhIG51bWJlcgogICBvZiB3YXJuaW5ncyBhbmQgZXJyb3JzIGluIHRoZSBsaWJhZ2VudCBhbmQgbGlidWNkbWlicyBwcm9qZWN0cy4KICAgICBCdXQgdGhlc2UgdHdvIHN0aWxsIGZhaWwgb24gJ09JRF9MRU5HVEgnIGFuZCAnaXBobHBhcGkuaCcKICAgCjIwMDItMDItMjUgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQcm92aWRlIGEgcGxhdXNpYmxlIG1vZHVsZSBjb25maWd1cmF0aW9uIGxpc3QgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNSAwNjowNCAgamJwbgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICAgIC0gcmVzb2x2ZSBjb25mbGljdGluZyBTWU5UQVhlcyBmb3IgbnNUcmFuc2FjdGlvbk1vZGUKICAgCiAgICAgLSBhZGQgcmFuZ2UgZm9yIGluZGV4IG5zVHJhbnNhY3Rpb25JRAogICAKMjAwMi0wMi0yNSAwMzoyMyAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgRW5zdXJlIHRoZSBtYWluIGxpYnJhcnkgY29tcGlsZXMgYW5kIHdvcmtzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjE5ICBkdHMxMgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5oLCBzbm1wdHJhcGQuYzoKCiAgIEVuc3VyZSBzbm1wdHJhcGQgY29tcGlsZXMgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MDkgIGR0czEyCgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYywgb2lkX3N0YXNoLmMsIHNubXAtdGMuYywKICAgdWNkX2NvbXBhdC5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGtlZXAgVmlzdWFsIEMrKyBoYXBweS4KICAgCjIwMDItMDItMjUgMDI6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgV3JhcCB3aXRoICJleHRlcm4gQyIKICAgCjIwMDItMDItMjUgMDI6NTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg6CgogICBQYW5kZXIgdG8gQ1BQJ3MgaW5jcmVkaWJseSBmdXNzeSBuYXR1cmUsIGFuZCBwcm92aWRlIHRoZSBjb3JyZWN0IGhlYWRlciBmaWxlIG5hbWUuCiAgIAoyMDAyLTAyLTI1IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgQGZvcmVhY2ggJHZhcjEgJHZhcjIgZW51bXNACiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICByZW1vdmUgdHJhaWxpbmcgOydzIGZyb20gc3FsIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAyLTIyIDEwOjU1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgZGVmaW5lIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsCiAgIAoyMDAyLTAyLTIyIDEwOjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHV0aWxpdGllcy4KICAgCjIwMDItMDItMjIgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gZG9uJ3QgbG9vcCBhZ2FpbiBmb3Igc2Vjb25kYXJ5IFNFVCBtb2RlcyBhbmQgY2FjaGUgaW5mb3JtYXRpb24gaW5zdGVhZC4KICAgLSB2YXJpb3VzIGZpeGVzLgogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsIGRpcmVjdG9yaWVzIGZvciBoZWFkZXJzCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jb21waWxlLXN1YmFnZW50IGZvciBhdXRvbWF0dGVkIHN1YmFnZW50IGNvbXBpbGF0aW9uIGZyb20KICAgbWlibW9kdWxlIC5jIGZpbGVzIDstKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAoVjQtMi1wYXRjaGVzLlsxLDFdKSwKICAgTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwODo0MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBUd2Vha3MgcmVxdWlyZWQgdG8gZ2V0IHRoZSBsaWJyYXJ5IGNvbXBpbGluZyB1bmRlciBXaW5kb3dzIFZDKysKICAgCjIwMDItMDItMjIgMDg6MzcgIGR0czEyCgogICAqIHdpbjMyLzogc25tcHNtX2luaXQuaCwKICAgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIGxpYmFnZW50L2xpYmFnZW50LmRzcCwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwCiwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUHJvdmlkZSBXaW5kb3dzLXNwZWNpZmljIHZlcnNpb25zIG9mIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGhlYWRlciBmaWxlcywKICAgYW5kIGFkZCB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlIHRvIHRoZSBwcm9qZWN0IGZpbGVzLgogICAKMjAwMi0wMi0yMiAwNzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBEZWZpbmUgc3RhbmRhcmQgT0lEIGxlbmd0aHMgaGVyZSAod2hlcmUgdGhleSdyZSBhdmFpbGFibGUgdG8gYW55CiAgIGZpbGUgd2FudGluZyB0byBhY2Nlc3MgdGhlIE9JRCBzdHJ1Y3R1cmVzKQogICAKMjAwMi0wMi0yMiAwMzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi4uLi4gLTN1IHtzZWNOYW1lfSAuLi4uIiBzeW50YXgKICAgKGluIHRoZSBub3JtYWwgZ2V0b3B0IHN0eWxlIC0gaS5lLiBubyBuZWVkIGZvciBzdXJyb3VuZGluZyBxdW90ZXMpCiAgIAogICBJdCBzaG91bGQgbm93IGJlIHBvc3NpYmxlIHRvIHN3aXRjaCB0byB0aGlzIGFzIHRoZSByZWNvbW1lbmRlZCBmb3JtCiAgIGZvciBTTk1QdjMgb3B0aW9ucyAtIGlmIHRoYXQncyB3aGF0IHdlIHdhbnQgdG8gZG8uCiAgICAgUW46ICBEbyB3ZSB3YW50IHRvPwogICAKMjAwMi0wMi0yMSAwODozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi0zdSB7c2VjTmFtZX0iIHN5bnRheCAoKndpdGgqIHRoZSBxdW90ZXMsIHVuZm9ydHVuYXRlbHkpLgogICBOb3cgY29tZXMgdGhlIGZ1biBiaXQuLi4uLgogICAKMjAwMi0wMi0yMSAwNzo1NCAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwNzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBkcm9wIGlubGluZSAobW9yZSB0cm91YmxlIHRoYW4gaXQgaXMgd29ydGgpCiAgIAoyMDAyLTAyLTIxIDA1OjAwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhbiBTTk1QdjMgImNvbWJpbmVkLW9wdGlvbiIgY29tbWFuZC1saW5lIGZsYWcgKC0zeCkuCiAgIChJbiAqYWRkaXRpb24qIHRvIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSBmbGFncywgSSBoYXN0ZW4gdG8gYWRkISkKICAgCiAgIFN1cHBvcnRzICAiLi4uIC0zdXtzZWNOYW1lfSAuLi4iIGFuZCAiLi4uIC0zdT17c2VjTmFtZX0gLi4uIiBzeW50YXgsCiAgIGJ1dCBub3QgdGhlIHNlcGFyYXRlICIuLi4gLTN1IHtzZWNOYW1lfSAuLi4iIHN0eWxlLgogICAKICAgSSBoYXZlbid0IHRvdWNoZWQgdGhlIGRvY3VtZW50YXRpb24gb3IgdXNhZ2UgbWVzc2FnZSB0byBtZW50aW9uIHRoaXMuCiAgIAoyMDAyLTAyLTIwIDE4OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICB1c2UgZm9yIGluc3RlYWQgb2YgY29udGludWUgZm9yIGxvb3BzLgogICAKMjAwMi0wMi0yMCAxMzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgLSBBZGQgYSAtLXF1aXQgb3B0aW9uIChhbmQgYSBjb25maWd1cmF0aW9uIHRva2VuKSBzbyB0aGF0IHlvdSBjYW4gbm93CiAgICAgY3JlYXRlIG5ldyB1c2VycyBieSBzaW1wbHkgY2FsbGluZyBzbm1wZCBhczoKICAgICAgIHNubXBkIC0tY3JlYXRlVXNlcj0ibXl1c2VyIE1ENSBteXBhc3N3b3JkIiAtLXF1aXQKICAgLSBDaGFuZ2UgUkVBRE1FLnNubXB2MyBkb2N1bWVudGF0aW9uIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KICAgCjIwMDItMDItMjAgMDY6MTYgIGpicG4KCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCB0byBzbm1wdHJhcGQgKHVudGVzdGVkKQogICAKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8gc25tcGQgbGlid3JhcCBzdXBwb3J0CiAgIAogICAgIC0gY29uZmlndXJlIGZpeGVzIGZvciBsaWJ3cmFwCiAgIAoyMDAyLTAyLTIwIDAzOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMjAgMDM6MDYgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMjAgMDM6MDMgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDbGVhbiB1cCB0aGUgb2JqZWN0IGZpbGVzIGFzIHdlbGwKICAgCjIwMDItMDItMjAgMDE6NDEgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIHRoZSBuZXcgY3JvcCBvZiBnZW5lcmF0ZWQgbWFuIHBhZ2VzLgogICAKMjAwMi0wMi0yMCAwMTozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgU3VwcGx5IG1pc3NpbmcgZG91YmxlLXF1b3RlICAob29wcykKICAgCjIwMDItMDItMTkgMDQ6MDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgSW5pdGlhbGlzZSB0aGUgbGlicmFyeSBpbnRlcm5hbHMgKmJlZm9yZSogcGFyc2luZyB0aGUgY29tbWFuZCBsaW5lLAogICBzbyB0aGF0IGRlZmF1bHRzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIFFuOiAgU2hvdWxkICdfaW5pdF9zbm1wJyBiZSBpbnZva2VkIGJ5ICdzbm1wX3BhcnNlX2FyZ3MnIGl0c2VsZj8KICAgCjIwMDItMDItMTkgMDM6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIHN1cmUgdGhhdCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0IGZsYWdzIHdvcmsgaW4gYSBjb25zaXN0ZW50IG1hbm5lci4KICAgKGkuZS4gdGhlIGxhc3Qgb25lIGlzIHVzZWQsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW50ZXJuYWwgb3JkZXJpbmcpLgogICAKMjAwMi0wMi0xOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jLCB0ZXN0aGFuZGxlci5jOgoKICAgaW5jbHVkZSBzdGRsaWIuaAogICAKMjAwMi0wMi0xOCAyMTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggaW5jbHVkZXMKICAgCjIwMDItMDItMTggMjE6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgLSBtYWtlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIGRhdGEgY29udGV4dHMgZnJvbSBhIGxvb3AgY29udGV4dCAobGVzcwogICAgIG1hbGxvY3Mgd2hlbiBtYWxsb2NzIGFyZW4ndCBvdGhlcndpc2UgYXZvaWRhYmxlKS4KICAgLSBkb24ndCBkb3VibGUgZnJlZSB0aGUgZGF0YSBjb250ZXh0IHBvaW50ZXIuCiAgIAoyMDAyLTAyLTE4IDIxOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIGFsbCBhZ2VudCBoZWxwZXJzLgogICAKMjAwMi0wMi0xOCAyMTo0OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oOgoKICAgcHJvdGVjdCBpbmNsdWRlIGZyb20gZG91YmxlIGluY2x1ZGUKICAgCjIwMDItMDItMTggMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIGZpeCBpbmNsdWRlIHBhdGhzCiAgIAoyMDAyLTAyLTE4IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR3ZWFrIHRoZSBsaXN0IG9mIGhlYWRlciBmaWxlcyB0byBiZSBpbnN0YWxsZWQgKHRoYW5rcyB0byBDaHJpc3RvcGggTWFtbWl0enNjaCkKICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgKFY0LTItcGF0Y2hlcy43KSwgaHJfc3RvcmFnZS5jCjoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTYgMjM6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBORVQtU05NUC1NSUIudHh0LCBORVQtU05NUC1NT05JVE9SLU1JQi50eHQsCiAgIE5FVC1TTk1QLVNZU1RFTS1NSUIudHh0LCBORVQtU05NUC1UQy50eHQ6CgogICB3aGl0ZSBzcGFjZSBjbGVhbiB1cC4gIChBR0VOVC1NSUIgbm90IGNoZWNrZWQgaW4gZHVlIHRvIG90aGVyCiAgIGluY29tcGxldGUgY2hhbmdlcykuCiAgIAoyMDAyLTAyLTE2IDAwOjE3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gZmluaXNoIGltcGxlbWVudGluZyBzbm1wX2NvbmZpZygibXkgY29uZmlnIGxpbmUiKQogICAgIC0gd2FzIGRvbmUgYmVmb3JlLCBidXQgcHJldmlvdXNseSBoYWQgdG8gYmUgY2FsbGVkIG9ubHkgYWZ0ZXIKICAgICAgIGNvbmZpZ3VyYXRpb24gZmlsZXMgaGFkIGJlZW4gcmVhZC4gIE5vdyBjYW4gYmUgY2FsbGVkIGF0IGFueSB0aW1lLgogICAtIG1ha2UgYWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhdmFpbGFibGUgYXMgLS1sb25nb3B0cyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICAtIC0tc29tZXRoaW5nPXZhbHVlIC0+ICJzb21ldGhpbmcgdmFsdWUiCiAgICAgLSAtLXNvbWV0aGluZyAgICAgICAtPiAic29tZXRoaW5nIDEiICh3b3JrcyBmb3Igc2V0dGluZyBib29sZWFucyB0byB0cnVlKQogICAKMjAwMi0wMi0xNiAwMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHJwbSBmb3IgNC4wLjMgYW5kIGFib3ZlIChvciB3aGVuZXZlciBpdCB3YXMgdGhhdCB3ZSBub3cgbmVlZCBsaWJycG1kYikKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgaW5zdGFsbC9jbGVhbi9ldGMuCiAgIAoyMDAyLTAyLTE1IDIyOjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBpbnN0YWxsIGFsbCBzeXN0ZW0gYW5kIG1hY2hpbmUgZmlsZXMsIHNpbmNlIHRoZXkgaW5jbHVkZSBlYWNoIG90aGVyCiAgIAoyMDAyLTAyLTE1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLU1JQi50eHQsCiAgIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0LCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0CiwgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBTa2VsZXRvbiBmcmFtZXdvcmsgZm9yIHRoZSBOZXQtU05NUCBlbnRlcnByaXNlIHRyZWUuCiAgIChpbmNvcnBvcmF0aW5nIHRoZSBpbml0aWFsICduc1RyYW5zYWN0aW9uVGFibGUnLCBidXQgbm90aGluZyBlbHNlIGFzIHlldCkKICAgCjIwMDItMDItMTUgMDk6MTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgY29tbWFuZC1saW5lIG9wdGlvbnMuCiAgIAoyMDAyLTAyLTE1IDA3OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwosIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvd2luc2VydmljZS5yYywgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgU3VwcG9ydCBmb3IgcnVubmluZyBhcyBhIFdpbmRvd3Mgc2VydmljZS4KICAgKFN1cHBsaWVkIGJ5IFJhanUgS3Jpc2huYXBwYSAmIExhdGh1IFByYWJodSkKICAgCjIwMDItMDItMTUgMDc6MjUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIFN0b2tlIFdlcycgc2Vuc2Ugb2YgcGFyYW5vaWEgYnkgY29uY2VkaW5nIHdpdGhvdXQgY29tbWVudC4KICAgICAgIChXaGF0IG1pZ2h0IFNoaWVsZCBiZSBwbG90dGluZyBub3cuLi4uLi4pCiAgIAoyMDAyLTAyLTE1IDA3OjE5ICBqYnBuCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgICAtIGZpeCB0aW55IGZvcm1hdHRpbmcgZXJyb3IKICAgCjIwMDItMDItMTUgMDc6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIE5PVElGSUNBVElPTi1MT0ctTUlCIChzaW5jZSBpdCdzIG9uZSBvZiB0aGUgZGVmYXVsdCBsb2FkIGxpc3QhKQogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLnJjOgoKICAgZmlsZSB3aW5zZXJ2aWNlLnJjIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5oOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBmaWxlIHdpbnNlcnZpY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjA4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBJbmNsdWRlIHRoZSA8c3lzL3RpbWUuaD4gY2FzY2FkZSwgdG8gcGljayB1cCB0aGUgZGVmaW5pdGlvbiBvZiAndGltZXZhbCcKICAgCjIwMDItMDItMTUgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gYnJpbmcgdXNhZ2UgbWVzc2FnZSBpbiBsaW5lIHdpdGggbWFucGFnZQogICAKMjAwMi0wMi0xNSAwMzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENhdGNoIHVzZSBvZiB0aGUgdHJhbnNwb3J0IGFuZCBwb3J0IG9wdGlvbnMsIGFuZCBpc3N1ZSBhbiBhcHByb3ByaWF0ZQogICBlcnJvciBtZXNzYWdlLCBkZXNjcmliaW5nIHVzZSBvZiB0aGUgPGhvc3RuYW1lPiBwYXJhbWV0ZXIgaW5zdGVhZC4KICAgCjIwMDItMDItMTUgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0ICpiZWZvcmUqIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMsCiAgIHJhdGhlciB0aGFuIGFmdGVyLiAgVGhhdCdzIHByb2JhYmx5IGEgYml0IG1vcmUgZmxleGlibGU6LSkKICAgCjIwMDItMDItMTUgMDI6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmgsIGRlZmluaXRpb25zLmgsCiAgIG1pYl9hcGkuaCwgb3V0cHV0X2FwaS5oLCBwZHVfYXBpLmgsIHNlc3Npb25fYXBpLmgKLCBzbm1wdjNfYXBpLmgsIHR5cGVzLmgsIHV0aWxpdGllcy5oLAogICB2YXJiaW5kX2FwaS5oOgoKICAgUmVtb3ZlICduZXQtc25tcC1jb25maWcuaCcgZnJvbSB0aGUgbWFpbiBBUEkgaGVhZGVyIGZpbGVzLgogICBUaGlzIHdpbGwgaGF2ZSB0byBiZSAjaW5jbHVkZWQgc2VwYXJhdGVseSAoZWl0aGVyIGV4cGxpY2l0bHkKICAgb3IgdmlhIHRoZSBhbGwtaW4tb25lICduZXQtc25tcC1pbmNsdWRlcy5oJyBoZWFkZXIpCiAgIAoyMDAyLTAyLTE1IDAyOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgUkVBRE1FIHRvIGRlc2NyaWJlIHRoZSBzdGF0dXMgb2YgPG5ldC1zbm1wL2xpYnJhcnk+IGFuZCA8bmV0LXNubXA+IGhlYWRlciBmaWxlcy4KICAgCjIwMDItMDItMTUgMDI6MTMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHtzeXN0ZW0sbWFjaGluZX0vKi5oIGhlYWRlciBmaWxlcyBhcyB3ZWxsLgogICAKICAgRG9pbmcgdGhpcyB2aWEgdGhlICdtYW4nICYgJ21pYnMnIE1ha2VmaWxlcyBpcyBhIGdyb3NzIGhhY2ssCiAgIGFuZCByZWFsbHkgbmVlZHMgdG8gYmUgaGFuZGxlZCBtb3JlIGNsZWFubHkuICBCdXQgaXQncyB0aGUKICAgYmVzdCBJIGNhbiBjb21lIHVwIHdpdGggYXQgdGhlIG1vbWVudC4gIFNvcnJ5IC0gRGF2ZS4KICAgCjIwMDItMDItMTUgMDE6NTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgVUNELWNvbXBhdGFiaWxpdHkgaGVhZGVycyBhcyB3ZWxsLgogICAKMjAwMi0wMi0xNSAwMTo1NyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBPbmx5IGluc3RhbGwgc3ViZGlyZWN0b3J5IHN0dWZmICpvbmNlKi4gIChEb24ndCBiZSBzbyBlbnRodXNpYXN0aWMsIERhdmUhKQogICAKMjAwMi0wMi0xNSAwMTozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIFJlbW92ZSByZWR1bmRlbnQgJy1DTicgYW5kICctQ08nIG9wdGlvbnMgZnJvbSB0aGUgZXhhbXBsZSBzbm1wdXNtIGNvbW1hbmQuCiAgICAgKGFzIG1lbnRpb25lZCBieSBXZXMgb24gdGhlIHVzZXJzIG1haWxpbmcgbGlzdCAyMDAyLTAyLTEzKQogICAgIFFuOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkb25lIG9uIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoIGFzIHdlbGw/CiAgIAoyMDAyLTAyLTE1IDAxOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgUmVzdG9yZSAndmVyc2lvbi5oJyBhcyBiZWluZyBhICJ0b3AtbGV2ZWwiIGhlYWRlciBmaWxlLgogICAKMjAwMi0wMi0xNSAwMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIGZ1bGwgc2V0IG9mIGxpYnJhcnkgaGVhZGVyIGZpbGVzLAogICByZXRhaW5pbmcgdGhlIHRvcC1sZXZlbCB2cyBsaWJyYXJ5IHN1YmRpcmVjdG9yeSBzcGxpdC4KICAgCjIwMDItMDItMTUgMDE6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTG9vayBmb3IgdHJhbnNwb3J0LXJlbGF0ZWQgaGVhZGVyIGZpbGVzIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgogICAKMjAwMi0wMi0xNSAwMTowOSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBFbnN1cmUgcGFydGlhbCBpbnN0YWxsIHRhcmdldHMgcmVjdXJzZSBwcm9wZXJseS4KICAgCjIwMDItMDItMTQgMDg6MTggIGR0czEyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIExvb2sgZm9yIG1pYl9tb2R1bGVfY29uZmlnLmggaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KICAgCjIwMDItMDItMTQgMDg6MDYgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYW44IGluc3RhbGwgZGVmaW5pdGlvbnMKICAgCjIwMDItMDItMTQgMDc6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBuZXQtc25tcC1jb25maWcuaW46CgogICBTdWJzdGl0dXRlIHZhbHVlcyBpbnRvICduZXQtc25tcC1jb25maWcnIHByb3Blcmx5LCBhbmQgZG9uJ3QgJ21ha2UgY2xlYW4nIGl0IGF3YXkuCiAgIAoyMDAyLTAyLTE0IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMKICAgCjIwMDItMDItMTQgMDc6MTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzoxMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBhZ2VudC9hZ2VudF90cmFwLmMKLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgc3BhY2UgZnJvbSBDUFBGTEFHUwogICAKMjAwMi0wMi0xNCAwNjoyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCwgZGVmaW5pdGlvbnMuaCwKICAgbWliX2FwaS5oLCBuZXQtc25tcC1pbmNsdWRlcy5oLCBvdXRwdXRfYXBpLmgsCiAgIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaCwgc25tcHYzX2FwaS5oLCB0eXBlcy5oCiwgdXRpbGl0aWVzLmgsIHZhcmJpbmRfYXBpLmg6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDY6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oCiwgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmgsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaAosIGluY2x1ZGUvbmV0LXNubXAvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oCiwgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaCwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRQosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaAosIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA0OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgbW92ZXMgdG93YXJkcyB1c2luZyB0aGUgInB1YmxpYyIgQVBJIGhlYWRlciBmaWxlcyBpbiB0aGUgbGlicmFyeQogICBjb2RlIGFzIHdlbGwgKGNvbmNlbnRyYXRpbmcgb24gb3V0cHV0L2NvbmZpZy91dGlsaXR5IGhlYWRlciBmaWxlcykuCiAgIAoyMDAyLTAyLTE0IDAzOjE3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENsb3NlIGEgZGFuZ2xpbmcgImlmIiBibG9jay4gICAob29wcyEpCiAgIAoyMDAyLTAyLTE0IDAxOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYyAoVjQtMi1wYXRjaGVzLjQpLCBpZi5jOgoKICAgQ2hlY2sgZm9yIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2YgSS9GIHRhYmxlIChwYXRjaCBmcm9tIFJlZEhhdCkKICAgCjIwMDItMDItMTQgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBMYXRlc3QgUmVkSGF0IHJwbS1yZWxhdGVkIHBhdGNoCiAgIAoyMDAyLTAyLTE0IDAxOjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkb3B0IFJlZEhhdCdzIGNvbmZpZ3VyZSB0ZXN0aW5nIGZvciBSUE0gbGlicmFyaWVzCiAgIAoyMDAyLTAyLTEzIDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIE1ha2UgSm9obiB0cnVzdCBoaXMgY29kZQogICAKMjAwMi0wMi0xMyAwODozNCAgamJwbgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgICAgLSB0cmFuc3BvcnQgZml4ZXMgKHVudGVzdGVkLCBzdGlsbCAjaWYgMCkKICAgCjIwMDItMDItMTMgMDg6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWFyayBzb21lIEpvaG4tdG8tZG8tc2VjdGlvbnMKICAgCjIwMDItMDItMTMgMDc6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgc25tcGxpYi9taWIuYzoKCiAgIFN3aXRjaCB0byB1c2luZyAtT1Mgc3R5bGUgb3V0cHV0IGJ5IGRlZmF1bHQsIGFuZCBkcm9wIHRoZSByZXF1aXJlbWVudAogICBmb3IgZnVsbCBPSURzIHRvIHN0YXJ0IHdpdGggJy4nLCBwbHVzIGNvbW1hbmQtbGluZSBvcHRpb25zIHRvIHJlc3RvcmUKICAgdGhlIG9yaWdpbmFsIFVDRC1zdHlsZSBiZWhhdmlvdXIuCiAgIAoyMDAyLTAyLTEzIDA3OjM2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQXBwbHkgSm9obidzIGZpeCBmb3IgYnVncyAjNDg5MzM2IGFuZCAjNTA4MTQ2IChkdXBsaWNhdGUgY29sdW1ucyBhbmQKICAgY29sdW1ucyBpbiB3cm9uZyBvcmRlcikgdG8gdGhlIG1haW4gYnJhbmNoIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTEyIDE2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBjb25zdCBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC86IC5jdnNpZ25vcmUsIEFTTi8uY3ZzaWdub3JlLCBhZ2VudC8uY3ZzaWdub3JlCiwgZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlOgoKICAgYWRkIC5jdnNpZ25vcmUgZmlsZS4KICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGFkZCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgKICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaDoKCiAgIGNvbnN0IGFkZGl0aW9ucy4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIEFkZCBzdHJpbmcuaAogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIGhlYWRlci4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeGVzIHRvIHJlZW5hYmxlIGRpc21hbiBldmVudCBzdHVmZiBmb3IgNS4wIGNvZGUuICBOb3QgZG9uZSB0aGUKICAgInJpZ2h0IiB3YXksIGJ1dCBpdCB3b3Jrcy4KICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSAtV2FsbCBmaXhlcwogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhZGQgc3RkbGliLmgKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIG5vIGxvbmdlciB1c2VkICJkdW1wX3ZhciIgcm91dGluZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBjb25zdCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG5ldyBwZXJsIHNwZWNpZmljIGZlYXR1cmVzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAuUEhOT1kgbW9kcwogICAKMjAwMi0wMi0xMiAwNzoyMiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbG9nZ2luZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgKOgoKICAgUmVuYW1lIHRoZSBsb2dnaW5nICYgcmVsYXRlZCBvdXRwdXQgQVBJIGhlYWRlciBmaWxlLCB0byBiZXR0ZXIKICAgcmVmbGVjdCB0aGUgc2NvcGUgb2YgdGhpcyBBUEkuICAoQXMgc3VnZ2VzdGVkIGJ5IFdlcyAmIEpvaG4pCiAgIAoyMDAyLTAyLTEyIDA3OjIxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhbWVuZCBmaXggdG8gYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIHRvCiAgICAgICBhY3R1YWxseSBhZGQgLWxuc2wgdG8gbGluayBwYXJhbWV0ZXJzIQogICAKMjAwMi0wMi0xMiAwNTozOSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgbGliIGRlcGVuZGVuY3kgZml4IGZvciBzbm1wZCB0YXJnZXQKICAgCjIwMDItMDItMTEgMDg6MjkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmgsIHNubXBsaWIvY211X2NvbXBhdC5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgRXh0cmFjdCBDTVVfQ09NUEFUQUJJTElUWSBjb2RlLCBhbmQgZXhwbGljaXRseSBkZXByZWNhdGVkIFVDRCBjb2RlIGludG8gc2VwYXJhdGUgZmlsZXMuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgVXNlIHRoZSAnZHNfc2V0X3h4eCcgbGlicmFyeSByb3V0aW5lcywgcmF0aGVyIHRoYW4gdGhlIG9sZCAnc25tcF9zZXRfeHh4JyBjYWxscwogICAKMjAwMi0wMi0xMSAwNDo0NSAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHNwZWxsaW5nIHR3ZWFrcwogICAKMjAwMi0wMi0xMSAwNDoyNyAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWliX2FwaS4zCiwgbWliX2FwaS4zLmRlZiwgc25tcF9hZ2VudF9hcGkuMywKICAgc25tcF9hZ2VudF9hcGkuMy5kZWYsIHNubXBfYWxhcm0uMywgc25tcF9hbGFybS4zLmRlZgosIHNubXBfYXBpLjMsIHNubXBfYXBpLjMuZGVmLCBzbm1wX3Nlc3NfYXBpLjMKLCBzbm1wX3Nlc3NfYXBpLjMuZGVmLCBzbm1wX3RyYXBfYXBpLjMsCiAgIHNubXBfdHJhcF9hcGkuMy5kZWYsIHZhcmlhYmxlcy41LCB2YXJpYWJsZXMuNS5kZWYKOgoKICAgICAtIGdlbmVyYXRlIHRoZSByZXN0IG9mIHRoZSBtYW51YWwgcGFnZXMgKHRvIGdldCB2ZXJzaW9uIGluIGZvb3RlcikKICAgCjIwMDItMDItMDggMTU6NTYgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIG1pYl9tb2R1bGVfY29uZmlnLmgsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgc25tcGQvc25tcGQuZHNwOgoKICAgd2luMzIgc3BlY2lmaWMgcG9ydGlvbnMgb2YgcGF0Y2ggNTAzMjU2CiAgIAoyMDAyLTAyLTA4IDE1OjUzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgcGF0Y2gjNTAzMjU2OiBoZWxwZXJzIGxpYnJhcnkgZGVmaW5pdGlvbiBmb3Igd2luMzIKICAgCjIwMDItMDItMDggMDk6MDggIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0IHR3ZWFrYWdlCiAgIAoyMDAyLTAyLTA4IDA4OjIyICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHNubXBfYWdlbnRfYXBpLjMsIHNubXBfYWxhcm0uMwosIHNubXBfYXBpLjMsIHNubXBfc2Vzc19hcGkuMywgc25tcF90cmFwX2FwaS4zCjoKCiAgIFJlZmVyZW5jZSB0aGUgbmV3IGhlYWRlci1maWxlcyBpbiBzZWN0aW9uIDMgbWFuIHBhZ2Ugc3lub3BzZXMuCiAgIAoyMDAyLTAyLTA4IDA3OjUwICBqYnBuCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcF90cmFwX2FwaS4zLAogICBzbm1wY21kLjEuZGVmLCBzbm1wY29uZi4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgdmFyaWFibGVzLjU6CgogICAgIC0gbW9yZSBtaW5vciB0d2Vha3MgKHVjZC1zbm1wIC0+IE5ldC1TTk1QIGV0Yy4pCiAgIAoyMDAyLTAyLTA4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgbG9jYWwgbW9kdWxlcyBmcm9tIGRlcGVuZGVuY3kgbGlzdAogICAKMjAwMi0wMi0wOCAwNzo0NSAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYwosIGF1dG9fbmxpc3QuYywga2VybmVsLmMsIG1pYl9tb2R1bGVzLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBoZWxwZXJzL2luc3RhbmNlLmMsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgaGVscGVycy9udWxsLmMsIGhlbHBlcnMvb2xkX2FwaS5jLCBoZWxwZXJzL3JlYWRfb25seS5jCiwgaGVscGVycy9zZXJpYWxpemUuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMsIGhlbHBlcnMvdGFibGVfZGF0YS5jLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBtaWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywKICAgbWliZ3JvdXAvUm1vbi9hbGFybS5jLCBtaWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBtaWJncm91cC9SbW9uL3Jvd3MuYywKICAgbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMKLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMKLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9hdC5jCiwgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKLCBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiwgbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBtaWJncm91cC9taXNjL2lwZndhY2MuYwosIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKLCBtaWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIG1pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYwosIG1pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBVc2UgdGhlIG5ldyAnbmV0LXNubXAtaW5jbHVkZXMnIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcywKICAgaW4gcGxhY2Ugb2YgdGhlICh1bmluc3RhbGxlZCkgJ21pYmluY2wuaCcuCiAgICAgV2hlZWVlZS4uLi4uLgogICAKMjAwMi0wMi0wOCAwNzoxNyAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMsCiAgIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYsCiAgIHNubXBfc2Vzc19hcGkuMywgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgICAtIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIGdlbmVyYXRlIG1hbiBwYWdlcyBhdCBjb21waWxlIHRpbWUKICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMSwgc25tcGJ1bGt3YWxrLjEsCiAgIHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsIHNubXBjbWQuMQosIHNubXBjbWQuMS5kZWYsIHNubXBjb25mLjEsIHNubXBjb25mLjEuZGVmCiwgc25tcGdldC4xLCBzbm1wZ2V0LjEuZGVmLCBzbm1wZ2V0bmV4dC4xLAogICBzbm1wZ2V0bmV4dC4xLmRlZiwgc25tcHNldC4xLCBzbm1wc2V0LjEuZGVmLAogICBzbm1wc3RhdHVzLjEsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLAogICBzbm1wdGFibGUuMS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wdHJhbnNsYXRlLjEsIHNubXB0cmFuc2xhdGUuMS5kZWYsIHNubXB0cmFwLjEKLCBzbm1wdHJhcC4xLmRlZiwgc25tcHVzbS4xLCBzbm1wdXNtLjEuZGVmLAogICBzbm1wd2Fsay4xLCBzbm1wd2Fsay4xLmRlZiwgc25tcHRyYXBkLjgsCiAgIHNubXB0cmFwZC44LmRlZjoKCiAgICAgLSByZW5hbWUgbWFuIHBhZ2VzIHdoaWNoIGFyZSBub3cgZ2VuZXJhdGVkIGF0IGNvbXBpbGUgdGltZSBpbiBvcmRlcgogICAgICAgdG8gcGljayB1cCB0aGUgdmVyc2lvbiAod2hpY2ggZ2V0cyBwdXQgaW4gdGhlIGZvb3RlcikuCiAgIAogICAgIC0gYWxzbyBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJKSi5oOgoKICAgUmVtb3ZlIHRoZSBhdHRlbXB0ZWQgJ21pYklJJyByZS13cml0ZS4KICAgSWYgd2Ugd2FudCB0byB0aWR5IHVwIG1pYklJLCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHVzZSB0aGUgbmV3IGFnZW50IEFQSXMuCiAgIAoyMDAyLTAyLTA4IDA2OjQ1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIEJyaW5nIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcyBjbG9zZXIgaW4gbGluZSB3aXRoIHRoZSBleGlzdGluZyAibWliaW5jbC5oIiBmaWxlCiAgIAoyMDAyLTAyLTA4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuaCAoVjQtMi1wYXRjaGVzLjEpLAogICBzeXNPUlRhYmxlLmg6CgogICBFbnN1cmUgdGhlIG51bGwgdmVyc2lvbnMgb2YgdGhlIHR3byBSRUdJU1RFUiBtYWNyb3Mgc3dhbGxvdyB0aGVpciBwYXJhbWV0ZXJzLgogICAKMjAwMi0wMi0wOCAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW1wbGVtZW50IHRoZSBtaXNzaW5nIG91dGdvaW5nIGVycm9yIHN0YXRpc3RpY3MgY291bnRlcnMKICAgKHBhdGNoICM1MTAxOTQgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwogICAoVjQtMi1wYXRjaGVzLls2LDNdKSwgaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCjoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG1lbW9yeSBhbmQgc3dhcCBlbnRyaWVzIGluIGhyU3RvcmFnZVRhYmxlIGZvciBTb2xhcmlzCiAgIChmcm9tIHBhdGNoICM1MDU0OTggLSB0aGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQogICAKMjAwMi0wMi0wOCAwMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIENvbnNvbGlkYXRlIGlkZW50aWNhbCBNSUIgb2JqZWN0IGVudHJpZXMgKFdJTjMyL25vbi1XSU4zMikKICAgCjIwMDItMDItMDggMDA6NTAgIGpicG4KCiAgICogbWFuL1JFQURNRToKCiAgICAgLSByZW1vdmUgY2hyb25pY2FsbHkgZGF0ZWQgdW5oZWxwZnVsIFJFQURNRQogICAKMjAwMi0wMi0wNyAxMzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgbWFrZWZpbGVpbmRlcGVuZC5wbCwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbWFrZSBtYWtlJ3MgTWFrZWZpbGUncyB0byBtYWtlIGJldHRlciBtYWtpbmcKICAgCjIwMDItMDItMDcgMTM6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIGxvY2FsIHBhdGhlcwogICAKMjAwMi0wMi0wNyAxMjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRW5zdXJlIGFnZW50IHJldHVybnMgdGhlIGNvcnJlY3QgZXJyb3IgY29kZXMgZm9yIFVORE8gYW5kIENPTU1JVCBmYWlsdXJlcy4KICAgCjIwMDItMDItMDcgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnhzLCB0L3N0YXJ0YWdlbnQucGwKOgoKICAgYXR0ZW1wdCBhdCBwb3J0aW5nIEpvZSdzIFNOTVAgbW9kdWxlIHRvIG5ldC1zbm1wLgogICBJdCBjb21waWxlcywgYnV0IG9ubHkgc29tZSBvZiB0aGUgdGVzdHMgc3VjY2VlZC4KICAgCjIwMDItMDItMDcgMTA6MDkgIGpicG4KCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWliX2FwaS4zLAogICByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2FnZW50X2FwaS4zCiwgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZgosIHNubXBfc2Vzc19hcGkuMywgc25tcF90cmFwX2FwaS4zLCBzbm1wYnVsa2dldC4xCiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjb25mLjEsIHNubXBkLmNvbmYuNS5kZWYKLCBzbm1wZGVsdGEuMSwgc25tcGRmLjEsIHNubXBnZXQuMSwKICAgc25tcGdldG5leHQuMSwgc25tcG5ldHN0YXQuMSwgc25tcHNldC4xLAogICBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdGVzdC4xLAogICBzbm1wdHJhbnNsYXRlLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmCiwgc25tcHVzbS4xLCBzbm1wd2Fsay4xLCB2YXJpYWJsZXMuNToKCiAgICAgLSBhZGQgTmV0LVNOTVAgaW4gaGVhZGVyIG9mIGFsbCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDk6NTIgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSB1cGRhdGUgc3R5bGUgdG8gbWF0Y2ggc25tcGQgYW5kIHNubXB0cmFwZCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDg6MTUgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGZpeCBzcGVlbGluZyBtaXN0YWtlCiAgIAoyMDAyLTAyLTA3IDA4OjAwICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBicmluZyB1cCB0byBkYXRlIHdpdGggc25tcHRyYXBkCiAgIAoyMDAyLTAyLTA3IDA3OjI4ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhY2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFN1cHBvcnQgZm9yIEhQLVVYIDExLCBjb3VydGVzeSBvZiBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAyLTAyLTA3IDA2OjMwICBqYnBuCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgICAgLSBhbHBoYWJldGlzZSBvcHRpb25zCiAgIAogICAgIC0gYnJpbmcgbWFuIHBhZ2UgaW4gbGluZSB3aXRoIG5ldyBwb3NpdGlvbmFsIGFyZ3VtZW50cyBsaXN0ZW5pbmcKICAgICAgIGFkZHJlc3Mgc3BlY2lmaWNhdGlvbiBhbmQgYWRkIHNlY3Rpb24gZGVzY3JpYmluZyB0aGF0CiAgIAogICAgIC0gcHV0IE5ldC1TTk1QIGluIGhlYWRlcgogICAKMjAwMi0wMi0wNiAxMDowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmg6CgogICAgIC0gZml4IGJ1ZyBub3RlZCBieSBOaWVscwogICAKMjAwMi0wMi0wNiAwOToyNSAgamJwbgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmM6CgogICAgIC0gbWlub3IgdHdlYWtzIGR1ZSB0byBjaGFuZ2UgaW4gZGVmaW5pdGlvbiBvZiBVU00gT0lEcy4KICAgCjIwMDItMDItMDYgMDk6MTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIG1vdmUgVVNNIE9JRCBkZWZpbml0aW9ucyBpbnRvIHNubXB1c20uYywgbWFrZSB0aGVtIGNvbnN0CiAgIAogICAgIC0gY29uc2VxdWVudCBpbmNyZWFzZSBpbiBjb25zdC1uZXNzIGluIHNvbWUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlIGludGVybmFsIG5vdGUgYWJvdXQgdjMgYXBpLCB3aGljaCBzaG91bGQgYmUgcHVibGljCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oOgoKICAgcmVtb3ZlZCB1bm5lZWRlZCBmaWxlCiAgIAoyMDAyLTAyLTA2IDA5OjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkIGNvbnN0LW5lc3MgZm9yIHRyYW5zZm9ybSB0eXBlIGFyZ3MKICAgCjIwMDItMDItMDYgMDk6MDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBhZGQgc29tZSBjb25zdC1uZXNzIGZvciBPSUQgYXJncyAobWFpbmx5IHNvIHRoYXQgZGVidWdtc2dfb2lkIHRha2VzCiAgICAgICBjb25zdCkuCiAgIAoyMDAyLTAyLTA2IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgU3VwcG9ydCBmb3IgRHluaXgvUFRYIDQuNCwgY291cnRlc3kgb2YgUGF0cmljayBIZXNzLgogICAKMjAwMi0wMi0wNiAwNzo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIGZpcnN0IGFyZ3VtZW50IG9mIHNubXBfZHVwX29iamlkKCkgY29uc3QuCiAgIAogICAgIC0gYmV0dGVyIGhhbmRsZSBOVUxMIHZhbHVlcyBpbiBzbm1wX2R1cF9vYmppZCgpLgogICAKMjAwMi0wMi0wNiAwNzowOSAgZHRzMTIKCiAgICogRkFRLCBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgQ2xhcmlmeSB0aGUgYXBwbGljYWJpbGl0eSBvZiAnc25tcF90cmFwX2FwaSgzKScgcm91dGluZXMgdG8gQWdlbnRYIHN1YmFnZW50cy4KICAgCjIwMDItMDItMDYgMDU6NTggIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIG5vdGlmaWNhdGlvbl9sb2cuYywKICAgc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMKLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdXNtLmMKLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9pZi5jCiwgc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBzbm1wbmV0c3RhdC9tYWluLmMsIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICBBcHBsaWNhdGlvbnMgYW1lbmRlZCB0byB1c2UgdGhlIG5ldy1zdHlsZSBsaWJyYXJ5IGhlYWRlciBzdHJ1Y3R1cmUuCiAgIChJbiBtb3N0IGNhc2VzLCBzaW1wbHkgaW5jbHVkaW5nIHRoZSBzaW5nbGUgImZ1bGwgQVBJIiBoZWFkZXIgZmlsZSkKICAgCjIwMDItMDItMDYgMDU6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhc24xLmgsIGNvbmZpZ19hcGkuaCwKICAgZGVmaW5pdGlvbnMuaCwgbG9nZ2luZ19hcGkuaCwgbWliX2FwaS5oLAogICBuZXQtc25tcC1pbmNsdWRlcy5oLCBwZHVfYXBpLmgsIHNlc3Npb25fYXBpLmgsCiAgIHNubXB2M19hcGkuaCwgdHlwZXMuaCwgdXRpbGl0aWVzLmgsIHZhcmJpbmRfYXBpLmgKOgoKICAgRnJhbWV3b3JrIGZvciBuZXcgbGlicmFyeSBoZWFkZXIgZmlsZSBvcmdhbmlzYXRpb24sIHdpdGggZWlnaHQgbWFpbiBncm91cHMKICAgb2YgQVBJIHJvdXRpbmVzLiAgQ3VycmVudGx5IHRoZXNlIHN0aWxsIHJlZmVyIHRvIHRoZSBVQ0Qtc3R5bGUgc3R5bGUgaGVhZGVyCiAgIGZpbGVzIGZvciB0aGUgYWN0dWFsIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KICAgCjIwMDItMDItMDYgMDU6MzEgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIHJlcGxhY2UgdXNlIG9mICQ8IHdpdGggZXhwbGljaXQgZmlsZW5hbWUsIHNpbmNlIG5vbi1HTlUgbWFrZXMgc2VlbQogICAgICAgdG8gYmFyZiBvbiBpdAogICAKMjAwMi0wMi0wNiAwMzozMSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXggaW5jb3JyZWN0IGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9uIGluICdtYWtlIGNsZWFuJwogICAKMjAwMi0wMi0wNiAwMzoxOCAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3RlY3QgdGhlIHByb2plY3QgY29uZmlnIGZpbGUgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24uCiAgIAoyMDAyLTAyLTA2IDAzOjA3ICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMgYW5kCiAgICAgICBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cwogICAgICAgYW5kIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNSAxMTo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjcpLCBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBlcmwgZml4ZXMKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbW92ZSB0aGUgb2lkdHJlZV9jb21wYXJlIGZ1bmN0aW9uIHRvCiAgIHRoZSBtYWluIGxpYnJhcnkuCiAgIAoyMDAyLTAyLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgcGVybCBidWlsZCBmaXhlcy4KICAgCjIwMDItMDItMDUgMDc6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgb3Bwcy4gIFJlbW92ZWQgZm9yY2VkIHBlcmwgZW1iZWRkaW5nCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdGhpcyBmaWxlIHNob3VsZG4ndCBiZSBjaGVja2VkIGluCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9zbm1wX3BlcmwuYwosIGFnZW50L3NubXBfcGVybC5wbCwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFN1cHBvcnQgZm9yIGVtYmVkZGluZyBwZXJsIHN1YnJvdXRpbmVzIGludG8gdGhlIGFnZW50IHRvIGJlIGNhbGxlZAogICAgIGFzIGhhbmRsZXJzLgogICAtIE5ldyBjb25maWd1cmUgb3B0aW9uczoKICAgICAtLXdpdGgtcGVybC1tb2R1bGVzIGF0dGVtcHRzIHRvIGJ1aWxkIGNvbnRhaW5lZCBtb2R1bGVzIChwb29ybHkgY3VycmVudGx5KS4KICAgICAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGFjdHVhbGx5IHNwZWNpZmllcyB0byBkbyBwZXJsIGVtYmVkZGluZwogICAgIHdpdGhpbiB0aGUgYWdlbnQuCiAgIAoyMDAyLTAyLTA0IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgQVNOL0FTTi54cywgQVNOL0NoYW5nZXMsCiAgIEFTTi9NQU5JRkVTVCwgQVNOL01ha2VmaWxlLlBMLCBBU04vdGVzdC5wbCwKICAgYWdlbnQvQ2hhbmdlcywgYWdlbnQvTUFOSUZFU1QsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9hZ2VudC5wbSwgYWdlbnQvYWdlbnQueHMsIGFnZW50L3Rlc3QucGwsCiAgIGFnZW50L3R5cGVtYXAsIGRlZmF1bHRfc3RvcmUvQ2hhbmdlcywKICAgZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIGRlZmF1bHRfc3RvcmUvdGVzdC5wbCwKICAgZGVmYXVsdF9zdG9yZS90eXBlbWFwOgoKICAgQmVnaW5uaW5ncyBvZiBuZXcgcGVybCBtb2R1bGVzIG5lZWRlZCB0byBpbXBsZW1lbnQgYW4gU05NUCBhZ2VudCAob3IKICAgYWdlbnR4IHN1YmFnZW50KSBpbnNpZGUgcGVybC4KICAgICAtIG5vdCBjb21wbGV0ZSB5ZXQuCiAgICAgLSBtYXkgY2hhbmdlLgogICAgIC0gYnV0IHdvcmtzLgogICAKMjAwMi0wMi0wNCAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3QgcHJvY2Vzc2luZyBmb3IgdGltZXRpY2tzIHdoZW4gRFNfTElCX05VTUVSSUNfVElNRVRJQ0tTIGlzCiAgICAgICBzZXQgKGNvcnJlY3RzIGJ1ZyAjNTExNzkzLCByZXBvcnRlZCBieSBBbm9ueW1vdXMpLgogICAKMjAwMi0wMi0wMSAwMTo1MCAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB0aGUgcHJvY2VkdXJlIGZvciBjb21waWxpbmcgd2l0aCAnY2MnIHJhdGhlciB0aGFuICdnY2MnCiAgIAoyMDAyLTAxLTMxIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBzL3NubXBsaWJcLy8vOwogICAKMjAwMi0wMS0zMSAwNjo1NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZSBjbGVhbiBhcyByZXBvcnRlZCBieSBCcmFkbGV5IEJvemFydGguCiAgIAoyMDAyLTAxLTMwIDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgQnJpbmcgTUlCIHZhcmlhYmxlIHZlcnNpb25UYWcgaW50byBsaW5lIHdpdGggdGhlIG5ldyA8bmV0LXNubXAvdmVyc2lvbi5oPiB1c2FnZQogICAKMjAwMi0wMS0yOSAxNzo1MyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIE1vdmVkIHZlcnNpb25pbmcgaW5mb3JtYXRpb24gZnJvbSB2ZXJzaW9uLmggdG86CiAgICAgLSBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgICAgLSBkZWZpbmUgbmV0c25tcF9nZXRfdmVyc2lvbigpOwogICAgICAgLSBjcmVhdGUgYSBjb25zdCBjaGFyICpOZXRTbm1wVmVyc2lvbkluZm8KICAgICAtIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBleHRlcm4gdGhlIGFib3ZlIGNoYXIgKgogICAgICAgLSBwcm90b3R5cGUgdGhlIGZ1bmN0aW9uCiAgICAgLSBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gY3JlYXRlIGEgc3RhdGljIHZhcmlhYmxlICh0aGUgb2xkIHdheSkgYW5kIHNldCBpdCB0byBOZXRTbm1wVmVyc2lvbkluZm8KICAgCjIwMDItMDEtMjkgMTY6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICB0ZXN0cy9UMDUwc25tcHYzdHJhcCwgdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgdGVzdHMvVDA1M2FnZW50djF0cmFwLAogICB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLAogICB0ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIHRyYXAgdGVzdCBmaXhlcyBzbyB0aGUgbWFqb3JpdHkgb2YgdGhlIHRlc3RzIG5vdyB3b3JrLgogICAKMjAwMi0wMS0yOSAxNjowOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBnZW5lcmF0ZSB1Y2Qtc25tcC1jb25maWcuaCBhbnkgbG9uZ2VyLgogICAKMjAwMi0wMS0yOSAxNToyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaAosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oOgoKICAgbW92ZWQgcy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vKi5oCiAgIG1vdmVkIG0vZ2VuZXJpYy5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgKICAgCjIwMDItMDEtMjkgMDk6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLWMgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDItMDEtMjkgMDk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlZmVyZW5jZSBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGluc3RlYWQgb2YganVzdCBjb25maWcuaAogICAKMjAwMi0wMS0yOSAwOTowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBhdHRlbXB0IHRvIGZpeCB0aGUgdW5rbm93biBlbmdpbmVpZC91bmtub3duIHVzZXIgcHJvYmxlbXMgb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDItMDEtMjggMjE6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgd2hvb3BzLiAgTWlzc2VkIHNvbWUgLmggZmlsZSBjaGVja3MgaW4gY29uZmlndXJlLiAgVGhhbmtzIFJvYmVydC4KICAgCjIwMDItMDEtMjggMjE6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgbWlub3IgZml4LgogICAKMjAwMi0wMS0yOCAyMTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBhZGRlZCBjb2RlIGNvbnZlcnQgc2NyaXB0IGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBoZWFkZXIgY29udmVyc2lvbgogICAKMjAwMi0wMS0yOCAyMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaAosIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmgsIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmgKLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmgsIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaAosIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmgsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oLCBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oCiwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YWNtLmgsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiwgbWFuL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kYXRhX2xpc3QuaCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL2dldG9wdC5oLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL29pZF9hcnJheS5jLCBzbm1wbGliL29pZF9hcnJheS5oLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL29pZF9zdGFzaC5oLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuYwosIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaCwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uaCwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BEb21haW4uaCwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUERvbWFpbi5oLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmgsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCwgc25tcGxpYi9zbm1wX2FsYXJtLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9lbnVtLmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5oLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmgsIHRlc3RpbmcvUlVOVEVTVFMsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDIwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaW5kZXguYywKICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jCiwgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywgbWliX21vZHVsZXMuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgaGVscGVycy9idWxrX3RvX25leHQuYywgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBoZWxwZXJzL251bGwuYywgaGVscGVycy9vbGRfYXBpLmMsIGhlbHBlcnMvcmVhZF9vbmx5LmMKLCBoZWxwZXJzL3NlcmlhbGl6ZS5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYywgaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvUm1vbi9hbGFybS5jLAogICBtaWJncm91cC9SbW9uL2V2ZW50LmMsIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBtaWJncm91cC9SbW9uL3Jvd3MuYywgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMKLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKLCBtaWJncm91cC9taWJJSS9hdC5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIG1pYmdyb3VwL21pYklJL2lwdjYuYywKICAgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCiwgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYwosIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAxOTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIERFRklORSBJVCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgZGVmaW5lIGl0IGluc3RlYWQKICAgCjIwMDItMDEtMjUgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlX29uZV9vaWRfaW5kZXg6CiAgICAgLSB1c2UgYW4gdW5zaWduZWQgaW50IGZvciBsZW5ndGgncyBwdWxsZWQgZnJvbSB0aGUgb2lkLgogICAgIC0gTWFrZSBzdXJlIHRoZXkncmUgYWx3YXlzIDwgMTI4CiAgIAoyMDAyLTAxLTI1IDA5OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2xvc2VyIGFkaGVyZW5jZSB0byBzdGF0ZSBtYWNoaW5lcyBkZXNjcmliZWQgaW4gUkZDIDI1NzQKICAgCjIwMDItMDEtMjUgMDk6MTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgdXNtRGVjcnlwdGlvbkVycm9yIHJlcG9ydHMgdG8gYmUgc2VudCBpbiBhIGNvdXBsZSBvZiBleHRyYQogICAgICAgY2FzZXM6IGJhZCBzYWx0IChsZW5ndGggIT0gOCkgYW5kIGxlbmd0aCBvZiBlbmNyeXB0ZWQgZGF0YSBub3QgYQogICAgICAgbXVsdGlwbGUgb2YgOCBvY3RldHMgKHBlciBSRkMgMjU3NCkuCiAgIAoyMDAyLTAxLTI1IDA5OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmb3IgdW5rbm93biBtZXNzYWdlIHR5cGVzLCBpbmNyZW1lbnQgc25tcEluQVNOUGFyc2VFcnJzIGFuZCBmYWlsCiAgICAgICBhdCB0aGUgcG9zdC1wYXJzZSBzdGFnZS4KICAgCiAgICAgLSBmb3Igbm90aWZpY2F0aW9uIHR5cGVzLCBpbmNyZW1lbnQgc25tcFVua25vd25QRFVIYW5kbGVycyBhbmQgYmFpbAogICAgICAgb3V0IGVhcmx5LgogICAKMjAwMi0wMS0yNSAwOTowMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZm9yIHVuaGFuZGxlZCBtZXNzYWdlcyAoZS5nLiBSRVNQT05TRSBtZXNzYWdlcyBzZW50IHRvIGFnZW50cyksCiAgICAgICBpbmNyZW1lbnQgdGhlIHNubXBVbmtub3duUERVSGFuZGxlcnMgY291bnRlci4KICAgCiAgICAgLSB0cnkgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmcyB3aGVuIHBvc3QtcGFyc2UgZmFpbHMuCiAgIAoyMDAyLTAxLTI1IDA2OjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy42KSwgdmFjbV92YXJzLmMKOgoKICAgICAtIGZpeCBtaW5vciBwcm9ibGVtIHdpdGggc3RvcmFnZVR5cGUgKGFsd2F5cyBva2F5IHRvIHNldCB0byBjdXJyZW50CiAgICAgICB2YWx1ZSkuCiAgIAogICAgIC0gZG9uJ3QgcmVzZXQgc29tZSB2YXJpYWJsZXMgdG8gb2xkIHZhbHVlIHVubGVzcyB3ZSBhY3R1YWxseSBzZXQKICAgICAgIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQogICAKMjAwMi0wMS0yNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgcHJpbnQgb3V0IGRlYnVnZ2luZyBpbmZvIGluIGEgZnVydGhlciBjYXNlIHdoZXJlIGl0IGhhcyBiZWVuCiAgICAgICBmcmVlKClkLgogICAKICAgICAtIHNldCB0aGUgZXhjZXB0aW9uIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIGVycm9yIG5vU3VjaE5hbWUgd2hlbgogICAgICAgd2UgaGF2ZSB0aGUgaW5jb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzLgogICAKMjAwMi0wMS0yNSAwNDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9SRUFETUUubmV3bGliOgoKICAgZmlsZSBSRUFETUUubmV3bGliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDItMDEtMjUgMDQ6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIG1vdmUgZGVidWdnaW5nIG91dHB1dCB0byBiZWZvcmUgd2hlcmUgKHBvdGVudGlhbGx5KSB0aGUgZGF0YSBpdCBpcwogICAgICAgdHJ5aW5nIHRvIHByaW50IGdldHMgZnJlZSgpZC4KICAgCjIwMDItMDEtMjUgMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGtlZXAgYXNwLT52YmNvdW50IGNvcnJlY3QgaW4gY3JlYXRlX3N1YnRyZWVfY2FjaGUoKSBpZiB3ZSBkdW1wCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgR0VUTkVYVCBjYXNlIGJlY2F1c2UgbnVtdmFyYmluZHMgPiBub24tcmVwZWF0ZXJzLgogICAgICAgRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgY2F1c2UgcHJvYmxlbXMgbGF0ZXIgd2hlbiB5b3UgaXRlcmF0ZSBvdmVyCiAgICAgICAwIC4uIGFzcC0+dmJjb3VudCAtIDEgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKS4KICAgCjIwMDItMDEtMjQgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICB1cGRhdGUgbWFjcm9zIHRvIHB1dCBwYXJlbnMgYXJvdW5kIHBhcmFtZXRlcnMgd2hlbiB1c2VkLCBpbiBjYXNlIGEgcGFyYW1ldGVyIGlzIGFuIGV4cHJlc3Npb24sIHdoaWNoIG1pZ2h0IG11Y2sgYWJvdXQgd2l0aCBvcGVyYXRvciBwcmVjZWRlbmNlIHJ1bGVzIGFuZCBjYXVzZSB1bmV4cGVjdGVkIGFuZCB1bmRlc2lyYWJsZSBiZWhhdmlvci4KICAgCjIwMDItMDEtMjQgMTE6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0cnkgdG8gZmluZCAmIGhhbmRsZSBleHRlcm5hbCBpbmRleGVzOyB1c2UgbmV3IHN0eWxlIG5ldC1zbm1wIGluY2x1ZGVzOyBhZGQKICAgcm93X2NvcHk7IHVzZSBjb250ZXh0IHR5cGVzICYgY2FzdHMgaW4gcGFyYW1ldGVycyBpbnN0ZWFkIG9mIGdlbmVyaWMgdHlwZXMKICAgcmVjYXN0IGluc2lkZSBtZXRob2QKICAgCjIwMDItMDEtMjQgMDY6MDMgIGpicG4KCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4zKSwgcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwNDozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBkb24ndCBhdXRvbWF0aWNhbGx5IGFjY2VwdCBhIG1zZ1VzZXJOYW1lIG9mICIiIHdoZW4gcHJvY2Vzc2luZwogICAgICAgaW5jb21pbmcgbWVzc2FnZXMuCiAgIAoyMDAyLTAxLTI0IDA0OjMwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiaWdnZXIgYnVmZmVyIGZvciBtc2dBdXRob3JpdGF0aXZlRW5naW5lSUQgZmllbGQgc2luY2UgaXQgaXMgbm90CiAgICAgICBsaW1pdGVkIHRvIDMyIGJ5dGVzIGxpa2UgU25tcEVuZ2luZVRDLiAgUmVhbGx5IHRoaXMgbmVlZHMgdG8gYmUKICAgICAgIGFsbG9jYXRlZCBieSB0aGUgc2VjdXJpdHkgbW9kdWxlIGJ1dCBmb3Igbm93IHdlJ2xsIGp1c3QgbWFrZSBpdAogICAgICAgdHdpY2UgYXMgYmlnLgogICAKMjAwMi0wMS0yNCAwMzoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFJWCBzdXBwb3J0IGZvciB0aGUgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzZWNNb2RlbCBvZiAwIGlzIGEgcGFyc2UgZXJyb3IgaW4gSGVhZGVyRGF0YQogICAKMjAwMi0wMS0yMyAwNzoyMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmUgY2FyZWZ1bCB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWYgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXMgaW4KICAgICAgIHNubXB2M19wYXJzZSAtLSBmaXhlcyBtZW1vcnkgbGVha3Mgd2hlbiBtYWxmb3JtZWQgUERVcyBhcmUKICAgICAgIHJlY2VpdmVkLgogICAKMjAwMi0wMS0yMiAxOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgY2hnIGFwaSBmb3Igc25tcF9vaWRfbmNvbXBhcmUsIGRvbid0IGltcGxlbWVudCBpdCB2aSBzbm1wX29pZF9jb21wYXJlCiAgIAoyMDAyLTAxLTIyIDE5OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfYXJyYXkuaDoKCiAgIGFkZCBHZXRfb2lkX2RhdGFfY291bnQoKTsgYWRkIHN1YnNldCBzdXBwb3J0CiAgIAoyMDAyLTAxLTIyIDE5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIGFkZCBuZXRzbm1wX3N0cjJvaWQoKQogICAKMjAwMi0wMS0yMiAxOTo0MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb24KICAgCjIwMDItMDEtMjIgMTk6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uOyBhZGQgcHJlbGltaW5hcnkgbG9ja2luZyBjb2RlOyBhZGQgdGFfY2hlY2tfcm93X3N0YXR1cwogICAKMjAwMi0wMS0yMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNCksIHZhY21fdmFycy5jCjoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgYSBwYXJzZSBlcnJvciBpZiB3ZSByZWNlaXZlIFVzbVNlY3VyaXR5UGFyYW1ldGVycyB3aXRoIGEKICAgICAgIG1zZ1VzZXJOYW1lIHRoYXQgaXMgaWxsZWdhbGx5IGxvbmcuCiAgIAoyMDAyLTAxLTIyIDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgICAgLSBvb3BzLCBsZWZ0IG9sZCBjb2RlIGluICNpZiAwIGJyYW5jaCBBR0FJTi4gIEkgYW0gZ2V0dGluZyBpbnRvIGJhZAogICAgICAgaGFiaXRzIQogICAKMjAwMi0wMS0yMiAwMzowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrcyBpbiByb3cgY3JlYXRpb24vZGVzdHJ1Y3Rpb24KICAgCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgdmFsaWRpdHkgY2hlY2tpbmcgb2Ygc25tcE5vdGlmeVRhZywgc25tcE5vdGlmeVR5cGUKICAgICAgIGFuZCBzbm1wTm90aWZ5U3RvcmFnZVR5cGUuCiAgIAogICAgIC0gcGFzc2VzIDYuNS4xLjAgLS0gNi41LjguMwogICAKMjAwMi0wMS0yMiAwMTo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDItMDEtMjEgMjM6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSB0aWR5IHRoaW5ncyB1cCBhIGJpdCAoaGFkIGxlZnQgc29tZSBvbGQgY29kZSBzaXR0aW5nIGlmICNpZiAwCiAgICAgICBicmFuY2gpLgogICAKICAgICAtIHJlbWVtYmVyIHRvIGNsb3NlICh0YXJnZXQtPnNlc3MpIHdoZW4gd2UgbW92ZSBhIHRhcmdldCB0bwogICAgICAgbm90SW5TZXJ2aWNlKDIpLgogICAKMjAwMi0wMS0yMSAxMTowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRBZGRyVGFibGUKICAgCjIwMDItMDEtMjEgMDY6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICAgIC0gaW1wbGVtZW50IHNubXBUYXJnZXRTcGluTG9jayBvYmplY3QKICAgCjIwMDItMDEtMTggMDk6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZS4gIFBhc3NlcyBhbGwgdGhlCiAgICAgICByZWxldmFudCBTaWx2ZXJjcmVlayBWQUNNIHRldHN0LgogICAKMjAwMi0wMS0xOCAwODo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogdmFjbS5jLCB2YWNtLmg6CgogICAgIC0gYWRkIGEgc3dpdGNoIHRvIHZhY21fZ2V0Vmlld0VudHJ5KCkgdG8gYWxsb3cgdGhlIG1hc2sgZW50cmllcwogICAgICAgdG8gYmUgaWdub3JlICh3aGljaCBpcyB3aGF0IHlvdSB3YW50IHdoZW4geW91IGFyZSBqdXN0IHVzaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIHRvIGxvb2sgdXAgYW4gZW50cnkgaW4gdGhlIHRhYmxlIGluIG9yZGVyIHRvIHdyaXRlIHNvbWUgbmV3CiAgICAgICB2YWx1ZSB0byBvbmUgb2YgdGhlIGNvbHVtbmFyIG9iamVjdHMpLgogICAKMjAwMi0wMS0xOCAwNjowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21BY2Nlc3NUYWJsZS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0LgogICAKMjAwMi0wMS0xOCAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSAoaS5lLiBkb24ndAogICAgICAganVzdCBkbyBldmVyeXRoaW5nIGluIHRoZSBDT01NSVQgcGhhc2UpLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA0OjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZXJyb3Igc3RhdHVzIGFmdGVyIENPTU1JVCBvciBVTkRPCiAgICAgICBwaGFzZXMgd2l0aCBjb21taXRGYWlsZWQgb3IgdW5kb0ZhaWxlZCAoYnV0IGRvIHRyYW5zbGF0ZSBlcnJvcgogICAgICAgcmV0dXJucyBmcm9tIHRob3NlIHBoYXNlcyBpbnRvIHRob3NlIGVycm9ycyB3aGVuIHdlIGRvbid0IGhhdmUgYW4KICAgICAgIGV4aXN0aW5nIGVycm9yIHN0YXR1cykuCiAgIAoyMDAyLTAxLTE3IDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnSUQgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUgcGFja2V0CiAgICAgICBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTcgMDY6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dNYXhTaXplIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlCiAgICAgICBwYWNrZXQgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE1IDA4OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgdG9wIGxldmVsIGluY2x1ZGUgd2hpY2ggaW5jbHVkZXMgdXNlZnVsIHNubXBsaWIgaGVhZGVycwogICAKMjAwMi0wMS0xNSAwODoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvdWNkLXNubXAvOiBhZ2VudF9pbmRleC5oLCBhZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnRfcmVnaXN0cnkuaCwgYWdlbnRfdHJhcC5oLCBhc24xLmgsCiAgIGF1dG9fbmxpc3QuaCwgY2FsbGJhY2suaCwgZGVmYXVsdF9zdG9yZS5oLAogICBkc19hZ2VudC5oLCBoZWFkZXJfY29tcGxleC5oLCBpbnQ2NC5oLCBrZXl0b29scy5oCiwgbWliLmgsIG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYmluY2wuaCwKICAgcGFyc2UuaCwgcmVhZF9jb25maWcuaCwgc2NhcGkuaCwgc25tcC10Yy5oLAogICBzbm1wLmgsIHNubXBfYWdlbnQuaCwgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5oCiwgc25tcF9jbGllbnQuaCwgc25tcF9kZWJ1Zy5oLCBzbm1wX2ltcGwuaCwKICAgc25tcF9sb2dnaW5nLmgsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wX3ZhcnMuaCwKICAgc25tcHVzbS5oLCBzbm1wdjMuaCwgc3RydWN0LmgsIHN5c3RlbS5oLAogICB0b29scy5oLCB0cmFuc2Zvcm1fb2lkcy5oLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiwgdWNkLXNubXAtY29uZmlnLmgsIHVjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIHV0aWxfZnVuY3MuaCwgdmFyX3N0cnVjdC5oLCB2ZXJzaW9uLmg6CgogICBjcmVhdGUgNC54IGhlYWRlcnMgdGhhdCBhcmUgd3JhcHBlcnMgcG9pbnRpbmcgdG8gbmV3IGhlYWRlcnMKICAgCjIwMDItMDEtMTQgMTU6MDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgVXNlclJvd0FjdGlvbiBhbmQgdm9pZCBwb2ludGVyCiAgIAoyMDAyLTAxLTE0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCBNYWtlZmlsZS5pbjoKCiAgIC0+IG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgCjIwMDItMDEtMTQgMTM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZWQKICAgCjIwMDItMDEtMTQgMTM6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBjb3B5IHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggYW5kIHVwZGF0ZSB0byBuZXQtc25tcCB1c2UgbmV3IGFnZW50IGRpcgogICAKMjAwMi0wMS0xNCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvbWliX21vZHVsZXMuYwosIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBtb3ZlZCB0aGUgL2FnZW50IGluc3RhbGxlZCBoZWFkZXJzIHRvIC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQKICAgCjIwMDItMDEtMTMgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIGEgY291cGxlIG1vcmUgaW5zdGFsbCBoZWFkZXJzLgogICAKMjAwMi0wMS0xMSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBub3RpZmljYXRpb25fbG9nLmM6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuaCwKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5oCiwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmgsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmgsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmgsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gQWRkIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIHRvIGluY2x1ZGUgcGF0aC4KICAgLSBSZW5hbWUgMyBhZ2VudCBsaWJyYXJpZXMgZnJvbSBsaWJ1Y2QqIC0+IGxpYm5ldHNubXAqCiAgIAoyMDAyLTAxLTExIDA3OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGRvbid0IHVzZSB3aGlsZSh4LS0gPj0gMCkgbG9vcHMgZm9yIG5ldyB1bnNpZ25lZCBpbmRleCBjb21wb25lbnRzCiAgIAoyMDAyLTAxLTExIDA1OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGJlIGNhcmVmdWwgYWJvdXQgc2lnbmVkZXNzIG9mIGluZGV4IGNvbXBvbmVudHMgaW4gdGFibGVzCiAgIAoyMDAyLTAxLTEwIDEzOjEyICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDcmVhdGUgdGhlIGluY2x1ZGUgZGlyZWN0b3J5IHdoZW4gYnVpbGRpbmcgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAxLTEwIDA4OjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgICAgLSB1c2UgYW4gdW5zaWduZWQgbG9uZyBsb29wIHZhcmlhYmxlIGluIHZhcl9zeXNPUlRhYmxlKCkgdG8gYXZvaWQKICAgICAgIGluY29ycmVjdCBsZXhpLW9yZGVyaW5nIHdoZW4gZG9pbmcgcmVxdWVzdHMgbGlrZSBHRVRORVhUCiAgICAgICBzeXNPUkRlc2NyLjQyOTQ5NjcyOTUuCiAgIAogICAgIC0gbWlub3IgZGVidWdnaW5nIG91dHB1dCBjaGFuZ2VzCiAgIAoyMDAyLTAxLTEwIDA3OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKQogICAKMjAwMi0wMS0xMCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2V0IHR5cGUgZm9yIHVuaGFuZGxlZCBHRVQgcmVxdWVzdHMgaW4gaGFuZGxlX3BkdSgpIHRvIGJlCiAgICAgICBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBub1N1Y2hPYmplY3QgKG5vU3VjaE9iamVjdCBleGNlcHRpb25zCiAgICAgICBhcmUgZGV0ZWN0ZWQgYW5kIGV4cGxpY2l0bHkgc2V0IGVhcmxpZXIpLgogICAKMjAwMi0wMS0xMCAwNTo1MiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBjb3JyZWN0IHR5cG8gdGhhdCBtZWFudCBlcnJvciByZXR1cm5zIGZyb20gb2xkLWFwaSB3cml0ZSBtZXRob2RzCiAgICAgICB3ZXJlIGlnbm9yZWQuCiAgIAoyMDAyLTAxLTEwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBjaGFuZ2UgdmFsdWUgb2YgU1RBVF9UQVJHRVRfU1RBVFNfRU5EIHNvIHRoYXQgbWliSUkvc25tcF9taWIuYyBjYW4KICAgICAgIHJldHVybiB2YWx1ZXMgb2YgbWFuZGF0b3J5IG9iamVjdHMgc25tcFNpbGVudERyb3BzIGFuZAogICAgICAgc25tcFByb3h5RHJvcHMuCiAgIAoyMDAyLTAxLTA5IDA4OjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHVua25vd24vaWxsZWdhbCB2YXJiaW5kIHR5cGVzIGluIHYxL3YyYyBQRFVzIGNhdXNlCiAgICAgICBzbm1wSW5BU05QYXJzZUVycnMgdG8gYmUgaW5jcmVtZW50ZWQuCiAgIAoyMDAyLTAxLTA5IDA3OjU1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOSAwNzozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICAgIC0gYnJpbmcgYXBwLXNwZWNpZmljIG9wdGlvbnMgaW4gbGluZSB3aXRoIHNubXBidWxrd2FsayAoLUMgcmF0aGVyCiAgICAgICB0aGFuIC1CKQogICAKMjAwMi0wMS0wOSAwNzozMSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGZvcm1hdHRpbmcgY2hhbmdlIHRvIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDItMDEtMDkgMDY6MzUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOCAwODo1NSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGFkZCBvcHRpb25zIGZyb20gc25tcHdhbGsKICAgCiAgICAgLSBhbGxvdyBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzIHRvIGJlIHNldAogICAKICAgICAtIGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIG1heC1yZXBlYXRlcnMgdG8gYSBsb3dlciB2YWx1ZSB0byBhdm9pZAogICAgICAgdGltZW91dHMgd2l0aCBzbG93ZXIgYWdlbnRzCiAgIAoyMDAyLTAxLTA4IDA4OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB0cnkgdG8gbWFsbG9jKCkgYSB6ZXJvLWxlbmd0aCBidWZmZXIsIGluIGNhc2Ugc29tZSBtYWxsb2MoKXMKICAgICAgIGNvbXBsYWluLgogICAKMjAwMi0wMS0wOCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaG9wZWZ1bGx5IGZpbmFsIEdFVEJVTEsgZml4IC0tIHBhc3NlcyBhbGwgU2lsdmVyQ3JlZWsncyBHRVRCVUxLCiAgICAgICB0ZXN0cyAoaW5jbC4gbmVnYXRpdmUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycykKICAgCjIwMDItMDEtMDggMDY6NTkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgICAgLSBHRVRCVUxLIGZpeCB0byBpZ25vcmUgdmFyYmluZHMgZm9yIHdoaWNoIHplcm8gcmVwZXRpdGlvbnMgYXJlCiAgICAgICBjYWxsZWQgZm9yCiAgIAogICAgIC0gZHJvcCBhc3AtPnN0YXJ0IGFuZCBhc3AtPmVuZCB3aGljaCBhcmUgaGFyZGx5IHVzZWQgYW5kIHdoaWNoIGdldAogICAgICAgaW4gdGhlIHdheSBvZiB0aGlzIHR5cGUgb2YgcHJvY2Vzc2luZwogICAKICAgICAtIGlnbm9yZSBuZWdhdGl2ZSByZXBldGl0aW9ucyBpbiBidWxrX3RvX25leHQgaGFuZGxlcgogICAKMjAwMi0wMS0wNyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wMS0wNyAwODozOCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL0lOU1RBTEw6CgogICBQTkdHcmFwaCAtPiBHRDo6R3JhcGgKICAgCjIwMDItMDEtMDQgMTM6NDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGRlcGVuZGVuY2llcwogICAKMjAwMi0wMS0wNCAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oOgoKICAgbW92ZSBhY2NvbmZpZy5oIGJhY2sgdG8gdGhlIHRvcCBkaXIgd2hlcmUgaXRzIGFwcGFyZW50bHkgc3VwcG9zZWQgdG8gbGl2ZS4KICAgCjIwMDItMDEtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbW9yZSB1Y2Qtc25tcCAtPiBuZXQtc25tcCB0cmFuc2xhdGlvbnMuICB3YXJuaW5nOiBpbmNsdWRlcyB0aGUgZGVmYXVsdCBwZXJzaXN0ZW50IHN0b3JlLgogICAKMjAwMi0wMS0wNCAxMzowNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS86IG5ldC1zbm1wLy5jdnNpZ25vcmUsIHVjZC1zbm1wLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDEtMDQgMTM6MDIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgYnVpbHQgbmV0LXNubXAtY29uZmlnCiAgIAoyMDAyLTAxLTA0IDEzOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywKICAgbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYwosIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLAogICBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywKICAgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jCiwgc25tcHRyYXBkX2xvZy5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMKLCBzbm1wd2Fsay5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCBzbm1wbGliL3ZhY20uYywgdGVzdGluZy9ULmMsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQva2VybmVsLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMKLCBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYwosIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIHJlbW92ZWQgdW5lZWRlZCBvbGRlciBmaWxlcwogICAKMjAwMi0wMS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCAjNDkyMDcyIHRvIG1haW4gYnJhbmNoCiAgIAoyMDAyLTAxLTAzIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBjaGVjayByZXN1bHRzIG9mIHNldG1udGVudCBiZWZvcmUgdXNpbmcgdGhlbS4KICAgCjIwMDItMDEtMDMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMi0wMS0wMyAxMTo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbToKCiAgIFBOR0dyYXBoIC0+IEdER3JhcGgKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGFuZ2UgZXhwb3J0IG5hbWUgdG8gIm5ldC1zbm1wIiBmcm9tICJ1Y2Qtc25tcCIKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgo6CgogICBtYWtlIHVzZSBvZiB0aGUgbmV3IG11bHRpLWFkZCBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YXNldC5jLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBhZGQgbXVsdGlwbGUgZGVmYXVsdCByb3cgY29sdW1uIGRlZmluaXRpb25zIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZS5oOgoKICAgYWRkIG11bHRpcGxlIGluZGV4ZXMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucyAoZ2V0U3RhdFB0ciBubyBsZXNzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBvaWRfc3Rhc2guYywgb2lkX3N0YXNoLmgKOgoKICAgZGF0YSBzdGFzaGluZyBiYXNlZCBvbiBhbiBvaWQgY2FjaGluZyB0cmVlLgogICAKMjAwMS0xMi0yNiAxNTozNiAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCwgTWFrZWZpbGUuUEwsIG1hbmFnZXIucG0KOgoKICAgdXBkYXRlIHRvIG1ha2UgaXQgYSBiaXQgZWFzaWVyIHRvIGluc3RhbGwgKGluY2x1ZGluZyBhIE1ha2VmaWxlIGZvcgogICBhdXRvbWF0ZWQgaW5zdGFsbGF0aW9uKS4KICAgCjIwMDEtMTItMjYgMTM6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwsIGRpc3BsYXl0YWJsZS5wbSwgZ2V0VmFsdWVzLnBtCiwgZ3JlZW4uZ2lmLCBtYW5hZ2VyLnBtLCByZWQuZ2lmLCBzZXR1cGF1dGgKLCBzZXR1cGRiLCBzZXR1cHVzZXIsIHNubXB0b3NxbDoKCiAgIG1vdmluZyBtYW5hZ2VyIHRvIHBlcmwvbWFuYWdlcgogICAKMjAwMS0xMi0yNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMSApCiAgIAoyMDAxLTEyLTI0IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYywgbWliMmMuY29uZjoKCiAgIFVwZGF0ZSB0byBtYWtlIHBlb3BsZSB1bmRlcnN0YW5kIHRoYXQgaXQncyBub3QgZmluaXNoZWQgYW5kIHlvdSBtdXN0CiAgIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBmaWxlIGF0IHRoaXMgcG9pbnQuCiAgIAoyMDAxLTEyLTI0IDE1OjUxICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5ub3QuZXZlbi5jbG9zZSApCiAgIAoyMDAxLTEyLTI0IDE1OjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtb3JlIGNvbW1lbnRzLgogICAKMjAwMS0xMi0yNCAxNTo0MSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZG94eWdlbiBjb21tZW50cwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgNS4wIGNvbW1lbnQgdXBkYXRlcy4KICAgCjIwMDEtMTItMjQgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGRveHlnZW4gY29tbWVudHMgb24gYSBmZXcgZnVuY3Rpb25zLgogICAKMjAwMS0xMi0yNCAxNTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMi0yNCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIGZvciBub24tZXhpc3RlbnQgbW9kdWxlcwogICAKMjAwMS0xMi0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnOgoKICAgb3Bwcy4gIERvbid0IGNoZWNrIGluIGdlbmVyYXRlZCBmaWxlcy4KICAgCjIwMDEtMTItMjMgMTU6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBycG0gdXNhZ2UgKEkgaG9wZSkuCiAgIAoyMDAxLTEyLTIzIDE0OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkZWQgLmN2c2lnbm9yZSBmaWxlCiAgIAoyMDAxLTEyLTIzIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLgogICAKMjAwMS0xMi0yMyAxNDo0NyAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG5ldC1zbm1wLWNvbmZpZywgbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGNyZWF0ZWQgYSBuZXQtc25tcC1jb25maWcgc2NyaXB0IHRvIHJlcG9ydCBjb21waWxlZCBsaWJzLgogICAtIHNlcGFyYXRlZCBsaWJzIG5lZWRlZCBieSBhZ2VudCBmcm9tIHRob3NlIG5lZWRlZCBieSB0aGUgcmVzdCBvZiB0aGUKICAgICBhcHBsaWNhdGlvbnMuCiAgIAoyMDAxLTEyLTIxIDE2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBob3cgdG8gaW5zdGFsbCBEQkkKICAgCjIwMDEtMTItMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgcmVtb3ZlIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIEFueURhdGEKICAgCjIwMDEtMTItMjEgMTY6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjIwMDEtMTItMjEgMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCwgSU5TVEFMTCwgSU5TVEFMTCwKICAgSU5TVEFMTDoKCiAgIGJldHRlciBkZXNjcgogICAKMjAwMS0xMi0yMSAxNjowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoyMDAxLTEyLTIxIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpdCdzIHZlcnkgYWxwaGEgY29kZS4KICAgCjIwMDEtMTItMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBuZXcgaW5zdHJ1Y3Rpb25zCiAgIAoyMDAxLTEyLTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkb3h5Z2VuLgogICAKMjAwMS0xMi0yMSAxMDoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaDoKCiAgIGNvbXBpbGUgaW4gYWdlbnQgc3BlY2lmaWMgc3VwcG9ydCBtaWJzLgogICAKMjAwMS0xMi0yMSAwOTo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChzdGlsbCBpbmNvbXBsZXRlKSAybmQgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMjEgMDk6NDQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoaW5jb21wbGV0ZSkgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMTkgMTc6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IHJlYWxsb2MgZmxvYXQgYW5kIGRvdWJsZSBidWlsZHMuCiAgIAoyMDAxLTEyLTE5IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNjIGZpeGVzLgogICAKMjAwMS0xMi0xOSAxNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkZWZpbmUgYSBDIGRhdGF0eXBlIGFzICR2YXIuZGVjbCAocGVyIFJvYmVydCdzIHN1Z2dlc3Rpb24uICBSb2JlcnQ6IHdlCiAgIHByb2JhYmx5IHdhbnQgcG9pbnRlcnMgZm9yIHRoaW5ncyBsaWtlIHN0cmluZ3MsIG5vPyAgbWF5YmUgb25lIHR5cGUKICAgdGhhdCBpcyBhbHdheXMgYSBwb2ludGVyIGFuZCBhbm90aGVyIHRoYXQgaXMgc29tZXRpbWVzIGRlcGVuZGluZyBvbgogICB0aGUgdHlwZT8pCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgY2hhbmdlIGRlZmF1bHQgYnVsayBudW1iZXIgdG8gMTAwIGZyb20gdGhlIHJpZGljdWxvdXMgMTAwMC4KICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAxLTEyLTE5IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGdldGJ1bGsgdXBkYXRlcyB0byBtYWtlIGl0IHRoZSBtb2R1bGVzIHJlc3BvbnNpYmlsaXR5IHRvIHVwZGF0ZSB0aGUKICAgdmFyYmluZCBjaGFpbiBhbiB0aGUgcmVwZWF0IGNvdW50ZXIuCiAgIAoyMDAxLTEyLTE5IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgKLCBoZWxwZXJzL01ha2VmaWxlLmluLCBoZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGhlbHBlcnMvYWxsX2hlbHBlcnMuaCwgaGVscGVycy9idWxrX3RvX25leHQuYywKICAgaGVscGVycy9idWxrX3RvX25leHQuaDoKCiAgIEdFVEJVTEsgc3VwcG9ydCBmb3IgdGhlIG5ldyBBUEkuCiAgICAgLSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgc2xpZ2h0IG1vZGlmaWNhdGlvbnMuCiAgICAgLSBkZWZhdWx0cyB0byBHRVRORVhUIGZvciBhbnkgaGFuZGxlciB0aGF0IGRvZXNuJ3Qgc2V0IEhBTkRMRVJfQ0FOX0dFVEJVTEsuCiAgICAgLSBkb2Vzbid0IGRlYWwgcHJvcGVybHkgeWV0IHdpdGggZW5kLW9mLW1pYiBjb25kaXRpb24gcmVtb3ZhbC4KICAgCjIwMDEtMTItMTkgMDY6MDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIC1wIG9wdGlvbi4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMgb3B0aW9uYWwKICAgICAgIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gZHJvcCAobG9uZy1kZXByZWNhdGVkKSAtcSBvcHRpb24uCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBhbmQKICAgICAgIGNoYW5nZWQgZGVzY3JpcHRpb24gb2Ygc29tZSBvcHRpb25zIHRvIGJlIG1vcmUgc2ltaWxhciB0byBzbm1wZAogICAgICAgb3B0aW9ucyAod2hlcmUgYXBwcm9wcmlhdGUpLgogICAKMjAwMS0xMi0xOSAwNDozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMuICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzCiAgICAgICBvcHRpb25hbCBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgcGx1cwogICAgICAgbWlub3IgZm9ybWF0dGluZyB0d2Vha3MuCiAgIAogICAgIC0gcmUtd3JpdHRlbiBvcHRpb25zIHByb2Nlc3NpbmcgbG9vcCB0byB1c2Ugb3B0YXJnKCkuCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuNSksIFVDRC1TTk1QLU1JQi50eHQKOgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgd2FybmluZyAtPiBkZWJ1Zy4KICAgCjIwMDEtMTItMTcgMTA6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBnZXROZXh0IHF1ZXJpZXMgd2hlcmUgdGhlIGluaXRpYWwgdmFyYmluZC0+dHlwZSBpcwogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSAodGhlc2UgY3VycmVudGx5IGFyaXNlIG9ubHkgaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMgYnV0IHRoZSBoYW5kbGluZyBpcyBub3Qgc3BlY2lmaWMgdG8gQWdlbnRYKS4KICAgCiAgICAgICBCYXNpY2FsbHkgdGhpcyBpcyBkb25lIGJ5IHBlcmZvcm1pbmcgYSBHRVQgZmlyc3Qgb24gYWxsIHRoZQogICAgICAgdmFyaWFibGVzIGluIGEgcmVxdWVzdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBoYWQgYW4gaW5pdGlhbCB0eXBlIG9mCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCB3ZXJlIHNhdGlzZmllZCBieSB0aGlzIGluaXRpYWwgR0VULCB3ZSB1c2UKICAgICAgIHRoaXMgdmFsdWUgYXMgdGhlIHJlc3VsdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBkaWQgbm90IGhhdmUgYW4KICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFLCBvciB2YXJpYWJsZSB0aGF0IGhhZCBhbmQKICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFIGJ1dCB3ZXJlIG5vdCBzYXRpc2ZpZWQgYnkgdGhpcwogICAgICAgR0VUIHJlcXVlc3QsIHdlIHByb2NlZWQgdG8gcGVyZm9ybSBhIEdFVC1ORVhUIHR5cGUgcmVxdWVzdCBhcwogICAgICAgbm9ybWFsLgogICAKMjAwMS0xMi0xNyAxMDowNCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoIGVtdWxhdGVzIG9sZAogICAgICAgZnVuY3Rpb25hbGl0eS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gcmVnaXN0ZXJfb2xkX2FwaSgpLgogICAKMjAwMS0xMi0xNyAwOTozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBib2d1cyBpbmRlbnQKICAgCjIwMDEtMTItMTcgMDk6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHJpZ2h0IG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlZ2lzdGVyX21pYl9jb250ZXh0MigpIGluCiAgICAgICByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiBkaXR0by4KICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSBoYW5kbGVyIGluamVjdGlvbiBvcmRlciAoc2VyaWFsaXplIG5lZWRzIHRvIGJlIGNhbGxlZCBmaXJzdCkKICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjaGVjayBmb3IgYWxyZWFkeSBhbnN3ZXJlZCBBU05fTlVMTHMgaW4gZmlyc3QgcGFzcy4KICAgCjIwMDEtMTItMTIgMDk6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogLmN2c2lnbm9yZSwgSU5TVEFMTCwgTUFOSUZFU1QKLCBSRUFETUUsIHNubXBzaDoKCiAgIC0gZG9jIHVwZGF0ZS4KICAgLSBzbm1wc2ggbm93IHN1cHBvcnRzIGFsaWFzZXMgc28geW91IGNhbiBkZWZpbmUgY29tbWFuZCBzZXRzLgogICAtIHNubXBzaCBub3cgcmVhZHMgYSB+Ly5zbm1wc2hyYyBmaWxlIGZvciBzdG9yaW5nIHRoZXNlIGRlZmluZWQgYWxpYXNlcy4KICAgCjIwMDEtMTItMTIgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBuZXcgZnVuY3Rpb24gam9pbl9zdWJ0cmVlKCkgd2hpY2ggcmVwYWlycyAicHVuY3R1cmVkIiBzdWJ0cmVlcwogICAgICAgKHRoZXNlIGFyaXNlIGluIHBhcnRpY3VsYXIgd2hlbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMgYXJlCiAgICAgICB3aXRoZHJhd24pLgogICAKICAgICAtIGNvcHkgcmVnaW5mbyB3aGVuIGRvaW5nIGEgcmFuZ2UgcmVnaXN0cmF0aW9uIChhcyB3ZSB1c2VkIHRvIGRvCiAgICAgICB3aXRoIHRoZSB2YXJpYWJsZSBzdHJ1Y3R1cmUpLCBzaW5jZSBlYWNoIG5vZGUgbXVzdCBzdGFuZCBhbG9uZS4KICAgCiAgICAgLSBhZGQgcGFyYW1ldGVyIHRvIHJlZ2lzdGVyX21pYl9jb250ZXh0MiB0byBhbGxvdyBSRUdJU1RFUl9PSUQKICAgICAgIGNhbGxiYWNrcyB0byBiZSB3aXRoaGVsZCAoZm9yIGluc3RhbmNlLCB5b3UgbmVlZCB0aGlzIHRvIGF2b2lkCiAgICAgICBleGNlc3MgQWdlbnRYIHRyYWZmaWMgZm9yIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSByZW1vdmUgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIC0tIHRoaXMgaGFzIG1vdmVkIHRvIG9sZF9hcGkuYwogICAKICAgICAtIGNhbGwgam9pbl9zdWJ0cmVlKCkgaW4gdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKS4KICAgCjIwMDEtMTItMTIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X2hhbmRsZXIuaDoKCiAgICAgLSBhZGQgZnVuY3Rpb25zIHNubXBfaGFuZGxlcl9mcmVlKCksIHNubXBfaGFuZGxlcl9kdXAoKSwKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZHVwKCkgYW5kCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKS4KICAgCjIwMDEtMTItMTEgMTg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IGJ1ZyB3aGVyZSBwZHUtPmNvbnRleHROYW1lIGlzIE5VTEwuCiAgIAoyMDAxLTEyLTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEJJVFM6IGlwYWRkciAtPiBvY3RldF9zdHIKICAgCjIwMDEtMTItMTEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNlbmQgSU5DTFVTSVZFIHNlYXJjaCByYW5nZXMgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMTAgMjA6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBub2FjY2VzcyBmbGFnIGZvciBub3QtYWNjZXNzaWJsZSBub2RlcwogICAKMjAwMS0xMi0xMCAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBDaGFuZ2VzLCBEQkRfQW55RGF0YS5wYXRjaCwKICAgRm9ybWF0LnBtLCBJTlNUQUxMLCBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsCiAgIFN0b3JhZ2UucG0sIHNubXBzaDoKCiAgIEZpcnN0IHZlcnNpb24KICAgCjIwMDEtMTItMTAgMDM6MjAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAgYXJnIHRvIGRzX3NldF9zdHJpbmcKICAgCjIwMDEtMTItMTAgMDM6MTkgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRpdHRvIGluIHNldF9wZXJzaXN0ZW50X2RpcmVjdG9yeSgpCiAgIAoyMDAxLTEyLTEwIDAzOjE4ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBpbiBzZXRfY29uZmlndXJhdGlvbl9kaXJlY3RvcnkoKSBiZWNhdXNlCiAgICAgICBkc19zZXRfc3RyaW5nKCkgYWxyZWFkeSBkb2VzIHRoYXQgZm9yIHlvdS4KICAgCjIwMDEtMTItMDcgMDk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgKLCBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICAtIEltcGxlbWVudCBuZXcgbWFudHJhOiAiYWx3YXlzIHBhc3MgbW9yZSBpbmZvcm1hdGlvbiwgcmF0aGVyIHRoYW4gbGVzcyIuCiAgIC0gZml4IHRhYmxlIGl0ZXJhdGVyIEdFVE5FWFRzIGZvciBtaXNzaW5nIGRhdGEgcG9pbnRzLgogICAtIGFkZCBhIG5ldyBob29rIHRvIGZyZWUgbG9vcCBjb250ZXh0cyBhdCB0aGUgZW5kIG9mIHRoZSBlbnRpcmUgaXRlcmF0aW9uLgogICAKMjAwMS0xMi0wNiAwNjo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAoSkJQTi1DQkwtNC4xKSwgY2xpZW50LmM6CgogICAgIC0gaWYgcmVxdWVzdCBJRHMgZG9uJ3QgbWF0Y2gsIHRoZW4gY2FsbCBoYW5kbGVfYWdlbnR4X3BhY2tldCgpIC0tCiAgICAgICBjb3BlcyBiZXR0ZXIgd2l0aCB1bmV4cGVjdGVkIHBhY2tldHMsIGluIHBhcnRpY3VsYXIgZml4ZXMKICAgICAgIGludGVybWl0dGVudCBkdXBsaWNhdGUgdHJhcCBpc3N1ZSAoZHVlIHRvIHJlc2VudAogICBhZ2VudHgtTm90aWZ5LVBEVSkuCiAgIAoyMDAxLTEyLTA1IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFoZW0uICBPcHBzLiAgTWlzc2luZyBpbmNsdWRlcy4KICAgICAtIG5vdGUgdG8gc2VsZjogY29tcGlsZSBmaXJzdCwgKnRoZW4qIGNoZWNrIGluIGNoYW5nZXMuCiAgIAoyMDAxLTEyLTA1IDEzOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGFkZCBpbiB0aGUgbWlzc2luZyBmdW5jdGlvbnMgZnJvbSB0aGUgTkVXLUFHRU5ULUFQSSBicmFuY2guCiAgICAgKGFuZCB0byBhbnN3ZXIgUm9iZXJ0J3MgcGVuZGluZyBxdWVzdGlvbiBvZiB3aGF0IGhhcHBlbmVkLCBpdCB3YXMKICAgICAgbGlrZWx5IG9uZSBvZiB0aGUgZmlsZXMgdGhhdCBmYWlsZWQgdG8gY29tbWl0IG9uIG15IHNpZGUgdGhhdCB5b3UKICAgICAgdHJpZWQgdG8gZml4IGFuZCBzb21ld2hlcmUgYmV0d2VlbiB0aGUgdHdvIG9mIHVzIHRoZSBjaGFuZ2VzIHdlcmUgbG9zdCkuCiAgIAoyMDAxLTEyLTA1IDEwOjAzICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWlub3IgdHdlYWtzCiAgIAoyMDAxLTEyLTA1IDA5OjE0ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gYWRkIFRDUC9JUHY2IGRvbWFpbiB0byBBR0VOVCBTUEVDIHNlY3Rpb24KICAgCiAgICAgLSBpbmNvcnBvcmF0ZSBzdWdnZXN0aW9ucyBmcm9tIHJzdG9yeQogICAKMjAwMS0xMi0wNSAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICAgIC0gdXNlIFNPQ0tfU1RSRUFNIG5vdCBTT0NLX0RHUkFNIChkdWghKS4gIFlvdSB3b3VsZG4ndCBiZWxpZXZlIGhvdwogICAgICAgY29uZnVzaW5nIHRoaXMgd2FzIC0tIGUuZy4gaG93IG9uICplYXJ0aCogY2FuIHRoYXQgY29ubmVjdCgpIGJlCiAgICAgICBzdWNjZWVkaW5nIQogICAKMjAwMS0xMi0wNSAwODozNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIHN1cmUgdG8gY2xvc2Ugc29ja2V0IGlmIHlvdSBjYW4ndCBtYWxsb2MgdGhlIGVuY29kZWQgZmFyLWVuZAogICAgICAgYWRkcmVzcyBpbiBzbm1wX3RjcF90cmFuc3BvcnQoKQogICAKMjAwMS0xMi0wNSAwODoyNyAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwODoyMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFJFQURNRSwKICAgUkVBRE1FLndpbjMyLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgbG9jYWwvbWliMmMsIGxvY2FsL3RrbWliCiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgcGVybC9TTk1QL1NOTVAucG0sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLCB3aW4zMi93aW4zMi5kc3csCiAgIHdpbjMyL3dpbjMyLm9wdCwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAosIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcAosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcAosIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcAo6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwNzo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gZml4IGJ1ZyBpbiBhZGRyZXNzIHBhcnNlcgogICAKMjAwMS0xMi0wNSAwNzo0OCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvLCBhaGVtLCBtYWtlIGl0IGNvbXBpbGUKICAgCjIwMDEtMTItMDUgMDc6NDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gY29uZGl0aW9uYWxpc2UgI2luY2x1ZGUgPGZjbnRsLmg+CiAgIAoyMDAxLTEyLTA1IDA3OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMi0wNSAwNzoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gbWVudGlvbiB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGluIGNvbmZpZywgYW5kIGFkZCBhICNkZWZpbmUgZm9yIGl0CiAgICAgICBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gY2FsbCBzbm1wX3RjcDZfY3RvcigpIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5oOgoKICAgICAtIFRDUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBVbnRlc3RlZC4KICAgCjIwMDEtMTItMDUgMDc6MTkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1ha2UgZW5jb2RlZCBhZGRyZXNzZXMgYXQgdHJhbnNwb3J0IG9wZW4gdGltZQogICAKMjAwMS0xMi0wNSAwNzoxNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIG1vdmUgI2RlZmluaXRpb24gb2YgU05NUF9TVFJFQU1fUVVFVUVfTEVOIGZyb20gc25tcFRDUERvbWFpbi5jCiAgICAgICB0byBzbm1wX3RyYW5zcG9ydC5oCiAgIAoyMDAxLTEyLTA1IDA3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICByZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMgbGlrZSwgb2gsIEkgZG9uJ3Qga25vdywgZ2V0U3RhdFB0cigpLgogICAKMjAwMS0xMi0wNSAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMTItMDUgMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGNoYW5nZWQgdGV4dHVhbCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTItMDQgMjI6NTIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXggYmluZCBwYXJhbWV0ZXJzLCBzbyB0aGF0IHRoZSBhZ2VudCB3b3JrcwogICAKMjAwMS0xMi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIC0gbW92ZSBmb3Jnb3R0ZW4gZnVuY3Rpb24gdHlwZWRlZnMgdG8gaXRlcmF0b3Igc3BlY2lmaWMgaGVhZGVyIGZpbGUuCiAgIC0gYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBjYWxsYmFja3MgdG8gbWFrZSBmdW5jdGlvbnMgbW9yZSByZXVzYWJsZS4KICAgCjIwMDEtMTItMDQgMTM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgo6CgogICBtb3ZlIGl0ZXJhdG9yIHNwZWNpZmljIHRhYmxlIGluZm9ybWF0aW9uIGludG8gaXRzIG93biBzdHJ1Y3R1cmUuCiAgIAoyMDAxLTEyLTA0IDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBGaXggcHJvdG90eXBlIGFzIHBvaW50ZWQgb3V0IGJ5IEplcm9tZSBQZWR1Y2Fzc2UKICAgCjIwMDEtMTItMDQgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtZW50aW9uIHRoYXQgbm90IGFsbCB0cmFuc3BvcnQgZG9tYWlucyBhcmUgYWx3YXlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMTItMDQgMDk6NTUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSByZW1vdmUgLXAgYW5kIC1UIG9wdGlvbnMgZnJvbSBkb2N1bWVudGF0aW9uLgogICAKICAgICAtIGFkZCBsZW5ndGh5IG5ldyBzZWN0aW9uIGRlc2NyaWJpbmcgbmV3IHRyYW5zcG9ydCBhZGRyZXNzCiAgICAgICBzcGVjaWZpY2F0aW9uIGZvcm1hdCwgd2l0aCBleGFtcGxlcyBhbmQgZXZlcnl0aGluZyEKICAgCjIwMDEtMTItMDQgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zIGZvciBhcHBzLgogICAKMjAwMS0xMi0wNCAwMzoxMCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBhZGQgY3JlYXRlX29zdHJpbmcgbWV0aG9kLCBleHBvcnQgdWNkU25tcFVEUElQdjZEb21haW5bXQogICAKMjAwMS0xMi0wNCAwMjoxOSAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gbWVudGlvbiBJUHY2IHRyYW5zcG9ydCBkb21haW4gT0lEcyBpbiByZWxldmFudCBjb21tZW50LgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUXVlbGwgYSBjb25zdCBjYXN0IHdhcm5pbmcuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGRlYnVnIG91dHB1dCBmcm9tIHJldHJpZXMuCiAgIAoyMDAxLTEyLTAzIDE1OjA2ICBuYmEKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBIQVZFX1NZU19UWVBFU19IIGlzIG5vdCBjb25kaXRpb25hbC4KICAgCjIwMDEtMTItMDMgMTU6MDQgIG5iYQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IHRvIGFsbG93IGNvbXBpbGF0aW9ucyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkuCiAgIAoyMDAxLTEyLTAzIDE1OjAzICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeGVzIHRvIG1ha2UgVURQSVB2NiB0cmFuc3BvcnQgd29yayBmb3IgU29sYXJpcywgTGludXggYW5kIEZyZWVCU0QuCiAgIEl0IGNvbXBpbGVzLCBhbmQgdGhlIGFwcHMgc2VuZCB2NiBwYWNrZXRzLiBBZ2VudCBub3QgeWV0IHRlc3RlZC4KICAgCjIwMDEtMTItMDMgMDk6NDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mCjoKCiAgIGNvcHkgcm9iZXJ0cyBzcGlmZnkgaGVhZGVyIHRleHQKICAgCjIwMDEtMTItMDMgMDg6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZGF0ZW50aW1lIGNvbHVtbi4KICAgCjIwMDEtMTItMDMgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBwcm9ibGVtIHdpdGggZG91YmxlIGRlbGVnYXRlZCByZXF1ZXN0cyBhZnRlciBnZXRuZXh0IGxvb3AuCiAgIAoyMDAxLTEyLTAzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQ6CgogICBub3RpZmljYXRpb24gbG9nIG1pYiBhZGRlZCB0byBkZWZhdWx0IGxpc3QuCiAgIAoyMDAxLTEyLTAzIDA1OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBkZWJ1Z2dpbmcgb3V0cHV0ICgiYmxhaCIpCiAgIAoyMDAxLTExLTMwIDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgKOgoKICAgQ2hhbmdlIGhvdyByZXF1ZXN0IHByb2Nlc3NpbmcgZ2V0cyBkb25lIHN1Y2ggdGhhdCByZXF1ZXN0IG9iamVjdHMgYXJlCiAgIGFsbCBjYWxsb2NlZCBhdCBvbmNlIGFuZCBnZXQgcmV1c2VkIGluc3RlYWQgb2YgcmVhbGxvY2F0ZWQuICBCaWcgc3BlZWQKICAgaW1wcm92ZW1lbnRzLgogICAKMjAwMS0xMS0zMCAxNToyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgICJtYWtlIGRvYyIgdG8gcnVuIGRveHlnZW4uCiAgIAoyMDAxLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogZGVidWdfaGFuZGxlci5jLCBtdWx0aXBsZXhlci5oOgoKICAgZG94eWdlbiBmaXhlcwogICAKMjAwMS0xMS0zMCAwOToyNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UgaW4gcmVnaXN0ZXJfaGFuZGxlcigpIGlmIGFwcHJvcHJpYXRlLgogICAKMjAwMS0xMS0zMCAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkgd2hlbiBzdWJhZ2VudCB0cmllcyB0bwogICAgICAgcmVnaXN0ZXIgYSBNSUIgcmVnaW9uIHRoYXQgZmFpbHMgZWl0aGVyIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUKICAgICAgIG9yIGJlY2F1c2Ugb2Ygc29tZSBvdGhlciByZWFzb24uCiAgIAoyMDAxLTExLTMwIDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBvZiBvbGRfaW5mbyAodGhhdCBuZXZlciBzZWVtcyB0byBnZXQgdXNlZCBmb3IKICAgICAgIGFueXRoaW5nIGFueXdheT8pCiAgIAogICAgIC0gZml4IG1lbW9yeSBsZWFrIHRoYXQgYXJpc2VzIGR1cmluZyByb3cgcmVnaXN0cmF0aW9uIChpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cykgYmVjYXVzZSBzdWNjZXNzaXZlIHZhcnMgY2F1c2UgYXBwYXJlbnQgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zICh0aGlzIGlzIGEgZGVmaWNpZW5jeSkgLS0gYnV0IGl0IHdvdWxkIGFwcGVhciB0aGlzCiAgICAgICBjb3VsZCBhcmlzZSBpbiBvdGhlciBzaXR1YXRpb25zIHRvbyAoZ2VudWluZSBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMpLgogICAKMjAwMS0xMS0zMCAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gZml4IGJyb2tlbiBwYXJzaW5nIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2VzcygpIC0tIGxvb3Agd2FzCiAgICAgICBjb3B5aW5nIHRoZSBzYW1lIChmaXJzdCkgdG9rZW4gTUFYX0FSR1MgdGltZXMuCiAgIAogICAgIC0gZWxpbWluYXRlIG1lbW9yeSBsZWFrIGluIGRpdHRvLgogICAKICAgICAtIGZpeCB0eXBvICgiUGF1c2libGUgY2F1c2UiIC0+ICJQb3NzaWJsZSBjYXVzZSkgaW4gZGl0dG8uCiAgIAoyMDAxLTExLTMwIDA2OjI5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwcmludCBmZCBpbiBzZXNzX3Byb2Nlc3NfcGFja2V0KCkgLS0gdXNlZnVsIGZvciBkZWJ1Z2dpbmcKICAgCjIwMDEtMTEtMzAgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgICAgLSByZW1vdmUgYSBjb3VwbGUgb2YgdW5uZWNlc3NhcnkgI2luY2x1ZGVzIGZyb20gc25tcENhbGxiYWNrRG9tYWluLmgKICAgCiAgICAgLSBzZXQgKm9wYXF1ZSB0byBOVUxMIGFmdGVyIHdlIGZyZWUgaXQgLS0gaXQgbWlnaHQgbWF0dGVyLgogICAKMjAwMS0xMS0zMCAwMzo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBjbG9uZSBQRFUgaW4gaGFuZGxlX2FnZW50eF9zdWJhZ2VudCgpIGJlZm9yZSBzZW5kaW5nIGl0IG9uIGNhbGxiYWNrCiAgICAgICBzZXNzaW9uIHRvIGF2b2lkIGRvdWJsZSBmcmVlKCkgYW5kIGZyZWUoKWQgbWVtb3J5IHJlYWRzLgogICAKICAgICAtIG1vcmUgY29uY2lzZSAoYWhlbSkgZGVjbGFyYXRpb24gb2YgbXljYWxsYmFjayBpbiBoYW5kbGVfYWdlbnR4X3BhY2tldCgpLgogICAKMjAwMS0xMS0yOSAwNTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcHV0IHNlc3Npb24gYW5kIHN1YnNlc3Npb24gaW4gc3ViYWdlbnQgZGVzY3JpcHRpb24gKGhlbHBmdWwgZm9yCiAgICAgICBkZWJ1Z2dpbmcpCiAgIAoyMDAxLTExLTI5IDA1OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IElOU1RBTExIRUFERVJTCiAgIAoyMDAxLTExLTI5IDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBzb21lIGRlYnVnZ2luZyB0byBpbml0X3N1YmFnZW50KCkgKHdoaWNoIHNob3dlZCB0aGF0IGl0IHdhc24ndAogICAgICAgYmVpbmcgY2FsbGVkLCBzby4uLikuCiAgIAogICAgIC0gZml4IGNhc3QgaW4gaGFuZGxlX3N1YmFnZW50X3NldF9yZXNwb25zZSgpCiAgIAoyMDAxLTExLTI5IDA1OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1ha2Ugc3VyZSBpbml0X3N1YmFnZW50KCkgZ2V0cyBjYWxsZWQKICAgCjIwMDEtMTEtMjggMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjaGVjayBmb3Igc2Vzc2lvbiByZWdpc3RyYXRpb25zIGluIGFsbCBjb250ZXh0cy4KICAgCjIwMDEtMTEtMjggMDY6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgQWRkIHN5cy90eXBlcy5oIGZvciBidWcgIzQ4NjI3Ny4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICAgIC0gI2luY2x1ZGUgPG5ldGRiLmg+CiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBpbnN0YWxsIHNubXBfdHJhbnNwb3J0LmggYW5kIHNubXAqRG9tYWluLmggKGZvciB0aGUgY29uZmlndXJlZAogICAgICAgdHJhbnNwb3J0IGRvbWFpbnMpCiAgIAoyMDAxLTExLTI4IDAzOjI5ICBqYnBuCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgICAgLSByZXZlcnNlIG15c3RlcnkgcmVtb3ZhbCBvZiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiBhbmQgI2luY2x1ZGUKICAgPHN5cy90aW1lLmg+CiAgIAoyMDAxLTExLTI3IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgbW9yZSBpbnRlbGxpZ2VudGx5IGFsbG9jYXRlIHRyZWUgc3BhY2UgYmFzZWQgb24gbnVtYmVyIG9mIHZhcmJpbmRzIGluIHJlcXVlc3QuCiAgIAoyMDAxLTExLTI3IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgbWFsbG9jIG9uZSBsYXJnZSB0cmVlX2NhY2hlIGFycmF5IHJhdGhlciB0aGFuIGFuIGFycmF5IG9mIHRyZWVfY2FjaGUgcG9pbnRlcnMuCiAgIAoyMDAxLTExLTI3IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBpbmNsdWRlIGZpbGUgbmFtZSBjaGFuZ2UuCiAgIAoyMDAxLTExLTI3IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb21tZW50IGNoYW5nZXMuCiAgIAoyMDAxLTExLTI3IDA3OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4ZWQgTWFrZWZpbGUgZm9yIHNubXB0cmFwZC4KICAgCjIwMDEtMTEtMjcgMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBNYWtlZmlsZS5pbiwgYWxsX2hlbHBlcnMuYywKICAgYWxsX2hlbHBlcnMuaCwgZGVidWdfaGFuZGxlci5jLCBkZWJ1Z19oYW5kbGVyLmg6CgogICBkZWJ1ZyBoYW5kbGVyIGNyZWF0ZWQgZm9yIGluc2VydGluZyBkZWJ1Z2dpbmcgb3V0cHV0IGludG8gdGhlIGNhbGxpbmcgY2hhaW4uCiAgIAoyMDAxLTExLTI3IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBlbnVtIGRlZmluaXRpb25zIGZvciBtb2RlcyBhbmQgY2FuX21vZGVzLgogICAKMjAwMS0xMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IFBEVSB2YXJpYWJsZSB0byBOVUxMIHRvIGF2b2lkIGZyZWVpbmcgaXQgdHdpY2UuCiAgIAoyMDAxLTExLTI2IDExOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgcGx1ZyBhbm90aGVyIG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwOTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LAogICBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTLAogICBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUywKICAgVDAyOHNubXB2M2dldGZhaWwsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwCiwgVDA1NmFnZW50djJjbWludHJhcCwgVDExMGFnZW50eGdldCwKICAgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwLAogICBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGRvbid0IHVzZSBjb250ZXh0cyBpbiB0ZXN0cy4KICAgCjIwMDEtMTEtMjYgMDg6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaXggbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMsIGFnZW50eC9tYXN0ZXIuYywKICAgdWNkLXNubXAvcHJveHkuYzoKCiAgIHVzZSBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHRvIHBsdWcgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMS0yNiAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X2hhbmRsZXIuaDoKCiAgIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgcm91dGluZQogICAKMjAwMS0xMS0yNiAwODoxOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCB0aGUgYWJpbGl0eSB0byBsaXN0ZW4gZm9yIHRyYXBzIG9uIG11bHRpcGxlIHRyYW5zcG9ydHMgdmlhIHRoZQogICAgICAgLXAgb3B0aW9uIChjb25zaXN0ZW50IHdpdGggc25tcGQpLgogICAKMjAwMS0xMS0yNiAwNTo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl90cmFuc3BvcnRfb2lkKCkgdG8gZG8gc2Vzc2lvbiBjcmVhdGlvbiBmcm9tCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpciwgdG8gYWxsb3cgY3JlYXRpb24gb2YKICAgICAgIG5vbi1JUHY0IHNlc3Npb25zIGluIHNubXBUYXJnZXRBZGRyVGFibGUuCiAgIAoyMDAxLTExLTI2IDA0OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpbmcgYSB0cmFuc3BvcnQgZnJvbSBhCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpci4KICAgCjIwMDEtMTEtMjYgMDM6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fc3VwcG9ydCgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEgdHJhbnNwb3J0IGRvbWFpbgogICAgICAgaXMgc3VwcG9ydGVkLgogICAKMjAwMS0xMS0yMyAxMDoyNCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCBtdWx0aXBsZSB0cmFuc3BvcnQgZG9tYWluIHN1cHBvcnQgZm9yIHRyYXBkIC0tIHRoaXMgd2FzIHJlYWxseQogICAgICAgUkVBTExZIGVhc3khCiAgIAoyMDAxLTExLTIzIDA5OjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBmdW5jdGlvbiBzbm1wX3RyYW5zcG9ydF9zdXBwb3J0KCkgKHJlcGxhY2VkIHdpdGgKICAgICAgIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkpLgogICAKMjAwMS0xMS0yMyAwODo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmM6CgogICAgIC0gdXNlIG5ldHdvcmsgb3JkZXIgZm9yIEFBTDVQVkMgdHJhbnNwb3J0IGFkZHJlc3MgZW5jb2RpbmcKICAgCjIwMDEtMTEtMjMgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBzZXQgbG9jYWxfbGVuZ3RoLCByZW1vdGVfbGVuZ3RoIGFzIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTExLTIzIDA4OjM5ICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTEtMjMgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBtYWtlIHRyYXBzIHdvcmsgd2l0aCBuZXctc3R5bGUgYWRkcmVzc2VzLCB1c2UgZG9tYWluLWJhc2VkIGFkZHJlc3MKICAgICAgIGVuY29kaW5ncyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLiAgTm90ZSB5b3UgY2FuIG5vdyBzZW5kIHRyYXBzL2luZm9ybXMKICAgICAgIG92ZXIgYW55IHN1cHBvcnRlZCB0cmFuc3BvcnQgdHlwZSBieSB1c2luZyB0aGUgdHJhcHNlc3MgZGlyZWN0aXZlIGFuZAogICAgICAgYSB0cmFuc3BvcnQ6YWRkcmVzcyB0eXBlIHNwZWNpZmljYXRpb24uCiAgIAoyMDAxLTExLTIzIDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgICAgLSBjcmVhdGUgYXBwcm9wcmlhdGVseS1lbmNvZGVkIGxvY2FsIG9yIHJlbW90ZSBlbmRwb2ludCBhZGRyZXNzZXMgYXQKICAgICAgIHRyYW5zcG9ydCBvcGVuIHRpbWUuCiAgIAoyMDAxLTExLTIzIDA2OjUwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyBmb3IgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0yMiAwOTowOCAgamJwbgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LAogICB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwgdGVzdHMvVDAxNHNubXB2MmNnZXQsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLAogICB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiwgdGVzdHMvVDAyMHNubXB2M2dldCwgdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdHMvVDA1MHNubXB2M3RyYXAsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdHMvVDEwMGFnZW50aHVwLAogICB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgICAtIHVzZSB1ZHA6PGhvc3RuYW1lPjo8cG9ydD4gaW5zdGVhZCBvZiAtcCB0byBtYWtlIHRlc3RzIHdvcmsgYWdhaW4KICAgCjIwMDEtMTEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIG1vcmsgd29yZSBvbiB0aGUgbm90aWZpY2F0aW9uIGxvZyBtaWIuICBJdCBub3cgc3VwcG9ydHMgdmFyaWFibGUKICAgc3RvcmFnZSwgYnV0IHNlZ2ZhdWx0cyBvbiBhY2Nlc3MgZHVlIHRvIHBkdSBjbG9uaW5nIHByb2JsZW1zIEknbSBub3QKICAgZ29pbmcgdG8gd29yayBvdXQgcmlnaHQgbm93LgogICAKMjAwMS0xMS0yMSAyMzoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBzbm1wdHJhcGQgbGlua2luZy4KICAgCjIwMDEtMTEtMjEgMjI6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgT0lEX0xFTkdUSDsgdXNlIGFjdHVhbCBvaWQgdHlwZSBpbiBjYWxjdWxhdGlvbgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGFkZCBOVUxMIHBvaW50ZXIgZm9yIHJidWlsZCBpbiBzZXNzaW9uIGNyZWF0aW9uLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKOgoKICAgbmV0aW5ldC9pbi5oIG5lZWRlZC4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgdmFyaWFibGUgY2xlYW4gdXBzLgogICAKMjAwMS0xMS0yMSAyMjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgbG9jYWwvbWliMmMsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mLAogICBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wLXRjLmgsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCjoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMjowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiB2YWNtLmgsIGFzbjEuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYywgb2lkX2FycmF5Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIGRhdGFfbGlzdC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDE4OjU2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCB2ZXJzaW9uLmgsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmgsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmgsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmgsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAwNjo0MyAgamJwbgoKICAgKiBjb25maWcuaC5pbjoKCiAgICAgLSBJUHY2IGNvbmZpZyBkZWZzCiAgIAoyMDAxLTExLTIxIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBub3ctZXh0cmFuZW91cyAjaW5jbHVkZSAic25tcEJsYWhEb21haW4uaCIgbGluZXMKICAgCjIwMDEtMTEtMjEgMDM6MzkgIGpicG4KCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0xMS0yMCAwOTozOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmg6CgogICAgIC0gZHVoLiAgRm9yZ290IGEgY291cGxlIG9mIHRoaW5ncyB0byBkbyB3aXRoIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQKICAgICAgIGFkZHJlc3MgcGFyc2luZy4KICAgCjIwMDEtMTEtMjAgMDk6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBuZXcgZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcgZm9yIGFnZW50IE5TQVBzCiAgIAoyMDAxLTExLTIwIDA5OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywgc25tcFRDUERvbWFpbi5oCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmgsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTEtMjAgMDk6MTYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIE5vdGU6IGluY29tcGxldGUhCiAgIAoyMDAxLTExLTIwIDA4OjI5ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfaW5kZXguaDoKCiAgICAgLSB1bnJlZ2lzdGVyX3tzdHJpbmcsaW50LG9pZH1faW5kZXgoKSB1dGlsaXR5IGZ1bmN0aW9ucyBjb250cmlidXRlZAogICAgICAgYnkgRGFtaWFuIEdpbG11cnJheS4KICAgCjIwMDEtMTEtMjAgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmggKFY0LTItcGF0Y2hlcy4xKSwgc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YgU05NUF9NQVhfU0VDX05BTUVfU0laRSwgbm90ZWQgYnkKICAgICAgIEthcmwgTS4gSGVnYmxvb20uCiAgIAoyMDAxLTExLTE5IDE2OjU5ICBkcmllaHVpcwoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCB0eXBvIGluIGNvbW1lbnQgW2thcmxoZWdAbWljcm9zaGFycC5jb21dCiAgIAoyMDAxLTExLTE2IDA4OjM0ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgVW5zaWduZWQzMi9HYXVnZTMyIHR5cGVzCiAgIAoyMDAxLTExLTE1IDEwOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHByb3RvY29sLmMgKFY0LTItcGF0Y2hlcy41KSwgcHJvdG9jb2wuYwo6CgogICAgIC0gc3RyaWN0ZXIgdGVzdCBmb3IgbnVsbCBPSURzCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA2OjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGxldCBWQUNNIGNoZWNrcyBzdWNjZWVkIGZvciBub24tSVB2NCB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTE1IDA1OjE5ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0LCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBkLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGZvcm1hdHRpbmcgb2YgdXNhZ2UgbWVzc2FnZQogICAKMjAwMS0xMS0xNSAwNDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlICJzbm1wZC5oIiAoZm9yICNkZWZpbml0aW9uIG9mIE1BU1RFUl9BR0VOVCkKICAgICAtIGRvbid0IHN0cmR1cCgpIGFnZW50eHNvY2tldCB2YWx1ZSAtLSBkc19zZXRfc3RyaW5nIGRvZXMgaXQgZm9yIHlvdQogICAgIC0gY2hhbmdlIGRlYnVnZ2luZyB0byBmaXQgaW4gYmV0dGVyIHdpdGggcmVzdCBvZiBtb2R1bGUKICAgCjIwMDEtMTEtMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzcsN10pLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGluaXQgZnVuY3Rpb24gY2hlY2tpbmcgaW4gbW9kdWxlcwogICAKMjAwMS0xMS0xNCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5jLCBhZ2VudHhfY29uZmlnLmgKLCBtYXN0ZXIuYywgbWFzdGVyLmgsIHN1YmFnZW50Lmg6CgogICBzbGlnaHRseSBtb2RpZmllZCBwYXRjaCBmcm9tIEhhcnJpZSB0byBtb3ZlIGFnZW50eCBjb25maWd1cmF0aW9uIGludG8KICAgYSBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmg6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZmlsZSBORVQtU05NUC1BR0VOVC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAwNToyOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBxdWlldGVuIHNvbWUgbm9pc3kgbG9nZ2luZwogICAKMjAwMS0xMS0xMyAwNDoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gdXNlIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoZW4gYXBwcm9wcmlhdGUgaW4KICAgICAgIHVucmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCjIwMDEtMTEtMTMgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSByZXNldCB2ci0+bmFtZWxlbiB3aGVuIHdlJ3ZlIGZpbmlzaGVkIHdpdGggaXQKICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgZmlsZSBhbGxfaGVscGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTA4IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYmV0dGVyIGltcGxlbWVudGF0aW9uIG9mIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpLCB3aGljaCB1c2VzCiAgICAgICByYW5nZXMgcHJvcGVybHkgaW4gdGhlIGNhbGxiYWNrIChoZW5jZSBtdWNoIG1vcmUgZWZmaWNpZW50IGZvcgogICAgICAgQWdlbnRYKS4KICAgCjIwMDEtMTEtMDcgMDk6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1yZWR1bmRhbnQgYWdlbnR4X2J1aWxkIGZ1bmN0aW9ucwogICAKMjAwMS0xMS0wNyAwNjozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyX2FkbWluLmMsCiAgIHByb3RvY29sLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UoKSBpbiBhIGNvdXBsZSBvZiBwbGFjZXMgZm9yIG1vcmUgY29tcHJlaGVuc2l2ZQogICAgICAgZGVidWdnaW5nIG91dHB1dC4KICAgCiAgICAgLSBwYXJzZSB1bnJlZ2lzdGVyIHJhbmdlcyBwcm9wZXJseSwgYW5kIHVzZSB0aGUgcmFuZ2UgcHJvcGVybHkgZm9yCiAgICAgICBwYXNzaW5nIHRvIHVucmVnaXN0ZXJfbWliX2NvbnRleHQoKS4KICAgCjIwMDEtMTEtMDcgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR1NNU0dPSURSQU5HRSgpIG1hY3JvIGZvciBkZWJ1Z2dpbmcgT0lEIHJhbmdlcwogICAKMjAwMS0xMS0wNiAwNjowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSByZXNldCB0aGUgaW5jbHVzaXZlIGZsYWcgaW4gYSBjb3VwbGUgb2YgY2FzZXMsIHRvIHByZXZlbnQgc3B1cmlvdXMKICAgICAgIElOQ0xVU0lWRSBnZXROZXh0IGJlaGF2aW91cgogICAKMjAwMS0xMS0wNSAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBjb3JyZWN0IGJ1ZyBpbiByYW5nZV9zdWJpZCB0d2VhayBjb2RlCiAgIAoyMDAxLTExLTA1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY2FsY3VsYXRlIHVwcGVyIGJvdW5kIGZvciB0YWJsZSByb3cgcmVnaXN0cmF0aW9ucyBzbGlnaHRseSBkaWZmZXJlbnRseQogICAKMjAwMS0xMS0wMSAwOTozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgcHJvdG9jb2wuYywKICAgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYzoKCiAgICAgLSBpbXBsZW1lbnQgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBhZ2VudHhfYnVpbGQoKSByb3V0aW5lcywKICAgICAgIGFuZCB1c2UgdGhlbS4KICAgCjIwMDEtMTEtMDEgMDk6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAgIC0gc3VwcG9ydCBmb3IgcmVsb2NhdGFibGUgYnVmZmVyIGJ1aWxkIGNhbGxiYWNrcyB2aWEgb3Blbl9leCBjYWxscwogICAKMjAwMS0xMC0zMCAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0zMCAwMzoyNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB0aGUgaW5pdGlhbCBidWZmZXIgc2l6ZSAyMDQ4IGluIHNubXBfcmVzZW5kX3JlcXVlc3QgKGFzIGluCiAgICAgICBfc2Vzc19hc3luY19zZW5kKSB0byBtYWtlIHN1Y2Nlc3MvZmFpbCBiZWhhdmlvdXIgZm9yIEFnZW50WCBtb3JlCiAgICAgICBwcmVkaWN0YWJsZSAoc2luY2UgQWdlbnRYIFNUSUxMIGRvZXNuJ3QgdXNlIHJlbG9jYXRpbmcgYnVmZmVycywKICAgICAgIGJvbyBoaXNzKS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LXVzZXIuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktYXV0by5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZmlsZSB0YWJsZV9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oOgoKICAgZmlsZSB0YWJsZV9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuaDoKCiAgIGZpbGUgb2lkX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZmlsZSBvaWRfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yNiAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGZ1bmN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwNjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgICAgLSBhZGQgc3VwcG9ydCBmb3IgcnggYW5kIHR4IGRyb3AgY291bnRzIChpZkluRGlzY2FyZHMgYW5kCiAgICAgICAgaWZPdXREaXNjYXJkcykgZm9yIExpbnV4ICgyLjIrKQogICAKMjAwMS0xMC0yNiAwNTo1NyAgamJwbgoKICAgKiBhY2xvY2FsLm00OgoKICAgICAtIGFkZCBpZl9pcWRyb3BzIG1lbWJlciB0byBzdHJ1Y3QgaWZuZXQKICAgCjIwMDEtMTAtMjYgMDQ6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGFkZCB0cmFuc2xhdGlvbiBmb3IgYXRtKDM3KSB0eXBlIGludGVyZmFjZXMgZm9yIExpbnV4CiAgIAoyMDAxLTEwLTI2IDAzOjQzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHRoZSBmYWN0IHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbi4wIChldCBhbC4pIHZpYSBhCiAgICAgICBzeXNsb2NhdGlvbiAob3IgZXF1aXZhbGVudCkgdG9rZW4gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHksCiAgICAgICByZXR1cm5pbmcgYSBub3RXcml0YWJsZSBlcnJvciByZXNwb25zZSBpZiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8KICAgICAgIFNFVCBpdC4KICAgCjIwMDEtMTAtMjQgMTA6MDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy40KSwKICAgc3lzdGVtX21pYi5jOgoKICAgICAtIGZpeCB0eXBvIG5vdGVkIGJ5IFRpbSBEaWV0egogICAKMjAwMS0xMC0yNCAwODo0MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYywgc3lzdGVtX21pYi5oOgoKICAgICAtIGltcGxlbWVudCBwZXJzaXN0ZW5jZSBmb3Igc3lzTG9jYXRpb24uMCwgc3lzQ29udGFjdC4wIGFuZCBzeXNOYW1lLjAKICAgCiAgICAgLSBwcmVzZW5jZSBvZiBhIHN5c2xvY2F0aW9uIHRva2VuIGluIHNubXBkLmNvbmYgbWFrZXMgc3lzTG9jYXRpb24uMAogICAgICAgbm9uLXdyaXRhYmxlIChyZXR1cm5zIG5vdFdyaXRhYmxlIG9uIFNFVCBhdHRlbXB0cykKICAgCjIwMDEtMTAtMjQgMDU6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3aW5zdC5jIChWNC0yLXBhdGNoZXMuMiksIGhyX3N3aW5zdC5jCjoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsganVzdCBpbnRyb2R1Y2VkCiAgIAoyMDAxLTEwLTI0IDAzOjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTI0IDAzOjM4ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhdXRvY29uZiBzdXBwb3J0IGZvciBkZXRlY3RpbmcgcGtnaW5mbyBpbnRlcmZhY2UgaW4gbGliYWRtLiAgVGhhbmtzCiAgICAgICB0byBTdGVmYW4gUmFkbWFuIChwYXRjaCAjNDczNjY5KS4KICAgCjIwMDEtMTAtMjEgMDc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpbGUgbWliMmMuaXRlcmF0ZS5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgZmlsZSBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4yKSwgRkFROgoKICAgTWVudGlvbiB0aGUgTVJURyB0dXRvcmlhbCB3ZWIgcGFnZXMKICAgICAoYXMgc3VnZ2VzdGVkIGJ5IENocmlzdGlhbiBSb2JvdHRvbSBSZWlzKQogICAKMjAwMS0xMC0xNSAwNjo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICAgIC0gemVybyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmVzLiAgSG9wZWZ1bGx5IGZpeGVzIHByb2JsZW1zIG9uIE5ldEJTRAogICAgICAgbm90ZWQgYnkgSm9ha2ltIEFsdGhpbmkgKHJlbGF0ZWQgdG8gc2FfbGVuIG1lbWJlciBwcm9iYWJseT8/KS4KICAgCjIwMDEtMTAtMTEgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT3Bwc2VzLgogICAKMjAwMS0xMC0xMSAxNDoxNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBfZXJyb3IuMywKICAgbWFuL3NubXBfcGVycm9yLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsCiAgIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtYW4vc25tcHNldC4xLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBtYW4vc25tcHRyYXBkLjgsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwKICAgbWFuL3NubXB3YWxrLjEsIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0LAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5taWIsCiAgIG1pYnMvUkVBRE1FLm1pYnMsIG1pYnMvU01VWC1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIG1pYnMvbWliZmV0Y2gsIG1pYnMvcmZjbGlzdAosIG1pYnMvc21pc3RyaXAsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvaW50NjQuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9tdF9zdXBwb3J0LmMKLCBzbm1wbGliL210X3N1cHBvcnQuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgdGVzdGluZy9NYWtlZmlsZS5pbgosIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0xMSAxNDowMSAgaGFyZGFrZXIKCiAgICogQ09QWUlORywgQ2hhbmdlTG9nLCBGQVEsIE1ha2VmaWxlLmluLAogICBORVdTLCBSRUFETUUsIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLmguaW4sIGNvbmZpZy5zdWIsCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoCiwgbWFrZWZpbGVpbmRlcGVuZC5wbCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBsb2NhbC9taWIyYy5jb25mLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mLAogICBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0LCBsb2NhbC90a21pYjoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMDkgMDc6MTQgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgU29tZXRpbWVzIHdlIGZlZWwgbGlrZSBhIC1udXQKICAgCjIwMDEtMTAtMDkgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBwcm9wZXJseSBhY2NvdW50IGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBzdWZmaXggaW4gdGhlIHZhcmlhYmxlCiAgICAgICB0YWJsZSBpbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCjIwMDEtMTAtMDggMDg6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIGRlY2xhcmUgdmVyc2lvbl9zeXNvaWRfbGVuIGFzIGV4dGVybiBJTlQgbm90IGV4dGVybiBvaWQsIHNvIGFzIHRvCiAgICAgICBtYXRjaCBpdHMgYWN0dWFsIGRlZmluaXRpb24gaW4gc3l0ZW1fbWliLmMuICBUaGlzIGNhdXNlZCBhbGwga2luZHMgb2YKICAgICAgIGZ1biAmIGdhbWVzIG9uIExpbnV4IG9uIGEgQWxwaGEuCiAgIAoyMDAxLTEwLTA0IDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBzbm1wX2NhbGxiYWNrX2xpc3QoKSB0byByZXR1cm4gbGlzdCBvZiBjYWxsYmFja3MgZm9yIGEKICAgICAgIGdpdmVuIDxtYWpvciwgbWlub3I+IHBhaXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgZmlsZSBwYXNzX3BlcnNpc3R0ZXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDMgMDU6NDIgIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAzIDAzOjExICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gZG8gU05NUERfQ0FMTEJBQ0tfVU5SRUdJU1RFUl9PSUQgY2FsbGJhY2tzIGluCiAgICAgICB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpIC0tIGNhbGxlZCB3aGVuIEFnZW50WCBzdWJhZ2VudHMKICAgICAgIGRpc2FwcGVhci4KICAgCjIwMDEtMTAtMDIgMDY6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCBBU05fUFJJVl9FWENMX1JBTkdFIG9uLXRoZS13aXJlCiAgIAoyMDAxLTA5LTI2IDA4OjAzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYWxsb3cgc3BsaXRfc3VidHJlZSgpIHRvIGRvIGEgc3BsaXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbHVtbiwKICAgICAgIGtlZXBpbmcgdGhlIHJlbGV2YW50IHZhcmlhYmxlIGluIGJvdGggdGhlIG9sZCB0cmVlIGFuZCB0aGUgbmV3CiAgICAgICB0cmVlIChhcmlzZXMgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSBwYXRjaCBmcm9tIERhbWlhbiBHaWxtdXJyYXkgZm9yIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaAogICAgICAgYWxsb3dzIGl0IHRvIGNvcGUgd2l0aCBub24temVybyBsZW5ndGggdmFyaWFibGVzIGFuZCBhbHNvCiAgICAgICBub24tY29udGlndW91cyBPSURzIGZvciBhZGphY2VudCBjb2x1bW5zLgogICAKICAgICAtIHJld3JpdHRlbiBkdW1wX3JlZ2lzdHJ5KCkgdGhhdCB1c2VzIHJlYWxsb2NhdGluZyBwcmludCBmdW5jdGlvbnMKICAgICAgIGFuZCBhbHNvIHByaW50cyBvdXQgdmFyaWFibGUgbGlzdHMuCiAgIAoyMDAxLTA5LTI2IDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgb2Ygc3VidHJlZSBuYW1lIGJlaW5nIGxvbmdlciB0aGFuCiAgICAgICByZXF1ZXN0ZWQgbmFtZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBzdWZmaXggZm9yIHZhcmlhYmxlIG1hdGNoaW5nLgogICAKICAgICAtIGJlIHN0cmljdCBhYm91dCBzdWJ0cmVlIGNodW5rcyBiZWluZyBpbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IE9JRAogICAgICAgYW5kIGV4Y2x1c2l2ZSBvZiB0aGUgZW5kIE9JRCAoc2hvd3MgdXAgYmlnIHRpbWUgaW4gQWdlbnRYKS4KICAgCjIwMDEtMDktMjYgMDc6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZG9uJ3QgZG8gZ2V0TmV4dCByZXF1ZXN0cyBvbiBleGNsdXNpdmUgc2VhcmNoUmFuZ2VzIHRoYXQgYmVnaW4gaW4KICAgICAgIGEgdHJlZSBtYXJrZWQgYXMgYSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgKHRoZXkgYXJlIGRvb21lZCB0bwogICAgICAgZmFpbCkuICBTa2lwIHRvIHRoZSBuZXh0IHBhcnQgb2YgdGhlIHRyZWUgc3RyYWlnaHQgYXdheS4KICAgCjIwMDEtMDktMjYgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGJyaW5nIGRlYnVnZ2luZyB0b2tlbnMgaW50byBsaW5lIHdpdGggcmVzdCBvZiBBZ2VudFggY29kZQogICAKMjAwMS0wOS0yNSAwODoxNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlIGNoYXJhY3RlcgogICAKMjAwMS0wOS0yNSAwMzo1OCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgY2FzdAogICAKMjAwMS0wOS0yNSAwMzo0NSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBpbmZlbGljaXR5IHdoZW4gcHJpbnRpbmcgYW5kIHN5c2xvZ2dpbmcgKG5vdCBzdXJlIHRoaXMgaXMKICAgICAgIGFjdHVhbGx5IHBvc3NpYmxlIGJ1dCkKICAgCjIwMDEtMDktMjUgMDM6MDkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBpbnRlZ3JhdGUgc29tZSBjaGFuZ2VzIGZyb20gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2g6IEhhcnJpZSdzCiAgICAgICBwcm90b3R5cGVzIGFuZCBXZXMncyBmaXggZm9yIGJ1ZyAgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjUgMDM6MDEgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gZml4IHNpZ25lZG5lc3Mgb2YgdGltZSBzdHVmZgogICAKMjAwMS0wOS0yNSAwMjo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgICAtIG1ha2UgYXJndW1lbnQgb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50IGNvbnN0CiAgIAogICAgIC0gZG9uJ3Qgc3RyZHVwIERFRkFVTFRfTE9HX0lEIGlmIGEgTlVMTCBhcmcgaXMgZ2l2ZW4KICAgCjIwMDEtMDktMjQgMDk6MzkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiByZXdyaXR0ZW4gb3V0cHV0IGZ1bmN0aW9ucyBpbiBzbm1wdHJhcGRfbG9nLmMgd2hpY2gKICAgICAgIGF2b2lkIGZpeGVkIGxlbmd0aCBidWZmZXJzLgogICAKICAgICAtIGZpeCBidWcgbm90ZWQgaW4gc3VwcG9ydCByZXF1ZXN0ICM0NTY2NDYgKGN1c3RvbSB0cmFwIGZvcm1hdCB3YXMKICAgICAgIGJlaW5nIGlnbm9yZWQgZm9yIHYyIHRyYXBzIGFuZCBpbmZvcm1zKS4gIFRoYW5rcyB0bwogICAgICAgRy5QcmluY2lwYXRvQG1vdG9yb2xhLmNvbSBmb3Igc3BvdHRpbmcgdGhpcyBvbmUuCiAgIAogICAgIC0gY29ycmVjdCB1c2FnZSBmb3IgLVAgb3B0aW9uIHRvIHJlZmxlY3QgdGhhdCBpdCBjYXVzZXMgb3V0cHV0IG9uCiAgICAgICBzdGRlcnIgbm90IHN0ZG91dC4KICAgCjIwMDEtMDktMjQgMDk6MzYgIGpicG4KCiAgICogYXBwcy86IHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIHJld3JpdGUgb2Ygb3V0cHV0IGZ1bmN0aW9ucyB0byBhdm9pZCB1c2Ugb2YgZml4ZWQtbGVuZ3RoIGJ1ZmZlcnMKICAgCjIwMDEtMDktMjAgMTM6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIG5ldyBsb2dtYXRjaCBtaWIgZnJvbSBTdGVwaGFuIFdlbnplbC4KICAgCjIwMDEtMDktMTUgMDg6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gb3ZlcnJpZGUgZXhjbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQgb3BlcmF0aW9ucyB3aGVuIHJldHJ5aW5nCiAgICAgICBvcGVyYXRpb25zCiAgIAoyMDAxLTA5LTE1IDA4OjM5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAgIC0gaW1wcm92ZWQgc3VwcG9ydCBmb3IgQWdlbnRYLXN0eWxlIGluY2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0CiAgIAoyMDAxLTA5LTE0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHBhdGNoICM0NDMxMTUgZnJvbSBZaW1pbiBHZTogZGlza2lvIHN1cHBvcnQgZm9yIGZyZWVic2Q0CiAgIAoyMDAxLTA5LTE0IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgUGF0Y2ggIzQ0MDMyMCBmcm9tIE1hcmsgRmVybGF0dGU6CiAgIAogICAxKSBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBzbm1wX2xvZ2dpbmcgQVBJCiAgICAgIChzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQoY2hhciAqaWRlbnQpKQogICAKICAgMikgUG9ydHMgc25tcHRyYXBkIHRvIHVzZSB0aGUgZXhpc3Rpbmcgc25tcF9sb2dnaW5nIEFQSSBpbnN0ZWFkIG9mCiAgICAgIHVzaW5nIHN5c2xvZyBkaXJlY3RseS4KICAgCiAgIDMpIFBvcnRzIHNubXBfbG9nZ2luZy5bY2hdIHRvIHVzZSB0aGUgV2luMzIgRXZlbnQgTG9nIHdoZW4gY29tcGlsZWQgb24KICAgICAgV2luMzIuIEkgZGlkbid0IHVwZGF0ZSB0aGUgVmlzdWFsIEMgcHJvamVjdCBmaWxlcywgYmVjYXVzZSBJIG9ubHkKICAgICAgaGF2ZSBhY2Nlc3MgdG8gYSBuZXdlciB2ZXJzaW9uIG9mIFZDLCBhbmQgSSBkaWRuJ3Qga25vdyBpZiB5b3UKICAgICAgd2FudGVkIHRoZW0gdXBkYXRlZC4gVGhlIGFkdmFwaTMyIGxpYnJhcnkgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlCiAgICAgIHByb2plY3QgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yayBvbiBXaW4zMiAodGhhdCdzIHdoZXJlIHRoZSBldmVudAogICAgICBsb2cgQVBJIGlzKS4KICAgCjIwMDEtMDktMTQgMTQ6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICBJLCB1aCwgY291Z2gsIHVoIGZvcmdvdCB0byBydW4gYXV0b2NvbmYvYXV0b2hlYWRlci4gIERhdmU6IGRvbid0IGtpbGwgbWUuCiAgIAoyMDAxLTA5LTE0IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGF0Y2ggIzQyODg4NDogQWRkIC1QUiBsaWtlIG9wdGlvbiB0byBwZXJsIG1vZHVsZSAoZnJvbSBKb2UgQ2xhcmtlKS4KICAgCjIwMDEtMDktMTQgMTQ6MDggIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaAosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oCiwgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL2FzbjEuaDoKCiAgIEFwcGxpZWQgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICM0MjczNDMgZnJvbSBIYXJyaWU6CiAgICAgbWFrZSBlbnRlcnByaXNlIElEIHJlbG9jYXRhYmxlIHdoZXJlIGxlZ2FsIHRvIGRvIHNvCiAgIAoyMDAxLTA5LTE0IDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDEyOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfdXRpbHMuYywgaHJfdXRpbHMuaDoKCiAgIHJlbW92ZWQuICBGdW5jdGlvbmFsaXR5IG1vdmVkIHRvIHNubXBsaWIvc25tcC10Yy5bY2hdCiAgIAoyMDAxLTA5LTE0IDEyOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLXRjLmg6CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAwOTo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIGZpbGUgY29uZmlnLmguYm9ybGFuZCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA5LTE0IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLAogICBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgICAtIHVzZSBpbmNsdXNpdmUgc2VhcmNoIHJhbmdlIG9ubHkgd2hlbiBhcHByb3ByaWF0ZSBmb3IgZ2V0TmV4dAogICAgICAgcXVlcmllcwogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTA2IDA3OjQwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYzoKCiAgICAgLSBpZiBpbmNsdWRlIGJpdCBpcyBzZXQgaW4gYW4gQWdlbnRYIFNlYXJjaFJhbmdlIChoZW5jZSB0eXBlIG9mIHZhcmJpbmQKICAgICAgIGlzIEFTTl9QUklWX0lOQ0xfUkFOR0UpLCB0cnkgYW4gZXhhY3QgcXVlcnkgZmlyc3QgYmVjYXVzZSBhbiBvYmplY3QKICAgICAgIHdob3NlIG5hbWUgaXMgbGV4aS1lcXVhbCBpcyBhIHZhbGlkIHJlc3BvbnNlOyBpZiBleGFjdCBxdWVyeSBmYWlscwogICAgICAgdGhlbiBmYWxsIGJhY2sgdG8gYW4gaW5leGFjdCBxdWVyeS4KICAgCjIwMDEtMDktMDYgMDc6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsCiAgIHByb3RvY29sLmMsIHN1YmFnZW50LmM6CgogICAgIC0gb29wcywgdXNlZCBJTkNML0VYQ0wgd3Jvbmcgd2F5IHJvdW5kIGluIGEgY291cGxlIG9mIHBsYWNlcwogICAKICAgICAtIGJldHRlciB0ZXN0IGZvciBzY29waW5nIHJlcXVpcmVtZW50cyBpbiBzdWJhZ2VudAogICAKMjAwMS0wOS0wNCAwNzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0yOCAwMzowNCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgICAgLSBhdm9pZCB1c2Ugb2YgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzIGluc2lkZSBwcmludGYoKSBjYWxsLCB3aGljaAogICAgICAgaXMgYSBtYWNybyBpbiBnbGliYywgbWFraW5nIHRoaXMgYW4gdW5kZWZpbmVkIGJlaGF2aW91cgogICAgICAgY29uc3RydWN0ICh3aGljaCBHQ0MgMy4wIHJlZnVzZXMgdG8gY29tcGlsZSkuICBTZWUgYnVnICM0NTU4MDQgZm9yCiAgICAgICBmdXJ0aGVyIGRldGFpbHMuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuaDoKCiAgIGZpbGUgZGF0YV9saXN0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgZmlsZSBkYXRhX2xpc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yMiAwODo0NSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBjaGVja2luZyB0aGF0IHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQgdG8gbWFzdGVyIGFnZW50IGFyZSBpbgogICAgICAgcmVxdWVzdGVkIHNjb3BlIChpZiBhbnkpIChnZXRCdWxrIG5vdCB5ZXQgZG9uZSkKICAgCjIwMDEtMDgtMTUgMDk6MzEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGluIGRlYnVnbXNnX29pZCB0byBwcmludCBsb25nIE9JRHMuCiAgIAoyMDAxLTA4LTE1IDA4OjM3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCB0aGUgdmFsdWUgb2Ygc25tcEluQmFkQ29tbXVuaXR5VXNlcyB3aGVuIGF0dGVtcHRpbmcgYW4KICAgICAgIG9wZXJhdGlvbiBub3QgcGVybWl0dGVkIGJ5IHRoZSBnaXZlbiBjb21tdW5pdHksIHBlciBSRkMgMTkwNy4KICAgCjIwMDEtMDgtMTUgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHdoZW4gdHJhbnNsYXRpbmcgdGhlIHYyKyBlcnJvci1zdGF0dXMgdmFsdWUgYXV0aG9yaXphdGlvbkVycm9yCiAgICAgICBpbnRvIG5vU3VjaE5hbWUgZm9yIGEgdjEgc2Vzc2lvbiwgaW5jcmVtZW50IHRoZSB2YWx1ZSBvZgogICAgICAgc25tcEluQmFkQ29tbXVuaXR5VXNlcywgcGVyIFJGQyAyNTc2LgogICAKMjAwMS0wOC0xNCAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gaW4gc25tcF9zZXRfdmFyX29iamlkKCksIHRyeSB0byBkZXRlY3QgYSBwcmV2aW91c2x5LW1hbGxvYygpZWQKICAgICAgIGJ1ZmZlciBmb3IgdGhlIHZhcmlhYmxlIG5hbWUsIGFuZCBmcmVlKCkgaXQsIHRvIGF2b2lkIG1lbW9yeQogICBsZWFrcy4KICAgCjIwMDEtMDgtMTMgMDM6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdXNlIFdpbjMyIGNhbGxzIHRvIGNoYW5nZSBibG9ja2luZyBzdGF0ZSBvZiBzb2NrZXRzIGlmCiAgICAgICBhcHByb3ByaWF0ZS4gIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTEzIDAzOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGFuIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBhbmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gaWYKICAgICAgIHdlIGdldCBhbiBlcnJvciBvbiBhIHN0cmVhbSByZWNlaXZlLCBhcyB3ZWxsIGFzIGlmIGl0IGlzIGNsb3NlZCBpbgogICAgICAgYW4gb3JkZXJseSBmYXNoaW9uLiAgVGhpcyBtYWtlcyBsaWZlIGVhc2llciBvbiBXaW4zMiBpbnBhcnRpY3VsYXIuCiAgICAgICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIHdpdGggZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaDoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGZpbGUgdGFibGVfZGF0YS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaDoKCiAgIGZpbGUgdGFibGVfZGF0YS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfYXBpX2VycnN0cmluZy4zOgoKICAgZmlsZSBzbm1wX2FwaV9lcnJzdHJpbmcuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9lcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfc2Vzc19wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9zZXNzX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDYgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggZm9yIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gbG9nZmlsZSBhcmd1bWVudCBoYW5kbGluZywKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyAoYnVnICM0NDgyNDMpLiAgQWxzbyB1c2UgYSBsYXJnZSBlbm91Z2ggYnVmZmVyCiAgICAgICB0byBoYW5kbGUgZmlsZW5hbWVzIG9mIGxlbmd0aCBQQVRIX01BWCAoaWYgcG9zc2libGUpLgogICAKMjAwMS0wNy0zMCAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG1vdmUgc25tcF9zb2NrZXRfbGVuZ3RoIGZ1bmN0aW9uIHRvIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgICBmcm9tIHNubXBfYXBpLmMgLS0gdGhpcyBpcyB0aGUgb25seSByZW1haW5pbmcgcGxhY2UgdGhhdCB1c2VzIHRoaXMKICAgICAgIGZ1bmN0aW9uLCB3aGljaCBjZXJ0YWlubHkgZG9lc24ndCBiZWxvbmcgaW4gc25tcF9hcGkuYyBhZnRlciB0aGUKICAgICAgIHRyYW5zcG9ydCBhYnN0cmFjdGlvbiBtYWxhcmtleS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSB0cnkgdG8gcmV0dXJuIGludmFsaWQoMikgZm9yIHRoZSBpcFJvdXRlVHlwZSBjb2x1bW4gaWYgdGhlIHJvdXRlCiAgICAgICBpcyBub3QgdXAuICBTZWUgYnVnICM0MjY3MTAsIHJlcG9ydGVkIGJ5IHBqd2ViZXIuCiAgIAoyMDAxLTA3LTI3IDA3OjMyICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gc2V0IGRlZmF1bHRBdXRoVHlwZSB0byB1c21ITUFDU0hBMUF1dGhQcm90b2NvbCBpZiBTSEEgc3BlY2lmaWVkCiAgICAgICAod2FzIHNldCB0byB1c21ITUFDTUQ1QXV0aFByb3RvY29sIGluIHRoaXMgY2FzZSkuICBTcG90dGVkIGJ5CiAgICAgICBXaWxsaWFtIEtlbm5lbWVyIChidWcgIzQ0NDg2MCkKICAgCjIwMDEtMDctMjcgMDY6NTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gY2hhbmdlIHRvIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UgT05MWSB0byBzZW5kIE5FV0xZIGRlbGVnYXRlZAogICAgICAgcmVxdWVzdHMgYWZ0ZXIgcHJvY2Vzc2luZyBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuICBUaGlzIGlzIGFjaGlldmVkCiAgICAgICBieSBzYXZpbmcgdGhlIHZhbHVlIG9mIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgYW5kIHRlbXBvcmFyaWx5CiAgICAgICBzZXR0aW5nIGl0IHRvIE5VTEwuICBBZnRlciBwcm9jZXNzaW5nIGFsbCB2YXJiaW5kcyBpbiB0aGUKICAgICAgIHJlc3BvbnNlLCB0aGVyZWZvcmUsIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgY29udGFpbnMgb25seSBuZXdseQogICAgICAgZGVsZWdhdGVkIHJlcXVlc3RzLCBpZiBhbnkuICBBZnRlciBzZW5kaW5nIHRoZXNlLCB0aGUgbmV3IHJlcXVlc3RzCiAgICAgICBhcmUgbWVyZ2VkIHdpdGggdGhlIHNhdmVkIHF1ZXVlLgogICAKICAgICAgIFRoaXMgZml4ZXMgYSBidWcgdGhhdCBhcmlzZXMgaWYgeW91IHJlcXVlc3QgdmFyaWFibGVzIGZyb20gdHdvIG9yCiAgICAgICBtb3JlIHNlcGFyYXRlIHN1YmFnZW50cyBzaW11bHRhbmVvdXNseS4gIFdoYXQgdXNlZCB0byBoYXBwZW4gaXMKICAgICAgIHRoYXQsIHVwb24gcmVjZWl2aW5nIHRoZSBmaXJzdCByZXNwb25zZSwgdGhlIG1hc3RlciBhZ2VudCB3b3VsZAogICAgICAgbm90aWNlIHRoYXQgaXQgaGFkIGFuIG91dHN0YW5kaW5nIHJlcXVlc3QsIGFuZCByZXRyYW5zbWl0IGl0LgogICAgICAgVGhlbiB0aGUgc2Vjb25kIHJlc3BvbnNlIGFycml2ZXMsIGFuZCB0aGUgbWFzdGVyIGFnZW50IHNlbmRzIHRoZQogICAgICAgcmVwbHkgdG8gdGhlIChTTk1QKSByZXF1ZXN0ZXIgYW5kIGZyZWVzIHRoZSByZXF1ZXN0cyAoaW5jbHVkaW5nCiAgICAgICBjYWxsYmFjayBkYXRhKS4gIEZpbmFsbHksIGFub3RoZXIgQWdlbnRYIHJlc3BvbnNlICh0byB0aGUKICAgICAgIGVycm9uZW91c2x5IHRyYW5zbWl0dGVkIHJlcXVlc3QpIGFycml2ZXMgYW5kIHRoZSBjYWxsYmFjayBpcwogICAgICAgY2FsbGVkIHJlZmVyZW5jaW5nIGRlYWxsb2NhdGVkIG1lbW9yeSwgd2hpY2ggY2F1c2VzIGEgc2VnZmF1bHQuCiAgIAoyMDAxLTA3LTI2IDA3OjI4ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoTkVXLUxJQlJBUlktQVBJLjQpLCBzbm1wX2FwaS5jOgoKICAgQWRkaW5nIGEgJ2RvdWJsZSctdmFsdWVkIHZhcmJpbmQgaXNuJ3QgaW5oZXJlbnRseSBhbiBpbnRlcm5hbCBlcnJvciEKICAgCjIwMDEtMDctMjUgMDU6NDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkaXNhYmxlIHN0ZGVyciBsb2dnaW5nIChpZiByZXF1ZXN0ZWQpIGJlZm9yZSBjYWxsaW5nIGluaXRfbWliX21vZHVsZXMoKS4KICAgICAgIFRoaXMgc2hvdWxkIGZpeCB0aGUgcHJvYmxlbSBub3RlZCBieSBOaWdlbCBNZXRoZXJpbmdoYW0gaW4gYnVnICM0MTg4NTcKICAgICAgIHdoZXJlYnkgdGhlIEFnZW50WCBtYXN0ZXIgbW9kdWxlIHByaW50cyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdoaWNoIGNhdXNlcwogICAgICAgYSBTSUdQSVBFIHdoZW4gdGhlIGFnZW50IGlzIHN0YXJ0ZWQgYXMgYSBkYWVtb24uCiAgIAoyMDAxLTA3LTI1IDAyOjE4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGluaXRpYWxpc2UgYnVmZmVycyB0byB6ZXJvIGluIGhhbmRsZV93cmFwX2ZtdCwgdG8gYXZvaWQgZ2FyYmFnZSBpbgogICAgICAgZGlzcGxheSBvZiBzZWN1cml0eSBwYXJhbWV0ZXJzLCBhcyBub3RlZCBieSBXaWxsaWFtIEZyYXVlbmhvZmVyCiAgICAgICAoYnVnICM0MzcyMzEpLgogICAKICAgICAtIGFkZCBjbG9zaW5nIHBhcmVudGhlc2lzIGFmdGVyICh2aWEgPGFkZHJlc3M+IGluIGZvcm1hdF9wbGFpbl90cmFwCiAgIAoyMDAxLTA3LTIzIDA3OjUzICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSByZW1vdmUgZXhjZXNzaXZlIGRlYnVnZ2luZyBmcm9tIHNubXBfKHJlKWFsbG9jIGZ1bmN0aW9ucwogICAKMjAwMS0wNy0yMyAwNDozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGRlYnVnZ2luZyBvdXRwdXQgdG8gcHJpbnQgbG9zaW5nIHBhdGggY29ycmVjdGx5IHdoZW4KICAgICAgIGEgcmVtb3RlIGNvbm5lY3QgZmFpbHMuCiAgIAoyMDAxLTA3LTE3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHVwZGF0ZSBmb3IgbmFtaW5nIGNvbnZlbnRpb25zIGFuZCBmb3Igc3RydWN0dXJlIGRlZmluaXRpb25zLgogICAKMjAwMS0wNy0xNyAwOTowNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBpbml0aWFsIGNvZGluZyBzdHlsZSBndWlkZWxpbmUgZG9jdW1lbnQuCiAgIAoyMDAxLTA3LTE3IDA5OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlbWVtYmVyIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24ob3VyLXNlc3Npb24td2l0aC1tYXN0ZXItYWdlbnQpCiAgICAgICBpZiB0aGUgbWFzdGVyIGFnZW50IHNlc3Npb24gZ29lcyBhd2F5LCBiZWNhdXNlIG90aGVyd2lzZSB5b3UKICAgICAgIG1heSBzdWJzZXF1ZW50bHkgdHJ5IHRvIHVzZSBpdCwgd2hpY2ggd2lsbCBwcm9iYWJseSBkdW1wIGNvcmUsCiAgICAgICBhbmQgaXMgY2VydGFpbmx5IGFuIGVycm9yLgogICAKICAgICAtIGFsc28gY2hhbmdlIHdoZW4gdHJhcCBzZXNzaW9uIGlzIHJlZ2lzdGVyZWQgdG8gYmVpbmcgaW1tZWRpYXRlbHkKICAgICAgIHRoZSBzZXNzaW9uIGlzIG9wZW5lZCBzbyB0cmFwcyBjYW4gYmUgc2VudCwgZS5nLiBmcm9tIHRoZQogICAgICAgSU5ERVhfU1RBUlQgY2FsbGJhY2sgKGZvciBleGFtcGxlIGxpbmtVcCB0cmFwcyBpbiBzdWJhZ2VudHMgdGhhdAogICAgICAgcmVnaXN0ZXIgYSByb3cgb2YgaWZUYWJsZSkuCiAgIAoyMDAxLTA3LTE3IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBjaGFuZ2UgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLCBzbyBhcyBub3QgdG8gY2xvc2UgYW4gU05NUAogICAgICAgc2Vzc2lvbiBzaW1wbHkgYmVjYXVzZSB3ZSBhcmUgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgdHJhcF9zaW5rCiAgICAgICBsaXN0LiAgVGhlIHJhdGlvbmFsZSBpcyB0aGF0IHRoZSBzZXNzaW9uIG1heSBzdGlsbCBiZSBpbiB1c2UgZm9yCiAgICAgICBvdGhlciBwdXJwb3Nlcywgb3IgKG1vcmUgdG8gdGhlIHBvaW50KSB5b3UgbWF5IGJlIGNhbGxpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gZnJvbSB0aGUgc2Vzc2lvbidzIGNhbGxiYWNrIChmcm9tIHdoZXJlIGNsb3NpbmcgdGhlCiAgICAgICBzZXNzaW9uIGlzbid0IGEgZ29vZCBpZGVhKS4KICAgCjIwMDEtMDctMTMgMDY6MDIgIGR0czEyCgogICAqIHNubXBsaWIvbmV0c25tcC5oOgoKICAgZmlsZSBuZXRzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmg6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMDI6MjEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gZml4IGZvciBidWcgIzQzOTA5NCwgcmVwb3J0ZWQgYnkgRXZlcnQtSmFuIHZhbiBUdWlqbCwgd2hlcmVieQogICAgICAgdGhlIEFnZW50WCBtYXN0ZXIgYWdlbnQgZXhwZWN0cyBhIHJlc3BvbnNlIHRvIGFuIGFnZW50eC1DbGVhbnVwU2V0LVBEVQogICAgICAgbWVzc2FnZSAoaW5jb3JyZWN0bHkpLiAgVGhpcyBvbmx5IHNob3dzIHVwIHdoZW4gdGVzdGluZyBhZ2FpbnN0IG90aGVyCiAgICAgICBzdWJhZ2VudHMgKGUuZy4gamF4KSBiZWNhdXNlIHRoZSBuZXQtc25tcCBzdWJhZ2VudCBzZW5kcyBhIHJlc3BvbnNlCiAgICAgICB0byB0aGUgYWdlbnR4LUNsZWFudXBTZXQtUERVIChpbmNvcnJlY3RseSkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGZpbGUgdmFjbV9jb250ZXh0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wNSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgICAtIG1ha2UgSW50ZXJmYWNlX1NjYW5fR2V0X0NvdW50IG5vbi1zdGF0aWMgYXMgaXQncyB2ZXJ5IHVzZWZ1bAogICAKMjAwMS0wNy0wNSAwMzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBmcmVlIHRoZSBjYWNoZWQgc2VjdXJpdHkgcGFyYW1ldGVycyB3aGVuIHdlIGhhdmUgYSBwYXJzZSBlcnJvcgogICAgICAgb24gaW5wdXQsIG90aGVyd2lzZSB3ZSBsZWFrIG1lbW9yeSAodHJpZ2dlcmVkIGJ5IFNDIDMuMC4xMy57MiwzfSkuCiAgIAoyMDAxLTA3LTA0IDA5OjUxICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2F0Y2ggc29tZSBtYWxmb3JtZWQgU05NUHYzIHBhY2tldHMKICAgCjIwMDEtMDctMDQgMDc6NDIgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYmFkIG1pc3Rha2UgaW4gc25tcHYzX3Njb3BlZFBEVV9oZWFkZXJfcmVhbGxvY19yYnVpbGQgd2hpY2gKICAgICAgIHdhcyBlbmNvZGluZyB0aGUgd3JvbmcgbGVuZ3RoIGludG8gdGhlIFNjb3BlZFBEVSBTRVFVRU5DRSBoZWFkZXIKICAgICAgICh3YXNuJ3QgaW5jbHVkaW5nIGxlbmd0aCBvZiBhY3R1YWwgZGF0YSwgaS5lLiBQRFUhKS4gIFRvdGFsbHkgbXkKICAgICAgIGZhdWx0IC0tIGludHJvZHVjZWQgd2hlbiBjaGFuZ2luZyBvdmVyIHRvIHJlYWxsb2NhdGluZyBidWZmZXIKICAgICAgIHR5cGUgZnVuY3Rpb25zLiAgQW1hemluZyB0aGlzIGhhc24ndCBjYXVzZWQgYWxsIHNvcnRzIG9mIHRyb3VibGUKICAgICAgIGZvciBwZW9wbGUhCiAgIAoyMDAxLTA3LTAyIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBmaWxlIHNubXAtdGMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wMiAwOTozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMS0wNy0wMiAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAgIC0gZml4IGJhZCBiZWhhdmlvdXIgaW4gaGVhZGVyX3NpbXBsZV90YWJsZSB3aGVuIHRoZSBpbmRleCBpcwogICAgICAgZXF1YWwgdG8gVUxPTkdfTUFYCiAgIAoyMDAxLTA2LTI4IDEwOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2hhbmdlIHNlbnNlIG9mIHNubXBfb2lkX2NvbXBhcmUoKSByZXN1bHQgY2hlY2sgaW4gdmFyX3VzbVVzZXIKICAgICAgIHRvIGRvIGxleGktb3JkZXJpbmcgY29ycmVjdGx5CiAgIAoyMDAxLTA2LTI4IDA3OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjb3VudCBtb3JlIHYxL3YyYyBwYXJzZSBlcnJvcnMgKFNDIDEuMS4xMi4xMCkKICAgCjIwMDEtMDYtMjggMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoZWNrIHRoYXQgdmVyc2lvbiBmaWVsZCBvZiBQRFUgaXMgb2YgaW50ZWdlciB0eXBlIHJhdGhlciB0aGFuIGp1c3QKICAgICAgIGFzc3VtaW5nIGl0IGlzIChTQyAxLjEuMTIuMi4xKQogICAKMjAwMS0wNi0yOCAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgd2hlbiB3ZSBzZWUgdW5rbm93biBjb21tdW5pdHkKICAgICAgIG5hbWVzLCBwZXIgUkZDMTkwNwogICAKMjAwMS0wNi0yNyAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiBuZXcgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHRvIG1hcmsgYWxsIG91cgogICAgICAgbm9kZXMgYXMgZGV0YWNoZWQgd2hlbiB3ZSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdCBpbmRpY2F0aW9uLgogICAKMjAwMS0wNi0yNyAwODowNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBhZGQgYWRkaXRpb25hbCBmbGFnIHRvIHN1YnRyZWUgc3RydWN0dXJlIHRoYXQgc3ViYWdlbnRzIGNhbiB1c2UKICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byByZWdpc3RlciBhbmQgT0lECiAgICAgICB3aXRoIGEgbWFzdGVyIGFnZW50IGR1cmluZyBhIHNlc3Npb24ncyBsaWZldGltZS4gIFRoaXMgYWxsb3dzCiAgICAgICBtYW51YWwgcmUtcmVnaXN0cmF0aW9uIGFuZCBhdXRvbWF0aWMgcmUtcmVnaXN0cmF0aW9uIHRvIGJlIG1peGVkCiAgICAgICB3aXRoaW4gYSBzdWJhZ2VudCAocGVyaGFwcyBiZWNhdXNlIHlvdSBhcmUgZG9pbmcgaW5kZXggc3R1ZmYpLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgd2hpY2ggdW5zZXRzIHRoaXMgZmxhZyBmb3IKICAgICAgIGFsbCBrbm93biBub2RlcyAoc3ViYWdlbnQgd291bGQgdHlwaWNhbGx5IGNhbGwgdGhpcyBvbiBkaXNjb25uZWN0CiAgICAgICBpbmRpY2F0aW9uKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCiAgICAgLSBjb3JyZWN0IGJhZCByZWN1cnNpdmUgYmVoYXZpb3VyIGluIHJlZ2lzdGVyX21pYl9yZWF0dGFjaCgpIHdoaWNoCiAgICAgICB1c2VkIHRvIHRyeSB0byByZS1yZWdpc3RlciBOIG5vZGVzIE4hIHRpbWVzLiAgT25jZSB3aWxsIG5vcm1hbGx5CiAgICAgICBiZSBlbm91Z2guCiAgIAogICAgIC0gY2hhbmdlIHRvIGR1bXBfcmVnaXN0cnkoKSBmb3JtYXQgdG8gaW5jbHVkZSBoZXggZGlzcGxheSBvZgogICAgICAgZmxhZ3MgZmllbGQuCiAgIAoyMDAxLTA2LTI2IDA5OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBGaXggZXJyb3IgaW4gU05NUHYyIHRyYXAgZXhhbXBsZXMgIChJZGVudGlmaWVkIGJ5IERpd2FrYXIgU2hldHR5KS4KICAgCjIwMDEtMDYtMjYgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0ZWQgc2Vuc2Ugb2YgZHVtcF9yZWFsbG9jX29pZF90b19zdHJpbmcoKSByZXR1cm4gdmFsdWUKICAgICAgIGNoZWNrcywgYXMgc3BvdHRlZCBieSBSb2JlcnQgU3RvcnkuCiAgIAoyMDAxLTA2LTI1IDA2OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIGluIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UoKSB3aGVuIHJldHJ5aW5nIHVuZnVsZmlsbGVkCiAgICAgICByZXF1ZXN0czogY29udGludWUgZnJvbSB0aGUgInN0YXJ0IiBPSUQgb2YgdGhlIG5leHQgbm9kZSBvZiB0aGUKICAgICAgIHRyZWUsIG5vdCBmcm9tIHRoZSAibmFtZSIgT0lELCB3aGljaCBjYXVzZXMgbG9vcGluZy4KICAgCjIwMDEtMDYtMjEgMDk6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gaGFuZGxlICJob2xlcyIgaW4gcm93cyBvZiB0YWJsZXMgdGhhdCBhcmUgaGFuZGxlZCBieSBzdWJhZ2VudHMKICAgCiAgICAgICBTaW5jZSB0aGUgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlIGlzIHJlZ2lzdGVyZWQsIHdlIGludGVycHJldAogICAgICAgYSByZXR1cm4gb2Ygbm9TdWNoSW5zdGFuY2Ugd2hlbiBkb2luZyBhbiBpbmV4YWN0IHF1ZXJ5IGFzIG1lYW5pbmcKICAgICAgIHdlIHNob3VsZCByZXRyeSB0aGUgcXVlcnkuCiAgIAoyMDAxLTA2LTIxIDAyOjUwICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZm9yZ290IHRvIGNvbW1pdCBhdCB0aGUgc2FtZSB0aW1lIGFzIGxhc3QgbWliLmMgY29tbWl0OyB1cGRhdGVkCiAgICAgICBwcm90b3R5cGUgZm9yIHNwcmludF9yZWFsbG9jX2hpbnRlZF9pbnRlZ2VyCiAgIAoyMDAxLTA2LTIwIDA2OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfaW5kZXguaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gY291bnRfaW5kZXhlcyB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgaW5kZXhlcwogICAgICAgYWxsb2NhdGVkIGZvciBhIGdpdmVuIE9JRC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nCiAgICAgICAicm93IGNvdW50IiBvYmplY3RzLCBlLmcuIGlmTnVtYmVyLgogICAKMjAwMS0wNi0yMCAwNTozNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYwo6CgogICAgIC0gYWRkIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUQVJUIGFuZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVE9QCiAgICAgICBjYWxsYmFja3Mgd2hpY2ggbWF5IGJlIHVzZWQgdG8gbWFuYWdlIGluZGV4IGFsbG9jYXRpb25zLgogICAKICAgICAgIE1hc3RlciBhZ2VudCBzaG91bGQgcHJvYmFibHkgY2FsbCB0aGVzZSBjYWxsYmFja3MgdG9vLCBhbHRob3VnaAogICAgICAgaXQncyBhIGJpdCBvZiBhIGRlZ2VuZXJhdGUgY2FzZS4KICAgCjIwMDEtMDYtMTkgMDk6NDQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSB1c2UgYW4gZXhwbGljaXQgZmllbGVkICJhbGxvY2F0ZWQiIGluIHNubXBfaW5kZXggc3RydWN0dXJlIHRvCiAgICAgICBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGN1cnJlbnRseSBhbGxvY2F0ZWQsIHJhdGhlcgogICAgICAgdGhhbiBvdmVybG9hZGluZyBhIE5VTEwgc2Vzc2lvbiB0byBtZWFuIHRoYXQgaXQgaXMgbm90LgogICAKICAgICAgIFRoaXMgYWxsb3dzIHN0YXJ0dXAgY29kZSBpbiBhIG1hc3RlciBhZ2VudCB0byBwcmUtcmVnaXN0ZXIgaW5kaWNlcwogICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gc2Vzc2lvbnMgb3Blbi4KICAgCjIwMDEtMDYtMTkgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgICAtICBrZWVwIHRoZSB2YWx1ZSBvZiBORVRXT1JLX0JZVEVfT1JERVIgZnJvbSBoLmZsYWdzIGluIHRoZQogICAgICAgIGFnZW50eC1PcGVuLVBEVSBhbmQgdXNlIGl0IGZvciBzdWJzZXF1ZW50IG1hc3Rlci1pbml0aWF0ZWQKICAgICAgICBBZ2VudFggcHJvdG9jb2wgb3BlcmF0aW9ucywgcGVyIFJGQyAyNzQxIChzZWN0aW9uIDcuMS4xLAogICAgICAgIHBhcmFncmFwaCA0KS4KICAgCiAgICAgICAgRm9yIG5vdywgd2UgYXJlIHN0b3JpbmcgdGhpcyBpbiB0aGUgZmxhZ3MgZmllbGQgb2YgYQogICAgICAgIHN1YnNlc3Npb24uICBUaGlzIGlzIGxpa2VseSB0byBzdG9wIHdvcmtpbmcgaWYgdGhlIGZsYWdzCiAgICAgICAgZGVmaW5pdGlvbnMgY2hhbmdlIChpLmUuIGl0J3Mgbm90IGEgZ3JlYXQgc29sdXRpb24pCiAgIAogICAgIC0gIFRoYW5rcyB0byBQZXRlciBLb3JzdGVuIChzZXZlcml0eW9uZSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQpCiAgICAgICAgZm9yIGlkZW50aWZ5aW5nIHRoaXMgYnVnLCBhbmQgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMgZml4LgogICAKMjAwMS0wNi0xOSAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHJlaW5zdGF0ZSBzcGFjZSBiZXR3ZWVuIG51bWJlcnMgYW5kIHVuaXRzLgogICAKICAgICAtIHJlc3BlY3QgRElTUExBWS1ISU5UcyBmb3IgVW5zaWduZWQzMiwgR2F1Z2UsIEdhdWdlMzIgdHlwZXMuCiAgIAoyMDAxLTA2LTEzIDAzOjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBkZWJ1Z2dpbmcgdG8gcmVkdWNlICJub2lzZSBsZXZlbCIgZnJvbSBQdXJpZnkKICAgCjIwMDEtMDYtMTIgMTA6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZXRpdGlvbnMgZmllbGQgdmFsdWVzIG9mIDwgMCAoYnkKICAgICAgIHNldHRpbmcgdGhlbSB0byAwLCBwZXIgUkZDIDE5MDUpCiAgIAoyMDAxLTA2LTEyIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggYnVnIHRoYXQgY2F1c2VkIGEgbnVsbCBwb2ludGVyIHRvIGJlIGZvbGxvd2VkIHdoZW4gcHJvY2Vzc2luZyBhCiAgICAgICBHRVRCVUxLIHJlcXVlc3Qgd2l0aCBub24tcmVwZWF0ZXJzID4gMCwgbWF4LXJlcGV0aXRpb25zID09IDAgYW5kIG5vCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgcmVxdWVzdC4KICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMSksIHJlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTA2IDA3OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlKCkgcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKSBjYWxscwogICAKMjAwMS0wNi0wNiAwNzozNyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIG1vcmUgdW5pZm9ybSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpOiBtYWtlIGl0IGFsd2F5cyBhCiAgICAgICB2YXJiaW5kIHdoaWNoIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWUoKWluZywgb3IgZWxzZSBOVUxMLgogICAKMjAwMS0wNi0wNSAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGZpeCBmb3IgaW5kZXggYWxsb2NhdGlvbiwgc3VjaCB0aGF0IHJlcXVlc3RzIGZvciBzcGVjaWZpYyBpbmRpY2VzIHdoaWNoCiAgICAgICBoYXZlIHByZXZpb3VzbHkgYmVlbiBhbGxvY2F0ZWQsIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHN1Y2NlZWQuCiAgIAogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaDoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oOgoKICAgZmlsZSBtdWx0aXBsZXhlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBmaWxlIGluc3RhbmNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5oOgoKICAgZmlsZSBudWxsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5Lmg6CgogICBmaWxlIHJlYWRfb25seS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpbGUgc2VyaWFsaXplLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaDoKCiAgIGZpbGUgdGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oOgoKICAgZmlsZSBpbnN0YW5jZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaWxlIHRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmg6CgogICBmaWxlIHNlcmlhbGl6ZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaDoKCiAgIGZpbGUgc2V0X2hlbHBlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIGZpbGUgbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmg6CgogICBmaWxlIG9sZF9hcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYzoKCiAgIGZpbGUgcmVhZF9vbmx5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZmlsZSBvbGRfYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDc6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWlzYyBmaXhlcyBmb3Igb2lkIGZvcm1hdHRpbmcgcHJvYmxlbXMuCiAgIAoyMDAxLTA2LTAxIDA3OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgTWFydGluIE9sZGZpZWxkLgogICAKMjAwMS0wNi0wMSAwMjo1MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBmaXggZm9yIGFic29sdXRlbHkgbWluZC1iZW5kaW5nIG1lbW9yeSBsZWFrIHdoZW4gQWdlbnRYIHNlc3Npb25zCiAgICAgICB0aW1lb3V0LiAgYWdlbnRfc2Vzc2lvbl9saXN0IGhvbGRzIGEgcXVldWUgb2Ygc2Vzc2lvbnMgd2l0aCBvdXRzdGFuZGluZwogICAgICAgcmVxdWVzdHMuICBXaGVuIGEgc2Vzc2lvbiB0aW1lcyBvdXQsIHRoaXMgbXVzdCBiZSBzY2F2ZW5nZWQgdG8gbWFrZQogICAgICAgc3VyZSB0aGUgc2Vzc2lvbnMgdGhhdCBoYXZlIHRpbWVkIG91dCwgYW5kIHRoZWlyIGFzc29jaWF0ZWQgcmVxdWVzdHMKICAgICAgIGFyZSBmcmVlKClkLgogICAKMjAwMS0wNS0zMCAwMzoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZXRyeSBpbml0aWFsIG9wZW4gb2YgQWdlbnRYIG1hc3RlciBzb2NrZXQgaWYgQWdlbnRYIHBpbmdzIGFyZQogICAgICAgZW5hYmxlZCAoc2hvdWxkIHJlYWxseSBiZSBhIHNlcGFyYXRlIGRlZmF1bHRfc3RvcmUgb3B0aW9uIGJ1dAogICAgICAgbmV2ZXIgbWluZCkKICAgCjIwMDEtMDUtMzAgMDM6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIGhhbmRsaW5nIG9mIHRpbWVvdXQgY29uZGl0aW9ucyAoYWxzbyBmaXggbWVtb3J5CiAgICAgICBsZWFrKQogICAKMjAwMS0wNS0zMCAwMzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gbW9yZSBpbmZvcm1hdGl2ZSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAgIC0gcmVtb3ZlIG5vaXN5IGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9yZSBjb21wYWN0IGRlYnVnZ2luZyBpbiBfc2Vzc19zZWxlY3RfaW5mbwogICAKMjAwMS0wNS0zMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNvcHkgZmxhZ3MgaW4gcmVhdHRhY2hfc3VidHJlZSAobmVlZGVkIGZvciBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikKICAgCjIwMDEtMDUtMjggMDg6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLAogICBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYywgc3ViYWdlbnQuYzoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gdHdlYWsgdG8gZ2V0U3RhdFB0ciB0byBoYW5kbGUgZ2V0TmV4dCBvcGVyYXRpb25zIGluIGNvbWJpbmF0aW9uIHdpdGgKICAgICAgIEZVTExZX1FVQUxJRklFRF9JTlNUQU5DRSBub2RlcyAod2hpY2ggYXJpc2UgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pLgogICAKMjAwMS0wNS0yOCAwODo0NiAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIHRvIGRlYnVnZ2luZyBvdXRwdXQKICAgCjIwMDEtMDUtMjggMDg6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcyAqcHJvcGVybHkqLgogICAKMjAwMS0wNS0yOCAwNDo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGluIF9zZXNzX2FzeW5jX3NlbmQgZXJyb3IgY2FzZXMKICAgCjIwMDEtMDUtMjggMDQ6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gYWRkIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMuCiAgIAoyMDAxLTA1LTIzIDA5OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXNwZWN0IG1zZ01heFNpemUgaW4gcmVjZWl2ZWQgdjMgUERVcyAoaW4gdGhlIHdlYWsgc2Vuc2UgdGhhdCBpZgogICAgICAgdGhlIHNlcmlhbGl6ZWQgcmVzcG9uc2UgUERVIGlzIG1vcmUgdGhhbiBpdCwgd2UgZG9uJ3Qgc2VuZCBpdCkKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkuICBVc2luZyB0aGVzZQogICAgICAgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuCiAgICAgICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLCBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZQogICAgICAgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA5OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RydWN0IHNvY2thZGRyX2luIHJlc3BJcAogICAKMjAwMS0wNS0yMyAwODo1OCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZWFybHkgYmFpbCBvdXQgb2YgaGFuZGxlX3NubXBfcGFja2V0KCkgaWYgdGhlIGNhbGxiYWNrIG9wZXJhdGlvbgogICAgICAgdHlwZSBpcyBub3QgU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFLiAgSW4gcHJhY3RpY2UsIHRoZQogICAgICAgb25seSB3YXkgdGhpcyBhcmlzZXMgY3VycmVudGx5IGlzIHdoZW4gYSBzdHJlYW0gdHJhbnNwb3J0IGJhc2VkCiAgICAgICBjb25uZWN0aW9uIGdvZXMgYXdheSBhbmQgYSBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgb2NjdXJzLgogICAKMjAwMS0wNS0yMyAwODo0NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbmV3IGZpZWxkcyByY3ZNc2dNYXhTaXplIGFuZCBzbmRNc2dNYXhTaXplIGluIHNubXBfc2Vzc2lvbgogICAgICAgc3RydWN0dXJlIHRvIHN1cHBvcnQgdjMgbXNnTWF4U2l6ZQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeSBmcm9tIHB1YmxpYwogICAgICAgaW50ZXJmYWNlLiAgVXNpbmcgdGhlc2UgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkKICAgICAgIHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLiAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywKICAgICAgIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwODozNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIG1zZ01heFNpemUgZmllbGQgdG8gc25tcF90cmFuc3BvcnQgc3RydWN0dXJlIHRvIHN1cHBvcnQKICAgICAgIG1zZ01heFNpemUgbmVnb3RpYXRpb24gZm9yIHYzCiAgIAoyMDAxLTA1LTIzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2NfaGV4c3RyaW5nIGluc3RlYWQgb2Ygc3ByaW50X2hleHN0cmluZyBmb3IKICAgICAgIFNOTVBfVEVTVElOR19DT0RFIGRlYnVnZ2luZyBvdXRwdXQgb2YgSVYsIGtleSBhbmQgcGxhaW50ZXh0CiAgIAoyMDAxLTA1LTIzIDA1OjI1ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIG9wdGlvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDA0OjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBhbmQgLUUgb3B0aW9ucywgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDAzOjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5IGZ1bmN0aW9ucyBmb3IgaW5wdXQgc3RyaW5nCiAgICAgICB0byBPQ1RFVCBTVFJJTkcgY29udmVyc2lvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBhc2NpaV90b19iaW5hcnkKICAgICAgIGFuZCBoZXhfdG9fYmluYXJ5CiAgIAogICAgIC0gb21pdCB0cmFpbGluZyBuZXdsaW5lIGZyb20gc3RyaW5nIChoZWxwZnVsIGZvciBvYmplY3RzIHRoYXQgZG9uJ3QKICAgICAgIGFsbG93IG5vbi1wcmludGluZyBjaGFyYWN0ZXJzLCBlLmcuIHN5c0xvY2F0aW9uLjApCiAgIAoyMDAxLTA1LTIwIDA4OjEyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXdyaXR0ZW4gX3Nlc3NfcmVhZCgpIGZ1bmN0aW9uOgogICAKICAgICAgIC0gYmV0dGVyIGhhbmRsaW5nIG9mIGxvbmcgcGFja2V0cwogICAgICAgLSB6ZXJvLWNvcHkgcmVjZXB0aW9uIG9mIHBhY2tldHMgb24gc3RyZWFtIHRyYW5zcG9ydHMKICAgICAgIC0gbG93ZXIgbWVtb3J5IG92ZXJoZWFkcyBmb3IgcGFja2V0IGZyYWdtZW50IGhhbmRsaW5nIGZvciBzdHJlYW0KICAgICAgICAgdHJhbnNwb3J0cwogICAKICAgICAtIGFsbG93IHBhcnNpbmcgb2YgbGFyZ2Ugb2JqZWN0cyAoPjgxOTIgb2N0ZXRzKQogICAKMjAwMS0wNS0yMCAwNTo0OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGNvbnRleHROYW1lLCBzZWN1cml0eU5hbWUgLS0gY2F1c2VzIG1pbm9yIG1lbW9yeQogICAgICAgbGVhay4KICAgCjIwMDEtMDUtMjAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdGVzdCByZXR1cm4gb2YgZmNudGwoRl9HRVRGTCksIHNvIGFzIG5vdCB0byBzZXQgZmxhZ3MgdG8gZ2FyYmFnZQogICAKICAgICAtIGNvcnJlY3Rpb24gdG8gY29tbWVudCAtLSBzZXQgc29ja2V0IHRvICpibG9ja2luZyohCiAgIAogICAgIC0gY2hlY2sgb3BhcXVlIGJlZm9yZSB3cml0aW5nIHRvIGl0IGluIHJlY3YKICAgCjIwMDEtMDUtMjAgMDU6MDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHByb3BlciBoYW5kbGluZyBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgaW4gc25tcF9zeW5jaF9pbnB1dDoKICAgICAgIHNldCBhbiBlcnJvciBjb25kaXRpb24sIHdpdGggZXJybm8gU05NUEVSUl9BQk9SVCAoIlNlc3Npb24gYWJvcnQKICAgICAgIGZhaWx1cmUiKSwgd2hpY2ggc2VlbXMgbGlrZSBhIGdvb2QgZW5vdWdoIG1hdGNoLgogICAKMjAwMS0wNS0xOCAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIG5ld2x5LWFjY2VwdCgpZWQgc29ja2V0cyBibG9ja2luZzsgb3RoZXJ3aXNlIHByb2JsZW1zIGFyaXNlCiAgICAgICBsYXRlciB3aGVuIHNlbmQoKWluZyBsYXJnZSBQRFVzIChzaW5jZSBvbmx5IGEgc2luZ2xlIHNvY2tldCBidWZmZXIncwogICAgICAgd29ydGggb2YgZGF0YSBhdCBtb3N0IGNhbiBiZSBzZW50IHdpdGhvdXQgYmxvY2tpbmcpLgogICAKMjAwMS0wNS0xOCAwNzoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBpbnN0ZWFkIG9mCiAgICAgICBzcHJpbnRfb2JqaWQgYW5kIHNwcmludF92YXJpYWJsZSByZXNwZWN0aXZlbHksIHRvIGFsbG93IGxhcmdlIFBEVXMKICAgICAgIHRvIGJlIHByaW50ZWQgd2hlbiBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMTggMDc6MTYgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBzbm1wX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xOCAwNzoxNSAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgICAtIHJlbW92ZSBkZWJ1Z2dpbmcgZnJvbSBvdXRwdXQgcm91dGluZXMKICAgCiAgICAgLSBuZXcgZnVuY3Rpb24gc3ByaW50X3JlYWxsb2Nfb2JqaWQKICAgCiAgICAgLSBtYWtlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBleHRlcm5hbGx5CiAgICAgICB2aXNpYmxlCiAgIAoyMDAxLTA1LTE4IDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBhc25fcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE1IDA0OjEwICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0lEcyBmb3IgVURQL0lQdjYgYW5kIFRDUC9JUHY2CiAgIAoyMDAxLTA1LTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGFkZGVkIFxuIHRvIHRleHQgb2Ygc25tcF9sb2coKSBtZXNzYWdlcyAoYnVnICM0MjI5NzgpCiAgIAoyMDAxLTA1LTExIDA3OjMwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAgIC0gYWRkZWQgc3ByaW50X3JlYWxsb2NfPHR5cGU+IGZhbWlseSBvZiBmdW5jdGlvbnMgd2hpY2ggdGFrZSBleHRyYQogICAgICAgcGFyYW1ldGVycyBhbmQgdXNlIHJlbG9jYXRpbmcgYnVmZmVycyB0byByZW1vdmUgbGltaXRhdGlvbnMgZHVlIHRvCiAgICAgICBmaXhlZC1zaXplIGJ1ZmZlcnMgKGUuZy4gc2VlIGJ1ZyAjNDA5MTgxKS4KICAgCiAgICAgLSBhbHNvIGZpeGVzIHBvdGVudGlhbCBwcm9ibGVtIG5vdGVkIGFzIGJ1ZyAjNDE0ODAzCiAgIAogICAgIC0gZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgYW5kIGZwcmludF92YWx1ZSB1c2UgbmV3IGZ1bmN0aW9ucwogICAgICAgc3VjaCB0aGF0IHNubXBnZXQgZXRjLiBhcmUgaW1wcm92ZWQgaW1tZWRpYXRlbHkKICAgCiAgICAgLSBvbGQgZnVuY3Rpb25zIHJlbWFpbiAqRk9SIE5PVyogLS0gYnV0IHJlYWxseSB0aGV5IHNob3VsZCBiZQogICAgICAgY29uc2lkZXJlZCB0byBiZSBkZXByZWNhdGVkIChuZXcgZnVuY3Rpb25zIHByb3ZpZGUgYSBzdXBlcnNldCBvZgogICAgICAgdGhlaXIgZnVuY3Rpb25hbGl0eSkuCiAgIAoyMDAxLTA1LTExIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgICAgLSBhZGRlZCBhZGRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIgdG8gc3RydWN0IHRyZWUgdG8gcG9pbnQgYXQKICAgICAgIHJlbG9jYXRpbmcgYnVmZmVyIGNvbXBhdGlibGUgb3V0cHV0IGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTExIDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgICAtIGFkZGVkIHV0aWxpdHkgZnVuY3Rpb24gc25tcF9zdHJjYXQsIHdoaWNoIGFwcGVuZHMgYSBzdHJpbmcgdG8gYQogICAgICAgcmVsb2NhdGFibGUgYnVmZmVyCiAgIAoyMDAxLTA1LTEwIDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBidWcgIzQyMzEwOSBpbmNvcnJlY3QgaW5kZXggcGFyc2luZwogICAKMjAwMS0wNS0wOSAxNjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZpeCBzbm1wX2NsaWVudC5jOjU2OTogd2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgogICAKMjAwMS0wNS0wOSAxMjozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24uaCwgUm1vbi9SRUFETUUsIFJtb24vYWd1dGlsLmMKLCBSbW9uL2FndXRpbC5oLCBSbW9uL2FndXRpbF9hcGkuaCwgUm1vbi9hbGFybS5jCiwgUm1vbi9hbGFybS5oLCBSbW9uL2V2ZW50LmMsIFJtb24vZXZlbnQuaCwKICAgUm1vbi9oaXN0b3J5LmMsIFJtb24vaGlzdG9yeS5oLCBSbW9uL3Jvd19hcGkuaCwKICAgUm1vbi9yb3dzLmMsIFJtb24vcm93cy5oLCBSbW9uL3N0YXRpc3RpY3MuYywKICAgUm1vbi9zdGF0aXN0aWNzLmgsIFJtb24vdGVzdF9hbGFybS5zaCwKICAgUm1vbi90ZXN0X2hpc3Quc2g6CgogICBJbmNsdWRlIEFsZXggUm96aW4ncyBSbW9uLgogICAKMjAwMS0wNS0wNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICBBZGRlZCBhIGNvdXBsZSBvZiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyB2YXJiaW5kbGlzdHM6CiAgICAgaW50IHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZShzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqbmV3dmFyLCB1X2NoYXIgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqdmFsX3N0ciwgc2l6ZV90IHZhbF9sZW4pOwogICAgIHZvaWQgc25tcF9yZXBsYWNlX3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgb2xkX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdfdHlwZSk7CiAgICAgdm9pZCBzbm1wX3Jlc2V0X3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgbmV3X3R5cGUpOwogICAKMjAwMS0wNS0wNyAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgZGVmaW5lIFNOTVBfTUFMTE9DX1RZUEVERUYoKQogICAKMjAwMS0wNS0wNSAwNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIGZpeCBzdG9yZV8gbmFtZTsgZG9uJ3QgY2FzdCB0byBhc255IHR5cGUgaWYgcGFybSBleHBlY3RpbmcgdV9jaGFyKjsgZml4IF92YXJpYWJsZV9vaWQKICAgbmFtaW5nOyBjYXN0IHBhcm0gMiBvZiBtZW1kdXAgdG8gdV9jaGFyKgogICAKMjAwMS0wNS0wMyAxNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAgIC0tIG1vcmUgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHByb2JsZW0gZm91bmQuCiAgIAoyMDAxLTA1LTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgIAoyMDAxLTA1LTAzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsCiAgIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgdXBkYXRlZCB0byBsaWJ0b29sIDEuNAogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICB1c2UgcmVhbGxvYyByb3V0aW5lcy4KICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMDUtMDEgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBwcmludCBoZXggZm9yIHN0cmluZyBsZW5ndGhzIGxlc3MgdGhhbiA0LiAgU2hvdWxkIGhhdmUgZGllZCBhZ2VzIGFnby4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oOgoKICAgRml4IHByb3RvdHlwZSBzbyBpdHMgbm90IHN0YXRpYyAoaXQgc2hvdWxkbid0IGJlKS4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBtYWtlIFJPTkxZIHZhcmlhYmxlcyB3cml0YWJsZSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yay4gIEknbSBiZXR0aW5nIG5vdC4pCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBhbiBycG0gc3ViZGlyZWN0b3J5LgogICAKMjAwMS0wNC0yMyAyMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBiaWcgY2xlYW51cCBhbmQgb3RoZXIgZml4ZXMgSSd2ZSBhbHJlYWR5IGZvcmdvdHRlbiBpbiB0aGUgbGFzdCBmZXcgbWludXRlcy4KICAgCjIwMDEtMDQtMjMgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgd2FsayBvZmYgZW5kIG9mIG1pYiB0cmVlIChzaWdoKS4KICAgCjIwMDEtMDQtMjMgMjA6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRoZSBtaWIgaW5mbyBkaXNwbGF5IG9wdGlvbnMuCiAgIHNhdmUgdGhlbSBhcHByb3ByaWF0ZWx5LgogICAKMjAwMS0wNC0yMyAxODoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtb3JlIHNhdmFibGUgb3B0aW9uIGl0ZW1zLgogICB1c2UgRGF0YTo6RHVtcGVyIHRvIHNhdmUgbW9zdCBzdHVmZi4KICAgCjIwMDEtMDQtMjMgMTc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgc2F2ZSBzZXNzaW9uIG9wdGlvbnMgdHdpY2UuCiAgIE1ha2UgY29sb3Igb2Ygd3JpdGFibGUgb2JqZWN0cyBhIHZhcmlhYmxlLgogICAKMjAwMS0wNC0yMyAxNzowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiB0a21pYiAoVjQtMi1wYXRjaGVzLjIpLCB0a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMjMgMTY6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcmVkdWNlIHNjcmVlbiByZWFsZXN0YXRlIGFsbCBvdmVyIHRoZSBwbGFjZQogICAKMjAwMS0wNC0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICB0ZXN0IGFnYWluc3QgdmVyc2lvbiA1CiAgIAoyMDAxLTA0LTE4IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0CiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkZWQgTE0tU0VOU09SUy1NSUIgc3VwcG9ydCAoZGlza2lvIGV4dGVuc2lvbikgZnJvbSBNYXJ0aW4gT2xkZmllbGQKICAgCjIwMDEtMDQtMTggMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhY2tpbmcgb24gc25tcF9hZGRfdmFyIHRvIGhhbmRsZSBsb25nIHZhbHVlcwogICAKICAgICAgIC0gdXNlIHNubXBfe2hleCxkZWNpbWFsfV90b19iaW5hcnkgaW5zdGVhZCBvZiBoZXhfdG9fYmluYXJ5CiAgICAgICAgIGFuZCBhc2NpaV90b19iaW5hcnk7IHRoZXNlIHNob3VsZCBiZSByZW1vdmVkCiAgIAogICAgICAgLSBkb24ndCB1c2Ugc3RydG9rIGluIHByb2Nlc3NpbmcgYml0c3RyaW5ncwogICAKMjAwMS0wNC0xOCAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSB1c2UgdGhlIGdlbmVyaWMgc25tcF9yZWFsbG9jIGZ1bmN0aW9uIGluIGFzbl9yZWFsbG9jCiAgIAoyMDAxLTA0LTE4IDAyOjQwICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgICAtIG5ldywgcmVhbGxvY2F0aW5nIHV0aWxpdHkgZnVuY3Rpb25zIHNubXBfaGV4X3RvX2JpbmFyeSBhbmQKICAgICAgIHNubXBfZGVjaW1hbF90b19iaW5hcnkgdG8gY29udmVydCBoZXggYW5kIGRlY2ltYWwgc3RyaW5ncyB0byBvY3RldAogICAgICAgc3RyaW5ncyByZXNwZWN0aXZlbHkuCiAgIAogICAgIC0gbmV3IHV0aWxpdHkgZnVuY3Rpb24gc25tcF9yZWFsbG9jIHRvIHBlcmZvcm0gYnVmZmVyIChyZS0pYWxsb2NhdGlvbgogICAKMjAwMS0wNC0xMiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgQmV0dGVyIGZpeCBmb3IgYnVnICM0MTQ4NTUgZnJvbSBhcmFqZXNoCiAgIEhhbmRsZXMgbm9uLXJlcGVhdGVycz0wIGFzIHdlbGwsIGFuZCBhdm9pZHMgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0wNC0xMSAxMDowNiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBleHRlbmRlZCAoYW5kIGNvcnJlY3RlZCEpIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBuZXcgQVBJLgogICAKMjAwMS0wNC0xMSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcC5jLCBzbm1wLmg6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkX3Zhcl9vcCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMTEgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDIgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gYXNuX3JlYWxsb2MoKSBmdW5jdGlvbiBjaGVja3Mgd2hldGhlciBpdCBoYXMgYmVlbiBwYXNzZWQgYSBOVUxMCiAgICAgICBwb2ludGVyIGFuZCB1c2VzIG1hbGxvYygpIGluIHRoYXQgY2FzZSAodGhhbmtzIHRvIE1pY2hhZWwgU2xpZmNhawogICAgICAgZm9yIHBvaW50aW5nIG91dCB0aGUgZGFuZ2VyIGhlcmUpLgogICAKMjAwMS0wNC0xMSAwNjoxMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA0OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHNldCBTT19TTkRCVUYgYW5kIFNPX1JDVkJVRiB0byAxMjhLYiBmb3IgbmV3bHktb3BlbmVkIFVEUCBzb2NrZXRzLAogICAgICAgdG8gZW5hYmxlIGxhcmdlIFBEVXMgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQuICBTb21lCiAgICAgICBpbXBsZW1lbnRhdGlvbnMgZGVmYXVsdCB2ZXJ5IGxvdyAoU29sYXJpcyAyLjcgOEtiLCBMaW51eCAyLjQKICAgICAgIDY0S2IpLgogICAKMjAwMS0wNC0wOSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBtb2RpZmllZCB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBtYWtlIHVzZSBvZiByZWFsbG9jYXRpbmcKICAgICAgIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmg6CgogICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5oOgoKICAgICAtIGFsbG93IGFkZGl0aW9uYWwgcGFyYW1ldGVyIGZvciBvdXRnb2luZyBwYXJhbXMgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHByb3RvdHlwZXMgZm9yIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMKICAgCjIwMDEtMDQtMDkgMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIHRvIHVzZSByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyBpZgogICAgICAgdXNpbmcgcmV2ZXJzZSBlbmNvZGluZyBhdCBhbGwuCiAgIAoyMDAxLTA0LTA5IDA5OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgICAtIGFkZCBuZXcgZnVuY3Rpb24gc25tcF9yZWFsbG9jX3JidWlsZF92YXJfb3AoKSB3aGljaCB1c2VzCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyB0byBlbmNvZGUgdmFyYmluZHMuCiAgIAoyMDAxLTA0LTA5IDA5OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHByb3RvdHlwZSBmb3IgbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwKICAgICAgIHdoaWNoIHBlcmZvcm0gcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlCiAgICAgICBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAogICAgIC0gY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIGFib3ZlLgogICAKMjAwMS0wNC0wOSAwOTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LCB3aGljaCBwZXJmb3JtCiAgICAgICByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUgaXMgbm90IGVub3VnaAogICAgICAgc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCjIwMDEtMDQtMDYgMTI6MTIgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCwgQ09QWUlORywgQ2hhbmdlTG9nLAogICBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIE5FV1MsIFBPUlRJTkcsCiAgIFJFQURNRSwgUkVBRE1FLmFnZW50eCwgUkVBRE1FLnNubXB2MywgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvZHNfYWdlbnQuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLCBsb2NhbC9zbm1wY29uZgosIGxvY2FsL3RrbWliLCBsb2NhbC93ZXNyZXN0YXJ0LCBtYW4vc25tcGNtZC4xCiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMSwKICAgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZiwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIG1lcmdlMyAtPiBtZXJnZTQuICBJIGRvbid0ICp0aGluayogSSBicm9rZSBhbnl0aGluZy4KICAgICAtIFRoZSBtYWluIGxpbmUgc2hvdWxkIG5vdyBjb250YWluIGFsbCB0aGUgNC4yLjEgcGF0Y2hlcy4KICAgICAtIEkgbWF5IGRvdWJsZSBjaGVjayB0aGlzIGF0IGEgbGF0ZXIgZGF0ZS4KICAgCjIwMDEtMDQtMDUgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBIYW5kbGUgc2V0dGluZyBudWxsIHN0cmluZyB2YWx1ZXMgdmlhIHRoZSAncGFzcycgbWVjaGFuaXNtLiAoU3VwcG9ydCM0MDY3MjgpCiAgIEFsc28gaGFuZGxlIGVtYmVkZGVkIHdoaXRlc3BhY2UgaW4gc3VjaCB2YWx1ZXMuCiAgIEFsc28gYXBwbGllZCB0byAncGFzc19wZXJzaXN0Jy4KICAgCjIwMDEtMDQtMDUgMDY6MDcgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLCBrZXJuZWwuYwosIG1pYl9tb2R1bGVzLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oCiwgc25tcF92YXJzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwosIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9ob3N0L2hyX3V0aWxzLmMKLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTA1IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA1IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgKEEgY2xlYW5lciBhcHByb2FjaCB0aGFuIHRoZSBwcmV2aW91cyBwYXRjaCkKICAgCjIwMDEtMDQtMDUgMDY6MDEgIGR0czEyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA1IDA0OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIHNhdmUgYSBzdHJjcHkoKSBhbmQgYWxsb3cgbG9uZyBvY3RldCBzdHJpbmcgdmFsdWVzIHdpdGhvdXQgY3Jhc2hpbmcKICAgICAgKHRob3VnaCB0aGVyZSBhcmUgc3RpbGwgcHJvYmxlbXMgZHVlIHRvIHRoZSBsaWJlcmFsIHVzZSBvZiBmaXhlZAogICAgICBzaXplIGJ1ZmZlcnMgd2l0aCBubyBib3VuZHMgY2hlY2tpbmcgYWxsIG92ZXIgdGhlIHBsYWNlLiAgU2lnaCkuCiAgIAoyMDAxLTA0LTA0IDA2OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTAzIDA5OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgJ2V4dG1wJyBjb21tYW5kIHZhcmlhYmxlIGlzIGFjY2Vzc2libGUgb24gc3lzdGVtcyB3aXRob3V0IEVYRUNWLgogICAKMjAwMS0wNC0wMyAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjIyICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToxNSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jLCBzbm1wVENQRG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmgsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oLCBzeXN0ZW0uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMTA6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gY2hlY2sgZm9yIGxpbWl0cy5oIHByb3Blcmx5CiAgIAoyMDAxLTA0LTAyIDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gbWlub3IgdHlwZWZhY2UgY2hhbmdlcwogICAKMjAwMS0wMy0zMSAwNjoyNyAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjI1ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAgLSBkb2N1bWVudCB0aGUgc25tcF9hbGFybV9yZWdpc3Rlcl9ociBmdW5jdGlvbgogICAKICAgIC0gZXhwYW5kIHRoZSBOT1RFUyBzZWN0aW9uIGRpc2N1c3NpbmcgdXNlIG9mIFNJR0FMUk0gKG9yIG5vdCkKICAgCjIwMDEtMDMtMzEgMDY6MTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkgYW5kIGNhbmNlbCBhbGwKICAgICAgY2FsbGJhY2tzIHdoaWNoIG1ha2UgcmVmZXJuY2UgdG8gdGhlIEFnZW50WCBzZXNzaW9uLgogICAKMjAwMS0wMy0zMSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgLSBGaXggbXVsdGlwbGUgZnJlZSgpIG9mIHBhcnRzIG9mIHRoZSBzdWJzZXNzaW9uIGJ5IHplcm9pbmcgb3V0CiAgICAgIGZpZWxkcyB0aGF0IHdlIGRvbid0IHVzZS4KICAgCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBDaGFuZ2VkIHBhY2tldCBoYW5kbGluZyBvbiBzdHJlYW0tbGlrZSB0cmFuc3BvcnRzIHNvIHRoYXQgYWxsCiAgICAgIGNvbXBsZXRlIHJlY2VpdmVkIHBhY2tldHMgYXJlIHByb2Nlc3NlZDoKICAgCiAgICAgIF9zZXNzX3JlYWQgaXMgcmVmYWN0b3JlZCBpbnRvIHR3byBmdW5jdGlvbnM6IF9zZXNzX3JlYWQgcmVtYWlucwogICAgICByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllciwgYnV0IHRoZW4KICAgICAgY2FsbHMgKHBlcmhhcHMgbW9yZSB0aGFuIG9uY2UpIF9zZXNzX3Byb2Nlc3NfcGFja2V0IHRvIGRpc3BhdGNoCiAgICAgIGVhY2ggcGFja2V0IHJlYWQuCiAgIAogICAgLSBUaGUgcHJlc2VuY2Ugb2YgYSBzZXNzaW9uIHdpdGggYSBidWZmZXJlZCBwYXJ0aWFsIHBhY2tldCBubyBsb25nZXIKICAgICAgY2F1c2VzIHNubXBfc2VsZWN0X2luZm8gdG8gcmV0dXJuIHdpdGggYSB0aW1lb3V0IG9mIHplcm8uCiAgIAogICAgLSBGcmVlIHRoZSBzdWJzZXNzaW9ucyBvZiBhIHNlc3Npb24gd2hlbiBkb2luZyBhbiBzbm1wX3Nlc3NfY2xvc2U7CiAgICAgIHRoaXMgZml4ZXMgYW4gQWdlbnRYIG1lbW9yeSBsZWFrIHdoZW4gc3ViYWdlbnRzIGNvbWUgYW5kIGdvLgogICAKICAgIC0gUGVyZm9ybSBjYWxsYmFja3Mgd2l0aCBhbiBvcGVyYXRpb24gYXJndW1lbnQgb2YKICAgICAgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHdoZW4geW91IGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24uCiAgIAoyMDAxLTAzLTMxIDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIE1hZGUgdHJhbnNwb3J0IGRvbWFpbiBjb25zdAogICAKMjAwMS0wMy0zMSAwNTo1NSAgamJwbgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBGaXggbWVtb3J5IGxlYWsgdGhhdCBjYW4gb2NjdXIgd2hlbiBkZXJlZ2lzdGVyaW5nIGNhbGxiYWNrcwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGZpbGUgUkVBRE1FLmFnZW50eCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVMgKFY0LTItcGF0Y2hlcy4xKSwgSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsLzogbGlic25tcC5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgbGlic25tcC5kZWYKOgoKICAgQWRkIHZhY21faXNfY29uZmlndXJlZC4KICAgCjIwMDEtMDMtMjggMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA2OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjM2ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9hcGkuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgIC0gcmVuYW1lIGNhbGxiYWNrIG9wZXJhdGlvbnMgdG8gU05NUF9DQUxMQkFDS19PUF88bmFtZT4KICAgIC0gYWRkIG5ldyBvcGVyYXRpb25zIFNOTVBfQ0FMTEJBQ0tfT1BfQ09OTkVDVCwgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUCiAgICAtIGFkZCBsZWdhY3kgZGVmaW5pdGlvbnMgZm9yIFJFQ0VJVkVEX01FU1NBR0UsIFRJTUVEX09VVCwgU0VORF9GQUlMRUQKICAgCjIwMDEtMDMtMjcgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGNoYW5nZSBmcHJpbnRmIC0+IHNubXBfbG9nLgogICBEb24ndCBhbGxvdyBtb2RpZmljYXRpb25zIG9mIHJlYWQtb25seSByb3dzIGluIG10ZU9iamVjdHNUYWJsZS4KICAgCjIwMDEtMDMtMjcgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jCiwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgU3VwcG9ydCBmb3IgbmV3IGZlYXR1cmVzIGluIHRoZSBESVNNQU4tRVZFTlQtTUlCIGNvZGU6CiAgICAgTmV3IHNubXBkLmNvbmYgdG9rZW5zOgogICAgICAtIG1vbml0b3IgWy1vIG9pZC4uLl0gWy11IHVzZXJdIG9pZCBbKD18IT18PD18Li4uKSBWQUxVRV0uCiAgICAgIC0gZGVmYXVsdE1vbml0b3JzIHllcwogICAKMjAwMS0wMy0yNyAxMDo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1vdmVkICogZnJvbSBiZWdpbm5pbmcgb2Ygcm91dGluZSB0byB0aGUgc2FtZSBsaW5lIGFzIHRoZSByZXR1cm4KICAgdmFyaWFibGUgZGVjbGFyYXRpb24uICBXYXMgY2F1c2luZyBldGFncyBncmllZiB0aGUgb3RoZXIgd2F5LgogICAKMjAwMS0wMy0yNyAxMDo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW46IHVzZSAlcyBpbnN0ZWFkIG9mIEBzIGZvciBzZWFyY2gvcmVwbGFjZSBkZWxpbWl0ZXJzLgogICAKMjAwMS0wMy0yNyAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2xvZyB3aXRoICVzIHRvIHByZXZlbnQgJSBleHBhbnNpb24gaW4gb2N0ZXQgc3RyaW5ncyBjb250YWluaW5nIGEgJXMuCiAgIHRyYXBfZm10X2ZyZWUgbmVlZHMgKClzLgogICAKMjAwMS0wMy0yNyAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jCjoKCiAgIEhhbmRsZSBub24tcmVzcG9uc2l2ZSBBZ2VudFggc3ViLWFnZW50cyBtb3JlIHJvYnVzdGx5LgogICAgICAoQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCAmIFBhdWwgUmFzbXVzc2VuKQogICAKMjAwMS0wMy0yNyAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQXZvaWQgZG91YmxlLWZyZWVpbmcgb2YgY2FjaGVkIGFkZHJlc3Mgc3RyaW5ncy4KICAgICAgKEpvaG4ncyBpbXByb3ZlbWVudCB0byBteSBzdWdnZXN0ZWQgZml4KS4KICAgCjIwMDEtMDMtMjcgMDI6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVzZXQgY291bnQgb2YgYXV0aG9yaXplZCBwZWVycyBvbiBjbG9zZWRvd24uICAoVGhhbmtzIHRvIFZsYWQgVHVuaWspCiAgIAoyMDAxLTAzLTI2IDE4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oCiAgIChWNC0yLXBhdGNoZXMuWzEsMiwxXSksIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBpcGYtbW9kLnBsIChWNC0yLXBhdGNoZXMuMSksIGlwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMDc6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBBU05fT0NURVRfU1RSIHJhdGhlciB0aGFuIHRoZSBoaXN0b3JpYyBBU05fQklUX1NUUiBmb3IgJ2InIG9iamVjdCB2YWx1ZXMKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgKFY0LTItcGF0Y2hlcy4zKSwgYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjMwICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXZvaWQgY3Jhc2ggaW4gc25tcF9zaHV0ZG93biBvbiBwbGF0Zm9ybXMgdGhhdCBjaGVjayBwb2ludGVyIHZhbGlkaXR5CiAgIGluIGZyZWUoMyksIGUuZy4gRnJlZUJTRC4KICAgCjIwMDEtMDMtMjEgMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBjb3B5X253b3JkIGNyZWF0ZWQgdGhhdCBjaGVja3MgYnVmZmVyIGxlbmd0aHMuCiAgIE1hZGUgZXZlcnl0aGluZyB1c2UgaXQuCiAgIAoyMDAxLTAzLTIxIDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMjAgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBQdXJpZnkgYW5kIE5GUyBzdHVmZgogICAKMjAwMS0wMy0xNiAxMDoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICBhZGRlZCBNSVRfTkVXX0NSWVBUTyAoZm9yIGtzbSkgZGVmaW5pdGlvbiB3aGljaCB3YXMgbWlzc2luZwogICAKMjAwMS0wMy0xNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggcmlkaWN1bG91cyBtZW1vcnkgbGVhayBpbiBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMTE6MDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIHdob29wcy4gIE1pc3NlZCBhIG1lcmdlIGNvbmZsaWN0IGxpbmUKICAgCjIwMDEtMDMtMTUgMTA6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXBkLjgKLCBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9NVEEtTUlCLnR4dCwKICAgbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvUkVBRE1FLm1pYnMsCiAgIG1pYnMvVFVOTkVMLU1JQi50eHQsIG1pYnMvaWFuYWxpc3QsIG1pYnMvbWliZmV0Y2gKLCBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmLCBtaWJzL3NtaXN0cmlwCiwgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB3aW4zMi9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgbWVyZ2UgZnJvbSBwYXRjaGVzIGJyYW5jaDogbWVyZ2UyLT4zLgogICAKMjAwMS0wMy0xNSAxMDoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmg6CgogICBleHRyYSBtZW1iZXJzIGZvciBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMDc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gcnVuIHNpZ25hbCBoYW5kbGVycyBlYXJsaWVyCiAgIAoyMDAxLTAzLTE0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuaCAoVjQtMi1wYXRjaGVzLjIpLCBhZ2VudF90cmFwLmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOiBtYWtlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgYSBwdWJsaWMgZm4uCiAgIAoyMDAxLTAzLTE0IDEyOjE2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTE6MDUgIHNsaWYKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gKLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaDoKCiAgIG1lcmdlIHRoZSB0ZXN0IHNjcmlwdCBjaGFuZ2VzIG1hZGUgaW4gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAxLTAzLTE0IDEwOjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIENoYW5nZSB0byBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcgdG8gc3RvcCBpdCByZXR1cm5pbmcgVFJVRSBhbGwgdGhlCiAgIHRpbWUKICAgCjIwMDEtMDMtMTQgMTA6NTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgIC0gcm91Z2ggc3RhYiBhdCBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgIC0gYmFpbCBvdXQgb2YgZ2V0TmV4dC10eXBlIGxvb3BzIG9uIGEgYmFkVHlwZSBjb25kaXRpb24KICAgCjIwMDEtMDMtMTQgMTA6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAga2VyYmVyb3MgUkVBRE1FIGZpbGUgZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTE0IDEwOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgR2V0IHJldHVybmVkICp2YXJfbGVuIHJpZ2h0IGZvciBtdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SUQKICAgCjIwMDEtMDMtMTQgMTA6MTkgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiwgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwgdG8gcXVpZXQgc29tZSB3YXJuaW5ncy4KICAgCjIwMDEtMDMtMTQgMTA6MTkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcGtzbS5jLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4uCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMi1wYXRjaGVzLjUpLCBocl9zd3J1bi5jCjoKCiAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy156mrZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfc2VjbW9kLmMKLCBzbm1wX3NlY21vZC5oLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX3NlY21vZC5oCjoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgU05NUC5wbSwgU05NUC54cywKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmMKLCBzbm1wVENQRG9tYWluLmgsIHNubXBVRFBEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5oLCBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLCBtdGVPYmplY3RzVGFibGUuYwosIG10ZU9iamVjdHNUYWJsZS5oLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmgsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUywgVDAyOHNubXB2M2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQwNTNhZ2VudHYxdHJhcCwKICAgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwgVDEwMGFnZW50aHVwCiwgVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwKLCBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQKLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC90cmFwdG9lbWFpbCwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvbWliMmMsIG1hbi9zbm1wY21kLjEsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuaCwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBkc19hZ2VudC5oLCB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAosIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYwo6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yICkKICAgCjIwMDAtMTItMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCiAgIAoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnhzLCB0L21pYmxvYWQudAosIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwogICAKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFJFQURNRToKCiAgIC0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KICAgCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KICAgCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KICAgCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgogICAKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzLCB0L2J1bGt3YWxrLnQsCiAgIHQvbm90aWZ5LnQsIHQvc2Vzc2lvbi50OgoKICAgZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKICAgCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgogICAKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQogICAgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgogICAKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KICAgCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCiAgIAoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCiAgIAoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKICAgCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CiAgIAoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCiAgIAoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCiAgIAoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNvbmYuMToKCiAgIC0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCiAgIAoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgogICAKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KICAgCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgogICAKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9ub3RpZnkudCwgc25tcGxpYi9taWIuYzoKCiAgIGFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQogICAKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgogICAqIHNubXBsaWIvOiBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCiAgIAoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCiAgIAoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KICAgCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCiAgIAoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAogICAgIHN5c3RlbSwgdHJhcHNpbmtzKToKICAgICAtIGdyb3VwaW5nIHN1cHBvcnQuCiAgICAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgogICAgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCiAgIAoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKICAgICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KICAgCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCiAgIAoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgogICAKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKICAgCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCiAgICogY29uZmlndXJlOgoKICAgZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKICAgCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRToKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1JFQURNRSwKICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50LAogICBwZXJsL1NOTVAvdC9taWIudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCiAgIHBlcmwvU05NUC90L3Nlc3Npb24udCwgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKGxvY2FsL3NubXBjb25mKToKICAgICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KICAgICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgogICAKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgogICAKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgogICAKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawogICAKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CiAgIAoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgogICAgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgogICAKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAogICAKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgogICAqIHBlcmwvU05NUC9TTk1QLnhzLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCiAgIAl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgogICAJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTI6LSgKICAgCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCiAgIAlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldDotKQogICAKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQogICAKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgogICAKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAogICAJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KICAgCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICAtICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KICAgCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KICAgCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IG1lbW9yeSBsZWFrcy4KICAgICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KICAgCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgogICAKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KICAgCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KICAgCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKICAgICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KICAgCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgogICAKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCiAgIAoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwOgoKICAgLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuYzoKCiAgIC0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAwLTExLTE2IDE1OjMxICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIG1pYi5jLCBwYXJzZS5oLAogICBzbm1wX2FwaS5jOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKICAgCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KICAgCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCiAgIAoyMDAwLTExLTE2IDEzOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKICAgCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KICAgCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCiAgIAkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQogICAKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6CiAgICAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KICAgICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgogICAgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KICAgCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtOgoKICAgLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgogICAKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgogICAKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgogICAKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKICAgCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgogICAKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCiAgIAlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgogICAKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCiAgIAoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKICAgCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCiAgIAoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQogICAKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaAo6CgogICAtIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKICAgICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCiAgICAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KICAgCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgogICAKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgogICAKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCiAgIAoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTEyIDA0OjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBhIGJvZ3VzICNpZmRlZgogICAKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCiAgIAoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcDoKCiAgIC0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgogICAgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCiAgICAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCiAgIAoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgogICAgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KICAgCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KICAgCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgogICAKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgogICAKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgcGVybC9TTk1QL1JFQURNRToKCiAgIC0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50OgoKICAgLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwKICAgU05NUC54czoKCiAgIC0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KICAgCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgogICAKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgogICAKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IGZpeCBPSUQuCiAgIAoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KICAgCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KICAgCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9zbm1wZC5jKToKICAgICAtIHVpZC9naWQgY2hhbmdlcy4KICAgCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgogICAKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgogICAgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KICAgICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgogICAgIC0gcmFuZ2UgYWNjZXNzLgogICAKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCiAgIAoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHM6CgogICAtIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCiAgIAoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgogICAKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCiAgIAoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KICAgCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKICAgICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgogICAKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCiAgIAoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCiAgIAoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCiAgICAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCiAgICAgLSBmaXhlcyBidWcgIzEyMTc1LgogICAKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KICAgCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgogICAKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KICAgICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCiAgIAoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpcC5jLCBpcEFkZHIuYwosIHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgogICAKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCiAgIAoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKICAgCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwogICAKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICBEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KICAgCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgogICAKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCiAgIAoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCiAgIAoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KICAgCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKICAgCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KICAgCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgogICAgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCiAgIAoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgogICAKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICAtIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCiAgIAoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCiAgIAoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCiAgIAoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKICAgCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKICAgCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMKOgoKICAgLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCiAgIAoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCiAgIAoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KICAgCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKICAgICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCiAgIAoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgogICAgIC0gZml4IGJ1ZyAjMzgyCiAgICAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KICAgCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCiAgIAoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQ6CgogICAtICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KICAgCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KICAgCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAogICAJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKICAgCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMDFhZ2VudHgsIFQxMTBhZ2VudHhnZXQ6CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CiAgICAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCiAgIAoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgogICAKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgogICAKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KICAgCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KICAgCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KICAgCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eDoKCiAgIC0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCiAgIAoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCiAgIAoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KICAgCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgogICAJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KICAgCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgogICAJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCiAgIAlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCiAgIAljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgogICAKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgogICAKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzLzogTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaAosIGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKICAgCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgogICAgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCiAgIAoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHR1bm5lbC5oLCB0dW5uZWwvdHVubmVsLmMsCiAgIHR1bm5lbC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCiAgIAoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCiAgIAoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KICAgCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KICAgCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICBSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCiAgIAoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KICAgCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KICAgCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KICAgCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KICAgCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIE1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCiAgIAoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKICAgCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCiAgIAoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LAogICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NodXRkb3duX21pYi4zLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCiAgIAlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CiAgIAoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCiAgIAoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgogICAKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgogICAqIEZBUToKCiAgIC0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgogICAKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgogICAKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgogICAKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCiAgIAoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCiAgIAoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKICAgCUdFVEJVTEsKICAgCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KICAgCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgogICAKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CiAgICAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgogICAKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CiAgICAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCiAgIAoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwogICAgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCiAgICAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCiAgIAoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CiAgICAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KICAgCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCiAgIAoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdmFjbS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCiAgIFRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KICAgCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQogICAKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCiAgIAoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgIAoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCiAgIAljb25maWd1cmF0aW9uIGZpbGVzCiAgIAoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgogICAKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCiAgIAoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgogICAKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCiAgIAoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KICAgCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOgogICAgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KICAgICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCiAgICAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgogICAgIC0gbWlzYy4KICAgCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KICAgCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KICAgCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KICAgCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCiAgIAoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgogICBUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAogICAKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgogICAKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KICAgCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KICAgCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KICAgCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCiAgIAoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCiAgIAoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgogICAKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KICAgICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgogICAKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKICAgICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgogICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCiAgIAoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCiAgIAoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKICAgCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKICAgCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgYWRkX21pYmRpci4zLAogICBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsIGdldF9tb2R1bGVfbm9kZS4zLCBpbml0X21pYi4zCiwgaW5pdF9taWJfaW50ZXJuYWxzLjMsIHByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIHByaW50X21pYi4zLCBwcmludF9vYmppZC4zLCBwcmludF92YWx1ZS4zLAogICBwcmludF92YXJpYWJsZS4zLCByZWFkX2FsbF9taWJzLjMsIHJlYWRfbWliLjMsCiAgIHJlYWRfbW9kdWxlLjMsIHJlYWRfbW9kdWxlX25vZGUuMywgcmVhZF9vYmppZC4zLAogICBzbm1wX3NldF9taWJfd2FybmluZ3MuMywgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMzoKCiAgIC0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQogICAKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIHJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKICAgCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICAtIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KICAgCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgogICAgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgogICAgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KICAgCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KICAgCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KICAgCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKICAgCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgogICAKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgogICAKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCiAgIAoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCiAgIAoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgogICAKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQogICByZXNvbHZlZC4KICAgCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBjYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgogICAKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgogICAqIG1pYnMvOiBIQ05VTS1UQy50eHQsIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsCiAgIElORVQtQUREUkVTUy1NSUIudHh0LCBJUC1GT1JXQVJELU1JQi50eHQsIHNtaXN0cmlwCjoKCiAgICAtbWlicy86IE1JQiB1cGRhdGVzCiAgIAoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCiAgICogbWlicy86IElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5pbiwKICAgTWFrZWZpbGUubWliLCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsIFJGQy0xMjE1LnR4dAosIFJGQzExNTUtU01JLnR4dCwgUkZDMTIxMy1NSUIudHh0OgoKICAgLSBtaWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xLCBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jCiwgYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwogICAKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAogICAKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgogICAKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwogICAKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKICAgCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGYuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KICAgCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKICAgCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgogICAKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xOgoKICAgLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KICAgCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwogICAJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCiAgIAoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQogICAgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQogICAJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCiAgIAlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KICAgCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4KLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQogICAKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zdHJ0b3VsLmM6CgogICBmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvbC5jOgoKICAgZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmM6CgogICBmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KICAgCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KICAgICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCiAgICAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgogICAKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgogICAKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCiAgIAoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KICAgCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKICAgICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCiAgICAgZG9pbmcgdGhpbmdzLgogICAKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCiAgIAoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgogICAKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgogICAKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgogICAgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KICAgCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgogICAKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgogICAKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCiAgIAoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCiAgIAkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCiAgIAoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgogICAKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYzoKCiAgIC0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKICAgICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCiAgIAoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQogICAgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCiAgIAoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCiAgIAoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBzbm1wZC5oOgoKICAgLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCiAgIAoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgogICAKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgogICAKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKICAgICB1c2VyIHdpdGggcXVlc3Rpb25zLgogICAKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKICAgICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgogICAKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgIC0gZml4IG9wZW5zc2wgY2hlY2tzLgogICAgLSBydW4gYXV0b2hlYWRlci4KICAgCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIE1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wZGYvLmN2c2lnbm9yZSwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXB2YWNtLy5jdnNpZ25vcmUsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIFdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKICAgCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIC0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCiAgIAoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICAtIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKICAgCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvdGNwLmMsCiAgIG1pYklJL3RjcFRhYmxlLmMsIG1pYklJL3VkcC5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKICAgCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQogICAKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawogICAKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHVwZGF0ZWQgY29kZS4KICAgCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCiAgIAoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwogICAJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCiAgIAoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwogICAKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwogICAJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCiAgIAoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KICAgdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgogICAKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KICAgCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KICAgCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgogICAKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCiAgIAoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgogICAKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KICAgCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCiAgIAoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgogICAKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCiAgICogRkFROgoKICAgRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KICAgCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgogICAqIElOU1RBTEw6CgogICBGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CiAgIAoyMDAwLTA4LTE1IDAwOjA4ICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdGVzdC5jOgoKICAgLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCiAgIAoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLlsxLDAsMF0pLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CiAgIAoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgogICAKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAogICAgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgogICAgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCiAgIAoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KICAgCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBhcHBzL3NubXBidWxrZ2V0LmMKLCBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKICAgCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KICAgCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCiAgIAoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCiAgIAoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKICAgICAtIHR5cG9zLgogICAKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICAtIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgogICAKMjAwMC0wOC0xMSAwMDo0MyAgbmJhCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KICAgCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCiAgIAlPYmplY3ROYW1lCiAgIAoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CiAgICAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCiAgICAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KICAgCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KICAgCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KICAgCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgogICAKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgogICAKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKICAgc25tcHVzbS5oLCBzbm1wdjMuYzoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KICAgICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgogICAKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdmFjbS5jOgoKICAgbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgogICAKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3ByaW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9wcmludC5jCjoKCiAgIC0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KICAgCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgogICAKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCiAgIAoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCiAgICAgLQogICAKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KICAgCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmM6CgogICBmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CiAgIAoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKICAgCW91dHN0YW5kaW5nIHJlcXVlc3RzCiAgIAoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIC0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCiAgIAoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIEFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KICAgCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMzoKCiAgIGZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgogICAqIG1hbi9yZWFkX29iamlkLjM6CgogICBmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjM6CgogICBmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZV9ub2RlLjM6CgogICBmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9tb2R1bGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9taWIuMzoKCiAgIGZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9hbGxfbWlicy4zOgoKICAgZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhcmlhYmxlLjM6CgogICBmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhbHVlLjM6CgogICBmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X29iamlkLjM6CgogICBmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X21pYi4zOgoKICAgZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMzoKCiAgIGZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWIuMzoKCiAgIGZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjM6CgogICBmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9nZXRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2FkZF9taWJkaXIuMzoKCiAgIGZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIC0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgogICAKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgogICAgLSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgogICAKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KICAgCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICAtIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKICAgCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKICAgCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUC1GT1JXQVJELU1JQi50eHQ6CgogICBmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0OgoKICAgZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQ6CgogICBmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9IQ05VTS1UQy50eHQ6CgogICBmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KICAgCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBCVUcgIzI5MTogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwogICAKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jCjoKCiAgIEZpeCAoQlVHIzMyMyk6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgogICAKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgogICBGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCiAgIEZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCiAgIAoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKICAgCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKICAgCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL1RFU1RDT05GLnNoLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCiAgIAoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgogICAKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICAtIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCiAgIAoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KICAgCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECiAgIAkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKICAgCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKICAgCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgogICAKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaC5pbjoKCiAgIChURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KICAgKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCiAgIAoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLmluOgoKICAgRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgogICBEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCiAgIAoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCiAgIEtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCiAgIFNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KICAgCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQogICAKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAogICAKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CiAgICAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCiAgICAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgogICAgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgogICAKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmg6CgogICAtIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgogICAgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCiAgICAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCiAgIAoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCiAgICAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCiAgIAoyMDAwLTA3LTI4IDA2OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmFyX3JvdXRlLmM6CgogICBDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCiAgIAoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKICAgICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgogICAKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CiAgICAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgogICAKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KICAgCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KICAgCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCiAgIAlmb3IgYW5vdGhlcgogICAKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CiAgIAlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgogICAKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgogICAKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdHJhbnNsYXRlT2JqIGhhY2suCiAgIAoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCiAgIAoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KICAgCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQogICAgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KICAgCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCB0L21pYi50CjoKCiAgIGFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAogICAKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KICAgCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKICAgICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwogICAgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCiAgICAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAogICAgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCiAgICAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCiAgIAoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCiAgIAoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CiAgIAoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQogICAgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCiAgIAoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KICAgICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwogICAgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCiAgIAoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBhc24xLmgsIHNubXBfYXBpLmMpOgogICAgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCiAgICAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwogICAgICAgYXBwcm9wcmlhdGVseS4KICAgCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgogICAKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCiAgICAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKICAgICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCiAgICAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCiAgICAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCiAgICAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKICAgICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCiAgICAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKICAgICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCiAgICAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKICAgICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KICAgICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KICAgICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQogICAgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKICAgICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKICAgICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCiAgICAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQogICAgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCiAgICAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKICAgICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCiAgICAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQogICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKICAgICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgogICAKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCiAgICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgogICAgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCiAgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgogICAgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KICAgCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHN5c3RlbS5jOgoKICAgZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCiAgIAoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmaXggKEJVRyMyODcpCiAgIAoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGZpeCBidWcgIyAyODkKICAgCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CiAgIAoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKICAgCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKICAgKiBtaWJzLzogSUYtTUlCLnR4dCwgTWFrZWZpbGUubWliOgoKICAgLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCiAgIAoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KICAgCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgogICAKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKICAgCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xCiwgc25tcGdldC4xLCBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRlc3QuMSwgc25tcHRyYXAuMQosIHNubXB0cmFwZC44LCBzbm1wd2Fsay4xLCB2YXJpYWJsZXMuNToKCiAgIC0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwogICAKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKICAgCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKICAgKiBtaWJzLzogQUdFTlRYLU1JQi50eHQsIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBESVNNQU4tU0NSSVBULU1JQi50eHQsIEV0aGVyTGlrZS1NSUIudHh0LAogICBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BLUxBTkdVQUdFLU1JQi50eHQKLCBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQKLCBJUFY2LUlDTVAtTUlCLnR4dCwgSVBWNi1NSUIudHh0LCBJUFY2LVRDLnR4dAosIElQVjYtVENQLU1JQi50eHQsIE1ha2VmaWxlLmluLCBSTU9OLU1JQi50eHQKLCBTTVVYLU1JQi50eHQsIFNOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1UQVJHRVQtTUlCLnR4dCwgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgU05NUHYyLUNPTkYudHh0LAogICBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVNNSS50eHQsIFNOTVB2Mi1UQy50eHQsCiAgIFNOTVB2Mi1UTS50eHQsIFRDUC1NSUIudHh0LCBVRFAtTUlCLnR4dDoKCiAgIC0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgogICAKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIC0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwogICAJZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKICAgCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQogICAJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KICAgCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwogICAKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAtIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCiAgIAoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAogICAJaXMgc2VudC4KICAgCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCAoQlVHIzIzMykKICAgCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgogICAKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpcC5jOgoKICAgLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwogICAJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKICAgCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKICAgCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KICAgCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KICAgCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIFVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KICAgCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCiAgIAoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgogICAKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICBEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KICAgCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KICAgCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgogICAKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgogICAKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCiAgIAoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCiAgIAoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFycy4KICAgCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgogICAKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgogICAKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMKLCBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CiAgICAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CiAgICAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgogICAgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KICAgICAgIC0gbXVjaCB0b2RvOgogICAgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgogICAgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgogICAgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KICAgICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KICAgLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KICAgCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCiAgIAoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgogICAKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgogICAKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KICAgCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBwcm90b2NvbC5jOgoKICAgKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCiAgIChjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KICAgCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgogICAKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgUHJvdG90eXBlIGZpeHVwLgogICAKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICBzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCiAgIAoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCiAgIAoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZhdCBmaW5nZXJzCiAgIAoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5QTDoKCiAgIGFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KICAgCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgogICAKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKICAgICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgogICAgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKICAgICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KICAgICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQogICAgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KICAgICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KICAgCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgogICAKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCiAgICAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgogICAKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCiAgIAoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKICAgICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICAgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCiAgIAoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCiAgIAoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLAogICBtaWIyYywgdGttaWI6CgogICAtIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKICAgICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgogICAKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KICAgICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgogICAKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KICAgCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKICAgICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCiAgICAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KICAgCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KICAgIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQogICAgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KICAgCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXAuaDoKCiAgIC0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKICAgCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KICAgICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgogICAgIC0gbm8gc2V0IHN1cHBvcnQuCiAgICAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KICAgICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQ6CgogICBmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvQUdFTlRYLU1JQi50eHQ6CgogICBmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQ6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL21pYmZldGNoOgoKICAgZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgogICAgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwogICAgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCiAgIAoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCiAgIAoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKICAgCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQogICAgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwogICAKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwogICAKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAogICAKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KICAgCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCiAgIFNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KICAgCjIwMDAtMDUtMjUgMDM6MzkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KICAgCjIwMDAtMDUtMjUgMDM6MzEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKICAgCjIwMDAtMDUtMjUgMDE6NTMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IFJlcGxhY2UgdXNlIG9mICdjdXQnIHdpdGggZXF1aXZhbGVudCAnc2VkJyBjYWxscwogICAKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgogICAgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQogICAKMjAwMC0wNS0yMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgogICAKMjAwMC0wNS0yMiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYwosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKICAgICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBfcGFyc2VfYXJncy5oKToKICAgICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KICAgICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCiAgIAoyMDAwLTA1LTIyIDA1OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIC0gKHNubXBsaWIvdG9vbHMuW2NoXSk6IFJvdXRpbmUgZm9yIGNvbXBhcmluZyB0d28gbWFya2Vycy4KICAgCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQogICAKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gd3JpdGFibGUgdmFjbSBtaWIgc3VwcG9ydC4KICAgICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KICAgCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gRG9uJ3Qgc2VnZmF1bHQgb24gYW4gdW5rbm93biBjb21tYW5kLCBpbnN0ZWFkIHByaW50IGEgd2FybmluZy4uCiAgIAoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICAtIChzbm1wdmFjbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCiAgIAoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IG1lbnRpb24gdGhlIHBvcnQgbnVtYmVyIG9uIHRoZSB0cmFwc2luayBoZWxwIGxpbmUuCiAgIAoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwogICAKMjAwMC0wNS0xNyAwOToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KICAgICBKZWZmIENvdXJzOgogICAgIC0gY3VzdG9taXplZCBmb3JtYXR0aW5nIG9mIHRyYXAgb3V0cHV0LgogICAKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkIEplZmYgYW5kIEFybmUuCiAgIAoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KICAgCjIwMDAtMDUtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCiAgIAoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgogICAgIC0gc2hlbGwgYmFja3NsYXNoIGVzY2FwZSBxdW90YXRpb25zIG1hcmtzIGZvciBjdXR0aW5nIGFuZCBwYXN0aW5nCiAgICAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaAosIGljbXAuYywgaXAuYywgaXAuaCwgaWNtcC5oLCB0Y3AuYwosIHRjcC5oLCB1ZHAuYywgdWRwLmg6CgogICAtIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CiAgICAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgogICAgIC0gIENhY2hlIE1JQi1JSSBzdGF0aXN0aWNzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgogICAKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuYwosIHVjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oOgoKICAgLSAodWNkX3NubXAuaCwgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgogICAKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKICAgCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCiAgIAoyMDAwLTA1LTE1IDAzOjAwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwogICAKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudF9pbmRleC5bY2hdKTogTW92ZSAnZmQnIHJlZ2lzdHJ5IGhhbmRsaW5nIGJhY2sgdG8gYWdlbnRfcmVnaXN0cnkKICAgCiAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwogICAKMjAwMC0wNS0xMiAxMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgogICAKMjAwMC0wNS0xMiAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAogICAKMjAwMC0wNS0xMiAwODo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwogICAJVGhhbmtzIHRvIEpheSBZb3VuZwogICAKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oLCBNYWtlZmlsZS5pbgosIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gU3BsaXQgaW5kZXggaGFuZGxpbmcgb3V0IGZyb20gdGhlIE1JQiByZWdpc3RyeS4KICAgCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEFkZCBzdXBwb3J0IGZvciByZWNvZ25pc2luZyBRdWFkRmFzdEV0aGVyIGludGVyZmFjZQogICAKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCiAgIAlUaGFua3MgdG8gWGF2aWVyIEZPVVJORVQKICAgCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgogICAJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KICAgCUhlcmUncyBob3BpbmcuLi4uLgogICAKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgogICAJRGlzYXBwZWFyaW5nIHN1YmFnZW50cyB0aGVyZWZvciBhcHBlYXIgYXMgbm9ybWFsIEkvTyBmYWlsdXJlcwogICAKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6CiAgICAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKICAgICAtIEJyaW5nIHBhY2tldCBkdW1wIGluIGxpbmUgd2l0aCB0aGUgbWFpbiBsaWJyYXJ5IHN0eWxlCiAgICAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwogICAKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KICAgCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCiAgIAoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKICAgICBtYXBwaW5ncyB2aWEgLXAgW3RyYW5zcG9ydDpdcG9ydFtAYWRkcmVzc10uCiAgIAoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CiAgIAoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwogICAKMjAwMC0wNS0xMCAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgogICAKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCiAgIAoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwogICAKMjAwMC0wNS0xMCAwNTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCiAgIAoyMDAwLTA1LTEwIDA1OjI5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCiAgIAoyMDAwLTA1LTA5IDE0OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGFsc28gY2xlYW4gV2luMzIgYmluYXJ5IG9iamVjdHMsIGFuZCBjb3JlIGZpbGVzLgogICAKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCiAgIAoyMDAwLTA1LTA5IDExOjMyICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHVudGlsIERhdmUncyB2ZXJzaW9uIHdpbnMsIG5lZWQgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBidWlsZCBXaW4zMiBhZ2VudC4KICAgCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQogICAKMjAwMC0wNS0wOSAxMTozMCAgbXNsaWZjYWsKCiAgICogbHRtYWluLnNoOgoKICAgUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgogICAKMjAwMC0wNS0wOSAwODo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCiAgIAkoYW5kIGZpeCBhIHByb2JsZW0gd2l0aCBzcGVjaWZ5aW5nIHRoZSBlbmQtb2YtcmFuZ2UgdmFsdWUpCiAgIAoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KICAgCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQogICAKMjAwMC0wNS0wOSAwNzozNCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgogICAJKFRoaXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgb2YgZG9pbmcgdGhpbmdzLAogICAJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgogICAKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKICAgCShyYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgbmFtZSByZWdpc3RlcmVkKQogICAJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KICAgCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KICAgCjIwMDAtMDUtMDggMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggbGlicmFyeSBsaXN0LgogICAKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgogICAKMjAwMC0wNS0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCiAgIAoyMDAwLTA1LTA1IDA5OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLjUpLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIC0td2l0aC1saWJ3cmFwIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHN1YmFnZW50LmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgogICAgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CiAgICAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAogICAJKFRoZXNlIG1heSBub3QgYmUgYWJzb2x1dGVseSBuZWNlc3NhcnksIGJ1dCB0aGV5IGdldCB0aGluZ3Mgd29ya2luZyBhZ2FpbiEpCiAgIAoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgogICAKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gYWxsb3cgLS13aXRob3V0LW9wZW5zc2wgdG8gd29yay4KICAgCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiAoVjQtMS0xLXBhdGNoZXMuMiksIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAogICAKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgogICAgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCiAgIAoyMDAwLTA1LTA0IDA4OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuW2NoXSk6IE5ldyByb3V0aW5lICdzbm1wX2Nsb25lX3ZhcmJpbmQoKScKICAgCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwMToyOSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KICAgCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwogICAJCShCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gZnJvbSBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHVjZC1zbm1wL3Byb2MuYyk6IEluaXRpYWxpemUgbmV3bHkgbWFsbG9jZWQgc3RydWN0dXJlCiAgIAkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQogICAKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAgICAgTmV3IHJvdXRpbmUgJ2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uJwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAogICAJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCiAgIAoyMDAwLTA1LTAzIDA4OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDQ6MzcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKICAgCShhbmQgcmVtb3ZlIHJlZHVuZGFudCAnZ2VuZXJpYycgU0VUIGhhbmRsaW5nKQogICAKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcHJpbnRpbmcgb2YgQklUUyB2YXJpYWJsZXMKICAgCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICAgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgogICAKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gdXNlIHNpZ2FjdGlvbiB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgogICAKMjAwMC0wNC0yNyAxNDo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wZGYuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCiAgICAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KICAgCjIwMDAtMDQtMjcgMTA6NTcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBycG0gaXMgbm93CiAgICAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCiAgIAoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCiAgIAoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKICAgICAtIG1vcmUgbGlidG9vbCBmaXhlcyAoLnNvIHZlcnNpb25pbmcsIHByb3Blcmx5IGluc3RhbGwuLi4pCiAgIAoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW4sIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbHRjb25maWcsIGx0bWFpbi5zaCwgYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZQosIGFnZW50L21pYmdyb3VwL2R1bW15Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDA4OjExICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KICAgCjIwMDAtMDQtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwogICAgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCiAgICAgVGhpcyBzaG91bGQgZml4IGEgcHJvYmxlbSB3aGVyZSBTTk1QIFJlc2VhcmNoJ3MgRW1hbnRlIGFnZW50IGlzCiAgICAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQogICAgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKICAgICBvbiBpbiBnZW5lcmFsIGFuZCBpcyB0aGUgb25seSBwb3NzaWJsZSB0aGluZyB0byB1c2UgaW4gY2FzZXMgd2hlcmUKICAgICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCiAgIAoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KICAgCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KICAgCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgogICAKMjAwMC0wNC0yNCAxMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CiAgICAgYmUgdXNlZCBhbnltb3JlICh2MSwgdjJjKS4KICAgCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsCiAgIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYwosIHNubXBfZGVidWcuaCwgc25tcHVzbS5jOgoKICAgLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICAgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgIC0gdGltZXN0YW1wcyBjYW4gYmUgcHJpbnRlZCBhcyBhIG51bWVyaWMgbnVtYmVyIG9ubHkgKC1PdCkuCiAgICAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCiAgICAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKICAgICAgICAgKHZhbHVlcykuICBkdW1weF8gYW5kIGR1bXB2XyAobm90ZSB0aGUgX3MpIG1ha2UgaXQgZWF0IHNwYWNlCiAgICAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCiAgICAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KICAgICAgIC0gdG9kbzoKICAgICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KICAgICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwogICAgICAgICAgIHZpc3VhbGx5IGluIHRoZSBkdW1wZWQgcGFja2V0KS4KICAgICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KICAgCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQogICAKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRVhULjQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wd2Fsay5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBmaXggR0VUIGNhbGwgZm9yIGFuIHNubXB3YWxrLiAod2FzIHVzaW5nIGEgR0VUTkVYVCBQRFUsIGFjaykuCiAgIAoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KICAgCjIwMDAtMDQtMjEgMDg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYyAoVjQtMS0xLXBhdGNoZXMuNSksIG1pYi5jOgoKICAgLSAobWliLmMpOiBmaXggZnByaW50X2Rlc2NyaXB0aW9uIHRvIGNoZWNrIGZvciBudWxsIHN1YnRyZWVzLgogICAKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCiAgIAoyMDAwLTA0LTE5IDExOjAyICBtYXJ6CgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgY2hhbmdlZCBtb2RlX3QgdHlwZWRlZiB0byBhZ3JlZSB3aXRoIHdoYXQgQWN0aXZlU3RhdGUgcGVybCB1c2VzIChhbnlvbmUgaGF2ZSBhIHByb2JsZW0gd2l0aCB0aGlzPykKICAgCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQogICAKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KICAgCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICBtb3ZlIHN0YXRpYyBkZWNsIHRvIC5jO21pbm9yIGNhc3RpbmcgYWJvdXQgdG8gc3VwcG9ydCBhQ0MKICAgCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDQtMTggMTE6MDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlszLDMsMywyLDMsMl0pLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgogICAKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CiAgICAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgogICAKMjAwMC0wNC0xOCAwMzoxOCAgZGF2ZXMKCiAgICogbWFuL3NubXB0YWJsZS4xLCBhcHBzL3NubXB0YWJsZS5jIChWNC0xLTEtcGF0Y2hlcy5bMSwzXSksCiAgIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKICAgICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKICAgCjIwMDAtMDQtMTggMDI6MDEgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAogICAKMjAwMC0wNC0xNyAxNTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgogICAKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBmaXggLVogdG8gdXNlIGEgJywnLgogICAKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgKOgoKICAgLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogUGF0Y2ggZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgogICAKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHZtc3RhdC5jCjoKCiAgIC0gKHZtc3RhdC5jKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgogICAKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KICAgCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KICAgCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCiAgIAoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMiwzLDJdKSwgYXV0b19ubGlzdC5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCiAgIAoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wZ2V0LjEsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCiAgIAoyMDAwLTA0LTE0IDE1OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgKG9wcHMpLgogICAKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2ZXJzaW9uaW5mby5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmVyc2lvbmluZm8uYzoKCiAgIC0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KICAgCjIwMDAtMDQtMTMgMDU6NDkgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KICAgCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQgKFY0LTEtMS1wYXRjaGVzLjEpLCBidWctcmVwb3J0OgoKICAgaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCiAgIAoyMDAwLTA0LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjMpLCBtaWIuYzoKCiAgIGZpeCAlZiglcykKICAgCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JZi4KICAgCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCiAgIAoyMDAwLTA0LTEyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IHB1dCBzcGFjZSBiYWNrIGluIHVzYWdlIGxpbmUuCiAgIAoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKICAgICAtIEFkZCBhIG5ldyBvcHRpb24gLUlmIHRvIHNwZWNpZnkgZml4aW5nIG9mIFBEVXMuCiAgICAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KICAgICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgogICAKMjAwMC0wNC0xMiAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgogICAgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCiAgIAoyMDAwLTA0LTEyIDA2OjQ5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlsxLDFdKSwgd2luMzIuZHN3LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCiAgIAoyMDAwLTA0LTEyIDA1OjMyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKICAgCW9mIE1BQ1JPIGludm9jYXRpb25zIGZvciBzdGFuZGFyZCBzeW1ib2xzCiAgIAoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFsbG93IHNwZWNpZmljYXRpb24gb2Ygd2l0aCBmb3IgLVRwCiAgIAoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dAo6CgogICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKICAgCVJGQyAyNzkwCiAgIAoyMDAwLTA0LTExIDE1OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWFrZSBjb25maWdfYWRkX21pYigpIGFjdHVhbGx5IGxvb2sgZm9yCiAgICAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KICAgCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBtYWtlIG1hY2FkZHIgZW5naW5laWQgc2V0dXAgbm90IGxpbnV4CiAgICAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgogICAKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5oKTogcmVtb3ZlIG9sZCBjYWxsYmFjayB0eXBlZGVmIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBlbmFibGUgZW5naW5lSUQgdG8gYmUgc2V0IGZyb20gTUFDQWRkci4KICAgCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IE5ldyBtb2R1bGUgZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCiAgIAoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTVRBLU1JQi50eHQsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dDoKCiAgIC0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCiAgIAoyMDAwLTA0LTExIDAzOjI1ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMTEgMDI6MzUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmVwb3J0IGZhaWx1cmVzIGZyb20gQUNUSU9OIHBoYXNlIG9mIFNFVCBjb3JyZWN0bHkuCiAgIAoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwKICAgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0xMCAwNTowOCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMCwyXSksIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggbXVsdGktc3ViYWdlbnQgcmVxdWVzdHMKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jIChWNC0xLTEtcGF0Y2hlcy5bMiwyXSksCiAgIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgogICAgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCiAgICAgICByZWNlaXZlciBzaWRlLiAgc25tcHYzIGluZm9ybXMgc3RheSBhcyBpcy4gIFVuZm9ydHVuYXRlbHksIGZvcgogICAgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCiAgICAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCiAgICAgICBzb21ld2hhdCBvZiBhIGhhY2suCiAgIAoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwogICAKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bNCwyLDNdKSwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKICAgICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCiAgICAgICBpbnRlcm5hbCBkaXJlY3RpdmVzIHVzZWQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCiAgICAgICBkZWZhdWx0X3N0b3JlLmggZGVwZW5kZW5jaWVzIGdvIGF3YXkgYWdhaW4uCiAgICAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCiAgIAoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwogICAKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBGaXggdXNhZ2UgbWVzc2FnZSBhbGlnbm1lbnQuCiAgIAoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXBkLjEuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgogICAKMjAwMC0wNC0wNSAwODo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICAtIChGQVEySFRNTCk6IGl0J3MgYmVlbiBzaXR0aW5nIGluIG15IHBlcnNvbmFsIHNyYyB0cmVlIGZvciA+IDIgeWVhcnMuCiAgIAoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMKOgoKICAgLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAogICAgIHNubXB1c20uYywgc25tcHVzbS5oLCBzbm1wdjMuYyk6CiAgICAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCiAgICAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KICAgICAgIHVzbVVzZXIuYyB3aXRoIGEgc2lkZSBlZmZlY3Qgb2YgbmVlZGluZyBjYWxsYmFjay5oIGFib3ZlIHNubXB1c20uaC4KICAgCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IG1pc2MgbWlub3IgYWRkaXRpb25zIHRvIC8KICAgCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy44KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKICAgCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluaXRpYWxpemUgc3RhdFAuCiAgIAoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgogICAKMjAwMC0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgogICAKMjAwMC0wNC0wMyAwNzo1MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgU0VUcyBmYWlsIGlmIG9uZSB2YXJiaW5kIGRvZXMuCiAgIAoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCB0byByZXBvcnQgJ25vU3VjaE9iamVjdCcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCiAgIAoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEb24ndCByZXBlYXQgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgaW4gYSBQRFUgZHVtcAogICAKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9sb2dnaW5nLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyk6IEhhbmRsZSBsb2dnaW5nIGVtcHR5IHN0cmluZ3MgKGUuZy4gYSBudWxsIGluZGVudCkKICAgCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy41KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQogICAJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAzLTI3IDEwOjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMS0xLXBhdGNoZXMuMiksIGhyX3N3cnVuLmMKOgoKICAgcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCiAgIAoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgdG8gc3luYyB3aXRoIHBhdGNoZXMgYnJhbmNoLgogICAKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCiAgIAoyMDAwLTAzLTI0IDA0OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICB4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCiAgIAoyMDAwLTAzLTIzIDIzOjI5ICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXAuMQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKICAgCXNubXBpbmZvcm0uCiAgIAoyMDAwLTAzLTIzIDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgogICAKMjAwMC0wMy0yMyAwMzowMiAgbmJhCgogICAqIG1hbi9zbm1waW5mb3JtLjE6CgogICBmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIHByaW50ZiA/CiAgIAoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCiAgIAoyMDAwLTAzLTIxIDA5OjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIG1vcmUgc21vb3RoIHNhaWxpbmcgd2l0aCBXaW4zMiAuRExMIC4gRExMRVhQT1JULCBhbnlvbmUgPwogICAKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgd2luMzIgYnVpbGQgY2hlY2s6IG5vIHNpZ2FjdGlvbiwgU0lHQ0xEIGRlZmluZWQuCiAgIAoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChkc19hZ2VudC5oIHNubXBkLmMgbWliZ3JvdXAvYWdlbnR4L3ttYXN0ZXIsc3ViYWdlbnR9LmMpOgogICAgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKICAgICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQogICAKMjAwMC0wMy0yMSAwODozOCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCiAgIAoyMDAwLTAzLTIxIDA0OjA1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IE1pc3NpbmcgbmV3LWxpbmUgb24gZGVidWcgb3V0cHV0CiAgIAoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcC5jLCB0Y3AuaCwgdGNwVGFibGUuYwosIHRjcFRhYmxlLmgsIHVkcC5jLCBpY21wLmMsIHVkcC5oLAogICB1ZHBUYWJsZS5jLCB1ZHBUYWJsZS5oLCBpY21wLmgsIGlwLmMsCiAgIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKICAgCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDb21tZW50IC1DIC0tIGRvIG5vdCB1c2UgdGhpcyBmbGFnLgogICAKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCiAgIAoyMDAwLTAzLTE2IDAwOjEwICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAtIGNvbmZpZ3VyZSwgaHJfcHJpbnQuYzogZGV0ZWN0IHN5c3RlbSBwcmludGVycyAoU3lzVi9scHN0YXQsICpCU0QvY2dldG5leHQsCiAgIAlMaW51eC9wcmludGNhcCkKICAgCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBTZWNvbmQgcGFydDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aXRoIHVucmVnaXN0ZXJfaW5kZXguCiAgIAoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgogICAKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgogICAKMjAwMC0wMy0xNSAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMSksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBpbmZpbml0ZSBsb29wIHByb2JsZW0gd2hlbiB3YWxraW5nIHN1YmFnZW50LgogICAKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQXZvaWQgY2FsbGluZyByZWFkIHJvdXRpbmUgZm9yIGVhY2ggU0VUIGhhbmRsaW5nIHBhc3MuCiAgIAlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CiAgIAoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKICAgCjIwMDAtMDMtMTUgMDU6MjIgIGRhdmVzCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCiAgIAoyMDAwLTAzLTE1IDAxOjUxICBkYXZlcwoKICAgKiBzbm1wbGliLzogc3lzdGVtLmggKFY0LTEtMS1wYXRjaGVzLjEpLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmgpOiBEb24ndCBkZWNsYXJlIGdldHRpbWVvZmRheSgpIGlmIHRoZSBzeXN0ZW0gcHJvdmlkZXMgaXQuCiAgIAkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKICAgCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KICAgCjIwMDAtMDMtMTQgMDc6NTIgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmV0dXJuIGEgcmVzcG9uc2UsIGV2ZW4gaWYgdGhlIHJlcXVlc3QgZmFpbGVkLgogICAKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oOgoKICAgLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKICAgCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgogICAKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2Q6CgogICAtIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGRsbW9kIGJ1aWxkIE1ha2VmaWxlIGV4YW1wbGUuICBOZWVkcyBpbmNvcnBlcmF0aW9uIHdpdGggbWFpbiBjb25maWd1cmUuCiAgIAoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKICAgCjIwMDAtMDMtMTAgMTA6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgogICAKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KICAgICBGcmFuayBTdHJhdXNzOgogICAgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKICAgICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKICAgICAgIG8gZml4ZWQgcmVnaXN0cmF0aW9uICh1Y2RhdmlzLnVjZEV4cGVyaW1lbnRhbC4xNCBpbnN0ZWFkIG9mIHVjZGF2aXMuMTQpCiAgICAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwogICAgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCiAgICAgICBvIG1hZGUgZGxtb2RJbmRleCBub3QtYWNjZXNzaWJsZSAob25seSBpbXBsZW1lbnRhdGlvbiwgbm90IGRlZmluaXRpb24pCiAgICAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKICAgICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKICAgICAgIG8gbWFkZSB0aGUgd29tYmF0IGV4YW1wbGUgdXNhYmxlIGFzIHN0YXRpYyBhbmQgZHluYW1pYyBtb2R1bGUKICAgICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQogICAKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKICAgICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KICAgICAtIGFyYml0cmFyeSBmaWxlIGRlc2NyaXB0b3Ivc29ja2V0IHJlZ2lzdHJhdGlvbi4KICAgICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgogICAKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICAgIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCiAgIAoyMDAwLTAzLTEwIDEwOjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciByZS1hcnJhbmdlZCBzb21lIHN0dWZmLgogICAKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCiAgIAoyMDAwLTAzLTA3IDExOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6IG1ha2UgTUFYX1NVQklEUyBsYXJnZXIgYW5kIGEgbXVsdGlwbGUgb2YgOC4KICAgCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgogICAqIEZBUSwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCiAgIAoyMDAwLTAzLTA3IDA5OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgogICAKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCiAgIAoyMDAwLTAzLTA3IDA4OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KICAgCjIwMDAtMDMtMDcgMDc6MDggIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIHRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KICAgCjIwMDAtMDMtMDYgMjA6MDEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluOgoKICAgY2xlYW5lZCB1cCBTQ08gVW5peFdhcmUgYnVpbGQuCiAgIAoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwKICAgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzdGFydCBzdXBwb3J0IGZvciBTQ08gVW5peFdhcmUgNSBhcyBzdnI1LgogICAKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZG9uJ3QgY2hlY2sgcmFuZ2VzIGlmIG5vdCByZXF1ZXN0ZWQuCiAgIAoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jCjoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KICAgCjIwMDAtMDMtMDYgMTA6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCiAgIAoyMDAwLTAzLTA2IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oCjoKCiAgIC0gKGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IElkZWEgZnJvbSBhc2hpcG1hbkBlcmdncm91cC5jb206CiAgICAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCiAgIAoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKICAgc3ltYm9saWMgbWliIG5hbWVzKGUuZy4sIGZvby42LjcpIHdoZW4gZG9pbmcgdHJhbnNsYXRlT2JqLgogICAKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCiAgIAlpcyBhdmFpbGFibGUKICAgCjIwMDAtMDMtMDQgMTE6MzAgIG5iYQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBrZXJuZWwuaCwgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCjoKCiAgIC0gYWdlbnQvKHZhcmlvdXMpOiBnbG9iYWxpemUgdGhlIGt2bV90ICprZCB2YXJpYWJsZQogICAKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICAtIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQogICAKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYwosIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsIHVjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMKLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oOgoKICAgLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBmaXhlcyBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCiAgIAoyMDAwLTAzLTA0IDExOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMTowNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIC0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKICAgCjIwMDAtMDMtMDQgMTE6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwogICAJLU9TIGZvcm1hdAogICAKMjAwMC0wMy0wMiAxMTo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CiAgIAoyMDAwLTAzLTAyIDExOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKICAgCjIwMDAtMDMtMDIgMDg6MzAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXBBZGRyLmMsIGlwQWRkci5oCiwgaXAuaDoKCiAgIC0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KICAgCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KICAgCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgogICAKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuaCwgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNubXBkLmgsIHNtdXguYzogZG9uJ3QgaW5pdGlhbGl6ZSBzbXV4IG1hc3RlciBpbiBzdWIgYWdlbnQKICAgCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCiAgIAoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IHNwcmludF9ieV90eXBlIHNob3VsZCBoYW5kbGUgQVNOX0JJVF9TVFIKICAgCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwogICAKMjAwMC0wMi0yOCAxMDo0NyAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmaXggYnVnICMxNzYgKEFJWCA0IC0gdXNlIGtubGlzdCBpbiBsaWV1IG9mIG5saXN0KQogICAKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCiAgIAoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogbmV3IHNubXAuY29uZiBrZXl3b3JkCiAgICAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCiAgIAoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHNldC4xOgoKICAgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyICgndScgYW5kICdjJykgaW4gc25tcHNldCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKICAgCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wdHJhcC4xLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCiAgICgndScgYW5kICdjJykgaW4gc25tcHRyYXAgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBmaXggc2V0dGluZyBvZiBvY3RldCBzdHJpbmdzLgogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCiAgIAoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIGluZGlyZWN0aW9ucyBpbiBzdHJjYXNlY21wCiAgIAoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCiAgIAoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICAtIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CiAgIAoyMDAwLTAyLTIxIDE2OjE3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEFwcGx5IFIuIFN0b3J5J3MgcGF0Y2ggZm9yIG1rZGlyaGllciBhbmQgc3RybmNhc2VjbXAgb24gd2luMzIKICAgCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgogICAqIG1hbi86IHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMsCiAgIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xCjoKCiAgIGZpeCBidWcgMTcxICh0aGFua3MgdG8gTGFycnkgUGFybWVsZWUpLgogICAKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICByZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKICAgCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXBfYWxhcm0uMwosIHNubXBfc2Vzc19hcGkuMzoKCiAgIEFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKICAgCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMwosIHNubXBfb3Blbi4zLCBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zCiwgc25tcF9zZW5kLjMsIHNubXBfc2Vzc19hc3luY19zZW5kLjMsCiAgIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywgc25tcF9zZXNzX2luaXQuMwosIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLAogICBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsIHNubXBfc2Vzc19zZXNzaW9uLjMsCiAgIHNubXBfc2Vzc190aW1lb3V0LjMsIHNubXBfdGltZW91dC4zOgoKICAgcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCiAgIAoyMDAwLTAyLTE3IDA1OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCiAgIAoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAoY29uZmlndXJlKiB1Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyk6CiAgICAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAogICAgICAgKFRoYW5rcyB0byBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZCkKICAgCjIwMDAtMDItMTYgMjA6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvc25tcF9taWIuYwosIG1pYklJL3N5c09SVGFibGUuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgaW5jbHVkZSBtaWJpbmNsLmggaW4gaHJfc3lzdGVtLmMgdG8gZml4IGJ1ZyAjMTU5LgogICAKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICByZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCiAgIAoyMDAwLTAyLTE2IDE1OjE3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHBhdGNoIHN1Z2dlc3RlZCBieSBSaWNrIEJlYW1hbiA8YmVhbWFuQG1lZGlhb25lLm5ldD4KICAgCjIwMDAtMDItMTYgMTQ6NTggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDAtMDItMTYgMTQ6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiB2YWNtLmMsIHZhY20uaDoKCiAgIHRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KICAgCjIwMDAtMDItMTYgMDg6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGluY2x1ZGUgdGltZS5oIG9uY2UKICAgCjIwMDAtMDItMTYgMDg6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgcmVzdG9yZSAjaWYgSEFWRS4uLklOX1BDQl9ICiAgIAoyMDAwLTAyLTE1IDIzOjQ3ICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oCjoKCiAgIC0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwogICAJbGFja2luZyBpbiB0aGUga2VybmVsIHN0YXRpc3RpY3MgdGhvdWdoLgogICAKMjAwMC0wMi0xNSAyMzo0MCAgbmJhCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwo6CgogICAtIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCiAgIAoyMDAwLTAyLTE1IDIzOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIGhyX2ZpbGVzeXMuYzogTU5UVFlQRSBkZWZpbmVzIGZvciBGcmVlQlNELTMgYW5kIEJTREktNCwgYW5kIG1vdmluZyB0aGUKICAgCXJldHVybiB2YWx1ZSBmb3IgRXh0MkZTIHRvIHRoZSBuZXdseSBkZWZpbmVkIE9JRC4KICAgCjIwMDAtMDItMTUgMjM6MjMgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCiAgIAoyMDAwLTAyLTE1IDIzOjIyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gdmFjbSo6IGJ1ZmZlciBsZW5ndGggY2hlY2tpbmchCiAgIAoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgogICAKMjAwMC0wMi0xNSAyMzoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgLSB1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuaDogbWFrZSBpdCB3b3JrIGZvciBGcmVlQlNELTMgdG9vCiAgIAoyMDAwLTAyLTE1IDIzOjE2ICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6IG9uZSBtb3JlIHBsYWNlIHRvIHNlbmQgYSBBVVRIRkFJTCB0cmFwCiAgIAoyMDAwLTAyLTE1IDIzOjE1ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKICAgCjIwMDAtMDItMTUgMDI6MTIgIGRhdmVzCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogT21pdCBkZXByZWNhdGVkIG9wdGlvbnMgZnJvbSBvcHRhcmcgaGFuZGxpbmcuCiAgIAoyMDAwLTAyLTExIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAogICAKMjAwMC0wMi0xMSAxNTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICAtIChyc25tcCk6IHBlcmw1IC0+IHBlcmwKICAgCjIwMDAtMDItMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF90cmFwX2FwaS4zCiAgIAoyMDAwLTAyLTExIDE0OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogbGFzdCBtaW51dGUgbWFrZWZpbGUgdG91Y2h1cAogICAKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDQuMS4xCiAgIAoyMDAwLTAyLTExIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDQuMS4xCiAgIAoyMDAwLTAyLTExIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCiAgIAoyMDAwLTAyLTExIDEyOjUzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsCjoKCiAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgogICAKMjAwMC0wMi0xMSAxMjo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGRvbid0IGNwIGZvciBzbm1wY2hlY2sKICAgCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKICAgCjIwMDAtMDItMTEgMTI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KICAgCjIwMDAtMDItMTEgMTI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHBhdGNoIGZyb20gTmllbHM6CiAgICAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KICAgCjIwMDAtMDItMTEgMTI6MjIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgogICAKMjAwMC0wMi0xMSAwNjo1OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgogICAKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBleHRlbnNpYmxlLmMsIHBhc3NfcGVyc2lzdC5jCjoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDItMTAgMTA6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCiAgIAoyMDAwLTAyLTEwIDEwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KICAgCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMsCiAgIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmCiwgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMsIHNubXBidWxrZ2V0LjEKLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZC4xLmRlZiwKICAgc25tcGQuY29uZi41LmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgc25tcGdldG5leHQuMSwgc25tcG5ldHN0YXQuMSwgc25tcHNldC4xLAogICBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdGVzdC4xLAogICBzbm1wdHJhbnNsYXRlLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwZC44LAogICBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xLCBzbm1wd2Fsay4xLAogICB2YXJpYWJsZXMuNToKCiAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKICAgCjIwMDAtMDItMTAgMDg6MTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtZDUuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oCjoKCiAgIGZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwogICAKMjAwMC0wMi0xMCAwNzo1NCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCiAgIAoyMDAwLTAyLTEwIDA3OjE0ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKICAgCjIwMDAtMDItMTAgMDQ6NDEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICAtIChzbm1wbGliL3tzbm1wX2FwaSxzbm1wX2NsaWVudH0uYyBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMpOgogICAgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgogICAKMjAwMC0wMi0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KICAgCjIwMDAtMDItMDkgMTM6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgogICAKMjAwMC0wMi0wOSAxMzozOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsCiAgIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICAtIChTdjNTSEFERVNjb25maWcsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKICAgICAtIG1ha2UgU0hBIHRlc3RzIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZ3NoYToKCiAgIC0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAogICAKMjAwMC0wMi0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwKLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsOgoKICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsKTogZml4IGZvciBwcm9wZXIgQUNNIGVycm9yIG91dHB1dHMuCiAgIAoyMDAwLTAyLTA5IDEzOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmg6CgogICBEZWZpbmUgU05NUF9NQVhQQVRILCBhbmQgdXNlIGl0LgogICAKMjAwMC0wMi0wOSAxMzozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTCjoKCiAgIC0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKICAgCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCiAgIAoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CiAgICAgLSBmaXggcG9zaWJsZSBhY20gRG9TIHByb2JsZW1zIGJ5IGNoZWNraW5nIGFjY2VzcyB0YWJsZXMgZWFybHkgb24uCiAgIAoyMDAwLTAyLTA5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgogICAKMjAwMC0wMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCiAgIAoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IHJzbm1wIGJ1aWxkLiAgUmVhbGx5LiAgSSBtZWFuIGl0LgogICAKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jOgoKICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAtIFNvbGFyaXMgcGF0Y2hlcy4KICAgCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgLSB1c2UgJChNQUtFKS4KICAgCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCiAgIAoyMDAwLTAyLTA3IDExOjQ5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb29wcyBtaXNzaW5nIGltcG9ydGFudCBmaXggZm9yIHdpbjMyIGJ1aWxkIC0gZmRfc2V0IG11c3QgYmUgc2FtZSBzaXplIGFzIGluIHdpbnNvY2sKICAgCjIwMDAtMDItMDcgMTE6MTggIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICB0aGUgcHJvcGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHJlbW92ZSB0aGUgc2Vjb25kIHRva2VuIChob3N0bmFtZSkuCiAgIAoyMDAwLTAyLTA3IDEwOjQzICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0OgoKICAgS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCiAgIAoyMDAwLTAyLTA3IDA3OjIwICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HOgoKICAgLSAoUE9SVElORyk6IE1pY2hhZWwgbGlrZXMgZGlmZiAtdS4KICAgCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgogICAKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY29ycmVjdCBzb21lIGF3ZnVsIHRleHQgLT4gZW5naW5lSUQgY3JlYXRpb24gbWlzdGFrZXMuCiAgIAoyMDAwLTAyLTA1IDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgogICAKMjAwMC0wMi0wNSAwNjo1NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgZml4IHZlcnNpb24gIG51bWJlcgogICAKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC86IHNlc3Npb24udCwgc2V0LnQsIHN0YXJ0YWdlbnQucGw6CgogICB3ZWlyZCBkZWxheSBpbiBjcmVhdGlvbiBvZiBwaWQgZmlsZXMKICAgCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvOiBub3RpZnkudCwgc3RhcnRhZ2VudC5wbDoKCiAgIGJyYWluLW8KICAgCjIwMDAtMDItMDQgMTc6NTIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMSApCiAgIAoyMDAwLTAyLTA0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5zbm1wdjMsIFRPRE86CgogICAtIChQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5zbm1wdjMsIFRPRE8pOiBsYXN0IG1pbnV0ZSBkb2MgdXBkYXRlcy4KICAgCjIwMDAtMDItMDQgMTc6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGxvY2FsIGZpeGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3QgaGF2ZQogICAgIGNvbXBsaWFudCBtYWtlZmlsZSB2YXJpYWJsZXMgbGlrZSAkPC4KICAgCjIwMDAtMDItMDQgMTY6NDcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgNC4xCiAgIAoyMDAwLTAyLTA0IDE1OjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IEJVRywgaGludHMvc29sYXJpcy5wbDoKCiAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAogICAKMjAwMC0wMi0wNCAxNToyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBoaW50cy9zb2xhcmlzLnBsLCB0L2dldC50LCB0L2dldG5leHQudAosIHQvc2Vzc2lvbi50LCB0L3NldC50LCB0L3NubXB0ZXN0LmNvbmY6CgogICBidWlsZCBmaXhlcyBhbmQgdGVzdCBlbmhhbmNlbWVudHMKICAgCjIwMDAtMDItMDQgMTU6MDkgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBTTk1QLnhzLAogICB0L2FzeW5jLnQsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50LCB0L21pYmxvYWQudAosIHQvc2Vzc2lvbi50LCB0L3NldC50LCB0L3NubXBkLmNvbmYsCiAgIHQvc25tcHRlc3QuY29uZjoKCiAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwogICAKMjAwMC0wMi0wNCAxNDowMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCiAgIAoyMDAwLTAyLTA0IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gaW1wbGVtZW50IC1jIGFuZCAtQyBmbGFncyBmb3IgSm9lLgogICAgIC0gcmVkaWQgdGhlIGluaXQgc3RydWN0dXJlIHRvIG1ha2UgaXQgbG9vayBtb3JlIGxpa2UgdGhlIGN1cnJlbnQgYWdlbnQuCiAgIAoyMDAwLTAyLTA0IDEzOjUyICBtYXJ6CgogICAqIElOU1RBTEw6CgogICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKICAgCjIwMDAtMDItMDQgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogZG9uJ3QgcmVhZCB0aGUgb3B0IGNvbmZpZyBmaWxlIG9yIGNhbGwKICAgICBwb3N0X2NvbmZpZyBjYWxsYmFja3MsIHNpbmNlIHRoZSBsaWJyYXJ5IHRha2VzIGNhcmUgb2YgdGhhdCBub3cuCiAgIAoyMDAwLTAyLTA0IDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KICAgCjIwMDAtMDItMDQgMTM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkb24ndCBwcmludCBmYWlsZWQgYWNjZXNzIGVycm9ycyAoRUFDQ0VTKS4KICAgCjIwMDAtMDItMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jKTogcHJvdmlkZSB2MyBkZWZhdWx0cy4KICAgCjIwMDAtMDItMDQgMTI6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KICAgCjIwMDAtMDItMDQgMDg6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhZGQgZGVmYXVsdHMgZm9yIHYyIHRyYXAgcGFyYW1zCiAgIAoyMDAwLTAyLTA0IDA2OjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgIGhhdmUgbWliIGxvYWRpbmcgYXBpIHJldHVybiByZXN1bHQgY29kZXMKICAgCjIwMDAtMDItMDQgMDQ6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwogICAKMjAwMC0wMi0wNCAwMToyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKICAgCjIwMDAtMDItMDQgMDA6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgCVNDU0kgdG8gRnJlZUJTRCAzCiAgIAoyMDAwLTAyLTA0IDAwOjE2ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jLCBtaWIuYzogZml4IHNvbWUgUEFUSCBzZXBhcmF0b3JzIGZyb20gY29uc3RhbnQ6IHRvCiAgIAlFTlZfU0VQQVJBVE9Se19DSEFSfQogICAKMjAwMC0wMi0wMyAyMzo1OSAgbmJhCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLSBtdF9zdXBwb3J0Lmg6IGFub3RoZXIgd2F5IG9mIGRvaW5nIG5vdGhpbmcsIG5vdCBnaXZpbmcgYSAibnVsbCBlZmZlY3QiCiAgIAl3YXJuaW5nIGZyb20gZ2NjLgogICAKMjAwMC0wMi0wMyAyMzo1NyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAJKGNoYXIgKikgdG8gKHVfY2hhciAqKSB0b3Agc2lsZW5jZSBzb21lIHdhcm5pbmdzLgogICAKMjAwMC0wMi0wMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcmVtb3ZlIGR1bW15IHJlZmVyZW5jZS4KICAgCjIwMDAtMDItMDMgMTQ6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IHByb3RlY3Qgc3lzT1JUYWJsZSBjYWxsYmFja3Mgd2l0aCAjaWZkZWZzLgogICAKMjAwMC0wMi0wMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgogICAKMjAwMC0wMi0wMyAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvOiBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwKICAgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaDoKCiAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgogICAKMjAwMC0wMi0wMyAxMzoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZvbGxvdyBjb25kaXRpb24gSEFWRV9HRVRQSUQgZm9yIHBpZF9maWxlIG9iamVjdC4KICAgCjIwMDAtMDItMDMgMTI6NTggIG1zbGlmY2FrCgogICAqIFJFQURNRSwgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgTm90ZSB0aGUgd29tYmF0IGlzIHJlcGxhY2VkIGJ5IGV4YW1wbGUgaW4gbW9yZSBwbGFjZXMuCiAgIAoyMDAwLTAyLTAzIDEyOjU3ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AKOgoKICAgUmVtb3ZlIERPUy1zdHlsZSBsaW5lIHRlcm1pbmF0aW9uIChDUi1MRiAtLT4gTEYpLgogICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCiAgIAoyMDAwLTAyLTAzIDEwOjQ4ICBtYXJ6CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DOiksIGJ0dyBpcyB0aGUgdmFsdWUgb2Ygb3B0YXJnIHJlbGlhYmxlIGFmdGVyIGdldG9wdCBoYXMgYmVlbiBjYWxsZWQgYWdhaW4uLi5pdCBzZWVtcyB0byB3b3JrCiAgIAoyMDAwLTAyLTAzIDA5OjU2ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCB3aW4zMi9jb25maWcuaAo6CgogICBJbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggZnJvbSBtaWJpbmNsLmgsIG5vdCB0b3AgbGV2ZWwgY29uZmlnLmguCiAgIAoyMDAwLTAyLTAzIDA5OjQ0ICBtYXJ6CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbAogICAKMjAwMC0wMi0wMyAwNjo0MyAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggdG8gbWFrZSB0aGUgVVNJTkdfIGNvbnN0YW50cyB2aXNpYmxlLgogICAKMjAwMC0wMi0wMyAwNDoxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBVbmRvIHVuaW5mb3JtZWQgY2hhbmdlOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCiAgIAoyMDAwLTAyLTAzIDAxOjM1ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIGFjY2VzcyBjb250cm9sIHN0dWZmLgogICAKMjAwMC0wMi0wMiAxNjozNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIFRvdWNodXAgdG8gYnVpbGQgbW9yZSBNSUIgbW9kdWxlcyBvbiBXaW4zMi4KICAgCjIwMDAtMDItMDIgMTY6MjMgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgVG91Y2h1cCBmb3IgYnVpbGRpbmcgbW9yZSBNSUIgbW9kdWxlcyBpbiBXaW4zMiAoTVNWQykuCiAgIAoyMDAwLTAyLTAyIDE0OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIExldCBoclByb2Nlc3NvckxvYWQgb3V0IG9mIHRoZSBnZW5pZSdzIGJvdHRsZS4KICAgCjIwMDAtMDItMDIgMTQ6MTcgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRSwgUkVBRE1FLndpbjMyOgoKICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCiAgIAoyMDAwLTAyLTAyIDEzOjQyICBtYXJ6CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwogICAKMjAwMC0wMi0wMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAtIHZhcmlvdXMgZml4ZXM6CiAgICAgICAxKSBUaGUgZmlyc3QgcmVnaXN0cmF0aW9uIHJlcXVlc3QgY291bGQgYmUgbG9zdC4KICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgIDMpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgd2VyZSBub3QgZmluZGluZyB0aGUgcmVnaXN0cmF0aW9uIHdoZW4gdGhlCiAgICAgICAgICBkZWxldGUncyBwcmlvcml0eSB3YXMgc2V0IHRvIC0xLgogICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICByZXNwb25zZXMuCiAgIAoyMDAwLTAyLTAyIDA4OjUyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgogICAKMjAwMC0wMi0wMiAwODo0MiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBBbGxvdyAtQ28gdG8gYWZmZWN0IHRoZSBvdXRjb21lLgogICAKMjAwMC0wMi0wMiAwODowMiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IENvcnJlY3RseSBoYW5kbGUgaW5kaXZpZHVhbGx5IGV4Y2x1ZGVkIGluc3RhbmNlcwogICAKMjAwMC0wMi0wMiAwNzoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCiAgIAoyMDAwLTAyLTAyIDA2OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogYWRkIE5ldEJTRCBzdXBwb3J0CiAgIAoyMDAwLTAyLTAyIDA0OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkZXBlbmRlbmNpZXMgb24gKG1vdmVkKSB2ZXN0aW50ZXJuZXR0L2Rpc2tpbwogICAKMjAwMC0wMi0wMiAwMToxMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIChob3N0L2hyX2Rpc2suYyk6IEZpeCBzb2xhcmlzIGluaXRpYWxpc2F0aW9uLCBwbHVzIGV4dHJhIGRlYnVnZ2luZyBpbmZvLgogICAKMjAwMC0wMi0wMSAxMToyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXB1c20uYywgc25tcHYzLmM6CgogICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDItMDEgMDg6NDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgogICAKMjAwMC0wMi0wMSAwODo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IC5QUCAtPiAuSVAgZm9yIC1PYi4KICAgCjIwMDAtMDItMDEgMDg6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIChhZ2FpbikuCiAgIAoyMDAwLTAyLTAxIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCiAgIAoyMDAwLTAyLTAxIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaDoKCiAgIC0gKGRpc2tpby5oKTogbG9hZCB0aGUgbWliLgogICAKMjAwMC0wMi0wMSAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2ZXN0aW50ZXJuZXR0L2Rpc2tpby5jLAogICB2ZXN0aW50ZXJuZXR0L2Rpc2tpby5oLCB1Y2Qtc25tcC9kaXNraW8uYywKICAgdWNkLXNubXAvZGlza2lvLmg6CgogICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKICAgCjIwMDAtMDItMDEgMDU6MjcgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgZ2VuZXJhdGluZyB0cmFwcyBmcm9tIHRoZSBhZ2VudCBzbGlnaHRseS4KICAgCjIwMDAtMDItMDEgMDQ6MTkgIGRhdmVzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENhdGNoIGNvbW1vbiBpbnZhbGlkIGNvbmZpZ3VyZSBvcHRpb25zLgogICAKMjAwMC0wMi0wMSAwMzozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBzZXNzaW9uIElEIGhhbmRsaW5nIHdoZW4gZGVsZWdhdGluZyByZXF1ZXN0cy4KICAgCjIwMDAtMDItMDEgMDE6NDkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZSwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KICAgCjIwMDAtMDEtMzEgMTA6NDEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzZXQgRFNfTElCX0RPTlRfQlJFQUtET1dOX09JRFMgdG8gZ2V0IHByZXZpb3Vsc3kgcmVsZWFzZWQgYmVoYXZpb3VyIG9mIGdldF9zeW1ib2wgd3J0IG9jdGV0IGJhc2VkIGluc3RhbmNlIGlkcyAoaS5lLiwgbm8gZG91YmxlLXF1b3RpbmcpCiAgIAoyMDAwLTAxLTMxIDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAobWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5bY2hdKToKICAgICAtIFByb3ZpZGUgYW4gZXhhbXBsZSBmb3IgaG93IHRvIHRyaWdnZXIgYSB0cmFwLgogICAKMjAwMC0wMS0zMSAwNzo1NiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgIAoyMDAwLTAxLTMxIDA3OjU1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcGxpYi9zbm1wdjMuW2NoXSk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KICAgCjIwMDAtMDEtMzEgMDc6NTMgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgc25tcHVzbS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMgc25tcGxpYi9zbm1wLmMgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHVzbS5jKToKICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAKMjAwMC0wMS0zMSAwNzo1MSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQXR0ZW1wdCB0byBtaW1pYyBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjIwMDAtMDEtMzEgMDc6NDkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBJbXByb3ZlZCBjaGVja2luZyBmb3IgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCiAgIAoyMDAwLTAxLTMxIDAzOjQxICBkYXZlcwoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCiAgIAoyMDAwLTAxLTMxIDAzOjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBJbml0aWFsaXplIGFkZHJsZW4gaW4gX3Nlc3NfcmVhZCgpLiAgKEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAwLTAxLTMxIDAzOjAzICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gQXR0ZW1wdCB0byBkZXRlY3Qgbm9uLXRyYWRpdGlvbmFsIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSAob24gSXJpeCA2LngpLgogICAKMjAwMC0wMS0zMSAwMzowMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQWx0ZXJuYXRpdmUgYXBwcm9hY2ggdG8gSXJpeCBzb2NrZXQgaGFuZGxpbmcuCiAgIAoyMDAwLTAxLTMxIDAyOjQwICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFJlc3RvcmUgdHJhZGl0aW9uYWwgc29ja2V0IGZpZWxkIG5hbWVzLgogICAKMjAwMC0wMS0zMSAwMTo0NSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogSW5jbHVkZSBpbnN0YW5jZSBzdWJpZGVudGlmaWVyIGluIHNubXBUcmFwT0lEIGFuZAogICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKICAgCjIwMDAtMDEtMzEgMDE6MDUgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogTG9nIGZhaWxlZCBNSUIgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDAtMDEtMzAgMTA6NTYgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBSRUFETUU6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzIGV0Yy4KICAgCjIwMDAtMDEtMzAgMTA6NDYgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzIGV0Yy4KICAgCjIwMDAtMDEtMzAgMTA6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgIAogICBOb3RlOiBLTk9XTiBCVUdTCiAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKICAgCiAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICBiZWhhdmlvdXIgYW5kIHNlZSBob3cgdG8gcmVjcmVhdGUgaXQKICAgCjIwMDAtMDEtMzAgMTA6NDIgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgCiAgIE5vdGU6IEtOT1dOIEJVR1MKICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAKMjAwMC0wMS0zMCAwODoxOSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9zbm1wZC5jb25mOgoKICAgY3JlYXRlIFYzIHVzZXIgZW50cnksIGNsZWFudXAKICAgCjIwMDAtMDEtMzAgMDM6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIGlmLmM6IGRlZmVuc2l2ZSB0ZXN0IGZvciBtaXNzaW5nIG9iamVjdHMgKGl0IG1pZ2h0IGZhaWwgdG8gc2hvdwogICAJZG93biBzdGF0dXMgcHJvcGVybHkpCiAgIAoyMDAwLTAxLTMwIDAzOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwogICAKMjAwMC0wMS0zMCAwMzowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCiAgIAoyMDAwLTAxLTMwIDAzOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oOgoKICAgLSBob3N0Lmg6IGNvbmZpZ19yZXF1aXJlX21pYihIT1NULVJFU09VUkNFUy1UWVBFUykKICAgCjIwMDAtMDEtMjggMTI6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGhpcyB3aXRoIHByZXZpb3VzIHR3byBjaGFuZ2VzIGNvbXBsZXRlcyBhIHBhdGNoIGZvciBpdGVtcyAyLDMsNAogICBmb3IgYnVnICMxNDkuCiAgIAoyMDAwLTAxLTI4IDEyOjM4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENoYW5nZSBhZ2VudHhfe2J1aWxkLHBhcnNlfV9zaG9ydCAuIFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuQGhpdHQubmwuCiAgIAoyMDAwLTAxLTI4IDEyOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIEZpeCBzcGVsbCBMSVRUTEVfRU5ESUFOLiBUaGFua3MgdG8gdGFsbWFuQGhpdHQubmwuCiAgIAoyMDAwLTAxLTI4IDA3OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFNvbWUgdmFyaWFibGUgcmVuYW1pbmcgZm9yIGNvbnNpc3RlbmN5LCBlcnJvciBjaGVja2luZwogICBpbXByb3ZlZCwgbWlzc2luZyBzdHJpbmcuaCBpbmNsdWRlZC4gIFBhdGNoIHN1cHBsaWVkIGJ5IGF1dGhvci4KICAgCjIwMDAtMDEtMjcgMTY6MTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlbW92ZSBoYWNrIGFyb3VuZCAiU01JIiB0b2tlbjsga2VlcCB0aGUgZ29vZCBwYXJ0IG9mIHRoZSBwcmV2aW91cyBwYXRjaC4KICAgCjIwMDAtMDEtMjcgMTQ6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgIDIuIEhhY2sgYXJvdW5kIHNtaWNuZydzICJTTUkgIiBzdGF0ZW1lbnRzIHRvIHByZXZlbnQgb3RoZXIgbWVtb3J5IGxlYWtzLgogICAKMjAwMC0wMS0yNyAxMToxNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCiAgIAoyMDAwLTAxLTI3IDA4OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgogICAKMjAwMC0wMS0yNiAxOToyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCiAgIAoyMDAwLTAxLTI2IDE3OjMyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgogICAKMjAwMC0wMS0yNiAxNzoxOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTIgKQogICAKMjAwMC0wMS0yNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xCjoKCiAgIC0gKHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSk6CiAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KICAgCjIwMDAtMDEtMjYgMTY6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVM6CgogICAtIChTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBmaXggREVTIHRlc3Qgc28gaXQgd29ya3MuCiAgIAoyMDAwLTAxLTI2IDE2OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCiAgIAoyMDAwLTAxLTI2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgLSBtYWtlIGRlcGVuZC4KICAgCjIwMDAtMDEtMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYWRkIGFiaWxpdHkgdG8gYWxsb3cgc2VuZGluZyB0cmFwcyB0byBwb3J0cyBvdGhlciB0aGFuIDE2Mi4KICAgCjIwMDAtMDEtMjYgMTU6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsCiAgIFVDRC1ETE1PRC1NSUIudHh0LCBVQ0QtSVBGSUxURVItTUlCLnR4dCwKICAgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY29ycmVjdCB1Y2Qtc25tcC1jb2RlcnMgZW1haWwgYWRkcmVzcyB0byByZXBsYWNlICJlY2UiIHdpdGggInVjZC1zbm1wIi4KICAgCjIwMDAtMDEtMjYgMTU6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGNsZWFuIHVwIGFuZCByZWZvcm1hdCBzdWItcmVnaXN0cmF0aW9uIGNvbW1lbnRzLgogICAKMjAwMC0wMS0yNiAxNTozMSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBwcmVmaXggb2lkcyB3aXRoICJ1Y2QiLgogICAKMjAwMC0wMS0yNiAxNTozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBwcmVmaXggb2lkIHdpdGggInVjZCIuCiAgIAoyMDAwLTAxLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURJU0tJTy1NSUIuaW5jLCBVQ0QtRElTS0lPLU1JQi50eHQsCiAgIFZFU1QtSU5URVJORVRULU1JQi50eHQ6CgogICAtIChVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6CiAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBmaXggdGhlIGRpc2tpbyBtaWIsIGNvbnZlcnQgdG8gU01JdjIsIGFuZCBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4KICAgCjIwMDAtMDEtMjYgMDc6MjYgIG1zbGlmY2FrCgogICAqIFJFQURNRToKCiAgIEFja25vd2xlZGdlIG1vcmUgY29udHJpYnV0b3JzLgogICAKMjAwMC0wMS0yNiAwNzoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBjb21waWxlIGVycm9yIHdoZW4gLS13aXRob3V0LXJvb3QtYWNjZXNzIGlzIHVzZWQgKHN0cmF1c3NAaWJyLmNzLnR1LWJzLmRlKQogICAKMjAwMC0wMS0yNSAyMTo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgIHBhcnNlLmM6IHNob3cgIkNhbm5vdCBmaW5kIG1vZHVsZSIgb25jZSBwZXIgbWlzc2luZyBtb2R1bGUuCiAgIAoyMDAwLTAxLTI1IDE5OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBMYXJnZXIgYnVmZmVyIGZvciBwcmludF9tb2R1bGVfbmFtZTsgRml4IHBvc3NpYmxlIG51bGwgZGVyZWYgaW4gZ2V0X3RjLgogICAKMjAwMC0wMS0yNSAxNDo1MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWxhcm0uMywgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KICAgCjIwMDAtMDEtMjUgMTQ6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKTogaGVscCB1cGRhdGUKICAgCjIwMDAtMDEtMjUgMTQ6MTIgIG5iYQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0CiwgTWFrZWZpbGUuaW46CgogICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwgTWFrZWZpbGUuaW46CiAgIAlVcGRhdGUgdG8gdGhlIGN1cnJlbnQgZHJhZnQgSE9TVC1SRVNPVVJDRVMgKGRyYWZ0LW9wcy1ob3N0bWliLTAxKQogICAKMjAwMC0wMS0yNSAxMzo1NiAgaGFyZGFrZXIKCiAgICogbWlicy9WRVNULUlOVEVSTkVUVC1NSUIudHh0OgoKICAgLSAoVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KICAgCjIwMDAtMDEtMjUgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvOiBkaXNraW8uYywgZGlza2lvLmg6CgogICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgogICAKMjAwMC0wMS0yNSAxMzo1MiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAogICAKMjAwMC0wMS0yNSAxMjowNSAgbWFyegoKICAgKiBSRUFETUUud2luMzI6CgogICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKICAgCjIwMDAtMDEtMjUgMTE6NDcgIG1hcnoKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgbWlzc2luZyBzeW5ib2xzIGZvciBwZXJsL1NOTVAgbW9kdWxlCiAgIAoyMDAwLTAxLTI1IDA2OjQ5ICBtYXJ6CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHN5bnRheCBmb3Igd2luMzIgYnVpbGQKICAgCjIwMDAtMDEtMjQgMTA6MzYgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTI0IDEwOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KICAgCjIwMDAtMDEtMjQgMTA6MDUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KICAgCjIwMDAtMDEtMjQgMDk6NTUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIEZpeCBCdWcgIzE0NCBpdGVtcyAxLDMsNDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KICAgCjIwMDAtMDEtMjQgMDk6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgTWFrZSBzdXJlIGtzdGF0X2ZkIGlzIGluaXRpYWxpemVkIGJlZm9yZSBiZWluZyB1c2VkLgogICAKMjAwMC0wMS0yNCAwODo1OSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjQgMDc6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsCiAgIHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gKGV4YW1wbGVzL3tleGFtcGxlLHdvbWJhdH0uW2NoXSk6CiAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KICAgCjIwMDAtMDEtMjMgMTY6NDEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBoYW5kbGUgYWRkaW5nIE9QQVFVRSB2YXJzIGZvciBzZXR0aW5nIGFuZCB0cmFwcyBldGMuCiAgIAoyMDAwLTAxLTIzIDEyOjQzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBlcnJlbm91cyA9PiBlcnJvbmVvdXMKICAgCjIwMDAtMDEtMjMgMTI6NDIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCiAgIAoyMDAwLTAxLTIzIDA4OjUxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgc29tZSBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGdldG9pZAogICAKMjAwMC0wMS0yMSAxMToxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCiAgIAoyMDAwLTAxLTIxIDEwOjQ3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTIxIDEwOjIzICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTIxIDA4OjEzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5mb3JtCiAgIAoyMDAwLTAxLTIxIDA4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5mb3JtLgogICAKMjAwMC0wMS0yMSAwNzoyNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgYWRkZWQgdjMgaW5mb3JtCiAgIAoyMDAwLTAxLTIxIDAxOjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5pbWl6ZSBkYXRhIGhhbmRsaW5nIGFuZCB1c2UgcmVnaXN0ZXIgdmFyaWFiaWVzIGluCiAgIHNubXBfb2lkX2NvbXBhcmUgYW5kIGNvbXBhcmVfdHJlZS4KICAgCjIwMDAtMDEtMjEgMDE6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCjoKCiAgIEFkZCBjb25zdCB0byBjbGVhbnVwIGEgZmV3IHNpZ25hdHVyZXMuCiAgIAoyMDAwLTAxLTIxIDAxOjQ2ICBtc2xpZmNhawoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgUmVtb3ZlIHBhcnR5IGNydWQ7IHNwZWxsIGNoZWNrLgogICAKMjAwMC0wMS0yMCAwNDoyNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU3VwcG9ydCBzZWxlY3RpdmUgYmluZGluZyBvZiBzZXJ2ZXIgYWRkcmVzc2VzLgogICAKMjAwMC0wMS0xOCAyMTozNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBDb25zaXN0ZW50IGdldHBhZ2VzaXplIChmaXJzdCBkaXZpZGUgYnkgMTAyNCkuCiAgIAoyMDAwLTAxLTE4IDIxOjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICAxLk1ha2Ugc25tcF9nZXRfZG9fbG9nZ2luZyB2aXNpYmxlIGZyb20gRExMCiAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KICAgCjIwMDAtMDEtMTggMjE6MjUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgb2JqZWN0cyB0aGF0IGFyZSBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlLgogICAKMjAwMC0wMS0xOCAyMToyMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQogICAKMjAwMC0wMS0xOCAxNDoyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICBMYXRlc3Qgdm1zdGF0X3NvbGFyaXMyIGZyb20gdGhlIGF1dGhvciBKb2NoZW4gS21pZXRzY2guCiAgIAoyMDAwLTAxLTE4IDA4OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcmV2ZW50IGFycmF5IGJvdW5kcyBlcnJvciB3aGVuIGNyZWF0aW5nIHNwZWNpZmljIHRyYXAgb2lkLgogICAKMjAwMC0wMS0xOCAwNzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIHZhbHMgZm9yIHRyYXAgZnVuY3MsIGNsZWFuIHVwIHBkdQogICAKMjAwMC0wMS0xOCAwNzowMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbW9kaWZpZWQgZm9yIHYyLXRyYXAuCiAgIAoyMDAwLTAxLTE3IDEyOjQ3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBhZGRlZCB2MiB0cmFwCiAgIAoyMDAwLTAxLTE3IDA5OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRGlzY2FyZCAidG9vLWxhdGUiIHJlc3BvbnNlcyBmcm9tIG92ZXJsYXBwZWQgcmVnaW9ucy4KICAgCjIwMDAtMDEtMTcgMDY6MTMgIGRhdmVzCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKG1hbi9zbm1wdHJhcGQuOCk6IERlc2NyaWJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvdXIuCiAgIAoyMDAwLTAxLTE0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KICAgCjIwMDAtMDEtMTQgMTY6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBpbXBsZW1lbnQgREVTIGVuY3J5cHRpb24uCiAgIAoyMDAwLTAxLTE0IDExOjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IGdyZXAgZm9yIGNvbmZpZ3VyZSBmbGFncwogICAKMjAwMC0wMS0xNCAwOTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy91Y2REZW1vUHVibGljLmMsIHNtdXgvc25tcF9iZ3AuYwosIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9yaXAyLmM6CgogICBTbWFsbCBjb21waWxlIGZpeCBhbmQgZGVidWcgbWVzc2FnZSByZXN0b3JhdGlvbi4KICAgCjIwMDAtMDEtMTMgMDY6MzMgIGRhdmVzCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6IE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2YgdW5sb2FkaW5nIE1JQiBtb2R1bGVzLgogICAKMjAwMC0wMS0xMyAwNjozMSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAJKE4uQjogU29tZXdoYXQgc2ltcGxpc3RpYyB3aXRoIHJlZ2FyZCB0byBtdWx0aXBseS1sb2FkZWQgbm9kZXMpCiAgIAoyMDAwLTAxLTEzIDA1OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTm8gZ2V0X2Jvb3R0aW1lIHN1cHBvcnQgZm9yIGN5Z3dpbiAoeWV0KS4gSG9wZWZ1bGx5IGEgdGVtcG9yYXJ5IGNvbmRpdGlvbi4KICAgCjIwMDAtMDEtMTMgMDI6NDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgogICAKMjAwMC0wMS0xMiAyMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFwcHMvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaAo6CgogICBVc2UgREVCVUdNU0dPSUQgbGliZXJhbGx5LCByZXBsYWNpbmcgc3ByaW50X29iamlkOyBzbWFsbCBzcGVlZHVwLgogICAKMjAwMC0wMS0xMiAxMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KICAgCjIwMDAtMDEtMTEgMTU6MDUgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCiAgIAoyMDAwLTAxLTExIDEwOjM3ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L2dldC50OgoKICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KICAgCjIwMDAtMDEtMTEgMDk6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIFJlc3RvcmUgbWVtZHVwIHVzYWdlIHRvIGl0cyBmb3JtZXIgbHVzdGVyLgogICAKMjAwMC0wMS0xMSAwODoxMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KICAgCjIwMDAtMDEtMTEgMDc6NTkgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCiAgIAoyMDAwLTAxLTExIDA3OjQ0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDEtMTEgMDE6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgR2xlYW4gcmVmcyB0byBtaWJJSS5vIGZyb20gdGhpcyBtYWtlZmlsZS4KICAgCjIwMDAtMDEtMTEgMDE6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCjoKCiAgIFRyb2xsaW5nIGZvciBtYWxsb2MgZXJyb3JzOyBtb3JlIGdyYWNlZnVsIGRlZ3JhZGF0aW9uLgogICAKMjAwMC0wMS0xMCAxNjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMKOgoKICAgc25tcF9hcGkuYyAgICAtIGJldHRlciBjb21tZW50IGZvciBzbm1wX29pZF9jb21wYXJlLgogICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgc2NhcGkuaCAgICAgICAtIHNwZWxsIGNoZWNrLgogICAKMjAwMC0wMS0xMCAxNjozMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBzbm1wdHJhbnNsYXRlLmMgIC0gc2ltcGxlIGRlZmF1bHQgY2FzZS4KICAgCjIwMDAtMDEtMTAgMTY6MzEgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCiAgIAoyMDAwLTAxLTEwIDE2OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICB1Y2REZW1vUHVibGljLmMgLSByZW1vdmUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgZnJvbSB3cml0ZSBtZXRob2QuCiAgIHNubXBfdmFycy5jICAgICAtIHByb3BlciBvaWQgY29tcGFyZTsgbm8gY29weSBmcm9tIHNhdmUgaWYgb2lkcyBleGFjdCBtYXRjaAogICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgogICAKMjAwMC0wMS0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1ha2UgLS13aXRob3V0LWVmZW5jZSB3b3JrLgogICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KICAgCjIwMDAtMDEtMTAgMTU6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgLSAoU3YzY29uZmlnKTogcmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZS4KICAgCjIwMDAtMDEtMTAgMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3RkbGliLmggYW5kIG1hbGxvYy5oLgogICAKMjAwMC0wMS0xMCAxNDo0MCAgbWFyegoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICBhZGQgbWlibG9hZAogICAKMjAwMC0wMS0xMCAxNDozNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTEwIDE0OjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IEJVRywgTUFOSUZFU1QsIE1BTklGRVNULlNLSVAsCiAgIE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMsIFRPRE8KLCBwZXJsc25tcC5oLCB0eXBlbWFwLCBleGFtcGxlcy9hc3luYzEucGwsCiAgIGV4YW1wbGVzL2FzeW5jMi5wbCwgZXhhbXBsZXMvaXBmb3J3YXJkLnBsLAogICBleGFtcGxlcy9taWJ0cmVlLnBsLCBleGFtcGxlcy9taWJ3YWxrLnBsLAogICBleGFtcGxlcy9waW5nbWliLnBsLCBleGFtcGxlcy90YWJsZXdhbGsucGwsCiAgIGV4YW1wbGVzL3Rlc3RsZWFrLnBsLCBoaW50cy9pcml4LnBsLCBoaW50cy9zb2xhcmlzLnBsCiwgdC9SRUFETUUsIHQvYXN5bmMudCwgdC9nZXQudCwgdC9nZXRuZXh0LnQKLCB0L21pYi50LCB0L21pYi50eHQsIHQvc2Vzc2lvbi50LCB0L3NldC50CiwgdC9zbm1wZC5jb25mOgoKICAgQ2hlY2tpbmcgaW4gU05NUC0zLjEuMGIxCiAgIAoyMDAwLTAxLTEwIDEzOjIxICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1YWxpZnkgdXNlIG9mIHdpdGh2YWwgdG8gZGVmaW5lIGxpYnJhcnkgYW5kIGluY2x1ZGUgc2VhcmNoIHBhdGhzLgogICAKMjAwMC0wMS0xMCAxMzoxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgQWxsb3cgTVNWQysrIDUueCB1c2VycyB0byBidWlsZCB1c2luZyB0aGlzIHdvcmtzcGFjZS4KICAgCjIwMDAtMDEtMTAgMDY6MTIgIGRhdmVzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogUmUtc3RydWN0dXJlIGdldF91cHRpbWUoKSB0byBjYWNoZSBib290IHRpbWUuCiAgIAoyMDAwLTAxLTEwIDAzOjA2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBDb3VudCBudW1iZXJzIG9mIHZhcmlhYmxlcyByZXF1ZXN0ZWQvc2V0CiAgIAoyMDAwLTAxLTEwIDAyOjMxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEaWZmZXJlbnRpYXRlIG1heC1yZXBldGl0aW9uIGFuZCBub24tcmVwZWF0ZXIgZXJyb3JzLgogICAKMjAwMC0wMS0xMCAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJLmgpOiBSZS1yZW1vdmUgcmVkdW5kYW50IHByb3RvdHlwZS4KICAgCjIwMDAtMDEtMDggMTI6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQogICAKMjAwMC0wMS0wOCAxMTo0NCAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggYnVpbGQgZm9yIExpbnV4IFJlZEhhdCA2LjEgKGNhbnQgbGluayBsaWJ3cmFwIHdpdGhvdXQgbGlibnNsKS4KICAgCjIwMDAtMDEtMDggMDA6NTYgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBidWdmaXggZm9yIGEgYnVnZml4IGJ1ZwogICAKMjAwMC0wMS0wNyAyMzo0MyAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBjb25maWd1cmUuaW46IHNvbWUgbWlzc2luZyAieCIgaW4gdGVzdHMgZm9yIC0td2l0aC1vcGVuc3NsIGFuZAogICAJLS1kaXNhYmxlLWRldmVsb3BlcgogICAKMjAwMC0wMS0wNyAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KICAgCjIwMDAtMDEtMDcgMTE6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgogICAKMjAwMC0wMS0wNyAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgogICAKMjAwMC0wMS0wNyAwOToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYmV0dGVyIGhhbmRsaW5nIG9mIHdyaXRlIGZhaWx1cmVzLgogICAKMjAwMC0wMS0wNiAxNTowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgogICAKMjAwMC0wMS0wNiAxNTowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHJlbW92ZWQgYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgogICAKMjAwMC0wMS0wNiAxNTowOCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiB5MmsgYnVnLgogICAKMjAwMC0wMS0wNiAxMzoxNCAgbWFyegoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICB1cGRhdGUgY29uZmlnIGFjY2VzcyBzeW50YXggKGV4YWN0KQogICAKMjAwMC0wMS0wNiAxMzowNyAgbWFyegoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgd2Ugc2hvdWxkIG5vdCBwcmludCB0byBzdGRlcnIgaWYgc3RkZXJyIGxvZ2dpbmcgaXMgZGlhYmxlZCAtIHRoaXMgdGhvd3Mgb2ZmIHRoZSBhbGlnbm1lbnQgb2YgdGVzdCBvdXRwdXQgZm9yICdtYWtlIHRlc3QnIGluIGJvdGggdWNkLXNubXAgYW5kIFBlcmwvU05NUAogICAKMjAwMC0wMS0wNiAxMjo1NiAgbWFyegoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnOgoKICAgdXBkYXRlIHN5bnRheCAoZXhhY3QpCiAgIAoyMDAwLTAxLTA2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmgpOiBwcm9wZXJseSB3cmFwIHN0cnVjdC5oIGluY2x1ZGUgZGlyZWN0aXZlIGZvcgogICAgIG5vbi1zb3VyY2UtZGlyZWN0b3J5IGluY2x1ZGUuCiAgIAoyMDAwLTAxLTA2IDAxOjU4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5jOgoKICAgLSAobWliZ3JvdXAvbWliSUkuYyk6IFJlbW92ZSByZWR1bmRhbnQgZmlsZQogICAKMjAwMC0wMS0wNCAyMzo1MSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCiAgIAoyMDAwLTAxLTA0IDIzOjUwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiAjaWZkZWYgc29tZSB2YXJpYWJsZXMgbm90IHVzZWQgdW5kZXIgd2luMzIKICAgCjIwMDAtMDEtMDQgMjI6MTIgIG5iYQoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgIAltb2RlbCAiYW55IiBpbiAiZ3JvdXAiIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICAKMjAwMC0wMS0wNCAxNjoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTYW5kZXIgU3RlZmZhbm46CiAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgogICAKMjAwMC0wMS0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogZGVhbCB3aXRoIGJsb2NraW5nIGJldHRlciBpbiBzbm1wX2FnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCiAgIAoyMDAwLTAxLTA0IDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzdHJ1Y3QuaAogICAKMjAwMC0wMS0wNCAwODo1OCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChSRUFETUUsIEZBUSk6IEphcGFuIG1pcnJvciBsb2NhdGlvbiBjaGFuZ2UuCiAgIAoyMDAwLTAxLTAzIDE1OjM5ICBuYmEKCiAgICogbWFuLzogc25tcGNtZC4xLCBzbm1wdHJhbnNsYXRlLjEsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAtIHNubXB0cmFuc2xhdGUuMTogZXhwbGFpbiAtVCBvdXRwdXRzCiAgIC0gc25tcHRyYXBkLmNvbmYuNS5kZWY6IGRlZmFsdCB0cmFwaGFuZGxlciBpcyBpbXBsZW1lbnRlZAogICAKMjAwMC0wMS0wMyAxNTozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBhbHNvIG5vdGUgVEVYVFVBTCBDT05WRU5USU9OIGluIC1UZCBvdXRwdXQKICAgCjIwMDAtMDEtMDMgMTU6MzIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBGaWxlIHZhcmlhYmxlIGJlaW5nIGxlZnQgcG9pbnRpbmcgaW50byB0aGUgc3RhY2suCiAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KICAgCjIwMDAtMDEtMDMgMTU6MzAgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSBzeXN0ZW0uaDogYWRkIHByb3RvdHlwZSBmb3Igc3RyY2FzZWNtcAogICAKMjAwMC0wMS0wMyAxNToyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKICAgCjIwMDAtMDEtMDMgMTU6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSBtaWJJSS5oOiBhZGQgcHJvdG90eXBlIGZvciBpbml0X21pYklJCiAgIAoyMDAwLTAxLTAzIDE1OjI2ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKICAgCjIwMDAtMDEtMDMgMTU6MjYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKICAgCjIwMDAtMDEtMDMgMTU6MjMgIG5iYQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSBFWEFNUExFLmNvbmYuZGVmOiBhZGFwdCB0byBjaGFuZ2VzIGluIHZhbGlkIHZhY20gc3ludGF4CiAgIAoxOTk5LTEyLTMxIDEzOjI3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIEFwcGx5IHNvbWUgTmV0QlNEIDEuMy54LCAxLjQgcGF0Y2hlcyBjL28gR3JlYSBBLiBXb29kcyA8d29vZHNAcGxhbml4LmNvbT4KICAgCjE5OTktMTItMzEgMTI6NDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBidWcgIzQ4OiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAogICAKMTk5OS0xMi0zMSAxMDozNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KICAgCjE5OTktMTItMzEgMTA6MzMgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQXV0b2NvbmYgcGF0Y2ggYy9vIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT4KICAgCjE5OTktMTItMzEgMTA6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgRml4IGJ1ZyAjMTI1IC0gaW5zZXJ0IHVuZGVyc2NvcmUgaW50byBzdHJ1Y3Qgc25tcF9pcGFkZHIgbWVtYmVyIG5hbWVzLgogICAKMTk5OS0xMi0zMSAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgQXBwbHkgcGF0Y2ggcHJvdmlkZWQgYnkgU2VyZyBUcnVzaG5pa292IDxzYXRAem1haWwucnU+IGZvciBBSVggNC4yLjEga25saXN0CiAgIAoxOTk5LTEyLTMxIDA5OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmM6CgogICBGaXggYnVnICMgMTIyCiAgIAoxOTk5LTEyLTMwIDEyOjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeCBjb21waWxlIGVycm9ycy4KICAgCjE5OTktMTItMzAgMDc6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTItMjggMTU6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlbW92ZSB0aGUgISBpbiBmcm9udCBvZiBpbl9hX3ZpZXcsIHdoaWNoIGNoYW5nZWQuCiAgIAoxOTk5LTEyLTIzIDA4OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSBub24gODAtY29sdW1uIHdyYXBwZWQgdmVyc2lvbi4KICAgCjE5OTktMTItMjIgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSBmaXJzdCBwYXNzIGF0IHZtc3RhdCBzdXBwb3J0IGZvciBzb2xhcmlzLgogICAKMTk5OS0xMi0yMiAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogaW5jcmVhc2UgbWF4IHZhcnMgdG8gNjQgKHdhcyAxNikuICBJIGhhdmUgYQogICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCiAgIAoxOTk5LTEyLTIyIDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICBtYXN0ZXIgcG9ydC4KICAgCjE5OTktMTItMjIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAJYW5kIGEgYmV0dGVyIGludGVncmF0aW9uIHdpdGggdmFyaWFibGUgdHJlZSB3YWxraW5nCiAgIAoxOTk5LTEyLTIyIDA1OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBzeXN0ZW1fbWliLmM6IHVzZSBzb21lICNkZWZpbmVzIGkgcGxhY2Ugb2YgbnVtYmVycwogICAKMTk5OS0xMi0yMiAwNTo0NiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiBuYXVnaHR5LCBuYXVnaHR5IE5pZWxzLCBqdXN0IHJlaW5kZW50aW5nIC4uLgogICAKMTk5OS0xMi0yMiAwMjo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IGtpbGwgYSBkdW1teSB2YWx1ZQogICAKMTk5OS0xMi0yMiAwMjo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMjotKQogICAKMTk5OS0xMi0yMSAwMjozNyAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBkLmMsIHNtdXguYywgc25tcF9hcGkuYzogdGFrZSBhd2F5IHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjE5OTktMTItMjAgMTc6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKICAgCjE5OTktMTItMjAgMTc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGFkZCBhZ2VudF90cmFwLmgKICAgCjE5OTktMTItMjAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBTTUl2MiB1cGRhdGVzLgogICAKMTk5OS0xMi0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBub3RlLgogICAKMTk5OS0xMi0yMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IERpZ2l0YWwgVW5peCBoYWNrIGZvciBiYWQgcmVjdmZyb20gaW1wbGVtZW50YXRpb24uCiAgIAoxOTk5LTEyLTIwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogbWFrZSBhIHRoaW5ncyBzaXplX3QgaW5zdGVhZCBvZiB1X2ludCAoZm9yIDY0Yml0IGNvZGUpLgogICAKMTk5OS0xMi0yMCAxNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogbWFrZSB1cHRpbWUgYSBsb25nIGZvciA2NGJpdCBhcmNoaXRlY3R1cmVzLgogICAKMTk5OS0xMi0yMCAxNTozOCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogSVBGV0FDQy1NSUIudHh0IC0+IFVDRC1JUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jOgoKICAgLSAoaXBmd2FjYy5jKTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KICAgCjE5OTktMTItMjAgMTM6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgogICAKMTk5OS0xMi0yMCAxMzoyNiAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1JUEZXQUNDLU1JQi5pbmMsIFVDRC1JUEZXQUNDLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgYW5kIHVwZGF0ZWQgZnJvbSBJUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdG8gVUNELUlQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzoyMyAgaGFyZGFrZXIKCiAgICogbWlicy9JUFNFQy1NSUIudHh0OgoKICAgLSAoSVBTRUMtTUlCLnR4dCk6IHJlbW92ZWQKICAgCjE5OTktMTItMjAgMDY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlZCBrZXJuZWwubyBpbnRvIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgogICAKMTk5OS0xMi0yMCAwNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgIGJlIGdpdmVuIChpZSwgZG9uJ3QgdG9nZ2xlIHRoZSB2YWx1ZSkuCiAgIAoxOTk5LTEyLTIwIDA0OjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL21pYklJLmgsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9pcHY2LmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICAtIChhZ2VudF90cmFwLmMgc25tcF92YXJzLmMgbWliSUkuW2NoXSBtaWJJSS8qLmMgbWliSUkvc3lzT1JUYWJsZS5oKToKICAgICAtIFVzZSBTTk1QX09JRCBwcmVmaXggZGVmaW5pdGlvbnMgaW4gT0lEIHNwZWNpZmljYXRpb25zLgogICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCiAgIAoxOTk5LTEyLTIwIDAzOjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KICAgCjE5OTktMTItMTcgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBjb21wbGV0ZWx5IHJlc3RydWN0dXJlZC4KICAgICAtIGRyYXN0aWNseSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBmb3IgbGFyZ2UgZGF0YSBzZXRzICgxLzMpLgogICAKMTk5OS0xMi0xNyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jKToKICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgogICAKMTk5OS0xMi0xNyAxNTo1NSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIC1JLgogICAKMTk5OS0xMi0xNyAxNTo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBtaXNzaW5nICEgb3BlcmF0ZXIgb24gc2lnbmFsIHRlc3QuCiAgIAoxOTk5LTEyLTE3IDE1OjQxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXQuYwosIHZtc3RhdF9mcmVlYnNkMi5jOgoKICAgTm8gZHVtbXkgdmFsdWVzIGZvciBGcmVlQlNELCBwbGVhc2UuCiAgIAoxOTk5LTEyLTE3IDE1OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCiwgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBBZGQgQmlsbCBGdW1lcm9sYSdzIHBhdGNoIGZvciBGcmVlQlNEIDQueCB0byB1c2Ugc3dhcGluZm8uCiAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgogICAKMTk5OS0xMi0xNyAxNDoyMyAgbXNsaWZjYWsKCiAgICogbWFuLzogUkVBRE1FLCBtaWJfYXBpLjMsIHNubXAuY29uZi41LmRlZiwKICAgc25tcGNtZC4xLCBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgc25tcG5ldHN0YXQuMSwgc25tcHRlc3QuMSwgc25tcHVzbS4xLCBzbm1wd2Fsay4xCjoKCiAgIEZpeGVkIGEgZmV3IHNwZWxpbG5nIGVycm9ycy4KICAgCjE5OTktMTItMTcgMTA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IHJlLXN0cnVjdHVyZSBiYXNlZCBvbiByZWNlbnQgY2hhbmdlcy4KICAgCjE5OTktMTItMTcgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogc2Vjb25kIHBhc3MuCiAgIAoxOTk5LTEyLTE3IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KICAgCjE5OTktMTItMTcgMTA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBjaGFuZ2VkIGhlbHAgbGluZSBvZiBjcmVhdGVVc2VyIHRvIHNlcGVyYXRlIERFUyB0b2tlbgogICAgIGZyb20gdGhlIHBhc3NwaHJhc2UuCiAgIAoxOTk5LTEyLTE3IDEwOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgIGRpcmVjdCBjb21waWxhdGlvbiBpbiB0aGUgQ0MgbGluayBsaW5lLgogICAKMTk5OS0xMi0xNyAxMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiByZW9yZGVyIGluaXQoKSByb3V0aW5lcyBmb3IgLUggdG8gcHJldmVudCBzZWdmYXVsdGluZy4KICAgCjE5OTktMTItMTcgMTA6MTEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgogICAKMTk5OS0xMi0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCiAgIAoxOTk5LTEyLTE3IDA3OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBjcmVhdGVVc2VyLgogICAKMTk5OS0xMi0xNyAwNzoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdGhlIGZpbGUgZGlyZWN0aXZlLgogICAKMTk5OS0xMi0xNyAwNzoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KICAgCjE5OTktMTItMTcgMDc6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBhIGJ1bmNoIG9mIG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoxOTk5LTEyLTE3IDA3OjA1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogbWVudGlvbiB0aGF0IC1JUiBhbmQgLUliIGFyZSBhY3R1YWxseSB1c2VkIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTEyLTE3IDA3OjAzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgogICAKMTk5OS0xMi0xNyAwMzoyMiAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKICAgCjE5OTktMTItMTcgMDI6MTggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogbWFrZSB0aGUgb2lkcyBnaXZlbiB0byB0cmFwZCBoYW5kbGVycyBwcm9wZXJseSAuMCB0ZXJtaW5hdGVkLgogICAJQWRkIGEgU05NUC1DT01NVU5JVFktTUlCOjpzbm1wVHJhcEFkZHJlc3MuMAogICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwogICAKMTk5OS0xMi0xNyAwMjoxNCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBjbGVhbnVwIG9mIHRoZSAibmV3IiBtaWIgd2FsayB0byBkZXRlcm1pbmUgZmllbGRzLiBNYWtlIGl0CiAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAJbm90LWFjY2Vzc2libGUgZmllbGRzIGluIHRoZSB3YWxrLgogICAKMTk5OS0xMi0xNyAwMjowOSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyB1c2FnZSgpIGNhbGxzLgogICAKMTk5OS0xMi0xNyAwMjowOCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBraWxsIHRoYXQgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24sIGl0IGp1c3QgYWRkcyB0b28gbWFueQogICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgogICAKMTk5OS0xMi0xNiAyMzoxMCAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIHNubXB2My5jOiBhIG1vcmUgc3BldmlmaWMgaGVscCBtZXNzYWdlIGZvciBkZWZWZXJzaW9uCiAgIAoxOTk5LTEyLTE2IDIzOjA5ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBhIHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uIHByb2JsZW0gcHJpbnRpbmcgb2lkcwogICAKMTk5OS0xMi0xNiAyMzowOCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCiAgIAoxOTk5LTEyLTE2IDIzOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgogICAKMTk5OS0xMi0xNiAyMzowNiAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwogICAKMTk5OS0xMi0xNiAyMzowNSAgbmJhCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgLSBrZXJuZWwuYzogb3V0cHV0IGVycm9yIHN0cmluZywgbm90IG51bWJlcgogICAKMTk5OS0xMi0xNSAxMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgUmVwbGFjZSBrYyBmcm9tIG1lbW9yeV9zb2xhcmlzMi5jIHdpdGgga3N0YXRfZmQsIGRlZmluZWQgaW4ga2VybmVsX3N1bm9zNS5jLgogICAKMTk5OS0xMi0xNSAwOTo1NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICBBZGQgdGltZSBtYXJrZXIgY3JlYXRlLCBzZXQsIGFuZCBkZWx0YSB0aW1lIGNoZWNrIG1ldGhvZHMuCiAgIAoxOTk5LTEyLTE1IDA5OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgUmVtb3ZlIHNubXBfbG9nX3N5c2xvZywgc25tcF9sb2dfZmlsZWxvZywgc25tcF9sb2dfc3RkZXJybG9nOwogICBTaW1wbGlmeSBzbm1wX2xvZ19zdHJpbmcuCiAgIAoxOTk5LTEyLTE1IDA5OjE5ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4sIFNOTVB2Mi1NMk0tTUlCLnR4dCwKICAgU05NUHYyLVBBUlRZLU1JQi50eHQ6CgogICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCBTTk1QdjItTTJNLU1JQi50eHQgKTogcmVtb3ZlZC4KICAgCjE5OTktMTItMTUgMDk6MTcgIGhhcmRha2VyCgogICAqIG1pYnMvOiBFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLmluYywgVUNELUlQRklMVEVSLU1JQi50eHQ6CgogICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gRXZlbiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTE1IDA1OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTaGFyZSBrc3RhdCBmZCBpZmYgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyIGlzIGFsc28gY29uZmlndXJlZC4KICAgCjE5OTktMTItMTUgMDQ6MjEgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jOgoKICAgSXNvbGF0ZSBhbmQgcmV0b3VjaCBkZXByZWNhdGVkIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAKMTk5OS0xMi0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBnZXQgbmV4dCBpbiBsaW5rIGxpc3QgYmVmb3JlIGRlbGV0aW5nIHJvb3QuCiAgIAoxOTk5LTEyLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbW92ZSAtbGVmZW5jZSBjaGVjayB1cCB0byBmcm9udCAobGFzdCBpbiBsaW5rKS4KICAgCjE5OTktMTItMTQgMTU6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IERMTU9EIC0+IFVDRC1ETE1PRAogICAKMTk5OS0xMi0xNCAxNDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IHJldmVyc2UgZ2VuZXJhdGVfS3Ugb3B0aW1pemF0aW9ucywgYXMgdGhleSBkb24ndCB3b3JrLgogICAKMTk5OS0xMi0xNCAwODo0MSAgaGFyZGFrZXIKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gdXBkYXRlcy4KICAgCjE5OTktMTItMTQgMDg6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaDoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBkZWZhdWx0X3N0b3JlLmgsCiAgICAgbWliLmMsIG1pYi5oKToKICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgLUkgZm9yIGlucHV0IGFyZ3MgY3JlYXRlZCwgYW5kIC1PUiBtb3ZlZCB0aGVyZS4KICAgICAgIC1JYiBjcmVhdGVkLgogICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCiAgIAoxOTk5LTEyLTEzIDE2OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgogICAKMTk5OS0xMi0xMyAxNToxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KICAgCjE5OTktMTItMTMgMTQ6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggcHJvYmxlbSBwcmludGluZyBJTVBMSUVEIGluZGljZXMgb2YgT0JKRUNUSUQgdHlwZS4KICAgCjE5OTktMTItMTMgMTQ6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0td2l0aC1lZmVuY2UgaW1wbGVtZW50ZWQuCiAgICAgLSAoZm9yY2VkIGNoZWNraW5nIGZvciAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIENWUyBjaGVja291dHMpCiAgIAoxOTk5LTEyLTEzIDEzOjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU2FuaXR5IGNoZWNrcyBhZGRlZCB0byBfZ2V0X3N5bWJvbC4KICAgCjE5OTktMTItMTMgMTI6MDQgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgogICAKMTk5OS0xMi0xMyAwOTo1NyAgaGFyZGFrZXIKCiAgICogbWlicy86IERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLAogICBVQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLCBVQ0QtRExNT0QtTUlCLnR4dCk6CiAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAtIG1vdmVkIHRvIHRoZSBleHBlcmltZW50YWwgdHJlZS4KICAgCjE5OTktMTItMTMgMDk6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIEFkZGVkIHBhdGNoIGZyb20gTS5NaWNoYXVkIHRvIHVzZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzLgogICAKMTk5OS0xMi0xMyAwNDo0MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9zbXV4L3NtdXguYywKICAgbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAtIFBhdGNoIHRvIGdldCBTTVVYIHN1cHBvcnQgd29ya2luZyB3aXRoIHRoZSBuZXcgYWdlbnQgYXJjaGl0ZWN0dXJlLgogICAgICAgVGhpcyBpcyBwcm9iYWJseSBub3QgVGhlIFJpZ2h0IFdheSBUbyBEbyBUaGluZ3MgTm93LCBidXQgaXQgd29ya3MuCiAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgogICAKMTk5OS0xMi0xMyAwMzoxOCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBlbnRlcnByaXNlIE9JRCB3aGVuIHNlbmRpbmcgdHJhcHMKICAgCjE5OTktMTItMTMgMDM6MTcgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgogICAKMTk5OS0xMi0xMCAxMzowMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgogICAKMTk5OS0xMi0xMCAxMDo0NCAgbWFyegoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgKHNubWxpYi9zbm1wX2FwaS5jKTogZml4IGJ1ZyBpbiBfc2Vzc19jb3B5IHdoZXJlIHBvaW50ZXJzIHRoYXQgd2VyZSBub3Qgb3duZWQgYnkgbmV3bHkgY3JlYXRlZCBzZXNzaW9uIGNvdWxkIGdldCBtaXN0YWtlbmx5IGZyZWVkIGlmIGVycm9ycyB3ZXJlIGVuY291bnRlcmVkIGR1cmluZyBzZXNzaW9uIGNvcHkgLSBhbHNvIGVsaW1pbmF0ZSBzb21lIHJlZHVuZGFudCBjb3B5aW5nIG9mIHNlY3VyaXR5e0F1dGh8UHJpdn1LZXkgZGF0YQogICAKMTk5OS0xMi0xMCAxMDoyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgogICAKMTk5OS0xMi0xMCAwNzoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KICAgCjE5OTktMTItMTAgMDM6MTkgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgLSAodmFyaW91cyk6IGNoYW5nZXMgdG8gY29tcGlsZSBzbm1wZCB3aXRoIFZDKysgNS4wIChSZWxlYXNlIG1vZGUpCiAgIAoxOTk5LTEyLTEwIDAzOjEwICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKICAgCjE5OTktMTItMTAgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgogICAKMTk5OS0xMi0xMCAwMzowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KICAgCjE5OTktMTItMTAgMDM6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIG1hc3Rlci5jOiBhZGQgYSBtaXNzaW5nICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IChhdCBsZWFzdCBmb3IgU29sYXJpcykuCiAgIAoxOTk5LTEyLTA5IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKICAgCjE5OTktMTItMDkgMTY6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCiAgIAoxOTk5LTEyLTA5IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgogICAKMTk5OS0xMi0wOSAxNToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gTGVvbmFyZCBHb21lbHNreToKICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgogICAKMTk5OS0xMi0wOSAxMDowOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKToKICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgogICAKMTk5OS0xMi0wOSAwODoxNCAgbXNsaWZjYWsKCiAgICogbWlicy86IERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgVUNELURFTU8tTUlCLmluYywKICAgVUNELURFTU8tTUlCLnR4dCwgVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dAo6CgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEp1ZXJnZW4gU2Nob2Vud2FlbGRlci4KICAgCjE5OTktMTItMDkgMDc6NDkgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBzbm1wY21kLjE6IHN1cHBvcnQgTUlCOjpsYWJlbAogICAKMTk5OS0xMi0wOSAwNzozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBpbXBsZW1lbnQgTUlCOjpsYWJlbAogICAKMTk5OS0xMi0wOSAwNzozNCAgZGF2ZXMKCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KICAgCjE5OTktMTItMDggMTc6MTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgLSBpbXBsZW1lbnQgbWtkaXJoaWVyKCkgYW5kIHVzZSBpdCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCBhZ2VudHgKICAgICAgIHNvY2tldCBmaWxlIGNyZWF0aW9uLgogICAKMTk5OS0xMi0wOCAxNTo0OSAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLCByZW1vdmUtZmlsZXMKOgoKICAgLSAobWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLCByZW1vdmUtZmlsZXMpOgogICAgIC0gbW92ZSB0aGUgbWFrZSBkZXBlbmQgcGVybCBzY3JpcHRzIHRvIHRoZSB0b3AgbGV2ZWwgd2hlcmUgdGhleSBvbmx5CiAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgogICAKMTk5OS0xMi0wOCAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqLi5NYWtlZmlsZS5pbik6IEEgcmVhbCBtYWtlIGRlcGVuZCB3aXRoIG5vIHNzbCBkZXBlbmRhbmNpZXMsIGV0Yy4KICAgCjE5OTktMTItMDggMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KICAgCjE5OTktMTItMDggMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCouLk1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTEyLTA4IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGQgSnVlcmdlbi4KICAgCjE5OTktMTItMDggMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAtIHJlbWVtYmVyZWQgSU1QTElFRCBpbmRleGVzLgogICAgIC0gcHJvcGVybHkgcHJpbnQgT0lEcyB3aXRoIGxlbmd0aCBwcmVmaXhlcyBvbiBwYXJzZWQgT0lEcyBzbwogICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgLSBwcm9wZXJseSBwcmludCBzdHJpbmdzIGFuZCBvaWRzIHRoYXQgYXJlIElNUExJRUQuCiAgICAgLSBwcmludCBzdHJpbmdzIGluIGVpdGhlciAnIG9yICIgcXVvdGVzIGRlcGVuZGluZyBvbiBpZiB0aGVpciBJTVBMSUVELgogICAKMTk5OS0xMi0wOCAxNTowNCAgbXNsaWZjYWsKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkIG1pc3NpbmcgZHNrUGVyY2VudE5vZGUgdG8gRHNrRW50cnkgKHRoYW5rcyB0bwogICAgICAgICAgICBNaWNoYWVsIEtpcmtoYW0gPHN1cHBvcnRAaXdsLmNvbT4pLgogICAKMTk5OS0xMi0wOCAxNTowMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgSW5jbHVkZSBnZXRvcHQuaCB0byBkZWZpbmUgb3B0YXJnLgogICAKMTk5OS0xMi0wOCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZml4IC1PcyBhbmQgaW5kZXggYmFzZWQgb2lkIHByaW50aW5nIHRvIHdvcmsgYWdhaW4uCiAgIAoxOTk5LTEyLTA4IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWFrZSBtckluZGV4IElNUExJRUQgc2luY2UgaXQgaXMgaW4gdGhlIGNvZGUuCiAgIAoxOTk5LTEyLTA4IDA5OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiByZWdpc3RlciBhIGNvbmZpZyB0b2tlbiBmb3Igc3VmZml4IHByaW50aW5nLgogICAKMTk5OS0xMi0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgIGFnZW50eC9jbGllbnQuYyAtIHNubXBfZnJlZV92YXJiaW5kIHJlcGxhY2VzIGZyZWUgaW4gZm91ciBwbGFjZXM7CiAgIHNubXB2My91c21Vc2VyLmMgLSB1c21fZnJlZV91c2VyIHJlcGxhY2VzIGZyZWUgaW4gb25lIHBsYWNlLgogICAKMTk5OS0xMi0wNyAxMzo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB3YWxrLjE6CgogICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KICAgCjE5OTktMTItMDcgMTM6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOgogICAgIC0gTmV3IGFiaWxpdHkgdG8gcGVmb3JtIGEgZ2V0IG9uIHRoZSByZXF1ZXN0ZWQgT0lEIHdoZW4gZWl0aGVyIG5vCiAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgLSBOZXcgYWJpbGl0eSB0byBwcmludCBudW1iZXIgb2YgdmFyaWFibGVzIGZvdW5kIGF0IHRoZSBlbmQuCiAgIAoxOTk5LTEyLTA3IDA5OjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgogICAKMTk5OS0xMi0wNyAwOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCiAgIAoxOTk5LTEyLTA3IDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmM6CgogICAtIChocl9vdGhlci5jKTogc2hvcnRlbiBjcHUgZGVzY3JpcHRpb24gbGVuZ3RoLgogICAKMTk5OS0xMi0wNyAwODoyOSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdIGFnZW50L3NubXBkLltjaF0KICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5bY2hdIHNubXBsaWIvc25tcF9hcGkuYyk6CiAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgIAkoTi5COiBUaGlzIGNoYW5nZSB3aWxsIG5lZWQgdG8gYmUgYXBwbGllZCB0byBNSUIgbW9kdWxlcyBhcyB3ZWxsKQogICAKMTk5OS0xMi0wNyAwODowMyAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdXNtLmM6CgogICBVc2UgYXJndlswXSBzaW5jZSB0aGUgYXBwIHdvbnQgYmUgc25tcGdldG5leHQsIHByb2JhYmx5LgogICAKMTk5OS0xMi0wNiAxNjozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdXNtLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KICAgCjE5OTktMTItMDYgMTU6MTEgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwgd2luMzIvd2luMzIuZHN3Ciwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwCiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKICAgCjE5OTktMTItMDYgMTU6MDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsIHNubXB1c20uaDoKCiAgIENvbnZlcnQgVVNNX0VSUiogdG8gU05NUEVSUl9VU00qLgogICAKMTk5OS0xMi0wNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBmaXggdXNhZ2UgZm9yIG5ldyBhcmdzLgogICAKMTk5OS0xMi0wNiAxNDo1NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6IG1ha2UgdjMgdGVzdGluZyB3b3JrIGFnYWluLgogICAKMTk5OS0xMi0wNiAxNDo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOgogICAgIC0gbWFrZSBzbm1wdXNtIHVzYWJsZSBhZ2FpbiwgY2hhbmdpbmcgYXJndW1lbnRzIHNsaWdodGx5LgogICAgIC0gbWFrZSBpdCBhbHNvIHVzZSBkZWZhdWx0cyBmb3IgcGFzc3BocmFzZXMsIHVzZXIsIGV0Yy4KICAgCjE5OTktMTItMDYgMTQ6MzIgIG5iYQoKICAgKiB3aW4zMi86IGJpbi8uY3ZzaWdub3JlLCBsaWIvLmN2c2lnbm9yZToKCiAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwogICAKMTk5OS0xMi0wNiAxMzo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcHJpbnQgZXJyb3Igc3RyaW5ncyByZXR1cm5lZCBieSBnZW5lcmF0ZV9LdSgpLgogICAKMTk5OS0xMi0wNiAxMzo0NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgogICAKMTk5OS0xMi0wNiAwOToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNob3cgYWxsIG5vbi1wcmludGFibGUgc3ViaWRzIGluIGR1bXBfb2lkX3RvX3N0cmluZy4KICAgUmVjdXJzZSBjbGVhcl90cmVlX2ZsYWdzIG9ubHkgaWYgbmVjZXNzYXJ5LgogICAKMTk5OS0xMi0wNSAyMTo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZW5zdXJlIHByb3BlciBieXRlIG9yZGVyaW5nIHdoZW4gcGFzcydpbmcKICAgCWlwYWRkcmVzcy4KICAgCjE5OTktMTItMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCiAgIAoxOTk5LTEyLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlLgogICAKMTk5OS0xMi0wMyAxNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHN3aXRjaCB0byBQSUMgZnJvbSBwaWMuCiAgIAoxOTk5LTEyLTAzIDE1OjA1ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiByZW1lbWJlciB0byBOVUxMIGEgZnJlZWQgcG9pbnRlcgogICAKMTk5OS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIHNubXB0cmFwZF9oYW5kbGVycy5jOiBhIGxpdHRsZSBuaWNlciBlcnJvciBtZXNzYWdlCiAgIAoxOTk5LTEyLTAzIDE1OjAzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGNvcnJlY3QgaGFuZGxpbmcgb2YgU0lHSFVQIHRwIHJlY29uZmlndXJlLgogICAKMTk5OS0xMi0wMiAxNjo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCiAgIAoxOTk5LTEyLTAyIDA5OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KICAgCjE5OTktMTItMDIgMDU6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3NubXB2My5oOgoKICAgLSB1c21Vc2VyLmMgc25tcHYzLltjaF06IG1vdmUgdXNtX3BhcnNlX2NyZWF0ZV91c21Vc2VyIGZyb20gdGhlIGFnZW50CiAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCiAgIAoxOTk5LTEyLTAyIDA0OjQyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCBzbm1wX2Nsb25lX3BkdTIgYnkgdXNpbmcgdGhlIHNubXBsaWIgdmVyc2lvbgogICAKMTk5OS0xMi0wMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBhY2Nlc3NpbmcgYW5kIGZyZWVlaW5nIGVudl92YXIgbWlzcGxhY2VzIGFyb3VuZCBOVUxMIHRlc3QKICAgCjE5OTktMTItMDEgMTY6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KICAgCjE5OTktMTItMDEgMTU6NTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBidWcgIzExMiBhbmQgZmluaXNoIHBhdGNoIHN1cHBsaWVkIGJ5IEFudGhvbnkgU2hpcG1hbi4KICAgCjE5OTktMTItMDEgMTA6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgSW4gZmluZF9iZXN0X3RyZWVfbm9kZSwgdHJlYXQgcmVzdWx0IGZyb20gcmVjdXJzZWQgY2FsbCBzYW1lIGZvciBtYXRjaCA9IDAuCiAgIAoxOTk5LTEyLTAxIDA2OjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCiAgIAoxOTk5LTExLTMwIDE2OjUwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgc25tcHRyYW5zbGF0ZSAobmV3IC1CIG9wdGlvbikuCiAgIAoxOTk5LTExLTMwIDE0OjQ3ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFVzZSBXZXMnIGNvb2wgbmV3IGdldF93aWxkX25vZGUgbWF0Y2ggbWV0aG9kLgogICAKMTk5OS0xMS0zMCAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYyk6IGltcGxlbWVudCByZWdleCBtYXRjaGluZwogICAgIGV2ZXJ5d2hlcmUuCiAgIAoxOTk5LTExLTMwIDEzOjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5jbHVkZSBjdHlwZS5oCiAgIAoxOTk5LTExLTMwIDEzOjEwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KICAgCjE5OTktMTEtMzAgMDc6MDggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaGFuZGxpbmcgb2YgbXVsdGktdmFyaWFibGUgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgogICAKMTk5OS0xMS0zMCAwNzowNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgogICAKMTk5OS0xMS0zMCAwMzowMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6CgogICAtIHNubXBfYXBpLmgsIHNubXBfbWliLltjaF06IEEgY291cGxlIGFkZGl0aW9uYWwgU05NUCBzdGF0aXN0aWNzIHBvaW50cwogICAKMTk5OS0xMS0yOSAxNDowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgogICAKMTk5OS0xMS0yOSAxNDowMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIGZvciByZWdleC5oLCByZWdjb21wLCBzdHJjYXNlc3RyLgogICAKMTk5OS0xMS0yOSAxNDowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KICAgCjE5OTktMTEtMjkgMTQ6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYywgc3lzdGVtLmg6CgogICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBpbXBsZW1lbnQgc3RyY2FzZXN0ciAoZnJvbSBNaWNoYWVsIFNsaWZjYWspLgogICAKMTk5OS0xMS0yOSAxMjo0MyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgVXNlIHNpemVfdCBmb3IgbmFtZV9sZW4gbWVtYmVyLgogICAKMTk5OS0xMS0yOSAxMTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnJlZSBTVFJFQU0gcGFja2V0IGJ1ZmZlciB3aGVuIHNlc3Npb24gaXMgY2xvc2VkOwogICBUZXN0IGZvciBjbG9zZSBpbiBwcm9ncmVzcyBmb3IgcmVhZCwgd3JpdGUsIHNlbGVjdCwgYW5kIHRpbWVvdXQgZnVuY3Rpb25zLgogICAKMTk5OS0xMS0yOSAxMDozNiAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXB0cmFwLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L21haW4uYwo6CgogICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBERUJVR19NQUxMT0NfSU5DIGZyYWdtZW50cy4KICAgCjE5OTktMTEtMjkgMTA6MzMgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcDoKCiAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KICAgCjE5OTktMTEtMjkgMTA6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBudG9ocyBtYWNybyB0byBjYXJlZnVsbHkgb2J0YWluIHRoZSBkZWZhdWx0IHNlcnZpY2UgcG9ydC4KICAgCjE5OTktMTEtMjkgMDU6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgogICAKMTk5OS0xMS0yNyAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHJlZG8gcnd1c2VyL3JvdXNlciB0byBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGF1dGggdHlwZS4KICAgCjE5OTktMTEtMjcgMDY6MzEgIG1hcnoKCiAgICogYWdlbnQva2VybmVsLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgICAoYWdlbnQva2VybmVsLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGZpeCAtciBzd2l0Y2ggdG8gc3VwcmVzcyBlcnJvciBtZXNzYWdlcyBhYm91dCBmYWlsZWQga2VybmVsIGFuZCBhZGQgLXIgdG8gZGVmYXVsdCB0ZXN0aW5nIGNvZGUgc28gJ21ha2UgdGVzdCBjYW4gYmUgcnVuIGJ5IHVzZXIKICAgCjE5OTktMTEtMjYgMTE6MTggIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gZGVmYXVsdF9zdG9yZS5jOiBhbHRob3VnaCByZWFkX2NvbmZpZyBpcyBjYXNlIGluc2Vuc2l0aXZlLCBkc19oYW5kbGVfY29uZmlnCiAgIAl3YXMgbm90LiBBdCB0aGUgc2FtZSB0aW1lIGl0IGZhaWxlZCB0byByZXBvcnQgdGhlIHByb2JsZW0gdGhhdAogICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KICAgCjE5OTktMTEtMjUgMTQ6NTcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCiAgIAoxOTk5LTExLTI1IDE0OjU2ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAJZGlyZWN0aXZlCiAgIC0gc25tcF9hcGkuaCwgc25tcF9hcGkuYzogYWRkIGVycm9yY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKICAgCjE5OTktMTEtMjUgMTQ6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSB1c21Vc2VyLmM6IG5ldyB1c2VyIGlzIG5vdCBhZGRlZCB1bmxlc3MgYm90aCBhdXRoIGFuZCBwcml2IGlzIHNwZWNpZmllZAogICAJb24gY3JlYXRlVXNlciBkaXJlY3RpdmUKICAgCjE5OTktMTEtMjUgMTQ6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOgoKICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKICAgCjE5OTktMTEtMjUgMTQ6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmgsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgLSBzbm1wX2FwaS5jLCBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywgc25tcF9taWIuaCwgc25tcF9taWIuYzoKICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwogICAKMTk5OS0xMS0yNCAxMTowNyAgbXNsaWZjYWsKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICBGaXggQlVHIzU3IHVzaW5nIDIvMyBvZiBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgogICAKMTk5OS0xMS0yNCAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGFsbG93IHNlcGVyYXRpb24gb2YgbWFzayB3aXRoIGJvdGggLiBhbmQ6LgogICAKMTk5OS0xMS0yNCAwOToxNiAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBjaGFuZ2UgZWRpdGluZyBvZiBjb25maWcuaCBub3RlLgogICAKMTk5OS0xMS0yNCAwOTowOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvdG9vbHMuYwosIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXNtVXNlci5jLAogICAgIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIGxjZF90aW1lLmMsIHNjYXBpLmgsIHRvb2xzLmMsCiAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgIC0gZm9yY2UgLS1lbmFibGUtZGV2ZWxvcGVyIGZvciBDVlMgY2hlY2tvdXRzLgogICAgIC0gcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIEtNVC4KICAgCjE5OTktMTEtMjQgMDk6MDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFJlbGVhc2UgYWxsb2NhdGVkIGluZGV4ZXMgb24gc3ViYWdlbnQgc2h1dGRvd24uCiAgIAoxOTk5LTExLTIzIDA1OjQwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAtIE1ha2UgaW5kZXggcmVnaXN0cmF0aW9uIEFQSSBtb3JlIGltbWVkaWF0ZWx5IGNvbnZlbmllbnQKICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgLSBuZXcgcm91dGluZSB0byB1bnJlZ2lzdGVyIGFsbCBpbmRleGVzIGZvciBhIGdpdmVuIHNlc3Npb24KICAgICAtIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBBTlkgaW5kZXggYW5kIE5FVyBpbmRleAogICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMTEtMjMgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICBhbmQgdXNlIHRoaXMgZm9yIEFnZW50WCBzdWJhZ2VudCBhcyB3ZWxsLgogICAKMTk5OS0xMS0yMyAwMjoyMCAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiAjaW5jbHVkZSA8dW5pc3RkLmg+IGZvciBzZWxlY3QgcHJvdG90eXBlCiAgIAoxOTk5LTExLTIzIDAyOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jOgoKICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwogICAKMTk5OS0xMS0yMyAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSAoaG9zdC9ocl9zd3J1bi5jKTogRml4IGxpbnV4IHByb2Nlc3MgbWVtb3J5IHVzYWdlIGZpZ3VyZXMuCiAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKICAgCjE5OTktMTEtMjMgMDE6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAJQW50aG9ueSBTaGlwbWFuIDxhc2hpcG1hbkBlcmdncm91cC5jb20+CiAgIAoxOTk5LTExLTIzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUFNFQy1NSUIudHh0OgoKICAgLSBJUFNFQy1NSUIudHh0OiBjaGFuZ2Ugc29tZSB1bmRlcmxpbmVzIGludG8gZGFzaGVzLCBhbmQgcmVwYWlyIHRoZQogICAJOjo9IChtYXliZSBJIHNob3VsZCBoYXZlIGxvb2tlZCBhdCB0aGlzIGZpbGUgYmVmb3JlIGFkZGluZyBpdDotKSkKICAgCjE5OTktMTEtMjMgMDE6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICAtIGlwdjYuaDogcmVtb3ZlIGFuIF9fUCB0aGF0IGhhZCBzbmVha2VkIGluCiAgIAoxOTk5LTExLTIyIDE3OjUyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZSB0byByZWZsZWN0IG5ldyBhbmQgZWFzaWVyIC5jb25mIG1lY2hhbmlzbXMuCiAgIAoxOTk5LTExLTIyIDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogZml4IGxlbmd0aCBjaGVjayBvZiBrZXkgc3BhY2UuCiAgIAoxOTk5LTExLTIyIDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3ZhY21fdmFycy5jLCBzbm1wdjMvdXNtVXNlci5jCjoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgdmFjbS91c2VyIGNvbmZpZ3VyYXRpb24gYW5kIHNldHVwLgogICAKMTk5OS0xMS0yMiAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCiAgIAoxOTk5LTExLTIyIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgZnJvbSBHYXJyZXR0IFdvbGxtYW46CiAgICAgLSBGcmVlQlNEIDQueCBmaXhlcy4KICAgCjE5OTktMTEtMjIgMTI6NTMgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCjoKCiAgIC0gKjogY2hhbmdlIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgY29uZmlnIHBhcnNlciBmdW5jdGlvbnMgdG8gYQogICAJY29uc3Qgc3RyaW5nCiAgIAoxOTk5LTExLTIyIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3ZhY21fdmFycy5jLCB1Y2Qtc25tcC9wYXNzLmMKOgoKICAgLSAodmFjbV92YXJzLmMsIHBhc3MuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucy4KICAgCjE5OTktMTEtMjIgMTI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jCjoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYyk6IHVzZSBoZWFkZXJfZ2VuZXJpYyBub3QgaGVhZGVyX3NpbXBsZV90YWJsZQogICAKMTk5OS0xMS0yMiAwOToyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAo6CgogICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgIGVycm9yIG1lc3NhZ2VzLgogICAKMTk5OS0xMS0yMiAwOToxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGJzZGkgc3VwcG9ydCBmb3IgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYi4KICAgCjE5OTktMTEtMjIgMDk6MDcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIG1vcmUgcGVvcGxlIHRvIHRoZSB0aGFua3MgbGlzdC4KICAgCjE5OTktMTEtMjIgMDk6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgogICAKMTk5OS0xMS0yMiAwODoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBBZGRlZCBhYmlsaXR5IHRvIHVzZSBNSUIgdG8gcXVlcnkgdGFibGVzIHdpdGggbm9uLXNlcXVlbnRpYWwgY29sdW1uIE9JRHMuCiAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgogICAKMTk5OS0xMS0yMiAwODoyMSAgbXNsaWZjYWsKCiAgICogd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZToKCiAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgogICAKMTk5OS0xMS0yMiAwODoyMCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwOgoKICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCiAgIAoxOTk5LTExLTIyIDA3OjMwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KICAgCjE5OTktMTEtMjIgMDc6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIGlwdjYuYzogc29tZSBtb3JlIEFOU0kgcHJvdG90eXBlcwogICAKMTk5OS0xMS0yMiAwNjo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKICAgCjE5OTktMTEtMjIgMDU6MzIgIG5iYQoKICAgKiBtaWJzL0lQVjYtVENQLU1JQi50eHQsIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwo6CgogICAtIElQVjYtVENQLU1JQiwgSVBWNi1VRFAtTUlCLCBpcHY2LmMsIHRjcC5jOiBtb3ZlIHRoZSBJUHY2IHRjcCBhbmQgdWRwCiAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KICAgCjE5OTktMTEtMjIgMDU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIHBhc3MuYzogcmVtb3ZlIGEgY29uc3QgY2FzdGluZyB3YXJuaW5nCiAgIAoxOTk5LTExLTIyIDA1OjI4ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKICAgCjE5OTktMTEtMjIgMDU6MjggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKICAgCjE5OTktMTEtMjIgMDU6MjcgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAogICAKMTk5OS0xMS0xOSAxNToyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBkaXNrLmMsIGRpc2suaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgIC0gbW9uaXRvciBkaXNrIGlub2RlIHBlcmNlbnRhZ2VzLgogICAKMTk5OS0xMS0xOSAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAtIG1ha2Ugc25tcF9zZWxlY3RfaW5mbyBwb3NzaWJseSBoYW5kbGUgYWxhcm0gdGltZXJzLgogICAgIC0gbWFrZSBzbm1wZCB1c2UgdGhlbSBhbmQgY2FsbCBzbm1wX3J1bl9hbGFybXMoKS4KICAgCjE5OTktMTEtMTkgMTM6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGZpeCBtaWIyYy5zdG9yYWdlLmNvbmYuCiAgIAoxOTk5LTExLTE5IDExOjA2ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IFByb3ZpZGUgbWlzc2luZyBpbmRleCBhbGxvY2F0aW9uIGRlZmluZXMuCiAgIAoxOTk5LTExLTE4IDE4OjIwICBtc2xpZmNhawoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgIG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlidWNkbWlicy8uY3ZzaWdub3JlLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBzbm1wZC8uY3ZzaWdub3JlLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBNb3JlIE1TVkMrKyBXaW4zMiBhZ2VudCBmaWxlcywgZ3JhdGlzIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTggMTg6MTQgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdzoKCiAgIE1vcmUgdG91Y2h1cCBwZXIgTVNWQysrIFdpbjMyIGFnZW50IHdvcmsuCiAgIAoxOTk5LTExLTE4IDE3OjU3ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhcHBzL3NubXBidWxrZ2V0LmMKOgoKICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICBUaGFua3MgdG8gUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xNyAyMTo1MSAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKICAgCjE5OTktMTEtMTcgMTM6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgogICAKMTk5OS0xMS0xNyAxMzowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgogICAKMTk5OS0xMS0xNyAxMzowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogdXBkYXRlIHRoZSBzbyBMRCBmb3IgbGludXggdG8gJChDQykuCiAgIAoxOTk5LTExLTE3IDExOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYwosIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKGRzX2FnZW50LmgsIGtlcm5lbC5jLCBzbm1wZC5jLCBzbm1wZC4xLmRlZik6CiAgICAgLSBydW4gdGltZSByb290bGVzcyBydW5uaW5nIHN1cHBvcnQgZm9yIHNubXBkLCBieSByZXFlc3Qgb2YgSm9lLiAoLXIpCiAgIAoxOTk5LTExLTE3IDA3OjM2ICBtc2xpZmNhawoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgogICAKMTk5OS0xMS0xNyAwNzozNSAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcGJ1bGtnZXQvOiAuY3ZzaWdub3JlLCBzbm1wYnVsa2dldC5kc3A6CgogICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xNyAwNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgogICAKMTk5OS0xMS0xNiAxNDo1NiAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBCdWlsZCB3aXRoIGdldG9wdC4KICAgCjE5OTktMTEtMTYgMTQ6NDAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB3aW4zMi93aW4zMi5kc3csCiAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIE1TVkMgdG91Y2h1cHM6CiAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICBGaXggd2FybmluZ3MgaW4gYXNuMS5jIGFuZCBzbm1wX2FwaS5jOyBSZW1vdmUgdW51c2VkIHZhciBpbiBzbm1wdHJhbnNsYXRlLmMuCiAgIAoxOTk5LTExLTE2IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgdGhlIFQ6IGZsYWcgZm9yIC1UIHRvIGdldG9wdAogICAKMTk5OS0xMS0xNiAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChwcm90b2NvbC5jKTogYWRkIHRoZSBoZWFkZXIgbGVuZ3RoIHRvIHRoZSBwYWNrZXQgbGVuZ3RoIGVzdGltYXRlLgogICAKMTk5OS0xMS0xNiAwOToxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCiAgIAoxOTk5LTExLTE2IDA4OjQ4ICBtc2xpZmNhawoKICAgKiBjb25maWcuZ3Vlc3M6CgogICBFbWJyYWNlIGFsbCBIUC05MDAwLzZ4eCw3eHgsIDh4eCBzZXJpZXMgcGxhdGZvcm1zLCB3aXRob3V0IHJlZ3JldHMuCiAgIAoxOTk5LTExLTE2IDA2OjIxICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgCXRvIGZvbGxvdyB0aGUgY29tbW9uIG9wdGlvbiBzZXQuIElzc3VlIHdhcm5pbmdzIHdoZW4gc29tZW9uZQogICAJdXNlcyB0aGUgb2xkIGZvcm0sIGFkdmlzaW5nIGFib3V0IHRoZSBuZXcuCiAgIAoxOTk5LTExLTE2IDAzOjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIEZpeCBzcGVsbGluZyBtaXN0ZWFrLgogICAKMTk5OS0xMS0xNSAyMTo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggYnVnIzc1OiBidWlsZCAtLXdpdGhvdXQtb3BhcXVlLXR5cGVzCiAgIAoxOTk5LTExLTE1IDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBtYXN0ZXIuYywgcHJvdG9jb2wuYywgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYywKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCiAgIAoxOTk5LTExLTE1IDE2OjQzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCiAgIAoxOTk5LTExLTE1IDE1OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCiAgICAgLSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgVENQIGJyb2tlbiBTTk1QIHBhY2tldHMgYnkgc3RvcmluZyBidWZmZXJzCiAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgogICAKMTk5OS0xMS0xNSAxNTozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCiAgIAoxOTk5LTExLTE1IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBzbm1wbmV0c3RhdC9tYWluLmMKOgoKICAgLSAoc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jKToKICAgICAtIGFkZCBkZWZhdWx0X3N0b3JlLmgKICAgCjE5OTktMTEtMTUgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBpbnNlcnRlZC4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIHRrbWliOgoKICAgLSAobWliMmMsIHRrbWliKTogcmVtb3ZlIC13LgogICAKMTk5OS0xMS0xNSAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzZXQgdG8gJ1wwJyBpbnN0ZWFkIG9mIE5VTEwgZm9yIC1XYWxsLgogICAKMTk5OS0xMS0xNSAxNToxOSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBtZW1vcnkgaW50IC0+IHVpbnQuCiAgIAoxOTk5LTExLTE1IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jOgoKICAgLSAobWliX21vZHVsZXMuYywgc25tcF92YXJzLmMpOiBtb3ZlIHN1YmFnZW50X3ByZV9pbml0KCkgdG8gaW5pdF9hZ2VudCgpLgogICAKMTk5OS0xMS0xNSAxNToxOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IG5ldyBtaXJyb3IgaW4gQXVzdHJhbGlhLgogICAKMTk5OS0xMS0xNSAxNDowOSAgbmJhCgogICAqIC5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gLmN2c2lnbm9yZTogdXBkYXRlcyB0byBrZWVwIGN2cyBzaWxlbnQgYWJvdXQgZ2VuZXJhdGVkIGZpbGVzLgogICAKMTk5OS0xMS0xNSAxNDowNSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IGEgc3BlbGxpbmcgZXJyb3IgaW4gdGhlIE1JQiByZXBsYWNlbWVudCB0YWJsZS4KICAgCjE5OTktMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4sIFJGQzEyNzEtTUlCLnR4dCwgUk1PTi1NSUIudHh0CjoKCiAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQogICAKMTk5OS0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGJ1bGtnZXQuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZ1cnRoZXIgZXJyb3IgY2hlY2tpbmcsIGNvdXJ0ZXN5IG1zbGlmY2FrCiAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKICAgCjE5OTktMTEtMTUgMDg6MjkgIG1zbGlmY2FrCgogICAqIG1hbi9taWJfYXBpLjM6CgogICBGaXggZGVzY3JpcHRpb24gb2YgcmVhZF9vYmppZCByZXR1cm4gdmFsdWUuCiAgIAoxOTk5LTExLTE1IDA3OjU2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGhhbmRsaW5nIG9mIGZhaWxlZCBHRVQvU0VUIHJlcXVlc3RzCiAgIAoxOTk5LTExLTE0IDA2OjMyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBtYWtldGFyZ2V0LAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtaWJzL0lQU0VDLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1JQ01QLU1JQi50eHQsIG1pYnMvSVBWNi1NSUIudHh0LAogICBtaWJzL0lQVjYtVEMudHh0LCBtaWJzL0lQVjYtVENQLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAJaXQgc28gbXVjaCBhcyB0byBzdGlsbCBjb21waWxlIG9uIG5vbi1JUHY2IHN5c3RlbXMsIGFuZCBkZXRlY3QKICAgCUxpbnV4LCBJTlJJQSwgU29sYXJpcyBJUHY2LiBObyBjb2RlIGZvciB0aGVtIHlldC4gT3JpZ2luYWwKICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKICAgCjE5OTktMTEtMTQgMDY6MTUgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAogICAKMTk5OS0xMS0xNCAwNjoxMiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAogICAKMTk5OS0xMS0xNCAwMjo0MiAgbmJhCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCiAgIAoxOTk5LTExLTE0IDAyOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jLCBzbm1wdHJhbnNsYXRlLmM6IG1vdmUgdGhlIE1JQjppZCBoYW5kbGluZyBpbnNpZGUgcmVhZF9vYmppZCBmb3IKICAgCWNvbnNpc3RlbmN5LiBBbHNvIGZpeGVzIGEgYnVmZmVyIG92ZXJydW4gaW4gbWliLmMKICAgCjE5OTktMTEtMTQgMDI6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIC0gcGFzcy5jLCBzbm1wZC5jb25mLjUuZGVmOiBhZGQgYW4gVU5TSUdORUQgcmV0dXJuIHR5cGUKICAgCjE5OTktMTEtMTQgMDI6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gdmFjbV92YXJzLmM6IGtpbGwgYSB3YXJuaW5nCiAgIAoxOTk5LTExLTE0IDAxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIG1pYnMvTWFrZWZpbGUuaW4sCiAgIG1pYnMvU05NUC1DT01NVU5JVFktTUlCLnR4dCwgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0CiwgbWlicy9TTk1QLU1QRC1NSUIudHh0LCBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQKLCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dCwgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0CiwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LAogICBtaWJzL1NOTVB2Mi1TTUkudHh0LCBtaWJzL1NOTVB2Mi1UQy50eHQ6CgogICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgIAlTTk1QX0NPTU1VTklUWV9NSUIgZnJvbSB0aGUgY29leCBkcmFmdC4KICAgCjE5OTktMTEtMTQgMDE6NTQgIG5iYQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3M6IGNoYW5nZXMgdG8gc3VwcG9ydCBtdWx0aS12YWx1ZWQgb3B0aW9ucwogICAKMTk5OS0xMS0xNCAwMTo1MyAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgbWFuL3NubXBidWxrZ2V0LjEsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gc25tcGJ1bGtnZXQ6IG5ldyB0b29sIHRvIGlzc3VlIGEgc2luZ2xlIEdFVEJVTEsgcmVxdWVzdAogICAKMTk5OS0xMS0xNCAwMTo1MSAgbmJhCgogICAqIG1hbi9zbm1wdGFibGUuMToKCiAgIC0gc25tcHRhYmxlOiBhZGQgaW4gdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIHNubXB0YWJsZSBvcHRpb25zIGJldHdlZW4KICAgCXRoZSBub3JtYWwgb3B0aW9ucy4KICAgCjE5OTktMTEtMTQgMDE6NDggIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUsIHNubXBfcGFyc2VfYXJnczogYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIG9wdGlvbnMgdG8KICAgCjE5OTktMTEtMTIgMTM6MDEgIG1hcnoKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIGxjZF90aW1lLmgsIHNubXB1c20uYzoKCiAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKICAgCjE5OTktMTEtMTIgMDg6NDYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFByb3ZpZGUgYSB1bmlxdWUgSUQgZm9yIGFsbCBpbmNvbWluZyBQRFVzCiAgIAoxOTk5LTExLTExIDIyOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgIAlTb21lIGVuaGFuY2VtZW50cyB0byB0aGUgc25tcHRyYW5zbGF0ZSAtZCBvdXRwdXQuCiAgIAoxOTk5LTExLTExIDIyOjE0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gc25tcGNtZC4xOiB1cGRhdGUgbWFuIHBhZ2UgdG8gY29ycmVzcG9uZCB0byB0aGUgbmV3IGdldG9wdCBzaXR1YXRpb24KICAgCU5vdGU6IGV2ZW4gdGhvdWdoIHNvbWUgb3B0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoaXMKICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKICAgCjE5OTktMTEtMTEgMDM6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFNpbGx5IHR5cG8gaW4gc3RhcnQgdGltZSBzeW5jaHJvbmlzYXRpb24KICAgCjE5OTktMTEtMTAgMjI6MTAgIG5iYQoKICAgKiB3aW4zMi86IC5jdnNpZ25vcmUsIGVuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwKICAgbGlic25tcC8uY3ZzaWdub3JlLCBsaWJzbm1wL2xpYnNubXAucGxnLAogICBsaWJzbm1wX2RsbC8uY3ZzaWdub3JlLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsCiAgIHNubXBidWxrd2Fsay8uY3ZzaWdub3JlLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywKICAgc25tcGRlbHRhLy5jdnNpZ25vcmUsIHNubXBkZWx0YS9zbm1wZGVsdGEucGxnLAogICBzbm1wZ2V0Ly5jdnNpZ25vcmUsIHNubXBnZXQvc25tcGdldC5wbGcsCiAgIHNubXBnZXRuZXh0Ly5jdnNpZ25vcmUsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywKICAgc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgc25tcHNldC8uY3ZzaWdub3JlLAogICBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzLy5jdnNpZ25vcmUsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0YWJsZS8uY3ZzaWdub3JlLAogICBzbm1wdGVzdC8uY3ZzaWdub3JlLCBzbm1wdGVzdC9zbm1wdGVzdC5wbGcsCiAgIHNubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZwosIHNubXB0cmFwLy5jdnNpZ25vcmUsIHNubXB0cmFwL3NubXB0cmFwLnBsZywKICAgc25tcHRyYXBkLy5jdnNpZ25vcmUsIHNubXB1c20vLmN2c2lnbm9yZSwKICAgc25tcHdhbGsvLmN2c2lnbm9yZSwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSB3aW4zMi8qOiBjbGVhbiB1cCByZXBvc2l0b3J5IGZpbGVzLCBhbmQgYWRkIHByb3BlciAuY3ZzaWdub3JlIGZpbGVzCiAgIAoxOTk5LTExLTEwIDE1OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnLAogICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwOgoKICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKICAgCjE5OTktMTEtMTAgMTI6MjAgIG5iYQoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgLSB3aW4zMi8qLmRzcDogeWV0IGFub3RoZXIgcm91bmQgb2YgbWFraW5nIHRoaXMgY3JhcCB3b3JrCiAgIAoxOTk5LTExLTEwIDA4OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IEFnZW50WCBub3RpZnkgc3VwcG9ydAogICAKMTk5OS0xMS0xMCAwODo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50L2FnZW50X3RyYXAuW2NoXSk6IG1pbm9yIHJlLXN0cnVjdHVyZSB0byBhbGxvdyBzdWJhZ2VudCB0cmFwICJzaW5rcyIKICAgCjE5OTktMTEtMTAgMDg6NTcgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jKTogT25seSBzZXQgdXAgdHJhcCBzaW5rcyBvbiB0aGUgbWFzdGVyIGFnZW50CiAgIAoxOTk5LTExLTEwIDA4OjMxICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIC0gd2luMzIvKjogVkMrKyBwcm9qZWN0IHVwZGF0ZXMKICAgCjE5OTktMTEtMTAgMDg6MzAgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5wbGc6CgogICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCiAgIAoxOTk5LTExLTA5IDIzOjMwICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuaDoKCiAgIC0gZ2V0b3B0Lmg6IGFyZ3VtZW50cyB0byBnZXRvcHQgZGlkIG5vdCBtYXRjaCB0aG9zZSBpbiBnZXRvcHQuYwogICAKMTk5OS0xMS0wOSAyMjoyMCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAuIHNubXBfcGFyc2VfYXJncy5jOiBhIGdsaXRjaCBpbiB0aGUgY29udmVyc2lvbiB0byBnZXRvcHQgKHRoYW5rcyB0bwogICAJZHJpZWh1aXNAcGxheWJlaW5nLm9yZykKICAgCjE5OTktMTEtMDkgMTU6MTUgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9nZXRvcHQuYywKICAgc25tcGxpYi9nZXRvcHQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIub3B0LAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAucGxnLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5wbGcKOgoKICAgLSB2YXJpb3VzOiBhZGFwdCB0b29scyB0byB1c2UgZ2V0b3B0IChhbmQgcHV0IG9uZSBpbiBmb3IgV2luMzIpCiAgIAoxOTk5LTExLTA5IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KICAgCjE5OTktMTEtMDkgMTM6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oKTogc2ltcGxlIG5ldyAuY29uZiB0b2tlbnM6IHJvY29tbXVuaXR5LCByd2NvbW1pdHkuCiAgIAoxOTk5LTExLTA5IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IHJlcXVpcmUgdGhlIERFTU8tTUlCIChqdXN0IGZvciB0dXRvcmlhbCBwdXJwb3NlcykuCiAgIAoxOTk5LTExLTA5IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCAtSC4KICAgCjE5OTktMTEtMDkgMTI6NTkgIG5iYQoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gc25tcHRyYXBkLmMsc25tcHRyYXBkX2hhbmRsZXJzLmM6IG1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysgNS4wCiAgIAkoYnV0IG5vIGhhbmRsZXJzICh5ZXQpKQogICAKMTk5OS0xMS0wOSAwMTo1MCAgbmJhCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jLAogICBwYXJzZS5oOgoKICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAJc2hvdyBkZWZpbmluZyBtb2R1bGVzIGluIHNubXB0cmFuc2xhdGUgLWQKICAgCXVzZSBkc190b2dnbGVfYm9vbGVhbgogICAKMTk5OS0xMS0wNSAwNjoyMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICBSZXNwZWN0aXZlbHkgcmVwbGFjZWQgd2l0aCBjYWxsb2MsIGNhbGxvYywgY2FsbG9jLCBtYWxsb2MsIGFuZCBzdHJkdXAuCiAgIAoxOTk5LTExLTA0IDEzOjQzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU3BlZWQgdXAgc3ByaW50X3ZhcmlhYmxlOiBoYWx2ZSB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGdldF9zeW1ib2wuCiAgIAoxOTk5LTExLTA0IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCiAgIAoxOTk5LTExLTA0IDEwOjE5ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgd2luMzIvY29uZmlnLmg6CgogICBSZWRvIEZyZWVCU0QgNC4wOiBkZWZpbmUgZnJlZWJzZDMgaW4gcy9mcmVlYnNkNC5oOyByZWR1Y2UgImRlZmluZSIgdGhyYXNoaW5nLgogICAKMTk5OS0xMS0wNCAxMDowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiBpbmNsdWRlIGhlYWRlcnMgZm9yIGNvbXBpbGF0aW9uIGZvciBib3RoIGludGVybmFsIGFuZAogICAgIGV4dGVybmFsIHRvIHRoZSB1Y2Qtc25tcCBzb3VyY2UuCiAgIAoxOTk5LTExLTA0IDEwOjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMpOgogICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgIC0gbW92ZSB1Y2Qtc25tcC1jb25maWcuaCB1cCBpbiB0aGUgYnVpbGQgb3JkZXIgYmVmb3JlIHN1YmRpcnMuCiAgICAgLSBNYWtlIGRlZmF1bHQgTUlCRElSUyBzZWFyY2ggcGF0aCBpbmNsdWRlICRIT01FLy5zbm1wL21pYnMuCiAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgogICAKMTk5OS0xMS0wNCAwNToxMiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBwYXNzIHN1cHBvcnQgZm9yIEZyZWVCU0QgNC4wIFtwcm9ibGVtcyB3aXRoIHByb2MgdGFibGUgbG9va3Vwc10uCiAgIAoxOTk5LTExLTA0IDA0OjMzICBtc2xpZmNhawoKICAgKiBBR0VOVC50eHQ6CgogICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgogICAKMTk5OS0xMS0wNCAwNDoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgbWliZ3JvdXAvbWliSUkvYXQuYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIG1pYmdyb3VwL21pYklJL3RjcC5jLAogICBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMKLCBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIE1vcmUgU1REQ19IRUFERVJTIGNsZWFudXA6IHVzZSBIQVZFX1NUUklOR19ILCBIQVZFX1NURExJQl9IIGluc3RlYWQuCiAgIAoxOTk5LTExLTA0IDAyOjQyICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQYXRjaCB0byBidWlsZCBCU0QvT1MgNC4wLjE7IGZyb20gQmVydCBEcmllaHVpcyAtLSBkcmllaHVpc0BwbGF5YmVpbmcub3JnCiAgIAoxOTk5LTExLTAzIDEzOjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4IGJ1aWxkIHByb2JsZW0gb24gTGludXggUmVkSGF0IDYuMDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KICAgCjE5OTktMTEtMDMgMTM6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKLCB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywKICAgdWNkLXNubXAvcHJvYy5oOgoKICAgRm9sbG93aW5nIGNhbGwgdG8gZmRvcGVuIChuZWFyIGdldF9leGVjX291dHB1dCksIGRvIG5vdCBjbG9zZShmZCkuCiAgIAoxOTk5LTExLTAzIDA2OjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBOZWFyIGxpbmUgNjYzOiBjbG9zZShmZCkgYmVmb3JlIGludm9raW5nIHdhaXRfb25fZXhlYwogICAKMTk5OS0xMS0wMyAwNjoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgZGVjbGFyZSBmaW5kX2Jlc3RfdHJlZV9ub2RlIGZvciBNU1ZDIGJ1aWxkLgogICAKMTk5OS0xMS0wMiAxNTo0NiAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCiAgIAoxOTk5LTExLTAyIDE1OjM2ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2NvbmZpZy5oOgoKICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KICAgCjE5OTktMTEtMDIgMDk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgb3RoZXIgaGVhZGVyIGZpbGVzIG5lZWRlZCBieSBTTk1QLnBtLgogICAKMTk5OS0xMS0wMSAxMzoxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXBfYWxhcm0uYyk6CiAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAtIGRpdHRvIGlmIHRoZSBuZXcgZGVmYXVsdF9zdG9yZSBvcHRpb24gaXMgdHVybmVkIG9uLgogICAgIC0gbWFkZSBhIGRlZmF1bHRfc3RvcmUgb3B0aW9uIHRvIG5vdCB1c2Ugc2lnYWxybSBmb3Igc25tcF9hbGFybXMuCiAgIAoxOTk5LTEwLTI5IDE5OjU0ICBtYXJ6CgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMpOiBtYWtlIGVuZ2luZUlEIHNldHVwIGNvbmRpdGlvbmFsIG9uIGFwcCB0eXBlIHRvIHByZXZlbnQgYXBwcyBmcm9tIGVhc2lseSBlbmRpbmcgdXAgd2l0aCB0aGUgc2FtZSBlbmdpbmVJRCBhcyBhZ2VudCBvbiBzYW1lIGhvc3QKICAgCjE5OTktMTAtMjkgMTY6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBtYWtlIGl0IGRvIHNubXB2My4gIEFkZGVkIG1hbnkgdGhpbmdzIHRvIHRoZSBvcHRpb25zIG1lbnUuCiAgIAoxOTk5LTEwLTI5IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgZGVmYXVsdF9zdG9yZS4zeywuaH0KICAgCjE5OTktMTAtMjkgMTA6MTUgIGhhcmRha2VyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmg6CgogICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAogICAKMTk5OS0xMC0yOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1UIGFuZCAtcVtvZV0KICAgCjE5OTktMTAtMjkgMTA6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAtIHNubXAgb3ZlciBUQ1Agb3B0aW9uczogLVQgVENQLgogICAgIC0gbmV3IHF1aWNrIHByaW50IG9wdGlvbnM6IC1xbyAtcWUgZm9yIG51bWVyaWMgb2lkcyBhbmQgZW51bXMuCiAgIAoxOTk5LTEwLTI5IDA5OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiB0d28gbmV3IHByaW50aW5nIG9wdGlvbnM6CiAgICAgLSBwcmludE51bWVyaWNPaWRzCiAgICAgLSBwcmludE51bWVyaWNFbnVtcwogICAKMTk5OS0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCB2YXJfc3RydWN0LmggYW5kIGFnZW50X3JlYWRfY29uZmlnLmgKICAgCjE5OTktMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IGFkZGVkIHJlZmVyZW5jZSB0byBhbiBhYm92ZSBxdWVzdGlvbiBmb3IgcGVybCBpbnN0YWxsYXRpb24uCiAgIAoxOTk5LTEwLTI5IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogUGF0Y2ggZnJvbSBLZWl0aCBUdXNvbjoKICAgICAtIG1pc2MgZml4ZXMuCiAgIAoxOTk5LTEwLTI4IDA2OjQ5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KICAgCjE5OTktMTAtMjggMDU6MjUgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmg6CgogICBPb3BzISByZXN0b3JlIHZlcnNpb24gcjEuMTMxLgogICAKMTk5OS0xMC0yOCAwNToyMyAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmg6CgogICB1X2ludDgvMTYvMzJfdCB0eXBlcyBubyBsb25nZXIgbmVlZGVkIGZvciBXSU4zMiBidWlsZHMuCiAgIAoxOTk5LTEwLTI4IDA0OjU1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCiAgIAoxOTk5LTEwLTI3IDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgogICAKMTk5OS0xMC0yNyAxNzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogYmFpbCBpZiB3ZSBjYW4ndCBmaW5kIGFuIGluZGV4IGluIHRoZSBtaWIgdHJlZSB0byB1c2UgZm9yCiAgICAgYnJlYWtpbmcgYW4gb2lkIGFwYXJ0LgogICAKMTk5OS0xMC0yNyAxNzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZGVkIG1vcmUgaW5jbHVkZSBmaWxlcy4KICAgCjE5OTktMTAtMjcgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAogICAKMTk5OS0xMC0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5oOgoKICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCiAgIAoxOTk5LTEwLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KICAgCjE5OTktMTAtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsCiAgIGRlZmF1bHRfc3RvcmUuMy5ib3QsIGRlZmF1bHRfc3RvcmUuMy5oLAogICBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICBkZWZhdWx0X3N0b3JlLjMuaCwgZGVmYXVsdF9zdG9yZS4zLnRvcCwgc25tcF9hZ2VudF9hcGkuMyk6CiAgICAgLSBuZXcgbWFudWFsIHBhZ2VzOiBkZWZhdWx0X3N0b3JlLjMsIHNubXBfYWdlbnRfYXBpLjMuCiAgIAoxOTk5LTEwLTI3IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KICAgCjE5OTktMTAtMjcgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIChNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIGEgaGVhZGVyIGZpbGUgdG8KICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgogICAKMTk5OS0xMC0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCiAgIAoxOTk5LTEwLTI3IDE0OjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IHVwIHVjZC1zbm1wLWNvbmZpZy5oIGJ1aWxkaW5nLgogICAKMTk5OS0xMC0yNiAxMDozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgogICAKMTk5OS0xMC0yNSAxNjowNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYywgcGFyc2UuYyk6IGhhY2sgdG8gZG8gd2lsZCBjYXJkIHNlYXJjaGVzIGZvciBhIG1pYiBub2RlLgogICAKMTk5OS0xMC0yNSAxNDozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgogICAKMTk5OS0xMC0yNSAxNDoxMiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAuYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jCiwgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKjogY29uZmlndXJlIHN1cHBvcnQgZm9yIGRtYWxsb2MgbWFsbG9jIGRlYnVnZ2VyICh3d3cuZG1hbGxvYy5jb20pCiAgIAoxOTk5LTEwLTI1IDE0OjA4ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCiAgIAoxOTk5LTEwLTI1IDE0OjA3ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gc25tcGRlbHRhLmM6IENPVU5URVI2NCB3aWxsIGRlcmVmZXJlbmNlIGZyZWVkIHBvaW50ZXIKICAgCjE5OTktMTAtMjUgMTM6NTYgIG5iYQoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaAosIGV2YWxfdG9vbHMuc2g6CgogICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgIAlzaGVsbHMgKGVjaG8gLW4gdnMgZWNobyBcXGMpLiBEb24ndCByZXF1aXJlIC4gaW4gUEFUSAogICAKMTk5OS0xMC0yNSAxMzo0MCAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCiAgIAoxOTk5LTEwLTI1IDEzOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CiAgIAoxOTk5LTEwLTI1IDA4OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWliLmMsIHNjYXBpLmM6CgogICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMC0yNCAwODoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBwcmVtaWIgZGlyZWN0aXZlcyB3ZXJlbid0IGdldHRpbmcgcmVhZCBkdWUgdG8gYSBtaXNzaW5nIG5lZ2F0aW9uICghKS4KICAgICAtIG1vcmUgcGFyc2luZyBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KICAgCjE5OTktMTAtMjQgMDg6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGZpeCAibWlicyIgYW5kICJtaWJkaXJzIiAuY29uZiBkaXJlY3RpdmVzIHRvIHByb3Blcmx5CiAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KICAgCjE5OTktMTAtMjQgMDg6MjQgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdHlwby4KICAgCjE5OTktMTAtMjQgMDg6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTTk1QQ09ORlBBVEggdXNlcyBzeXNjb25mZGlyIG5vdCBkYXRhZGlyLgogICAKMTk5OS0xMC0yMiAxNToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogcHJpbnQgc3RyaW5nIGJhc2VkIE9JRHMgYmV0dGVyLgogICAKMTk5OS0xMC0yMiAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaAosIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwga2V5dG9vbHMuYywKICAgICBrZXl0b29scy5oLCBzY2FwaS5jKToKICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KICAgCjE5OTktMTAtMjIgMTA6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEaXNwbGF5IF9zb21lXyBvY3RldCBzdHJpbmcgaW5kaWNlcyBvZiBvYmplY3QgaWRlbnRpZmllcnMgYXMgcXVvdGVkIHByaW50YWJsZS4KICAgU2hvdWxkIGJlIGV4cGFuZGVkIHRvIGhhbmRsZSBvdGhlciBJTkRFWCB0eXBlcy4KICAgCjE5OTktMTAtMjIgMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KICAgCjE5OTktMTAtMjIgMDc6MzkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmVkIGR1cGxpY2F0ZWQgdmFyaWFibGUgaW4gYSBuZXN0ZWQgYmxvY2suIEFSZyEKICAgCjE5OTktMTAtMjIgMDY6MjkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEZpeCBCVUcgIzgzLgogICAKMTk5OS0xMC0yMSAxMjo1NCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSBtZW1vcnlfc29sYXJpczIuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCiAgIAoxOTk5LTEwLTIxIDEyOjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbWFsbCBwYXRjaCBmcm9tIE0uIExhdWtrYW5lbiB0byBmaXggSFAgYUNDIGJ1aWxkLgogICAKMTk5OS0xMC0yMSAxMjowOSAgbXNsaWZjYWsKCiAgICogbWFuLzogc25tcF9hcGkuMywgc25tcF9zZXNzX2FwaS4zLCBzbm1wZC4xLmRlZgosIHNubXBuZXRzdGF0LjEsIHNubXB0ZXN0LjE6CgogICBGaXggQlVHIzc4CiAgIAoxOTk5LTEwLTIxIDEwOjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgdXNlIHNubXBfb3Blbl9leC4KICAgCjE5OTktMTAtMjEgMTA6NDEgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYwosIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jCiwgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgIHNubXB1c20uYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgIHNubXB0YWJsZS5jIC0gb3Blbi9jbG9zZSBzZXNzaW9uIGZyb20gbWFpbigpLgogICBuZXRzdGF0L21haW4uYyAtIHVzZSBzbm1wX3Nlc3NfcGVycm9yLgogICAKMTk5OS0xMC0yMSAxMDozOSAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgRml4dXBzIGZvciBidWlsZGluZyB3aXRoIE1TVkMrKy4gKG5vIGhwdXguYywgc3VwcGx5IE1BWF9QRVJTSVNURU5UX0JBQ0tVUFMpLgogICAKMTk5OS0xMC0yMSAxMDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jCiwgc25tcF9hcGkuaDoKCiAgIG1pYi5jIC0gcmVzdG9yZSBsaW5lIHN0b21wZWQgaW4gbXkgbGFzdCB1cGRhdGUuCiAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgc25tcF9hcGkuYyAtIG5ldyBtZXRob2Qgc25tcF9vcGVuX2V4IHJlcGxhY2VzIHNldCBpbnRlcm5hbCBob29rIGZ1bmN0aW9ucy4KICAgCjE5OTktMTAtMjEgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3IgZnJvbSB3aXRoaW4gdGhlIGxpYnJhcnkuCiAgIAoxOTk5LTEwLTIxIDEwOjIwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIHdpdGhvdXQgc3BlY2lmeWluZyBzbm1wX2Vycm5vIF9vdXRzaWRlXyB0aGUgbGlicmFyeS4KICAgCjE5OTktMTAtMjEgMTA6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBvaWRuYW1lLiJoaSIuJ3RoZXJlJyBpbiBnZXRfbW9kdWxlX25vZGUoKSBhcyB3ZWxsLgogICAKMTk5OS0xMC0yMCAxODowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZCBwYXJzZXIgdG8gaGFuZGxlIHNpbXBsZSBlbWJlZGRlZCBzdHJpbmdzIGluIG9pZHMKICAgICBhbmQgdG8gdHJhbnNsYXRlIHRoZW0gaW50byBvaWQgc2VnbWVudHMuCiAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CiAgIAoxOTk5LTEwLTIwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgogICAKMTk5OS0xMC0xNSAwNzowOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGRlZmF1bHRfc3RvcmUuYzoKCiAgIC0oZGVmYXVsdF9zdG9yZS5jLCBjYWxsYmFjay5jKSBmaXgKICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICByZXBvcnRlZCBieSBCZXJ0IEhvbHN0ZWluIDE1IE9jdCAxOTk5LgogICAKMTk5OS0xMC0xMyAwNzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBtaWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgLSBtYXN0ZXJfYWRtaW4uYywgc3lzdGVtX21pYi5oOiBpbmNsdWRlcyBmb3IgcHJvdG90eXBlcwogICAKMTk5OS0xMC0xMyAwMzo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KICAgCjE5OTktMTAtMTIgMDY6MDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KICAgCjE5OTktMTAtMTIgMDU6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBtaWIuYzoKCiAgIG1pYi5jOiBxdWlja19wcmludCBpcyBleHBvc2VkIGZvciBDTVVfQ09NUEFUSUJMRSBidWlsZHMuCiAgIGxjZF90aW1lLmM6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCiAgIAoxOTk5LTEwLTA3IDA5OjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0CiAgIAoxOTk5LTEwLTA3IDA4OjQyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5bY2hdKTogSW1wcm92ZSBhY2Nlc3NpYmlsaXR5IGZvciBzdWJhZ2VudHMKICAgCjE5OTktMTAtMDcgMDc6MjYgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIHNubXBkLmg6CgogICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgLSAgUmUtd3JpdGUgb2YgYWdlbnQgdHJhcCBoYW5kbGluZzoKICAgCVByb3Zpc2lvbiBmb3IgdjEgdHJhcHMgd2l0aCB2YXJiaW5kcwogICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAJUHJlbGltaW5hcnkgSU5GT1JNIHN1cHBvcnQKICAgCjE5OTktMTAtMDYgMTY6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgbm90IGxvc3QgZHVyaW5nIHN0b3JhZ2UgY3Jhc2hlcy4KICAgICAtIEZpeCBTTk1QdjMgZW5naW5lSUQgcHJvYmVzOiBQRFUncyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgTlVMTCB2YXJiaW5kbGlzdC4KICAgCjE5OTktMTAtMDYgMDg6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICAtIChmaXhwcm9jKTogbmV3IGNvbW1lbnRlZCB2ZXJzaW9uLgogICAKMTk5OS0xMC0wNSAyMjoyMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKICAgCjE5OTktMTAtMDUgMjI6MTggIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZml4ZXMgdG8gcmVwb3J0IGludmFsaWQgZW5naW5lSWQKICAgCjE5OTktMTAtMDUgMjE6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCiAgIAoxOTk5LTEwLTA1IDA3OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jLCBzdWJhZ2VudC5jCjoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKTogV29ya2luZyBTRVQgc3VwcG9ydAogICAKMTk5OS0xMC0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGFkZGVkIGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkoKS4KICAgCjE5OTktMTAtMDQgMTM6NTIgIG5iYQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgCWNvbmZpZ3VyZSBpbnRvIGJlbGlldmluZyB0aGVyZSBpcyBhIGluaXRfc3ViYWdlbnQgZnVuY3Rpb24uCiAgIAlSZW5hbWUgdG8gc3ViYWdlbnRfcHJlX2luaXQKICAgCjE5OTktMTAtMDQgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzU2VydmljZXMgY29uZmlndXJhYmxlLgogICAKMTk5OS0xMC0wNCAxMzozOCAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oCjoKCiAgIC0gdmFyaW91czogaW5jbHVkZSBhZGRpdGlvbnMgYW5kIGZpeGVzIHRvIGtpbGwgd2FybmluZ3MKICAgCjE5OTktMTAtMDQgMTE6NTIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAJYXJlIG5vdCBwcmVwYXJlZCBmb3IgaXQgKGF0IGxlYXN0IG9uIExpbnV4IGFuZCBOZXRCU0QpCiAgIAoxOTk5LTEwLTA0IDExOjUwICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOglhbHdheXMgdXNlICQoTUFLRSkgZm9yIG1ha2UgaW4gTWFrZWZpbGVzCiAgIAoxOTk5LTEwLTA0IDExOjQ4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBhcHBzL3NubXB0cmFwLmMKOgoKICAgLSAoc25tcF9hcGk/LCBpbnQ2NC4/IHNubXB0cmFwLmMpOiBhZGQgc29tZSBlcnJvciBjaGVja2luZyBmb3IgdmFyaWFibGVzCiAgIAoxOTk5LTEwLTA0IDEwOjIyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTEwLTA0IDEwOjE3ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgKOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmggIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuW2NoXQogICAgICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKICAgCjE5OTktMTAtMDQgMTA6MTUgIGRhdmVzCgogICAqIHNubXBsaWIvY2FsbGJhY2suaDoKCiAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCiAgIAoxOTk5LTEwLTA0IDA5OjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIC0gKG1pYl9tb2R1bGVzLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LltjaF0pOgogICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCiAgIAoxOTk5LTEwLTA0IDA5OjUzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBfdmFycy5oLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgICAtIEhhbmRsZSBNSUIgcmFuZ2UgcmVnaXN0cmF0aW9uLCBhbmQgY2xlYW4gdXAgd3JhcHBlciBpbnRlcmZhY2VzCiAgIAoxOTk5LTEwLTA0IDAzOjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oKToKICAgICAtIGNvbnNvbGlkYXRlIGRlZmluaXRpb25zIG9mIGRlZmF1bHQgTUlCIHJlZ2lzdHJhdGlvbiBwcmlvcml0eQogICAKMTk5OS0xMC0wMiAxNDoyOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgIC0gRml4IGEgcHJvYmxlbSB3aXRoIHJlLXVzZWQgUERVIHN0cnVjdHVyZXMgYmVpbmcgZnJlZWQgdHdpY2UuCiAgIAoxOTk5LTEwLTAxIDA5OjQ4ICBkYXZlcwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogRml4IGluY29tcGF0YWJpbGl0eSBpbiBhZ2VudCBsaWJyYXJ5IG5hbWVzCiAgIAoxOTk5LTA5LTMwIDAxOjA5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAobWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyk6CiAgICAgLSBwcm90ZWN0IGFnYWluc3QgTlVMTCB1dG1wIGZpbGUgKGZyb20gRmFicmljZSBEdXByZSkKICAgCjE5OTktMDktMjkgMjM6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvaHB1eC5jOgoKICAgUmVtb3ZlIHVudXNlZCBmaWxlLi4gc25tcGxpYi9ocHV4LmMKICAgCjE5OTktMDktMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICAtIChtaWJfbW9kdWxlcy5jKTogaW5jbHVkZSBuZXRpbmV0L2luLmgKICAgCjE5OTktMDktMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KICAgCjE5OTktMDktMjkgMTY6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlZCBleHRyYSBcbi4KICAgCjE5OTktMDktMjkgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KICAgCjE5OTktMDktMjkgMTY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogLVdhbGwgZml4ZXMgYW5kIGZvdW5kIGEgbWlzc2luZyB9LgogICAKMTk5OS0wOS0yOSAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oOgoKICAgLSAoY2xpZW50LmgpOiBkZWZpbmUgREVGQVVMVF9NSUJfUFJJT1JJVFkgdG8gMjU1LgogICAKMTk5OS0wOS0yOSAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCiAgIAoxOTk5LTA5LTI5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIG5ldyBleHRyYWN0aW9uIGFuZCBmcmVlaW5nIGZ1bmN0aW9ucy4KICAgICAtIGJ1ZyBmaXgsIG1pc3NpbmcgYSBtYWxsb2Mgc2l6ZSBieSBvbmUgKGVsZWN0cmljIGZlbmNlIGlzIHZlcnkgY29vbCkuCiAgIAoxOTk5LTA5LTI5IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgogICAKMTk5OS0wOS0yOSAxNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgogICAKMTk5OS0wOS0yOSAxNDozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUm9idXN0IGNvcHkgb2YgaW5mb3JtYXRpb24gdG8gdHJlZSwgaW1wb3J0X2xpc3QsIGRpc3BsYXkgaGludHMuCiAgIAoxOTk5LTA5LTI5IDEyOjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLAogICBwcm90b2NvbC5oLCBzdWJhZ2VudC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOiAgQXNzb3J0ZWQgaW1wcm92ZW1lbnRzIQogICAKMTk5OS0wOS0yOSAxMTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKTogQ2hhbmdlIGluIE1JQiByZWdpc3RyYXRpb24gaW50ZXJmYWNlCiAgIAoxOTk5LTA5LTI5IDExOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKToKICAgICAtIE1vdmUgc2V0dGluZyBhZ2VudCBzdGFydCB0aW1lIHRvIGVhcmxpZXIgaW4gdGhlIGluaXRpYWxpc2F0aW9uIHNlcXVlbmNlCiAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCiAgIAoxOTk5LTA5LTI5IDExOjQzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlzaW9uIHRvIHVucmVnaXN0ZXIgTUlCcyBieSBzZXNzaW9uCiAgIAoxOTk5LTA5LTI5IDExOjM4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKICAgCjE5OTktMDktMjkgMTE6MzYgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgIC0gQ29ycmVjdGx5IGhhbmRsZSB1bnJlZ2lzdGVyaW5nIE1JQiByZWdpb25zCiAgIAoxOTk5LTA5LTI5IDExOjIzICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKICAgCjE5OTktMDktMjkgMTE6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvOiBtdF9zdXBwb3J0LmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKOgoKICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKICAgCjE5OTktMDktMjkgMTE6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKICAgCjE5OTktMDktMjggMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgKLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgIHlvdSBzaG91bGRuJ3QgbmVlZCBsaWJ1Y2RtaWJzIHRvIHVzZSBsaWJ1Y2RhZ2VudC4KICAgCjE5OTktMDktMjcgMTY6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBPcHBzOiBEU19MSUJfRE9OVF9SRUFEX0NPTkZJR1MgbmVlZGVkIGFuICEuCiAgIAoxOTk5LTA5LTIyIDEyOjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gSW1wcm92ZWQgZXJyb3Igc3RhdHVzIGFnZ3JlZ2F0aW9uLgogICAKMTk5OS0wOS0yMiAxMDowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEltcHJvdmVkIEFnZW50WCByZXNwb25zZSBoYW5kbGluZwogICAKMTk5OS0wOS0yMiAxMDowMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBFbnN1cmUgcmVnaXN0cnkgaXMgaW5pdGlhbGlzZWQgY29ycmVjdGx5IG9uIHN1YmFnZW50cwogICAKMTk5OS0wOS0yMiAwOTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiByZW1vdmUgcmVkdW5kYW50IHJvdXRpbmVzCiAgIAoxOTk5LTA5LTIyIDA5OjU0ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLAogICB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgQ2hhbmdlIHRoZSB3YXkgdGhlIE1JQiByZWdpc3RyeSBoYW5kbGVzIHJlZ2lzdGVyZWQgcmFuZ2VzLgogICAgIFRoaXMgc2hvdWxkIHdvcmsgbW9yZSByZWxpYWJseSAoYXMgd2VsbCBhcyBiZWluZyByYXRoZXIgc2ltcGxlciwgSU1ITykKICAgCjE5OTktMDktMjIgMDk6MzUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgLSBFbnN1cmUgbG9jYWwgc3lzT1JUYWJsZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgc3ViYWdlbnQgdmVyc2lvbnMKICAgCjE5OTktMDktMjIgMDk6MzMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aWRlIG1ldGhvZCBmb3IgcHJpb3JpdGlzZWQgcmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA5LTIyIDA5OjMxICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyk6IHN0dXBpZCB0eXBvCiAgIAoxOTk5LTA5LTIyIDA5OjI3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCiAgIAoxOTk5LTA5LTIxIDEwOjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShtaWIuYykgdW5kbyBlcnJvbmVvdXMgY2hhbmdlIHRvIGluaXRfbWliICh0aGFua3MgTkIhKQogICAKMTk5OS0wOS0yMSAwOTozMiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCiAgIAoxOTk5LTA5LTIxIDA5OjI1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jKTogSGFuZGxlIHBhcnNpbmcgbnVsbC1sZW5ndGggdmFyaWFibGVzCiAgIAoxOTk5LTA5LTIxIDA5OjIxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKICAgCjE5OTktMDktMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgogICAKMTk5OS0wOS0xNyAxMTo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgbWFrZSBtb2R1bGVfbWFwKiBhbmQgdG9rZW5zIHN0cnVjdHVyZXMgc3RhdGljIChvbmx5IHVzZWQgaW4gcGFyc2UuYyA/KQogICAKMTk5OS0wOS0xNyAxMToyNCAgbXNsaWZjYWsKCiAgICogRkFRLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC1yZW1vdmUgb2xkLXN0eWxlIGluaXQgZm9yIHJlcGxhY2UgbWliIGZlYXR1cmUuCiAgIAoxOTk5LTA5LTE3IDExOjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgogICAKMTk5OS0wOS0xNyAwNzoxNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYXBpLjM6CgogICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgLSBmaXggY29tbWVudHMuCiAgIAoxOTk5LTA5LTE2IDE0OjE2ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgogICAKMTk5OS0wOS0xNSAxMTozMCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL210X3N1cHBvcnQuYywKICAgc25tcGxpYi9tdF9zdXBwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpbmUgdHVuaW5nIG10IHN1cHBvcnQKICAgCjE5OTktMDktMTUgMDk6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMwosIHNubXBfb3Blbi4zLCBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zCiwgc25tcF9zZW5kLjMsIHNubXBfc2Vzc19hc3luY19zZW5kLjMsCiAgIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywgc25tcF9zZXNzX2luaXQuMwosIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLAogICBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsIHNubXBfc2Vzc19zZXNzaW9uLjMsCiAgIHNubXBfdGltZW91dC4zOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zLCBzbm1wX3NlbmQuMywKICAgICBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsCiAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLAogICAgIHNubXBfc2Vzc19zZXNzaW9uLjMsIHNubXBfdGltZW91dC4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgogICAKMTk5OS0wOS0xNSAwNjowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIGluY2x1ZGUgbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oIGZvciBiZW5lZml0IG9mIG1pYl9tb2R1bGVfZG90X2NvbmYuaAogICAKMTk5OS0wOS0xNCAxMzoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UuYyAtIGFub3RoZXIgZml4IGZvciBub2RlOiBjb25zaWRlciBOVUxMIG5hbWUgb3IgTlVMTCBwYXJlbnQKICAgCjE5OTktMDktMTQgMTM6MDAgIG1hcnoKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLltjaF0pOiBmaXggc3B1cmlvdXMgZXJyb3IgbWVzc2FnZSB3aGVuIHNubXBfcGFyc2Vfb2lkIGZhaWxzCiAgIAoxOTk5LTA5LTE0IDA5OjUzICBtc2xpZmNhawoKICAgKiBGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaAo6CgogICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCiAgIAoxOTk5LTA5LTEzIDIwOjIwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIHJlLWFzc2VydCBOaWVscycgcGF0Y2ggdG8gc25tcF9zZW5kIHRvIGZyZWUgdjIvdjEgVHJhcC1QRFVzCiAgIAoxOTk5LTA5LTEzIDE1OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMKLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgIHN1YmFnZW50LmgsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiBhZ2VudCBjaHVyY2ggYW5kIHN0YXRlOgogICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgIC0gZ2V0IHJpZCBvZiBhbGwgaW5zdGFuY2VzIG9mIFVTSU5HXyBpbiBsaWJhZ2VudCBjb2RlLgogICAKMTk5OS0wOS0xMiAyMjowMCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIHNubXBfaW1wbC5oOiByZW1vdmVkIHNvbWUgdW51c2VkL3VubmVlZGVkIGRlZmluZXMvc3RydWN0cwogICAKMTk5OS0wOS0xMiAyMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KICAgCjE5OTktMDktMTIgMjE6NTggIG5iYQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgogICAKMTk5OS0wOS0xMiAyMTo1NyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYWdlbnQvKiwgc25tcGxpYi8qOiBtYWxsb2MgZml4ZXMsIHNvbWUgcHJvdm9rZWQgYnkgdGhlIGNvcnJlY3RlZAogICAJc25tcF9zZW5kIHNlbWFudGljcy4KICAgCjE5OTktMDktMTIgMjE6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gdmFyX3JvdXRlLmM6IExpbnV4IGNsZWFudXAuIFJlcXVpcmVkIGZvciBMaW51eC9TUEFSQwogICAKMTk5OS0wOS0wOSAxMzo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLShtaWIuYywgcGFyc2UuYykgbWliLmMgcHJpbnRfdHJlZV9ub2RlIHRlc3QgZGlzcGxheSBudWxsIHR5cGUgd2l0aCByYW5nZQogICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgogICAKMTk5OS0wOS0wOSAwMjozMSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCB3aW4zMi9jb25maWcuaDoKCiAgIC0oKmNvbmZpZyopIHR1cm4gb24gcmVzb3VyY2UgbG9ja2luZyB3aXRoIC0tZW5hYmxlLXJlZW50cmFudC4KICAgCjE5OTktMDktMDkgMDI6MjEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgLSh3aW5zdHViLmMpIEhhY2sgdG8gYWxsb3cgc25tcG5ldHN0YXQgLWEgdG8gd29yayBvbiBBSVg0IChzaWMpLgogICAKMTk5OS0wOS0wOCAyMjozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCiAgIAoxOTk5LTA5LTA4IDIyOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSB2YXJfc211eF93cml0ZSBmaXhlZCBwZXIgTWlrZSBNaWNoYXVkIGFuZCBOaWNrIEFtYXRvCiAgIAoxOTk5LTA5LTA4IDE3OjUyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbXRfc3VwcG9ydC5jLCBtdF9zdXBwb3J0Lmg6CgogICAtKG10X3N1cHBvcnQuKikgT3JpZ2luYWwgYnkgTWFya2t1IExhdWtrYW5lbiwgY2hhbmdlcyBieSBNLiBTbGlmY2FrCiAgIAoxOTk5LTA5LTA4IDE3OjQ4ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCiAgIAoxOTk5LTA5LTA4IDE3OjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvaWNtcC5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsIG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYzoKCiAgIG1pYmluY2wuaCwgbWliZ3JvdXAvbWliSUkvKiAtIGZpeHVwIGZvciBDeWdXaW4zMiBidWlsZAogICAKMTk5OS0wOS0wOCAxMzowNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICAtKHNubXBsaWIvc25tcF9jbGllbnQuKikgYWRkIHNubXBfc3BsaXRfcGR1LCBzbm1wX3ZhcmJpbmRfbGVuIG1ldGhvZHMuCiAgIAoxOTk5LTA5LTA4IDEzOjAwICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KICAgCjE5OTktMDktMDggMDc6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhcHBzL3NubXB0cmFwZC5jOiBmaXggYXJndW1lbnQgcHJvY2Vzc2luZyAoLWxkIGFuZCBzaW1pbGFyKQogICAKMTk5OS0wOS0wOCAwNzo1MSAgbmJhCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gc25tcGQuMS5kZWY6IGZpeCBhIGZvcm1hdHRpbmcgcHJvYmxlbQogICAKMTk5OS0wOS0wOCAwNzo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBhZ2VudHgvc3ViYWdlbnQuYywKICAgbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAodmFyaW91cyk6IGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0wOS0wOCAwNzo0OCAgbmJhCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gdmFyX3N0cnVjdC5oOiB0aGUgQWdlbnR4IGNvZGUgdXNlcyB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSB0eXBlLgogICAKMTk5OS0wOS0wOCAwNzo0NiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9hcGkuaDogbW92ZSBpbmNsdXNpb24gcHJvdGVjdGlvbiB0byB0aGUgcmVhbCBiZWdpbm5pbmcvZW5kIG9mIHRoZSBmaWxlCiAgIAoxOTk5LTA5LTA4IDA3OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIChjb25maWd1cmUuaW4sIGxvYWRhdmUuYyk6IFNvbGFyaXMgMi43IGhhcyBnZXRsb2FkYXZnIHByb3RvdHlwZQogICAKMTk5OS0wOS0wOCAwNToxNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaW5jbHVkZSByZWFkX2NvbmZpZy5oCiAgIAoxOTk5LTA5LTA3IDIwOjE5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBzbm1wdHJhcC5jIC0gcmV3b3JrIGZpeCBidWcgIzU0IChtaXNzZWQgZWxzZSkuCiAgIAoxOTk5LTA5LTA3IDIwOjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBtYW4vc25tcF9hcGkuMywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShhZ2VudF90cmFwLmMsc25tcHRyYXAuYyxzbm1wX2FwaS5bM2NdKSAtIHNubXBfZnJlZV9wZHUgZml4IEJ1ZyAjNTQgcGVyIE5pZWxzIEIuCiAgIC0oc25tcG5ldHN0YXQvaWYuYykgLSBmaXggZm9yIEdFVE5FWFQgcGVyIE5pZWxzIEIuCiAgIAoxOTk5LTA5LTA3IDE1OjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIGZpeCBVbmxpbmtlZCBPSUQgcHJpbnQgd2hlbiBvYmplY3QgaWRlbnRpZmllciBoYXMgbm8gcGFyZW50LgogICAKMTk5OS0wOS0wNyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCiAgIAoxOTk5LTA5LTA3IDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KICAgCjE5OTktMDktMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgKHdpbjMyL2NvbmZpZy5oKSAtIHNldCBTTk1QQ09ORlBBVEggdG8gc3VjY2VlZCBjb21waWxlOwogICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgogICAKMTk5OS0wOS0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oOgoKICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgogICAKMTk5OS0wOS0wNyAxNToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2My5jIC0gc2lsZW5jZSB0eXBlIHdhcm5pbmcgZnJvbSBNU1ZDKysuCiAgIAoxOTk5LTA5LTA3IDE0OjQ3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICBhbGxvdyBsYXJnZXIgREVTQ1JJUFRJT04gY2xhdXNlcyBbbWF4IDgxOTJdLgogICAKMTk5OS0wOS0wMyAxNTowMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbW9yZSBCU0RJIHN5c3RlbSB2ZXJzaW9ucyBsaXN0ZWQuCiAgIAoxOTk5LTA5LTAzIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgZmFsbCBvZmYgdGhlIGVuZCBvZiB0aGUgc2VhcmNoIHRyZWUuCiAgIAoxOTk5LTA5LTAzIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoc25tcGxpYi9NYWtlZmlsZS5pbik6IGluc3RhbGwgbW9yZSBsaWJyYXJ5IGhlYWRlcnMuCiAgIAoxOTk5LTA5LTAzIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAtIG1rZGlyaGVpciBvbiBuZWVkZWQgbmV3IGluc3RhbGxhdGlvbiBkaXJlY3Rvcmllcy4KICAgCjE5OTktMDktMDMgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KICAgCjE5OTktMDktMDMgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oCjoKCiAgIC0gKGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaCk6IHJlbW92ZWQuIE5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk5LTA5LTAyIDA4OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBvcHBzLiAgRm9yZ290IGEgc2h1dGRvd24gbmFtZSBjaGFuZ2UgaW5zdGFuY2UuCiAgIAoxOTk5LTA5LTAyIDA3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBzaHV0ZG93bl9zdWJhZ2VudCAtPiBzdWJhZ2VudF9zaHV0ZG93biBzbyBjb25maWd1cmUKICAgICBkb2Vzbid0IGZpbmQgaXQuCiAgIAoxOTk5LTA5LTAyIDA2OjM4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQogICAKMTk5OS0wOC0zMSAwOToyNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLShhZ2VudF90cmFwLmMpIGFsd2F5cyBmcmVlIFBEVSBhZnRlciBzbm1wX3NlbmQuCiAgIAoxOTk5LTA4LTMxIDA4OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgogICAKMTk5OS0wOC0zMCAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYyk6IHlldCBtb3JlIGRlYnVnZ2luZy4KICAgCjE5OTktMDgtMzAgMDk6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXIuYywKICAgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywgc3ViYWdlbnQuYzoKCiAgIC0gKGNsaWVudC5jLCBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywgc3ViYWdlbnQuYyk6CiAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KICAgCjE5OTktMDgtMzAgMDk6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvZHNfYWdlbnQuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgICAgYWdlbnRfdHJhcC5oLCBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmMsCiAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAtIHJlc3RydWN0dXJlIHRoZSBhZ2VudCBpbnRvIHR3byBwaWVjZXM6IGEgbGlicmFyeSBhbmQgYSBhcHBsaWNhdGlvbi4KICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAtIG1hbnkgcGFyYW1ldGVycyBhcmUgbm93IGNvbnRyb2xsZWQgYnkgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MKICAgICAgICAgdG8gaGVscCByZWxpZXZlIGNvbXBpbGUgdGltZSBiaW5kaW5ncy4KICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgIC0gYWRkIGEgbmV3IHBsYWNlIGZvciB0cmFwIHNwZWNpZmljIGFnZW50IGNvZGUgKGFnZW50X3RyYXAuW2NoXSkuCiAgICAgLSBwcm9iYWJseSBvdGhlciB0aGluZ3MgSSd2ZSBmb3Jnb3R0ZW4gdGhhdCBJIGRpZC4KICAgCjE5OTktMDgtMjggMDc6MjkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAtIGFkZCAvZXRjL3NubXAgdG8gZGVmYXVsdCBjb25mIGZpbGUgcGF0aCB0byBtYWtlIFJlZEhhdCBoYXBweS4KICAgCjE5OTktMDgtMjggMDc6MTkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCiAgIAoxOTk5LTA4LTI3IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jCiwgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIFN1c2FubmUgT3N0ZWQgcG9pbnRlZCBvdXQgYSBsYWNrIG9mICNpZiBIQVZFX1NZU19QQVJBTV9ILgogICAKMTk5OS0wOC0yNyAwODowMyAgbXNsaWZjYWsKCiAgICogVE9ETzoKCiAgIEhvd2FyZCBTcGluZGVsIHN1Z2dlc3RzIGFuIEFQSSBmb3IgdHJhcHMgd2l0aCBwYXNzX3BlcnNpc3QuCiAgIAoxOTk5LTA4LTI3IDA3OjM1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgogICAKMTk5OS0wOC0yNiAxMzo0MCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgZG9uJ3QgYnVpbHQgdGFyZ2V0cyB0aGF0IGFyZSBubyBsb25nZXIgdXNlZAogICAKMTk5OS0wOC0yNiAxMzoxOCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0odGVzdGluZy9SVU5URVNUUykgaW1wcm92ZWQgUEFUSCBzZXQKICAgCjE5OTktMDgtMjQgMTc6NDMgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIG5vIG5lZWQgdG8gYnVpbGQgdGFyZ2V0cyBpbiB0ZXN0IHJ1bGUuCiAgIAoxOTk5LTA4LTI0IDE3OjM5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLShSVU5URVNUUykgZXhwb3J0IFBBVEggYmVmb3JlIHVzZQogICAKMTk5OS0wOC0yNCAxNzoxNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQogICAKMTk5OS0wOC0yNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjAuMQogICAKMTk5OS0wOC0yNCAxNjo0OSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVDIuc2gsCiAgIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3Rfa3VsLnNoOgoKICAgLSh0ZXN0aW5nLyopIHJ1biB0ZXN0cyB3aGVuIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZCwgYW5kIHdoZW4KICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KICAgCjE5OTktMDgtMjQgMTY6MDUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCiAgIAoxOTk5LTA4LTI0IDE2OjAxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IDQuMC4xIHVwZGF0ZQogICAKMTk5OS0wOC0yNCAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCiAgIAoxOTk5LTA4LTI0IDE1OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KICAgCjE5OTktMDgtMjQgMTQ6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zd3J1bi5jLCBtaWJJSS9pY21wLmMsCiAgIG1pYklJL2lwLmMsIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvcHJvYy5jOgoKICAgLShob3N0L2hyX3N3cnVuO21pYklJL2ljbXAsaXA7dWNkLXNubXAvZGlzayxwcm9jKSBsb2dfcGVycm9yIC0tPiBzbm1wX2xvZ19wZXJyb3IKICAgCjE5OTktMDgtMjQgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYWxsX3N5c3RlbS5oOgoKICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCiAgIAoxOTk5LTA4LTI0IDE0OjA1ICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0odG9wL01ha2VmaWxlLmluKSAtIHJlbW92ZSBtb3JlIGdlbmVyYXRlZCBmaWxlcyB3aXRoIGRpc3RjbGVhbiBydWxlLgogICAKMTk5OS0wOC0yNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZW1vdmUgc25tcHYzIHN1cHBvcnQ6LSkKICAgCjE5OTktMDgtMjQgMTM6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgLSBwcm92aWRlIGRlZlZlcnNpb24gdG9rZW4gc3VwcG9ydCBpbiBzbm1wLmNvbmYgKHNvcnQgb2YgaGFja2lzaCkuCiAgIAoxOTk5LTA4LTI0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGNoZWNrIGZvciBudWxsIHJlc3BvbnNlIHBvaW50ZXIuCiAgIAoxOTk5LTA4LTI0IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgogICAKMTk5OS0wOC0yNCAxMDoyNSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgogICAKMTk5OS0wOC0yNCAwNjoxOSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBULmMsIGV0aW1ldGVzdC5jLAogICBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jOgoKICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwogICAKMTk5OS0wOC0yNCAwNToxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KICAgCjE5OTktMDgtMjQgMDQ6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCiAgIAoxOTk5LTA4LTIzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KICAgCjE5OTktMDgtMjMgMTY6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMCApCiAgIAoxOTk5LTA4LTIzIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IHJlbW92ZSB2ZXJzaW9uIHNwZWNpZmljIGluZm9ybWF0aW9uCiAgIAoxOTk5LTA4LTIzIDE2OjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsOgoKICAgLSAoVDAyOHNubXB2M2dldGZhaWwpOiBzbm1wdjMgZ2V0IGZhaWx1cmUgdGVzdC4KICAgCjE5OTktMDgtMjMgMTY6MDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHZlcnNpb24gdXBkYXRlCiAgIAoxOTk5LTA4LTIzIDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIQUNLISBmaXh1cCBzaG9ydCBsZW5ndGggKGZpcnN0IHB1dCBjb3JyZWN0IGNvbW11bml0eSBzdHJpbmcgaW4gcGR1LT4gKS4KICAgCjE5OTktMDgtMjMgMTQ6MDIgIG1zbGlmY2FrCgogICAqIEZBUSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVzY3JpYmUgVVNFX0FTTl9TSE9SVF9MRU4gaW4gRkFRLCBhbmQgaW1wbGVtZW50IGluIF9zbm1wX2J1aWxkLgogICAKMTk5OS0wOC0yMyAxMzo1NCAgbmJhCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wX3ZhcnMuYzogbW92ZSBzb21lIC12IGxvZ2dpbmcgdG8gYSBtb3JlIHJhdGlvbmFsCiAgIAlwbGFjZS4KICAgCjE5OTktMDgtMjMgMTI6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAocHJvdG9jb2wuYyk6IGFsbG93IE5VTEwgc3RyaW5ncyBpbiBhZ2VudFggcGFja2V0cy4KICAgCjE5OTktMDgtMjMgMDk6MDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVGVzdCBwb2ludGVyIGJlZm9yZSBkZXJlZmVyZW5jZSBpbiB1c21fZnJlZV91c2VyCiAgIAoxOTk5LTA4LTIzIDA5OjAyICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBTcGVsbCBjaGVjazogc2ltaWxhcgogICAKMTk5OS0wOC0yMyAwOTowMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzCiAgIAoxOTk5LTA4LTIzIDA3OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGFuc2kgbWVudGlvbmVkLgogICAKMTk5OS0wOC0yMyAwNjoxNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgY29uZmlnX2xvYWRfbWliCiAgIAoxOTk5LTA4LTIyIDIzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSBhZ2VudHgvbWFzdGVyX2FkbWluLmM6IGZhaWx1cmUgd2hlbiBjbG9zaW5nIGZpcnN0IGFnZW50cyBzZXNzaW9uCiAgIAkodW5pbml0aWFsaXplZCB2YXJpYWJsZSkuCiAgIAoxOTk5LTA4LTIyIDE3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogdmVyc2lvbiAtPiB1X2xvbmcuCiAgIAoxOTk5LTA4LTIyIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wOC0yMiAxNzo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLXdpdGhvdXQtZHVtbXktdmFsdWVzIGlzIGRlZmF1bHQgYWdhaW4uCiAgICAgLSBjbGVhbnVwIG9mIC0taGVscCBzdHVmZi4KICAgICAtIGZpeCBvZiBwZXJpc3RlbnQgZGlyZWN0b3J5IGNyZWF0aW9uLgogICAKMTk5OS0wOC0yMiAxNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy86IElQRldDSEFJTlMtTUlCLnR4dCwgUkVBRE1FCiwgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLAogICBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsIGxpYmlwZndjLmg6CgogICAtIChpcGZjaGFpbnMpOiByZW1vdmVkIGZyb20gZGlzdHJpYnV0aW9uLiAgTmV3ZXIgb25lIGluIGZ0cCdzIGNvbnRyaWIgZGlyLgogICAKMTk5OS0wOC0yMCAxNzoxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTcgKQogICAKMTk5OS0wOC0yMCAxNzowOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBsYXN0IG1pbnV0ZSBjaGFuZ2VzCiAgIAoxOTk5LTA4LTIwIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgsIGFzbjEuYyk6IDY0Yml0IGNsZWFudXAuCiAgIAoxOTk5LTA4LTIwIDEzOjU2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gKHNubXAuY29uZi41LmRlZiwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2xvZ2dpbmcuYyk6CiAgICAgLSB0dXJuIG9mZiB0aW1lIHN0YW1wIGxvZ2dpbmcgYnkgZGVmYXVsdC4gIEl0IG11c3QgYmUgZXhwbGljaXRseQogICAgICAgcmVxdWVzdGVkIGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0byB0dXJuIGl0IG9uLgogICAgICAgKHRoZSByZWFzb24gaXMgdGhhdCBhIGxvdCBvZiBsb2dnaW5nIGlzIGluY3JlbWVudGFsIGluIG5hdHVyZSBhbmQKICAgICAgIGlzIG5vdCBsaW5lIGJ1ZmZlcmVkIGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBsb2dnaW5nIHJvdXRpbmVzLgogICAgICAgVGhlIG90aGVyIHNvbHV0aW9uIGlzIHRvIGhhdmUgdGhlIGxvZ2dpbmcgcm91dGluZXMgZGV0ZWN0IHdoZW4gdG8KICAgICAgIHByaW50IHRpbWVzdGFtcHMgYnkgd2F0Y2hpbmcgb3V0IGZvciBcbidzLiAgQnV0LCBub3QgdGhpcyByb3VuZC4KICAgCjE5OTktMDgtMjAgMTM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAtIG1ha2UgbG9nZ2luZyBvZiB0aW1lc3RhbXBzIG9wdGlvbmFsIGJ5IGEgc25tcC5jb25mIGRpcmVjdGl2ZS4KICAgCjE5OTktMDgtMjAgMDM6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIGFnZW50eC8qOiB2YXJpb3VzIHByb3RvdHlwZSBmaXhlcywgdG8ga2VlcCBudW1iZXIgb2Ygd2FybmluZ3MgZG93bgogICAKMTk5OS0wOC0xOSAxNjowOSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jOgoKICAgLSAoc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMpOiBQYXRjaCBmcm9tIGRsZW5nZWxAaG9tZS5jb206CiAgICAgLSBjaGVjayBhcmd1bWVudCBjb3VudCBmb3IgbWluaW11bSBudW1iZXIuCiAgIAoxOTk5LTA4LTE5IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfYXBpLj8sIHNubXBkLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOiByZWluc3RhdGUgYWdlbnRfYWRkciBpbgogICAJdGhlIHBkdSBzdHJ1Y3R1cmUgKHVzZWQgZm9yIHYxIHRyYXBzKS4KICAgCjE5OTktMDgtMTkgMTA6NDAgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91czogZnJvbSBzbm1wX2xvZ19wZXJyb3IuCiAgIAlMb2cgd2hlbiBzbm1wZCByZWNvbmZpZ3VyZXMgZm9sbG93aW5nIGEgU0lHSFVQCiAgIAoxOTk5LTA4LTE5IDEwOjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBcbiBmcm9tIHNubXBfbG9nX3BlcnJvciBjYWxscy4KICAgCjE5OTktMDgtMTkgMTA6MzggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6CWNvcnJlY2x5IGNhbGwgcHJlLXBhcnNlIGhvb2ssIGFsc28gd2hlbiBub3QgZGVidWdnaW5nCiAgIAkodGhpcyBraWxsZWQgdGhlIGxpYndyYXAgY2hlY2sgaW4gc25tcGQpCiAgIAoxOTk5LTA4LTE5IDAyOjM1ICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBzbm1wX2xvZ2dpbmcuYywgYWdlbnQvdmFyaW91czogcmVpbnN0YXRlIC1hIGFuZCAtViBsb2dnaW5nIChhbG1vc3QpLgogICAJdGltZXN0YW1wIGZpbGUgYW5kIHN0ZGVyciBsb2dnaW5nLgogICAKMTk5OS0wOC0xOSAwMjozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiByZW1vdmUgc29tZSBsZWZ0IG92ZXIgZGVidWcgb3V0cHV0CiAgIAoxOTk5LTA4LTE4IDA5OjMwICBuYmEKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKG1hbnkpOgljaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucyB0byBiZSBzbm1wXyoKICAgCWRlZmF1bHQgZG9fc3RkZXJyX2xvZ2dpbmcgdG8gMS4KICAgCjE5OTktMDgtMTggMDk6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgLSBpbnRlcmZhY2VzLj86IHVwZGF0ZXMgZm9yIExpbnV4IHRvIGhhbmRsZSBsYXJnZSBjb3VudGVycyBhbmQgdmlydHVhbAogICAJaW50ZXJmYWNlcy4KICAgCjE5OTktMDgtMTggMDI6NTEgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsCiAgIHNubXBkLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIHNubXBkLmMsIGFnZW50X3JlYWRfY29uZmlnLj8sIHZlcnNpb25pbmZvLmM6IG1vdmUgdGhlIHJlY29uZmlndXJhdGlvbgogICAJb3V0c2lkZSB0aGUgc2lnbmFsIGhhbmRsZXIuCiAgIAoxOTk5LTA4LTE4IDAyOjQwICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFnZW50L3NubXBkLmM6CW1vdmUgdGhlIHRlcm1pbmF0aW9uIHByb2Nlc3NpbmcgZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKICAgCXRvIGFmdGVyIHRoZSBtYWluIGxvb3AgaGFzIHRlcm1pbmF0ZWQuCiAgIAoxOTk5LTA4LTE2IDE1OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIC0gKFQxMDBhZ2VudGh1cCk6IGFkZGVkIG5ldyBhZ2VudCBjYXBhYmlsaXR5IHRlc3QgdG8gdGVzdCBraWxsIC1IVVAuCiAgIAoxOTk5LTA4LTE2IDE0OjU5ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBzbm1wbmV0c3RhdC9tYWluLmM6IGVuYWJsZV9zdGRlcnJsb2coKSBzbyB0aGF0IHdlIGdldCBhbiBlcnJvciBtZXNzYWdlCiAgIAlmb3IgYmFkIGhvc3QgbmFtZXMuCiAgIAoxOTk5LTA4LTE2IDE0OjU4ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzogYWxsb3cgLWkgYW5kIC1vIG91dHB1dHMgZXZlbiB3aXRoIGluY29tcGxldGUgcmVzcG9uc2VzCiAgIAlmcm9tIHNubXBkIChzdWNoIGFzIExpbnV4IHRoYXQgZG9lcyBub3QgcmV0dXJuIGlmSW5OVUNhc3RQa3RzCiAgIAl3aXRoIHRoZSBuZXcgRFVNTVkgc2V0dXApCiAgIAoxOTk5LTA4LTEzIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU2ICkKICAgCjE5OTktMDgtMTMgMTY6MDUgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IHJlbW92ZSB0aGUgSVNTVUVTIGZpbGUgZm9yIHJlbGVhc2VzLgogICAKMTk5OS0wOC0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gKFRFU1RDT05GLnNoKTogc3RvcmUgdGhlIHBlcmlzdGVudCBkYXRhIGluIGEgdGVtcG9yYXJ5IGZpbGUuICByZWFsbHkuCiAgIAoxOTk5LTA4LTEzIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbAosIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOgogICAgIC0gZml4ZWQgdG8gY2hlY2sgZm9yICJub3N1Y2giIGVycm9ycyBhY3R1YWxseSByZXR1cm5lZC4KICAgICAtIHNob3J0ZW5lZCB0aGUgc25tcHVzbSB0ZXN0IGRlc2NyaXB0aW9uLgogICAKMTk5OS0wOC0xMyAxNTozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IHJlbW92ZSBtaWJfbW9kdWxlX2xvYWRzLmguCiAgIAoxOTk5LTA4LTEzIDE1OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGNvbmZpZ19sb2FkX21pYiBwYXJzaW5nLgogICAKMTk5OS0wOC0xMyAxMjo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHByb3Blcmx5IGRvIHdoYXQgLS13aXRob3V0LWR1bW15LXZhbHVlcwogICAgIHNob3VsZCBkby4KICAgCjE5OTktMDgtMTMgMTI6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgdmFyX3JvdXRlLmMgLSAjaWZkZWYgTk9fRFVNTVkgLS0+ICNpZiBOT19EVU1NWSAobGlrZSB0aGUgb3RoZXIgdXNlcykuCiAgIAoxOTk5LTA4LTEzIDExOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgZG8gY2FjaGluZyBmb3IgTk9fRFVNTVlfVkFMVUVTLgogICAKMTk5OS0wOC0xMyAxMToxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2RldmljZS5jLCBob3N0L2hyX3ByaW50LmMsCiAgIGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYwosIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvYXQuYwosIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywKICAgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pYklJL3Zhcl9yb3V0ZS5jOgoKICAgKGhvc3QvaHJfZGV2aWNlLmMsaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYyxob3N0L2hyX3N0b3JhZ2UuYywKICAgaG9zdC9ocl9zd2luc3QuYyxob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsbWliSUkvYXQuYywKICAgbWliSUkvaW50ZXJmYWNlcy5jLG1pYklJL2lwLmMsIG1pYklJL3N5c3RlbV9taWIuYyxtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmMsbWliSUkvdmFyX3JvdXRlLmMpIC0gI2lmIE5PX0RVTU1ZX1ZBTFVFUyAoaGVscCBvdXQgY29uZmlndXJlKQogICAKMTk5OS0wOC0xMyAwOTozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IHVzZSBOT19EVU1NWV9WQUxVRVMgYnkgZGVmYXVsdC4KICAgCjE5OTktMDgtMTMgMDc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA4LTEzIDA3OjEyICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICAtIChORVdTLCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTktMDgtMTMgMDc6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiAibWFrZSB0ZXN0IiBpbiB0b3AgbGV2ZWwgTWFrZWZpbGUuCiAgIAoxOTk5LTA4LTEzIDAyOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmgsIG1pc2MvaXBmd2FjYy5jLCBtaXNjL2lwZndhY2MuaAosIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc211eC9zbm1wX2JncC5jCiwgc211eC9zbm1wX2JncC5oLCBzbXV4L3NubXBfb3NwZi5jLAogICBzbXV4L3NubXBfb3NwZi5oLCBzbXV4L3NubXBfcmlwMi5jLCBzbXV4L3NubXBfcmlwMi5oCjoKCiAgIC0gKGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuW2NoXQogICAgICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuW2NoXSBtaXNjL2lwZndhY2MuW2NoXQogICAgICB0YXJnZXQvc25tcFRhcmdldHtBZGRyLFBhcmFtc31FbnRyeS5bY2hdCiAgICAgIHNtdXgvc25tcF8qLltjaF0pOgogICAgICAtIFJlZ2lzdGVyIG1vZHVsZXMgZHluYW1pY2FsbHkgYXQgcnVuLXRpbWUKICAgCjE5OTktMDgtMTMgMDI6NDQgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRHJvcCBzdXBwb3J0IGZvciAnc3RhdGljJyBtb2R1bGUgcmVnaXN0cmF0aW9uIHZpYSBjb25maWd1cmUKICAgCjE5OTktMDgtMTIgMTY6NDYgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IG1pbm9yIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjQxICBoYXJkYWtlcgoKICAgKiBGQVEsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcC4xOgoKICAgLSAoRkFRLCBzbm1wY21kLjEsIHNubXB0cmFwLjEpOiBtaW5vciBkb2MgdXBkYXRlcy4KICAgCjE5OTktMDgtMTIgMTY6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoU3YzY29uZmlnLCBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogdGVzdCB1cGRhdGVzLCBpbmNsdWRpbmcgYSBuZXcgc25tcHVzbSB0ZXN0LgogICAKMTk5OS0wOC0xMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IG5vLWZpbGwgdGhlIC5jb25mIGZpbGUgZW50cmllcy4KICAgCjE5OTktMDgtMTIgMTY6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIHRva2VuIGxpc3QuCiAgIAoxOTk5LTA4LTEyIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogYWRkZWQgdG8gZGVzY3JpYmUgdGhlIHNubXB1c20gY29tbWFuZC4KICAgCjE5OTktMDgtMTIgMDk6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLShzbm1wdXNtLmMpIC0gZml4IHBvdGVudGlhbCByZXBlYXRlZCAiZnJlZSIgb24gbWFsbG9jIGZhaWx1cmUuCiAgIAoxOTk5LTA4LTExIDIxOjUzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzoJaGFuZGxlIG5vbi1jb250aWd1b3VzIGlmVGFibGUuIEFsc28gbWFrZSB0aGUKICAgCWNvdW50ZXJzIHVuc2lnbmVkLgogICAKMTk5OS0wOC0xMSAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgaHJfc3RvcmFnZS5jOglyZW1vdmUgdG8gZm9yZ290dGVuIGRlYnVnIGxpbmVzLgogICAKMTk5OS0wOC0xMSAxMzowNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYwo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBNYWtlIHBlcnNpc3RlbnQgY2FjaGUgY29uZm9ybSB0byBhIG1vcmUgc2VjdXJlIHVtYXNrLgogICAKMTk5OS0wOC0xMSAxMDo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MywgYXBwcy9zbm1wdXNtLmM6CgogICAtIChSRUFETUUuc25tcHYzLCBzbm1wdXNtLmMpOiB1c2Ugc3Mgc2Vzc2lvbiB0byBnZXQgcHJvYmVkIGVuZ2luZUlELgogICAKMTk5OS0wOC0xMCAxNzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5jOgoKICAgLSAobGNkX3RpbWUuYyk6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMTk5OS0wOC0xMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBwcmludCAtSCB1c2FnZSB0byBzdGRlcnIuCiAgIAoxOTk5LTA4LTEwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZS4KICAgCjE5OTktMDgtMTAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZvcmNlIHYzIGVuZ2luZUlEIHNldHRpbmcgdG8gc29tZXRoaW5nIGJvZ3VzIHRvCiAgICAgZ2V0IGFyb3VuZCBsb2NhbCBjb25maWd1cmF0aW9uIGRhdGEgc3RvcmUgdGltZSBzeW5jaHJvbml6YXRpb24gY29uZmxpY3RzLgogICAKMTk5OS0wOC0xMCAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IFVtLCBjb3VnaCwgYWN0dWFsbHkgcmVnaXN0ZXIgdXMgaW4gdGhlICppbml0KiBmdW5jdGlvbi4uLgogICAKMTk5OS0wOC0xMCAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHByb3RlY3QgYWdhaW5zdCBldmlsIG1pYiBtb2R1bGVzIGZyb20gbW9kaWZ5aW5nCiAgICAgbWVtb3J5IHRoZXkgc2hvdWxkbid0IGJlIG1vZGlmeWluZyB5ZXQuCiAgICAgLSAoaWZkZWYnZWQgZm9yIHNwZWVkIHByb2ZpbGluZyBsYXRlcikuCiAgIAoxOTk5LTA4LTEwIDExOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGxvZyB2ZXJzaW9uIG51bWJlciBhZnRlciBzdGRlcnIgaXMgb3B0aW9uYWxseSBjbG9zZWQuCiAgIAoxOTk5LTA4LTEwIDEwOjA0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEZpeCBmb3IgYnVpbGQgKG5vIHBhZ2VzaXplIHZhciBkZWZpbmVkIGZvciBsaW51eCkuCiAgIAoxOTk5LTA4LTEwIDA5OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcF9hcGkuYzoKCiAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMgLSBjb252ZXJ0IGZwcmludGYoc3RkZXJyIHRvIHNubXBfbG9nKExPR19FUlIsV0FSTklORykKICAgCjE5OTktMDgtMTAgMDQ6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIGludGVyZmFjZXMuYyB2YXJfcm91dGUuYyBzbm1wX2xvZ2dpbmcuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTA4LTEwIDA0OjQ4ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzoJZml4ZXMgZm9yIHNubXBuZXRzdGF0IC1pIG9uIHZpcnR1YWwgaW50ZXJmYWNlcwogICAKMTk5OS0wOC0xMCAwNDo0NyAgbmJhCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgYWdlbnQva2VybmVsLmM6CWFib3J0IG9uIGt2bV9vcGVuIGZhaWx1cmVzCiAgIAoxOTk5LTA4LTEwIDA0OjQ2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHNubXBsaWIvbWliLmM6CWZpeCBoYW5kbGluZyBvZiBudW1lcmljIG9pZHMgYW5kIHJlcG9ydGluZyBlcnJvcnMKICAgCjE5OTktMDgtMTAgMDQ6NDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY29uZmlndXJlLmluIGNvbmZpZy5oLmluIGNvbmZpZ3VyZSBzL25ldGJzZCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKICAgCXN1cHBvcnQgZm9yIE5ldEJTRC9zcGFyYyBhbmQgTmV0QlNEIDEuNAogICAKMTk5OS0wOC0wOSAxNTowNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIHNubXB1c20uYyAtIGFsd2F5cyBjbGVhciBmaWVsZF9sZW4gaWYgcmVmIGlzIHZhbGlkIHB0cjsKICAgc25tcF9hcGkuYyAtIGRvbid0IG92ZXJ3cml0ZSBjb21tdW5pdHkgcG9pbnRlciB3aXRoIHNlY3VyaXR5QXV0aFByb3RvIHBvaW50ZXIKICAgCjE5OTktMDgtMDkgMTQ6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZXJyb3IgY2hlY2svbnVsbCBzZXQgKmFmdGVyKiBmcmVlaW5nIHRoZSBvbGQgbWVtb3J5LgogICAKMTk5OS0wOC0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBtb3JlIGVycm9yIGNoZWNraW5nIGluIHRoZSBNQUtFX0VOVFJZIG1hY3JvLgogICAKMTk5OS0wOC0wOSAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIC9kZXYvcmFuZG9tIHRlc3QuCiAgIAoxOTk5LTA4LTA5IDExOjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWQ1LmMsIHNubXBfYXBpLmM6CgogICAtKG1kNS5jKSBmaXggcmVhZCBwYXN0IGVuZCBwcm9ibGVtCiAgIC0oc25tcF9hcGkuYykgZml4IGxvc2luZyBjb21tdW5pdHkgc3RyaW5nIHByb2JsZW0KICAgCjE5OTktMDgtMDkgMTA6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIChtYW55KToJbnVrZSB2YXJpb3VzIHByb3RvdHlwZSB3YXJuaW5ncwogICAKMTk5OS0wOC0wOSAwOTo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtKHNubXAuYykgZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiB4ZHVtcCwgb2YgYWxsIHBsYWNlcyAoNzcgcy9iIDc4OyB1c2luZyA4MCkKICAgCjE5OTktMDgtMDkgMDY6NTQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgbGlic25tcC5kZWYgLSByZW1vdmUgcHJpbnRfb2lkX3JlcG9ydCBkaXNhYmxlIG9wdGlvbnMKICAgCjE5OTktMDgtMDkgMDY6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBzbm1wZC5jIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZQogICAKMTk5OS0wOC0wOSAwNjo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jCjoKCiAgICBzbm1wZGVsdGEsIHRyYW5zbGF0ZSwgdHJhcGQpIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZTsgcmVtb3ZlIGRpc2FibGVzIGZvciBwcmludF9vaWRfcmVwb3J0IGluIHRyYW5zbGF0ZS4KICAgCjE5OTktMDgtMDkgMDY6NDggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgKOgoKICAgbWliLiosIHBhcnNlLiogLSBtb3ZlIHByaW50X29pZF9yZXBvcnQgYW5kIG1pbmlvbnMgd2hvbGx5IGludG8gbWliLmMKICAgCjE5OTktMDgtMDkgMDE6MDIgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IE5pbmUgbmV3IHF1ZXN0aW9ucywgcGx1cyBhc3NvcnRlZCB0d2Vha3MgZm9yIHRoZSBuZXcgcmVsZWFzZS4KICAgCjE5OTktMDgtMDkgMDA6MjQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZS5jOglwYXJzZSBhZ2VudCBjYXBhYmlsaXRpZXMKICAgCjE5OTktMDgtMDYgMDc6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtKHNubXBfbG9nZ2luZy4qKSAtYWRkZWQgUmFnbmFyJ3MgcGF0Y2ggIzMgd2l0aCBzbWFsbCB0b3VjaGVzLgogICAKMTk5OS0wOC0wNiAwNjowMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS9hdC5jLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2lwLmMsIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jLCBtaWJJSS92YXJfcm91dGUuYywgaG9zdC9ocl9kZXZpY2UuYwosIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMsCiAgIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jLCBob3N0L2hyX3N3cnVuLmMKLCBob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAobWliSUkvKi5jIGhvc3QvKi5jKTogRG9uJ3QgcHJvdmlkZSAiZHVtbXkiIHZhbHVlcyAodW5sZXNzIGV4cGxpY2l0bHkgY29uZmlndXJlZCkKICAgCjE5OTktMDgtMDYgMDU6NTkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBjb25maWd1cmUtdGltZSBmbGFnIHRvIGNvbnRyb2wgcHJvdmlzaW9uIG9mICJkdW1teSIgdmFsdWVzCiAgIAoxOTk5LTA4LTA1IDExOjExICBtc2xpZmNhawoKICAgKiBtYW4vc25tcF9hcGkuMzoKCiAgIHNubXBfYXBpLjMgLSBkZXNjcmliZSBzbm1wX2Vycm9yKCksIHJlcGxhY2VzIHNubXBfZXJybm8gYW5kIHNubXBfZ2V0X2Vycm5vKCkKICAgCjE5OTktMDgtMDUgMTA6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIGFnZW50eC9jbGllbnQuYyAtIHJlbW92ZSByZWZzIHRvIHNubXBfc3luY2h7c2V0dXAscmVzZXR9IG9yaWdpbmFsIHZlcnNpb24KICAgCjE5OTktMDgtMDUgMDM6MjUgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5zdWI6CgogICBjb25maWcuc3ViIC0gcGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuIHRvIHN1cHBvcnQgSFBVWCAxMQogICAKMTk5OS0wOC0wNCAxMjozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYyAtIGR1bW15IGZ1bmN0aW9ucyBzbm1wX3N5bmNoX3tzZXR1cCxyZXNldH0gYW5kIHNubXBfZ2V0X2Vycm5vLgogICAKMTk5OS0wOC0wNCAwOToxNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtKGNvbmZpZ3VyZSopIC0gS2VuIEhvcm5zdGVpbjogZml4IHRlc3QgeHhnZXRob3N0YnluYW1lLCB4eGdldHNlcnZieW5hbWUuCiAgIAoxOTk5LTA4LTA0IDA1OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1bmRvIHBhdGNoIGFyb3VuZCBTb2xhcmlzJyBjb25maWd1cmUgZmFpbHVyZSB0byByZWdpc3RlciBIQVZFX0dFVEhPU1RCWU5BTUUuCiAgIAoxOTk5LTA4LTA0IDAzOjQ4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSAtIHBhdGNoIHN1cHBsaWVkIGJ5IE5pY2sgQW1hdG8gdG8gZml4IEFTTl9JUEFERFJFU1MgcGFyc2UuCiAgIAoxOTk5LTA4LTA0IDAxOjQ2ICBkYXZlcwoKICAgKiBtaWJzL1VDRC1ERU1PLU1JQi50eHQ6CgogICAtIChtaWJzL1VDRC1ERU1PLU1JQi50eHQpOiBSZS1yZXNvbHZlIGZpbGUgJiB1Y2REZW1vIE9JRCBjb25mbGljdAogICAKMTk5OS0wOC0wMyAxNDowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBzbm1wX2RlYnVnLmMgLSBzaWduZWQgY29tcGFyaXNvbiBmb3IgbGVuIGluIGRlYnVnbXNnX2hleHRsaS4KICAgCjE5OTktMDgtMDMgMTI6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1Zy5oIC0gZml4ICJ3YXJuaW5nOiBBTlNJIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIi4KICAgCjE5OTktMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRS53aW4zMiAtIHJ1bnRpbWUgbGliIGFuZCBkZWJ1ZyBpbmZvIGNvdXJ0ZXN5IG9mIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMDgtMDMgMDc6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgdmFjbV92YXJzLmMgLSBjb3B5IGNvbW11bml0eSBzdHJpbmcsIG51bGwgdGVybWluYXRlLCB0aGVuIGRlYnVnIHByaW50CiAgIAoxOTk5LTA4LTAzIDA3OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcuaCAtIG1vdmUgREVCVUdUUkFDRSBmcm9tIGRlYnVnbXNnX2hleHRsaSB0byBERUJVR0RVTVBTRVRVUAogICAKMTk5OS0wOC0wMyAwNzowMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBzbm1wX2RlYnVnLmMgLSByZW1vdmUgdHJhY2UgbWVzc2FnZXMgZnJvbSBkZWJ1Z21zZ19oZXh0bGkuCiAgIAoxOTk5LTA4LTAzIDA2OjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGFzbjEuYyAtIGZpeCBvdXQtb2YtYm91bmQgYXJyYXkgd3JpdGUgYW5kIG1lbW9yeSBsZWFrIGluIHBhcnNpbmcgc3RyaW5ncy4KICAgCjE5OTktMDgtMDMgMDQ6NDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmMgLSByZW1vdmUgIkJZIiBmcm9tIEhBVkVfR0VUSE9TVEJZTkFNRSAoU29sYXJpcyAyLjUuMSB3cm9uZyEpCiAgIAoxOTk5LTA4LTAyIDIyOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcgLSBERUJVR01TRyBtYWNyb3MgY2FsbCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcgYmVmb3JlIGludm9raW5nIGRlYnVnbXNnKiBmdW5jdGlvbnMuCiAgIAoxOTk5LTA4LTAyIDA0OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZSAtIHNoYW1lIG9uIG1lIGZvciBub3QgY29tcGlsZSB0ZXN0aW5nIGZpcnN0IQogICAKMTk5OS0wOC0wMiAwNDoyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFzbjEuYywgcGFyc2UuYzoKCiAgIGFzbjEsIHBhcnNlKSBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuIChNSlMtdXNlIHhjYWxsb2MgaW4gcGFyc2UpCiAgIAoxOTk5LTA3LTMwIDE0OjE5ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgUkVBRE1FCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNSApCiAgIAoxOTk5LTA3LTMwIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMzAgMTQ6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIC92YXIvdWNkLXNubXAgZXhpc3QuICBXZSBzaG91bGQgZG8gYSBwZXJtaXNzaW9uCiAgICAgc2V0IGFzIHdlbGwuCiAgIAoxOTk5LTA3LTMwIDE0OjEwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4uCiAgIAoxOTk5LTA3LTMwIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IGdlbmVyaWMgdjMgaW5zdHJ1Y3Rpb25zLCBidXQgaGFzIGVycm9ycy4KICAgCjE5OTktMDctMzAgMDg6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG5vIHN0cnVjdCBzb2NrYWRkcl9kbCBpbiBBSVggMy4KICAgCjE5OTktMDctMzAgMDg6MDEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB2c25wcmludGYgY2hlY2sgYW5kIEhBVkVfVlNOUFJJTlRGIGNvbnN0YW50CiAgIAoxOTk5LTA3LTMwIDA3OjMxICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQogICAKMTk5OS0wNy0zMCAwNzowMSAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CiAgIAoxOTk5LTA3LTMwIDA2OjU4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBzbm1wX3ZhcnNfbTJtLmgKICAgCjE5OTktMDctMzAgMDY6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc3lzdGVtLmg6CgogICB1c2UgdHJhZGl0aW9uYWwgSyZSIGNvbW1lbnRpbmc7IG5vdCBhbGwgIkMiIGNvbXBpbGVycyBhY2NlcHQgIi8vIiBjb21tZW50cy4KICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgd2luMzIvY29uZmlnLmggLSBkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRQogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHN5c3RlbSAtIHVzZSBzaXplb2YKICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMgLSBrZXkgb2ZmIEhBVkVfR0VUSE9TVE5BTUU7IHVzZSBzaXplb2YgYnVmCiAgIAoxOTk5LTA3LTMwIDA2OjIzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIHNubXBfdmFycy5jLCBzbm1wX3ZhcnNfbTJtLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jIGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzX20ybS5oKToKICAgICAtIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2Ygb2Jzb2xldGUgdjJwYXJ0eSBNYW5hZ2VyLXRvLU1hbmFnZXIgc3VwcG9ydAogICAKMTk5OS0wNy0zMCAwNjoxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2MyAtIHdyYXAgcG9zc2libHkgdW51c2VkIHZhcnMgaW4gI2lmZGVmIEhBVkVfR0VUSE9TVE5BTUUKICAgCjE5OTktMDctMzAgMDY6MDAgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMKICAgICAgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oKToKICAgICAgLSAgUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiB2MnAgc3VwcG9ydAogICAKMTk5OS0wNy0zMCAwNTo0MiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGhyX3N0b3JhZ2UuYyAtIGF1dG9fbmxpc3QgZm9yIEhSX1NUT1JFX1NJWkUKICAgaHJfc3dydW4uYyAtIGZpeCBnbG9iYWwgc2hhZG93IGRlY2wKICAgc25tcF9sb2dnaW5nLmMgLSBjaGFuZ2UgZmlsdGVyIGZvciBvcGVubG9nIHBlciBBLiBTeW1vbnMgcGF0Y2gKICAgCjE5OTktMDctMzAgMDQ6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIHJlbmFtZSBzZCB0byBpZnNkIC0gYXZvaWQgZ2xvYmFsIHNoYWRvdyBkZWNsCiAgIAoxOTk5LTA3LTMwIDA0OjM5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbCBsb2dfcGVycm9yCiAgIAoxOTk5LTA3LTMwIDA0OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICByZW5hbWUgbG9jYWwgdmFyICdsYXN0JyB0byAnbGFzdF9pcGNoJyAtIGF2b2lkIHNoYWRvdyBnbG9iYWwgZGVjbAogICAKMTk5OS0wNy0zMCAwNDowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvaGlzdG9yeS5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgLShhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLGFnZW50L2hpc3RvcnkuYyxhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYyxzbm1wbGliL3NubXBfbG9nZ2luZy5jLHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmMpIC0gcHNvcyBkaWZmcyBvZmZlcmVkIGJ5IEFudGhvbnkgU3ltb25zCiAgIAoxOTk5LTA3LTMwIDAzOjU3ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIFJlbW92ZWQgaGludCBvZiB2MnBhcnR5IGZyb20gY29tbWVudC4KICAgCjE5OTktMDctMzAgMDM6NTEgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGUgSEFWRV9HRVQ/Pz9CWU5BTUU7IFJlbW92ZWQgdW51c2VkIF9DUlRJTVAKICAgCjE5OTktMDctMzAgMDM6NDggIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRS53aW4zMiAtIGNsZWFuZWQgdXAsIGFkZGVkIG1vcmUgYWNrbm93bGVkZ2VtZW50cwogICAKMTk5OS0wNy0yOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4eC5oOgoKICAgLSAoYWdlbnR4eC5oKTogcmVtb3ZlZAogICAKMTk5OS0wNy0yOSAxNzowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS86IGFjbF92YXJzLmMsIGFjbF92YXJzLmgsCiAgIGFsYXJtLmMsIGFsYXJtLmgsIGNvbnRleHRfdmFycy5jLAogICBjb250ZXh0X3ZhcnMuaCwgZXZlbnQuYywgZXZlbnQuaCwgcGFydHlfdmFycy5jCiwgcGFydHlfdmFycy5oLCB2aWV3X3ZhcnMuYywgdmlld192YXJzLmg6CgogICAtIChtaWJncm91cC92MnBhcnR5KTogcmVtb3ZlZCBmaWxlcy4KICAgCjE5OTktMDctMjkgMTc6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogcmVtb3ZlIHRyYXBfc3BlY2lhbCBzdHVmZi4KICAgCjE5OTktMDctMjkgMTY6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB1c2UgZnB1dHMsIGFzIHZzcHJpbnRmIGhhcyBhbHJlYWR5IGRvbmUgdGhlIGhhcmQgd29yay4KICAgCjE5OTktMDctMjkgMTU6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBmbHVzaCBmaWxlIGFuZCBzdGRlcnIgYWZ0ZXIgd3JpdGUuCiAgIAoxOTk5LTA3LTI5IDE1OjUwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLShzbm1wX2xvZ2dpbmcpIGluY29ycG9yYXRlIFJhZ25hcidzIGltcHJvdmVtZW50cyB3aXRoIGludGVyZXN0CiAgIAoxOTk5LTA3LTI5IDE1OjA0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywga2VybmVsLmM6CgogICBhdXRvX25saXN0LCBrZXJuZWw6IHBsYWNlIGxvZ19wZXJyb3IgdG8gY2F0Y2ggZXJybm8gdmFsdWUgaW4gcmVwb3J0LgogICAKMTk5OS0wNy0yOSAxMzo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0oYWdlbnQvc25tcGQuYykgLSBsb2cgc3RhbmRhcmQgZXJyb3IgdW50aWwgaW5pdCBpcyBjb21wbGV0ZWQuCiAgIAoxOTk5LTA3LTI5IDEzOjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLShhcHBzL01ha2VmaWxlLmluKSAtIGNvbW1lbnQgdW5uZWVkZWQgVFJBUFNQRUNJQUwgbGluZQogICAKMTk5OS0wNy0yOSAxMjo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nKSAtIGZpeCBsb2dfcGVycm9yCiAgIAoxOTk5LTA3LTI5IDA4OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBtZW1vcnlfc29sYXJpczI6IGhhbmRsZSBtYWxsb2MgZXJyb3JzCiAgIGtlcm5lbF9zdW5vczU6IHNoYXJlIGtzdGF0IGZpbGRlcyBbU0hBUkVfS1NUQVRfRkRdCiAgIAoxOTk5LTA3LTI5IDAzOjI5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKG1pYklJL3ZhY21fdmFycy5jKTogQ2F0Y2ggdXNlIG9mIHVuY29uZmlndXJlZCBFWEFNUExFLmNvbmYgZmlsZXMKICAgCjE5OTktMDctMjggMTM6MzMgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC1SRUFETUUud2luMzIgLSBidWlsZCBndWlkZSBmb3IgV2luMzIuIEN5Z3dpbiBmcmllbmRseSBzY3JpcHQgaW5jbHVkZWQuCiAgIAoxOTk5LTA3LTI4IDA5OjQxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgc25tcF9sb2dnaW5nLmM6IGFkanVzdCBoZWFkZXJzIGZvciB0aGF0IFdpbjMyIHBsYXRmb3JtLgogICAKMTk5OS0wNy0yOCAwOTowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nKSBTdXBwb3J0IGhwdXg5IGFuZCBzb2xhcmlzMi41LjEgd2l0aCB2c3ByaW50ZiBpbnN0ZWFkLgogICAKMTk5OS0wNy0yOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBjaGFuZ2UgbWFpbCBhZGRyIHRvIHVjZC1zbm1wLWJ1Z3MKICAgCjE5OTktMDctMjggMDI6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBocl9zd3J1biAtIHJlc2V0IHBvaW50ZXIgaW4gbW9kdWxlIGluaXQgKGhlbHAgSFAvVVggOSkKICAgc25tcF9sb2dnaW5nIC0gdXNlIHZzcHJpbnRmIGZvciBIUC9VWC05CiAgIAoxOTk5LTA3LTI3IDIzOjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jCiwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYzoKCiAgIC0oa2V5dG9vbHMuYyxtZDUuYyxtZDUuaCxzY2FwaS5jLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jKSBjYXRjaCBNRDUgZXJyb3JzCiAgIAoxOTk5LTA3LTI3IDIzOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLShzbm1wZC5jKSBpbnZva2UgbG9nIGZ1bmN0aW9ucyBmcm9tIGNoaWxkIChjb3JyZWN0IHByb2Nlc3MgSUQgaW4gc3lzbG9nKQogICAKMTk5OS0wNy0yNyAyMTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nLmMpIGZpeCBzeXNsb2cgYnkgdnNucHJpbnRmIHRvIGJ1ZmZlci4KICAgCjE5OTktMDctMjcgMTk6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKG1pYi5jKSBmaXggd2Fsa2luZyBPSUQgbGVuZ3RoIHBvaW50ZXIsIG51bWVyaWMgc3ViLWlkIG5vdCBmb3VuZAogICBpbiByZWFkX29iamlkIGFuZCBwYXJzZV9zdWJ0cmVlLgogICAKMTk5OS0wNy0yNyAxOTowMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0oc25tcF9wYXJzZV9hcmdzKSBpbiBzbm1wX3BhcnNlX29pZCwgdHJ5IGdldF9ub2RlIGlmIHJlYWRfb2JqaWQgZmFpbHMuCiAgIAoxOTk5LTA3LTI3IDE3OjE1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGluY2x1ZGluZyBtaWIuaCByZXF1aXJlcyBzdGRpby5oIHRvIGRlZmluZSBGSUxFICouCiAgIAoxOTk5LTA3LTI3IDE2OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IGZpeCBoZWFkZXIgZHVtcC4KICAgCjE5OTktMDctMjcgMTY6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYwosIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmM6CgogICAtIChhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgLSBjbGVhbmVkIHVwIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgICAtIGFkZGVkIG1vcmUgZHVtcCBwYXJzZSBoZWFkZXJzIGZvciB2MyBkdW1wcy4KICAgCjE5OTktMDctMjcgMTY6MDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0oaW50ZXJmYWNlcy5jKSAtIGZpeCBlcnJvciBzZXR0aW5nIGlmX2lieXRlcyBmb3IgTGludXggMi4wCiAgIAoxOTk5LTA3LTI3IDEyOjIzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdXNtLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKGFwcHM6ZW5jb2RlX2tleWNoYW5nZS5jLHNubXBkZWx0YS5jLHNubXB0YWJsZS5jLCBzbm1wdXNtLmM7CiAgIHNubXBsaWI6cmVhZF9jb25maWcuYyxzbm1wdjMuYzsgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpIC0KICAgIGFkanVzdCBoZWFkZXJzLCBidWlsZCBXaW4zMiBzbm1wdXNtK2VuY29kZV9rZXljaGFuZ2UKICAgCjE5OTktMDctMjcgMTI6MDAgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcDoKCiAgIC0oZW5jb2RlX2tleWNoYW5nZS5kc3Asc25tcHVzbS5kc3ApIC1idWlsZCB1c2luZyBjb21tb24gV2luMzIgY29tcGlsZXIKICAgCjE5OTktMDctMjcgMDk6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBzdWJhZ2VudC5jOgoKICAgLShtYXN0ZXIuYywgc3ViYWdlbnQuYykgdW4tY29tbWVudCBpbml0X21hc3RlciBhbmQgaW5pdF9zdWJhZ2VudC4KICAgCjE5OTktMDctMjcgMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9zbm1wZC5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyxhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsYXBwcy9zbm1wZGVsdGEuYyxhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLGFwcHMvc25tcHNldC5jLGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLGFwcHMvc25tcHRlc3QuYyxhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsYXBwcy9zbm1wdXNtLmMsYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyxhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLHNubXBsaWIvcGFyc2UuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHYzLmMpIGZpeCBzbm1wX3Nlc3NfcGVycm9yIHVzZTsgdXNlIGxvZ19wZXJyb3IgZm9yIHBlcnJvcgogICAKMTk5OS0wNy0yNyAwNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLGFnZW50L2RsbW9kcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyxhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyxhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgc25tcGxpYi9hc24xLmMsc25tcGxpYi9zY2FwaS5jLHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oKSAgRVJST1JfTVNHLCBwcmludGYgLS0+IERFQlVHTVNHVEwKICAgCjE5OTktMDctMjcgMDY6MzggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGZpbGUuYywgaHB1eC5jLCBsb2FkYXZlLmMsCiAgIG1lbW9yeS5jLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X3NvbGFyaXMyLmMsCiAgIHJlZ2lzdHJ5LmM6CgogICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC8qLmMpOiB0d2VhayByZWdpc3RyeSBsYWJlbHMKICAgCjE5OTktMDctMjcgMDQ6MjQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBpbmNsdWRlIG5ldC9pZl9kbC5oIHN1Z2dlc3RlZCBieSBUb20gSXZhciBIZWxiZWtrbW8KICAgCjE5OTktMDctMjYgMTc6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIC0gKHNjYXBpLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBzaXplX3QgZml4LgogICAKMTk5OS0wNy0yNiAxNzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsCiAgIHNjYXBpLmM6CgogICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLCBzY2FwaS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gc2l6ZV90IGNoYW5nZXMuCiAgIAoxOTk5LTA3LTI2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSB2YXJpYWJsZSBuYW1pbmcgY2hhbmdlLgogICAKMTk5OS0wNy0yNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDctMjYgMTU6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jCiwgc25tcF9hdXRoLmMsIHNubXB1c20uYzoKCiAgIC0oYXNuMS5jLGFzbjEuaCxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYyxzbm1wdXNtLmMpIG1vcmUgZGV0YWlsZWQgcGFyc2UgZXJyb3IgbWVzc2FnZXMuCiAgIAoxOTk5LTA3LTI2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBCSVRfc3RyaW5nOiAtPiBCSVRTOgogICAKMTk5OS0wNy0yNiAxMTo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNCApCiAgIAoxOTk5LTA3LTI2IDA5OjE0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZWQgYSBiaXQKICAgCjE5OTktMDctMjYgMDk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgo6CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMjYgMDc6MzcgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSAoU05NUHYyLUNPTkYudHh0KTogcmVtb3ZlZCBib2d1cyBJTVBPUlRTIGNsYXVzZQogICAKMTk5OS0wNy0yNCAwODoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0obWQ1LmMpIC0gd3JhcCB1bnVzZWQgTUQ1cHJpbnQgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERSBpZmRlZgogICAKMTk5OS0wNy0yNCAwODowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmgsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hbGFybS5oCiwgc25tcF9sb2dnaW5nLmg6CgogICAtKGNhbGxiYWNrLmgsZGVmYXVsdF9zdG9yZS5oLHNubXBfYWxhcm0uaCxzbm1wX2xvZ2dpbmcuaCkgZXh0ZXJuICJDIiB3cmFwcGVkCiAgIAoxOTk5LTA3LTI0IDA3OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtKHNubXBfY2xpZW50LmMpIC0gdXNlIFNFVF9TTk1QX0VSUk9SIGZvciByZXN0b3JlZCBzbm1wX2Vycm5vIHNldHMuCiAgIAoxOTk5LTA3LTI0IDA3OjE4ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0obGlic25tcC5kZWYpIC0gYWRkIGRlY2xzIGZvciBuZXcgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTA3LTI0IDA3OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0oYXNuMS5jKSAtIGZpeCBjb21wYXJlIGVycm9yIGF0IGxpbmUgMzg2OyByZW1vdmUgdW51c2VkIHZhcnMgZWxzZXdoZXJlCiAgIAoxOTk5LTA3LTIzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB1c20uYywgc25tcHdhbGsuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgICBzbm1wX2NsaWVudC5jKToKICAgICAtIG1ha2UgYW5kIHVzZSBzbm1wX3Nlc3NfcGVycm9yKHN0ciwgc2VzcykgZm9yIGVycm9yIHByaW50aW5nLgogICAKMTk5OS0wNy0yMyAxNDozMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFQuc2gsIFQyLnNoLCBkZW1vLnJlbW90ZSwgZGVtbzIKLCBkZW1vMi5mdW5jdGlvbnMsIGRlbW8yLnNldHVwZmlsZToKCiAgIC0gKFQuc2gsIFQyLnNoLCBkZW1vLnJlbW90ZSwgZGVtbzIsIGRlbW8yLmZ1bmN0aW9ucywgZGVtbzIuc2V0dXBmaWxlKToKICAgICAtIHJlbW92ZWQgc29tZSB1bi1uZWVkZWQgb2xkZXIgZGVtbyBmaWxlcy4KICAgCjE5OTktMDctMjMgMTQ6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLCBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgICBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dCwKICAgICBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgICAgVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsCiAgICAgVDAyM3NubXB2M2dldE1ENURFUyk6IHN1cHBvcnQgYSBTTk1QX0ZMQUdTIGVudiB2YXJpYWJsZS4KICAgCjE5OTktMDctMjMgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogaW5pdCBkZWJ1Z2dpbmcuCiAgIAoxOTk5LTA3LTIzIDE0OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYwosIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgLSByZXZlcnQgdG8gbm9uLWRwYXJzZSB2ZXJzaW9ucyBvZiBhc24gZGVjb2RpbmcuCiAgIAoxOTk5LTA3LTIzIDEzOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIChldmFsX3Rvb2xzLnNoKTogYSBsaXR0bGUgbW9yZSB2ZXJib3NlIGFib3V0IHdoYXQgaXMgcnVubmluZy4KICAgCjE5OTktMDctMjMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jCiwgc25tcF9hcGkuYzoKCiAgIC0gKGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBzbm1wX2xvZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDctMjMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgLSAoc25tcC5jKTogeGR1bXAgZml4ZXMuCiAgIAoxOTk5LTA3LTIzIDEzOjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IG51bGwgdGVybWluYXRlIHBhcnNlZCBzdHJpbmdzLCBqdXN0IGluIGNhc2UuCiAgIAoxOTk5LTA3LTIzIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBjaGFuZ2UgbWFsbG9jIHNpemUoKS4KICAgCjE5OTktMDctMjMgMTM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbW9yZSBzbm1wX2xvZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDctMjMgMTM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5oKTogYWRkZWQgZm9yIGEgcHJvdG90eXBlIGRlZmluaXRpb24uCiAgIAoxOTk5LTA3LTIzIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvSUYtTUlCLnR4dCwKICAgbWlicy9JUC1NSUIudHh0LCBtaWJzL1RDUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0Ciwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBrZXJuZWxfc3Vub3M1LmMsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLAogICAgIGludGVyZmFjZXMuaCwgc3lzdGVtX21pYi5jLCB2YXJfcm91dGUuYywgc25tcEVuZ2luZS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wdHJhcGQuYywgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgICBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQsIFRDUC1NSUIudHh0LAogICAgIFVEUC1NSUIudHh0LCBwYXJzZS5jLCBzbm1wX2FsYXJtLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgLSBtZXJnZSBmcm9tIFYzLWxpbmUgcG9zdCAzLjYuMiB0byBjdXJyZW50LgogICAgIC0gbWlzYyBidWcgZml4ZXMuCiAgICAgLSBtYWtlIGFwcHMgdHVybiBvbiBzdGRlcnIgbG9nZ2luZyBieSBkZWZhdWx0LgogICAKMTk5OS0wNy0yMyAxMDozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbG9nIHRvIHN0ZGVyci4KICAgCjE5OTktMDctMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLnN0b3JhZ2UuY29uZiwgdGttaWI6CgogICAtICh0a21pYiwgbWliMmMpOiB1ZHBhdGUgdG8gdXNlIGluZGV4ZXMgKHJlcXVpcmVzIGEgcGVybCBwYXRjaC4KICAgCjE5OTktMDctMjAgMTk6MzMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBubyBwcmludGYgaW4gYXNjaWlfdG9fYmluYXJ5CiAgIAoxOTk5LTA3LTIwIDE4OjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLW1pbm9yIGNoYW5nZXMgdG8gYnVpbGQgV2luMzIgcGxhdGZvcm1zIHVzaW5nIEN5Z1dpbi1lZ2NzIGFuZCBNU1ZDIGNvbXBpbGVycy4KICAgCjE5OTktMDctMjAgMTc6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtIChzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiAtV2FsbCBmaXhlcyAoQU5TSSkuCiAgIAoxOTk5LTA3LTIwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jCiwgZGxtb2RzL2RsbW9kX21pYi5jLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBtaWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jOgoKICAgLSAoYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsCiAgICAgaXBmd2NoYWlucy5jLCBpbnRlcmZhY2VzLmMsIGRsbW9kLmMsIHNtdXguYywgdmVyc2lvbmluZm8uYywKICAgICBhbGFybS5jKToKICAgICAtIGNvbnZlcnQgc25tcF9sb2coTE9HX0RFQlVHKSB0byBERUJVR01TR1RMKCkuCiAgIAoxOTk5LTA3LTIwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2hpc3RvcnkuYywgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfZGVidWcuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChhdXRvX25saXN0LmMsIGhpc3RvcnkuYywga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgsIHV0aWxfZnVuY3MuYywgaXBmd2NoYWlucy5jLAogICAgIGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFjbV92YXJzLmMsIHZhcl9yb3V0ZS5jLCBkbG1vZC5jLCBzbXV4LmMsIGRpc2suYywgZXh0ZW5zaWJsZS5jLAogICAgIGxvYWRhdmUuYywgbWVtb3J5X3NvbGFyaXMyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywKICAgICB2ZXJzaW9uaW5mby5jLCBhbGFybS5jLCBldmVudC5jLCBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jLAogICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKICAgICBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgogICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAgIAoxOTk5LTA3LTE1IDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KICAgCjE5OTktMDctMTUgMDg6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGFycGEvaW5ldC5oLgogICAKMTk5OS0wNy0xNCAxMzo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDA3OjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogV2FybmluZyAtIGhlcmUgYmUgZHJhZ29ucy4uLi4KICAgCjE5OTktMDctMTIgMDg6MzIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsCiAgIGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9maWxlc3lzLmMsCiAgIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsCiAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywKICAgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLCBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYwosIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywKICAgaHJfc3lzdGVtLmg6CgogICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCiAgIAoxOTk5LTA3LTEyIDA3OjE0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAogICAKMTk5OS0wNy0xMSAxODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgogICAKMTk5OS0wNy0wOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBmaXggY2xpZW50cmVnIGVycm9yLgogICAKMTk5OS0wNy0wOSAxNDoxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCiAgIAoxOTk5LTA3LTA5IDEyOjEyICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wX3Nlc3NfYXBpLjMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0CiAgIAoxOTk5LTA3LTA5IDA4OjM1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmM6CgogICAtIChzbm1wbGliL2FnZW50eCopOiBNb3ZlZCBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQogICAKMTk5OS0wNy0wOSAwODozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHguaCwgYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudHgvY2xpZW50LmgsIGFnZW50eC9tYXN0ZXIuYywgYWdlbnR4L21hc3Rlci5oCiwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50eC9wcm90b2NvbC5oLCBhZ2VudHgvc3ViYWdlbnQuYwosIGFnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmggYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOgogICAgIC0gTW92ZSBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcgdG8gYSAobW9zdGx5KSBzZWxmLWNvbnRhaW5lZCBtb2R1bGUKICAgCjE5OTktMDctMDkgMDg6MjcgIGRhdmVzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDAxOjQ5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKICAgCjE5OTktMDctMDggMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KICAgCjE5OTktMDctMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCjoKCiAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KICAgCjE5OTktMDctMDggMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0wOCAxNDozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbC5oCiwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHZpZXdfcGFyc2UuYywgdmFjbV92YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgYWNsLmgsIGFjbF9wYXJzZS5jLCBjb250ZXh0LmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIGxpYnNubXAuaCwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgLSB2MnBhcnR5IHN1cHBvcnQgaXMgZmluYWxseSBnb25lIQogICAKMTk5OS0wNy0wOCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4Lmg6CgogICAtIChhZ2VudHguYywgYWdlbnR4LmgpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgogICAKMTk5OS0wNy0wOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgLSAodG9vbHMuYyk6IHR5cG8gaW4gI2lmZGVmLgogICAKMTk5OS0wNy0wOCAwNjoyNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jLCBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS9zeXN0ZW1fbWliLmMgbWliSUkvc25tcF9taWIuYyk6CiAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgYW5kIHVzaW5nIHRoZSBmdWxsIFNFVCBtdWx0aS1wYXNzIGFsZ29yaXRobQogICAKMTk5OS0wNy0wOCAwMjoxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFJldGFpbiBjb21tdW5pdHkgc3RyaW5nIGluIHJlc3BvbnNlcwogICAKMTk5OS0wNy0wNyAwNjo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBhZ2VudHguYywgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMgYXNuMS5oIHNubXAuYyBzbm1wLmggc25tcF9hcGkuYyBzbm1wX2FwaS5oCiAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgLSBGaXJzdCBhdHRlbXB0IGF0IGZvcm1hdHRlZCBkaXNwbGF5IG9mIHBhY2tldCBkYXRhCiAgIAoxOTk5LTA3LTA2IDAyOjIwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgU05NUHYxIG5vU3VjaE5hbWUKICAgCjE5OTktMDctMDIgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcmVnaXN0ZXIgZGVidWdnaW5nIHRva2VucyB3aXRoIC1ECiAgIAoxOTk5LTA3LTAyIDA1OjE4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eHguaCwgYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudHgvbWFzdGVyLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9hZG1pbi5oLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0Lmg6CgogICAtIChtaWJncm91cC9hZ2VudHh4LmggbWliZ3JvdXAuYWdlbnR4Lyk6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWdlbnRYIG1hc3RlcgogICAKMTk5OS0wNy0wMiAwNToxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHN1cHBvcnQgbGlzdHMgb2Ygc2Vzc2lvbnMgKGFuZCBzdWJzZXNzaW9ucykKICAgCjE5OTktMDctMDIgMDU6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgdmFyX3N0cnVjdC5oOgoKICAgLSAodmFyX3N0cnVjdC5oIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgogICAKMTk5OS0wNy0wMiAwNToxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9hc24xLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIChzbm1wbGliL2FzbjEuaCBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC9zbm1wX2FnZW50LmMpOgogICAgIC0gaW1wbGVtZW50IGFuIGludGVyZmFjZSBmb3IgZGVsZWdhdGluZyByZXF1ZXN0cyB0byBzdWJhZ2VudHMKICAgCjE5OTktMDctMDIgMDI6MzkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXggdGhhdCBsYXN0ICdzZW5kdG8nIGNhc2UgKmNvcnJlY3RseSogdGhpcyB0aW1lCiAgIAoxOTk5LTA3LTAyIDAyOjA0ICBkYXZlcwoKICAgKiBzbm1wbGliL2FnZW50eC5jOgoKICAgLSAoYWdlbnR4LmMpOiBCZXR0ZXIgaGFuZGxpbmcgb2YgYnVpbGRpbmcgbnVsbCBzdHJpbmdzCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgbWliLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaAo6CgogICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBjb252ZXJ0IG1vcmUgc3R1ZmYgdG8gdGhlIGRlZmF1bHRfc3RvcmUgc3BhY2UuCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgdG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMsIHRvb2xzLmMpOiAtV2FsbCBmaXhlcyB3aGVuIFRFU1RJTkdfQ09ERSBpcyBlbmFibGVkLgogICAKMTk5OS0wNi0zMCAwNTo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAogICAKMTk5OS0wNi0zMCAwNTowNiAgZGF2ZXMKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBzeXMvdW4uaAogICAKMTk5OS0wNi0zMCAwNTowNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCiAgIAoxOTk5LTA2LTMwIDAzOjIwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IG9taXQgcmVkdW5kYW50IGRlY2xhcmF0aW9ucwogICAKMTk5OS0wNi0zMCAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IENvcnJlY3QgdGhlIHNldHVwIG9mIHN0cmVhbS1iYXNlZCBhY2NlcHRlZCBpbnRlcm5hbCBzZXNzaW9ucwogICAKMTk5OS0wNi0zMCAwMTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiAnYWdlbnRfc25tcF9zZXNzaW9uJyBpbml0aWFsaXNhdGlvbiByb3V0aW5lCiAgIAoxOTk5LTA2LTMwIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTMwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKICAgCjE5OTktMDYtMjggMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGNvbnZlcnQgdG8gc2l6ZV90CiAgIAoxOTk5LTA2LTI4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGluaXRfc25tcF9hbGFybSgpLgogICAKMTk5OS0wNi0yOCAwOTo1MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFycy5oIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBOb24tcmVjdXJzaXZlIE1JQiByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0yOCAwODozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgsCiAgIHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCwgdXNtU3RhdHMuYywKICAgdXNtU3RhdHMuaCwgdXNtVXNlci5jLCB1c21Vc2VyLmg6CgogICAtIChzbm1wRW5naW5lLmMgc25tcEVuZ2luZS5oIHNubXBNUERTdGF0cy5jIHNubXBNUERTdGF0cy5oCiAgICAgIHVzbVN0YXRzLmMgdXNtU3RhdHMuaCB1c21Vc2VyLmMgdXNtVXNlci5oKToKICAgICAgLSBSdW4tdGltZSByZWdpc3RyYXRpb24gKHJhdGhlciB0aGFuIHZpYSAnY29uZmlndXJlJykKICAgCjE5OTktMDYtMjggMDc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMjFzbm1wdjNnZXRuZXh0LAogICBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUyk6CiAgICAgLSAzIG5ldyB2MyB0ZXN0cy4KICAgCjE5OTktMDYtMjggMDc6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIC0gKFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoKTogYWNjZXB0IGFnZW50IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAKMTk5OS0wNi0yOCAwNDowNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmM6CgogICAtIHtNYWtlZmlsZS5pbiBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBfdmFycy5jIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKICAgCjE5OTktMDYtMjggMDM6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCiAgIAoxOTk5LTA2LTIzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwKICAgZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgLSAoTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwgU3YzY29uZmlnKToKICAgICAtIGdpdmUgUlVOVEVTVFMgbG90cyBvZiBhcmd1bWVudHMuCiAgICAgLSAibWFrZSB0ZXN0IiBub3cgY2FsbHMgIlJVTlRFU1RTIC1hIgogICAKMTk5OS0wNi0yMiAwNToyNSAgbmJhCgogICAqIFRPRE86CgogICBUT0RPOgluZWVkIGZvciBDb3VudGVyNjQgc3VwcG9ydCBpbiBzbm1wZGVsdGEKICAgCjE5OTktMDYtMjIgMDU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgaW52b2tlIHNubXBfc2Vzc19pbml0IGJlZm9yZSBhbnkgTUlCIHByb2Nlc3NpbmcgKGZpeGVzIG1hc3RlciBhZ2VudCkuCiAgIAoxOTk5LTA2LTE4IDEyOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eF9jbGllbnQuYzoKCiAgIC0oYWdlbnR4Ki5jKSBmaXggaGVhZGVycyB0byBjb21waWxlIG9uIEN5Z1dpbiwgV2luMzIgTVNWQysrCiAgIAoxOTk5LTA2LTE4IDEwOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0CiAgIAoxOTk5LTA2LTE4IDA5OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMKLCBzbm1wZC5oLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHNubXBkLmMgc25tcGQuaCBzbm1wX3ZhcnMuYyBzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oCiAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgIC0gaW5pdGlhbCBBZ2VudFggc3ViLWFnZW50IGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTA2LTE4IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWVhbnMgb2YgYnlwYXNzaW5nIFZBQ00gY2hlY2tzCiAgIAoxOTk5LTA2LTE4IDA4OjU1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmMsCiAgIHNubXBfYXBpLmgsIE1ha2VmaWxlLmluOgoKICAgLSAoc25tcF9hcGkuaCBNYWtlZmlsZS5pbiBhZ2VudHguYyBhZ2VudHguaCBhZ2VudHhfY2xpZW50LmMpOgogICAgIC0gYmFzaWMgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nCiAgIAoxOTk5LTA2LTE4IDA4OjQ5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKToKICAgICAtIGFjY29tb2RhdGUgc2VydmVycyB0aGF0IHJlcXVpcmUgYW4gYWNjZXNzaWJsZSBjbGllbnQtZW5kIHVuaXggc3RyZWFtIHNvY2tldAogICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCiAgIAoxOTk5LTA2LTE4IDA4OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKICAgCjE5OTktMDYtMTggMDg6NDQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBOZXcgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlCiAgIAoxOTk5LTA2LTE4IDA4OjA0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5oLCBzbm1wX2FwaS5jOgoKICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwogICAKMTk5OS0wNi0xOCAwODowMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgCShhbHNvIG1ha2UgJ3NubXBfY2xvbmVfbWVtJyBhY2Nlc3NpYmxlIHRvIG90aGVyIGZpbGVzKQogICAKMTk5OS0wNi0xOCAwNzo1NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTk1QIHByb3RvY29sICYgUERVIGhhbmRsaW5nIGZsYWdzCiAgIAoxOTk5LTA2LTE4IDA2OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKICAgCjE5OTktMDYtMTggMDU6MDEgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBsaWVkIGZpeGVzIGZyb20gTS4gTGF1a2thbmVuCiAgIAoxOTk5LTA2LTE3IDEzOjE4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZml4dXBzIHRvIGJ1aWxkIG1vc3QgYXBwcyB1bmRlciBXaW4zMiAoTVNWQysrIDUuMCBvciBsYXRlcikKICAgCjE5OTktMDYtMTcgMDc6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggLS1oZWxwLgogICAKMTk5OS0wNi0xNiAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAtIDIgbmV3IHNubXAuY29uZiB0b2tlbnM6IGRvRGVidWdnaW5nLCBkZWJ1Z1Rva2Vucy4KICAgCjE5OTktMDYtMTYgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMKLCBwYXJzZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jKToKICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgIHBhcnNlciB2YXJpYWJsZXMgdG8gaXQsIGFuZCBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGhlbS4KICAgICAgIC0gcHJlbWliIGF1dG8tcmVnaXN0cmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUgbmVlZHMgY2xlYW5pbmcgdXAuLi4gIHNpZ2guLi4KICAgCjE5OTktMDYtMTYgMDY6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwogICAKMTk5OS0wNi0xNiAwNTo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGhhbmRsZSByZXNwb25zZXMgaW4gYSBtb3JlIHByb3RvY29sLWluZGVwZW5kZW50IG1hbm5lcgogICAKMTk5OS0wNi0xNiAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogbW92ZSBQRFUgdmFsaWRhdGlvbiwgZXRjIGZyb20gJ3NlbmQnIHRvICdidWlsZCcgcm91dGluZXMKICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldDoKCiAgIC0gKFQwMjBzbm1wdjNnZXQpOiBuZXcgdGVzdDogIHNubXBnZXQgdXNpbmcgdjMgYW5kIHVzZXIgImluaXRpYWwiLgogICAKMTk5OS0wNi0xNSAxNjoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0OgoKICAgLSAoVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQpOgogICAgIC0gQ2hlY2sgZm9yIFRpbWV0aWNrczogaW4gb3V0cHV0LCBzaW5jZSBvdXRwdXQgaGFzIGNoYW5nZWQgaW4gNC4wLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IGRpc3BsYXkgbW9yZSBvdXRwdXQgc3R1ZmYgd2hlbiBpbiB2ZXJib3NlIG1vZGUuCiAgIAoxOTk5LTA2LTE1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzYXZlIHBhY2tldCBkdW1wLgogICAKMTk5OS0wNi0xNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBhbGxvd2VkIHplcm9sZW5ndGggcGR1LT5zZWN1cml0eU5hbWUgcHJvYmxlbSBmb3IKICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgogICAKMTk5OS0wNi0xNSAwODoyNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOgogICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwogICAKMTk5OS0wNi0xNSAwMzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBkdXBsaWNhdGUgY29kZQogICAKMTk5OS0wNi0xMSAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2MWNvbmZpZywgU3YyY2NvbmZpZywgU3Zhbnljb25maWcKLCBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnLCBUMDAxc25tcHYxZ2V0LAogICAgIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsCiAgICAgVDAxNXNubXB2MmNnZXRuZXh0LCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6CiAgICAgLSBpbml0aWFsIHBhc3Mgb2YgdGVzdGluZyBzdWl0ZSB0ZXN0cy4uLiAgQWdhaW4sIHN0aWxsIG5lZWRzIHdvcmsuCiAgIAoxOTk5LTA2LTExIDE3OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwKICAgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgVDIuc2gsIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaCk6CiAgICAgLSB0ZXN0aW5nIHN1aXRlIHNjcmlwdHMuLi4gIHN0aWxsIG5lZWQgaGVhdnkgd29yay4KICAgCjE5OTktMDYtMDkgMTg6MjkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgRkFRCiwgSU5TVEFMTCwgTkVXUywgUkVBRE1FLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtYWtldGFyZ2V0LAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCiAgIAoxOTk5LTA2LTA5IDA2OjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogcmVvcmRlciBQRFUgYW5kIHNlc3Npb24gZmllbGRzIG1vcmUgY2xlYXJseQogICAKMTk5OS0wNi0wOCAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywKICAgdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtKHh4X19mcmVlYnNkMi5jKSAtIGZpeCBzaXplX3QgdG8gYnVpbGQgb24gRnJlZUJTRCAyLjIueAogICAKMTk5OS0wNi0wOCAwODo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAtICByZW1vdmVkIGFsbCB1c2VzIG9mICdzdHJ1Y3QgcGFja2V0X2luZm8nIChzdWJzdW1lZCBpbnRvICdzdHJ1Y3Qgc25tcF9wZHUnKQogICAKMTk5OS0wNi0wOCAwNzo0MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjMtbGluZS40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIC0oaHJfZmlsZXN5cy5jKSBmaXggbWVtb3J5IGxlYWsgd2hlbiBIQVZFX0dFVEZTU1RBVCBpcyBkZWZpbmVkLgogICAKMTk5OS0wNi0wNyAxMzowNCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCiAgIAoxOTk5LTA2LTA3IDA3OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMKLCB1ZHAuYzoKCiAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCiAgIAoxOTk5LTA2LTA0IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKICAgCjE5OTktMDYtMDIgMTI6MTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAtIChzbm1wX2FsYXJtLjMpOiBkb2N1bWVudCB0aGUgbmV3IHNubXBfYWxhcm0oKSBjYWxscy4KICAgCjE5OTktMDYtMDEgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KICAgCjE5OTktMDYtMDEgMDc6MzAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCiAgIAoxOTk5LTA2LTAxIDAyOjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCiAgIAoxOTk5LTA2LTAxIDAyOjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKICAgCjE5OTktMDUtMjggMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLAogICBkZWZhdWx0X3N0b3JlLmg6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgbGlicmFyeS4KICAgCjE5OTktMDUtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCiAgIAoxOTk5LTA1LTI4IDA5OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CiAgIAoxOTk5LTA1LTI4IDA5OjEyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCiAgIAoxOTk5LTA1LTI4IDA4OjU3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CiAgIAoxOTk5LTA1LTI4IDA4OjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCiAgIAoxOTk5LTA1LTI4IDA3OjAxICBkYXZlcwoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KICAgCjE5OTktMDUtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCiAgIAoxOTk5LTA1LTI3IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCiAgIAoxOTk5LTA1LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVBGV0FDQy1NSUIudHh0IChWMy1saW5lLjIpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KICAgCjE5OTktMDUtMjYgMTU6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCiAgIAoxOTk5LTA1LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4yKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgogICAKMTk5OS0wNS0yNiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtYjMuMSksIElQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjMtYjMuMSksIGhyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KICAgCjE5OTktMDUtMjYgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBpcGZ3YWNjLmggKFYzLWIzLjEpLCBpcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KICAgCjE5OTktMDUtMjYgMDg6MTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYykgLSBpbmNsIHN5cy90eXBlcyB0byBmaXggSFAtVVggOS54IGJ1aWxkCiAgIAoxOTk5LTA1LTI0IDA1OjM2ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmU6CgogICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCiAgIAoxOTk5LTA1LTIzIDA4OjA0ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0MS50eHQ6CgogICBmaWxlIHBhY2tldDEudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0yMSAxNToyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwosIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KICAgCjE5OTktMDUtMjEgMTE6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KICAgCjE5OTktMDUtMjEgMTE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gaGVhZGVyX2NvbXBsZXhfcGFyc2Vfb2lkKCkgY3JlYXRlZC4KICAgICAtIGNvbnZlcnQgZXZlcnl0aGluZyB0byBzaXplX3QuCiAgIAoxOTk5LTA1LTIxIDA1OjU0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCiAgIAoxOTk5LTA1LTIxIDA1OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCiAgIAoxOTk5LTA1LTIxIDAxOjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IEZpeCBpbmNvcnJlY3QgcG9pbnRlciBjYXN0CiAgIAoxOTk5LTA1LTIwIDAzOjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwogICAKMTk5OS0wNS0xOSAxODo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oIChWMy1saW5lLjEpLCBob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQogICAKMTk5OS0wNS0xOSAxODowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjMtbGluZS4yKSwgdmFyX3JvdXRlLmMKOgoKICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1CiAgIAoxOTk5LTA1LTE5IDA4OjAyICBtYXJ6CgogICAqIHRlc3RpbmcvcGt0Z2VuLnR4dDoKCiAgIGZpbGUgcGt0Z2VuLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTYgIG1hcnoKCiAgICogdGVzdGluZy9wYWNrZXQudHh0OgoKICAgZmlsZSBwYWNrZXQudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNzoxNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi5wbDoKCiAgIGZpbGUgcGt0Z2VuLnBsIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNS0xOSAwMjozMyAgZGF2ZXMKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKICAgCjE5OTktMDUtMTggMDk6MjMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCiAgIAoxOTk5LTA1LTE4IDA5OjAxICBtc2xpZmNhawoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCiAgIAoxOTk5LTA1LTE4IDA2OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKICAgCjE5OTktMDUtMTcgMDc6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQogICAKMTk5OS0wNS0xNyAwNDozNiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCiAgIAoxOTk5LTA1LTE3IDA0OjM0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwMzoyMCAgZGF2ZXMKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jIChWMy1saW5lLjEpLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNyAwMzoxNyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNCAxMzo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKICAgCjE5OTktMDUtMTQgMDk6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwogICAKMTk5OS0wNS0xNCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCiAgIAoxOTk5LTA1LTEzIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWMy1saW5lLjMpLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KICAgCjE5OTktMDUtMTMgMDM6NTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYyAoVjMtbGluZS4yKSwgaXAuYzoKCiAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCiAgIAoxOTk5LTA1LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYwo6CgogICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKICAgCjE5OTktMDUtMTIgMTA6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKICAgCjE5OTktMDUtMTEgMTQ6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA1LTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KICAgCjE5OTktMDUtMTEgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCiAgIAoxOTk5LTA1LTEwIDE0OjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgCWluc2lkZSBWMSBzZXNzaW9uLgogICAKMTk5OS0wNS0xMCAxNDo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTA1LTA2IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOgogICAgIC0gZml4ZXMgZm9yIGttdC4KICAgICAtIHBvcnRhYmlsaXR5IGVuaGFuY2VtZW50cy4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBkb24ndCB1c2UgSVNERigpLgogICAKMTk5OS0wNS0wNCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGRvbid0IGR1bXAga2V5bGlzdC4KICAgCjE5OTktMDUtMDQgMDA6NTAgIG5iYQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYywgc25tcGQuaCwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYwosIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBtaWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBtaWJncm91cC92MnBhcnR5L2V2ZW50LmMKLCBtaWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYzoKCiAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwogICAKMTk5OS0wNS0wNCAwMDo0NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMyAxNTozOCAgbmJhCgogICAqIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FsbF9zeXN0ZW0uaCwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaCwgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCiwgc25tcGxpYi92YWNtLmgsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKICAgCjE5OTktMDUtMDMgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgdGVzdGluZy9ULmMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KICAgCjE5OTktMDUtMDMgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KICAgCjE5OTktMDUtMDMgMDc6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiAtV2FsbCBmaXggaW5pdGlhbGl6aW5nIGEgdmFyaWFibGUuCiAgIAoxOTk5LTA1LTAxIDA3OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiByZW5hbWVkIHNubXBfY2FsbGJhY2sgdG8gc25tcF9nZW5fY2FsbGJhY2suCiAgIAoxOTk5LTA0LTI5IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBOb3RlIGNoYW5nZSBmcm9tIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMDQtMjkgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgogICAKMTk5OS0wNC0yOSAwNzozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCiAgIAoxOTk5LTA0LTI4IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBlbnVtICNkZWZpbmVzIGNyZWF0ZWQKICAgCjE5OTktMDQtMjcgMDk6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KICAgCjE5OTktMDQtMjYgMTI6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQogICAKMTk5OS0wNC0yNiAxMjoxMSAgbmJhCgogICAqIHZlcnNpb24uaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9NYWtlZmlsZS5pbgo6CgogICAKICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgIAlmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTI2IDEyOjA5ICBuYmEKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLAogICBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgc25tcHRhYmxlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgCiAgIAogICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KICAgCjE5OTktMDQtMjYgMTI6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAKICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAJc3RyaW5ncwogICAKMTk5OS0wNC0yNiAxMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKICAgCjE5OTktMDQtMjYgMTE6MjEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAKICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKICAgCjE5OTktMDQtMjYgMDk6MjEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KICAgCjE5OTktMDQtMjMgMTM6MDUgIG1zbGlmY2FrCgogICAqIFJFQURNRS50aHJlYWQ6CgogICAtIFJFQURNRS50aHJlYWQgLSBsb25nIG5lZWRlZCBkb2N1bWVudCBkZXNjcmliaW5nIGhvdyB0byB1c2UgU2luZ2xlIEFQSQogICAKMTk5OS0wNC0yMiAxMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KICAgCjE5OTktMDQtMjIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IENyZWF0ZWQgYSBuZXcgc3VwZXItZHVwZXIgbWliMmMgY29uZmlndXJhdGlvbgogICAgIGZpbGUgdGhhdCB0YWtlcyBjYXJlIG9mIGp1c3QgYWJvdXQgZXZlcnl0aGluZyBpZiB5b3UgaGF2ZSBhIG1pYiB0aGF0CiAgICAgZG9lcyBpdHMgb3duIHN0b3JhZ2UgKHJhdGhlciB0aGFuIGhhdmluZyB0byBwb2tlIHNvbWV0aGluZyBlbHNlIGZvcgogICAgIGluZm9ybWF0aW9uKS4KICAgCjE5OTktMDQtMjIgMDc6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogbWFrZSBoZWFkZXJfY29tcGxleCgpIGFjY2VwdCBOVUxMcy4KICAgCjE5OTktMDQtMjAgMjE6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlIHVuLXVzZWQgdnR5cGUsIHBhcnNlciBmaWVsZHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgogICAKMTk5OS0wNC0yMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KICAgCjE5OTktMDQtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgIC0gY25hbWUgLT4gTkFNRQogICAKMTk5OS0wNC0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCiAgIAoxOTk5LTA0LTIwIDExOjI4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OS0wNC0xOSAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgLSAodG9vbHMuaCk6IG5ldyBjb252ZW5pZW5jZSBtYWNybzogU05NUF9NQUxMT0NfU1RSVUNUKHN0cnVjdE5hbWUpLgogICAKMTk5OS0wNC0xOSAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBkb24ndCBmcmVlIHRoaW5ncyB0aGF0IGFyZSBOVUxMLgogICAKMTk5OS0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk5LTA0LTE5IDIxOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogTlVMTCBjaGVja2luZy4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgogICAKMTk5OS0wNC0xOSAyMTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCiAgIAoxOTk5LTA0LTE4IDA2OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQ6IDkgLT4gMTAKICAgCjE5OTktMDQtMTYgMjE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGVkCiAgIAoxOTk5LTA0LTE2IDIxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgogICAKMTk5OS0wNC0xNiAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KICAgCjE5OTktMDQtMTYgMjE6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0OgoKICAgLSAoRElTTUFOLVNDUklQVC1NSUIudHh0KTogYWRkZWQgdG8gbWlicyBkaXIuCiAgIAoxOTk5LTA0LTE2IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguaCk6IHByb3RvdHlwZXMuCiAgIAoxOTk5LTA0LTE2IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAogICAKMTk5OS0wNC0xNiAyMToxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgogICAKMTk5OS0wNC0xNiAwODozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlM6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgogICAKMTk5OS0wNC0xNiAwNzo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQ6CgogICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAogICAKMTk5OS0wNC0xNiAwNzozMCAgbXNsaWZjYWsKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgogICAKMTk5OS0wNC0xNCAxNjo1NiAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYzoKCiAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKICAgCjE5OTktMDQtMTQgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKICAgCjE5OTktMDQtMTQgMTU6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCiAgIAoxOTk5LTA0LTE0IDE1OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KICAgCjE5OTktMDQtMTQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCiAgIAoxOTk5LTA0LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgogICAKMTk5OS0wNC0xMyAxNjowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKICAgCjE5OTktMDQtMTMgMTU6NTggIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzdXBwb3J0IC1QLgogICAKMTk5OS0wNC0xMyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wNC0xMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgogICAKMTk5OS0wNC0xMyAxNTozNiAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0OgoKICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCiAgIAoxOTk5LTA0LTEzIDE1OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgogICAKMTk5OS0wNC0xMyAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCiAgIAoxOTk5LTA0LTEzIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDQtMTMgMDg6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gYWRkIGEgVVJMIHJlZmVyZW5jZSB0byBjeWd3aW4uCiAgIAoxOTk5LTA0LTEyIDIyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgogICAKMTk5OS0wNC0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KICAgCjE5OTktMDQtMTIgMjI6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaDoKCiAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCiAgIAoxOTk5LTA0LTEyIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCiAgIAoxOTk5LTA0LTEyIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogZGVhbCB3aXRoIG1vcmUgY29tcGxleCBkYXRhCiAgICAgc3RydWN0dXJlcyB3aXRoIG11bHRpcGxlIGFuZCB2YXJpYWJsZSBsZW5ndGggaW5kZXhlcy4KICAgCjE5OTktMDQtMTIgMjI6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IG5ldyBSRUFETUUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OS0wNC0wNyAxNTowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgogICAKMTk5OS0wNC0wNyAxMjoyMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0oYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMgc25tcGxpYi90b29scy5jKSBtb3ZlIGtleXN0cm9rZSBmdW5jdGlvbnMgdG8gYXBwbGljYXRpb24uCiAgIAoxOTk5LTA0LTA3IDEyOjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYzoKCiAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTA0LTA3IDExOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgogICAKMTk5OS0wNC0wNyAxMTozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOiByZW1vdmFsIG9mIGR1cGxpY2F0ZSBmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYyk6IGRlYnVnZ2luZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDQtMDcgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3ZhY21fdmFycy5jLCBzbXV4L3NtdXguYwosIHNubXB2My9zbm1wRW5naW5lLmMsIHNubXB2My91c21Vc2VyLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwo6CgogICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KICAgCjE5OTktMDQtMDcgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzbm1wdjMuYzoKCiAgIC0gKHNjYXBpLmMsIHNubXB2My5jKTogZGVidWcgdHlwb3MgYW5kIGluY2x1ZGUgZmlsZSBhZGRpdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCiAgIAoxOTk5LTA0LTA3IDEwOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICAtIChkZWJ1Zy5oKTogcmVtb3ZlZC4KICAgCjE5OTktMDQtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgIG5ld2VyIG1vZGVsLgogICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA0LTA3IDA2OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uaAosIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCiAgIAoxOTk5LTA0LTA2IDIyOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAogICAKMTk5OS0wNC0wNiAyMjoxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgogICAKMTk5OS0wNC0wNiAyMToyMyAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwo6CgogICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKICAgCjE5OTktMDQtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgogICAKMTk5OS0wNC0wNiAxNToxMiAgaGFyZGFrZXIKCiAgICogSVNTVUVTLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oCiwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9tMm0uaCwgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIGFwcHMvLmN2c2lnbm9yZQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC11Y2Quc2gKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiwgbWlicy9TTk1QdjItVEMudHh0LCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvZGVidWcuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXAuYwosIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5oLAogICBzbm1wbGliL3ZpZXcuYywgdGVzdGluZy8uY3ZzaWdub3JlLAogICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9ULmMsCiAgIHRlc3RpbmcvVC5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsCiAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcwosIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsCiAgIHRlc3RpbmcvZGVtby5yZW1vdGUsIHRlc3RpbmcvZGVtbzIsCiAgIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zLCB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgogICAKMTk5OS0wNC0wNiAxMTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9wcm9jLmMsCiAgIGlwZndjaGFpbnMvbGliaXBmd2MuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pcC5jCiwgbWliSUkvcm91dGVfd3JpdGUuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jCiwgc211eC9zbXV4LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSBhbm90aGVyIHJvdW5kIG9mIEFOU0ktZnlpbmcgdGhlIGFnZW50IGNvbXBsZXRlZC4KICAgCjE5OTktMDQtMDYgMTA6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgogICAKMTk5OS0wNC0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KICAgCjE5OTktMDQtMDUgMTU6NTkgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gQnVpbGQgdXNpbmcgQ3lnV2luMzIgKGluY2x1ZGVzIE5pZWxzIEIuJ3Mgc25tcF92YXJzLmMgcGF0Y2gpLgogICAKMTk5OS0wNC0wNSAxNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgogICAKMTk5OS0wNC0wNSAxNDoxMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBpZi5jLCB3aW5zdHViLmMKLCB3aW5zdHViLmg6CgogICAtIGJ1aWxkIHNubXBuZXRzdGF0IHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTE6MDYgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KICAgCjE5OTktMDQtMDEgMTM6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgogICAKMTk5OS0wMy0yOCAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gd2hlbiB1c2luZyBjb3B5X3dvcmQoKSBkb24ndCBza2lwIHNwYWNlcywgc2luY2UgaXQgZG9lcyB0aGF0LgogICAKMTk5OS0wMy0yOCAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgIHNubXBNb2R1bGVzLjEyLCB3aGVyZSB0aGV5IHNob3VsZCBiZS4KICAgCjE5OTktMDMtMjMgMTA6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVnZXhwIGZpeC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKG1pYmRlZnMuaCwgc3RydWN0LmgsIGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oLCBwcm9jLmMsIHByb2MuaCwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgIG5leHQgc3BhY2UuCiAgIAoxOTk5LTAzLTIzIDEwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCiAgIAoxOTk5LTAzLTE5IDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGdldC5jLCBzbm1wd2Fsay5jKTogZml4ZWQgaW5pdGlhbGl6YXRpb24gYW5kIHVzYWdlIG9mICJmYWlsdXJlcyIuCiAgIAoxOTk5LTAzLTE4IDA4OjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCiAgIAoxOTk5LTAzLTE3IDEzOjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKICAgCjE5OTktMDMtMTYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBtaWJncm91cC9kdW1teS9kdW1teS5jLAogICBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYywgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYwosIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCjoKCiAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAogICAKMTk5OS0wMy0xNiAxMToyMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSBjb25zaXN0ZW50IGVycm9yIHJldHVybi4KICAgCjE5OTktMDMtMTYgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZnJlZWJzZC4KICAgCjE5OTktMDMtMTYgMDg6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiByZW1vdmVkIGEgYm9ndXMgbmV3LWxpbmUuCiAgIAoxOTk5LTAzLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogZG9uJ3QgZG8gYSBtYWtlIGluc3RhbGwgb2YgZGxtb2RzCiAgIAoxOTk5LTAzLTE1IDE2OjAyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FLCBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjEgKQogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWFyayB3aXRoIHZlcnNpb24gbnVtLgogICAKMTk5OS0wMy0xNSAxNjowMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjYuMS4KICAgCjE5OTktMDMtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUzoKCiAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCiAgIAoxOTk5LTAzLTE1IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KICAgCjE5OTktMDMtMTUgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgogICAKMTk5OS0wMy0xNSAxNTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCiAgIAoxOTk5LTAzLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmg6CgogICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTE1IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCiAgIAoxOTk5LTAzLTE1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KICAgCjE5OTktMDMtMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCiAgIAoxOTk5LTAzLTE1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYyk6CiAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgogICAKMTk5OS0wMy0xNSAwNTo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBsaWJzbm1wLmgsIG1pYi5jLAogICBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiBsaWJzbm1wLmggbWliLmMgc25tcC5oIHNubXBfYXBpLmMpIHVwZGF0ZSBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xMiAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy86IElQRldDSEFJTlMtTUlCLnR4dCwKICAgaXBmd2NoYWlucy5oOgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0LCBpcGZ3Y2hhaW5zLmgpOiBtb3ZlIHRvIGEgc3ViLW9pZCBpbiB0aGUKICAgICBleHBlcmltZW50YWwgdHJlZS4KICAgCjE5OTktMDMtMTIgMTU6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL0lQRldDSEFJTlMtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvbGliaXBmd2MuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywKICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KICAgCjE5OTktMDMtMTIgMTU6MjMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9uJ3QgcHJpbnQgbW9kdWxlIGxpc3QgaGVyZS4uLiAgdGVsbCB0aGVtIHRvIGxvb2sgYXQKICAgICBjb25maWd1cmUgLS1oZWxwLgogICAKMTk5OS0wMy0xMiAxNDo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgaG9zdC9ocl9zeXN0ZW0uaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXF1aXJlIGxvZ2ljOyBmaXggc3ByaW50ZiBjYWxscyB0byBjb21waWxlIHVuZGVyIFN1bk9TIDQuMS54LgogICAKMTk5OS0wMy0xMiAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5oKTogTUFUQ0hfRkFJTEVEIC0+IC0xLCBzaW5jZSBzb21lIHVzZSBpdC4KICAgCjE5OTktMDMtMTIgMTQ6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCiAgIAoxOTk5LTAzLTEyIDE0OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYywgaHJfc3lzdGVtLmg6CgogICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgIC0gKGhyX3N3cnVuLmMpIC0gc29sYXJpczI6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgogICAKMTk5OS0wMy0xMiAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBwcm90ZWN0IHN0cmNweSgpIGFnYWluc3QgYSBudWxsIHBhc3N3b3JkIHNwZWNpZmllZCBvbiB0aGUKICAgICBjb25maWcgbGluZS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OS0wMy0xMiAxMjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeCBhc25fcGFyc2UgZnVuY3Rpb25zIHRvIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBzaXplIHZhcmlhYmxlLgogICAKMTk5OS0wMy0xMiAxMTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKICAgCjE5OTktMDMtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBkdW1teS9kdW1teS5jLAogICBleGFtcGxlcy93b21iYXQuYywgaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9kaXNrLmMKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMKLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYywKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9pY21wLmMKLCBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsCiAgIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3N5c09SVGFibGUuYywKICAgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pc2MvZGxtb2QuYywgdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgcmVnaXN0cnkuYyk6IGZpeGVkIE1BVENIX0ZBSUxFRC9TVUNDRUVERUQgZGVmaW5lcyAtPiB1dGlsX2Z1bmNzLmguCiAgIAoxOTk5LTAzLTEyIDA3OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFVzZSBNQVRDSF9GQUlML1NVQ0NFRURFRCBpbiB1dGlsX2Z1bmNzLmgKICAgCjE5OTktMDMtMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmg6CgogICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgLSBmaXhlZCBwcm90b3R5cGVzIGZvciBERUJVR1AoKSBhbmQgREVCVUdQT0lEKCkuCiAgIAoxOTk5LTAzLTExIDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeGVkIGEgY291cGxlIG9mIGJ1Z3MgYW5kIGFuc2knaWZpZWQgdGhpbmdzLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KICAgCjE5OTktMDMtMTAgMTU6MTQgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IE5BTUUgLT4gT0lELgogICAKMTk5OS0wMy0xMCAxNTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IG1vdmVkIGZyb20gQUdFTlQgdG8gYXZvaWQgbm9uLWNhc2Utc2Vuc2l0aXZlIHczMiBjb25mbGljdHMuCiAgIAoxOTk5LTAzLTA4IDE0OjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKHNubXBuZXRzdGF0OmlmLmMsIHJvdXRlLmMpIGxpbWl0IGludGVyZmFjZSBuYW1lIHNpemVzIHRvIGZpdCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCjE5OTktMDMtMDggMDk6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYykgQ29tcGxldGUgRGF2ZSBTaGllbGRzJyBwYXRjaCBmb3IgY29udGludWUgYWZ0ZXIgZXJyb3IuCiAgIAoxOTk5LTAzLTA4IDA1OjA3ICBtc2xpZmNhawoKICAgKiBBR0VOVDoKCiAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKICAgCjE5OTktMDMtMDggMDU6MDEgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KICAgCjE5OTktMDMtMDggMDQ6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCiAgIAoxOTk5LTAzLTA4IDA0OjAyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAocGFyc2UuYykgLSBmaXggc3ViaWQgaW5pdDsgcmVtb3ZlIHVzZWxlc3MgJy1QbCcgb3B0aW9uLgogICAKMTk5OS0wMy0wNSAxNzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42ICkKICAgCjE5OTktMDMtMDUgMTc6MzQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IGZpbmFsIHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgogICAKMTk5OS0wMy0wNSAxNzoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IERhdmUgU2hpZWxkJ3MgbmV3IGRvY3VtZW50LgogICAKMTk5OS0wMy0wNSAxNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmg6CgogICAtIChtaWJJSS9zeXN0ZW0uaCk6IHJlbW92ZWQKICAgCjE5OTktMDMtMDUgMTc6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBkbyBlcnJvciByZXBvcnRpbmcgZm9yIHNvbGFyaXMgbWVtb3J5IHN1cHBvcnQuCiAgIAoxOTk5LTAzLTA1IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgogICAKMTk5OS0wMy0wNSAxNjowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCiAgIAoxOTk5LTAzLTA1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgZXhhbXBsZXMvd29tYmF0LmMKLCBob3N0L2hyX25ldHdvcmsuYywgbWliSUkvc25tcF9taWIuaCwKICAgbWliSUkvc3lzdGVtX21pYi5oLCB1Y2Qtc25tcC9kaXNrLmgsCiAgIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgdWNkLXNubXAvZmlsZS5oLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgdWNkLXNubXAvcGFzcy5oLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmgKLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgZGlzay5oLCBlcnJvcm1pYi5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwgbWVtb3J5X3NvbGFyaXMyLmgsIHBhc3MuaCwKICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIAoxOTk5LTAzLTA1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KICAgCjE5OTktMDMtMDUgMTU6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCiAgIAoxOTk5LTAzLTA1IDExOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIAogICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgogICAKMTk5OS0wMy0wNSAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCiAgIAoxOTk5LTAzLTA1IDEwOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCiAgIAoxOTk5LTAzLTA1IDEwOjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgIC0gZXhwbGljaXQgY29tcGFyaXNvbiB3aXRoIE1BVENIX0ZBSUxFRAogICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAtIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdmFyaWFibGUgaW5pdGlhbGlzYXRpb24gaW4gdGhlCiAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgIAkJIHNlZSB3aHkgInByb2Zlc3Npb25hbCIgcHJvZ3JhbW1lcnMgc2hvdWxkIGJlIGV4ZW1wdCFdCiAgIAogICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwogICAKMTk5OS0wMy0wNSAwOTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIAogICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXk6IHR2X3VzZWMgd2FzIG1pbGxpc2VjcyAsIHJldHVybiBub3cgPSAwCiAgIAoxOTk5LTAzLTA0IDE4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIAogICAoc25tcF9hcGkuYykgLSBleHBvc2Ugc25tcF9mcmVlOyBzbm1wX3BkdV9hZGRfdmFyaWFibGUgcmV0dXJucyBwdHIgdG8gdmFyIGZvcgogICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCiAgIAoxOTk5LTAzLTA0IDE3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCB3aW4zMi9jb25maWcuaAo6CgogICAKICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgRml4IHByb3RvdHlwZXMuCiAgIAoxOTk5LTAzLTA0IDE3OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAKICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgogICAKMTk5OS0wMy0wNCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICBtZW1vcnkuYywgYWxhcm0uYywgc25tcF9hcGkuYyk6CiAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCiAgIAoxOTk5LTAzLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk5LTAzLTA0IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIC0gKHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdHlwbyBmaXhlZC4KICAgCjE5OTktMDMtMDQgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSB1cGRhdGUuCiAgIAoxOTk5LTAzLTA0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICBleGFtcGxlcy9leGFtcGxlLmMsIG1pYklJL3N5c09SVGFibGUuYywgbWlzYy9pcGZ3YWNjLmMKLCB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZmlsZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiwgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgIHZtc3RhdF9mcmVlYnNkMi5jKToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgogICAKMTk5OS0wMy0wNCAxNToyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAKICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCiAgIAoxOTk5LTAzLTA0IDE1OjI1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAKICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwogICAKMTk5OS0wMy0wNCAxNToxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgdWNkLXNubXAvbG9hZGF2ZS5jCjoKCiAgIAogICAKICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKICAgCjE5OTktMDMtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KICAgCjE5OTktMDMtMDQgMDk6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KICAgCjE5OTktMDMtMDQgMDk6MzggIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlcywgbG9jYWwvZWNlLXNubXBkLmNvbmYsCiAgIGxvY2FsL2ZpeHByb2MuY29uZjoKCiAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgLSByZW1vdmVkIGVjZSBzcGVjaWZpYyBjb25maWcgZmlsZXMgZnJvbSB0aGUgcmVwb3NpdG9yeS4KICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCiAgIAoxOTk5LTAzLTA0IDA5OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAtIGZpeCBsb2FkIGF2ZXJhZ2Ugb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDQgMDk6MjQgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgCiAgIAogICAoTWFrZWZpbGUuaW4pIC0gZmluZCBtaWJkZWZzLmggd2hlbiBub3QgYnVpbGRpbmcgaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoxOTk5LTAzLTA0IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jCiwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgCiAgIAogICAoYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAKICAgKGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKICAgCjE5OTktMDMtMDQgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgogICAKMTk5OS0wMy0wNCAwNDowOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxMCApCiAgIAoxOTk5LTAzLTAzIDE4OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KICAgCjE5OTktMDMtMDMgMTg6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDMtMDMgMTc6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUKLCBUT0RPLCBidWctcmVwb3J0LCBhZ2VudC9zbm1wZC5jLAogICBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FLCBUT0RPLCBidWctcmVwb3J0LCBzbm1wZC5jLAogICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KICAgCjE5OTktMDMtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDMgMTA6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBhbnNpJ2lmeSB0aGUgY29uZmlnIGZ1bmN0aW9uLgogICAKMTk5OS0wMy0wMyAwODoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCiAgIAoxOTk5LTAzLTAzIDA4OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgogICAKMTk5OS0wMy0wMiAxNToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAtIC1XYWxsIHR5cGUgZml4ZXMuCiAgIAoxOTk5LTAzLTAyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IHR5cGVjYXN0IGZ1bmN0aW9uIHdpdGggKHZvaWQpLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5oOgoKICAgLSAoc211eC5oKTogdG9wIGxldmVsIHNtdXggZmFrZSBtb2R1bGUgaGVhZGVyLgogICAKMTk5OS0wMy0wMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICBzbm1wX2RlYnVnLmgpOgogICAgIC0gbmV3IGZsYWc6ICAtLWRpc2FibGUtZGVidWdnaW5nIHRvIGNvbXBsZXRlbHkgdHVybiBvZmYgaXRzIHN1cHBvcnQuCiAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMgZm9yIGNvbXBpbGF0aW9uIGludG8gdGhlIGFnZW50LgogICAKMTk5OS0wMy0wMiAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgogICAKMTk5OS0wMy0wMiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3ZhY21fdmFycy5jCiwgbWlzYy9pcGZ3YWNjLmM6CgogICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAtIGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nICgpXS4KICAgCjE5OTktMDMtMDIgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIERvbid0IGRlZmluZSBNQVhfTkFNRV9MRU4gaWYgZGVmaW5lZCBzb21ld2hlcmUgZWxzZS4KICAgCjE5OTktMDMtMDEgMTc6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKToKICAgICAtIGFsbG93IG51bGwgbGVuZ3RoIHBhc3N3b3Jkcy4KICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoxOTk5LTAzLTAxIDE2OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KICAgCjE5OTktMDMtMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi86IGRlcy4xLCBkZXMuMzoKCiAgIC0gKGRlcy4xLCBkZXMuMyk6IHJlbW92ZWQgdW51c2VkIG1hbnVhbCBwYWdlcy4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byBFQ0UgZGVwdC4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZgosIHZhcmlhYmxlcy41OgoKICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgdmFyaWFibGVzLjUpOiBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzcGVsbCBjaGVjay4KICAgCjE5OTktMDMtMDEgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gcmVtb3ZlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCB0aGF0IHdhc24ndCBuZWVkZWQuCiAgIAoxOTk5LTAzLTAxIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhbGFybS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KICAgCjE5OTktMDMtMDEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCiAgIAoxOTk5LTAzLTAxIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCiAgIAoxOTk5LTAzLTAxIDEzOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgY29tcGFyZV90cmVlKCkgZ2xvYmFsLgogICAKMTk5OS0wMy0wMSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlY2FzdGluZyBmb3IgY2VydGFpbiBmdW5jdGlvbnMgdG8gKGNoYXIgKikuCiAgIAoxOTk5LTAzLTAxIDEyOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gYWRkZWQgTUlOX09JRF9MRU4gZm9yIGluc3RydWN0aW9uYWwgdXNlIG1vc3RseSAoaXRzIHVudXNlZCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgCjE5OTktMDMtMDEgMTI6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBzcHJpbnRmIGFyZyBtaXNtYXRjaC4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgY2FzZSBlbnRyaWVzLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYzoKCiAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBlcnJubyB2YXJpYWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW5hbWluZyBvZiB2YXJpYWJsZXMgYXdheSBmcm9tIHN5c3RlbSBmdW5jdGlvbiBuYW1lcyAoaW5kZXggLT4gbGluZGV4KS4KICAgCjE5OTktMDMtMDEgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSBpbml0aWFsaXplIHZhcmlhYmxlIHRvIDAuCiAgIAoxOTk5LTAzLTAxIDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgogICAKMTk5OS0wMi0yNiAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKICAgCjE5OTktMDItMjYgMTY6MTEgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwKICAgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZgosIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCiAgIAoxOTk5LTAyLTI2IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNiByZWxlYXNlLgogICAKMTk5OS0wMi0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgogICAKMTk5OS0wMi0yNiAxNTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBDb250aW51ZSBhZnRlciByZXNlcnZlZCB3b3JkIGVycm9yIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCiAgIAoxOTk5LTAyLTI2IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGxvYWRhdmUuYywgbG9hZGF2ZS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KICAgCjE5OTktMDItMjUgMTA6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSAoUkVBRE1FLCB1Y2Rfc25tcC5oLCBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgpOiBQYXRjaAogICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgogICAKMTk5OS0wMi0yNCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCiAgIAoxOTk5LTAyLTI0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KICAgCjE5OTktMDItMjIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIERvbid0IHByaW50ICJjYW4ndCBmaW5kIG1vZHVsZSBYWFgiIG1lc3NhZ2VzIHdpdGhvdXQgd2FybmluZ3MgdHVybmVkIG9uLgogICAKMTk5OS0wMi0yMiAwOToxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCiAgIAoxOTk5LTAyLTE3IDE2OjIzICBkcmVlZGVyCgogICAqIGxvY2FsL3NubXAtdWNkLnNoOgoKICAgZmlsZSBzbm1wLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDItMTcgMTY6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiB3aW5zdHViLmMsIHdpbnN0dWIuaDoKCiAgIC0gKHdpbnN0dWIuYywgd2luc3R1Yi5oKTogcGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBnZW5lcmljIHdpbmRvd3MgQVBJIHJlcGxhY2VtZW50cy4KICAgCjE5OTktMDItMTcgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCiAgIAoxOTk5LTAyLTE3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcAo6CgogICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbjMyIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMKOgoKICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZGVidWdfYXJncyB3YXMgZGVjbGFyZWQgdHdpY2UuCiAgICAgLSBoZWFkZXIgZml4ZXMgZm9yIHdpbjMyLgogICAKMTk5OS0wMi0xNyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRvbid0IHVzZSBhIHZhcmlhYmxlIGNhbGxlZCAndGltZScuICBUc2sgdHNrLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgogICAKMTk5OS0wMi0xNyAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgogICAKMTk5OS0wMi0xNyAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGUgYWdhaW4gZm9yIGJldHRlciBzdGlsbCBvdXRwdXQuCiAgIAoxOTk5LTAyLTE3IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgaW5ldC5jLCBtYWluLmMsCiAgIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcG5ldHN0YXQgd2luMzIgY29tcGF0aWJsZS4KICAgCjE5OTktMDItMTcgMTU6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2FnZSBmaXguCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSBwcm90b3R5cGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgLSBmaXggaWZfbmFtZSB2YXJpYWJsZSBieSBtYWtpbmcgaXQgc3RhdGljLgogICAKMTk5OS0wMi0xNiAxNzowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTExIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQogICAKMTk5OS0wMi0xMSAxNjo0NiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCiAgIAoxOTk5LTAyLTExIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICB3cm9uZyBsZW5ndGggYW5kIGNvdWxkIHN1Y2NlZWQgYXQgdGltZXMgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZS4KICAgCjE5OTktMDItMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLAogICBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgLSBNb3JlIGJ1ZiBzaXplIHN0YW5kYXJkaXphdGlvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAKMTk5OS0wMi0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KICAgCjE5OTktMDItMTEgMTY6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgIC0gbWFrZSB0aGUgbGlicmFyaWVzIHByaW50XyBmdW5jdGlvbnMgdXNlIHRoZSBmcHJpbnRfIGZ1bmN0aW9uCiAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgogICAKMTk5OS0wMi0wOSAxNDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogaW5jcmVhc2UgYnVmZmVyIHNpemUgZm9yIG9pZCBwcmludGluZy4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogZGVmaW5lIGEgc3ltYm9sIGZvciBPSUQgcHJpbnRpbmcncyBzdG9yYWdlIGJ1ZmZlciBzaXplLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHR5cG8uCiAgIAoxOTk5LTAyLTA5IDE0OjEwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KICAgCjE5OTktMDItMDggMjM6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy86IGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jCiwgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIGZpeGVzLgogICAKMTk5OS0wMi0wOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluY2x1ZGUgdXBkYXRlcy4KICAgCjE5OTktMDItMDggMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmgKLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50LyopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgogICAKMTk5OS0wMi0wOCAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkdW1teS9kdW1teS5jLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMKLCBob3N0L2hyX2RldmljZS5oLCBob3N0L2hyX2Rpc2suYywgaG9zdC9ocl9kaXNrLmgKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9maWxlc3lzLmgsCiAgIGhvc3QvaHJfbmV0d29yay5jLCBob3N0L2hyX25ldHdvcmsuaCwKICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3ByaW50LmgsIGhvc3QvaHJfcHJvYy5jLAogICBob3N0L2hyX3Byb2MuaCwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3RvcmFnZS5oCiwgaG9zdC9ocl9zd2luc3QuYywgaG9zdC9ocl9zd2luc3QuaCwKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N3cnVuLmgsIGhvc3QvaHJfc3lzdGVtLmMKLCBob3N0L2hyX3N5c3RlbS5oLCBtaWJJSS9hdC5jLCBtaWJJSS9hdC5oLAogICBtaWJJSS9pY21wLmMsIG1pYklJL2ljbXAuaCwgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmgsIG1pYklJL2lwLmMsIG1pYklJL2lwLmgsCiAgIG1pYklJL3JvdXRlX3dyaXRlLmgsIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3NubXBfbWliLmgKLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3N5c09SVGFibGUuaCwKICAgbWliSUkvc3lzdGVtLmgsIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvc3lzdGVtX21pYi5oCiwgbWliSUkvdGNwLmMsIG1pYklJL3RjcC5oLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdWRwLmgsIG1pYklJL3ZhY21fdmFycy5jLCBtaWJJSS92YWNtX3ZhcnMuaAosIG1pYklJL3Zhcl9yb3V0ZS5jLCBtaWJJSS92YXJfcm91dGUuaCwKICAgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oLCBzbXV4L3NubXBfYmdwLmMsCiAgIHNtdXgvc25tcF9iZ3AuaCwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX29zcGYuaAosIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgsCiAgIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvZGlzay5oLCB1Y2Qtc25tcC9lcnJvcm1pYi5jCiwgdWNkLXNubXAvZXJyb3JtaWIuaCwgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvZmlsZS5oCiwgdWNkLXNubXAvaHB1eC5jLCB1Y2Qtc25tcC9ocHV4LmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wYXNzLmgsCiAgIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMKLCB1Y2Qtc25tcC9yZWdpc3RyeS5oLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0LmgsIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgdjJwYXJ0eS9hY2xfdmFycy5jLAogICB2MnBhcnR5L2FjbF92YXJzLmgsIHYycGFydHkvYWxhcm0uYywgdjJwYXJ0eS9hbGFybS5oCiwgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgdjJwYXJ0eS9ldmVudC5jLCB2MnBhcnR5L2V2ZW50LmgsIHYycGFydHkvcGFydHlfdmFycy5jCiwgdjJwYXJ0eS9wYXJ0eV92YXJzLmgsIHYycGFydHkvdmlld192YXJzLmMsCiAgIHYycGFydHkvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogc3lzL3R5cGVzLmgKICAgCjE5OTktMDItMDggMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgogICAKMTk5OS0wMi0wOCAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KICAgCjE5OTktMDItMDggMTU6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCiAgIAoxOTk5LTAyLTA4IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBJZkluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogbm90aGluZy4gIHJlYWxseS4KICAgCjE5OTktMDItMDggMTU6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgdGltZSAtPiBtX3RpbWUuCiAgIAoxOTk5LTAyLTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSB0cmVlX2NvbXBhcmUoKSBiZSBhIHJlYWwgdHlwZWRlZidlZCBmdW5jdGlvbiBhZ2FpbiBub3cgdGhhdAogICAgICAgcXNvcnRpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDItMDggMTU6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGsucG0gbWVudGlvbi4KICAgCjE5OTktMDItMDggMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2huIFBvbHN0cmE6CiAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWVudGlvbiB0aGF0IHRoZSBtZW1vcnkgc2VjdGlvbiBpc24ndCBzdXBwb3J0ZWQgb24gYWxsCiAgICAgICBhcmNoaXRlY3R1cmVzLgogICAKMTk5OS0wMi0wMiAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIChocl9wcm9jLmMpOiB1c2UgWzBdIGluZGV4IG9mIGxvYWQgYXZlcmFnZSB0YWJsZS4KICAgCjE5OTktMDItMDIgMjI6MDEgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KICAgCjE5OTktMDItMDIgMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMi0wMiAxNDo0OCAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CiAgIC0gQ29kZSBhZGRlZCB0byBzdXBwb3J0IHRoZSB0YXJnZXQgTUlCLCBzcGVjaWZpY2FsbHkgdGhlIGFkZHJlc3MgYW5kCiAgICAgcGFyYW1zIHRhYmxlLgogICAKMTk5OS0wMi0wMiAxNDozNCAgYmFlcm0KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBVcGRhdGVkIGNvcHlfd29yZCB0byBhY2NlcHQgcXVvdGVkIHN0cmluZ3MsIHdpdGggaW5jbHVkZWQgd2hpdGUKICAgICAgIHNwYWNlcy4gJ1wnIGVzY2FwZXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuCiAgIAoxOTk5LTAyLTAyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgogICAKMTk5OS0wMi0wMiAxMzozMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgMjAzNiAtPiAyMDM4CiAgIAoxOTk5LTAxLTI2IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgogICAKMTk5OS0wMS0yNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgogICAKMTk5OS0wMS0yNSAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgIC0gLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gdGVzdCBpZiBfX0ZVTkNUSU9OX18gaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb21waWxlci4KICAgCjE5OTktMDEtMjUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9kZWJ1Zy5oKTogc3BlY2lhbCB0ZXN0IGZvciBfX0ZVTkNUSU9OX18gYmVmb3JlIHVzaW5nIGl0LgogICAKMTk5OS0wMS0yNSAxMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgogICAKMTk5OS0wMS0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsCiAgIHN5c3RlbS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2kgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCiAgIAoxOTk5LTAxLTI1IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYwosIHNubXB0cmFwLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGluZXQuYywgbWFpbi5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gbW9yZSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCiAgIAoxOTk5LTAxLTIxIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KICAgCjE5OTktMDEtMjEgMDg6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfYXBpLmMKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgIEouIFNsaWZjYWs6CiAgICAgLSBOT19OVUxMX0NPTVVOSVRZIC0+IE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZLgogICAKMTk5OS0wMS0yMSAwODozOSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCiAgIAoxOTk5LTAxLTIwIDE3OjExICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQogICAKMTk5OS0wMS0yMCAxNzowNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiByYW4gYXV0b2hlYWRlcgogICAKMTk5OS0wMS0yMCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gYWxsb3cgemVybyBsZW5ndGggKGxlZ2FsKSBjb21tdW5pdHkgc3RyaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZGVidWdnaW5nIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGV4cG9ydCBzZGxpc3QgYW5kIHNkbGVuIHZhcmlhYmxlcy4KICAgCjE5OTktMDEtMjAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0KTogI2lmZGVmIFJQTSBwcm90ZWN0IGEgZnJlZSByb3V0aW5lLgogICAKMTk5OS0wMS0yMCAxNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiB0eXBvCiAgIAoxOTk5LTAxLTIwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTozMCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKICAgCjE5OTktMDEtMjAgMTU6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGRlZCB2ZXJzaW9uIHN0YW1wLgogICAKMTk5OS0wMS0yMCAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdWNkLXNubXAtaW5jbHVkZXMuaC4KICAgCjE5OTktMDEtMjAgMTU6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBtaW5pbWFsaXNoIGluY2x1ZGUgc2V0IGZvciBsaWJyYXJ5IGNsaWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgIC0gbGludXggMi4xIGtlcm5lbCBuZWVkcyBhc20vcGFnZS5oIChhbGwgaW5jbHVkZXMgbmVlZCB0byBiZSByZS13cml0dGVuKS4KICAgCjE5OTktMDEtMjAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCiwgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYwo6CgogICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgIC0gcHJvdGVjdCBnZXRfYWRkcmVzcyBjYWxscyBhZ2FpbnN0IE5VTEwgcG9pbnRlciByZXR1cm5zLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAtIGNoZWNrIGZvciBzeXMvc3RyZWFtLmggKFNDTykuCiAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgogICAKMTk5OS0wMS0yMCAxNToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgogICAKMTk5OS0wMS0yMCAxMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYXBwcy8uY3ZzaWdub3JlLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi92YWNtLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLAogICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDEyOjIxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KICAgCjE5OTktMDEtMjAgMTI6MjAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KICAgCjE5OTktMDEtMjAgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50Ly5wdXJlLCBzbm1wbGliLy5wdXJlOgoKICAgLSAoLnB1cmUsIC5wdXJlLCAucHVyZSk6IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTE5IDIwOjAxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAtIHNubXBsaWIvcGFyc2UuYyAtIG1pbm9yIHRvdWNodXAgb2YgaW5jbHVkZXM7IHN5c3RlbS5oIGR1cCByZW1vdmVkCiAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgLSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAtIHNubXBfcGFyc2VfYXJncyBuZWVkcyBhIG5ldyBmdW5jdGlvbgogICAKMTk5OS0wMS0xOSAxOTo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KICAgCjE5OTktMDEtMTggMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xOCAxMDo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvdmFyX3N0cnVjdC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS5jLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oCiwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2knaWZ5IGV2ZXJ5dGhpbmcuCiAgIAoxOTk5LTAxLTE2IDIzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTYgKQogICAKMTk5OS0wMS0xNiAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgaW50NjQuYywgaW50NjQuaCwgbWQ1LmMsCiAgIG1kNS5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgKLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwKICAgc3lzdGVtLmMsIHN5c3RlbS5oLCB2YWNtLmMsIHZhY20uaCwKICAgdmlldy5jLCB2aWV3Lmg6CgogICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFzbmknaWZ5IGFsbCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTE2IDIzOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KICAgCjE5OTktMDEtMTUgMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gc211eCBwYXRjaGVzLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICAtICh2YWNtLmMpOiBERUJVR01TRyB0eXBvLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAxLTE1IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIG1pYmdyb3VwL01ha2VmaWxlLmluCiwgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jCiwgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2F0LmgsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuaCwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaAosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3AuaCwKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5oLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMKLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KICAgCjE5OTktMDEtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KICAgCjE5OTktMDEtMTUgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXAycC5jOgoKICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE0IDA5OjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KICAgCjE5OTktMDEtMDkgMjE6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIChhZ2VudC8qLmMpOgogICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAtIGltcGxlbWVudCBuZWVkZWQgLUQgZmxhZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KICAgCjE5OTktMDEtMDkgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiByZW1vdmUgb2xkIHRva2VuIHNwZWNpZmllciBpbiBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQKICAgICBmb3JtYXQgbGluZS4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBtYWluLmM6CgogICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTA5IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogVVJMIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KICAgCjE5OTktMDEtMDkgMjA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgogICAKMTk5OS0wMS0wOSAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCB2YWNtLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAtIEltcGxlbWVudCB0aGUgbmV3IHRva2VuIGJhc2VkIGRlYnVnZ2luZyBtZXNzYWdlIHN1cHBvcnQuCiAgIAoxOTk5LTAxLTA1IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgIC0gbWFrZSBtYWluKCkgcmV0dXJuIGFuIGludCBpbnN0ZWFkIG9mIHZvaWQuCiAgIAoxOTk5LTAxLTA1IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCiAgIAoxOTk5LTAxLTAyIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG5ldyBjb21wbGV0ZSBsaXN0IG9mIGlmVHlwZXMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBvaWRMZW4ncyB3ZXJlIHdyb25nIGZvciBtMm0gb2lkcy4KICAgCjE5OTgtMTItMzEgMTc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICBpbiBvbmUgbG9jYXRpb24uCiAgIAoxOTk4LTEyLTMxIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmM6CgogICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgogICAKMTk5OC0xMi0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjMtYjMuMiksIHZhY20uYzoKCiAgIC0gKHZhY20uYyk6IEVuYWJsZSBtdWx0aXBsZSBzaWRlIGJ5IHNpZGUgdmlld3MgaW4gdGhlIHZpZXcgZmFtaWx5CiAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgLSBOb3QgZG9uZSBpbiBhIGNsZWFuIGZhc2hpb24uICBNdWNoIG9mIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgc3BlZWQuCiAgIAoxOTk4LTEyLTI5IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBuZXdsaW5lcyBmcm9tIHNwcmludF92YWx1ZSgpIHdoZXJlIGFwcGxpY2FibGUuCiAgIAoxOTk4LTEyLTI2IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZGxtb2QgY29tcGlsYXRpb24gaW4gc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKSBjYWxsLgogICAKMTk5OC0xMi0yMiAxNDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KICAgCjE5OTgtMTItMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwogICAKMTk5OC0xMi0yMSAxODoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBXaW4zMiBtZW1vcnkgbGVhayBmaXhlcyBmb3Igb3BlbmRpcigpLCBldGMuCiAgIAoxOTk4LTEyLTIxIDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChmaWxlLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlIHRoZSBmaWxlIG1pYiB0byAuMTUgc28gaXQgZG9lc24ndAogICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhIC5nZGIgZmlsZSBvZiBtaW5lLgogICAKMTk5OC0xMi0yMSAwOTo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvaXBmLW1vZC5wbCwgbWlicy9JUEZJTFRFUi50eHQ6CgogICAtIChpcGYtbW9kLnBsLCBJUEZJTFRFUi50eHQpOiBQYXRjaCBmcm9tIFlhcm9zbGF2IFRlcmxldHNreToKICAgICAtIGlwZmlsdGVyIHBhc3Mgc2NyaXB0IGFuZCBtaWIgZmlsZS4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaAo6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogbWliIG9iamVjdCB0byBkaXNwbGF5IGNvbmZpZ3VyZSBvcHRpb25zLgogICAKMTk5OC0xMi0xOCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KICAgCjE5OTgtMTItMTggMTg6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KICAgCjE5OTgtMTItMTggMTg6MTEgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk4LTEyLTE4IDE4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAo6CgogICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGZpeGVzIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCiAgIAoxOTk4LTEyLTE4IDExOjM2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBvLgogICAKMTk5OC0xMi0xNyAwODowNSAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wZC11Y2Quc2g6CgogICBmaWxlIHNubXBkLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTgtMTItMTYgMDc6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHBvaW50ZXIgY2hlY2tzIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgCjE5OTgtMTItMTMgMDg6NTkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCiAgIAoxOTk4LTEyLTEzIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBKZWZmIEpvaG5zb24gdG8gdGhlIGNvbnRyaWJ1dG9ycyBsaXN0LgogICAKMTk5OC0xMi0xMyAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBKZWZmIEpvaG5zb246CiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCiAgIAoxOTk4LTEyLTEzIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgogICAKMTk5OC0xMi0xMyAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiB3YXRjaCBvdXQgZm9yIE5VTEwgZmlsZSBwb2ludGVycy4KICAgCjE5OTgtMTItMTMgMDg6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KICAgCjE5OTgtMTItMTMgMDg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwODoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNwYWNpbmcgaW4gbWliIG9wdGlvbiB1c2FnZSBmaXhlcy4KICAgCjE5OTgtMTItMTMgMDg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBkaXNrIHNpemUgZXJyb3IgZmxhZyByZXBvcnRpbmcgb24gU29sYXJpcy4KICAgCjE5OTgtMTItMTMgMDg6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5nIG5vdGVzIGZvciAzLjYuCiAgIAoxOTk4LTEyLTEzIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KICAgCjE5OTgtMTItMTMgMDc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IG5ldyBmdW5jdGlvbnM6IHNubXBfbWliX3RvZ2dsZV9vcHRpb25zKCkgYW5kIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwNzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgogICAKMTk5OC0xMi0wNSAxNjo1MiAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8ucmVtb3RlOgoKICAgZmlsZSBkZW1vLnJlbW90ZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmNtZHMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaDoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtREVNTy1NSUIudHh0OgoKICAgZmlsZSBVQ0QtREVNTy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxMTowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMi5mdW5jdGlvbnM6CgogICBmaWxlIGRlbW8yLmZ1bmN0aW9ucyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMjoKCiAgIGZpbGUgZGVtbzIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuc2V0dXBmaWxlOgoKICAgZmlsZSBkZW1vMi5zZXR1cGZpbGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAyIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZmlsZSBzbm1wLmNvbmYuNS5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI3IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBwYXNzLmM6CgogICBmaWxlIHNubXBwYXNzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaDoKCiAgIGZpbGUgdHJhbnNmb3JtX29pZHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjQgMTY6NDMgIGRyZWVkZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaWxlIGVuY29kZV9rZXljaGFuZ2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBwYXJzaW5nIGJ1ZyBmaXhlcy4KICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KICAgCjE5OTgtMTEtMjMgMTY6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMsIGlyaXguaCk6IGZpeCBsb2NhdGlvbiBvZiBfS0VSTkVMIGRlZmluZSBmb3IgaXJpeC4KICAgCjE5OTgtMTEtMjIgMDc6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjIgMDc6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZGVtbzoKCiAgIGZpbGUgZGVtbyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMTYgMjI6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHYyIHRyYXAgc2VuZCBkZWJ1Z2dpbmcuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IHVzZSB0cmFwMnNpbmsgZm9yIHYyIGhhbmRsZXJzCiAgIAoxOTk4LTExLTA2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCiAgIAoxOTk4LTEwLTI0IDIzOjA3ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvbWlzY3Rlc3QuYzoKCiAgIGZpbGUgbWlzY3Rlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMTU6MzkgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldGltZXRlc3QuYzoKCiAgIGZpbGUgZXRpbWV0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmgsIHBhc3MuaCwgcGFzc19wZXJzaXN0LmgsCiAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgIHJlYWRfY29uZmlnLmgpOgogICAgIC0gbmV3IG9wdGlvbiAtSCBvbiBjb21tYW5kIGxpbmUgdG8gcHJpbnQgb3V0IC5jb25mIGZpbGUgZGlyZWN0aXZlcwogICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICBzcGVjaWZ5aW5nIG9mIGEgaGVscCBsaW5lLgogICAKMTk5OC0xMC0yMyAxMzo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgogICAKMTk5OC0xMC0yMyAxMzo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc2VydCBAIHNpZ24uCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5zaDoKCiAgIGZpbGUgVC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgZmlsZSBldmFsX3Rlc3RsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaWxlIGV2YWxfdG9vbHMuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIGZpbGUgZXZhbF9zdWl0ZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2g6CgogICBmaWxlIGV2YWxfb25lcHJvZ3JhbS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ULmM6CgogICBmaWxlIFQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBmaWxlIFJFQURNRSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBmaWxlIHRlc3Rfa3VsLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoOgoKICAgZmlsZSB0ZXN0X2tleWNoYW5nZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X3Rvb2xzLnNoOgoKICAgZmlsZSB0ZXN0X3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLW1kNToKCiAgIGZpbGUgZGF0YS5rdWwtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExLWRlcyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2UtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLXNoYTE6CgogICBmaWxlIGRhdGEua3VsLXNoYTEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE3OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYKOgoKICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCiAgIAoxOTk4LTEwLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgogICAKMTk5OC0xMC0yMSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCiAgIAoxOTk4LTEwLTIwIDExOjM4ICBkcmVlZGVyCgogICAqIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jOgoKICAgZmlsZSBrZXltYW5hZ2V0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE4IDIxOjE0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgZmlsZSBzY2FwaXRlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTYgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBmaWxlIHRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGZpbGUgdG9vbHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5oOgoKICAgZmlsZSBsY2RfdGltZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBmaWxlIHNjYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIGZpbGUgc2NhcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5jOgoKICAgZmlsZSBsY2RfdGltZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmg6CgogICBmaWxlIGtleXRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGZpbGUga2V5dG9vbHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oOgoKICAgZmlsZSBhbGxfZ2VuZXJhbF9sb2NhbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2FsbF9zeXN0ZW0uaDoKCiAgIGZpbGUgYWxsX3N5c3RlbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICBmaWxlIGRlYnVnLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE0IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KICAgCjE5OTgtMTAtMTQgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCiAgIAoxOTk4LTEwLTE0IDE2OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1BLgogICAKMTk5OC0xMC0xNCAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogLUE6IGFwcGVuZCB0byBsb2cgZmlsZS4KICAgCjE5OTgtMTAtMTQgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCiAgIAoxOTk4LTEwLTE0IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCiAgIAoxOTk4LTEwLTA5IDIzOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCiAgIAoxOTk4LTEwLTA5IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgogICAKMTk5OC0xMC0wOSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBDaGVjayBmb3IgZnVsbHkgcXVhbGlmaWVkIG9pZCBzdGF0ZW1lbnRzLgogICAKMTk5OC0xMC0wOSAwODowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgogICAKMTk5OC0xMC0wNyAxNzowMCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCiAgIAoxOTk4LTEwLTA3IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgogICAKMTk5OC0xMC0wNyAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KICAgCjE5OTgtMTAtMDcgMTY6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbWFrZSBodG1sLgogICAKMTk5OC0xMC0wNyAxNjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCiAgIAoxOTk4LTEwLTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTMgKQogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OC0xMC0wNiAxNTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgogICAKMTk5OC0xMC0wNiAxNTozNCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogdXBkYXRlLgogICAKMTk5OC0xMC0wNiAxNTozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi1PTEQudHh0KTogYWRkZWQKICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgogICAKMTk5OC0xMC0wNiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KICAgCjE5OTgtMTAtMDUgMTc6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgogICAKMTk5OC0xMC0wNSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvOiBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCiAgIAoxOTk4LTA5LTMwIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgogICAKMTk5OC0wOS0yNSAxODoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1dGlsX2Z1bmNzLmMpOiB1c2UgVVNMRUVQIGlmIGF2YWlsYWJsZSBmb3IKICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgogICAKMTk5OC0wOS0yNSAxODowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KICAgCjE5OTgtMDktMjUgMTg6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAogICAKMTk5OC0wOS0yNSAxNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguICBJdCdzIGdvaW5nIHRvIGNoYW5nZSB0b28KICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCiAgIAoxOTk4LTA5LTI1IDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgogICAKMTk5OC0wOS0yNSAxNzozMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHN0dXBpZCBPUyB1cGRhdGUuCiAgIAoxOTk4LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgLSAoc25tcF9zZXNzX2FwaS4zKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzZXNzaW9uIGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogcHJvY2VzcyBhcmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiBnZXRfb3B0KCkuCiAgIAoxOTk4LTA5LTI1IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbQogICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgogICAKMTk5OC0wOS0yNSAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICBub3QgY29weSB6ZXJvIGxlbmd0aCBzdHJpbmdzLiAgSSBoYWQgbWVyZ2VkIHRoaXMgaW4gd2l0aCBjaGFuZ2VzCiAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgIC0gQW5vdGhlciBwcm9ibGVtIGluIHNubXBfY2xvbmVfcGR1KCkgd2FzIHRoZSB0ZXN0IGZvciB6ZXJvIGxlbmd0aAogICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgogICAKMTk5OC0wOS0yNSAxNzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkb24ndCByZWx5IG9uIHRoZSBnZXRzZXJ2YnluYW1lIHBvaW50ZXIgdG8gc3RheSBhcm91bmQuCiAgIAoxOTk4LTA5LTIzIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgIC0gLS1lbmFibGUtZW9sLXRlcm1pbmF0ZWQtY29tbWVudHMuCiAgIAoxOTk4LTA5LTIzIDEyOjE1ICBoYXJkYWtlcgoKICAgKiBJU1NVRVM6CgogICBmaWxlIElTU1VFUyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF92YXJzLmMKICAgKFYzLWIxLls1LDJdKSwgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgogICAKMTk5OC0wOS0yMSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogYWxsb3cgLTEgc2l6ZSB0byBpbmRpY2F0ZSBzaW1wbGUgc2l6ZSBtb25pdG9yaW5nLgogICAKMTk5OC0wOS0xOCAxNDowNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENoYW5nZSBmaWxlIHJldHVybiBjb2RlIGZyb20gVHJ1dGhWYWx1ZSB0bwogICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgogICAKMTk5OC0wOS0xOCAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oOgoKICAgLSAoZmlsZS5oKTogcmVtYXAgdG8gdGhlIDEwMC8xMDEgY29udmVudGlvbnMgb2YgdGhlIHVjZC1zbm1wIHRhYmxlcy4KICAgCjE5OTgtMDktMTggMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCiAgIAoxOTk4LTA5LTE4IDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSAoZmlsZS5jLCBmaWxlLmgpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAtIEltcGxlbWVudCBhIGZpbGUgc2l6ZSB3YXRjaGluZyBtaWIgbW9kdWxlICh1Y2Qtc25tcC9maWxlKS4KICAgCjE5OTgtMDktMTggMTM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBhZGRlZCB0aGUgRmlsZVRhYmxlIHN1Ym1pdHRlZCBieSBKb25hcyBPbHNzb24uCiAgIAoxOTk4LTA5LTE4IDEyOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuaDoKCiAgIGZpbGUgc25tcC10Yy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgZmlsZSBzbm1wdXNtLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgZmlsZSB1c21Vc2VyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgZmlsZSB1c21Vc2VyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaDoKCiAgIGZpbGUgdXNtU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTYgMDc6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jOgoKICAgZmlsZSB1c21TdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGluaXRfc25tcCBjYWxscyBmcm9tIHNlc3Npb24gcm91dGluZXMuCiAgIAoxOTk4LTA5LTE1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCiAgIAoxOTk4LTA5LTE1IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWVtb3J5IHJlbGF0ZWQgZml4ZXMuCiAgIAoxOTk4LTA5LTE0IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmM6CgogICBmaWxlIHNubXBNUERTdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTc6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpbGUgc25tcHYzbWlicy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAxMjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWw6CiAgICAgLSBkbyBkbG1vZHMgY29tcGlsYXRpb24gYmV0dGVyIGF0IGxlYXN0IG9uIHNvbGFyaXMgYW5kIGxpbnV4LgogICAKMTk5OC0wOS0xNCAxMjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIGhwdXguYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywKICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMTk5OC0wOS0xNCAxMjozNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgc25tcF9zZXNzX2FwaS4zLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYzoKCiAgIGZpbGUgc25tcEVuZ2luZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaDoKCiAgIGZpbGUgc25tcEVuZ2luZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpbGUgc25tcHYzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDA5OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5oOgoKICAgZmlsZSBzbm1wdjMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTMgMjE6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCiAgIAoxOTk4LTA5LTEzIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgogICAKMTk5OC0wOS0xMyAyMTowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KICAgCjE5OTgtMDktMTMgMjA6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcmV2ZW50IGRvdWJsZSBpbml0X3NubXAoKXMuCiAgIAoxOTk4LTA5LTEzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbm90IGZpbmRpbmcgYSBjb25maWcgZmlsZSBpcyBwcmludGVkIHdpdGggREVCVUdQKCkgaW5zdGVhZC4KICAgCjE5OTgtMDktMTMgMjA6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KICAgCjE5OTgtMDktMTMgMjA6MTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCiAgIAoxOTk4LTA5LTEzIDE4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBleGl0IC0+IHJldHVybi4KICAgCjE5OTgtMDktMTIgMDk6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KICAgCjE5OTgtMDktMTIgMDk6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTgtMDktMTIgMDg6NTYgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfc2h1dGRvd24uaAogICAKMTk5OC0wOS0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KICAgCjE5OTgtMDktMTIgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtb3ZlIHVuLWNvbmZpZ3VyZWQgZGVmaW5lcyBhYm92ZSBAVE9QQC4KICAgCjE5OTgtMDktMTIgMDg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcm90b3R5cGUgbW92ZSBpbml0X3NubXAoKSBhYm92ZSBpbml0X3NubXBfc2Vzc2lvbi4KICAgCjE5OTgtMDktMTEgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBfc2Vzc19hcGkuMywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCiwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2NvbmZpZy5oCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgogICAKMTk5OC0wOS0wOSAyMTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9saWJzbm1wLmg6CgogICBmaWxlIGxpYnNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LTEtTVQuCiAgIAoxOTk4LTA5LTA5IDIxOjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfYXBpLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdHJhcCBzdHVmZiBicm9rZW4gYnkgdGhlIGNvZGUgbWVyZ2UuCiAgIAoxOTk4LTA5LTA5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcKLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcKLCBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0L3NubXBnZXQucGxnLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZwosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzZXQvc25tcHNldC5wbGcsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRlc3Qvc25tcHRlc3QucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgYWNsLmgsIGFzbjEuYywgYXNuMS5oCiwgbWQ1LmgsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLAogICBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCB2YWNtLmgsIHZpZXcuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vbWliX2FwaS4zLAogICBtYW4vc25tcF9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgbWFuL3ZhcmlhYmxlcy41OgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDT1BZSU5HLCBDaGFuZ2VMb2csIE1ha2VmaWxlLmluCiwgTkVXUywgUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcDoKCiAgIGZpbGUgc25tcGRlbHRhLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEucGxnOgoKICAgZmlsZSBzbm1wZGVsdGEucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRlc3Qvc25tcHRlc3QucGxnOgoKICAgZmlsZSBzbm1wdGVzdC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3A6CgogICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcDoKCiAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAucGxnOgoKICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmg6CgogICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oOgoKICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTAzIDE0OjI5ICBuYmEKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgogICAKMTk5OC0wOS0wMiAxODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLAogICBzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgIHNubXBkLmgpOgogICAgIC0gc3VwcG9ydCBtaWItbW9kdWxlIHNodXRkb3duIGZ1bmN0aW9ucy4KICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KICAgCjE5OTgtMDktMDIgMTg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsCiAgIHJlYWRfY29uZmlnLmg6CgogICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gcHJlL3Bvc3QgbWliIGxvYWRpbmcgY29uZmlnIGZpbGVzLgogICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KICAgCjE5OTgtMDktMDIgMTg6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlIHF1ZXN0aW9uLgogICAKMTk5OC0wOS0wMiAxODo0MyAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCiAgIAoxOTk4LTA4LTMxIDEzOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KICAgCjE5OTgtMDgtMzEgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChFeHQtMy01LXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KICAgCjE5OTgtMDgtMTQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wNy0yMiAxNjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgogICAKMTk5OC0wNy0yMiAxNTozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgogICAKMTk5OC0wNy0yMCAxNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgogICAKMTk5OC0wNy0xNyAxMzoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9SRkMtMTIxNS50eHQ6CgogICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCiAgIAoxOTk4LTA3LTE3IDEzOjExICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KICAgCjE5OTgtMDctMTAgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogd3JvbmcgcGR1IHBvaW50ZXIgZm9yIHNubXB2MmMgdHJhcHMuCiAgIAoxOTk4LTA3LTA4IDE1OjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy42LnByZTEgKQogICAKMTk5OC0wNy0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IC1XYWxsIGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAo6CgogICAtIChwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgpOiBjbGVhbmVkIHVwIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCiAgIAoxOTk4LTA3LTA4IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCiwgcGFzcy1wZXJzaXN0LmMsIHBhc3MtcGVyc2lzdC5oOgoKICAgLSAocGFzcy1wZXJzaXN0LmMgcGFzcy1wZXJzaXN0LmgpOiBtb3ZlZCB0byBwYXNzX3BlcnNpc3QuW2NoXS4KICAgCjE5OTgtMDctMDggMTQ6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZSB1bnJlZ2lzdGVyX3JlYWQuLigpIGZ1bmN0aW9uLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCiAgIAoxOTk4LTA3LTA4IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oKTogd3JhcHBlcnMgZm9yIHJlYWwgcmVhZF9jb25maWcoKXMuCiAgIAoxOTk4LTA3LTA4IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy8uY3ZzaWdub3JlLCBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBtaWJzL0RMTU9ELU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgUG9sb3ZuaWtvdjoKICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KICAgCjE5OTgtMDctMDggMTM6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KICAgCjE5OTgtMDctMDggMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGRvbid0IGZyZWUgZW52IHBvaW50ZXJzIHRoYXQgYXJlIGNyZWF0ZWQuCiAgIAoxOTk4LTA3LTA4IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KICAgCjE5OTgtMDctMDggMTI6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCiAgIAoxOTk4LTA3LTA4IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCiAgIAoxOTk4LTA3LTA4IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KICAgCjE5OTgtMDctMDggMTI6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3RydWN0LmgsIHV0aWxfZnVuY3MuYywKICAgdXRpbF9mdW5jcy5oLCB1Y2Qtc25tcC9wYXNzLXBlcnNpc3QuYywKICAgdWNkLXNubXAvcGFzcy1wZXJzaXN0Lmg6CgogICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gY3JlYXRlIGEgcGFzcy1wZXJzaXN0IG1vZHVsZSB0byBoYW5kbGUgY29udGludW91c2x5IHJ1bm5pbmcgcGFzcyB0aHJvdWdocy4KICAgCjE5OTgtMDctMDggMTI6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQuZHNwCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcAosIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgIHNubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQuZHNwLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrLmRzcCwgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UKICAgICBNYXJ6b3Q6CiAgICAgLSB3aW4zMiB1cGRhdGUuCiAgIAoxOTk4LTA3LTAxIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAtIGZpeCBleHRlbnNpYmxpdHkgY2hlY2tpbmcgb2Ygb2lkcy4KICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IG1pbm9yIHNwYWNpbmcgY2hhbmdlcy4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAtIG1vdmVkIERFQlVHUCBkZWZpbml0aW9uIGludG8gc25tcF9hcGkuaCB3aGVyZSBpdCBiZWxvbmdzLgogICAKMTk5OC0wNy0wMSAxMToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNy0wMSAxMToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgc3RydWN0LmgsIHBhc3MuaCwgTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZyBzdXBwb3J0IGludG8gdGhlIGxpYnJhcnkgYW5kIHVzZSBpdC4KICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCiAgIAoxOTk4LTA2LTI4IDA5OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgogICAKMTk5OC0wNi0yNiAxMDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggZm9yIG5ldyBkZWZpbmVzIGFuZCBwcm9wZXIgaGVhZGVyIGluY2x1ZGVzLgogICAKMTk5OC0wNi0yNiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZGVkIC5pbmRleC4KICAgCjE5OTgtMDYtMjQgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gY3JlYXRlZCAocG9vcmx5KSBzZW5kX3RyYXBfcGR1KCkgZm9yIHNlbmRpbmcgdjIgdHJhcHMgZnJvbSBtaWIgbW9kdWxlcy4KICAgCjE5OTgtMDYtMjQgMTE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvOiAuY3ZzaWdub3JlLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgIC0gbWlzYyBtaWIgZml4ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlLCAuY3ZzaWdub3JlKTogYSBmZXcgdXBkYXRlcy4KICAgCjE5OTgtMDYtMjQgMTA6NTcgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpOiBpZ25vcmUgLmh0bWwgZmlsZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCBoZXhfdG9fYmluYXJ5LCBhc2NpaV90b19iaW5hcnksIGFuZCBzbm1wX2FkZF92YXIgdG8gc25tcGxpYi4KICAgCjE5OTgtMDYtMjQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGNyZWF0ZSBzbm1wX3BkdV9hZGRfdmFyaWFibGUoKS4KICAgCjE5OTgtMDYtMjQgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KICAgCjE5OTgtMDYtMjIgMDk6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgogICAKMTk5OC0wNi0xOSAxMzoxNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41ICkKICAgCjE5OTgtMDYtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogTGFzdCB1cGRhdGUgZm9yIDMuNS4KICAgCjE5OTgtMDYtMTkgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMTkgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBtZW1zZXQgdG8gMCB0aGUgZW50aXJlIHN1YnRyZWUgc3RydWN0LgogICAKMTk5OC0wNi0xOSAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICB3ZSByZWFsbHkgc2hvdWxkbid0IChiYWQgYXJ0aWZhY3Qgb2YgbmV3IHRyZWUgc3RydWN0dXJlKS4KICAgCjE5OTgtMDYtMTkgMTI6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmM6CgogICAtIChkdW1teS5jKTogbWVudGlvbiBhdXRvX25saXN0KCkuCiAgIAoxOTk4LTA2LTE5IDEyOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dDoKCiAgIC0gKEFkZE1vZHVsZUZvckR1bW1pZXMudHh0KTogdXBkYXRlIHRvIGZpeCBwYXRocyBhbmQgbWlzYyBzdHVmZi4KICAgCjE5OTgtMDYtMTkgMTI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaXggcmVnaXN0ZXJfbWliKCkgdG8gaW5pdCBwb2ludGVycyB0byBudWxsLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCiAgIAoxOTk4LTA2LTE5IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSB0dXJuIGludG8gYSBjb3JyZWN0IHRhYmxlLgogICAKMTk5OC0wNi0xOSAwODo1OCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTA2LTE5IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBCU0RJIHVzZXJzIGFnYWluc3QgL3Vzci91Y2IvY2MuCiAgIAoxOTk4LTA2LTE5IDA4OjQxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgogICAKMTk5OC0wNi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaDoKCiAgIC0gKGR1bW15LmgpOiBhZGQgRFVNTVktTUlCIGJ5IGRlZmF1bHQuCiAgIAoxOTk4LTA2LTE3IDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgogICAKMTk5OC0wNi0xNyAwODoyMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dAosIGFnZW50L21pYmdyb3VwL2R1bW15L0RVTU1ZLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgKOgoKICAgLSAoUkVBRE1FLCBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaCk6CiAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgogICAKMTk5OC0wNi0xNyAwODoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiY29weSAtPiBtZW1jcHkuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwKICAgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwgc25tcGdldG5leHQuMSwgc25tcHNldC4xCiwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgc25tcHdhbGsuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvY3VtZW50YXRpb24gY2xlYW51cCBhbmQgY2VudHJhbGl6YXRpb24gb2YgY29tbW9uIG9wdGlvbnMuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTcgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHR5cGUgZml4ZXMuCiAgIAoxOTk4LTA2LTEyIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICBpdCBzdGFiaWxpemVzLgogICAKMTk5OC0wNi0xMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgogICAKMTk5OC0wNi0xMiAxMzo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogZG9uJ3QgaGF2ZSBzZXRlbnYuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KICAgCjE5OTgtMDYtMTIgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IHBlcmNlbnRhZ2UgY2hlY2sgd2FzIGJhY2t3YXJkcy4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3IgdXBkYXRlLgogICAKMTk5OC0wNi0xMiAxMDoxMiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KICAgCjE5OTgtMDYtMTIgMDg6NTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUToKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCiAgIAoxOTk4LTA2LTEwIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KICAgCjE5OTgtMDYtMTAgMTU6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OC0wNi0xMCAxNTozMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KICAgCjE5OTgtMDYtMTAgMTQ6MTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCiAgIAoxOTk4LTA2LTEwIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSAgc3RhcnRzIHRvIHNlcGFyYXRlIG91dCB0aGUgaGlzdG9yaWMgU05NUHYyIHN0dWZmLgogICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgogICAKMTk5OC0wNi0xMCAwNzoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgogICAKMTk5OC0wNi0wOCAxNDo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHVuZGlkIHJlZG8gb2YgY29tbWVudCBvZiBnZXR0aW1lb2ZkYXkoKS4KICAgCjE5OTgtMDYtMDggMTQ6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAtIGdldF90YyBhZGRlZC4KICAgICAtIGJldHRlciBjb21tZW50cyBpbiBzb21lIHBsYWNlcy4KICAgCjE5OTgtMDYtMDggMTQ6MTYgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCiAgIAoxOTk4LTA2LTA4IDE0OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgogICAKMTk5OC0wNi0wOCAxMzo1OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIEV1Z2VuZSdzIG5hbWUuCiAgIAoxOTk4LTA2LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgIG9iamVjdCBmaWxlcyBpbiB0aGUgYXBwcm9wcmlhdGUgc3ViZGlyZWN0b3JpZXMuCiAgIAoxOTk4LTA2LTA4IDEwOjUwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCiAgIAoxOTk4LTA2LTA1IDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKToKICAgICAtIGNoYW5nZSB7ZGUsfWluaXQgZnVuY3Rpb25zIHRvIF9keW5hbWljX3tkZSx9aW5pdF9NT0RVTEUuCiAgICAgLSB1c2UgU05NUExJQlBBVEggaW5zdGVhZCBvZiBoYXJkIGNvZGVkIC91c3IvbG9jYWwvbGliLgogICAKMTk5OC0wNi0wNSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAtIHNldGVudiBpbXBsZW1lbnRhdGlvbi4KICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KICAgCjE5OTgtMDYtMDUgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3IgbnVsbCBwb2ludGVyLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogbWFrZXRhcmdldDoKCiAgIC0gKG1ha2V0YXJnZXQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IGZvciBzZXRlbnYuCiAgIAoxOTk4LTA2LTAzIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQogICAKMTk5OC0wNi0wMyAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgogICAKMTk5OC0wNi0wMyAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNi0wMyAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYXBwcy9zbm1wc2V0LmMsCiAgIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoaHJfZGlzay5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIHNubXBzZXQuYywgYXNuMS5oLAogICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNi0wMyAxNDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCBuZXcgLS13aXRoLWNjIGFuZCAtLXdpdGgtY2ZsYWdzIGFyZ3VtZW50cy4KICAgCjE5OTgtMDYtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgLSBtb3ZlIGNvbmZpZ3VyYWJsZSBkZWZpbmVzIHRvIGNvbmZpZ3VyZSByYXRoZXIgdGhhbiBpbiBmcmVlYnNkMi5oLgogICAKMTk5OC0wNi0wMyAxMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wdHJhcGQuYyk6CiAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgogICAKMTk5OC0wNi0wMyAxMzozOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAtIC0td2l0aC1jYz1DQwogICAgIC0gLS13aXRoLWNmbGFncz1DRkxBR1MKICAgCjE5OTgtMDYtMDMgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCiAgIAoxOTk4LTA2LTAzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBtaXNzZWQgYSBuZWVkZWQgT1BBUVVFX1NQRUNJQUxfVFlQRVMgaWZkZWYuCiAgIAoxOTk4LTA2LTAzIDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGluY2x1ZGUgbWliSUkvc25tcF9taWIuaC4KICAgCjE5OTgtMDYtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsCiAgIGV4YW1wbGVzL3dvbWJhdC5oOgoKICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgIC0gbW92ZWQgd29tYmF0IGFuZCBleGFtcGxlIHRvIGV4YW1wbGVzLyBkaXJlY3RvcnkuCiAgIAoxOTk4LTA2LTAzIDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCBtaXNjL2RsbW9kLmMKLCBtaXNjL2RsbW9kLmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgLSBpbXBsZW1lbnQgYSBkeW5hbWljIGxvYWRpbmcgbW9kdWxlIGZvciBsb2FkaW5nIHNoYXJlZCBvYmplY3QgbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KICAgCjE5OTgtMDYtMDMgMTA6NTggIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1vdmVkIGlwZndhY2MgdG8gdWNkYXZpcy4xMyBhbmQgcmVtb3ZlZCBeTXMgYW5kIHNvbWUgYmxhbmsgbGluZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IGNvbmZpZ19hZGRfbWliKElQRldBQ0MtTUlCKS4KICAgCjE5OTgtMDYtMDMgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0KTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGlwIGZpcmV3YWxsIGFjY291bnRpbmcgaW5mb3JtYXRpb24gbWliIGltcGxlbWVudGF0aW9uLgogICAKMTk5OC0wNi0wMyAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc211eF9nYXRlZC5oLAogICBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXgvc211eC5jLAogICBzbXV4L3NtdXguaCwgc211eC9zbm1wX2JncC5jLCBzbXV4L3NubXBfYmdwLmgsCiAgIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMKLCBzbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsCiAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMiAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgdmFyX3JvdXRlLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgIC0gQWRkIC1zLy1TIHRvIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBwcmludGluZyBvZiBzaG9ydGVyIG9pZHMuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSBpdCBwb3NzaWJsZSBub3QgdG8gdXNlIG9wYXF1ZSBzcGVjaWFsIHR5cGVzIHdpdGggbmV3IGNtZCBsaW5lIGZsYWcuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KICAgCjE5OTgtMDUtMzEgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaAosIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAtIGltcGxlbWVudCBzcGVjaWFsIGRhdGEgdHlwZXMgdmlhIG9wYXF1ZXM6IGZsb2F0LCBkb3VibGUsIGludDY0LCB1aW50NjRzLgogICAKMTk5OC0wNS0yOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCiAgIAoxOTk4LTA1LTI5IDE2OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmgsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmMsIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wYXNzLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmgKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92bXN0YXQuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgLSBjaGFuZ2VkIGFsbCBoZWFkZXIgZmlsZSBhbmQgI2lmZGVmIFVTSU5HXyogbGluZXMgdG8gcmVmbGVjdCB0aGlzLgogICAKMTk5OC0wNS0yOSAxNToyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIGFiaWxpdHkgdG8gc3BlY2lmeSBtaWIgaW5mb3JtYXRpb24gb24gdGhlIGNtZCBsaW5lLgogICAKMTk5OC0wNS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiB3aW5TTk1QIG1lbnRpb24uCiAgIAoxOTk4LTA1LTI5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgogICAKMTk5OC0wNS0yOSAxMToyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogbWFrZSBvZiBjb25maWd1cmUuCiAgIAoxOTk4LTA1LTI5IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCiAgIAoxOTk4LTA1LTI5IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIGZpeCBjb21tdW5pdHkgbmFtZSBsZW5ndGggcHJvYmxlbXMgYW5kIGluY3JlYXNlIHNpemUuCiAgIAoxOTk4LTA1LTI5IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgdG8gY2hhbmdlIGEgZmV3IHRoaW5ncy4KICAgCjE5OTgtMDUtMjAgMDg6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQgKQogICAKMTk5OC0wNS0yMCAwODozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlLgogICAKMTk5OC0wNS0yMCAwODoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNS0yMCAwODoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgogICAKMTk5OC0wNS0yMCAwNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogdmVyc2lvbiBzaG91bGQgYmUgYSBsb25nLgogICAKMTk5OC0wNS0yMCAwNzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgogICAKMTk5OC0wNS0yMCAwNzozNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk4LTA1LTIwIDA3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmM6CgogICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KICAgCjE5OTgtMDUtMTggMTg6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOgogICAgIC0gaW5jbHVkZSBoZWFkZXIgY2hhbmdlcyBmb3Igd2luMzIuCiAgIAoxOTk4LTA1LTE4IDE1OjM5ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQogICAKMTk5OC0wNS0xOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCiAgIAoxOTk4LTA1LTE4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5pbmRleDoKCiAgIC0gKG1pYnMvLmluZGV4KTogcmVtb3ZlZC4KICAgCjE5OTgtMDUtMTggMTE6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgogICAKMTk5OC0wNS0xNSAxMToxOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5wbGcKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5wbGcKLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQucGxnLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5wbGcsCiAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xNSAxMToxNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzbm1wbGliL21pYi5jOgoKICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCiAgIAoxOTk4LTA1LTE1IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KICAgCjE5OTgtMDUtMTUgMTA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaHJfc3lzdGVtLmgsIGhyX3V0aWxzLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAtIG9pZCBzZWFyY2hlciBhbHdheXMgaWdub3JlcyBjYXNlLgogICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgogICAKMTk5OC0wNS0xNSAxMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KICAgCjE5OTgtMDUtMTQgMDg6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KICAgCjE5OTgtMDUtMTQgMDg6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgogICAKMTk5OC0wNS0xNCAwODoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMTQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KICAgCjE5OTgtMDUtMTMgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KICAgCjE5OTgtMDUtMTMgMjE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGluY2x1ZGUgbmV0L3JvdXRlLmggYW5kIHN5c2xvZy5oIGZvciBic2RpLgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMsIGludDY0LmgsIG1pYi5jOgoKICAgLSAoaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBtYWtlIGludDY0LmMgdXNlIGNvdW50ZXI2NCdzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDUtMTIgMTU6MTUgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCiAgIAoxOTk4LTA1LTEyIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXhhbXBsZS5jLCBpbnRlcmZhY2VzLmMKLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYwosIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgcHJvYy5jLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jKToKICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCiAgIAoxOTk4LTA1LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc3lzdGVtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBOVUxMIC0+IDAuCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbXVuZ2UgcnBtIGxpYiBjaGVjayB0byBsaW5rIHdpdGggLWxkYiBhcyB3ZWxsLgogICAKMTk5OC0wNS0xMiAxMToxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaW5jbHVkZSBhIGdldGR0YWJsZXNpemUoKSBmdW5jdGlvbiBmb3IgaHB1eDkuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KICAgCjE5OTgtMDUtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZml4IHRoZSBwYXJzZXIgdG8gcmVwb3J0IHVubGlua2VkIE9JRHMuIFRoaXMgZGlkIHJldmVhbCBhbiBlcnJvciBpbiBhCiAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgIEFjdHVhbGx5IHRoZSBwYXJzZXIgd29ya2VkIG9rLCBleGNlcHQgZm9yIHRoZSBtaXNzaW5nIGVycm9yIG1lc3NhZ2VzLgogICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgYW5kIHByb3BlciBoYW5kbGluZyBvZiAtLSBwYXJ0aWFsIGxpbmUgY29tbWVudHMgLS0pLiBXYXRjaCBvdXQhIHRoaXMgbGFzdAogICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQogICAKMTk5OC0wNS0xMSAxMDozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBDb3JyZWN0aW9ucyBvZiBkaXNrIGVudHJ5IGNhcGl0aWxhemF0aW9uIHByb2JsZW1zLgogICAKMTk5OC0wNS0xMSAxMDozMSAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0IHdlIHNoaXApLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUuCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb21lIHByb3RvdHlwZXMgZm9yIHRoZSBocl8qLmMgZmlsZXMgKG5lZWRzIERhdmUncyByZWNlbnQgcGF0Y2gpCiAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQogICAKMTk5OC0wNS0xMSAxMDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywKICAgc25tcGQuaCwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoCiAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB0aGUgdHJhcHNpbmsgZGlyZWN0aXZlcyBpbiBzbm1wZAogICAKMTk5OC0wNS0xMSAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgLSAoaW50NjQuYyk6IGFkZCBpbmNyQnlVMzIoKS4KICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgogICAKMTk5OC0wNS0xMSAwODowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6CiAgICAgLSBjb3VudGVyNjRzLgogICAgIC0gY29uc29sb2RhdGlvbiBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCiAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCiAgIAoxOTk4LTA1LTA4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDggMTE6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jLCBocl9kaXNrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMDggMTA6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgogICAKMTk5OC0wNS0wNyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkZWJ1ZyBpbmZvIGZvciBjb25maWcgZmlsZXMgcmVhZC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgogICAKMTk5OC0wNS0wNyAwOTowNSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KICAgCjE5OTgtMDUtMDYgMjI6MjggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgogICAKMTk5OC0wNS0wNiAyMTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIG5ldyBmdW5jdGlvbjogY2FsY3VsYXRlX3RpbWVfZGlmZih0MSwgdDIpLgogICAKMTk5OC0wNS0wNiAyMTowNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMKLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jCiwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMKLCB2bXN0YXQuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMsIHZtc3RhdC5jKToKICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAtIHVzZSBoZWFkZXJfZ2VuZXJpYygpIGluIGFsbCB1Y2Qgc3BlY2lmaWMgc2NhbGFyIG1pYnMsIGFuZCBleGFtcGxlLltjaF0uCiAgIAoxOTk4LTA1LTA2IDE0OjA2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGFkZGVkIGludGVybmFsIHRhYmxlIHNlY3Rpb24uCiAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCiAgIAoxOTk4LTA1LTA2IDExOjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KICAgCjE5OTgtMDQtMjkgMTE6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gZGlzcGxheSB1bmxvYWRlZCBtb2R1bGUgZXJyb3IuCiAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCiAgIAoxOTk4LTA0LTI5IDExOjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogcHV0IHZtc3RhdCBiYWNrIGluIGFuZCByZW5hbWVkIHRvIHN5c3RlbVN0YXRzLgogICAKMTk5OC0wNC0yOSAxMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KICAgCjE5OTgtMDQtMjkgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jCiwgd29tYmF0Lmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKTogbW9yZSBjbGVhbiB1cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYwosIHdvbWJhdC5jOgoKICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBubGlzdCBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjkgMTA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBkb24ndCB1c2UgVENQU1RBVF9TWU1CT0wgdW5sZXNzIGRlZmluZWQuCiAgIAoxOTk4LTA0LTI5IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IC1IIGhlYWRlciBwcmludGluZy4KICAgCjE5OTgtMDQtMjcgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBidWcgZml4ZXMuCiAgIAoxOTk4LTA0LTI3IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogTmV3IG1pYiBtZW51IGNvbW1hbmQ6IGxvYWQgYSBtaWIgbW9kdWxlIGJ5IElEIG5hbWUuCiAgIAoxOTk4LTA0LTI3IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KICAgCjE5OTgtMDQtMjcgMTM6MzEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAtIFB1dCB0aGUgd29yZCAiVGltZW91dDogIiBpbiBmcm9udCBvZiB0aGUgIk5vIFJlc3BvbnNlIiBlcnJvcnMuCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgc3RhdGljIGxpYnJhcnkgY2FzZXMuCiAgIAoxOTk4LTA0LTI3IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgogICAKMTk5OC0wNC0yNCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgogICAKMTk5OC0wNC0yNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oKTogbl92YWx1ZSBpcyBhIGxvbmc6CiAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgogICAKMTk5OC0wNC0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGNhbGN1bGF0ZSB2ZnMgYmxvY2sgc2l6ZSBpZiBwb3NzaWJsZSBhbmQgc2l6ZSA+IDI1NSBieXRlcy4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jOgoKICAgLSAoaHJfcGFydGl0aW9uLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3IganVzdCBvcGVuZWQuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgogICAKMTk5OC0wNC0yNCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCiAgIAoxOTk4LTA0LTI0IDE0OjAzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW9yZSBjbGVhbmluZyBhbmQgcmVuYW1pbmcuCiAgIAoxOTk4LTA0LTI0IDEwOjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdGhlIHRleHR1YWwgZGVzY3JpcHRpb25zIHdlcmUgdXBkYXRlZCBzb21lLgogICAKMTk5OC0wNC0yNCAxMDowMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgIC0gcmVudW1iZXJlZCBhZ2Fpbi4KICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAtIHJlbW92ZWQgbG9ja2Qgc2VjdGlvbi4KICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KICAgCjE5OTgtMDQtMjQgMTA6MDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KICAgCjE5OTgtMDQtMjIgMDg6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KICAgCjE5OTgtMDQtMjIgMDc6NDkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIHdvcmRpbmcsIGNsZWFuZWQgdXAgYSBiaXQuCiAgIAoxOTk4LTA0LTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KICAgCjE5OTgtMDQtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYzoKCiAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gI2lmZGVmIGNoZWNrcyBvbiBzeW1ib2xzIGFuZCBoZWFkZXIgbW92ZW1lbnQuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHR5cGVjYXN0IGEgcG9pbnRlci4KICAgCjE5OTgtMDQtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgIC0gaW5jbHVkZSBzeXMvd2FpdC5oLgogICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgogICAKMTk5OC0wNC0yMCAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHByb3RvdHlwaW5nIGFuZCBvdGhlciBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjAgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCiAgIAoxOTk4LTA0LTIwIDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIG1vdmVzLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCiAgIAoxOTk4LTA0LTIwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KICAgCjE5OTgtMDQtMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBzeXMvZGtpby5oCiAgIAoxOTk4LTA0LTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jOgoKICAgLSAoaG9zdF9yZXMuaCwgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgIHRvIGZvbGxvdykKICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAtIFNwZWVkIHVwIGRpc2sgc2VhcmNoaW5nIChieSBjYWNoaW5nIGludmFsaWQgcmVzdWx0cyAtIGEgKm1ham9yKiB3aW4hKQogICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAogICAKMTk5OC0wNC0yMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBjaGFuZ2Ugb2lkIGZyb20gdGV4dHVhbCB0byBudW1lcmljIHRvIGFsbG93IG5vdyBtaWJzIHRvCiAgICAgYmUgbG9hZGVkLgogICAKMTk5OC0wNC0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgogICAKMTk5OC0wNC0wMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU2ICkKICAgCjE5OTgtMDQtMDEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAtIChpbiBtb3N0IGNhc2VzOi0/KQogICAKMTk5OC0wNC0wMSAxNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDQtMDEgMTQ6MTAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVtb3ZlZCBhIGZldyB0aGluZ3MhCiAgIAoxOTk4LTA0LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBtb3ZlZCB0aGUgdmlldyBleGFtcGxlIHNlY3Rpb24gYWJvdmUgdGhlIGFjY2VzcyBzZWN0aW9uLgogICAKMTk5OC0wNC0wMSAxMzo1MyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBtb3JlIDMuNCB1cGRhdGVzLgogICAKMTk5OC0wNC0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgUE9SVElORzoKCiAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCiAgIAoxOTk4LTA0LTAxIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOgogICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCiAgIAoxOTk4LTA0LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgogICAKMTk5OC0wMy0yNyAxNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaXAuYywKICAgbWliZ3JvdXAvcmVnaXN0cnkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDMtMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9jdW1lbnQgbGlid3JhcC4KICAgCjE5OTgtMDMtMjcgMTY6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6CiAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgogICAKMTk5OC0wMy0yNyAxNjoxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICBBcnRodXIgSHl1bjoKICAgICAtIHRjcHdyYXBwZXJzIHN1cHBvcnQuCiAgIAoxOTk4LTAzLTI3IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYzoKCiAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICBwcmV2ZW50IGV4aXRpbmcuICBVc2VkIGZvciBkaXNrcywgc2luY2Ugc29tZSBtaWdodCBieSBwcm9jZXNzIG9yCiAgICAgICBuZnMgbW91bnRlZC4KICAgCjE5OTgtMDMtMjcgMDk6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgLSAtQyAnY29tbWFuZCcgb24gdGhlIGNvbW1hbmQgbGluZSBydW5zIHRoZSBjb21tYW5kIGFuZCBmZWVkcyBpdAogICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgaW5mb3JtYXRpb24gc2VudCB0byB0aGUgc2NyaXB0cy4KICAgCjE5OTgtMDMtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfcmlwMi5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmlldy5jCjoKCiAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgLSBzd2l0Y2ggYXV0b19ubGlzdHMgY2FsbGluZyBvcmRlciBvZiBfIHZzIG5vbiBfIGxvb2t1cHMuCiAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgogICAKMTk5OC0wMy0yNSAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KICAgCjE5OTgtMDMtMjUgMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuYywgdjJwYXJ0eS5jLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2MnBhcnR5LmMsIG1pYklJLmMsIHZhY21fdmFycy5jKTogZGVjbGFpciByZWdpc3RyYXRpb24gdmFyaWFibGVzIHN0YXRpY2x5LgogICAKMTk5OC0wMy0yNSAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYwo6CgogICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAtIGludGVncmF0ZWQgRGF2aWQncyBjb2RlIHRvIHByaW50IGNvdW50ZXI2NHMgYXMgaW50ZWdlcnMgcmF0aGVyIHRoYW4gaGV4LgogICAKMTk5OC0wMy0yNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgogICAKMTk5OC0wMy0yNSAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgogICAKMTk5OC0wMy0yNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KICAgCjE5OTgtMDMtMjUgMTA6MzkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzaW1wbHkgZG9uJ3QgZGVmaW5lIENBTl9VU0VfTkxJU1Qgb24gbGludXguCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jCiwgbWliZ3JvdXAvcmVnaXN0cnkuYywgbWliZ3JvdXAvcmVnaXN0cnkuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAtIGZpeCB0aGUgcmVnaXN0cnkgbWliIHRvIHVzZSB0aGUgbmV3IG1vZHVsZSBzdHJ1Y3R1cmUuCiAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgogICAKMTk5OC0wMy0yNSAwOToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgogICAKMTk5OC0wMy0yMiAxODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmM6CgogICAtIChwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgogICAKMTk5OC0wMy0xOCAxNDowOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKICAgCjE5OTgtMDMtMTggMTM6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBtYW4vbWliX2FwaS4zLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgIGNvbmZpZy5oKToKICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgIC0gbWFrZSB0aGUgYWdlbnQgcmVhZCAuY29uZiBmaWxlcyBmcm9tIFNOTVBTSEFSRVBBVEg6U05NUExJQlBBVEguCiAgIAoxOTk4LTAzLTE4IDEzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4dGVuc2libGUuYywgbWVtb3J5LmMsIHBhc3MuYwosIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgIC0gd2FpdCBmb3IgcGlkIGFmdGVyIGdldF9leGVjX291dHB1dCgpIHdpdGggbmV3IHdhaXRfb25fZXhlYygpIGZ1bmN0aW9uLgogICAKMTk5OC0wMy0xOCAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgogICAKMTk5OC0wMy0xOCAwOToxNyAgaGFyZGFrZXIKCiAgICogb3YvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KICAgCjE5OTgtMDMtMTEgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KICAgCjE5OTgtMDMtMTEgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCiAgIAoxOTk4LTAzLTExIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKICAgCjE5OTgtMDMtMTEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jCiwgc25tcF92YXJzLmMsIHNubXBkLmMsIG1pYmdyb3VwL2hvc3RfcmVzLmgKLCBtaWJncm91cC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaHJfZGV2aWNlLmgsCiAgIG1pYmdyb3VwL2hyX2Rpc2suYywgbWliZ3JvdXAvaHJfZGlzay5oLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuaCwKICAgbWliZ3JvdXAvaHJfbmV0d29yay5jLCBtaWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIG1pYmdyb3VwL2hyX290aGVyLmMsIG1pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLAogICBtaWJncm91cC9ocl9wYXJ0aXRpb24uaCwgbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaHJfcHJpbnQuaCwgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9wcm9jLmgsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBtaWJncm91cC9ocl9zd2luc3QuYywKICAgbWliZ3JvdXAvaHJfc3dpbnN0LmgsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmgsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9ocl9zeXN0ZW0uaCwgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pcC5jLCBtaWJncm91cC9taWJJSS5jLCBtaWJncm91cC9taWJJSS5oCiwgbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBtaWJncm91cC92MnBhcnR5LmMsCiAgIG1pYmdyb3VwL3YycGFydHkuaCwgbWliZ3JvdXAvdmFjbV92YXJzLmMsCiAgIG1pYmdyb3VwL3ZhY21fdmFycy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgaHJfc3dydW4uYywgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gbWFzc2l2ZSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGZpeGVzLgogICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KICAgCjE5OTgtMDMtMTEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICBXb2xsbWFuOgogICAgIC0gZnJlZWJzZCAzIHN5c2N0bCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoxOTk4LTAzLTExIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmg6CgogICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgIENyYWlnIEJldmluczoKICAgICAtIHBvcnQgdG8gT3BlbkJTRC4KICAgCjE5OTgtMDMtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCiAgIAoxOTk4LTAzLTExIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaAosIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuaCwKICAgc3lzT1JUYWJsZS5oLCB2bXN0YXQuaDoKCiAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgIC0gZmluaXNoIGNvbnZlcnRpbmcgYSBmZXcgb2YgdGhlIGZpbGVzIHRoYXQgTmllbHMgbWlzc2VkLgogICAKMTk5OC0wMy0xMSAwODowNiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHVwZGF0ZS4uLgogICAKMTk5OC0wMy0xMSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAtIENoYW5nZSAqYWxsKiBkZWZpbmUgdXNhZ2UgdG8gbmV3IFNOTVBfIGFuZCBBU05fIHByZWZpeGVzLgogICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCiAgIAoxOTk4LTAzLTA5IDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYwosIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIGltcGxlbWVudCBzeXNPUlRhYmxlLgogICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KICAgCjE5OTgtMDMtMDYgMTU6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOgogICAgIC0gcmVtb3ZlIEdMT0JBTC1TRUNVUklUWSBjaGVja3MuCiAgIAoxOTk4LTAzLTA2IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JlYWRfY29uZmlnLmMKLCBhZ2VudC9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcHRhYmxlLjEsIG1pYnMvLmluZGV4CiwgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYwosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAosIHNubXBsaWIvdmlldy5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsCiAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLAogICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgbWliLmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBJbXBsZW1lbnQgdGhlIFNOTVB2MyBWaWV3IEJhc2VkIEFjY2VzcyBDb250cm9sIE1vZGVsIChSRkMgMjI3NSkuCiAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgogICAKMTk5OC0wMy0wNCAxNTo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KICAgCjE5OTgtMDItMjUgMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgogICAKMTk5OC0wMi0yMCAxMToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQgdG8gbG9vayBmb3IgYW5kIHN0cmlwIC91c3IvbGliLyouCiAgIAoxOTk4LTAyLTIwIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgogICAKMTk5OC0wMi0xOCAxNjo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBvcGVuYnNkIGRlZmluZXMuCiAgIAoxOTk4LTAyLTE4IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgpOgogICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICBsb3QgdG8gZ28gc3RpbGwuCiAgIAoxOTk4LTAyLTE4IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgLSBhZGRlZCBvcGVuYnNkLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogcHJvdG90eXBpbmcgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYwosIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywKICAgbWliaW5jbC5oLCBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLAogICByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jCiwgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywKICAgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHZtc3RhdC5jOgoKICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYywKICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsCiAgICAgdm1zdGF0LmMpOgogICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAtIGJ6ZXJvIC0+IG1lbXNldC4KICAgCjE5OTgtMDItMTggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsCiAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywKICAgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKLCBpcC5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYwosIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMKLCB2YXJfcm91dGUuYywgd29tYmF0LmM6CgogICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KICAgCjE5OTgtMDItMTggMTM6MzQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTggMTM6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHR1cm4gdGhlc2UgbWlicyBpbnRvIHJlYWwgdGFibGVzLiAgUmVxdWlyZWQgY2hhbmdpbmcgdGhlIG1pYiB0aG91Z2guCiAgIAoxOTk4LTAyLTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCiAgIAoxOTk4LTAyLTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiBkZWZpbmUgTElCRElSIGFuZCBEQVRBRElSLgogICAKMTk5OC0wMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgaXAuYywgdGNwLmMsIHVkcC5jOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgaXJpeC5oKToKICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIHBvcnQgdG8gaXJpeC4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGEgZGVidWdnaW5nIHN0YXRlbWVudCAobWlzc2luZyBhIHZhcmlhYmxlKS4KICAgCjE5OTgtMDItMTggMDg6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgogICAKMTk5OC0wMi0xOCAwODowNSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0Lmg6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCB2bXN0YXQuYywgdm1zdGF0LmgsIHVjZF9zbm1wLmgsCiAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgogICAKMTk5OC0wMi0xNyAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AuYywgdWRwLmM6CgogICAtICh0Y3AuYywgdWRwLmMpOgogICAgIC0gbmxpc3Qgc3ltYm9sIG5hbWUgZXJyb3JzLgogICAKMTk5OC0wMi0xNyAwOTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSB1c2UgYXBwcm9wcmlhdGUgbWFsbG9jcywgYW5kIE5VTEwgaW5pdGlhbGl6YXRpb24gb2YgcG9pbnRlcnMuCiAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAtIGVuYWJsZSBwcmludGluZyBvZiB0aGUgbmxpc3QgdHJlZSBpZiBURVNUSU5HIGlzIGRlZmluZWQuCiAgIAoxOTk4LTAyLTE3IDA5OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgogICAKMTk5OC0wMi0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdHlwbzogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgogICAKMTk5OC0wMi0xMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc29sYXJpcyBmaXhlcy4KICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcHMgYXV4IHNob3VsZCBkZWZpbmUgYXV4IG5vdCAtYXV4LgogICAKMTk5OC0wMi0xMSAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9ocl9wcm9jLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhdXRvX25saXN0LmM6CgogICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KICAgCjE5OTgtMDItMDkgMTE6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCiAgIAoxOTk4LTAyLTA5IDExOjE3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQogICAKMTk5OC0wMi0wOSAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggcHJvdG90eXBlcyBvbiBteSBicm9rZW4gdGFibGUgd2Fsa2luZyByb3V0aW5lcy4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hhbmdlZCAtLXdpdGgtc2hhcmVkLWxpYnJhcmllcyB0byAtLWVuYWJsZS1zaGFyZWQgdG8gbWF0Y2ggb3RoZXIgcGtncy4KICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMKLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLAogICBpbnRlcmZhY2VzLmMsIGlwLmMsIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jCiwgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jKToKICAgICAtIHVzZSBhdXRvX25saXN0LgogICAKMTk5OC0wMi0wNiAxNzoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KICAgCjE5OTgtMDItMDYgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYzoKCiAgIC0gKGhyX2Rpc2suYyk6IGNsb3NlKCkgZ290IGNhdWdodCBpbnNpZGUgYW4gZWxzZSBpdCBzaG91bGRuJ3QgaGF2ZSBkdWUKICAgICB0byBhbiBpZmRlZiBlcnJvci4KICAgCjE5OTgtMDItMDYgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAogICAKMTk5OC0wMi0wMiAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgLSBmaXggdHlwbyBpbiBjb25maWd1cmUgZm9yIHNoYXJlZCBsaWJyYXJ5IGV4dGVuc2lvbiB3L28gc2hhcmVkIGxpYnJhcmllcy4KICAgCjE5OTgtMDEtMzAgMTU6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jKTogZml4IGRlZmF1bHQgcG9ydCBmb3Igc25tcHRyYXAuCiAgIAoxOTk4LTAxLTMwIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSk6IGRlZmluZSBpZm5ldCBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICBjb3VsZCBJPwogICAKMTk5OC0wMS0zMCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUyICkKICAgCjE5OTgtMDEtMzAgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggZm9yIGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMTk5OC0wMS0zMCAxMDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KICAgCjE5OTgtMDEtMzAgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcmVnaXN0cnkuYywgcmVnaXN0cnkuaDoKCiAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgogICAKMTk5OC0wMS0zMCAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBtZXJnZSBEYXZlJ3MgY29kZSB3aXRoIG1pbmUuICBTdGlsbCBhIGZldyBidWdzIHRvIHdvcmsgdGhyb3VnaC4KICAgCjE5OTgtMDEtMzAgMTA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KICAgCjE5OTgtMDEtMzAgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCwgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgogICAKMTk5OC0wMS0yMyAxNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0LCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC92YXJfc3RydWN0LmgsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCiAgIAoxOTk4LTAxLTIzIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwKICAgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwKICAgdWRwLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCiAgIAoxOTk4LTAxLTIzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KICAgCjE5OTgtMDEtMjMgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uczoKICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAtIHVucmVnaXN0ZXJfbWliKCkuCiAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk4LTAxLTIzIDA4OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvbid0IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBpbiBsaW51eCdzIEZJTEVfVE9fQlVGIG1hY3JvLgogICAKMTk5OC0wMS0yMSAyMjowNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNyZWF0ZSBtLyBhbmQgcy8gZGlyZWN0b3JpZXMgYW5kIHVzZSB0aGVtIGZvciBzdXBwbGVtZW50YWwgY29uZmlnCiAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgogICAKMTk5OC0wMS0yMSAxNzozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMKLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLAogICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHZlcnNpb25pbmZvLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluKToKICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgIC0gYWxsIE1ha2VmaWxlcyBub3cgaW5jbHVkZSBhIE1ha2VmaWxlLnRvcCBmb3IgZWFzaWVyIGZ1dHVyZSBnbG9iYWwgY2hhbmdlcy4KICAgCjE5OTgtMDEtMjEgMTE6MDggIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogdXBkYXRlLgogICAKMTk5OC0wMS0xNiAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFNoZXNoYWRyaSBZYWdhdGk6CiAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCiAgIAoxOTk4LTAxLTEyIDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KICAgCjE5OTgtMDEtMTIgMDk6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KICAgCjE5OTgtMDEtMTIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLAogICBzbm1wX2ltcGwuaCwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgQmFnZ2VzZW46CiAgICAgLSBoZWFkZXIgY2hhbmdlcyBhbmQgYm9vbGVhbiBjaGVjayBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDEtMTIgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQwICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmluOgoKICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBEb2N1bWVudGF0aW9uIHVwZGF0ZSB0byBmaXggcGF0aHMgZnJvbSByZWNlbnQgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhbGFybS5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46IGxpbmsgZGlyZWN0bHkgdG8gbGliLgogICAKMTk5OC0wMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCBzbm1wX2FwaS4zOgoKICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUgdG8gcmVmbGVjdCBtb3ZlZCBoZWFkZXJzLgogICAKMTk5OC0wMS0xMiAwOToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCiAgIAoxOTk4LTAxLTA1IDE3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KICAgCjE5OTgtMDEtMDUgMTY6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wdjMKICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCiAgIAoxOTk4LTAxLTA1IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgogICAKMTk5Ny0xMi0zMCAxNzowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KICAgCjE5OTctMTItMzAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgIC0gbWlzYy4uLgogICAKMTk5Ny0xMi0yOSAwOTozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgogICAKMTk5Ny0xMi0yMyAxNjozMCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUxICkKICAgCjE5OTctMTItMjMgMTU6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydCBpZiBkZWJ1Z2dpbmcKICAgICBpcyBvbiBvciBvZmYuCiAgIAoxOTk3LTEyLTIzIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmg6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9hdC5oLAogICBtaWJncm91cC9ob3N0X3Jlcy5oLCBtaWJncm91cC9pY21wLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLAogICBtaWJncm91cC9pcC5oLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdGNwLmgsCiAgIG1pYmdyb3VwL3VkcC5jLCBtaWJncm91cC91ZHAuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmM6CgogICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBjbGVhbiB1cCByZXF1aXJlZCBoZWFkZXJzIGZvciBsaW51eC4KICAgCjE5OTctMTItMjMgMTQ6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaWNtcC5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3NubXBfbWliLmMsIG1pYmdyb3VwL3N5c3RlbS5jLCBtaWJncm91cC90Y3AuYwosIG1pYmdyb3VwL3VkcC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGJyZWFrIHVwIGNvbW1vbl9oZWFkZXIuaC4KICAgCjE5OTctMTItMjMgMTQ6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuODoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KICAgCjE5OTctMTItMjMgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hwdXguYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAtICgqKTogVHVybiBhbGwgZGVidWdnaW5nIHJvdXRpbmVzIGludG8gbGlicmFyeSBjYWxscyB0aGF0IGNhbiBiZQogICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAtIHZvaWQgc25tcF9zZXRfZG9fZGVidWdnaW5nKGludCkuCiAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCiAgIAoxOTk3LTEyLTIzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCiAgIAoxOTk3LTEyLTIzIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAtIGZpeCBwYXRjaCB3aGljaCBtdW5nZWQgYWJpbGl0eSB0byBnZW5lcmF0ZSBib3RoIC1QIGFuZCAtcyBzaW11bHRhbmVvdXNseS4KICAgCjE5OTctMTItMjMgMTI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgLSBmb3JrIGlmIHN5c2xvZyBlbmFibGVkLgogICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgogICAKMTk5Ny0xMi0yMyAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogI2lmZGVmJ2VkIG91dCB1bnVzZWQgd3JpdGVIUCBmdW5jdGlvbi4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuYywgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KICAgCjE5OTctMTItMjMgMTE6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFNvbGFyaXMgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KICAgCjE5OTctMTItMTUgMTU6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgIC0gUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBvdi86IFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KICAgCjE5OTctMTItMTUgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvZXhhbXBsZS5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2ljbXAuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYwosIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBtaWJncm91cC93b21iYXQuYywKICAgY29tbW9uX2hlYWRlci5oOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYywgY29tbW9uX2hlYWRlci5oKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5Lmg6CgogICAtIChob3N0LmgsIHVjZF9zbm1wLmgsIHYycGFydHkuaCk6CiAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMDUgMTQ6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIGluc3RlYWQgb2YgZXJyb3IgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvJ3MuCiAgIAoxOTk3LTEyLTA1IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wdGFibGUuYywKICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCiAgIAoxOTk3LTEyLTA1IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCiAgIAoxOTk3LTEyLTAxIDEyOjQ0ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcF9hcGkuMwosIG1pYnMvUkZDMTI3MS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE5FV1MsIFJFQURNRSwKICAgYWNjb25maWcuaCwgYnVnLXJlcG9ydCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuYwosIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTExLTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHBhcnR5X3ZhcnMuYyAoRXh0LTMtMy1wYXRjaGVzLjEpLCBwYXJ0eV92YXJzLmMKOgoKICAgLSAocGFydHlfdmFycy5jKTogdXNlIHN0cmluZ3MuaCBkZWZpbmUgbm90IHN0cmluZy5oLgogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMyApCiAgIAoxOTk3LTExLTE0IDEyOjM2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB2ZXJzaW9uIHVwZGF0ZS4KICAgCjE5OTctMTEtMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FOgoKICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMTQgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jOgoKICAgLSAod29tYmF0LmMpOiBxdWljayBkb2MgY2hhbmdlLgogICAKMTk5Ny0xMS0xNCAwODozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCiAgIAoxOTk3LTExLTEyIDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBTVERDIHR5cG9zLgogICAKMTk5Ny0xMS0xMiAyMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBtaWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogZml4IHFzb3J0IHBhcmFtcyBmb3IgU1REQy4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgLSBGaXhlcyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAyMDozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKCk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAod2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IGZ1bmN0aW9uIGNoYW5nZXMuCiAgIAoxOTk3LTExLTEyIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTExICkKICAgCjE5OTctMTEtMTIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMTEtMTIgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChzeXN0ZW0uaCk6IERvbid0IGluY2x1ZGUgY29uZmlnLmghCiAgIAoxOTk3LTExLTEyIDExOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtIChhcHBzLy5jdnNpZ25vcmUpOiBhZGRlZCBzbm1wdGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDEwOjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2VyIGltcHJvdmVtZW50cy4KICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMS0xMiAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGRlbHRhLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcGQuODoKCiAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldG5leHQuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHZhcmlvdXMgKHJlbW92ZSB1bm5lZWRlZCB2YXJzLCBldGMpLgogICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCiAgIAoxOTk3LTExLTEyIDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgogICAKMTk5Ny0xMS0xMiAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTctMTEtMTIgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb2xhcmlzIHBhdGNoZXMuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjUgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgZm9yIGxpbnV4L2hwdXgxMCBwcm9ibGVtcy4KICAgCjE5OTctMTEtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA4OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgIGlzIG5pY2UgZm9yIHBlb3BsZSByZWFkaW5nIHRoZSBjb2RlLgogICAKMTk5Ny0xMS0xMiAwNzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IFczMiBzcGVjaWZpYyBmaXhlcy4KICAgCjE5OTctMTEtMDcgMTY6MzggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTAgKQogICAKMTk5Ny0xMS0wNyAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5Ny0xMS0wNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogd2F0Y2ggb3V0IGZvciAvdXNyL3VjYi9jYyBvbiBzb2xhcmlzIGFuZCBkb24ndCB1c2UgaXQuCiAgIAoxOTk3LTExLTA3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCB3aW4zMi9jb25maWcuaCwgd2luMzIvd2luMzIub3B0Ciwgd2luMzIvbGlic25tcC9saWJzbm1wLnBsZywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsCiAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZywKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGcKOgoKICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCiAgIAoxOTk3LTExLTA3IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KICAgCjE5OTctMTEtMDcgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgogICAKMTk5Ny0xMS0wNyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgogICAKMTk5Ny0xMS0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KICAgCjE5OTctMTEtMDcgMTI6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCiAgIAoxOTk3LTExLTA1IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQogICAKMTk5Ny0xMS0wNSAxNDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCiAgIAoxOTk3LTExLTA1IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgIC0gTWFrZWZpbGUuaW4gcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCiAgIAoxOTk3LTExLTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvcHJvYy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBkaXNrLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KICAgCjE5OTctMTEtMDUgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogY29tbW9uX2hlYWRlci5oLCBtaWJncm91cC9ocl9kaXNrLmMsCiAgIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaHJfdXRpbHMuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICgqKTogbWVyZ2UgZnJvbSBEYXZlJ3MgcHJlNiBwYXRjaGVzLgogICAKMTk5Ny0xMS0wNSAxMzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOgogICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgIC0gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFIC0+IFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRQogICAKMTk5Ny0xMC0yOSAxNDowMCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKICAgCjE5OTctMTAtMjkgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KICAgCjE5OTctMTAtMjkgMTI6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBhbmQgaW5jbHVkZSBzeXMvY2RlZnMuaCBpbiBjb25maWcuaC4KICAgCjE5OTctMTAtMjkgMTI6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgogICAKMTk5Ny0xMC0yOSAxMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKICAgCjE5OTctMTAtMjkgMTE6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkZWx0YS4xCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChhY2NvbmZpZy5oLCBhc24xLmMsIG1pYi5bY2hdLCBwYXJzZS5oLGFwcHMvKixlcnJvcm1pYi5jLGxvYWRhdmUuYywKICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAtIFN1bk9TNCBjYyBkb2Vzbid0IGxpa2UgdW5zaWduZWQgbGl0ZXJhbHMgb3Igc3RydG91bCwKICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgIC0gY2hhbmdlZCB0aGUgYXBwcyB0byBwcmludCBhbGwgZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyLAogICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KICAgCjE5OTctMTAtMjkgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBvcHBzLCBmb3Jnb3QgdG8gcHV0IGluIEBleGVjX3BhdGhALgogICAKMTk5Ny0xMC0yOSAxMDo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4KLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosICovTWFrZWZpbGUuaW4pOgogICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgogICAKMTk5Ny0xMC0yOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgbWFuL21pYl9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgLSAobW9kaWZpZWQgdG8gcG9pbnQgYWdlbnQgdG8gc2JpbmRpciBpbnN0ZWFkIG9mIGV0Y2RpcikuCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KICAgCjE5OTctMTAtMjkgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBwb2ludGVyIHByb2JsZW1zIGZyb20gb2xkIHJlYWRfY29uZmlnIGZvcm0gdG8gbmV3LgogICAKMTk5Ny0xMC0yOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgLSAod2FzIG9yaWdpbmFsbHkgYSBtYXhpbXVtLCBidXQgSSBjaGFuZ2VkIGl0IHRvIG1pbmltdW0gaW5zdGVhZCkuCiAgIAoxOTk3LTEwLTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCiAgIAoxOTk3LTEwLTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCiAgIAoxOTk3LTEwLTI4IDE3OjEyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQogICAKMTk5Ny0xMC0yOCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogUGF0Y2ggZnJvbSBOb2J1b19Pa2FiZUB5b2tvZ2F3YS5jby5qcDoKICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCiAgIAoxOTk3LTEwLTI4IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgogICAKMTk5Ny0xMC0yOCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KICAgCjE5OTctMTAtMjggMTQ6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KICAgCjE5OTctMTAtMjggMTQ6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KICAgCjE5OTctMTAtMjggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KICAgCjE5OTctMTAtMjggMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3N5c3RlbS5jCiwgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCiAgIAoxOTk3LTEwLTI3IDE4OjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTYgKQogICAKMTk5Ny0xMC0yNyAxODoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgogICAKMTk5Ny0xMC0yNyAxODoxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiByZW1vdmUgZ290cm9vdCB2YXIuCiAgIAoxOTk3LTEwLTI3IDE4OjA1ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMik6ICBhZGQgZmlsZXMgb24gbWFpbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE4OjAyICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIHdpbjMyLm9wdDoKCiAgIHdpbjMyIGZpbGVzCiAgIAoxOTk3LTEwLTI3IDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCiAgIAoxOTk3LTEwLTI3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiBtZXJnZSBidWdzLiAgTWlzc2luZyBicmFja2V0cy4KICAgCjE5OTctMTAtMjcgMTc6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5oLCBocl9kaXNrLmgsIGhyX2ZpbGVzeXMuaAosIGhyX25ldHdvcmsuaCwgaHJfcHJpbnQuaCwgaHJfcHJvYy5oLAogICBocl9zd2luc3QuaCwgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmg6CgogICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KICAgCjE5OTctMTAtMjcgMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiB0d28gbW9kdWxlcyBmb3IgZXh0ZW5zaWJsZSBjb3VudC4KICAgCjE5OTctMTAtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCiAgIAoxOTk3LTEwLTI3IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYwosIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYwosIGhyX3N5c3RlbS5jOgoKICAgLSAoaHJfKi5jKTogRVJST1IgLT4gRVJST1JfTVNHLgogICAKMTk5Ny0xMC0yNyAxNjozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5bY2hdKTogZml4IHBlcnJvciBsb3NzZXMgZnJvbSBtZXJnZS4KICAgCjE5OTctMTAtMjcgMTY6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmM6CgogICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwOgoKICAgZmlsZSBzbm1wc3RhdHVzLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnOgoKICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQucGxnOgoKICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwOgoKICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3A6CgogICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGc6CgogICBmaWxlIHNubXBnZXRuZXh0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnOgoKICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZzoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcDoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnBsZzoKCiAgIGZpbGUgbGlic25tcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIGZpbGUgd2luMzIub3B0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAtIG1vdmVkIGFyY2ggZGVwZW5kYW50IG1vZHVsZXMgKG1lbW9yeSwgaHB1eCwga2VybmVsX3N1bm9zNSkgbG9hZHMKICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSB0eXBlY2FzdCBrbG9va3VwIGNhbGxzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMTAtMjIgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAtIFR5cG8ncyBmaXhlZCBieSBOaWVscy4KICAgCjE5OTctMTAtMjEgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGlkIGEgbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTEwLTIxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCiAgIAoxOTk3LTEwLTIxIDEyOjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KICAgCjE5OTctMTAtMjEgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3Bhc3MuaCwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgKLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgogICAKMTk5Ny0xMC0yMSAxMTowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU0ICkKICAgCjE5OTctMTAtMjEgMTE6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCiAgIAoxOTk3LTEwLTIxIDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMKOgoKICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCiAgIAoxOTk3LTEwLTIxIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCiAgIAoxOTk3LTEwLTIxIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMCAxOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KICAgCjE5OTctMTAtMjAgMTk6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgogICAKMTk5Ny0xMC0yMCAxODowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICBhZGQgYW5kIHJlbW92ZSBhcyBuZWVkZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuYywgaG9zdC5oLCBocl9kZXZpY2UuYywKICAgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYwosIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsCiAgIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsCiAgIGhyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCB3b21iYXQuW2NoXSk6CiAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgogICAKMTk5Ny0xMC0yMCAxNzowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KICAgCjE5OTctMTAtMjAgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEZyb20gRGF2ZTogIHBhdGNoIERFRkFVTFRfTUlCUyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAtIGRvbid0IHJlcG9ydCBhbGwgbGluZXMgYXMgYW4gZXJyb3IgKG9wcHMpLgogICAKMTk5Ny0xMC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCiAgIAoxOTk3LTEwLTIwIDExOjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaAo6CgogICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAtIENyZWF0ZWQgYSBuZXcgbWlibW9kdWxlLmggY29uZmlndXJhdGlvbiBtYWNybyBjYWxsZWQKICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAtIEFsbCByZWxhdGVkIHBhcnNpbmcgaGFzIGJlZW4gc3RyaXBlZCBmcm9tIHJlYWRfY29uZmlnLmMgYW5kIG1vdmUKICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgIC0gYmFzaWMgLVdhbGwgY2xlYW51cHMgaW4gaHIqIGFzIHdlbGwgKG5vdCBuZWFybHkgZG9uZSB5ZXQpLgogICAKMTk5Ny0xMC0yMCAxMTo0NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTEwLTE1IDE4OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaAosIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgIC0gKG1lbW9yeS5jKTogZml4ZWQgYSBudWxsIHBvaW50ZXIgcHJvYmxlbSB1bmRlciBsaW51eC4KICAgCjE5OTctMTAtMTUgMTI6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvLmN2c2lnbm9yZToKCiAgIC0gKG1pYnMvLmN2c2lnbm9yZSk6ICBhZGRlZCBNYWtlZmlsZS4KICAgCjE5OTctMTAtMTUgMTI6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgogICAKMTk5Ny0xMC0xNSAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi92aWV3LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAtIHJlbW92ZSB0aGUgcHJpbnRmJ3MgZnJvbSB0aGUgbGlicmFyeSBhbmQgc2V0IGEgc25tcCAnZXJybm8nIGVxdWl2YWxlbnQuCiAgIAoxOTk3LTEwLTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmM6CgogICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgogICAKMTk5Ny0xMC0xNCAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYwosIGV2ZW50LmMsIGV2ZW50LmgsIGludGVyZmFjZXMuYywKICAga2VybmVsX3N1bm9zNS5jLCBtZW1vcnkuYywgbWVtb3J5LmgsIHBhcnR5X3ZhcnMuYwosIHJlYWRfY29uZmlnLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jCiwgdmlld192YXJzLmM6CgogICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgIC0gKHlldCBtb3JlIHdhcm5pbmcgcmVtb3ZhbHMgYW5kIG1lbW9yeSBmdW5jdGlvbiBzdGFuZGFyZGl6YXRpb25zIGZyb20gTmllbHMpLgogICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgogICAKMTk5Ny0xMC0xNCAxNToyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgogICAKMTk5Ny0xMC0xNCAxNToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCiAgIAoxOTk3LTEwLTE0IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCiAgIAoxOTk3LTEwLTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogZG9jIGFkZGl0aW9uOiAgYWRkX21pYmRpcigpIHJldHVybiB2YWx1ZS4KICAgCjE5OTctMDgtMjUgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCiAgIAoxOTk3LTA4LTI1IDAwOjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHR5cG8gaW4gaWZkZWYuCiAgIAoxOTk3LTA4LTE1IDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTMgKQogICAKMTk5Ny0wOC0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zeXN0ZW0uYywgYWdlbnQvc25tcGQuYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAtIENoZWNrIGZvciBTSU9DR0lGQUREUiBpbiBzeXMvaW9jdGwuaCBhbmQgdXNlIGl0IGluIGdldF9teWFkZHIoKSBpZgogICAgICAgZGVmaW5lZC4KICAgCjE5OTctMDgtMTQgMDg6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCiAgIAoxOTk3LTA4LTE0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9wcm9jLmM6CgogICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAKMTk5Ny0wOC0xNCAwODoxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKToKICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgIC0gYmFja3F1b3RlIGEgLiBpbiBhIHNlZCByZWdleHAgdG8gd2F0Y2ggb3V0IGZvciBtb2R1bGUgbmFtZXMKICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KICAgCjE5OTctMDgtMTQgMDc6MzcgIHdoYXJkYWtlCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAtIHBvcnQgdG8gQUlYIDQuMS41LgogICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCiAgIAoxOTk3LTA4LTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jCiwgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBtYWluLmMpOgogICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCiAgIAoxOTk3LTA4LTEzIDA4OjEwICB3aGFyZGFrZQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaAosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcKLCBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9wYXJ0eS5oOgoKICAgLSAodmVyc2lvbi5oLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgIHJlbW92YWwgbW9yZSBwb3NzaWJsZS4gIFlvdSBjYW4gbm93IGNvbXBpbGUgd2l0aCBhbG1vc3Qgbm8gbW9kdWxlcwogICAgICAgaW5zdGFsbGVkLgogICAKMTk5Ny0wOC0xMyAwNDo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCiAgIAoxOTk3LTA4LTA3IDAyOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgLSBmaXggc3dhcCBvbiBIUFVYIDEwLjIwCiAgIAoxOTk3LTA4LTA3IDAxOjMzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBtaWJncm91cC9wcm9jLmM6CgogICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIEltcGxlbWVudCByZWFsIHByb2Nlc3MgdGFibGUgd2Fsa3Mgb24gVWx0cml4LgogICAKMTk5Ny0wOC0wNyAwMToxMCAgd2hhcmRha2UKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYzoKCiAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgLSBpbXBsZW1lbnQgc3RyZHVwIGlmIG5vdCBmb3VuZCBpbiBzeXN0ZW0uCiAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAtIHVwIG1heGltdW0gZGlza3MgdG8gNTAuCiAgIAoxOTk3LTA4LTA3IDAwOjI5ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IGJldHRlciBlcnJvciBtZXNzYWdlcyBieSBhcHBzLgogICAKMTk5Ny0wNy0yNCAyMzo1MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gRWRkeSBKLiBHdXJuZXk6ICB1bmNvbW1lbnQgZ2V0dGltZW9mZGF5KCkgY2FsbC4KICAgCjE5OTctMDctMDMgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQogICAKMTk5Ny0wNy0wMyAyMzozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYywgbWliLltjaF0sIHBhcnNlLltjaF0pOgogICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KICAgCjE5OTctMDctMDEgMDg6MzcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQogICAKMTk5Ny0wNy0wMSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogQmV0dGVyIHVzYWdlIGluZm9ybWF0aW9uIGFuZCB1c2FnZSgpIHN0YW5kYXJpemF0aW9uLgogICAKMTk5Ny0wNy0wMSAwNTo0MSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgsIGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KICAgCjE5OTctMDctMDEgMDE6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KICAgCjE5OTctMDYtMzAgMDc6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jKTogU3VnZ2VzdGlvbnMgZnJvbSBMYXVra2FuZW4gTWFya2t1IE5SQy9Ia2k6CiAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgogICAKMTk5Ny0wNi0zMCAwNjo1OCAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKOgoKICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIEhhbmRsZSBtaWIgbW9kdWxlIHJlcGxhY2VtZW50cyB0aHJvdWdoIG5ldyBmdW5jdGlvbiBhbmQgcmVwbGFjZW1lbnQgdGFibGUuCiAgIAoxOTk3LTA2LTMwIDA2OjQ5ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOiBQYXRjaCBmcm9tIHZsYWRAbWlzZXJ5LnJvc3ByaW50LnJ1OgogICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCiAgIAoxOTk3LTA2LTMwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCiAgIAoxOTk3LTA2LTMwIDA2OjMzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChzbm1wdGVzdC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggZ2V0IC0+IGZnZXQgJ1xuJyBwcm9ibGVtLgogICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgogICAKMTk5Ny0wNi0zMCAwNTo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCiAgIAoxOTk3LTA2LTMwIDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChhZ2VudC9zbm1wX3thZ2VudCx2YXJzfS5jLCBhbGFybS5jLCBldmVudC5jLCBhcHBzLyosCiAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgIC0gTWVyZ2VkIGFyZyBwYXJzaW5nIG9mIGFwcHMvKiBjbGllbnRzIGludG8gb25lIGZpbGUuCiAgIAoxOTk3LTA2LTI2IDIzOjM5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KICAgCjE5OTctMDYtMjMgMjM6NDIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IG5lZWQgMiBsZWFkaW5nICctJ3Mgb24gLS13aXRoLW1pYi1tb2R1bGVzIGZsYWcuCiAgIAoxOTk3LTA2LTIzIDIzOjQxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopOiBic2RpMyBuZWVkcyB0byBkZWZpbmUgYnNkaTIsIG5vdCBpdHNlbGYgKGR1aCkuCiAgIAoxOTk3LTA2LTIzIDIzOjQwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2huIENoYXJsdG9uIHRvIGZpeCBsZWFkaW5nIHNwYWNlcyBpbiBzZWRzY3JpcHQuCiAgIAoxOTk3LTA2LTExIDA1OjQ2ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB3aG9vcHMuCiAgIAoxOTk3LTA2LTExIDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjYgMDI6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgIC0gQWxsb3cgU1lOVEFYIERpc3BsYXlTdHJpbmcgKFNJWkUpIGluc2lkZSBPQkpFQ1QtVFlQRS4KICAgCjE5OTctMDUtMjYgMDE6NTggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4yICkKICAgCjE5OTctMDUtMjYgMDE6NTcgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4yLgogICAKMTk5Ny0wNS0yNiAwMTo1NiAgd2hhcmRha2UKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiBuZXcgdmFyaWFibGVzIHRvIHNldCB3YWxrL2dldC9zZXQgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMTk5Ny0wNS0yNiAwMTo1MiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgogICAKMTk5Ny0wNS0yNiAwMTo1MCAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjMgMDc6MzQgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgogICAKMTk5Ny0wNS0yMyAwNzoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgogICAKMTk5Ny0wNS0yMyAwNDo0MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IFNOTVAgcGVybCBhZ2Fpbi4KICAgCjE5OTctMDUtMjMgMDQ6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KICAgCjE5OTctMDUtMjMgMDQ6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KICAgCjE5OTctMDUtMjMgMDQ6MzUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KICAgCjE5OTctMDUtMjIgMDQ6MTMgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLU0yTS1NSUIudHh0OgoKICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogcmVzdG9yZWQuICBHb3QgdHJ1bmNhdGVkLgogICAKMTk5Ny0wNS0yMSAwNjo0MCAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTA1LTIxIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwMToxMyAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgogICAKMTk5Ny0wNS0yMCAwNzo1MCAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCiAgIAoxOTk3LTA1LTIwIDAyOjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCiAgIAoxOTk3LTA1LTIwIDAxOjA4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2F1dGguYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCiAgIAoxOTk3LTA1LTE5IDIzOjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgogICAKMTk5Ny0wNS0xOSAyMzoxOCAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCiAgIAoxOTk3LTA1LTE5IDIzOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogT25seSBkbyBNYXJ0aW4gSmFjb2Jzc2VuJ3MgZml4ZXMgZm9yIGZyZWVic2QyLgogICAKMTk5Ny0wNS0xNiAwMjoyNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgogICAKMTk5Ny0wNS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KICAgCjE5OTctMDUtMTUgMDc6MjYgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjIyICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzowMSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgIC0gQ2hhbmdlZCBlbnYgdmFyaWFibGUgTUlCRklMRSAtPiBNSUJGSUxFUyAoc2luY2UgaXQgaXMgYSBsaXN0IG5vdykuCiAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICBsb25nZXIgbG9hZGVkKSBhbmQgbXVzdCBiZSB0dXJuZWQgb24gdGhyb3VnaCBjb25maWd1cmUgb3IgdGhlIGVudiB2YXIuCiAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCiAgIAoxOTk3LTA1LTE1IDA2OjIyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KICAgCjE5OTctMDUtMTUgMDU6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAtIHN1cHJlc3MgIm5hbWUgY2xhc2giIHdhcm5pbmdzIGZvciBhbm9ueW1vdXMgbm9kZXMuCiAgIAoxOTk3LTA1LTE1IDAyOjMyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KICAgCjE5OTctMDUtMTUgMDI6MzEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBjY2l0dCAtPiAwLgogICAKMTk5Ny0wNS0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBpbXBvcnQgaW5kZW50aWZpZXJzLgogICAKMTk5Ny0wNS0xNSAwMjoyOSAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgogICAKMTk5Ny0wNS0xNSAwMjoyOCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCiAgIAoxOTk3LTA1LTE1IDAyOjIzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KICAgCjE5OTctMDUtMTUgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAogICAKMTk5Ny0wNS0xNCAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU2ICkKICAgCjE5OTctMDUtMTQgMDQ6NDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogIFR5cGVjYXN0IG1hbGxvYy4KICAgCjE5OTctMDUtMTQgMDQ6MTcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KICAgCjE5OTctMDUtMTQgMDQ6MTMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgogICAKMTk5Ny0wNS0xNCAwMjo0MSAgd2hhcmRha2UKCiAgICogbWliLnR4dCwgTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk3LTA1LTEzIDA3OjIyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChjb25maWcqLG1pYi5jKTogTmV3IGNvbmZpZ3VyZSBvcHRpb24gLS13aXRoLWRlZmF1bHQtbWlicz0ibGlzdDpsaXN0Ii4KICAgCjE5OTctMDUtMTMgMDY6MzggIHdoYXJkYWtlCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIFVDRC1TTk1QLU1JQi50eHQKICAgCjE5OTctMDUtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgogICAKMTk5Ny0wNS0xMyAwNTo0OCAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBDaGFuZ2VkIElEIHRvIFVDRC1TTk1QCiAgIAoxOTk3LTA1LTEzIDAzOjAzICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCiAgIAoxOTk3LTA1LTEzIDAzOjAyICB3aGFyZGFrZQoKICAgKiBtaWJzL3NubXB2Mi50eHQ6CgogICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KICAgCjE5OTctMDUtMTMgMDI6NTcgIHdoYXJkYWtlCgogICAqIG1pYnMvcmZjMTI3MS50eHQ6CgogICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzLzogdWNkLXNubXAudHh0LCB1Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IHdob29wcy4gIFJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyMTMtTUlCLnR4dDoKCiAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMTU1LVNNSS50eHQ6CgogICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTI3MS1NSUIudHh0OgoKICAgLSAoUkZDMTI3MS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvVENQLU1JQi50eHQ6CgogICAtIChUQ1AtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVE0udHh0OgoKICAgLSAoU05NUHYyLVRNLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItU01JLnR4dDoKCiAgIC0gKFNOTVB2Mi1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NSUIudHh0OgoKICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSAoU05NUHYyLUNPTkYudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lQLU1JQi50eHQ6CgogICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0OgoKICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9FdGhlckxpa2UtTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC50eHQ6CgogICAtICh1Y2QudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lGLU1JQi50eHQ6CgogICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTExIDIzOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCiAgIAoxOTk3LTA1LTExIDIzOjQ5ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KICAgCjE5OTctMDUtMTEgMjM6NDggIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIFJFQURNRSwgVE9ETzoKCiAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5Ny0wNS0xMSAyMzo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IHJlbW92ZWQgQ0NIQUNLID8/Py4KICAgCjE5OTctMDUtMTEgMjM6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCiAgIAoxOTk3LTA1LTEwIDA4OjIzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAtIG11bHRpcGxlIHRyYXAgc2lua3MuCiAgIAoxOTk3LTA1LTEwIDA3OjUyICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDUtMTAgMDc6NDUgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgogICAKMTk5Ny0wNS0xMCAwNzo0MSAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRvbid0IHN1Ym1pdCBibGFuayBidWctcmVwb3J0cy4KICAgCjE5OTctMDUtMDkgMTU6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzIChldmVuIGJldHRlcikuCiAgIAoxOTk3LTA1LTA5IDE1OjQ2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KICAgCjE5OTctMDUtMDkgMTU6MjggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIG5lZ2F0aXZlIG51bWJlcnMgaW4gbWlicy4KICAgCjE5OTctMDUtMDkgMTU6MDMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KICAgCjE5OTctMDUtMDkgMTQ6NTIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LltjaF0pOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBVcGRhdGUuCiAgIAoxOTk3LTA1LTA5IDEzOjQ2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmMsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlCiwgY29uZmlnLmguaW46CgogICAtIChzbXV4LmMsIGNvbmZpZyopOgogICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCiAgIAoxOTk3LTA1LTA5IDEzOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG1pYi5jLCBtaWIuaCwgcGFyc2UuYwosIHBhcnNlLmg6CgogICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICh1c2VzIGVudiB2YXJpYWJsZXMgTUlCRElSUywgTUlCUywgYW5kIE1JQkZJTEUpCiAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgIC0gVG9rZW5zIGltcGxlbWVudGVkIGludGVybmFsbHkgbm8gbG9uZ2VyIHJlcXVpcmUgaW1wb3J0aW5nIHRoZQogICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCiAgIAoxOTk3LTA0LTIyIDExOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQogICAKMTk5Ny0wNC0yMiAwODo0MyAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCiAgIAoxOTk3LTA0LTIyIDA3OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmM6CgogICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgLSBzdGFuZGFyZGl6ZSBoZWFkZXJzIGZvciBhdXRvY29uZi4KICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgogICAKMTk5Ny0wNC0yMiAwNjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYwosIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgIC0gY29uZm9ybSB0byBuZXcgbW9kdWxlIHN0YW5kYXJkcyBvZiBjb2RpbmcuCiAgIAoxOTk3LTA0LTIyIDA2OjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiByZW1vdmUgZHVwbGljYXRlICh3YXJuaW5nKSBUQ1AgZGVmaW5lcyBvbiBvc2Y0IHN5c3RlbXMuCiAgIAoxOTk3LTA0LTIyIDA2OjIwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwKICAgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoUkVBRE1FLnNtdXgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMpOgogICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCiAgIAoxOTk3LTA0LTIyIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIyIDA1OjU5ICB3aGFyZGFrZQoKICAgKiBtYWtldGFyZ2V0LCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMubGludXguaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIxIDIzOjQyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCiAgIAoxOTk3LTAzLTI2IDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgogICAKMTk5Ny0wMy0yNSAwNDozMCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCiAgIAoxOTk3LTAzLTI1IDAwOjM5ICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHN5c2xvY2F0aW9uIGFuZCBzeXNjb250YWN0IGV4YW1wbGVzLgogICAKMTk5Ny0wMy0yNCAwNDo1NiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMjQgMDA6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgogICAKMTk5Ny0wMy0yNCAwMDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgc2NyaXB0IGluIEMgY29kZS4KICAgCjE5OTctMDMtMjQgMDA6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90b3R5cGUgd3JpdGUgZnVuY3Rpb24gYmV0dGVyLgogICAKMTk5Ny0wMy0xOCAwNzo1MyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogc25tcC5jb25mIC0+IHNubXBkLmNvbmYKICAgCjE5OTctMDMtMTggMDc6NTIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNzoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTE0IDA0OjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQogICAKMTk5Ny0wMy0xNCAwNDo1NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAoYWNjb25maWcuaCwgdWNkLXNubXAudHh0KTogcmVjb2duaXplIG5ldyBob3N0cyBmb3Igc3lzT2JqZWN0SWQuCiAgIAoxOTk3LTAzLTE0IDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBhZ2VudC9zbm1wZC5jCjoKCiAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCiAgIAoxOTk3LTAzLTE0IDA0OjUxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KICAgCjE5OTctMDMtMTQgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfZ3JvdXB2YXJzLmg6CgogICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgogICAKMTk5Ny0wMy0xNCAwMjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzX2V2ZW50Lmg6CgogICAtIChzbm1wX3ZhcnNfZXZlbnQuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMTQgMDI6MTcgIHdoYXJkYWtlCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogcnVuIG9uIHNubXBuZXRzdGF0IGRpciBhbHNvLgogICAKMTk5Ny0wMy0xNCAwMjowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCBzZWRzY3JpcHQgdG8gaW5jbHVkZSBzIyBhcyB3ZWxsIGFzIHMvIGNvbW1hbmRzLgogICAKMTk5Ny0wMy0xNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBVcGRhdGVkIHRvIGluY2x1ZGUgLWMvLUMgYW5kIFNOTVBDT05GUEFUSCBlbnYgdmFyLgogICAKMTk5Ny0wMy0xNCAwMTo0OSAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiByZW1vdmUgdGhlIGxhc3Qgb2YgdGhlIHNlZCBzY3JpcHQgZGVmcy4KICAgCjE5OTctMDMtMTQgMDE6NDggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KICAgCjE5OTctMDMtMTQgMDA6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvOiByZmMxMjcxLnR4dCwgc25tcHYyLnR4dCwgdWNkLXNubXAudHh0OgoKICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCiAgIAoxOTk3LTAzLTE0IDAwOjQ3ICB3aGFyZGFrZQoKICAgKiBtaWIudHh0OgoKICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCiAgIAoxOTk3LTAzLTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiB1Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KICAgCjE5OTctMDMtMTQgMDA6MzggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBlY2UtbWliLmRlZiwgbWliLnR4dCwgbWliSUkudHh0CiwgdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgogICAKMTk5Ny0wMy0xMyAwODo0NSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcG5ldHN0YXQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgIC0gTW9yZSAoc3ltYm9saWMpIGRlYnVnIG91dHB1dCBmcm9tIHNubXBkLCB3aGVuIHVzaW5nIC1WLiAtZCBpbXBsaWVzIC1WCiAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAtIHNubXBuZXRzdGF0IC1yIHNob3dzIG5vbi1zdGFuZGFyZCBuZXRtYXNrcwogICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgIGludGVyZmFjZQogICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgIC0gYWRkcyBhIG1ha2V0YXJnZXQgc2NyaXB0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFyYWxsZWwgc3ltbGlua2VkCiAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKICAgCjE5OTctMDMtMTMgMDg6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCiAgIAoxOTk3LTAzLTEzIDA3OjE3ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy8qL01ha2VmaWxlLmluKTogZGVwZW5kIHByb2JsZW1zIGZpeC4KICAgCjE5OTctMDMtMTMgMDc6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCiAgIAoxOTk3LTAzLTEzIDA3OjA3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCiAgIAoxOTk3LTAzLTEzIDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KICAgCjE5OTctMDMtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogdmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLAogICBhY2xfdmFycy5jOgoKICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgogICAKMTk5Ny0wMy0xMyAwNjozNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgogICAKMTk5Ny0wMy0xMyAwNTo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsLmNvbmYsIGtlcm5lbF9zdW5vczUuYwosIGtlcm5lbF9zdW5vczUuaCwgcm91dGVfd3JpdGUuYywKICAgc25tcF92YXJfcm91dGUuYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk3LTAzLTEzIDA1OjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhY2xfdmFycy5jLCBhbGFybS5jLAogICBhbGFybS5oLCBjb21tb25faGVhZGVyLmgsIGNvbnRleHRfdmFycy5jLCBldmVudC5jCiwgZXZlbnQuaCwgcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYywgdmlld192YXJzLmMsIG1pYmdyb3VwL2FjbF92YXJzLmMsCiAgIG1pYmdyb3VwL2FjbF92YXJzLmgsIG1pYmdyb3VwL2FsYXJtLmMsIG1pYmdyb3VwL2FsYXJtLmgKLCBtaWJncm91cC9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBtaWJncm91cC9ldmVudC5jLCBtaWJncm91cC9ldmVudC5oLAogICBtaWJncm91cC9wYXJ0eV92YXJzLmMsIG1pYmdyb3VwL3BhcnR5X3ZhcnMuaCwKICAgbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgsIG1pYmdyb3VwL3NubXB2Ml92YXJzLmgsCiAgIG1pYmdyb3VwL3ZpZXdfdmFycy5jLCBtaWJncm91cC92aWV3X3ZhcnMuaDoKCiAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCiAgIAoxOTk3LTAzLTEzIDAxOjE0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmg6CgogICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCiAgIAoxOTk3LTAzLTEzIDAwOjM3ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBpbl9hZGRyX3QgYW5kIGRlZmluZSBhcyB1X2ludCAoMzIgYml0cykgaWYgbm90IHByZXNlbnQuCiAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgogICAKMTk5Ny0wMy0xMyAwMDozMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTIgMDg6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgogICAKMTk5Ny0wMy0xMiAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogZG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xMiAwNjo0OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgogICAKMTk5Ny0wMy0xMiAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgKLCBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgdmFyX3JvdXRlLltjaF0sIGlwLltjaF0sIHNubXAuW2NoXSAtPiBzbm1wX21pYi5bY2hdKToKICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgLSBNb3ZlZCB3cml0ZV9yb3V0ZS5jIC0+IG1pYmdyb3VwL3dyaXRlX3JvdXRlLmMKICAgCjE5OTctMDMtMTIgMDA6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9taWIuYywgc25tcF9taWIuaDoKCiAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KICAgCjE5OTctMDMtMTEgMDg6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYmdyb3VwLyopOgogICAgIC0gcmVtb3ZlIHRyYWlsaW5nIDtzIG9uIGJ1bmNoZXMgb2YgZnVuY3Rpb25zLgogICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogRG9uJ3QgY2hlY2sgX0tFUk5FTCBpZiBpZm5ldC5pZl9tdHUgYWxyZWFkeSB3b3Jrcy4KICAgCjE5OTctMDMtMTEgMDA6MDQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCiAgIAoxOTk3LTAzLTEwIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHNwYWNlIHByb3RlY3QgbW9kdWxlcyB3aGVuIGNoZWNraW5nIGZvciB3aXRoIGdyZXAuCiAgIAoxOTk3LTAzLTEwIDA3OjU1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBjb25maWd1cmUgb3B0aW9uOiAgLS13aXRoLW91dC1taWItbW9kdWxlcz0ibGlzdCIuCiAgIAoxOTk3LTAzLTA3IDA3OjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgogICAKMTk5Ny0wMy0wNyAwNzowOSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgogICAKMTk5Ny0wMy0wNyAwNjowMiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA2OjAwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmgsIGRpc2suaCwgZXJyb3JtaWIuaCwKICAgZXh0ZW5zaWJsZS5oLCBpY21wLmgsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgcHJvYy5oLCBzbm1wLmgsCiAgIHN5c3RlbS5oLCB0Y3AuaCwgdWRwLmgsIHZlcnNpb25pbmZvLmgsCiAgIHdvbWJhdC5oOgoKICAgLSAobWliZ3JvdXAvKik6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KICAgCjE5OTctMDMtMDcgMDU6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCiAgIAoxOTk3LTAzLTA3IDA0OjUxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCiAgIAoxOTk3LTAzLTA3IDA0OjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9ocHV4LmM6CgogICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMy0wNyAwNDo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChtaWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6IGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiByZW1vdmUgZXh0cHJvdG8uaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgogICAKMTk5Ny0wMy0wNyAwNDo0NiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KICAgCjE5OTctMDMtMDcgMDQ6NDQgIHdoYXJkYWtlCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjE5OTctMDMtMDcgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCiAgIAoxOTk3LTAzLTA3IDA0OjM5ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IG5ldyBtYWtlIGRlcGVuZCBzY3JpcHQKICAgCjE5OTctMDMtMDcgMDI6NDIgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGdlbmVyYXRlIGEgbWliX21vZHVsZV9jb25maWcuaCB3aXRoIGRlZmluZXMgb2Ygd2hhdHMgYmVpbmcgdXNlZC4KICAgCjE5OTctMDMtMDcgMDE6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oOgoKICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgogICAKMTk5Ny0wMy0wNyAwMTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIGhwdXguaDoKCiAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KICAgCjE5OTctMDMtMDcgMDE6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwogICAKMTk5Ny0wMy0wNyAwMDo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9kaXNrLmgKLCBtaWJncm91cC9lcnJvcm1pYi5jLCBtaWJncm91cC9lcnJvcm1pYi5oLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvbG9hZGF2ZS5jLAogICBtaWJncm91cC9sb2FkYXZlLmgsIG1pYmdyb3VwL3Bhc3MuYywgbWliZ3JvdXAvcGFzcy5oCiwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgsCiAgIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmgsCiAgIG1pYmdyb3VwL3NubXAuYywgbWliZ3JvdXAvc3lzdGVtLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgogICAKMTk5Ny0wMy0wNyAwMDowNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbW9yZSBub24tbWliZ3JvdXAgc3BlY2lmaWMgY2FsbHMgYW5kIGhlYWRlcnMuCiAgIAoxOTk3LTAzLTA3IDAwOjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL01ha2VmaWxlLmluLCBtaWJncm91cC9kaXNrLmMsCiAgIG1pYmdyb3VwL2Rpc2suaCwgbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvZXJyb3JtaWIuaCwgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9tZW1vcnkuYywKICAgbWliZ3JvdXAvbWVtb3J5LmgsIG1pYmdyb3VwL21pYmRlZnMuaCwKICAgbWliZ3JvdXAvbWliaW5jbC5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvc3lzdGVtLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBtaWJncm91cC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC92ZXJzaW9uaW5mby5oLAogICBNYWtlZmlsZS5pbjoKCiAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KICAgCjE5OTctMDMtMDUgMDc6MjkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgogICAKMTk5Ny0wMy0wNSAwNzoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCiAgIAoxOTk3LTAzLTA1IDA3OjEzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hY2xfdmFycy5jOgoKICAgLSAoYWNsX3ZhcnMuYyk6IGluY29ycmVjdGx5IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBmb3Igd3JpdGVfYWNsKCkuCiAgIAoxOTk3LTAzLTA1IDA2OjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogYWNsLmMsIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jCiwgYXNuMS5oLCBjb250ZXh0LmMsIGNvbnRleHQuaCwKICAgY29udGV4dF9wYXJzZS5jLCBtZDUuYywgbWQ1LmgsIG1pYi5jLAogICBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCwgcGFydHkuYywgcGFydHkuaAosIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsCiAgIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgc3lzdGVtLmgKLCB2aWV3LmMsIHZpZXcuaDoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNjowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2Ml92YXJzLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDA1OjU4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvYWNsX3ZhcnMuYywKICAgYWdlbnQvYWxhcm0uYywgYWdlbnQvYWxhcm0uaCwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvY29udGV4dF92YXJzLmMsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcF92YXJzX2V2ZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvdmlld192YXJzLmM6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDI6MzcgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCiAgIAoxOTk3LTAzLTA1IDAyOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoxNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCiAgIAoxOTk3LTAzLTA1IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAobWliZ3JvdXAvLmN2c2lnbm9yZSk6IG5ldyB0byBpZ25vcmUgY3JlYXRlZCAuaCBmaWxlcy4KICAgCjE5OTctMDMtMDUgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KICAgCjE5OTctMDMtMDUgMDA6NDggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYXQuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgIC0gbmV3IGZpbGVzIGdlbmVyYXRlZCBieSBjb25maWd1cmU6CiAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luaXRzLmg6IEEgbGlzdCBvZiBpbml0X3dvbWJhdCgpIHR5cGUgZnVuY3Rpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWliLmggZmlsZXMgY2FsbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgogICAKMTk5Ny0wMy0wNCAwNjo0NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgIGJ5IHRoZSAtLXdpdGgtbWliLW1vZHVsZXM9Imxpc3Qgb2YgbW9kdWxlcyIgY29tbWFuZCBsaW5lIHRvIGNvbmZpZ3VyZS4KICAgCjE5OTctMDItMTcgMDc6MTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCiAgIAoxOTk3LTAyLTE3IDA2OjMyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDY6MzEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ljbXAuYzoKCiAgIC0gKGljbXAuYyk6IGRvbid0IHVzZSByZXQgdmFyaWFibGUsIHNpbmNlIGl0J3Mgbm90IGRlZmluZWQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFdhcyBwYXNzaW5nIGFuIGludCB0byBiY29weSBpbnN0ZWFkIG9mICZpbnQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IHR5cGVkZWYgZm9yIGdldFN0YXRQdHIoKS4KICAgCjE5OTctMDItMTcgMDU6NTMgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMi0xNyAwNTo0NyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgogICAKMTk5Ny0wMi0xNyAwNTo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUpOiBBZGRlZC4KICAgCjE5OTctMDItMTcgMDU6MzggIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGVfc3VidHJlZXMuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9zbm1wLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgKLCBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICBUaGUgcmVzdWx0cyBvZiBoaXMgd29yayBhcmUgaW4gdGhlIG5ldyBhZ2VudC9taWJncm91cCBkaXJlY3RvcnkuCiAgIAoxOTk3LTAyLTExIDA4OjAwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KICAgCjE5OTctMDItMTEgMDc6NDQgIHdoYXJkYWtlCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDA3OjQyICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGRlc2NlbmQgd2hlbiBtYWtlIGNsZWFuaW5nLgogICAKMTk5Ny0wMi0xMSAwNToxNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUxICkKICAgCjE5OTctMDItMTEgMDU6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCiAgIAoxOTk3LTAyLTExIDA1OjExICB3aGFyZGFrZQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbgo6CgogICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KICAgCjE5OTctMDItMTEgMDU6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgogICAKMTk5Ny0wMi0xMSAwNDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgogICAKMTk5Ny0wMi0xMSAwNDoxMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgogICAKMTk5Ny0wMi0xMSAwNDoxMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgogICAKMTk5Ny0wMi0xMSAwMzo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KICAgCjE5OTctMDItMTEgMDM6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBSZW1vdmVkIG5vbi1saW51eCBzcGVjaWZpYyBzdHVmZi4KICAgCjE5OTctMDItMTEgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCiAgIAoxOTk3LTAyLTEwIDAwOjU0ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IFdob29wcy4KICAgCjE5OTctMDItMTAgMDA6NTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMgKQogICAKMTk5Ny0wMi0xMCAwMDo1MCAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciAzLjEuMwogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBSZW1vdmUgbWFsbG9jIHByb3RvdHlwZSwgbm93IGluIHN0ZGxpYi5oLgogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KICAgCjE5OTctMDItMDUgMDg6NDEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCiAgIAoxOTk3LTAyLTA1IDA4OjI5ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCiAgIAoxOTk3LTAyLTA1IDA4OjI0ICB3aGFyZGFrZQoKICAgKiBORVdTLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyMCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KICAgCjE5OTctMDItMDUgMDg6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgogICAKMTk5Ny0wMi0wNSAwODowOSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgIC0gdHJhcCBnZW5lcmF0aW9uIGNsZWFudXBzLgogICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCiAgIAoxOTk3LTAyLTA1IDA4OjA3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTAyLTA1IDA3OjMzICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIHVwZGF0ZWQgYXJjaGl0ZWN0dXJlIGxpc3RzLgogICAKMTk5Ny0wMi0wNCAwMDo0MSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCiAgIAoxOTk3LTAyLTA0IDAwOjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KICAgCjE5OTctMDItMDQgMDA6MzYgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KICAgCjE5OTctMDItMDQgMDA6MzUgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogQWRkZWQgc3VnZ2VzdGlvbnMgZnJvbSB1Y2Qtc25tcC1jb2RlcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlJ3MgbGF0ZXN0IHJldmlzaW9uLgogICAKMTk5Ny0wMi0wMyAwNDo1NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKICAgCjE5OTctMDItMDMgMDQ6NTMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCiAgIAoxOTk3LTAyLTAzIDA0OjMzICB3aGFyZGFrZQoKICAgKiBORVdTLCBSRUFETUUsIFRPRE86CgogICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgogICAKMTk5Ny0wMi0wMyAwNDoxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKToKICAgICAtIGFkZGVkIEZBUSBwb2ludGVyLgogICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgLSBidWctcmVwb3J0IHNjcmlwdCBtZW50aW9uZWQuCiAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgogICAKMTk5Ny0wMi0wMyAwMzo1MSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KICAgCjE5OTctMDItMDMgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBhZGQgc29tZSBpcml4IGFwcHJvcHJpYXRlIGluY2x1ZGVzLgogICAKMTk5Ny0wMi0wMyAwMzo0NCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiB0eXBvOiAgbmVlZHMgYSBzcGFjZSBiZXR3ZWVuICdzdGF0aWMnIGFuZCAnc3RydWN0Jy4KICAgCjE5OTctMDItMDMgMDI6NTAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgLSBDaGVjayBpZiBfS0VSTkVMIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIGlyaXggYW5kIGlmbmV0IHVzYWdlLgogICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KICAgCjE5OTctMDItMDMgMDE6NDggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCiAgIAoxOTk3LTAyLTAzIDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgIC0gTWFyayBzdHVmZiBmb3IgbGF0ZXIgY2hhbmdlcy4KICAgCjE5OTctMDItMDMgMDE6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCiAgIAoxOTk3LTAyLTAzIDAxOjAzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjAyICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KICAgCjE5OTctMDEtMzEgMDI6MDMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnIHVwZGF0ZQogICAKMTk5Ny0wMS0zMSAwMTo1OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgogICAKMTk5Ny0wMS0zMSAwMTo0OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgogICAKMTk5Ny0wMS0zMSAwMTowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAtIEZpeCBjb21wbGlhdGlvbiBlcnJvcnMgb24gYnNkaTIuCiAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCiAgIAoxOTk3LTAxLTMxIDAwOjU3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sCiAgIGFjY29uZmlnLmg6CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCiAgIAoxOTk3LTAxLTI5IDA0OjA4ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCiAgIAoxOTk3LTAxLTI5IDAzOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAtIEltcGxlbWVudCByZWFsIHRyYXBzLgogICAKMTk5Ny0wMS0yOSAwMzoxMSAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiB1cGRhdGUKICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKICAgCjE5OTctMDEtMjkgMDM6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KICAgCjE5OTctMDEtMjkgMDM6MDkgIHdoYXJkYWtlCgogICAqIGFjbG9jYWwubTQ6CgogICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCiAgIAoxOTk3LTAxLTI5IDAzOjA4ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSAuc29mdHdhcmUuZGIuc2gKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKToKICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwogICAKMTk5Ny0wMS0yOSAwMzowNyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgIC0gcmUtYXJyYW5nZWQgYSBiaXQuCiAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCiAgIAoxOTk3LTAxLTI5IDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCiAgIAoxOTk3LTAxLTIxIDAwOjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBLYXJsIExlaGVuYmF1ZXIgPGthcmxAaGFtbWVyMS5vcHMuTmVvU29mdC5jb20+CiAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KICAgCjE5OTctMDEtMjAgMjM6MzQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfY2xpZW50LmgpOiByZW1vdmUgc2Vjb25kICh3cm9uZykgZnVuY3Rpb24gcHJvdG90eXBlLgogICAKMTk5Ny0wMS0yMCAyMzozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KICAgCjE5OTctMDEtMjAgMDc6NTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCiAgIAoxOTk3LTAxLTIwIDA3OjQzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgLSBmaXggcmVxdWVzdCBkZWxldGlvbnMgaW4gc25tcF9yZWFkKCkuCiAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgogICAKMTk5Ny0wMS0yMCAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCiAgIAoxOTk3LTAxLTIwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KICAgCjE5OTctMDEtMjAgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgogICAKMTk5Ny0wMS0yMCAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCiAgIAoxOTk3LTAxLTIwIDA2OjA4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXB0cmFwZC44LCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5oOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTIwIDA2OjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FsYXJtLmgsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfZ3JvdXB2YXJzLmgsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTE3IDAyOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6CiAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCiAgIAoxOTk3LTAxLTE3IDAyOjUxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAtIE5ldyBhcmcgLWMgRklMRTogIAkgICBSZWFkIEZJTEUgYXMgYSBjb25maWd1cmF0aW9uIGZpbGUgYXMgd2VsbC4KICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluOiBzZXBlcmF0ZWQgcGF0aC4KICAgCjE5OTctMDEtMTQgMDc6NDUgIHdoYXJkYWtlCgogICAqIFBPUlRJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCiAgIAoxOTk3LTAxLTA5IDIzOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgogICAKMTk5Ny0wMS0wOSAyMzo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgogICAKMTk5Ny0wMS0wOSAyMzo0MyAgd2hhcmRha2UKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KICAgCjE5OTYtMTItMDUgMDA6MTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIuMSApCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUuCiAgIAoxOTk2LTEyLTA1IDAwOjE0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiByZW1vdmUgYW5zaSBzcGVjaWZpYyBDIGZlYXR1cmVzICh1bnNpZ25lZCBjb25zdGFudHMpLgogICAKMTk5Ni0xMi0wNSAwMDoxMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAgIAoxOTk2LTEyLTA0IDAxOjAzICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yICkKICAgCjE5OTYtMTItMDQgMDE6MDEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCiAgIAoxOTk2LTEyLTA0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAtIFBhcnNlciBmaXhlcyBmb3IgbXVsdGlwbGUgbm9kZXMuCiAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgogICAKMTk5Ni0xMi0wMyAwNTo1MSAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6IFVzZWQgLT4gQXZhaWwgaW4gbWVtb3J5IHNlcXVlbmNlLgogICAKMTk5Ni0xMi0wMyAwMjoxNCAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbG9jYWwvcGFzc3Rlc3Q6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBwYXNzdGVzdCk6IE1vdmUgcGFzc3Rlc3QgdG8gdWNkYXZpcyBzdWJ0cmVlLgogICAKMTk5Ni0xMi0wMyAwMjowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gRml4IGFycCB0YWJsZSBmb3IgaHB1eC4KICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCiAgIAoxOTk2LTEyLTAzIDAxOjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBQdXQgJ1UnbnNpZ25lZCBtYXJrZXIgYXQgZW5kIG9mIGNvbnN0YW50cyB0byByZW1vdmUgZ2NjIHdhcm5zLgogICAKMTk5Ni0xMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAtIFdyb3RlIEFDX0NIRUNLX1NUUlVDVF9GT1IgYW5kIHVzZSBpdC4KICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCiAgIAoxOTk2LTEyLTAxIDIzOjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgCiAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgIGludGVyZmFjZSBpbmRleC4KICAgCiAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgIHBhY2tldHMuICBTb21lIHN5c3RlbXMgKGkuZS4gSFAtVVgpIGhhdmUgZXh0ZW5kZWQgdGhlIHVkcHN0YXQKICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgCiAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCiAgIAoxOTk2LTExLTI2IDIzOjU2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogVHJ1bmNhdGUgc3lzdGVtIG5hbWVzIGJleW9uZCBbLV9dLiouCiAgIAoxOTk2LTExLTI2IDIzOjQ1ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzozNCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBUeXBvOiAgMy4xLjMgLT4gMy4wLjMuCiAgIAoxOTk2LTExLTI2IDIzOjA1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgogICAKMTk5Ni0xMS0yNiAyMzowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBDaGFuZ2UgY29tbWVudHMgdG8gcmVmbGVjdCB3aGF0IGl0cyBhY3R1YWxseSBsb29raW5nIGF0LgogICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCiAgIAoxOTk2LTExLTI1IDAwOjE1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KICAgCjE5OTYtMTEtMjQgMjM6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgogICAKMTk5Ni0xMS0yNCAwNzo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKICAgCjE5OTYtMTEtMjQgMDc6MjQgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBJTlNUQUxMLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAtIFRoZSBhZ2VudCBkb2Vzbid0IGV4aXQgaWYgaXQgY2FuJ3Qgb3BlbiAvZGV2L2ttZW0uCiAgIAoxOTk2LTExLTIyIDA1OjM3ICB3aGFyZGFrZQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KICAgCjE5OTYtMTEtMjIgMDA6MTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIyIDAwOjA2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogTWVyZ2UgZnJvbSBGcmVlQlNEMi0zLTEtMS4KICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KICAgCjE5OTYtMTEtMjEgMjM6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KICAgCjE5OTYtMTEtMTUgMDc6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgogICAKMTk5Ni0xMS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogTWFrZSB1bmFtZSBjYWxscyB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTYtMTEtMTQgMDY6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wdHJhcC5jLCBzbm1wbmV0c3RhdC9pbmV0LmMsCiAgIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgogICAKMTk5Ni0xMS0xNCAwNjoxNyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6CiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgIC0gQ2hlY2sgZm9yIHN5cy92ZnMuaC4KICAgCjE5OTYtMTEtMTQgMDY6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOgogICAgIC0gI2lmZGVmIHR5cG8uCiAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0xMS0wOCAwODowNiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeGVkICd0b3VjaGl0Jy4KICAgCjE5OTYtMTEtMDggMDg6MDMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KICAgCjE5OTYtMTEtMDcgMDU6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KICAgCjE5OTYtMTEtMDcgMDU6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KICAgCjE5OTYtMTEtMDcgMDU6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgogICAKMTk5Ni0xMS0wNyAwNToxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KICAgCjE5OTYtMTEtMDcgMDA6MzQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNyAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIC0gTmV0QlNEIDMuMS4wLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNCAwMTowOCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBubGlzdCBpbiAtbG1sZCAoaXJpeCkuCiAgIAoxOTk2LTExLTA0IDAwOjMwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6ICBNb3JlIGluY2x1ZGUgY2hlY2tzIGZvciBsaW51eC4KICAgCjE5OTYtMTAtMzEgMjM6NTQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgIC0gYXNuX2J1aWxkX3Vuc2lnbmVkX2ludCwgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0OgogICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCiAgIAoxOTk2LTEwLTMwIDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGVjZS1taWIuZGVmOgoKICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgIC0gQ2hhbmdlIGV4dGVuc2libGUgbWliIGxvY2F0aW9uIHRvIHVjZGF2aXMgZW50ZXJwcmlzZSBtaWI6IDIwMjEuCiAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCiAgIAoxOTk2LTEwLTMwIDA0OjQ3ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCiAgIAoxOTk2LTEwLTE2IDIzOjAyICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQogICAKMTk5Ni0xMC0wOSAwNzo0NiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMSApCiAgIAoxOTk2LTEwLTA5IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuMS4xLgogICAKMTk5Ni0xMC0wOSAwNzoyMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCiAgIAoxOTk2LTEwLTA5IDA3OjE4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgIC0gRnJlZSBwZHUgY29tbXVuaXR5IHRvIHF1ZWxjaCBwdXJpZnkuCiAgIAoxOTk2LTEwLTA5IDAwOjMwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIHByaW50IGEgbmV3IGxpbmUgaW4gcHJpbnRfZXJyb3IoKSBpZiBkZWJ1Z2dpbmcgaXMgdHVybmVkIG9uLgogICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KICAgCjE5OTYtMTAtMDkgMDA6MDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOgogICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogQWRkZWQgc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24uCiAgIAoxOTk2LTEwLTA3IDA0OjIzICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCiAgIAoxOTk2LTEwLTA3IDAzOjA2ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6ICBBZGRlZCB1Y2Qtc25tcC50eHQKICAgCjE5OTYtMTAtMDcgMDM6MDAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCiAgIAoxOTk2LTEwLTA3IDAyOjIyICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGFkZGVkIC0tcmVjaGVjayB0byBjb25maWcuc3RhdHVzIGNhbGwgdG8gcmVnZW5lcmF0ZSBzZWxmLgogICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCiAgIAoxOTk2LTEwLTA3IDAxOjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCiAgIAoxOTk2LTEwLTA3IDAwOjUyICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgogICAKMTk5Ni0xMC0wNyAwMDowMSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgogICAKMTk5Ni0xMC0wNiAyMzo0OSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBQcm9wZXIgYXV0b2NvbmYgZGlyZW50IGhlYWRlcnMuCiAgIAoxOTk2LTEwLTA2IDIzOjQxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAtIChzbm1wZC4xLmRlZik6CiAgICAgLSBBZGRlZCBhIEZJTEVTIHNlY3Rpb24uCiAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgogICAKMTk5Ni0xMC0wNCAwMTo0NiAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAtIEFkZGVkIG5vdGUgYWJvdXQgU05NUHNldCBjb21tdW5pdHkgc3RyaW5ncy4KICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCiAgIAoxOTk2LTEwLTA0IDAxOjQ0ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCiAgIAoxOTk2LTEwLTA0IDAxOjQzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IEFkZGVkIHNubXBnZXQvc2V0IHRvIHBhc3MgZXhhbXBsZS4KICAgCjE5OTYtMTAtMDMgMDg6MTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6ICBUdXJuIG9uIG9sZCBDTVUgZGVidWdnaW5nIHN0YXRtZW50cyB3aXRoIC0tZW5hYmxlLWRlYnVnZ2luZy4KICAgCjE5OTYtMTAtMDMgMDg6MDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCiAgIAoxOTk2LTEwLTAxIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCByZWFkX2NvbmZpZy5jKToKICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgogICAKMTk5Ni0xMC0wMSAwNzozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogRnJvbSBKb2UgTWFyem90OgogICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICBkaWZmZXJlbnRpYXRlZCBmcm9tIE9jdGV0U3RyaW5ncyB3aGVuIHRoZXkgYXJlIGxvb2tlZCB1cCBpbiB0aGUKICAgICAgIE1pYiBUcmVlLgogICAKMTk5Ni0wOS0yNSAwNToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KICAgCjE5OTYtMDktMjQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgogICAKMTk5Ni0wOS0yNCAwODowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ni0wOS0yNCAwNzo1OSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCiAgIAoxOTk2LTA5LTI0IDA3OjU0ICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ni0wOC0zMCAwMjo1MSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogTW9yZSBtaW5vciBidWdzIGxpc3RlZAogICAKMTk5Ni0wOC0zMCAwMjo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgogICAKMTk5Ni0wOC0zMCAwMToxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQogICAKMTk5Ni0wOC0zMCAwMDozNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogIEFkZGVkIGtlcm5lbF9zdW5vczUubyB0byBzbm1wdHJhcCBmb3IgZ2V0S3N0YXQuCiAgIAoxOTk2LTA4LTMwIDAwOjIzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KICAgCjE5OTYtMDgtMzAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlZCAtWHMgZmxhZyBmb3IgZ2NjIG9uIHNvbGFyaXMuCiAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgCjE5OTYtMDgtMjkgMDc6MjkgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgVE9ETzoKCiAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCiAgIAoxOTk2LTA4LTI5IDA3OjIwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KICAgCjE5OTYtMDgtMjkgMDc6MDMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCiAgIAoxOTk2LTA4LTI5IDA2OjU4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IFBhdGNoIGZyb20gVHJldm9yIEJvdXJnZXQgPHRib3VyZ2V0QHF1YWxjb21tLmNvbT4KICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCiAgIAoxOTk2LTA4LTI5IDA2OjA4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAogICAKMTk5Ni0wOC0yOSAwNjowNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKICAgCjE5OTYtMDgtMjkgMDY6MDYgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCiAgIAoxOTk2LTA4LTI5IDA2OjAzICB3aGFyZGFrZQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcHRyYXAuMToKCiAgIC0gKG1hbi9zbm1wdHJhcC4xKTogIGFkZGVkIGJ5IE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgIAoxOTk2LTA4LTI5IDA1OjU5ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAtIEdyZWF0bHkgaW1wcm92ZWQgc25tcHRyYXAuCiAgIAoxOTk2LTA4LTI3IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhdXRvY29uZiopOgogICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgLSBOZXcga2VybmVsIGxvY2F0aW9uOiAgL2tlcm5lbCAoaWNrKS4KICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgogICAKMTk5Ni0wOC0yNyAwMTowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwogICAKMTk5Ni0wOC0yNyAwMDozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgIAoxOTk2LTA4LTI3IDAwOjAxICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKToKICAgICAtIEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgogICAKMTk5Ni0wOC0yNiAyMzo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KICAgCjE5OTYtMDgtMjYgMDc6NTcgIHdoYXJkYWtlCgogICAqIGFnZW50LzogZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmM6CgogICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwogICAKMTk5Ni0wOC0yNiAwNzo1NSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgogICAKMTk5Ni0wOC0yNiAwMTozNiAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgogICAKMTk5Ni0wOC0yMSAwNjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc3Rlc3Q6CgogICBBZGRlZCBwYXNzdGVzdCEKICAgCjE5OTYtMDUtMjQgMTU6NDYgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xICkKICAgCjE5OTYtMDUtMjQgMTU6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjb3B5cmlnaHQgdXBkYXRlCiAgIAoxOTk2LTA1LTI0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAzLjEgcmVsZWFzZSBpbmZvIHVwZGF0ZS4KICAgCjE5OTYtMDUtMjQgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgogICAKMTk5Ni0wNS0yNCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKICAgCjE5OTYtMDUtMjQgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KICAgCjE5OTYtMDUtMjQgMTM6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCByb3V0ZS5jOgoKICAgLSAoaWYuYywgcm91dGUuYyk6IGNhc3QgcmV0dXJucyBmcm9tIGluZGV4IHRvIGNoYXIgKi4KICAgCjE5OTYtMDUtMjQgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiAgZGVmaW5lIG1lbW1vdmUgaWYgbm90IGRlZmluZWQgYW5kIG1lbWNweSBpcy4KICAgCjE5OTYtMDUtMjQgMTM6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6ICBub3RlIG9uIGNyZWF0aW5nIGNvbW1lbnRzIGFkZGVkLgogICAKMTk5Ni0wNS0yNCAxMzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCiAgIAoxOTk2LTA1LTI0IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJJSS50eHQ6CgogICAtIChtaWJJSS50eHQpOiByZW1vdmVkIDtzIGF0IHRoZSBlbmQgb2YgdGhlIEJFR0lOIGxpbmVzLgogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCiAgIAoxOTk2LTA1LTI0IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgogICAKMTk5Ni0wNS0yNCAxMjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KICAgCjE5OTYtMDUtMjQgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KICAgCjE5OTYtMDUtMjMgMTc6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgogICAKMTk5Ni0wNS0yMyAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogZml4ZWQgZGlzayBjaGVja3Mgb24gU29sYXJpcyBhbmQgYWxwaGEncwogICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCiAgIAoxOTk2LTA1LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCiAgIAoxOTk2LTA1LTIzIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCiAgIAoxOTk2LTA1LTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KICAgCjE5OTYtMDUtMjMgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb24ndCBkZWZpbmUgcmFuZG9tIGlmIGl0IGFscmVhZHkgZXhpc3RzLgogICAKMTk5Ni0wNS0yMiAxMjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcmV3b3JrZWQgdGhlIHdheSBzbm1wbmV0c3RhdCAtaSB3b3Jrcy4KICAgCjE5OTYtMDUtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMsCiAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgLSBmaW5hbGx5IG5haWxlZCB0aGF0IG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gdGhhdCBnYXZlIHByb2JsZW1zCiAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgIGF0dGFjaGVkIHBhdGNoLgogICAKMTk5Ni0wNS0yMiAwODo1MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgogICAKMTk5Ni0wNS0xNSAxMjozNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKSBGaXhlZCBhIGhvcnJpYmxlIHR5cG8uICBQIC0+IFBSRUZJWAogICAKMTk5Ni0wNS0xNSAxMjoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKSByZW1vdmVkICYgaW4gZnJvbnQgb2YgYXJyYXkgcGFzc2VkIGFzIGFyZy4KICAgCjE5OTYtMDUtMTUgMTI6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgYSBub3RlIChwb2ludGVyIHRvIGRvY3MpIG9uIHRoZSBhZ2VudCdzIGV4dGVuc2libGl0eS4KICAgCjE5OTYtMDUtMTUgMTI6MDAgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjE5OTYtMDUtMTUgMDk6NTEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLkExICkKICAgCjE5OTYtMDUtMTUgMDk6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KICAgCjE5OTYtMDUtMTUgMDk6MjkgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCiAgIAoxOTk2LTA1LTE1IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KICAgCjE5OTYtMDUtMTUgMDk6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgogICAKMTk5Ni0wNS0xNSAwOTowNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLAogICBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCiAgIAoxOTk2LTA1LTE1IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBQYXRjaCBmcm9tICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCiAgIAoxOTk2LTA1LTE1IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChhZ2VudC9leHRlbnNpYmxlL3Bhc3MuYykgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQogICAKMTk5Ni0wNS0xMyAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCiAgIAoxOTk2LTA1LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCiAgIAoxOTk2LTA1LTEwIDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBzdGF0dXMuMSwgc25tcGxpYi9wYXJzZS5jCjoKCiAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTYtMDUtMTAgMTc6MDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wc3RhdHVzLjE6CgogICBmaWxlIHNubXBzdGF0dXMuMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBmaWxlIHNubXBzdGF0dXMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogQSBwYXRjaCB0byBmaXggYSB2aXJ0dWFsIGludGVyZmFjZSBwcm9ibGVtLgogICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wOSAxNjoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgIHNubXBsaWIve21pYixzbm1wX2NsaWVudH0uYyk6CiAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgogICAKMTk5Ni0wNS0wOSAxMzozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQve01ha2VmaWxlLHNubXBfdmFycy5jfSxhZ2VudC9leHRlbnNpYmxlL21hbnkpOgogICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KICAgCjE5OTYtMDUtMDkgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgogICAKMTk5Ni0wNS0wOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KICAgCjE5OTYtMDUtMDMgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgogICAKMTk5Ni0wNS0wMyAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgU29sYXJpcyBmaXggZm9yIGludGVyZmFjZXMuCiAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgIAoxOTk2LTA1LTAzIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykKICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KICAgCjE5OTYtMDUtMDMgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDEgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMiApCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykgdmVyc2lvbiB1cGRhdGUgMy4wLjcuMgogICAKMTk5Ni0wNS0wMSAxNDo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yb3V0ZV93cml0ZS5jOgoKICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTM6NTUgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KICAgCjE5OTYtMDUtMDEgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgogICAKMTk5Ni0wNS0wMSAxMjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAiU29tZSBhcmUgbXkgb3duLCBvdGhlcnMgYXJlIGZyb20gWXVyaSBSYWJvdmVyIHdobyBvcmlnaW5hbGx5CiAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICBidXQgaXQgYWxzbyBmaXhlcyBhIHNlcmlvdXMgcHJvYmxlbSBpbiB0aGUgYWdlbnQsIHdoZXJlIHdhbGtpbmcKICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICBpbnRlcmZhY2VzLiIKICAgCjE5OTYtMDQtMjUgMTI6MTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMSApCiAgIAoxOTk2LTA0LTI1IDEyOjE4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KICAgCjE5OTYtMDQtMjQgMTQ6NTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcgKQogICAKMTk5Ni0wNC0yNCAxNDo1MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHVwZGF0ZSBmb3IgMy4wLjcKICAgCjE5OTYtMDQtMjQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgogICAKMTk5Ni0wNC0yNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAogICAKMTk5Ni0wNC0yNCAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwogICAKMTk5Ni0wNC0yNCAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIENoZWNrZWQgZm9yIHN5cy9tYnVmIGZvciBkZXRlcm1pbmluZyBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMDk6MDcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA5OjAwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIHVwZGF0ZWQKICAgCjE5OTYtMDQtMjQgMDg6NTQgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKICAgCjE5OTYtMDQtMjQgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwKICAgb3YvVUNELWZpZWxkcywgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KICAgCjE5OTYtMDQtMjQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgcmVtb3ZlZCBhcnAgdGFibGVzIGZvciBuZXRic2QuCiAgIAoxOTk2LTA0LTI0IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KICAgCjE5OTYtMDQtMjQgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQogICAKMTk5Ni0wNC0yNCAwODozNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCiAgIAoxOTk2LTA0LTE2IDE4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwogICAKMTk5Ni0wNC0xNiAwOTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWdlbnQve3JvdXRlX3dyaXRlLmMsc25tcF92YXJfcm91dGUuY30pIE9TRjMuMiBzcGVjaWZpYyBjaGFuZ2VzLiAgYXJnLgogICAKMTk5Ni0wNC0xNiAwOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIEkgZm9yZ290IERNRU1fTE9DIG5lZWRzIHRvIGJlICN1bmRlZidlZCBpZiBub3QgZm91bmQKICAgCjE5OTYtMDQtMTUgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKSBGaXhlZCAyIGdldHRpbWVvZmRheSBjYWxscyAtLSBhZGRlZCBhIE5VTEwgdGltZXpvbmUgcHRyLgogICAKMTk5Ni0wNC0xNSAxNDoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgLSAoY29uZmlndXJlKSBidWcgZml4ZXM6ICB3YXNuJ3QgcXVvdGluZyBrZXJuZWwgYW5kIGRtZW0gbG9jYXRpb24uCiAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCiAgIAoxOTk2LTA0LTE1IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAtIChjb25maWd1cmUpIEZpeGVzIGZvciB0eXBlIGNoZWNraW5nIG9mIDQuNCBydGVudHJ5IHN0cnVjdHVyZXMgb24gYWxwaGFzLgogICAKMTk5Ni0wNC0xMiAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBhZ2VudC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBvdi9VQ0QtZmllbGRzLAogICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwKICAgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgIChhbHBoYSwgaHB1eDEwLjAxKywgbmV0YnNkKSBzaW5jZSBocHV4MTAgZG9lc24ndCBoYXZlIDQuMyBjb21wYXQgc3RydWN0cy4KICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAtIENsZWFuZWQgdXAga2VybmVsIGNoZWNraW5nCiAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KICAgCjE5OTYtMDQtMTIgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgCjE5OTYtMDQtMDUgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgogICAKMTk5Ni0wNC0wNSAxNjoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQogICAKMTk5Ni0wNC0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCiAgIAoxOTk2LTAzLTExIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBzbWFsbCBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk2LTAzLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBmaXhlZCBhIHRpbWVvdXQgYnVnIGNhdXNlZCBieSBhcmNoaXRlY3R1cmVzCiAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgogICAgICAgdGhlIHBhdGNoIQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNiApCiAgIAoxOTk2LTAzLTExIDE1OjQxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2cvTkVXUyk6IHVwZGF0ZWQgZm9yIDMuMC42CiAgIAoxOTk2LTAzLTExIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNsZWFuZWQgdXAsIHJlLWFycmFuZ2VkLCBzaG9ydGVuZWQgKHNlY3Rpb25zIG1vdmVkIHRvIG1hbi8qIGRvY3MpLgogICAKMTk5Ni0wMy0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgogICAKMTk5Ni0wMy0xMSAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKSBmaXhlZCBhIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gZml4ZWQuCiAgIAoxOTk2LTAzLTA4IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LmMpIENoZWNrIGlmIHZhcmlhYmxlIGNvbnRlbnQgaXMgTlVMTCBiZWZvcmUgdXNpbmcuCiAgIAoxOTk2LTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcGxpYi9taWIuYykgcHJpbnRlZCB2YWx1ZXMgZm9yIHRpbWV0aWNrcyBhcmUgbm8gbG9uZ2VyIG5lZ2F0aXZlLgogICAKMTk5Ni0wMy0wNiAxNjozOCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZikKICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCiAgIAoxOTk2LTAzLTA2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KICAgCjE5OTYtMDItMjEgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkKICAgICAtIENoYW5nZWQgdHJhcF90eXBlICYgc3BlY2lmaWNfdHlwZSB0byBsb25nIGZyb20gaW50IGZvciA2NCBiaXQgYXJjaGl0ZWN0dXJlcy4KICAgICAgIC0gc3VnZ2VzdGVkIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgIAoxOTk2LTAyLTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHNubXB0cmFwLmM6CgogICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgLSBBZGRlZCBhcHBzL3NubXB0cmFwCiAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KICAgCjE5OTYtMDItMjEgMTY6MTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi8uY3ZzaWdub3JlLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbiwgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZikKICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KICAgCjE5OTYtMDItMTYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCiAgIAoxOTk2LTAyLTEyIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICBzbm1wc2V0IHRpbWUgdG8gcmV0dXJuIGEgdmFsdWUgdG8gdGhlIHNubXBzZXQgcmVxdWVzdC4KICAgCjE5OTYtMDItMDkgMTc6MDQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBvdi8uY3ZzaWdub3JlLCBvdi9NYWtlZmlsZS5pbiwgb3YvUkVBRE1FLAogICBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sCiAgIG92L29pZF90b190eXBlLmluLCBvdi9iaXRtYXBzL1VDRC4yMC5tLAogICBvdi9iaXRtYXBzL1VDRC4yMC5wLCBvdi9iaXRtYXBzL1VDRC4yNi5tLAogICBvdi9iaXRtYXBzL1VDRC4yNi5wLCBvdi9iaXRtYXBzL1VDRC4zMi5tLAogICBvdi9iaXRtYXBzL1VDRC4zMi5wLCBvdi9iaXRtYXBzL1VDRC4zOC5tLAogICBvdi9iaXRtYXBzL1VDRC4zOC5wLCBvdi9iaXRtYXBzL1VDRC40NC5tLAogICBvdi9iaXRtYXBzL1VDRC40NC5wLCBvdi9iaXRtYXBzL1VDRC41MC5tLAogICBvdi9iaXRtYXBzL1VDRC41MC5wLCBvdi9iaXRtYXBzL1VDRC5maWVsZHM6CgogICAtIEJldHRlciBPcGVuVmlldyBzdXBwb3J0CiAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgLSBjdXJyZW50bHkgY29udGFpbnMgbmVjZXNzYXJ5IGZpbGVzIHRvIHN1cHBvcnQgYSBVQ0QgYml0bWFwIGZpbGUKICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCiAgIAoxOTk2LTAxLTI2IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gVGhlIFNvbGFyaXMgMi41IGtlcm5lbCBoYXMgbW92ZWQgdG8gL2tlcm5lbC9nZW51bml4CiAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCiAgIAoxOTk2LTAxLTI0IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZSwgY29uZmlnLmgsIGVjZS1taWIuKiwgc2Vkc2NyaXB0LmluKQogICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgLSBhZGRlZCBhIG5ldyBPYmplY3RJRCBhZGRpdGlvbiB0byBlY2UtbWliLnR4dAogICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKICAgCjE5OTYtMDEtMjQgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAtIGZpeGVzIC1wIFBPUlQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgdGhlIHJlcXVlc3RlZCBwb3J0LgogICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCiAgIAoxOTk2LTAxLTI0IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gUmV0dXJuaW5nIEVYVEVOU0lCTEVET1RNSUIuQUdFTlRJRCBhcyB0aGUgbmV3IG9iamVjdGlkCiAgIAoxOTk2LTAxLTIyIDE3OjMwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykKICAgICAtIFByZXBlZCBmb3IgMy4wLjUgcmVsZWFzZQogICAKMTk5Ni0wMS0yMiAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAtIGFkZGVkIGFnZW50IGNvbnRyb2xzOiAgcmVzdGFydCwgdXBkYXRlY29uZmlnLCBjbGVhcmNhY2hlLgogICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgLSBBZGRlZCBrZXlib2FyZCBhY2NlbGVyYXRvcnMgdG8gdGhlIGFzc29jaWF0ZWQgbWVudSBpdGVtcy4KICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgogICAKMTk5Ni0wMS0yMiAxNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbikgQWRkZWQgYSBjaG1vZCB0byBtYWtlIHRoZSBzbm1wY2hlY2sgc2NyaXB0IGV4ZWN1dGFibGUKICAgCjE5OTYtMDEtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgLSBBZGRlZCBuZXcgZGVmaW5lcyB0byB0dXJuIG9uL29mZiBzZWN0aW9ucyBvZiB0aGUgZXh0ZW5zaWJsZSBtaWIuCiAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KICAgCjE5OTYtMDEtMTkgMTc6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgcmVtb3ZlLWZpbGVzOgoKICAgLSAoY29uZmlndXJlKikKICAgICAtIHVwZGF0ZWQgdG8gYXV0b2NvbmYgdjIuNwogICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwogICAKMTk5NS0xMi0yOCAxNToyNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluKSBNaW5vciBjbGVhbnVwcy4KICAgCjE5OTUtMTItMjggMTI6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKENoYW5nZUxvZyxFWEFNUExFLmNvbmYuZGVmKSBzcGVsbCBjaGVjayAoc2lnaCkKICAgCjE5OTUtMTItMjggMTI6MDkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwKICAgTWFrZWZpbGUuaW4sIE5FV1MsIFJFQURNRSwgc2Vkc2NyaXB0LmluOgoKICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCiAgIAoxOTk1LTEyLTI4IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlZCB0aGVzZSBmb3IgMy4wLjQgcmVsZWFzZS4KICAgCjE5OTUtMTItMjggMTA6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiAgTmV2ZXIgZmluaXNoZWQgdGhlIGluc3RhbGwgaXRlbS4KICAgCjE5OTUtMTItMjggMTA6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBUT0RPLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBsb2NhbC8uY3ZzaWdub3JlLCBsb2NhbC9NYWtlZmlsZS5pbgosIGxvY2FsL3NubXBjaGVjay5kZWYsIFRPRE86CgogICAtIEFkZGVkIGEgc2Vkc2NyaXB0IHdoaWNoIGlzIGJ1aWx0IGZyb20gY29uZmlnLmggYW5kIGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oCiAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KICAgCjE5OTUtMTItMjggMTA6MDEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAtIEFkZGVkIHNlZHNjcmlwdCB0byB0aGUgLmN2c2lnbm9yZSBmaWxlLgogICAKMTk5NS0xMi0yMCAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gRm91bmQgYW5kIGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHJvdXRpbmcgdGFibGUgbWliLgogICAKMTk5NS0xMi0yMCAwOTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgSGF5d2FyZCA8Z2FoQGRpcmFjLmJlbGxjb3JlLmNvbT4uCiAgIAoxOTk1LTEyLTA1IDE1OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoc25tcGNoZWNrKQogICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICBjb25zdHJ1Y3RzLgogICAKMTk5NS0xMi0wNSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwogICAKMTk5NS0xMi0wMSAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgLSBuZXcgcHJlZmVyZW5jZTogIFlvdSBjYW4gcGljayB3aGF0IHR5cGVzIG9mIHByb2JsZW1zIHRvIGNoZWNrIGZvcgogICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgIC0gaW5zdGVhZCByZWxpZXMgb24gJ05vIFJlc3BvbnNlJyB0eXBlIHJlcGxpZXMgZnJvbSBzbm1wd2Fsay9nZXQgdG8KICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgLSBjb252ZXJ0ZWQgZnJvbSBUay1iNCB0byBUay1iOAogICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtTCAgICAgIHNob3cgdGhlIGxvZyB3aW5kb3cgYXQgc3RhcnR1cAogICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKICAgCjE5OTUtMTEtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25jZSBlcnJvcnMuCiAgIC0gKHRyYXBub3RpZikgQmV0dGVyIHN0cmluZyBjaGVja2luZyAocXVvdGVzIGFsbCB2YXJpYWJsZXMgbm93KQogICAKMTk5NS0xMS0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChhbGwgYXV0b2NvbmYgYnVpbHQgZmlsZXMpIFVwZGF0ZWQgZXZlcnl0aGluZyB0byBhdXRvY29uZiAyLjUKICAgCjE5OTUtMTEtMjAgMTY6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgCjE5OTUtMTEtMjAgMTY6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgogICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgd29uJ3QgYmUgYnVnZ2VkIHR3aWNlIGJ5IHRoZSBpbml0aWFsIHF1ZXN0aW9uLgogICAKMTk5NS0xMS0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQogICAKMTk5NS0xMS0yMCAxNjowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCiAgIAoxOTk1LTEwLTE3IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE3IDE3OjEwICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUtZmlsZXMgbmVlZHMgdG8gJ2NkJyB0byB0aGUgY29ycmVjdCBkaXJlY3RvcnkgZmlyc3QKICAgCjE5OTUtMTAtMTcgMTY6NTcgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIGFkZGVkIHRoZSByZW1vdmUtZmlsZXMgZXhwb3J0IGNvbW1hbmQKICAgCjE5OTUtMTAtMTYgMTc6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgT25lIGxhc3QgZWNobyAtbiB2cyBcYyBmaXgKICAgCjE5OTUtMTAtMTYgMTY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKICAgCjE5OTUtMTAtMTYgMTY6NDEgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgZml4ZWQgXGMgdnMgLW4gZGVwZW5kZW5jeQogICAKMTk5NS0xMC0xNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIHdhcyBzdGlsbCBsb29raW5nIGluIC9ldGMgZm9yIHR3byAuY29uZiBmaWxlcy4KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIEFkZGVkIGluZm8gcmVxdWVzdCB0byBib3R0b20gb2YgVE9ETwogICAKMTk5NS0xMC0xNiAxNTo1NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE2IDE1OjA1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETykgbWFya2VkIGluc3RhbGwgYXMgZmluaXNoZWQgYW5kIHNvbGFyaXMgcG9ydCBhcyBjbG9zZQogICAKMTk5NS0xMC0xNiAxNTowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgTWFrZWZpbGUuaW4sIFJFQURNRSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgIC0gKFJFQURNRSkgbWlub3Igd29yZGluZyBjaGFuZ2VzCiAgIAoxOTk1LTEwLTE2IDEzOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgbWFuLy5jdnNpZ25vcmUsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgIC0gKGV4dGVuc2libGUuYykgY29uZmlnIGZpbGUgcmUtbG9jYXRpb246IG5vdyB1c2VzIHRoZSBTTk1QTElCUEFUSAogICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgogICAKMTk5NS0xMC0xMyAxNTo0NCAgaGFyZGFrZXIKCiAgICogVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaCwgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIC1wIHBvcnQgdG8gLS1oZWxwIG91dHB1dAogICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCiAgIAoxOTk1LTEwLTExIDE3OjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgY29uZmlnLmguICBTb21lIHRoaW5ncyBuZWVkIHRvIHVzZSAkKHByZWZpeCkgaW5zdGVhZCBob3dldmVyLgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgcmVtb3ZlIGluc3RhbGwgcmVxdWlyZW1lbnQuCiAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KICAgCjE5OTUtMTAtMDYgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwogICAKMTk5NS0xMC0wNiAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmM6CgogICAtIChwYXJzZS5jLCBzbm1wLmMpIGFkZGVkIGNvbmZpZy5oIHRvIHRoZSBsaXN0IG9mIGluY2x1ZGVzLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgLWggZm9yIGhlbHAKICAgICAtdiBmb3IgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAKMTk5NS0xMC0wNiAxMTozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBNb3ZlZCBJTlNUQUxMQVRJT04gaW5zdHJ1Y3Rpb25zIHRvIElOU1RBTEwKICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCiAgIAoxOTk1LTEwLTA2IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKSBub3cgY2FjaGVzIG1vcmUgdmFsdWVzIChwcyBhcmdzLCBldGMpIGFuZAogICAgIGNoZWNrcyBmb3IgdGhlIGxvY2F0aW9uIG9mIHBzIChubyBsb25nZXIgYXNzdW1pbmcgdG8gYmUgL2Jpbi9wcykKICAgCjE5OTUtMTAtMDYgMTE6MjQgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIG1vdmVkIHRvIGhlcmUKICAgCjE5OTUtMTAtMDUgMTU6MjIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIFRPRE8sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2tlcm5lbF9zdW5vczUuYywgYWdlbnQva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gTW9yZSBTb2xhcmlzIHBvcnRpbmcuCiAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgLSBzeXNVcFRpbWUgc3RpbGwgZmFpbHMuCiAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KICAgCjE5OTUtMTAtMDMgMDk6NDIgIGhhcmRha2VyCgogICAqIHN0YW1wLWgsIHN0YW1wLWguaW46CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBmaWxlcyBzdGFtcC1oIHN0YW1wLWguaW4gZmlsZXMgc2luY2UgbWFrZWZpbGUgbmVlZGVkIHRoZW0uCiAgIAoxOTk1LTEwLTAzIDA5OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIChNYWtlZmlsZS5pbikgUmVtb3ZlZCAuL2NvbmZpZ3VyZSBhbmQgLi9jb25maWcuaC5pbiBmcm9tICJhbGw6IiBkZXBlbmRlbmNpZXMKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBjb25maWcuaC5pbiBmcm9tIGN2cyBpZ25vcmUgbGlzdCAoYmFkIGJhZCkKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgKGNvbmZpZy5oLmluKSBBZGRlZCBmaWxlLgogICAKMTk5NS0xMC0wMyAwOToyNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIChUT0RPKSBVcGRhdGUgb2YgdGhlIFRPRE8gbGlzdDogIGluY2x1ZGVkIHNubXB2MSBjb25maWcgaWRlYXMKICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAoYWNjb25maWcuaCkgTWlub3IgYnVnOiAgcmVjdXJzaXZlIGNvbW1lbnRzIG5vdCBjb3JyZWN0IGZvciBjb21waWxlcnMgKEFJWCkKICAgCjE5OTUtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCiAgIAoxOTk1LTA5LTI5IDEzOjQxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaAosIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMsCiAgIGFnZW50Ly5jdnNpZ25vcmUsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hY2xfdmFycy5jCiwgYWdlbnQvYWxhcm0uYywgYWdlbnQvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L2V2ZW50LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmlld19wYXJzZS5jCiwgYWdlbnQvdmlld192YXJzLmMsIGFwcHMvLmN2c2lnbm9yZSwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi92aWV3LmM6CgogICAtIHBvcnRlZCB0byBHTlUncyBhdXRvY29uZmlnMi40CiAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgIC0gYWxtb3N0IGFsbCBvZiB0aGUgY29kZSBpcyBub3cgZHluYW1pY2FsbHkgY2hlY2tlZCBmb3IgcHJvYmxlbXMKICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgIC0gY3JlYXRlZCBhICdtYWtlIGRlcGVuZCcgY2FsbCAoZmluYWxseSkuCiAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgLSBwcm90ZWN0aW5nIGJldHRlciBhZ2FpbnN0IGluY2x1ZGUgaGVhZGVyIGZpbGVzIHR3aWNlLgogICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgogICAKMTk5NS0wOS0yMSAwOToyOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgMy4wLjIuMSByZWxlYXNlIChjb21waWxhdGlvbiBidWcgZml4KQogICAKMTk5NS0wOS0yMSAwOToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCiAgIAoxOTk1LTA5LTE4IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICBOZXdzL0NoYW5nZWxvZyB1cGRhdGVzCiAgIAoxOTk1LTA5LTE4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBCZWdpbm5pbmdzIG9mIGEgbWFudWFsIHBhZ2UgZm9yIHNubXBkCiAgIAoxOTk1LTA5LTE4IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBNaW5vciBtb2RzIHRvIFJFQURNRSBmaWxlLgogICAKMTk5NS0wOS0wMSAxNDo1MiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIEFkZGVkIGEgTkVXUyBmaWxlIHRvIHJlcG9ydC9yZWNvcmQgbWFqb3IgY2hhbmdlcwogICAKMTk5NS0wOS0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMKOgoKICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KICAgCjE5OTUtMDctMzEgMTY6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAtIERldGVjdHMgcHJlc2VuY2Ugb2YgYSBESVNQTEFZIHZhcmlhYmxlLgogICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgIC0gcmFpc2VzIGFuZCBkZWljb25pZmllcyB3aGVuIG5ldyBwcm9ibGVtcyBhcmUgZm91bmQKICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAtIG5ldyBwcmVmZW5jZTogIHBpbmcgaG9zdD8KICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgIGN0cmwtcSA9IHF1aXQ7IGN0cmwtaCA9IGhpZGU7IGN0cmwtcyA9IHNlZW4gYWxsCiAgIAoxOTk1LTA3LTI4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCiAgIAoxOTk1LTA3LTI2IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcm91dGVfd3JpdGUuYwosIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgSWYgZGVmaW5lZCwgYW5kIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSBrZXJuZWwgY29udGVudHMsCiAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICBjb250aW51ZS4KICAgCiAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgIC0gc2hvdWxkIGJlIChtb3N0bHkpIDY0IGJpdCBjbGVhbiBub3cuCiAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCiAgIAoxOTk1LTA3LTE0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2Vsb2cgdXBkYXRlCiAgIAoxOTk1LTA3LTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgbG9zdCBjdXJzZXMgc3VwcG9ydCwgYW5kIG5lZWQgdG8gcmUtYWRkIGl0IHN0aWxsLCBzbyBpdCBpcyBzdGlsbAogICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAod2hpY2ggYXJlbid0IGNvbmZpZ3VyZWQgYnkgJ21ha2UnKSwgc28gaXQgbmVlZHMgc29tZSB3b3JrLgogICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICB3aXRoIG5lYXQgR1VJLWJ1dHRvbnMgYW5kIHN0dWZmIChvaCB3b3cpLiAgTm8gZG9jdW1lbnRhdGlvbiBvbiBpdCB0aG91Z2guCiAgIAoxOTk1LTA3LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICB0aGUgYWdlbnQuCiAgIAogICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgbmV2ZXIgcmV0dXJucyBhIHJlc3BvbmNlIHRvIHRoZSBwcm9ncmFtIGdlbmVyYXRpbmcgdGhlIHJlcXVlc3QuCiAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KICAgCjE5OTUtMDctMTAgMTI6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAogICAKMTk5NS0wNy0xMCAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFR3byBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6CiAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCiAgIAoxOTk1LTA2LTIxIDA5OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wbGliOgogICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgogICAKMTk5NS0wNi0yMSAwOToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgZGVmYXVsdCBDQyB0byBjYyBhZ2Fpbi4KICAgCjE5OTUtMDYtMjEgMDk6MTggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgZWNlLW1pYi5kZWY6CiAgIEJ1ZyBGaXg6CiAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgIAogICBGZWF0dXJlOgogICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgogICAKMTk5NS0wNi0yMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCiAgIAoxOTk1LTA2LTE2IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKICAgCjE5OTUtMDYtMTYgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgVG9vayBvdXQgZ2NjL2Fuc2kgcmVxdWlyZW1lbnQgZm9yIHRoZSBhZ2VudC4KICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgCiAgIE5ldyBCdWcvSGF2ZW4ndCBzb2x2ZWQ6CiAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KICAgCjE5OTUtMDYtMTYgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYzoKCiAgIEhvdXNlIGNsZWFuaW5nCiAgICAgLSBDb21waWxlcyBjbGVhbmx5IG9uIGhwdXgvZ2NjCiAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KICAgCjE5OTUtMDYtMTYgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQogICAKMTk5NS0wNi0xNCAxNDowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgQVZBSUxBQklMSVRZIHNlY3Rpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBSRUFETUU6CgogICBVcGRhdGVkIHRoZSBDaGFuZ2VMb2cKICAgQWRkZWQgYSAicmVhbCIgZGlzY2xhaW1lciB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoxOTk1LTA2LTE0IDEzOjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICh1Y2Qtc25tcC1hbm5vdW5jZUBlY2UudWNkYXZpcy5lZHUpCiAgIAoxOTk1LTA2LTE0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gQ2xlYW5lZCB1cC9BZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gY29uZmlnLmgKICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAyLCB3aGljaCB3YXMgZG9uZSBwcmV2aW91c2x5LgogICAKMTk5NS0wNi0xNCAxMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBhZ2VudDoKICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICBzb3J0ZWQgaW4gYXQgdGhpcyB0aW1lLiAgVGhpcyBicmluZ3MgdGhlIGFnZW50IHVwIHRvIGNvcnJlY3QKICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICogVGhpcyBoYXMgYW4gYWRkZWQgYm9udXMgb2YgY2hlY2tpbmcgdGhlIG1pYiB0YWJsZQogICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgaW5jb3JyZWN0bHkuICBNYWpvciB3aW4uCiAgIAoxOTk1LTA2LTEyIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBsb2NhbC90cmFwbm90aWY6CiAgICAgLS0gdXNlcyBzbm1wdjIgbm93IChjb3JyZWN0bHkpCiAgIAoxOTk1LTA2LTA5IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgIChpZSB1bHRyaXgpIGhhbmRsZSB0aGlzLgogICAKMTk5NS0wNi0wOSAxMzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIEZpeGVkIEF1dGhlbnRpY2F0aW9uIGVycm9yIChhZ2FpbikgKGNvcnJlY3QgdGhpcyB0aW1lKSBiZXR3ZWVuCiAgICAgICAgIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1Yvc3VuIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTI6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciBiZXR3ZWVuIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1YgaW4gbWQ1LmMgcmV2ZXJzZXMgYnl0ZSBvcmRlcgogICAKMTk5NS0wNi0wOSAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KICAgCjE5OTUtMDYtMDkgMTA6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgIEhhdmVuJ3QgdGVzdGVkIGl0IHRocm91Z2hseS4KICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KICAgCjE5OTUtMDYtMDUgMTI6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICogYWdlbnQvZXh0ZW5zaWJsZS9NYWtlZmlsZToKICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgCiAgICogU3VuT1MgYWRkaXRpb25zOgogICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgIC0tIGRpc2sgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgCjE5OTUtMDYtMDIgMTY6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEZpbmFsIG1vZGlmaWNhdGlvbiBmb3IgaW5pdGFsIHJlbGVhc2UKICAgCjE5OTUtMDYtMDIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgI2lmZGVmIGhwdXggYXJvdW5kIGhwdXggc3BlY2lmaWMgbWlicwogICAKMTk5NS0wNi0wMiAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIEVSUk9SKCkgZGVmaW5lIG5vdyBmbHVzaGVzIHN0ZG91dAogICAKMTk5NS0wNi0wMiAxNTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgTm93IHVzZXMgdjIgcmVxdWVzdCBwcm90b2NvbC4KICAgCjE5OTUtMDYtMDIgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByaW50cyBNSUIgdG8gc3Rkb3V0IGZvciBleGlzdGVudCBtaWJzCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIFNOTVBWMi9TTk1QVjJBVVRIIHR5cGUgYXV0aG9yaXphdGlvbi4KICAgCjE5OTUtMDYtMDIgMTU6MjcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBSZW9yZ2FuaXplZCBjb25maWcuaCBpbiBtb3JlIG9yIGxlc3Mgb3JkZXIgb2YgaW1wb3J0YW5jZQogICBBZGRlZCBkZWZpbml0aW9ucyBmb3IgU05NUFYyT05MWSB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI2ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIHJlbW92ZWQgYm9ndXMgdHdvIGxpbmVzCiAgIAoxOTk1LTA1LTMxIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE5ldzoKICAgCiAgICAgQWRkZWQgdHdvIG5ldyBBQ0wgdHlwZXM6ICBQUklWQVVUSFJXIGFuZCBQUklWQVVUSFJPIHdoaWNoIHdpbGwgb25seQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yayBpZiB0aGUgcmVxdWVzdCBpcyBhdXRoZW50aWNhdGVkIChieSBhbnl0aGluZykuCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIC1mIG9wdGlvbiB0byBSRUFETUUKICAgCjE5OTUtMDUtMzEgMTQ6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgTmV3OgogICAKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCjE5OTUtMDUtMzEgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgTmV3OgogICAKICAgICBOZXcgZGVmaW5pdGlvbiBpbmNsdWRlZCBmb3IgYSBkZWZhdWx0IHBsYWNlIHRvIGxvZyBtZXNzYWdlczogTE9HRklMRQogICAgIE5ldyBNSUI6ICBzbm1wRXJyb3JzIHRvIGxvZyBwcm9ibGVtcyB3aXRoIHRoZSBhZ2VudAogICAgIEZvcmtzIGF3YXkgZnJvbSBjYWxsaW5nIHNoZWxsIGJ5IGRlZmF1bHQgbm93IHVubGVzcyAtZiBzcGVjaWZpZWQuCiAgIAogICBNaXNjOgogICAKICAgICBJZmRlZnMgYXJvdW5kIGFsbCBhZGRlZCBzZWN0aW9ucyBvZiBjb2RlIHRvIGRpc2FibGUgZHVybmluZyBjb21waWxhdGlvbgogICAKMTk5NS0wNS0zMSAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCiAgIEJ1Z3M6CiAgIAogICAgIGhwdXggY29tcGxpZXJzIGRvbid0IGRlZmluZSBTWVNWIGJ5IGRlZmF1bHQuLi4KICAgCjE5OTUtMDUtMTkgMTU6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBtZW51cyBhbmQgbW92ZWQgc29tZSBjb21tYW5kcyB0aGVyZSBhcyB3ZWxsIGFzIHByZWZyZW5jZXMuCiAgIE5vdyByZXNjYW5zIGFmdGVyIDUgbWludXRlcyBhbmQgY2hlY2tzIHRoZSBsb2cuCiAgIAoxOTk1LTA1LTE5IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBlZ3JlcGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggZm9yIGhvc3RzIG5vdy4KICAgCjE5OTUtMDUtMTkgMTU6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW9yZSBkZWZpbmVzIG1vdmVkIHRvIGNvbmZpZy5oCiAgIAoxOTk1LTA1LTE5IDE1OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGVjZS1taWIuZGVmOgoKICAgV29ya2luZyB0b3dhcmQgYW4gZXhwb3J0YWJsZSB2ZXJzaW9uLgogICAKMTk5NS0wNS0xNyAxMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvcmtpbmcgdmVyc2lvbi4KICAgICAtLSAgbm93IG9wZXJhdGVzIG9uIGEgc2VsZWN0aW9uCiAgICAgLS0gIHN0aWxsIGhhcyBhIGxvdCBvZiByb29tIGZvciBpbXByb3ZlbWVudC4KICAgCjE5OTUtMDUtMDggMTY6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGYWlybHkgZnVuY3Rpb25pbmcgdmVyc2lvbi4KICAgTmVlZCB0byBwb3J0IHRvIHBlcmw1LjAwMSAmIHRrNGIzCiAgIAoxOTk1LTA1LTA1IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE9wcHMuICBTZXQgdHAtPm5hbWVsZW4gdG8gYmUgLTEsIHdoZW4gaXQgaXMgYSB1bnNpZ25lZCBjaGFyLiAgVXNpbmcgMCBub3cuCiAgIAoxOTk1LTA1LTA1IDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKOgoKICAgUmUtYXJyYW5naW5nIGFuZCBSZS1uYW1pbmcgc3R1ZmYgZm9yIGV4dGVybmFsIGRpc3RyaWJ1dGlvbgogICAKMTk5NS0wNS0wMyAxMzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNYWpvciBidWc6CiAgICAgQ2hhbmdpbmcgdHJlZSBzaXplIGNhdXNlZCBwcm9ibGVtcy4KICAgICBleHRlbnNpYmxlIHRyZWUgbm93IGFkZHMgYSBoYWx0IGNvbmRpdGlvbiAobmFtZWxlbiA9IC0xKSB0byBjaGVjayBmb3IKICAgCjE5OTUtMDUtMDMgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgcHJvdG90eXBlIGRlY2xhaXJhdGlvbiBmb3IgZmluZF9leHRlbnNpYmxlKCkKICAgCjE5OTUtMDUtMDMgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGltZW91dCB0byBiZSAzMCBzZWNvbmRzLgogICAKMTk5NS0wNS0wMyAwOToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICBOZXcgc2NyaXB0OgogICAgIHdhbGtzIGFuIGV4dGVuc2libGUgKG9yIGFueSkgbWliIHRyZWUuICBIYXMgYnVpbHQgaW4ga25vd2xlZGdlIG9mCiAgICAgdGhlIG1pYnMgZm9yIGxheS1wZW9wbGVzIHVzZWFnZS4KICAgCjE5OTUtMDUtMDMgMDk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBGaXhlZCBidWc6ICBVc2luZyBhIHdyb25nIHZhcmlhYmxlCiAgIAoxOTk1LTA1LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGV4dGVuc2libGUgbWliIGVudHJ5LgogICAgIC0tIGZpbmRfZXh0ZW5zaWJsZSBub3cgcmV0dXJucyB0aGUgZGVmYXVsdCBtaWIgdHJlZSBvciBhbgogICAgICAgIGFwcHJvcHJpYXRlIG1pYiB0cmVlIHdpdGggdGhlIGNyZWF0ZWQgZXh0ZW5zaWJsZSBlbnRyeSBpbiBpdC4KICAgCjE5OTUtMDUtMDMgMDk6MTAgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbG9hZCBhdmVyYWdlIG1pYiBlbnRyeQogICAKMTk5NS0wNC0xNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFN0YXJ0ZWQgd3JpdHRpbmcgYSBUayBpbnRlcmZhY2UuLi4gIENvZGUgaXMgc3RpbGwgdmVyeSB2ZXJ5IHVnbHksIGJ1dCB3b3Jrcy4KICAgCjE5OTUtMDQtMTcgMTI6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyBsb2dzIGl0c2VsZiBjb3JyZWN0bHkuCiAgIAoxOTk1LTA0LTEzIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgZGVwZW5kYW5jeSBmb3Igd2VzL21pYmRlZnMuaCB0byBzbm1wX3ZhcnMuYwogICAKMTk5NS0wNC0wNyAxMjo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0tIFBvcnRlZCB0byBkZWMgNTAwMC8yMDAgVWx0cml4IDQuMiBhcmNoaXRlY3R1cmVzCiAgICAgICAgIFRPRE86ICBtZW1vcnkvc3dhcCBpbiB3ZXMuYwogICAKMTk5NS0wMy0zMSAxNTozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJ1Z3M6CiAgICAgV2FzIGFjdGluZyBzbG93IHNpbmNlIGl0IHdhcyBjaGVja2luZyBlYWNoIG1pYiBsb2NhdGlvbiB0d2ljZS4KICAgICBSZW1vdmVkIHBlcmwgLXcgd2FybmluZ3MKICAgCjE5OTUtMDMtMTUgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBzbm1wY2hlY2sgaXMgbm93IHdyaXR0ZW4gdXNpbmcgcGVybDUncyBvYmplY3Qgb3JpZW50ZWQgcm91dGluZXMuCiAgIAoxOTk1LTAzLTE1IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDTVUgQnVnIGZpeGVzOgogICAgIC0tIGJldHRlciBqb2IgdGhhbiBteSBwcmV2aW91cyBoYWNrIGZpeGluZyBnZXRfdG9rZW4uCiAgICAgICAgKyBnZXRfdG9rZW4gbm93IHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQgZGljdGF0aW5nIHRoZSBtYXggc3RyaW5nCiAgICAgICAgICBsZW5ndGggdGhlIHRva2VuIGNhbiBob2xkLgogICAKMTk5NS0wMy0xNSAwOToyNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlZCBSRUFETUUuaHB1eCBmaWxlIGZyb20gSFAtcG9ydC0xLTEtMS4uLgogICAKMTk5NS0wMy0xNSAwOToyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLT4gcGVybDUKICAgTm8gbG9uZ2VyIGRlcGVuZHMgb24gT1ZzIHNubXBzZXQsIGNhbiBub3cgdXNlIENNVXMgc25tcHNldCAoL3Vzci9sb2NhbC9ldGMpCiAgIAoxOTk1LTAzLTEwIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQWRkZWQgL2V0YyBhcyBhbm90aGVyIHBhdGggdG8gc2VhcmNoIHdoZW4gbG9va2luZyBmb3IgbWliLnR4dAogICAKMTk5NS0wMy0xMCAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTWFqb3IgaGFja2luZyB0byBwYXJzZSgpIHRvIHdvcmsgYXQgYWxsLgogICAgIC0tIE5vdyBJIGRvbid0IHVuc3RhbmQgd2h5IGl0IGV2ZXIgc3VjY2Vzc2Z1bGx5IHBhcnNlZCB0aGUgbWliLnR4dCBmaWxlLgogICAgIC0tIGdldF90b2tlbiB3YXMgY29uc3RhbnRseSBjYWxsZWQgdG8gcmVhZCBERVNDUklQVElPTiBzdHJpbmdzIGludG8KICAgICAgICBhIGNoYXIgYXJyYXkgb2YgZWl0aGVyIDY0IChNQVhUT0tFTikgb3IgNDA5NiAoTUFYUVVPVEVTVFIpIGluCiAgICAgICAgbGVuZ3RoLiAgTUFOWSBvZiB0aGUgREVTQ1JJUFRJT04gc3RyaW5ncyBhcmUgbG9uZ2VyIHRoYW4gdGhpcy4KICAgICAtLSBIYWNrZWQgcGFyc2VRdW90ZWRTdHJpbmcgdG8gbWFrZSBzdXJlIHJldHVybmVkIGFyZSBzdHJpbmdzIDwgTUFYUVVPVEVTVFIKICAgCjE5OTUtMDMtMTAgMTM6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAjaW5jbHVkZSA8c29ja2V0aW8uaD4gaXMgbm90IG5lZWRlZCBvbiBIUFVYCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBBZGRlZCBzbm1wZ2V0bmV4dCBhbmQgc25tcHNldCB0byAuY3ZzaWdub3JlCiAgIAoxOTk1LTAzLTA5IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ01VIDIuMS4yIC0+IDIuMS4yLjEgTWVyZ2UuCiAgIAoxOTk1LTAzLTA4IDE2OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBtYW4vc25tcGJ1bGt3YWxrLjEsIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xCiwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuODoKCiAgIEluaXRpYWwgcmV2aXNpb24KICAgCjE5OTUtMDMtMDggMTY6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgbWFuL1JFQURNRSwgbWFuL3NubXB0ZXN0LjEsCiAgIG1hbi9zbm1wd2Fsay4xLCBtYW4vc25tcGJ1bGt3YWxrLjEsCiAgIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xLAogICBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMSwKICAgbWFuL3NubXB0cmFuc2xhdGUuMSwgbWFuL3NubXB0cmFwZC44LAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5jLAogICBzbm1wbGliL3ZpZXcuaDoKCiAgIE5ldyByZWxlYXNlIG9mIENNVSdzIGNvZGU6CiAgICAgLS0gU2VlIFJFQURNRSBmb3Igc3BlY2lmaWMgZGV0YWlscwogICAgIC0tIHNubXBzZXQsc25tcGdldG5leHQgYWRkZWQKICAgICAtLSAtcSBmbGFnIGFkZGVkICJxdWljayBwcmludCIKICAgICAtLSBidWcgZml4ZXMKICAgICAtLSBNYW4gcGFnZXMgdXBkYXRlZAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE1pbm9yIGJhY2tzcGFjZSBjaGFuZ2VzLi4uCiAgIFJlbW92ZWQgLXcgc3dpdGNoIGZvciBwZXJsCiAgIAoxOTk1LTAzLTAyIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4IGZyb20gVGltOiBjb3JyZWN0bHkgZmluZHMgcGlkIG5vdwogICAKMTk5NS0wMi0wOSAxMjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLXcgcHJvZHVjZXMgbm8gd2FybmluZ3Mgbm93IGlmIG5vIGNtZCBsaW5lIGFyZ3MgYXJlIGdpdmVuLgogICBBZGRlZCB0d28gbW9yZSBzdGF0dXMgaW5kaWNhdG9ycyAoc2xlZXBpbmcsIGNoZWNraW5nKSBmb3IgZml4IHJvdXRpbmUuCiAgIE5vdyBzbGVlcHMgZm9yIDIgc2Vjb25kcyBpbnN0ZWFkIG9mIDEgKG5vdCBxdWljayBlbm91Z2ggdG8gY2F0Y2ggWCByZXN0YXJ0cykKICAgCjE5OTUtMDItMDkgMTI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBDaGFuZ2VkIHBzIC1lbCB0byBwcyAtZTogIHBzIC1lbCByZXBvcnRlZCBYIGFzIGJlaW5nIGFsaXZlIGluc3RlYWQgb2YgPGRlZnVuY3Q+CiAgIAoxOTk1LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGEgbWliIHRvIHByb3ZpZGUgY2FwYWJpbGl0eSBmb3IgaWdub3JpbmcgdGhlIGV4ZWMgY2FjaGUuCiAgICAgLS0gIE5lZWRlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgYSAnZml4JyB0byBjaGVjayB0byBzZWUgaWYgdGhlICdmaXgnIHdvcmtlZC4KICAgCjE5OTUtMDItMDggMTU6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBQb2tlcyB0aGUgcmVzZXQtY2FjaGUgbWliIHRvIGVuc3VyZSBhIG5ldyAncHMnIG91dHB1dCBmb3IgZml4ZWQgcHJvYmxlbXMuCiAgIAoxOTk1LTAyLTA4IDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgTmV3IG9wdGlvbnM6CiAgICAgLXk6ICBhbHdheXMgdHJ5IHRvIGZpeCB0aGUgcHJvYmxlbXMKICAgICAtbjogIG5ldmVyIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgIEN1cnJlbnRseSBkZWZhdWx0cyB0byBuZXZlciAoc2hvdWxkIHByb21wdCkgdGlsbCBJIGNhbiBnZXQgcGVybCdzCiAgICAgZ2V0YyhTVERJTikgdG8gd29yay4uLgogICBVc2VzIHNubXBzZXQgdG8gYWNjb21wbGlzaCB0aGlzLCB3aGljaCBpcyBPVnMgYW5kIG9ubHkgbGljZW5jZWQgZm9yIG9uZSBob3N0LgogICAKMTk5NS0wMi0wOCAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcGQuYzoKCiAgIEFkZGVkICdjbG9zZSBvbiBleGVjJyBmbGFncyB0byBvcGVuIGZpbGVzICgvZGV2LyptZW0qKSBhbmQgc29ja2V0cy4KICAgICAtLSAgUHJldmVudHMgc3Bhd25lZCBwcm9jZXNzZXMgZnJvbSBrZWVwaW5nIHNubXBkIGZyb20gcmVzdGFydGluZy4KICAgICAgICAgKEVycm9ycyB3ZXJlOiAgQ2FuJ3QgYmluZCBzb2NrZXQgKGluIHVzZSkgYW5kIENhbid0IG9wZW4gL2Rldi9kbWVtKQogICBTZXQgT19SRE9OTFkgZmxhZyBvbiAvZGV2LyptZW0qIGZpbGVzLCByZXF1aXJlZCBieSB0aGUgJ21hbiBwYWdlJyAoZWxzZSB1bmRlZikKICAgCjE5OTUtMDItMDMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQWRkZWQgd2VzL2V4ZWMubwogICAKMTk5NS0wMi0wMyAxMzo0OSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBtaWIgZGVmcyBmb3IgdGhlIHJlYWQvd3JpdGUgZml4IGZvciBwcm9jcyBhbmQgZXhlYyBmdW5jdGlvbnMKICAgCjE5OTUtMDItMDMgMTM6MzggIGhhcmRha2VyCgogICAqIGxvY2FsLzogZWNlLXNubXBkLmNvbmYsIGZpeHByb2MsIGZpeHByb2MuY29uZjoKCiAgIEFkZGVkIGZpeHByb2MgYW5kIGl0cyBkYXRhYmFzZSAoaW5zdGFsbGVkIGluIC9sb2NhbC9zY3JpcHRzIGFuZCAvbG9jYWwvZXRjKQogICBDb3BpZWQgdGhlIGN1cnJlbnQgL2V0Yy9lY2Utc25tcGQuY29uZiB0byB0aGlzIGRpcmVjdG9yeSwgZm9yCiAgIGFyY2hpdmluZy4KICAgCjE5OTUtMDItMDEgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfYWdlbnQuYzoKCiAgIEFkZGVkIHdyaXRlLW1pYiBhYmlsaXR5IHRvIGZpeCBhIGdpdmVuIHByb2Nlc3MKICAgICAtLSB3aWxsIGV2ZW50dWFsbHkgY2FsbCBUaW0ncyBzY3JpcHQgdG8gZml4IHRoZSBwcm9jZXNzCiAgICAgLS0gRGVmaW5lZCBpbiB3ZXMuaAogICAKMTk5NS0wMi0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXhlZCBNYWtlZmlsZSBidWc6ICBjYWxsZXMgJChNQUtFKSBub3cgaW5zdGVhZCBvZiBleHBsaWNpdCBtYWtlLgogICAKMTk5NS0wMS0zMCAxMzozMyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBWZXJzaW9uIGluZm9ybWF0aW9uIG5vdyBjb250YWlucyBhIENWUyB0YWcgaW5mbyBtaWIKICAgVkVSQ0RBVEUgbm93IHdvcmtzIHByb3Blcmx5LgogICAKMTk5NS0wMS0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCB2ZXJzaW9uIG1pYiB0byBkZWZpbml0aW9ucy4KICAgCjE5OTUtMDEtMzAgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgKFZFUklERU5ULFZFUkRBVEUsVkVSQ0RBVEUpCiAgIEFkZGVkIG1pYmluY2wuaCBhbmQgbWliZGVmcy5oIHRvIHN0YXJ0IHNwbGl0dGluZyB1cCBtaWJzIGluIHdlcy5jIGludG8KICAgICBzZXBlcmF0ZSBmaWxlcy4gIEluY2x1ZGUgdGhlc2UgdHdvIGZpbGVzIHRvIGluY2x1ZGUgbmVjZXNzYXJ5IGRlZnMKICAgRVJST1JNU0cgZGVmcyBub3cgQUxMIHJldHVybiBjdXJyZW50IG51bWVyaWNhbCByZXN1bHQgd2l0aCB0aGUgbXNnLgogICAKMTk5NS0wMS0yNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBQdXQgaW4gZGVmaW5lcyBmb3IgdGhlIHN1YiBtaWIgbnVtcyB7c25tcF92YXJzLmMsIHdlcy5ofQogICAKMTk5NS0wMS0yNyAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIHBhdGhzICgvdXNyL2xvY2FsL2V0YykgdG8gc25tcHtnZXQsd2Fsa30KICAgCjE5OTUtMDEtMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFkZSBubGlzdCBlbnRyeSBjaGFuZ2VzLiAgbm8gbG9uZ2VyIGRpZXMgZnJvbSBhIEFycFRhYmxlIHF1ZXJ5LgogICAKMTk5NS0wMS0yNyAxMjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNb3ZlZCBrZXJuZWwvbmxpc3QgcHJpbnRvdXQgb2Ygbm90IGZvdW5kIG5saXN0IGVudHJpZXMgb3V0IG9mICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI3IDExOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNwcCBNaXN0YWtlIGZpeDogI2lmZGVmIEhQVVggLT4gI2lmZGVmIGhwdXgKICAgCjE5OTUtMDEtMjUgMTc6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUG9ydGVkIChiYWNrKSB0byBTdW40OgogICAgIC0tIHN3YXAgYW5kIGRpc2sgbWlicyBub3Qgc3VwcG9ydGVkIHlldAogICAgIC0tIGZvdW5kIG51bWVyb3VzIGJ1Z3MgSSBoYWRuJ3Qgbm90aWNlZCB1bmRlciBIUFVYLCBtb3N0bHkgdHlwZQogICAgICAgIGNhc3RpbmcuCiAgIAoxOTk1LTAxLTI1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgU3dhcC9NZW1vcnkgbWliIGNoZWNrICguNCksIG5vdyB0aGF0IGl0IGNvbmZvcm1zIHRvIC57MSwyLDEwMCwxMDF9IHNwZWNzLgogICBDaGFuZ2VkIGZvcm1hdGluZyB0byB1c2UgJS1uLm5zIHNwZWNpZmljYXRpb25zIGluc3RlYWQgb2YgdGFiIHNlcGVyYXRpb25zLgogICAKMTk5NS0wMS0yMyAxNjowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQnVnIGZpeDogIFBvbGxlZCB3cm9uZyBtaWIgKDEwMCBpbnN0ZWFkIG9mIDEwMSkgZm9yIGVycm1zZyBzdHJpbmcuCiAgIAoxOTk1LTAxLTIzIDEyOjU3ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIFR5cG8gZml4ZXMgaW4gdGhlIG1pYiBkZWYgZmlsZSBmb3IgT1YuCiAgIAoxOTk1LTAxLTIzIDEyOjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV29uJ3QgY2hlY2sgZG93biBob3N0czotKQogICAKMTk5NS0wMS0yMyAxMDo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBbGwgKHdhdGNoZWQpIG1pYnMgbm93IHVzZToKICAgICAxOiAgTUlCSU5ERVgsIGp1c3QgYW4gaW5kZXggdG8gdGhlIG51bWJlciBvZiB2YXJzCiAgICAgMjogIEVSUk9STkFNRSwgYSBnZW5lcmljIG9uZSB3b3JkIG5hbWUgZm9yIHRoZSBjYXVzZSBvZiBFUlJPUntGTEFHLE1TR30uCiAgIAoxOTk1LTAxLTIzIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBBZGRlZCAvMS9PVi9iaW4gdG8gdGhlIHBhdGggdG8gZmluZCB0aGUgc25tcCB1dGlscyB3aXRob3V0IHBhdGggZXh0ZW5zaW9ucy4KICAgTW9yZSB2YXJpYWJsZSB1c2FnZTogcmVtb3ZlZCB1c2Ugb2YgY29tbWFuZCBsaW5lIGFyZ3MgZGlyZWN0bHkuCiAgIElmIHRoZSBlcnJvciBmbGFnIGhhcyBjaGFuZ2VkIGJhY2sgdG8gbm9ybWFsLCBvbmx5IGxvZyBpdCBpbiB0aGUKICAgICBlY2UtdG90YWwgbG9nIGZpbGUgaW5zdGVhZC4KICAgCjE5OTUtMDEtMjMgMTA6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXaWxsIHRha2UgaG9zdHMgZnJvbSB0aGUgbG9nIGZpbGUgaWYgbm9uZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgICAtLSAgb3IgaWYgdGhlIGZpcnN0IGFyZyBpcyBhICctYScgd2lsbCAoQSlkZCB0byB0aGUgY29tbWFuZCBsaW5lIGxpc3QuCiAgIERpc3BsYXlzIHdoYXQgaG9zdCBpdCBpcyBjaGVja2luZyBhcyBpdCBjaGVja3MgaXQuCiAgIENoYW5nZWQgdGhlIG91dHB1dCBmb3JtYXQgKEkndmUgeWV0IHRvIHNlZSBpZiBpdCBhY3R1YWxseSBsb29rcyBnb29kIHRob3VnaCkuCiAgIAoxOTk1LTAxLTE4IDE1OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQmVnaW5uaW5nIG9mIGEgc2NyaXB0IHRvIGNoZWNrIGVycm9ycyB3aXRoIGEgbWFjaGluZSBhbmQgcmVwb3J0IHRoZW0KICAgICB2aWEgc25tcAogICBUT0RPOiAgb3B0aW9uIHRvIGZpeCB0aGUgZXJyb3JzIGlmIHJvb3Qgb24gY2xvdmVyIChuZWVkIHRvIHJzaCB0byB0aGUgbWFjaGluZSkKICAgCjE5OTUtMDEtMDUgMTQ6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGhlIHRyYXBub3RpZiBmaWxlIHRvIHJlZmxlY3QgcmVjZW50IHNvdXJjZSBjaGFuZ2VzOgogICAgIC0tIHJlbW92ZWQgbWVtIGVycm9yIHNlY3Rpb24uLi4gIFRoZXkgYXJlIGhhbmRsZWQgdmlhIHRoZSBub3JtYWwgZXJyCiAgICAgICAgcm91dGUgc2luY2UgdGhleSBub3cgaGF2ZSBhbiBlcnJvciBtc2cgbGlrZSB0aGUgcmVzdAogICAgIC0tIEVycm9yIGZsYWcgaXMgbm93IGF0IDEwMCwgYW5kIGVycm9yIG1lc3NhZ2UgaXMgYXQgMTAxLgogICAKMTk5NS0wMS0wNSAxNDo0NSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBDaGFuZ2VkIHRoZSBtaWIgZmlsZSB0byByZWZsZWN0IHRoZSBjdXJyZW50IHNvdXJjZSBjb2RlLgogICBBbGwgbWlicyBub3cgaGF2ZSBFcnJvckZsYWcgYW5kIEVycm9yTXNnIGFzIDEwMCwxMDEKICAgCjE5OTUtMDEtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogdHJhcG5vdGlmLCB3ZXNyZXN0YXJ0OgoKICAgY29waWVkIHRoZSByZXN0YXJ0IGFuZCB0cmFwbm90aWYgc2NyaXB0cyB0byB0aGUgc3JjIHRyZWUgZm9yIGN2cyBhcmNoaXZpbmcuCiAgIAoxOTk1LTAxLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEluaXRpYWwgcmVsZWFzZS4KICAgTmVlZHMgdG8gYmUgdXBkYXRlZC4KICAgCjE5OTUtMDEtMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiAuY3ZzaWdub3JlLCBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlOgoKICAgSnVzdCBhIC5jdnNpZ25vcmUgZmlsZQogICAKMTk5NS0wMS0wNCAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiAuY3ZzaWdub3JlLCBzbm1wX3ZhcnMuYzoKCiAgIEZlYXR1cmU6CiAgICAgQWRkZWQgdGhlIGRpc2sgd2F0Y2hpbmcgZmFjaWxpdGllcyB0byByZXBvcnQgZGlzayBzcGFjZQogICAgICAgLS0gbmV3IGNvbmZpZyBvcHRpb24gJ2Rpc2sgRElTSyBNSU5BVkFJTCcKICAgICBBZGRlZCBzdXBwb3J0IGZvciBhIHNlY29uZCBjb25maWcgZmlsZSBhcyBDT05GSUdGSUxFVFdPCiAgICAgICAtLSBkZWZhdWx0cyB0byAvZXRjL2VjZS1zbm1wZC5sb2NhbC5jb25mCiAgICAgICAtLSBpbnRlbnQ6ICBvbmUgaXMgcmRpc3RlZCBhbmQgb25lIGlzIG1hY2hpbmUgc3BlY2lmaWMKICAgICAgIC0tIFRPRE86ICBOZWVkcyB0byBlcmFzZSBwcmV2aW91cyBkZWZpbml0aW9ucyByYXRoZXIgdGhhbiBhZGRpbmcKICAgICAgICAgIHR3byB3aXQgdGhlIHNhbWUgbmFtZQogICAKICAgQ2hhbmdlOgogICAgIE1JQiBkZWZpbml0aW9uIGNoYW5nZToKICAgICAgIC0tIEFsbCBtaWJzIHdpdGggZXJyb3IgZmxhZ3Mgbm93IHVzZSBFUlJPUkZMQUcvRVJST1JNU0cgaW5zdGVhZC4KICAgICAgIC0tIFRoZXNlIGRlZmF1bHQgdG8gMTAwIGFuZCAxMDEsIGFuZCBhcmUgc2V0IGJ5IG9ubHkgdHdvIGRlZmluZXMKICAgICBTaG9ydGVuZWQgZXJyb3IgbWVzc2FnZSBmb3IgcHJvY2VzcyBlcnJvcnMgdG8gZml0IG9uIHRoZSBzY3JlZW4uCiAgICAgU3dhcCBtaWIgY29kZSBjbGVhbnVwCiAgIAogICBUT0RPOgogICAgIEFkZGVkIGJlZ2lubmluZ3Mgb2Yga2VybmFsIGxvY2tpbmcgdGVzdHMuICBOZWVkIHRvIGZpbmQgYSBtYWNoaW5lCiAgICAgd2l0aCBhIGJyb2tlbiBycGMubG9ja2QgdG8gdGVzdCB0aGUgY29kZSB0aG91Z2guCiAgIAogICBCdWdzOgogICAgIE15IG5saXN0IGFycmF5IGRpZG4ndCBoYXZlIGEgTlVMTCBlbmRpbmcuCiAgIAoxOTk0LTEyLTE0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgUkVBRE1FIGZpbGUKICAgCjE5OTQtMTItMTQgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaHB1eC5jOgoKICAgQWRkZWQgaHB1eC5jCiAgIAoxOTk0LTEyLTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHBhcnR5X3BhcnNlLmMsIHNubXBfY2xpZW50LmMKOgoKICAgSFAtVVggcG9ydCBvZiB0aGUgQ01VIGNvZGUKICAgCjE5OTQtMTItMTQgMTU6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBtaWJJSS50eHQsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oCiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL3ZpZXcuaCwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wZ2V0LmMsIHNubXBsaWIvLnB1cmUKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBfYXBpLjMKLCBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsCiAgIG1hbi92YXJpYWJsZXMuNSwgbWFuL1JFQURNRSwgbWFuL2Rlcy4xCiwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCBDTVUgc25tcCBjb2RlLCB2ZXJzaW9uIDIuMS4yCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jCiwgc25tcGxpYi9hc24xLmgsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaAosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuaAosIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi92aWV3LmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi92aWV3LmgsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jCiwgc25tcGxpYi8ucHVyZSwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zLAogICBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsIG1hbi92YXJpYWJsZXMuNSwKICAgbWFuL1JFQURNRSwgbWFuL2Rlcy4xLCBtYW4vZGVzLjM6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk0LTExLTE4IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLAogICBzbm1wZC5jOgoKICAgQWRkZWQgc29tZSBocC1taWJzCiAgIAoxOTk0LTExLTA0IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIFZpcnR1YWwgTWVtb3J5IG1pYiAoY3VycmVudGx5IG9ubHkgdG90YWwgYW5kIHVzZWQpCiAgIAoxOTk0LTEwLTI4IDEzOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgaHAtdXggbWFjaGluZXMgbm93IHJldHVybiB0aGUgY29ycmVjdCBtaWIgbG9jYXRpb24gZm9yIHRoZWlyIGFyY2ggdHlwZS4KICAgQWRkZWQgaHAtdXggdG8gdGhlIGlmZGVmcyBmb3IgUm91dGVfU2Nhbl9SZWxvYWQoKSBmdW5jdGlvbiBmb3IgY29ycmVjdAogICAgICBrZXJuYWwgcmVhZGluZy4KICAgCjE5OTQtMTAtMjYgMTM6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYzoKCiAgIERlYyBjb21waWxhdGlvbiBhY2hpdmVkLCB0aG91Z2ggaXRzIG5vdCBvcGVuaW5nIGFueSBwb3J0cyB3aGVuIHJ1bi4KICAgCjE5OTQtMTAtMjQgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgdGhlIGV4dGVuc2libGUgbWliIHNlY3Rpb24uCiAgIAoxOTk0LTEwLTIwIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgdmFyX3N0cnVjdC5oOgoKICAgQWRkZWQgdGhlIHJlbWFpbmluZyBocC11eCBzeW1ib2xzCiAgIHB1dCBhbGwgZGVwZW5kYW5jaWVzIGZvciBteSBzdHVmZiB1bmRlciB3ZXMvCiAgIG1vdmVkIHRoZSB2YXJpYWJsZSBkZWNsYWlyYXRpb25zIChzdHJ1Y3RzKSB0byB2YXJfc3RydWN0cy5oIHNvIHRoZXkgY291bGQgYmUKICAgcmVmZXJlbmNlZCBieSBvdGhlciBmaWxlcy4KICAgQ2hhbmdlZCB0aGUgZGVmYXVsdCB2YWx1ZXMgdG8gaHAtdXggZnJvbSBCU0QgYW5kIG90aGVyIG1pc2Mgc3RyaW5ncwogICBBZGRlZCBhcHByb3ByaWF0ZSBkZXBlbmRhbmNpZXMgdG8gdGhlIG1ha2VmaWxlCiAgIENoYW5nZWQgZXJyb3JzIGFuZCBhZGRlZCBzdHVmZiB0byB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyBmb3IgbXkgc3R1ZmYKICAgCjE5OTQtMTAtMTQgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCBzbm1wX3Zhcl9yb3V0ZS5jCiwgc25tcF92YXJzLmM6CgogICBmaXhlZCBubGlzdCBmb3IgdGhlIGhwcy4gIE5vdCBzdXJlIG9mIHRocmVlIHBhcnRpY3VsYXIgbmxpc3QKICAgcmVmZXJlbmNlcyAoZm9yIHRoZSBhcnAgdGFibGUpLiAgVGhlIHJlc3QgYXJlIHdvcmtpbmcuCiAgIEFsc28gYWRkZWQgd2VzLyogZG8gdGhlIGRlcGVuZGFuY2VzIGZvciBzbm1wX3ZhcnMuYwogICAKMTk5NC0xMC0xNCAwODozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJzLmM6CgogICBJIGZpeGVkIHRoZSBzb3VyY2UgZm9yIGNvbXBpbGF0aW9uIGFuZCBiZWdhbiBhZGRpbmcgbXkgb3duIG1pYiBkZWZzLgogICBBbnkgaW5jbHVkZWQgbWlicyB3aGljaCBtYWtlIGtlcm5hbCByZWFkcyBzdGlsbCBmYWlsLgogICAKMTk5NC0xMC0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgaGlzdG9yeS5oLCBrZXJuZWwuYwosIHNubXBfYWdlbnQuYywgc25tcF92YXJfcm91dGUuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmMsIGFsYXJtLmMsCiAgIGV2ZW50LmMsIGhpc3RvcnkuYywgcGFydHlfdmFycy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzX2V2ZW50LmgsIHZpZXdfdmFycy5jCiwgYWNsLmNvbmYsIGFjbF92YXJzLmMsIGFsYXJtLmgKLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuaCwgbTJtLmgKLCBzbm1wX3ZhcnNfbTJtLmgsIHZpZXdfcGFyc2UuYywgLnB1cmUKLCByb3V0ZV93cml0ZS5jOgoKICAgSW5pdGFsIENNVSBzb3VyY2UuCiAgIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuOCAtPiBWNS4wLjkKCjIwMDMtMDktMDUgMjM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDktMDUgMjM6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZm9yZ290IGEgdGVzdCBhZnRlciB0aGUgaWYKICAgCjIwMDMtMDktMDUgMjM6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIEJvYiBSb3dsYW5kcwogICAKMjAwMy0wOS0wNSAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMwosIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMKLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zCiwgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjMsCiAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGUKICAgCjIwMDMtMDktMDUgMjM6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjkKICAgCjIwMDMtMDktMDUgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzgwMDU2MSBmcm9tIEJvYiBSb3dsYW5kcyB0byBmaXggNjRiaXQgcHJvYmxlbXMgKC0+IHNpemVfdCkKICAgCjIwMDMtMDktMDUgMjI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUGF0Y2ggIzgwMDQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgNjQgYml0IGFnZW50eCBwcm9ibGVtcwogICAKMjAwMy0wOS0wNSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQYXRjaCAjNzkyMDA4IGZyb20gVGhvbWFzPyB0byBhbGxvdyB1c21Vc2VyIHRva2VucyB0byBvdmVycmlkZSBwcmV2aW91cyBlbnRyaWVzCiAgIAoyMDAzLTA5LTA1IDIyOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGNtZC4xLmRlZiwKICAgc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsCiAgIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmOgoKICAgUGF0Y2ggIzc4OTQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgYSBsb25nIG5lZWRlZCBvdmVyaGF1bCBvZiB0aGUgbWFudWFsIHBhZ2VzLgogICAKMjAwMy0wOS0wNSAyMjowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBvbmUgcnVuLWF3YXkgcGF0Y2gKICAgCjIwMDMtMDktMDUgMjE6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYzoKCiAgIGhpZ2ggbGV2ZWwgY29tbWVudHMgYWJvdXQgY29udGFpbmVkIGNvcHlyaWdodHMgbW92ZWQgZnJvbSB0aGUgbWFpbiBicmFuY2gKICAgCjIwMDMtMDktMDUgMjE6NTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB1cGRhdGVzCiAgIAoyMDAzLTA5LTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgQWRkIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUgLS13aXRoLXBlcmwtbW9kdWxlcyBmbGFnIGZvciBwYXNzaW5nIGRvd24KICAgCjIwMDMtMDktMDUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBhIGdldGJ1bGsgYnVnIHBvaW50ZWQgb3V0IGJ5IEp1cmlqIFNtYWtvdi4KICAgCjIwMDMtMDctMjcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBmaWxlbmFtZSBpbiBlcnJvciBtc2csIGFzIG5vdGVkIGluIGNvZGVycwogICAKMjAwMy0wNy0yNCAxODoxNCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIGFjY2VzcyB0byBhdWdtZW50cyB0YWcgKGZpeCBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzCiAgIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAxODoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGUgZm9yIHRhYmxlcyB1c2luZyBhdWdtZW50cyAoZml4CiAgIGJ1ZyA3NDAwODI6IG1pYjJjIGhhbmRsZXMgQVVHTUVOVGluZyB0YWJsZXMgaW5jb3JyZWN0bHkpCiAgIAoyMDAzLTA3LTI0IDA1OjI3ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOTElORSBhcyBlbXB0eSBpZiBub3QgZGVmaW5lZAogICAKMjAwMy0wNy0xMCAwOTozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB0eXBvOyB1c2Ugd2hpY2ggdG8gZmluZCBzY3A7IGFkZCBleHRyYSBjb25maWcgdG8gb3RoZXIgY29uZmlnCiAgIAoyMDAzLTA3LTA5IDIwOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIGhvc3QvcGF0aCB1cGxvYWQ7IHRyeSB0byBleHRyYWN0IG1vcmUgaW5mbyBmcm9tIG1ha2UgbG9nIG9uIGVycm9yCiAgIAoyMDAzLTA3LTA5IDIwOjU0ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlLCBuc2ItbmlnaHRseToKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkIHBhcmFtczsgdXNlIG5ldyBuc2ItZGVmYXVsdC1wYXRocwogICAKMjAwMy0wNy0wMyAyMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgb29wcyAtIG5vIG5ldyBmZWF0dXJlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX2xpc3Rfc3NsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9udWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgbmV3IGNvbnRhaW5lcnMKICAgCjIwMDMtMDctMDIgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmaXggbmV0c25tcF9zdWJ0cmVlX3VubG9hZCgpIHRvIHVwZGF0ZSB0aGUgcm9vdCBwb2ludGVyCiAgIAoyMDAzLTA3LTAyIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYwo6CgogICBQYXRjaCAjNzYwNDQ4IGZyb20gQm9iIFJvd2xhbmRzL1N1biB0byBmaXggYnVnICM3NTE5MTMgdG8gcHJvdGVjdCBhIGZldyBtaW5vciBzZWN1cml0eSB2aW9sYXRpb25zCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIGZpbGUgc3RybGNweS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIFBhdGNoICM3NjA0MTcgZnJvbSBCb2IgUm93bGFuZHMvU3VuIGZvciBmaXhpbmcgQnVnICM3NTE5MjAgZm9yIG1pbm9yIHNlY3VyaXR5IHByb2JsZW1zIChQSUQgZmlsZSB1bmxpa2VkIGZpcnN0LCBhbmQgdXNlIHN0cmxjcHkgaW5zdGVhZCBvZiBzdHJjcHkuICBBIG5ldyBzdHJsY3B5IGZpbGUgd2FzIGRlZmluZWQgaWYgbm90IGRlZmluZWQgZm9yIGEgc3lzdGVtLgogICAKMjAwMy0wNy0wMiAxMDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGRvbid0IHVzZSBpc3NwYWNlIGFuZCBpc3ByaW50IHNpbXVsdGFuaW91c2x5CiAgIAoyMDAzLTA3LTAyIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBjb21tZW50IGNoYW5nZSBmb3IgY2xhcmlmaWNhdGlvbgogICAKMjAwMy0wNy0wMiAxMDoyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIFBhdGNoICM3NjQwNDcgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBmcm9tIHNubXBfZGVidWcuaCBhbmQgZml4IGEgZmV3IGNvbW1lbnRzCiAgIAoyMDAzLTA3LTAyIDEwOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM3NTkzMDkgZnJvbSBTdGVwaGVuIEZyaWVkbCB0byBhZGQgcHJvbXB0IG92ZXItcmlkZSBmbGFnIGRlc2NyaXB0aW9ucyB0byBwcm9tcHQgb3V0cHV0CiAgIAoyMDAzLTA3LTAyIDEwOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM3NTkyOTg6IGZpeCBzcGVsbGluZyBlcnJvcgogICAKMjAwMy0wNi0yNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBwcm94eWluZyBmb3IgZ2V0YnVsawogICAKMjAwMy0wNi0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IHVzYWdlIGZvciBmbGFnIG9yZGVyaW5nCiAgIAoyMDAzLTA2LTE2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29tbWVudCBhYm91dCBpdCBiZWluZyBicm9rZW4sIGFzIHBvaW50ZWQgb3V0CiAgIGJ5IEJydWNlLgogICAKMjAwMy0wNi0xNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHN1cHBvcnQgLCBzZXBhcmF0ZWQgYXJndW1lbnRzIHRvIC1UIGxpa2UgLWggc2F5cyBpdCB3aWxsLgogICAKMjAwMy0wNi0xNiAxNDo1NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEJydWNlIFNoYXcncyBwYXRjaCA3NTU1NTMgdG8gZml4IFJVTlRFU1RTIHRlc3QgbnVtYmVyIHJlcG9ydGluZyB3aGVuCiAgIHRlc3Rpbmcgc3Vic2V0cyBhcmUgdXNlZC4KICAgCjIwMDMtMDYtMTYgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NTU1NDAgZnJvbSBCcnVjZSBTaGF3IGFuZCBJUkM6U2ViTm9iIHRvIGZpeCBidWcgIzcwMTQzOSBmb3IgNjQgYml0IHNvbGFyaXMgc3lzdGVtcyBhbmQgNjQgYml0IGludGVnZXJzIHJldHVybmVkIGJ5IGdldEtzdGF0CiAgIAoyMDAzLTA2LTE2IDE0OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIFBhdGNoICM3NTQxMDUgZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBzb21lIHNwZWxsaW5nIGVycm9ycwogICAKMjAwMy0wNi0xMCAxNTo0OCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEJld2FyZSBvZiBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAzLTA2LTEwIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIHVudXNlZCBmdW5jdGlvbiBhcyBwb2ludGVkIG91dCBieSBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDYtMDkgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIExvbmcgb3ZlcmR1ZSBwYXRjaCAjNjk1MTkyIGZyb20gUm9uIFRhYm9yIHRvIGZpeCB0aGUgVkFDTSBzcGlubmluZyBwcm9ibGVtIHRoYXQgSSBkaWRuJ3QgcXVpdGUgZml4IGJlZm9yZQogICAKMjAwMy0wNi0wOSAxNjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMKLCB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICBmaXggYnVnICM3MDY3MTAgdG8gc2hvdyB3aGVuIHByaXZhY3kgaGFzIGJlZW4gZGlzYWJsZWQKICAgCjIwMDMtMDYtMDkgMTU6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJ1ZyAjNzQ4NDMxIGZyb20gSm9obiBTaGl2ZXI6IGZpeCB0aHJlYWQtc2FmZSBwcm9ibGVtcyB3aXRoIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uICh3aGljaCB3YXMgbWlzc2luZyBpbiB0aGUgNS54IGxpbmUgYW55d2F5KQogICAKMjAwMy0wNi0wOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLk1hdHN1c2hpdGEudHh0LCBSRUFETUUuTWF0c3VzaGl0YS50eHQ6CgogICBQYXRjaCAjNzQ4MzA1IGZyb20gc3Jpbml2YXNhIHJhbyBndXJ1c3UgZGVzY3JpYmluZyBob3cgdG8gYnVpbGQgbmV0LXNubXAgb24gTWF0c3VzaGl0YSBlbWJlZGRlZCBzeXN0ZW1zCiAgIAoyMDAzLTA2LTA5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBhdGNoIDc0NjMzOTogT3R0byBTb2xhcmVzIGZpeGVzIGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gbGludXgKICAgCjIwMDMtMDYtMDkgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIHBhdGNoICM3NDA5MTggZnJvbSBFcmljIEUuIEJvd2xlczogZml4IHBhc3MgdGhyb3VnaCBpbnZvY2F0aW9uIGZvciBTRVRzCiAgIAoyMDAzLTA2LTA5IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzQ5MDYyIHRvIGZpeCBjYWNoaW5nIGNyYXNoaW5nIGFuZCBjbGFzaGluZyB1bmRlciBTb2xhcmlzCiAgIAoyMDAzLTA2LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcGF0Y2ggIzc0OTEwMyBmcm9tIEdhcnJ5IEMgTWFyc2hhbGwgdG8gZml4IHRoZSBwcm94eSB3aGVuIGEgdGltZW91dCBvY2N1cnMgZnJvbSB0aGUgdGFyZ2V0CiAgIAoyMDAzLTA2LTA2IDIzOjE3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBtaXNzaW5nIGxlbmd0aCBieXRlIHdoZW4gc2V0dGluZyBpbmRleCB3aXRoIGNoZWNrcyBkaXNhYmxlZAogICAKMjAwMy0wNS0yOCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgYXMgcG9pbnRlZCBvdXQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNS0yOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgYWRkZWQgVjQvVjUgbm90ZSBmcm9tIG1haW4gYnJhbmNoIHRvIHBhdGNoZXMKICAgCjIwMDMtMDUtMjMgMTE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZyZWUgY29udGFpbmVyIGFmdGVyIGZyZWVpbmcgY29udGVudHMKICAgCjIwMDMtMDUtMjMgMTE6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1cGRhdGUgY29udGFpbmVyIGZyZWUgbWFjcm8vY29kZSB0byBkZWFsIHcvcG9pbnRlciBiZWluZyBkZWxldGVkCiAgIAoyMDAzLTA1LTIzIDExOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEVYVEVOU0lCTEVNSUIgLT4gVUNEQVZJU19NSUIKICAgCjIwMDMtMDUtMTQgMTA6MzAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA1LTE0IDEwOjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBjaG1vZCB0byB3b3JrIGZyb20gY29uZmlndXJlIGFuZCBjb25maWcuc3RhdHVzCiAgIAoyMDAzLTA1LTEyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzczNTUxMSBmcm9tIEFsZXggQnVyZ2VyOiBmaXggc25tcHRyYXBkIHRvIGVuc3VyZSB0aGVyZSBhcmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHZhcmJpbmRzCiAgIAoyMDAzLTA1LTEyIDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgUGF0Y2ggIzczNjc4NCBmcm9tIFJvbiBUYWJvcjogZml4IHByb3hpZXMgZm9yIHJlc3RhcnRlZCBOU01QdjMgc3ViLWFnZW50cwogICAKMjAwMy0wNS0wOCAxNjoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbmRyZXcgRmluZGxheQogICAKMjAwMy0wNS0wOCAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIChleGNlbGxlbnQpIHBhdGNoICM3MDU1NjYgZnJvbSBBbmRyZXcgRmluZGxheSBvbiBwZXJsIGFnZW50IHN1cHBvcnQ6CiAgIAogICAxKSBBZ2VudCBjYW5ub3QgcmV0dXJuIE1BQyBhZGRyZXNzZXMgY29udGFpbmluZyB6ZXJvIG9jdGV0LgogICAKICAgMikgQWdlbnQgY29yZWR1bXBzIHdoZW4gdHJ5aW5nIHRvIHJldHVybiBJUCBhZGRyZXNzZXMKICAgaWYgdGhlc2UgYXJlIHN1cHBsaWVkIGFzIGRvdHRlZC1xdWFkIG9yIGFzIGEgaG9zdG5hbWUKICAgdGhhdCBmYWlscyB0byByZXNvbHZlLgogICAKICAgMykgQWdlbnQgY29ycnVwdHMgT0lEIHZhbHVlcy4KICAgCiAgIDQpIEFnZW50IHRydW5jYXRlcyBhbnkgT0NURVRfU1RSSU5HIG9yIEJJVF9TVFJJTkcgdGhhdAogICBjb250YWlucyBhIHplcm8gb2N0ZXQgKHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgKDEpIGFib3ZlKQogICAKICAgQVBJIGNoYW5nZXMgaW50cm9kdWNlZDoKICAgCiAgIGEpIElQIGFkZHJlc3NlcyBub3cgcGFzc2VkIGFzIGJpbmFyeSBzdHJpbmdzICg0IG9jdGV0cwogICBmb3IgSVB2NCkgcmF0aGVyIHRoYW4gZG90dGVkLXF1YWQgb3IgbmFtZS4gVGhpcwogICBzaWRlc3RlcHMgdGhlIElQdjQvSVB2NiBwcm9ibGVtIGFuZCBsZWF2ZXMgdGhlIGNhbGxpbmcKICAgc2NyaXB0IHRvIGRlYWwgd2l0aCBuYW1lLT5hZGRyZXNzIHJlc29sdXRpb24gYW5kCiAgIGFzc29jaWF0ZWQgZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTA4IDA5OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIEFsZXggQnVyZ2VyLCB3aG8gc3VibWl0dGVkIHRoZSBwZXJsIHdpbjMyIHBhdGNoZXMKICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gU3RlcGhlbgogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgcGF0Y2ggIzcxMDI3NSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBjb25zdCBmaXhlcyBmb3IgQVBJcyB0aGF0IGRvbid0IG1vZGlmeSB0aGVpciBhcmd1bWVudHMKICAgCjIwMDMtMDUtMDggMDk6MjggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1pc3NlZCBhIGNvbW1pdCBmb3IgYSBwZXJsIHBhdGNoCiAgIAoyMDAzLTA1LTA4IDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzcxMjEwMTogbWlub3IgaXJpeCBmaXgKICAgCjIwMDMtMDUtMDggMDk6MjEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBNZW50aW9uIHBhdGNoICM3MTU2MDMKICAgCjIwMDMtMDUtMDggMDk6MTggIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvUkVBRE1FLCBTTk1QL1NOTVAueHMKLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHBhdGNoICM3MTU2MDM6IGZpeCBwZXJsIG1vZHVsZSBidWlsZHMgdW5kZXIgd2luZG93cwogICAKMjAwMy0wNS0wOCAwNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHRyeSB0byB1c2UgZGVmYXVsdCBjb250YWluZXIgaWYgbm9uZSBzcGVjaWZpZWQ7IG5vbi1leGlzdGVudCByb3cgc3RhdHVzIG5vdAogICBsZWdhbCBmb3IgYSBuZXcgcm93OyBzYW5pdHkgY2hlY2sgYXNzZXJ0czsgcmVtb3ZlIHVudXNlZCBjb29wZXJhdGl2ZQogICBub3RpZmljYXRpb24gY29kZTsgY2hlY2sgZm9yIG51bGwgdGFibGUgY29udGFpbmVyCiAgIAoyMDAzLTA1LTA4IDA3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgb2JqZWN0X21vbml0b3IgYXMgaXQgZG9lc24ndCBkbyBhbnl0aGluZyBhbmQgd291bGQgYmUgYSBuZXcgZmVhdHVyZSBpZgogICBpdCBkaWQKICAgCjIwMDMtMDUtMDggMDc6MDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggc3lzbmFtZSB0cmFuc2xhdGlvbiBmb3IgLzsgYWxsb3cgZXh0cmEgY29uZmlnIHRvIGJlIHNwZWNpZmllZCBpbgogICBlbnZpcm9ubWVudCB2YXIKICAgCjIwMDMtMDUtMDggMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGNoZyBORVRfU05NUF9VU0VfQVNTRVJUIGRlZmluZSB0byBORVRTTk1QX1VTRV9BU1NFUlQgdG8gYmUgY29uc2lzdGVudAogICAKMjAwMy0wNS0wOCAwNjo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNzI0OTI3IF0gdG8gZml4IGxvZyBtc2c7IGFkZCBcbiB0byBsb2cgbXNncwogICAKMjAwMy0wNS0wNSAxNTozNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDMtMDUtMDUgMTA6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCiAgIAoyMDAzLTA1LTA1IDEwOjI5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIGNobW9kIG5ldC1zbm1wLWNvbmZpZyBhZnRlciBjb25maWd1cmUsIGluc3RlYWQgaW4gbWFrZQogICAKMjAwMy0wNC0wMyAxNToxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgd3JhcCBTTk1QX0ZSRUUgbWFjcm8gdy9kbyB3aGlsZSwgc28gaXQgd29uJ3QgYWZmZWN0IGlmL3RoZW4gZmxvdwogICAKMjAwMy0wMy0yOCAwNjo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBLZW4gSG9ybnN0ZWluIG5vdGVkIHRoYXQgdGhlIHJ3dXNlciAtcyBmbGFnIHdhcyBtaXNzaW5nIGl0J3MgYXJndW1lbnQKICAgCjIwMDMtMDMtMjggMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gZm9yIG1pc2Mga3JiNSBmaXhlcyAoZW5jcnlwdGlvbiB0eXBlcywgTmV3IGNyeXB0byBzdXBwb3J0LC4uLgogICAKMjAwMy0wMy0xOSAxMTo0NiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHRyYWlsaW5nIFwgZnJvbSBwZXJsIHJ1bGVzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjcgLT4gVjUuMC44CgoyMDAzLTAzLTE3IDE3OjMzICByc3RvcnkKCiAgICogTkVXUywgbWFuL25ldHNubXBfaGFuZGxlci4zLAogICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjM6CgogICB1cGRhdGUgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTE3IDE3OjIwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEKLCBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44ICkKICAgCjIwMDMtMDMtMTQgMTQ6NTUgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDE0OjQwICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjUzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwo6CgogICB1cGRhdGUgZm9yIDUuMC44LnByZTIKICAgCjIwMDMtMDMtMTQgMTM6NDUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHRyYWlsaW5nIHNsYXNoIG9uIHNyY2RpciBmb3IgY29tbWVudCBjaGVja3MKICAgCjIwMDMtMDMtMTQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGV4dHJhIG1vZHVsZXMgYW5kIHRyYW5zcG9ydHMKICAgCjIwMDMtMDMtMTQgMTI6NDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIGlubGluaW5nOyBmaXggc29tZSBpbmRlbnQgbWFkbmVzcwogICAKMjAwMy0wMy0xNCAxMjo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIHRlc3RpbmcgaWYgaW5saW5pbmcgaXMgb24KICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBocHV4LmgsCiAgIGlyaXguaDoKCiAgIGRvbid0IHVuZGVmIGlubGluZQogICAKMjAwMy0wMy0xNCAxMjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW5hbWUgbWFjcm8gdXNlZCB0byB0ZXN0IGZvciBpbmxpbmluZwogICAKMjAwMy0wMy0xNCAxMjozOSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgaWYgaW5saW5lIG1hY3JvIG5vdCBkZWZpbmVkLCBkZWZpbmUgYXMgZW1wdHkKICAgCjIwMDMtMDMtMTQgMTI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKLCBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgcmVwbGFjZSBpbmxpbmUgdy9tYWNybwogICAKMjAwMy0wMy0xMyAxOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbiB0byBmaXggc29tZSBBZ2VudFggKG1vc3RseSkgbWVtb3J5IGxlYWtzCiAgIAoyMDAzLTAzLTEyIDEzOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBwYXRjaCAjNjk5MzgwOiBGcm9tIENocmlzdG9waGUgS2FsdDogbWFrZSBuZXQtc25tcC1jb25maWcgZG8gd2hhdCBpdCdzIGRvY3VtZW50IHRvIGRvIChhZGQgLUxAbGliZGlyQCkKICAgCjIwMDMtMDMtMTIgMTE6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoICM3MDA2NzI6IHJlc2V0IGl0bXAgdG8gdGhlIG5ldyB2YWx1ZSBsZW5ndGggYWZ0ZXIgZGVjb2RpbmcgYSBoZXggc3RyaW5nCiAgIAoyMDAzLTAzLTExIDE3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBBcHBsaWVkIG9wZW5zc2wgZHluYW1pYyB2ZXJzaW9uIGhhY2svZml4CiAgIAoyMDAzLTAzLTExIDE1OjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgV1JBUExJQlMgdmFyIGluc3RlYWQgb2YgZGlyZWN0IHN1YnN0aXR1dGlvbgogICAKMjAwMy0wMy0xMSAxNToxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBXUkFQTElCUyB0byAtLWFnZW50LWxpYnMgYW5kIC0tZXh0ZXJuYWwtYWdlbnQtbGlicwogICAKMjAwMy0wMy0xMSAwMDozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJldmVydCB0byAyLjEzCiAgIAoyMDAzLTAzLTA2IDAxOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTAzLTA2IDAxOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGxpYndyYXAgdy9uc2w7IG1ha2Ugc3VyZSBhbGwgcXVvdGVzIHJlc3RvcmVkIGJlZm9yZSB1c2luZyBBQyBtYWNyb3MuIFRoaXMKICAgc2VlbXMgdG8gbWVzcyB1cCB0aGUgY29uZmlnIG91dHB1dCB3aGlsZSBjaGVja2luZyBmb3IgbW9kdWxlcywgYnV0IHcvb3V0IGl0LAogICBJIGdldCBlcnJvcnMgZnJvbSBtNCB3aGVuIHJ1bm5pbmcgYXV0b2NvbmYuCiAgIAoyMDAzLTAzLTA1IDIwOjUxICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBuZXQtc25tcC1jb25maWcteAogICAKMjAwMy0wMy0wNSAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGVjayBmb3IgYW4gb3B0aW9uYWwgM3JkIHBhcmFtLCBub2N2cywgdG8gbm90IGNvbW1pdCBhZnRlciB1cGRhdGluZyB2ZXJzaW9uCiAgIAoyMDAzLTAzLTA1IDIwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHB1dCBhbGwgdGhlIHZlcnNpb24gbnVtYmVyIGNoYW5nZXMgaW4gdGhlIHNhbWUgc3RlcAogICAKMjAwMy0wMy0wNSAyMDoyMSAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44LnByZTEgKQogICAKMjAwMy0wMy0wNSAyMDowMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjAuOC5wcmUxCiAgIAoyMDAzLTAzLTA1IDE5OjA0ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBiYWNrIG91dCBkb2NzIGZvciBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGJhY2sgb3V0IG5ldyBmdW5jdGlvbmFsaXR5IGFjY2lkZW50YWxseSBhZGRlZCB3aGVuIGFwcGx5aW5nIHBhdGNoCiAgIAoyMDAzLTAzLTA1IDE4OjIwICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGVzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMy0wMy0wNSAxODoxOCAgcnN0b3J5CgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHNubXBkLjgKICAgCjIwMDMtMDMtMDUgMTg6MTIgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDMtMDUgMTg6MDQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdG8gNS4wLjgKICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgcmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50OyBmaXggdHlwbwogICAKMjAwMy0wMy0wNSAxNzo1OCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZXhjbHVkZSBmdHAgZnJvbSBjb21tZW50IGNoZWNrOyB1c2UgZWdyZXAKICAgCjIwMDMtMDMtMDUgMTc6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGNoZyBDKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0wMy0wNSAxNzo1MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhcmdoISBGcmVlQlNEIGlzIGRyaXZpbmcgbWUgY3JhenkhICBzZXQgUkFORE9NPTIgaWYgUkFORE9NIG5vdCBkZWZpbmVkOyB1c2UgdGVzdAogICAKMjAwMy0wMy0wNSAxNzoyMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzaW1wbGlmeSBuZXRzdGF0IGFyZ3MgJiB0d2VhayBncmVwIHJlZ2V4IGZvciBtdWx0aSBwbGF0Zm9ybSBjb21wYXRhYmlsaXR5CiAgIAoyMDAzLTAzLTA1IDE3OjExICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGNoZWNrIC9iaW4gYW5kIC91c3IvYmluIGZvciBuZXRzdGF0IChwcm9iYWJseSBhIGdvb2Qgam9iIGZvciBjb25maWd1cmUpCiAgIAoyMDAzLTAzLTA1IDE3OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG1pc3NlZCBvbmUsIHJlOiAoKCApKSAtPiBleHByCiAgIAoyMDAzLTAzLTA1IDE2OjU4ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHVzZSBtb3JlIHBvcnRhYmxlIGV4cHIgaW5zdGVhZCBvZiAgKCggKSkgZm9yIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMKICAgCjIwMDMtMDMtMDUgMTY6MTYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZm9yIHN5c3RlbXMgd2l0aCAvYmluL25ldHN0YXQsIGNoZWNrIHRoYXQgc25tcGQgcG9ydCBpcyBub3QgaW4gdXNlLiBJZiBpdCBpcywKICAgdHJ5IHVwIHRvIHRocmVlIHJhbmRvbSBvdGhlcnMgYmVmb3JlIGdpdmluZyB1cC4KICAgCjIwMDMtMDMtMDUgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBkb24ndCBwcm9tcHQgYmV0d2VlbiBzdGVwcyBieSBkZWZhdWx0CiAgIAoyMDAzLTAzLTA1IDE1OjExICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGltcG9ydCBTTk1QX1NMRUVQIHRpbWUgZnJvbSBlbnZpcm9ubWVudCwgaWYgYXZhaWxhYmxlCiAgIAoyMDAzLTAzLTA1IDE1OjEwICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkb24ndCByZWRlZmluZSBpbmxpbmUKICAgCjIwMDMtMDMtMDUgMTU6MDggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE1OjA3ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIGZpbGVzIGF1dG9jb25mIG1heSBjcmVhdGUKICAgCjIwMDMtMDMtMDUgMTM6NDIgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIKLCBsdG1haW4uc2gsIGNvbmZpZ3VyZToKCiAgIFVwZGF0ZSBsaWJ0b29sIHRvIHZlcnNpb24gMS40LjMsIGZvciB0aGUgYmVuZWZpdCBvZiBEYXJ3aW4KICAgCjIwMDMtMDMtMDUgMTM6MzkgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBEb250IGZvcmNlIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGZvciAtLXdpdGgtZG1hbGxvYwogICAKMjAwMy0wMy0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgd3JvbmcgdHlwZSByZXR1cm5lZCBmb3IgbnNNb2R1bGVNb2RlcyBhcyByZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0KICAgCjIwMDMtMDMtMDMgMTU6MDMgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1lbnRpb24gdGhlIEFnZW50WEFkZHJlc3MsIEFnZW50c1JldHJpZXMgYW5kIEFnZW50WFRpbWVvdXQgcGFyYW1ldGVycwogICAKMjAwMy0wMy0wMyAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBZGQgc3VwcG9ydCBmb3IgT3BlbkJTRCAzLiBTb3J0IHNvbWUgbGluZXMgZm9yIGVhc2llciByZWZlcmVuY2UuCiAgIAoyMDAzLTAzLTAxIDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogYmV0dGVyIGVycm9yIGNoZWNraW5nCiAgIAoyMDAzLTAzLTAxIDA5OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGRvbid0IGNyZWF0ZSBkZWxlZ2F0ZWQgY2FjaGUgZm9yIENMRUFOVVBTRVQKICAgCjIwMDMtMDItMjggMjM6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR5cG8KICAgCjIwMDMtMDItMjggMjM6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFBhdGNoICM1OTc2MjkgZnJvbSBNYXR0IFNlbHNreSB0byBmaXggbWFuIHBhZ2UgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTAyLTI4IDEzOjE4ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbm5vdCBjcmVhdGUgcGlkIGZpbGUKICAgCjIwMDMtMDItMjggMTM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSBGUyB0eXBlcyB3aXRoIExpbnV4CiAgIAoyMDAzLTAyLTI3IDAwOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgc3luYyB3L21haW4KICAgCjIwMDMtMDItMjYgMTg6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBzeW5jIHcvbWFpbjogcHV0IGluIG1pc3NpbmcgSU5TVEFMTF9EQVRBCiAgIAoyMDAzLTAyLTI2IDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBJbXBsZW1lbnQgc3lzUmF3SW50ZXJydXB0cyBhbmQgc3lzUmF3Q29udGV4dCBmb3IgU29sYXJpcwogICAKMjAwMy0wMi0yNiAxNDozMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYSBDIHByZWNlZGVuY2UgYm90Y2gtdXAsIHRoYW5rcyB0byBGYWJy54it9YCRi++9pPWAkYvvvaTmrbvigLJjaW8gTGFzIENhc2FzIDxGYWJyaWNpb0BhdGFuLmNvbS5icj4KICAgCjIwMDMtMDItMjYgMTQ6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEltcGxlbWVudCB0aGUgc3NSYXdJbnRlcnJ1cHRzIGFuZCBzc1Jhd0NvbnRleHQgY291bnRlcnMgaW4gTGludXgKICAgCjIwMDMtMDItMjYgMTQ6MTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IHRoZSAtUyBvcHRpb24KICAgCjIwMDMtMDItMjUgMTQ6MzggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBsb2dpYyBvZiB0ZXN0IG9wZXJhdGlvbgogICAKMjAwMy0wMi0yNSAxNDozMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICB1c2UgQVVUTyhDT05GfEhFQURFUikgZnJvbSBjb25maWd1cmUsIGluc3RlYWQgb2YgaGFyZGNvZGVkOyBkb24ndCB0cnkgYW5kIHJ1bgogICBBVVRPKENPTkZ8SEVBREVSKSBpZiBub3QgZm91bmQKICAgCjIwMDMtMDItMjUgMTQ6MTEgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IG5ldyBmaWxlCiAgIAoyMDAzLTAyLTI1IDE0OjAzICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaCAoY29ycmVjdGx5LCB0aGlzIHRpbWUpCiAgIAoyMDAzLTAyLTI1IDEzOjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IGFkZCBOT0FVVE9ERVBTCiAgIAoyMDAzLTAyLTI1IDEzOjM4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBhZGQgc211eCB0byBkaXN0IG1vZHVsZXM7IG1vdmUgbWFrZSB0ZXN0IGludG8gbnNiLW1ha2U7CiAgIHJlbW92ZSB0ZWUgc28gcmMgaXMgcHJlc2VydmVkOyB1c2UgbmV3IE5PQVVUT0RFUFMKICAgCjIwMDMtMDItMjUgMTM6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBSZWNvZ25pc2UgImRlZlZlcnNpb24gdjMiIGFzIHdlbGwgYXMgImRlZlZlcnNpb24gMyIgYXMgZG9jdW1lbnRlZAogICBpbiB0aGUgbWFuIHBhZ2VzIChwcmlvciB0byBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29ycmVjdGlvbikKICAgW1dlIG1pZ2h0IGFzIHdlbGwgc3VwcG9ydCBib3RoIHN0eWxlcy4uLi5dCiAgIAoyMDAzLTAyLTI1IDEzOjIwICByc3RvcnkKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgc2Vkc2NyaXB0LmluLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9taWIyYy4xLmRlZiwKICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtaWJzL01ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiAoSSBob3BlIEkgZ290IHRoaXMgcmlnaHQpCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTI1IDEzOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC0gSXJmYW4gU2hlcmlmZiBwb2ludGVkIG91dCBhIGJ1ZyB3aXRoIGdldG5leHQgcmVxdWVzdHMgZGlyZWN0bHkgdG8gYSBjb2x1bW4uCiAgIC0gY2hlY2sgZW50cnkgbm9kZSBhcyBzdWdnZXN0ZWQgYnkgSXJmYW4gU2hlcmlmZgogICAKMjAwMy0wMi0yNSAxMzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFJlbW92ZSBsYXN0IHJlbWFpbmluZyB1c2Ugb2YgJ25saXN0JyB1bmRlciBIUC1VWCAxMCAmIDExLgogICBBcyBwZXIgcGF0Y2ggIzY1Njc3MyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMy0wMi0yNSAxMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBDaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGJ1ZmZlciBvbmNlIGlzIHN1ZmZpY2llbnQuCiAgIFVzaW5nICdzdHJubmNweScgW3NpY10gdG8gY2hlY2sgdGhpcyBsZW5ndGggdHdpY2UgaXMgdW5uZWNlc3NhcnkuLi4KICAgCjIwMDMtMDItMjUgMTM6MTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLSBNZXNzIHdpdGggb3V0cHV0IG9mIGRveHlnZW4gdG8gYWRkIHNmIGxvZ29zLCBldGMsIHRvIHRoZSBib3R0b20gb2YgdGhlCiAgICAgZ2VuZXJhdGVkIGh0bWwgZmlsZXMuCiAgIC0gQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIG5ldC1zbm1wLWNvbmZpZyBwYXRjaCAoIzY5MjM3MykKICAgCjIwMDMtMDItMjUgMTM6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjU1MTU0IGZyb20gSm9lbCBSb3NkYWhsOiBtb3JlIHByb3BlciBkZW1vbml6YXRpb246CiAgICAgLSBjbG9zZSBzdGRpbi9zdGRvdXQvc3RkZXJyIGlmIGFwcHJvcHJpYXRlLgogICAgIC0gZG91YmxlIGZvcmsuCiAgICAgLSBjaGRpciAvICAgW2V4Y2VwdCB1bmRlciB3aW5kb3dzXQogICAKMjAwMy0wMi0yNSAxMzoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjYyMTY5IGZyb20gSmFuIFdpbGxlbSBMdWl0ZW46IGRpc2tpbyBzdXBwb3J0IGZvciBEYXJ3aW4KICAgCjIwMDMtMDItMjUgMTM6MTAgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIHNldC50OgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBGaXggdGVzdHMgZm9yIGJ1bGt3YWxrIChkdXBsaWNhdGUgaGVhZGVyKSBhbmQgc2V0IChpbnZhbGlkIE9JRCBjb25zdGFudCkKICAgCjIwMDMtMDItMjUgMTM6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQWNjb21tb2RhdGUgYSBmdXNzeSBJUklYIGVudmlyb25tZW50LCB3aGljaCBpcyBwaWNreSBhYm91dCA8dW5pc3RkLmg+CiAgIFNlZSBidWcgIzY2NzcyNgogICAKMjAwMy0wMi0yNSAxMzowNCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMTM6MDIgIHJzdG9yeQoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBmaXggbXkgZGVjbGFyYXRpb25zIGFzIHBvaW50ZWQgb3V0IGJ5IEFuZHJldyBQYWdlCiAgIAoyMDAzLTAyLTI1IDEzOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQW4gYWRkaXRpb25hbCBjaGFuZ2UgdG8gc3VwcG9ydCAndCcgaGludHMKICAgCjIwMDMtMDItMjUgMTM6MDAgIHJzdG9yeQoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgcGF0Y2ggIzY3NDIxODogcmVvcGVuIGxvZyBmaWxlcyBvbiBIVVAuCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMjo1OSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEyOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCBmcm9tIENocmlzdG9waGUgdG8gc3VwcG9ydCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0yNSAxMjo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQ2xhcmlmeSB0aGUgbG9jYWwtb25seSBhY2Nlc3MgZm9yIG5vbi1zdGFuZGFyZCBwb3J0IEFnZW50WCBjb25uZWN0aW9ucwogICAKMjAwMy0wMi0yNSAxMjo1NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgICAgLSAgY2xvc2UgYW5kIHJlLW9wZW4gbG9nIGZpbGUgb24gcmVjZWl2aW5nIGEgSFVQIChwYXRjaCA2NzQyMTgsIHN1Ym1pdHRlZAogICAgICAgIGJ5IGFub255bW91cykKICAgCjIwMDMtMDItMjUgMTI6NTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMDk6MDQgIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb25maWd1cmF0aW9uLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIGNoYW5nZXMuCiAgIChwYXRjaGVzICM2OTIzNzIsICA2OTIzNzcsICA2OTIzNzkgYW5kIDY5MjM4NikKICAgCjIwMDMtMDItMTMgMjA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUGF0Y2ggIzY1NDMyOTogZG91YmxlIGNoZWNrIGxlbmd0aHMgd2hlbiBjb3B5aW5nCiAgIAoyMDAzLTAyLTEyIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmg6CgogICB1cGRhdGUKICAgCjIwMDMtMDItMTEgMTE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYwo6CgogICBwYXRjaCAjNjY3Njk0IChhbm9uKSB0byBhZGQgYmFjayBuZXdsaW5lcyB0byBwYXNzIGNvZGUKICAgCjIwMDMtMDItMDMgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZyb20gUmljaGFyZCBMYWluZzogY2hhbmdlIHZhbHVlIGNoZWNrIG9mIGEgc3RyaW5nIHRvIHVzZSBhIHByb3BlciBsZW5ndGguCiAgIAoyMDAzLTAxLTI0IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICM2NzIwMjEgZnJvbSBKb3NodWEgR2lsZXM6IGxhcmdlIHNldCByZXF1ZXN0IGZpeGVzCiAgIAoyMDAzLTAxLTIwIDIzOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbWlzc2luZyBicmFjZQogICAKMjAwMy0wMS0yMCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgYmFjayAoYWNjaWRlbnRhbGx5IGRlbGV0ZWQpIGNyZWF0aW9uIG9mIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0yMCAyMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdHJpbmcgdGVzdCBjYXNlCiAgIAoyMDAzLTAxLTIwIDIzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggYXJyYXlfcXNvcnQ7IGZpeCBiaW5hcnkgc2VhcmNoOyBjb24ndCByZWN1cnNlIG9uIGluc2VydCwgZGVsLCBldGMgc2luY2UKICAgdGhlIElOU0VSVC9ERUxFVEUgbWFjcm9zIGFscmVhZHkgaGFuZGxlIG11bHRpcGxlIGluZGV4ZXMKICAgCjIwMDMtMDEtMjAgMjI6NTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvZmZpY2lhbCBwYXRjaCBbIDY2OTcwNyBdIDUuMC43OiAxNi1CaXQgUmVxdWVzdCBJRHMKICAgCjIwMDMtMDEtMjAgMjI6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbWVzc2FnZTsgYWRkIG5ldHNubXBfY29tcGFyZV9tZW0KICAgCjIwMDMtMDEtMjAgMjI6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3JlYXRlIG1kNXN1bXMgYWZ0ZXIgY3JlYXRpbmcgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTIwIDIyOjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgYW5vdGhlciBsZXZlbCBvZiBkaXJlY3RvcmllcyB0byBtYWtlIGRlcGVuZCwgcGVyIGR0cyBvbiBjb2RlcnMKICAgKHRob3VnaHQgdGhpcyB3YXMgaW4gNS4wLjcsIGJ1dCBhcHBhcmVudGx5IG5vdCEpCiAgIAoyMDAzLTAxLTE0IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYwosIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb3h5Z2VuIGNoYW5nZXMKICAgCjIwMDMtMDEtMTMgMjE6NDkgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMyAyMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZWNvZ25pemUgbmV3ICd0JyBjb2RlIGluIGRpc3BsYXkgaGludHMKICAgCjIwMDMtMDEtMTMgMjA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXRjaCBmb3IgbWVtb3J5IGxlYWtzIHNlbnQgdG8gY29kZXJzIGJ5IEpheSBQYXJsYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNiAtPiBWNS4wLjcKCjIwMDMtMDEtMTEgMDE6MTUgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGNvbmZpZ3VyZS1zdW1tYXJ5CiAgIAoyMDAzLTAxLTExIDAxOjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wMS0xMSAwMTowOCAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgdmFyaWF0aW9ucyBvZiBjaGFuZ2Vsb2cuYWRkCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBkb3h5Z2VuIG91dHB1dCB0YWdzIHRvIHB1dCB0aGUgcmVjZW50bHkgZGVmaW5lZCBmdW5jdGlvbnMgaW50byBncm91cHMuCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlcwogICAKMjAwMy0wMS0xMCAxNzozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBvcHBzCiAgIAoyMDAzLTAxLTEwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkb3VibGUgY2hlY2tpbmcgb3V0cHV0CiAgIAoyMDAzLTAxLTEwIDE0OjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggcG9zaXRpb25hbCBhcmd1bWVudHMKICAgCjIwMDMtMDEtMTAgMDk6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIFJlZmVyZW5jZSBCcnVjZSBTaGF3J3MgZGlzY3Vzc2lvbiBvZiB0aGUgcGVybCBjb21waWxhdGlvbiBwcm9ibGVtcwogICAoc2VlIFJFQURNRS5zb2xhcmlzKQogICAKMjAwMy0wMS0xMCAwODozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiBBZ2VudFggdW5kZXIgd2luZG93cywgYW5kIGJlZWYgdXAgdGhlIHBlcmwgc3R1ZmYgYSBiaXQuCiAgIEFkZCBhIG1pc3NpbmcgZW50cnkgaW4gdGhlIGNvbnRlbnRzIGxpc3QuCiAgIChUaGlzIG1heSBwcm92ZSB0b28gbGF0ZSBmb3IgNS4wLjgsIGJ1dCBhdCBsZWFzdCBpdCdsbCBiZSByZWFkeSBmb3IgbmV4dCB0aW1lISkKICAgCjIwMDMtMDEtMDkgMTg6NDEgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaDoKCiAgIGVuZC1vZi1tb2RlIGhlbHBlciB0byBjYWxsIG1vcmUgaGFuZGxlcnMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbWFpbgogICBsaW5lLiAgRnVuY3Rpb25hbGx5IGFsbG93cyBwYXJhbGxlbCBoYW5kbGVyIHRyZWVzIGFuZCBjYWxsYmFja3MgYWZ0ZXIKICAgYSBwYXJ0aWN1bGFyIG1vZGUgaXMgY29tcGxldGVkICh1c2VmdWwgZm9yIHRoaW5ncyByZWdpc3RlcmVkIHVuZGVyIGEKICAgc2VyaWFsaXplIGhhbmRsZXIgd2hlbiB5b3UgZG9uJ3Qga25vdyB3aGVuIHRoZSBtb2RlIGlzIG92ZXIpLgogICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gcHJvZHVjdGlvbiBjb2RlIHlldC4pLgogICAKMjAwMy0wMS0wOSAxMTo1NSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgcGVybCBzaGFyZWQvc3RhdGljIGxpYnJhcnkgcHJvYmxlbSwKICAgdGhlIHVucmVzcG9uc2l2ZSBhZ2VudCBwcm9ibGVtIChhbmQgZml4KSwgYW5kCiAgIGRpc2NsYWltIGFsbCBrbm93bGVkZ2Ugb2YgRGF2aWQgVG93bidzIE5ldDo6U05NUCBtb2R1bGUsCiAgIAoyMDAzLTAxLTA5IDEwOjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNjBzbm1wdjJjYnVsa2dldCwgVDAyMjBzbm1wdjNidWxrZ2V0CjoKCiAgIEdldEJ1bGsgdGVzdGluZyBzdXBwbGllZCBieSBYaWFvZmVuZyBMaW5nCiAgIAoyMDAzLTAxLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQWRkIC14IGZsYWcgZm9yIGNhbGxpbmcgc3VidGVzdHMgd2l0aCAic2ggLXgiLgogICBGaXggbnVtYmVyIGNvdW50aW5nIGZvciBpbnRlcmFjdGl2ZSBvdXRwdXQuCiAgIAoyMDAzLTAxLTA3IDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuOCksIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQogICAKMjAwMy0wMS0wNyAxMzoxOCAgaGFyZGFrZXIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTgpLCBGQVE6CgogICBpcmMgc2VydmVyIG5hbWUgY2hhbmdlCiAgIAoyMDAzLTAxLTA3IDExOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYnVnICM2NjM2MjggYW5kIHBhdGNoOiBmaXggaXAgYWRkcmVzcyBpbmRleCBwYXJzaW5nIGZyb20gT0lEcwogICAKMjAwMy0wMS0wNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlIHRvIGZyZWUgJ2NhbGxiYWNrX2RhdGFfa2VlcCcgZGF0YS4KICAgVGhpcyBicmFuY2ggd291bGQgbmV2ZXIgYmUgaW52b2tlZCwgYW5kIGlzIGluIHRoZSB3cm9uZwogICBwbGFjZSBhbnl3YXkuICBQYXRjaCBzdXBwbGllZCBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTA2IDExOjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIFNvbGFyaXMgOSBoZWFkZXIKICAgCjIwMDMtMDEtMDUgMTg6MTQgIG5iYQoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE3OjI4ICBuYmEKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCB3aW4zMi5vcHQKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTU6NDUgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBTTk1QLU1QRC1NSUIudHh0LCBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQKLCBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVRNLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9ucwogICAKMjAwMy0wMS0wMyAxNTo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2FsbCBBQ19ESVNBQkxFX1NIQVJFRCwgYXMgc2V0cyB0aGUgZGVmYXVsdCB0byBkaXNhYmxlZCAoaXQncyB2ZXJ5CiAgIHByZXNlbmNlIGluIGNvbmZpZ3VyZS5pbiBnZW5lcmF0ZXMgYSBjb25maWd1cmUgd2l0aCBzaGFyZWQgZGlzYWJsZWQsIGV2ZW4KICAgaWYgaXQgd2FzIGluIGFuIGlmIGJsb2NrOyBmb3IgZGV2ZWxvcGVyIGRlZmF1bHQsIHNldCBlbmFibGVfc2hhcmVkIGRpcmVjdGx5CiAgIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBzZXQ7IHRlc3QgdGhhdCBlbmFibGVfc2hhcmVkPXllcyBmb3IgZW1iZWRkZWQtcGVybAogICAKMjAwMy0wMS0wMyAwODowMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTcpLCBGQVE6CgogICBNZW50aW9uIHRoZSBTdHJhdHVzIFZPUyBwb3J0LiAoVGhhbmtzIHRvIEJyYW5kb24gSGFsbCkKICAgCjIwMDMtMDEtMDIgMTg6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBwYXJlbnMgYXJvdW5kIHggaW4gbWFjcm8gaW4gY2FzZSB4IGlzIG11bHRpcGxlIEMgdG9rZW5zCiAgIAoyMDAyLTEyLTIyIDEyOjMyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMiApCiAgIAoyMDAyLTEyLTIyIDEyOjMxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUyCiAgIAoyMDAyLTEyLTIyIDEyOjIwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0yMCAwNzo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gYXdheSBuZXQtc25tcC1jb25maWcgb24gbWFrZSBjbGVhbgogICAKMjAwMi0xMi0yMCAwNzo1NyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc3Rhc2ggdGhlIG9pZF9zdGFzaCAuLi4KICAgCjIwMDItMTItMjAgMDQ6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBIHBhdGNoIGZyb20gVjQgdGhhdCBkaWRuJ3QgbWFrZSBpdCAuLi4gYWxsb3cgbGlzdCBvZiBudW1lcmljIGJpdHMgc2V0dGluZyBCSVRTCiAgIAoyMDAyLTEyLTIwIDAyOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgYWRkIGEgZ2xvYmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciByZWdpc3RlcmluZyBkaXJlY3RseSB2aWEgYSBjYWxsYmFjay4KICAgCjIwMDItMTItMjAgMDI6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBhZGQgY2FsbGJhY2suaAogICAKMjAwMi0xMi0yMCAwMjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlIHJlbmFtaW5nLiAgKHNucHJpbnRmIGNoYW5nZSBtaXN0YWtlKQogICAKMjAwMi0xMi0yMCAwMjoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHNvbWUgbmV3IHJvdXRpbmVzIGZvciBzYXZpbmcgb2lkIHN0YXNoIGRhdGEgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgogICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBjdXJyZW50IHByb2R1Y3Rpb24gY29kZSkKICAgCjIwMDItMTItMTkgMTc6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSB3YXRjaCBmb3IgdW5kZWZzIHBhc3NlZCBpbiBhcyBhIHZhbHVlIHRvIGEgU0VUIGNsYXVzZS4KICAgLSBjaGFuZ2UgQklUUyB0byBhIE9jdGV0IFN0cmluZyBhcyBpdCBzaG91bGQgYmUuCiAgICAgLSBvbiBhIHNpZGUgbm90ZSwgZG8geW91IGtub3cgdGhhdCB0aGUgTmV0LVNOTVAgcGFyc2VyIGRvZXNuJ3QKICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gQklUUyBhbmQgQklUIFNUUklORyBpbiBpdCdzIGxpc3Qgb2YgdHlwZXM/ICBJCiAgICAgICBkb24ndCB0aGluayBpdCdzIHBvc3NpYmxlIHRvIHVzZSBib3RoIHR5cGVzIGluIHRoZSBjb2RlIHRvZGF5CiAgICAgICAod2hpY2ggaXMgZmluZSwgc2luY2UgQklUIFNUUklORyBpcyBub3QgdXNlZCBpbiBTTk1QdjIgYW5kIGJleW9uZCkuCiAgIAoyMDAyLTEyLTE5IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBwcmludCBhIHdhcm5pbmcgd2hlbiB5b3UgY2FuJ3QgcGFyc2UgYW4gT0lEIChlcnIsIG5vdCBpZGVhbCkKICAgCjIwMDItMTItMTkgMTc6NDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIHNraXAgU0VUaW5nIGNvbHVtbnMgd2l0aCBubyB2YWx1ZSBwYXNzZWQgaW4uCiAgIAoyMDAyLTEyLTE5IDE0OjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy9leGFtcGxlLmMsIGhvc3QvaHJfbmV0d29yay5jCiwgaG9zdC9ocl9zd2luc3QuYzoKCiAgIEJlaW5nIGEgYml0IHF1aWNrLCBlaCwgRGF2ZSAuLi4KICAgCjIwMDItMTItMTkgMTE6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMi1wYXRjaGVzLjEyKSwgYXQuYzoKCiAgIEVuc3VyZSB0aGUgaWZuYW1lIGJ1ZmZlciBpcyBiaWcgZW5vdWdoIHRvIHJlYWQgaW4gYSBmdWxsLWxlbmd0aCBuYW1lLgogICAoRnJvbSB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMTowNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYwogICAoVjQtMi1wYXRjaGVzLlsyOCw5LDMsMywzMF0pLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYzoKCiAgIERldGVjdCB3aGVuIG1lbW9yeSBhbGxvY2F0aW9ucyBmYWlsLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MuCiAgIChCYXNlZCBvbiBjaGFuZ2VzIHdpdGhpbiB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMDowNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgVGhlIEdyZWF0IFNVU0UgJ3NwcmludGYnIEh1bnQuLi4uLgogICAKMjAwMi0xMi0xOSAwNjowMiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIGNvZGUgd2l0aCBCU0RpNAogICAKMjAwMi0xMi0xOSAwNTo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hhbmdlIGEgY29tbWVudCB0aGF0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIHRyYW5zcG9ydCBzdHVmZgogICAgIC0gZml4IHNvbWUgcGFydGljdWxhcmx5IGJhZCBmb3JtYXR0aW5nIGluIHNubXBfb3Blbl9leAogICAKMjAwMi0xMi0xOCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgcmVtb3ZlIG1lbS1sZWFrIGNvbW1lbnQuICBPdXQgb2YgZGF0ZSBhbmQgd2FzIGZpeGVkCiAgIAoyMDAyLTEyLTE4IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBkZWxldGUgZXhwZXJpbWVudGFsIHdhcm5pbmcgYWJvdXQgYWdlbnR4CiAgIAoyMDAyLTEyLTE4IDEzOjQwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBmaXggYnVnIzY1NTQ4ODogZGVzY3JpcHRpb25zIG9mIHNzSU9SYXdSZWNlaXZlZCBhbmQgc3NSYXdJbnRlcnJ1cHRzIHdlcmUgcmV2ZXJzZWQKICAgCjIwMDItMTItMTggMDg6MTkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHN0ZGVyciBsb2dnaW5nIG9uIEhVUCAoaWYgLUwgd2FzIGdpdmVuIG9uIGNvbW1hbmQgbGluZSkKICAgCjIwMDItMTItMTcgMTk6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgJzsnIGZyb20gZGVmaW5lOyBpZiB0YWJsZSBoYXMgYSBzdG9yYWdlIHR5cGUsIGNoZWNrIHRoYXQgaXQncyBub3QKICAgcmVhZCBvbmx5IGJlZm9yZSBhbGxvd2luZyBzZXRzCiAgIAoyMDAyLTEyLTE3IDE5OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgbmV2ZXIgbWluZAogICAKMjAwMi0xMi0xNyAxOTowMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERvbid0IGNoZWNrIGZvciBwcmVmaXhlcyBpbiB0ZXN0LiAgVGhleSBkb24ndCBleGlzdC4gIEhvd2V2ZXIsIGRvIHNldCBTTk1QQ09ORlBBVEggaW4gdGVzdCBpbml0aWFsaXphdGlvbiB0byBhIGJvZ3VzIHZhbHVlCiAgIAoyMDAyLTEyLTE3IDE4OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGlyZWN0IGNhbGwgdG8gaW5pdF9zbm1wKCkuICBUaGlzIGlzIGFscmVhZHkgY2FsbGVkIGJ5IHRoZSAucG0gZmlsZQogICAKMjAwMi0xMi0xNyAxMDoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIHBlcnNpc3RlbmNlIGZvciBhcnJheS10YWJsZXMKICAgCjIwMDItMTItMTcgMTA6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4OyBhZGQgQVNOX1RJTUVUSUNLUyB3L0FTTl9VTlNJR05FRCBjYXNlcwogICAKMjAwMi0xMi0xNyAwOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZG9uJ3QgdXNlIFNPX1JFVVNFX0FERFIgc28gYWdlbnQgcG9ydCBjYW4ndCBiZSBoaWphY2tlZAogICAKMjAwMi0xMi0xNyAwOTo0MyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSBsb2NhbCB2YXIgZm9yIGJhc2UgYWdlbnQgbGliczsgcmVvcmRlciBiYXNlIGFnZW50IGxpYnMgc28gc3RhdGljIGxpbmtpbmcKICAgd29ya3MKICAgCjIwMDItMTItMTYgMTg6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIFlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcgLi4uCiAgIAoyMDAyLTEyLTE2IDE3OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICByZW1vdmUgYm9ndXMgY29tbWVudCByZWZlcmVuY2UgdG8gdGFibGVfZGF0YXNldCBoZWxwZXIuCiAgIAoyMDAyLTEyLTE2IDE3OjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIGFwcHMvc25tcHRyYXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jCjoKCiAgIFNwcmVhZCBzb21lIG1hZ2ljIGR1c3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MgKHdoeSBpc24ndCAtLWVuYWJsZS1zbGllbnQtbGlidG9vbCB0aGUgZGVmYXVsdCAuLi4pCiAgIAoyMDAyLTEyLTE2IDExOjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsgKHBlZXJuYW1lIGlzIGNvcGllZCBieSBzbm1wX29wZW5fZXgpCiAgIAoyMDAyLTEyLTE2IDExOjMxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDExOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMTA6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlIChjYXVzZWQgcHJvYmxlbXMgb24gU3VuIDUuNywgcmVwb3J0ZWQgYnkgamJwbikKICAgCjIwMDItMTItMTYgMDg6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgdy9vdXQgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDA4OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBERVZGTEFHUz0iIiBpZiBub3QgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG9pZF9zdGFzaC5jLCBzY2FwaS5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jCiwgc25tcElQWERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQb3NzaWJsZSBsZWFrIG9mIGZkIG9uIGVycm9yIHJldHVybgogICAKMjAwMi0xMi0xNCAxMDoyMiAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUxICkKICAgCjIwMDItMTItMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC42IC0+IFY1LjAuN3ByZTEKCjIwMDItMTItMTQgMDk6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYWdlbnQvbWliZ3JvdXA7IGZpeCBtb2R1bGVzIGZvciBjb25maWdfZGlzdAogICAKMjAwMi0xMi0xNCAwOTo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwOTo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgcmV2IHRvIDUuMC43CiAgIAoyMDAyLTEyLTE0IDA5OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLW4gdG8gZ3JlcCBmb3IgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA5OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMTQgMDk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDk6MzAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50cyB0byBzb21lIHN0cnVjdHVyZSBtZW1iZXJzCiAgIAoyMDAyLTEyLTE0IDA5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZXJyb3JzIGR1cmluZyBjb21taXQgdW5kbyBzaG91bGQgYmUgeHhGQUlMRUQ7IHVzZSBzZXRfcmVxdWVzdF9lcnJvciBpbnN0ZWFkIG9mCiAgIHNldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudDsgbW9yZSBkZWJ1Z2dpbmc7IGNoZWNrIGZvcgogICBhbmQgY2FsbCBsb3dlciBoYW5kbGVycwogICAKMjAwMi0xMi0xNCAwOToyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsd2F5cyBwcm9jZXNzIGxhdGVyIHBhc3NlcyBvZiBhIHNldCByZXF1ZXN0CiAgIAoyMDAyLTEyLTEzIDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IGluY29tcGxldGUgemVyb2luZyBvZiBzZWN1cml0eSBkYXRhCiAgIAoyMDAyLTEyLTEzIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IGEgcG9zc2libGUgZnJlZWluZyBvZiBhIE5VTEwgcG9pbnRlcgogICAKMjAwMi0xMi0xMyAxNTozOCAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2xlYXIgdGhlICdwcm9jZXNzZWQnIGZsYWcgYmV0d2VlbiBwYXNzZXMsIHNvIHRoYXQgaGFuZGxlcnMKICAgY2FuIGNvcnJlY3RseSBjbGVhbiB1cCBhZnRlciBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLgogICAKMjAwMi0xMi0xMyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWRkIGFzc2VyIHRvIHRyeSBhbmQgY2F0aCBpbnRlcm1pdHRlbnQgY3Jhc2ggaSd2ZSBiZWVuIHNlZWluZwogICAKMjAwMi0xMi0xMyAxMTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGxvZyB1bmtub3duIGFnZW50eCBvcGVyYXRpb24KICAgCjIwMDItMTItMTMgMTA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZiBubyByb3cgY3JlYXRlIGNhbGxiYWNrIG9uIHNldCwgdXNlIE5PVFdSSVRBQkxFIGluc3RlYWQgb2YgTk9TVUNISU5TVEFOQ0UKICAgCjIwMDItMTItMTMgMTA6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBzbyBkZWxlZ2F0ZWQgZmxhZyBkaXNwbGF5ZWQgcHJvcGVybHkKICAgCjIwMDItMTItMTMgMTA6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGxvZyB0ZXh0IChBUFB8TElCfFRPSykgaW5zdGVhZCBvZiBzdG9yZSBpZCBpbiBkZWJ1ZyBtc2dzCiAgIAoyMDAyLTEyLTEzIDA5OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIC0td2l0aC1saWJ3cmFwCiAgIAoyMDAyLTEyLTEzIDA5OjQ5ICByc3RvcnkKCiAgICogRkFROgoKICAgZ3JhbW1hci9pbmRlbnRpb24gdHdlYWsgKyBtZW50aW9uIHN0cmlwIGZvciBtZW1vcnkgZm9vdHByaW50IHF1ZXN0aW9uCiAgIAoyMDAyLTEyLTEzIDA5OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgZXhwbGljaXQgbWVudGlvbiBvZiBTTk1QIG1vZHVsZSBkb2N1bWVudGF0aW9uLgogICBUaGlzIHNldHRpbmcgZG9lc24ndCBzZWVtIHRvIGJlIG5lY2Vzc2FyeSwgYW5kIHdpdGhvdXQgaXQsCiAgIHRoZSBtYW4gcGFnZSBpcyBpbnN0YWxsZWQgYXV0b21hdGljYWxseS4KICAgCjIwMDItMTItMTMgMDc6NDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIC1TIGRvIHRoZSBzYW1lIGFzIHNubXBkIC1TIChzZXQgdGhlIHN5c2xvZyBmYWNpbGl0eSkKICAgICAtIG1ha2UgLWwgcHJpbnQgYSB3YXJuaW5nIHNheWluZyB0aGF0IGl0IGlzIGRlcHJlY2F0ZWQgYW5kIC1TIHNob3VsZAogICAgICAgYmUgdXNlZCBpbnN0ZWFkCiAgIAoyMDAyLTEyLTEzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBpbmNyZWFzZSB3aWR0aCBvZiB0b2tlbiBmaWVsZCB0byBpbXByb3ZlIGxlZ2liaWxpdHkgb2YKICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGhlbHAgb3V0cHV0CiAgIAoyMDAyLTEyLTEyIDE3OjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmtub3duIC1PIG9wdGlvbnMKICAgCjIwMDItMTItMTIgMTU6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzb21lIHNpemVfdCB0aGF0IHJlYWxseSBzaG91bGQgYmUgaW50CiAgIAoyMDAyLTEyLTEyIDE0OjE4ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIEEgbG9uZyBvdmVyZHVlIHBhdGNoICgjNDE1MjUyKSBmcm9tIFJvYmVydCBIYXN0aW5ncyB0aGF0IGltcGxlbWVudHMKICAgcmV2ZXJzZSBESVNQTEFZLUhJTlQgcHJvY2Vzc2luZywgaS5lLiBpdCBhbGxvd3MgeW91IHRvIGlucHV0IGRhdGEKICAgZm9ybWF0dGVkIGxpa2UgdGhlIERJU1BMQVktSElOVCBwcmVzY3JpYmVzLiBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dAogICBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgLUloIG9wdGlvbiBvciBub0Rpc3BsYXlIaW50IGluIHNubXAuY29uZgogICAKMjAwMi0xMi0xMiAxMzo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcGFyc2Ugb2lkcyBpbiB2aWV3IHN0YXRlbWVudHMgdGhlIHNhbWUgd2F5IHRoZSBhcHBzIGRvIGl0IChjb25zaXN0ZW5jeSwgaGUgc2FpZCkKICAgCjIwMDItMTItMTIgMTM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBBZGQgYSBnZXRSb290T0lEIGZ1bmN0aW9uIHRvIHRoZSByZWdpbmZvIHBvaW50ZXIgcGFzc2VkIGludG8gaGFuZGxlcnMuCiAgIAoyMDAyLTEyLTEyIDEzOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY2hhbmdlIGNyZWF0ZSBhbmQgZHVwbGljYXRlIHJvdyB0byByZXR1cm4gc3BlY2lmaWMgY29udGV4dCBpbnN0ZWFkIG9mIGdlbmVyaWMKICAgbmV0c25tcF9pbmRleDsgY2F0Y2ggZXJyb3IgZnJvbSBwYXJzZV9vaWRfaW5kZXhlcyBvbiByb3cgY3JlYXRpb24KICAgCjIwMDItMTItMTIgMTM6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgUHJpbnQgZXJyb3JzIHRvIFNUREVSUiBpbnN0ZWFkLgogICAgIChhY3R1YWxseSBkb24ndCBiZWNhdXNlIHRoZXNlIHN0YXRlbWVudHMgYXJlIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgZmlyc3QgcGxhY2UpCiAgIAoyMDAyLTEyLTEyIDEzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmV2ZXJzZSB0aGUgY29udGV4dCBvZiBhIGNvbnRleHQgaWYgc3RhdGVtZW50IHNvIGlmIG5vdCB0aGUgY29udGV4dAogICB0aGVuIGRvbid0IHVzZSB0aGUgY29udGV4dCBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KICAgCjIwMDItMTItMTIgMTI6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIGxvbmctZGVwcmVjYXRlZCAtcSBhbmQgLVMgb3B0aW9ucwogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0xMi0xMiAxMjozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIG1lc3NhZ2UgaW4gdXNhZ2UKICAgCjIwMDItMTItMTIgMTE6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC4xLmRlZiwgYWdlbnQvc25tcGQuYzoKCiAgIEltcGxlbWVudCBhIGNvbW1hbmQtbGluZSBvcHRpb24gKC1TKSB0byBzZXQgdGhlIGZhY2lsaXR5IHRvIHVzZSB3aGVuCiAgIGxvZ2dpbmcgdmlhIHN5c2xvZy4gICBCYXNlZCBvbiBhbiBpZGVhIGJ5IEpvZWwgUm9zZGFobCAoUGF0Y2ggIzYyNzcwMSkKICAgTm90ZSB0aGF0IC1sIGFuZCAtTCBhcmUgYWxyZWFkeSB0YWtlbjotKAogICAKICAgVG9EbzoKICAgICBQcm92aWRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3IgYm90aCB0aGlzLCBhbmQgdGhlIHN5c2xvZyB0b2tlbiAoJ3NubXBkJykuCiAgIAoyMDAyLTEyLTEyIDExOjE4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIFN1cHBvcnQgc2V0dGluZyBvZiBzeXNEZXNjciBhbmQgc3lzT2JqZWN0SUQgdmlhIHNubXBkLmNvbmYKICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzICh0aG91Z2ggbm90IHZpYSBTTk1QIFNFVCByZXFlc3RzKS4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc3MDIgYW5kICM2MjgwMTEpCiAgIAoyMDAyLTEyLTEyIDEwOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgdGFibGUuYzoKCiAgIFN1cHByZXNzIHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zICgjNjQ0MDQxKQogICAKMjAwMi0xMi0xMiAxMDo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIFVzZSAnc3lzY29uZicgdG8gcmVwb3J0IG9uIFNvbGFyaXMgbWVtb3J5IHVzYWdlLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCZW4gU3Rlcm4gKCM2NTExODIpCiAgIAoyMDAyLTEyLTEyIDEwOjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCYXNpYyBzdXBwb3J0IGZvciBtdWx0aXBsZSBBZ2VudFggc29ja2V0cyAob24gdGhlIG1hc3RlciBzaWRlIGF0IGxlYXN0KS4KICAgU2VlIEZlYXR1cmUgUmVxdWVzdCAjNjMyNTU2CiAgIAoyMDAyLTEyLTEyIDA4OjU3ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGNyZWF0ZSB2ZXJzaW9uIHRhZyBmcm9tIHZlcnNpb24gc28gY3ZzIGV4cG9ydCB3b3JrczsgZml4IFJFTDsgYWRkIHRhci5negogICBvZiBzb3VyY2UgYXMgZGVwZW5kZW5jeSBmb3IgcnBtZmlsZXMKICAgCjIwMDItMTItMTIgMDg6MDQgIG5iYQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfZW51bS5jLCBzbm1wX3NlY21vZC5jLCBzbm1wX3RyYW5zcG9ydC5jCjoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xMiAwNzoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvY3VtZW50IHRoZSAtT1Ugb3B0aW9uLCBhbmQgYWxwaGFiZXRpc2UgdGhlIGhhbmRsaW5nIG9mIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEyIDA2OjI1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCAnc25tcGluZm9ybScgYXMgYSByZWxhdGl2ZSBsaW5rLCByYXRoZXIgdGhhbiBhbiBhYnNvbHV0ZSBvbmUuCiAgIEZpeCBwcm92aWRlZCBieSB0aGUgaW5kZWZhdGlnYWJsZSBTdGVmYW4gUmFkbWFuIChCdWcgIzY1MjU4NykKICAgCjIwMDItMTItMTIgMDU6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVvdGUgY29uZmlndXJlIG9wdGlvbnMgd2hlbiBjb250cnVjdGluZyBuZXQtc25tcC1jb25maWd1cmUgYW5kIG5ldC1zbm1wLWNvbmZpZ3VyZS5oCiAgIFRoaXMgYWxsb3dzIG9wdGlvbnMgY29udGFpbmluZyBzcGFjZXMsIGV0YywgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkuCiAgIChTZWUgRmVhdHVyZSBSZXF1ZXN0ICM1NDcxNTIpCiAgIAoyMDAyLTEyLTExIDE2OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBQYXRjaCBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvIEp1biBLdXJpeWFtYQogICAKMjAwMi0xMi0xMSAxMjoxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0yLXBhdGNoZXMuNCksIHNubXBfbG9nZ2luZy5jOgoKICAgVHJ5IGRpc2FibGluZyBsaW5lLWJ1ZmZlcmluZyBvbiBXaW5kb3dzIHN5c3RlbXMgKHNpbmNlIGl0CiAgIGFwcGFyZW50bHkgZW5hYmxlcyBmdWxsLWJ1ZmZlcmluZyBpbnN0ZWFkKS4gIFNlZSBCdWcgIzU1ODgzNy4KICAgCjIwMDItMTItMTEgMTE6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgZ2V0LnQsIGdldG5leHQudCwKICAgbm90aWZ5LnQsIHNldC50OgoKICAgRXhwbGljaXRseSBzZXQgU05NUCB2ZXJzaW9uID0gMSAodGhlIG9yaWdpbmFsIGRlZmF1bHQgYXMgZXhwZWN0ZWQgYnkgdGhlIHRlc3RzKQogICBUaGlzIHNob3VsZCBub3cgcGFzcyBhbGwgdGVzdHMgYXBhcnQgZnJvbSBjb25mLnQgIzMKICAgCjIwMDItMTItMTEgMDY6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgQmUgbW9yZSBzZWxlY3RpdmUgaW4gdXNpbmcgdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIG5saXN0LiAoQnVnICM2MTE2NTUpCiAgIAoyMDAyLTEyLTExIDA2OjI3ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIG5vbi1mdW5jdGlvbmFsaXR5IG9mIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoZXMuCiAgIChCdWcgIzYxNzExOSkuICAgUmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudAogICAKMjAwMi0xMi0xMSAwNjoyMCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyB0aGUKICAgZW1iZWRkZWQgcGVybCBzY3JpcHQuICAoQnVnICM2MTc4OTEpIEZpeCBwcm92aWRlZCBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMi0xMi0xMSAwNTo1NiAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoVjQtMi1wYXRjaGVzLjQpLCBSRUFETUUuc25tcHYzOgoKICAgRG9jdW1lbnQgdGhlIGxvY2F0aW9uIGFzc3VtcHRpb25zIGJlaW5nIG1hZGUgaW4gdGhpcyBkZXNjcmlwdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBmb3JjaW5nIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGluIGVpdGhlcgogICBBU0NJSSBvciBIZXggZm9ybWF0LCBieXBhc3NpbmcgdGhlICJndWVzcyIgbWVjaGFuaXNtIGFzIHRvIHdoaWNoCiAgIGlzIG1vcmUgYXBwcm9wcmlhdGUuICAgU3VnZ2VzdGVkIGJ5IE5pY2sgS2FuYWtha29ybi4KICAgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3Qgb2JqZWN0cyB3aXRoIGEgRGlzcGxheS1IaW50IGluCiAgIHRoZWlyIE1JQiBkZWZpbml0aW9uLgogICAKMjAwMi0xMi0xMSAwNDozMCAgZHRzMTIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoCiAgIChWNC0yLXBhdGNoZXMuWzIsMjYsNl0pLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENvbW1hbmQtbGluZSBvcHRpb24gdG8gY29udHJvbCB3aGV0aGVyIHRvIHVubGluayB0aGUgUElEIGZpbGUgb3Igbm90LgogICBOZWNlc3NhcnkgZm9yIGNvcnJlY3QgdGVzdCBvcGVyYXRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjIxICBkdHMxMgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgVGhlIGxhdGVzdCBsaWJyYXJ5IGRlZmF1bHRzIHRvIE1PRFVMRTo6bmFtZSBzdHlsZSBvdXRwdXQsCiAgIHNvIGFkanVzdCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGNoZWNrcyBhY2NvcmRpbmdseS4KICAgQWxzbywgdGhlcmUgYXJlIGFjdHVhbGx5IDM2IHRlc3RzLCBub3QgMzUhCiAgIAoyMDAyLTEyLTExIDA0OjE3ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBJbml0aWFsaXNlIHRoZSBTTk1QIGxpYnJhcmllcywgdG8gc2V0IHVwIHRoZSBPSUQgdHJlZS4KICAgQWRkcmVzc2VzIGJ1Z3MgIzYzODAyNCBhbmQgIzYyNzY0MwogICAgIFtRbjogRG8gd2UgbmVlZCB0byBzdXBwbHkgYW4gJ2FwcG5hbWUnIChjLmQgdGhlIFNOTVAgbW9kdWxlKSA/XQogICAKMjAwMi0xMi0xMCAxOToyOSAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgQWxsb3cgcnVudGltZSBjb25maWd1cmF0aW9uIG9mIHBlcnNpc3RlbnQgZGlyZWN0b3J5CiAgIAoyMDAyLTEyLTEwIDE5OjI0ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVwb3J0IGVycm9ycyBoYW5kbGluZyBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMKICAgCjIwMDItMTItMTAgMTk6MjMgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGFzcyB1cCBlcnJvciBvbiBkaXJlY3RvcnkgY3JlYXRpb24KICAgCjIwMDItMTItMTAgMTc6MjcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQmV0dGVyIHJlc3BlY3QgZm9yIHRoZSBtYXggd2lkdGggb3B0aW9uIChzbm1wdHJhbnNsYXRlIC1UZCkKICAgCjIwMDItMTItMTAgMTc6MjYgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG9pZE91dHB1dEZvcm1hdCBvcHRpb24KICAgCjIwMDItMTItMTAgMTc6MjUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ2xlYW4gdXAuIFJlbW92ZSBjYWxscyB0byBvYnNvbGV0ZSBmdW5jdGlvbnMgc25tcF9zZXRfcXVpY2tfcHJpbnQsCiAgIHNubXBfZ2V0X2R1bXBfcGFja2V0LCBzbm1wX2dldF9zdWZmaXhfb25seS4gUmVtb3ZlIGxhc3QgdHJhY2VzIG9mIHRoZQogICBub25fc2VxdWVudGlhbCBiYWNrd2FyZHMgaGFjay4gTWFrZSBzdXJlIGl0IHdvcmtzIGZvciBhbGwgLU8gb3B0aW9ucy4KICAgCjIwMDItMTItMTAgMTE6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMjYpLAogICBpbnRlcmZhY2VzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZW1wdHkgbGluZXMgaW4gL3Byb2MvbmV0L2RldiAgKEJ1ZyAjNjI1NDI2KQogICAKMjAwMi0xMi0xMCAxMTo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuNSksIHNubXB2My5jOgoKICAgRnJlZSBkZXN0aW5hdGlvbiBtZW1vcnkgYmVmb3JlIGNsb25pbmcgU05NUCBFbmdpbmUgSUQuCiAgIEZpeCBwcm92aWRlZCBieSBNYXJ0aW4gQ2FybHNzb24uICAoQnVnICM4MzU0ODEpCiAgIAoyMDAyLTEyLTEwIDExOjA3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIEFkZCAiJENvbmZpZ3tjY2ZsYWdzfSIgdG8gQ0NGTEFHUy4gICAoU2VlIGJ1ZyAjNjQwODk5KQogICAKMjAwMi0xMi0xMCAxMDo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjQtMi1wYXRjaGVzLjgpLCBpcEFkZHIuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBMaW51eCB2aXJ0dWFsIGludGVyZmFjZXMgaW4gdGhlIGlwQWRkcmVzc1RhYmxlLgogICAoTm90ZSB0aGlzIGRvZXMgKm5vdCogaW5jbHVkZSBzZXBhcmF0ZSBwZXItdi1pbnRlcmZhY2Ugc3RhdGlzdGljcwogICAgaW4gdGhlIGludGVyZmFjZXMgdGFibGUpLgogICAKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSmVucyBTaXR0bmVyICgjNjIxMjc0KQogICAKMjAwMi0xMi0xMCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgXk0gY2hhcmFjdGVycy4KICAgCjIwMDItMTItMTAgMDI6MzYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hlbiB1c2luZyAtT3F2IGFuZCBwcmludGluZyBhbiBlbXB0eSBzdHJpbmcgeW91IGNvdWxkIGVuZCB1cCB3aXRoCiAgIGEgTlVMTCBzdHJpbmcgYW5kIG5vdCBhbiBlbXB0eSBzdHJpbmcgbGVhZGluZyB0byBzb21lIHZlcnkgb2JzY3VyZQogICBwcm9ibGVtcyBpbiBzbm1wdGFibGUgYW5kIG90aGVyIGFwcGxpY2F0aW9ucy4KICAgCjIwMDItMTItMDkgMTE6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIGludGVnZXIgdmFsdWVzICh3aGV0aGVyIDMyLSBvciA2NC1iaXQhKS4gICBPb3BzIQogICAKMjAwMi0xMi0wOSAxMDoxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy4zOCksIHNubXBfYXBpLmM6CgogICBIYW5kbGUgaW50ZWdlci1iYXNlZCB2YWx1ZXMgY29ycmVjdGx5IG9uIGEgNjQtYml0IHBsYXRmb3JtLgogICBQYXRjaCBzdXBwbGllZCBieSBUaG9tYXMgV2ViZXIgKCM1NjEwNzEpCiAgIAoyMDAyLTEyLTA5IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBUYWtlIG5vdGUgb2Ygc3ViYWdlbnQtcmVxdWVzdGVkIGJ5dGUgb3JkZXJpbmcgaW4gc3Vic2VxdWVudCBjb21tdW5pY2F0aW9ucy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVXJiYW4gKCM2MzIyODQpCiAgIAoyMDAyLTEyLTA5IDA5OjMyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yNSksIHNubXBkLmM6CgogICBSZW1vdmUgdGhlIFBJRCBmaWxlIG9uIGFnZW50IHNodXRkb3duLgogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTkpCiAgIAoyMDAyLTEyLTA5IDA5OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSGFuZGxlICdzdHJ1Y3Qgc29ja2FkZHInIHRoYXQgY29udGFpbiAnc2FfbGVuJyBmaWVsZHMgZGlmZmVyZW50bHkKICAgdG8gdGhvc2UgdGhhdCBkb24ndCAoYy5mIGlmaWx0ZXJfaW9jdGwuYyBpbiBCSU5EIDkuMi4xIHNvdXJjZXMpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5NikKICAgCjIwMDItMTItMDkgMDc6MTIgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVjb2duaXNlIEJTRGk0LCBhbmQgdHdlYWsgdGhlIHJlY29nbml0aW9uIG9mICdkbG9wZW4nLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobC4KICAgCjIwMDItMTItMDkgMDY6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCjoKCiAgIFJlbW92ZSBzb21lIHdhcm5pbmdzLCBhbmQgdHJ5IHRvIGNvcGUgd2l0aCAnc3lzY3RsJyBmYWlsdXJlcy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBDaHJpcyBKb2hucy4KICAgCjIwMDItMTItMDkgMDQ6MjAgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbGltaXRhdGlvbnMgb24gL3Vzci91Y2Ivc2VkLAogICBhbmQgcG9pbnQgcGVvcGxlIHRvd2FyZHMgL3Vzci9iaW4vc2VkIGluc3RlYWQuCiAgIAoyMDAyLTEyLTA3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEluc2VydCBuZXdseS1jcmVhdGVkIHJvd3MgaW50byB0aGUgcGVyLXJlcXVlc3QgbGlzdHMsIHNvIHRoYXQgbG93ZXIKICAgbGV2ZWwgaGFuZGxlcnMgY2FuIGFjY2VzcyB0aGVtLgogICAgIFtRbjogU2hvdWxkIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggdXBkYXRlZCBsaXN0cyBhcyB3ZWxsP10KICAgCjIwMDItMTItMDcgMDg6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVwb3J0IGJhY2sgdGhlIGNvcnJlY3QgZXJyb3IgZm9yIHJvd3MgdGhhdCBjb3VsZG4ndCBiZSBjcmVhdGVkLgogICAKMjAwMi0xMi0wNyAwODozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhIHJvdyB0aGF0IG5ldmVyIGdvdCBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KICAgCjIwMDItMTItMDYgMTg6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIFNraXAgb24gbm9uLW9wZW5zc2wgbWFjaGluZXMuICBUSGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGp1c3Qgbm90IHVzaW5nIGVuY3J5cHRpb24gb24gdGhvc2UgbWFjaGluZXMsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSB0aW1lIGF0IHRoZSBtb21lbnQKICAgCjIwMDItMTItMDYgMTM6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMzowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEyOjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IGRlbGV0ZSB0aGUgIm9sZCIgKG5vbi1leGlzdGVudCkgcm93LCB3aGVuIHRpZHlpbmcgdXAgYWZ0ZXIKICAgY3JlYXRpbmcgYSBuZXcgcm93LgogICAKMjAwMi0xMi0wNiAxMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBUd2VhayBoYW5kbGluZyBvZiAoaW52YWxpZCkgUm93U3RhdHVzIGNyZWF0aW9uIHJlcXVlc3RzIGluIGFuCiAgICJhdXRvbWF0aWMgY3JlYXRpb24iIHRhYmxlLiAgIFRoZXNlIHNob3VsZCByZXR1cm4gd3JvbmdWYWx1ZSBvcgogICBpbmNvbnNpc3RlbnRWYWx1ZSwgcmF0aGVyIHRoYW4gbm90V3JpdGFibGUuCiAgIAoyMDAyLTEyLTA1IDA1OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN1cHBvcnQgdXNlIG9mIFJvd1N0YXR1cyBvYmplY3QgdG8gY29udHJvbCBjcmVhdGlvbiBvZiBuZXcgcm93cwogICAoaS5lLiB3aGVuIHRoZSAnYWxsb3dfY3JlYXRpb24nIGZsYWcgaXMgbm90IHNldCkuCiAgIFRoaXMgc2hvdWxkIGRlYWwgd2l0aCBldmVyeXRoaW5nIGV4Y2VwdCBkZXRlcm1pbmluZyB3aGV0aGVyIGEKICAgcm93IGlzIHJlYWR5IHRvIGdvICdhY3RpdmUnIChlLmcuIHZpYSAnY3JlYXRlQW5kR28nKS4gIFN1Y2ggYQogICBkZWNpc2lvbiBpcyBpbmhlcmVudGx5IHNwZWNpZmljIHRvIGVhY2ggaW5kaXZpZHVhbCBNSUIsIHNvIG11c3QKICAgcmVhbGx5IGJlIGRvbmUgaW4gdGhlIGxvd2VyLWxldmVsIGhhbmRsZXIuCiAgIAoyMDAyLTEyLTA1IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN0b3AgcHJvY2Vzc2luZyB3aGVuIGEgJ25vbi13cml0YWJsZSBjcmVhdGUnIGlzIGRldGVjdGVkLgogICAKMjAwMi0xMi0wNCAxOTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIC0gcnVuIGV2ZW50VGFibGUgZW50cmllcy4KICAgCjIwMDItMTItMDQgMTk6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYzoKCiAgIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgCjIwMDItMTItMDQgMTk6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmM6CgogICB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgdG8gZ2V0IHJlYWwgc3RyaW5ncyBmcm9tIG1pYiBkYXRhLgogICAKMjAwMi0xMi0wNCAxOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiwgbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmg6CgogICAtIGltcGxlbWVudGVkIHRoZSBtdGVFdmVudFRhYmxlIGFuZCB0aGUgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZQogICAgIC0gRllJLCB0b3RhbCBpbXBsZW1lbnRhdGlvbiB0aW1lOiBhYm91dCA0IGhvdXJzCiAgICAgLSBubyBlYXN5LXRvLXVzZSAuY29uZiB3cmFwcGVycyB5ZXQgdGhvdWdoLiAgc25tcHNldCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAyLTEyLTA0IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgLSB1c2UgdGhlIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uIHdoaWNoIGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0xMi0wNCAxOToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBjcmVhdGUgYSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbi4KICAgLSBBbGxvdyByb3cgY3JlYXRpb24gdXNpbmcgcm93U3RhdHVzIHdoZW4gdGhlIGRhdGEgY29sdW1uIGV4aXN0cywgYnV0CiAgICAgdGhlcmUgaXMgbm8gYXNzaWduZWQgdmFsdWUgKGllLCBpcyBOVUxMKS4KICAgLSB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgaW5zdGVhZCBvZiBtZW1kdXAgdG8gbWFrZSBzdXJlIGFuCiAgICAgaW1wbGljaXQgTlVMTCBpcyBpbiBwbGFjZSBmb3IgdGhpbmdzIHRoYXQgdXNlIHRoZSBkYXRhIGFuZCBuZWVkIGl0CiAgICAgYXMgYSByZWFsIHN0cmluZy4KICAgCjIwMDItMTItMDQgMTk6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGRvY3VtZW50IC0tcHJlZml4CiAgIAoyMDAyLTEyLTA0IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBORVdTIChWNC0yLXBhdGNoZXMuOSksIE5FV1M6CgogICBkb2N1bWVudCA0LjIuNgogICAKMjAwMi0xMi0wMyAwNDo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgQ2xvc2UgcHJpbnRlciBmaWxlIGhhbmRsZSB3aXRoICdmY2xvc2UnIHJhdGhlciB0aGFuICdwY2xvc2UnIHRvIGF2b2lkCiAgIGEgbWVtb3J5IGxlYWsgb24gU29sYXJpcyAyLjYuICAgRml4IHByb3ZpZGVkIGJ5IEphY29ibyBNYXR1dGUuCiAgIAoyMDAyLTEyLTAzIDA0OjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBUcmFuc2xhdGUgR2V0TmV4dCAoYW5kIEdldEJ1bGspIHJlcXVlc3RzIGludG8gc2ltcGxlIEdldCByZXF1ZXN0cywKICAgd2hlbiBwYXNzaW5nIHRoZW0gZnJvbSB0aGUgdGFibGVfZGF0YSBoYW5kbGVyIHRvIHRhYmxlX2RhdGFzZXQuCiAgICAgVGhpcyBpcyBhbmFsb2dvdXMgdG8gaG93IHRoZSBpdGVyYXRlIGhhbmRsZXIgd29ya3MsIGFuZCBhbGxvd3MKICAgbG93ZXIgbGV2ZWwgaGFuZGxlcnMgdG8gb3ZlcnJpZGUgdGhlIGJhc2ljIGJlaGF2aW91ciAod2l0aG91dAogICBoYXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgImZpbmQgbmV4dCByb3ciIGNvZGUgZXZlcnkgdGltZSkuCiAgIAoyMDAyLTEyLTAyIDA0OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXR1cm4gU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuIHRoZSBTTk1QdjEgJ25vU3VjaE5hbWUnIGVycm9yLgogICBUaGlzIHVzZWQgdG8gYnJlYWsgQWdlbnRYIHN1YmFnZW50cywgYnV0IHRoZSBsYXRlc3QgY2hhbmdlIHRvIHNubXBfYWdlbnQuYwogICAodG8gY2F0Y2ggbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucykgc2VlbXMgdG8gaGF2ZSBmaXhlZCB0aGF0IHByb2JsZW0uCiAgIAoyMDAyLTEyLTAyIDA0OjQwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBsaWNpdGx5IHBhcmVudGhlc2lzZSBhIGNvbXBhcmlzb24sIHRvIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LgogICAKMjAwMi0xMi0wMiAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVzaXZlLXJhbmdlIEdldE5leHQgcmVxdWVzdHMgYXJlIHRyYW5zbWl0dGVkIGFzIEdldCByZXF1ZXN0cywgc28gbWF5CiAgIHdlbGwgcmV0dXJuIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMuICBDYXRjaCB0aGVzZSBhcyB3ZWxsLgogICAKMjAwMi0xMi0wMiAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDYXRjaCAoYW5kIHJlamVjdCkgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbmV3IHJvdyB2aWEgYSBub24td3JpdGFibGUgb2JqZWN0LgogICAKMjAwMi0xMS0yOCAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTnVsbCBvdXQgb25lIGZpbmFsIGxvb3BfY29udGV4dCBwb2ludGVyIGFmdGVyIGJlaW5nIGZyZWVkLgogICAoUGF0Y2ggcHJvdmlkZWQgYnkgUm9nZXIgTWNDYWxtYW4pCiAgIAoyMDAyLTExLTI2IDE3OjU5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRGlzY2FyZCB0aGUgc2Vjb25kYXJ5IChHUk9VUCkgREVTQ1JJUFRJT04gaW5zaXplIGEgTU9EVUxFLUNPTVBMSUFOQ0UKICAgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuIFRoYW5rcyB0byBFdWdlbmVfQnJ1a0BibWMuY29tCiAgIAoyMDAyLTExLTI2IDE3OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZWluc3RhdGUgdGhlIC13IG9wdGlvbnMgdGhhdCB3YXMgbG9zdCBpbiB0aGUgaW5kZW50IGZ1cnkKICAgCjIwMDItMTEtMjYgMTA6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgVGhlIG5vdGlmaWNhdGlvbiB2YXJpYWJsZSBzaG91bGRuJ3QgYmUgc3RhdGljLiAgQSBidWcgZm91bmQgd2hpbGUKICAgdHJhY2tpbmcgZG93biBhIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgVmVuaWNlIG9uIElSQy4KICAgCjIwMDItMTEtMjYgMDQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggaW5jb3JyZWN0IHVzYWdlIG9mIFNFX01BWF9JRFMgdnMgU0VfTUFYX1NVQklEUy4KICAgUmVwb3J0ZWQgYnkgJ3NoaW5lcGVhaycKICAgCjIwMDItMTEtMjUgMjI6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgaGFjayBvZiBhIGhhY2sgb2YgYSBoYWNrLCBvcjogZml4IG11bHRpLWxpbmUgRkFRIHF1ZXN0aW9ucwogICAKMjAwMi0xMS0yNSAxMDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAyLTExLTE4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIGFwcGxpZWQgcGF0Y2ggIzUyNzY1MAogICAKMjAwMi0xMS0xMSAxNzoxMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXNwZWN0IHRoZSBtaWJkaXJzIGNvbmYgZGlyZWN0aXZlLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMTEgMTY6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBhIG1pc3NpbmcgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTExIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBmaXggdGFkZHIgZ2VuZXJhdGlvbi9wYXJzaW5nIGZvciBwb3J0IGJhc2VkIHRyYW5zcG9ydHMgdG8gcHJvcGVybHkgdXNlCiAgIG5ldHdvcmsgYnl0ZSBvcmRlcmluZy4KICAgCjIwMDItMTEtMTEgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBmaXggd3JpdGUgc3VwcG9ydCBmb3IgdGhlIHRpbWVvdXQgY29sdW1uCiAgIAoyMDAyLTExLTA5IDEwOjA2ICBuYmEKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIERvIGF3YXkgd2l0aCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTExLTA5IDA5OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywgaG9zdC9ocl9wcmludC5jCjoKCiAgIFplcm8gaXMgYW4gT0sgZmlsZSBkZXNjcmlwdG9yLiAtMSBpcyB0aGUgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTA5IDA5OjU0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1vcmUgdG8gdGhlIHBvaW50IG1lc3NhZ2UgZm9yIHVuZGVmaW5lZCBpZGVudGlmaWVycy4gQnJvdWdodCBmb3J3YXJkIGZyb20gNC4yCiAgIAoyMDAyLTExLTA5IDA5OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgUHJpbnQgdGhlIGVycm9yIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgCjIwMDItMTEtMDkgMDk6NTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdjIgZXhjZXB0aW9uIHJlc3VsdHMKICAgCjIwMDItMTEtMDkgMDk6NDkgIG5iYQoKICAgKiBzZWRzY3JpcHQuaW4sIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdGVjdCBQUkVGSVggd2hlbiBpdCBpcyB0aGUgZW52IHZhci4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTA5IDA5OjQ3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIFJGQyAzMzcxIEwyVFAtTUlCCiAgIAoyMDAyLTExLTA5IDA5OjQ2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIGZyb20gSUFOQQogICAKMjAwMi0xMS0wNyAwNTo1NSAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCAtQ2YgYW5kIC1DdyBvcHRpb24gcHJvY2Vzc2luZyAocHJldmlvdXNseSB3b3VsZCBjb3JlIGR1bXAgaWYKICAgICAgIG5vIG9wdGlvbiBwYXNzZWQpLCBhcyBwb2ludGVkIG91dCBieSBoYW1wYSBvbiAjbmV0LXNubXAKICAgCjIwMDItMTEtMDYgMTU6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggY3V0L3Bhc3RlCiAgIAoyMDAyLTExLTA2IDE1OjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbiAmIG1ha2VmaWxlcwogICAKMjAwMi0xMS0wNiAxNDowOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBtaXNzaW5nIGVuZCBxdW90ZQogICAKMjAwMi0xMS0wNiAxMzozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBAREVWRkxBR1NAIHdlaGVydmVyIHRoZXJlIGlzIGEgQENGTEFHU0AsIGV4Y2VwdCBmb3IgdGhlIG5ldyAtLWJhc2UtY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEzOjIyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYWRkIEBERVZGTEFHU0AgdG8gQ0ZMQUdTCiAgIAoyMDAyLTExLTA2IDEzOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgc2VwZXJhdGUgZGV2ZWxvcGVyIGNmbGFncyBmcm9tIG5vcm1hbCBjZmxhZ3MKICAgCjIwMDItMTEtMDYgMTI6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBjaGFuZ2Ugc3RydWN0LmggaW5jbHVkZSB0byB1c2UgIiIgaW5zdGVhZCBvZiA8bmV0LXNubXAvPiwgc2luY2UgaXQgaXQgYSBsb2NhbAogICBpbmNsdWRlLCBub3QgYSBzeXN0ZW0gaW5jbHVkZQogICAKMjAwMi0xMS0wNiAxMjozOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcHVyZ2UgSU5fVUNEX1NOTVBfU09VUkNFCiAgIAoyMDAyLTExLTA1IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGFkZGVkIGEgeG1sc2hvcnQgZGVsaW1pdGVyIGFzIHJlcXVlc3RlZCBieSBsYW5kcyBvbiBJUkMKICAgCjIwMDItMTEtMDUgMTE6NTkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdGFicyAtPiBzcGFjZXMgb25seSB0cnkgdG8gY2htb2QgUk8gc3JjIGRpciBpZiBvd25lciBvZiBkaXJzCiAgIAoyMDAyLTExLTA1IDExOjU2ICByc3RvcnkKCiAgICogbWtpbnN0YWxsZGlyczoKCiAgIG1ha2luZyBhIGRpcmVjdG9yeSBpcyBub3QgYW4gZXJyb3IsIHNvIGRvbid0IHNlbmQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMi0xMS0wNCAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgYWxsb3cgdW5yZWdpc3RlcmVkIHNlY3VyaXR5IG1vZGVscyA8PSAyCiAgIAoyMDAyLTExLTA0IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIHRvIGJlIGJldHRlciBzdXBwb3J0ZWQgKHJvd3N0YXR1cyBubyBsb25nZXIgaGFzIHRvCiAgIGJlIGZpcnN0IGluIHRoZSBsaXN0LCAuLi4pCiAgIAoyMDAyLTExLTA0IDExOjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY3BwZmxhZ3MgdG8gLS1jZmxhZ3MKICAgCjIwMDItMTEtMDQgMTE6MTMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGQgc3R1ZmYgZm9yIDUuMC43IChvciB3aGF0ZXZlcikgbWVudGlvbmluZyBhIGZldyBuZXcgZmVhdHVyZXMuCiAgIAoyMDAyLTExLTAxIDEyOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBidWcgIzYzMjA5NCB1c2luZyB0aGUgc3VnZ2VzdGVkIG1ldGhvZDogd2F0Y2ggZm9yIE5VTEwgc3RyZXJyb3IoKSByZXR1cm4KICAgCjIwMDItMTEtMDEgMTA6MDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVuZG8gbXkgY2hhbmdlcyBmcm9tIHIgNS4xNywgYXR0ZW1wdGluZyB0byByZWR1Y2UgcnVucyBvZiBjb25maWcuc3RhdHVzCiAgIGJ5IHVzaW5nIGV4cGxpY2l0IHBhdGhzIHRvIHNyY2RpciwgYW5kIGxldCBWUEFUSCBkbyBpdCdzIHRoaW5nCiAgIAoyMDAyLTEwLTI5IDE0OjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHRhcmdldCB0byBidWlsZCBiaW5hcnkgYXJyYXkgdGVzdCBhcHA7IHR3ZWFrIHRvIHBhcnNlIHRlc3QgdGFyZ2V0IChyZWR1Y2VzIG1vc3QKICAgYnV0IG5vdCBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcykKICAgCjIwMDItMTAtMjkgMTQ6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBmb3IgYmluYXJ5IHNlYXJjaCBwcm9ibGVtIG5vdGVkIGJ5IFJvbXkgQ2hyaXN0ZW5zZW4gb24gY29kZXJzOyBwYXJ0aWFsCiAgIChpZmRlZidkIG91dCkgY29kZSBmb3IgYSBiaW5hcnkgYXJyYXkgaXRlcmF0b3IKICAgCjIwMDItMTAtMjkgMTQ6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBzaW1wbGUgdGVzdCBwcm9ncmFtIGZvciBiaW5hcnkgYXJyYXkKICAgCjIwMDItMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGRlYnVnZ2luZyBhcyBub3RlZCBpbiBidWcgIzYzMDM0OAogICAKMjAwMi0xMC0yOCAxOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIC4xLjYuMyB0byAxLjMuNiBhcyBub3RlZCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIAoyMDAyLTEwLTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2VkIHBhc3N3b3JkCiAgIAoyMDAyLTEwLTI4IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBtaXNjIHZhY20gZml4ZXMKICAgCjIwMDItMTAtMjggMDg6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBlcnJvbmVvdXMgZnJlZSgpIG9mIHJ4YnVmCiAgIAoyMDAyLTEwLTI1IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXhlZCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgLT4gTkVUU05NUF9PUF9DQUxMQkFDS19ESVNDT05ORUNUIGFzIG5vdGVkIGJ5IFRyb2dMIG9uIElSQwogICAKMjAwMi0xMC0yNSAwNzozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0eXBlIGNhbGxiYWNrIGlmIHdlCiAgICAgICBkZWNpZGUgdG8gc2h1dGRvd24gYSBzdHJlYW0gdHlwZSBjb25uZWN0aW9uIGJlY2F1c2Ugd2UgcmVjZWl2ZWQKICAgICAgIGFuIGV4Y2Vzc2l2ZWx5IGxhcmdlIHBhY2tldC4KICAgCjIwMDItMTAtMjQgMTA6NDEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBzdXBlci1idWctcGF0Y2ggZ2VuZXJhdG9yIFN0ZWZhbiBSYWRtYW4gdG8gdGhlIFRIQU5LUyBsaXN0CiAgIAoyMDAyLTEwLTI0IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBidWcgIzYxNzUwODogYWRkZWQgdGhlIG10YV9zZW5kbWFpbCBtb2R1bGUgdG8gLS1oZWxwCiAgIAoyMDAyLTEwLTI0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBpbnN0YWxsIGxpc3QgZm9yIG1pYjJjIGNvbmYgZmlsZXMgYW5kIHJlbW92ZSBvbGQgb25lCiAgIAoyMDAyLTEwLTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpbmNvcnJlY3QgdmFyaWFibGUgbmFtZSBJIG5vdGljZWQgd2hlbiBjb3B5aW5nIHRvIGEgZGlmZmVyZW50IGNvbmZpZ3VyZSBzY3JpcHQgaW4gYW5vdGhlciBwYWNrYWdlCiAgIAoyMDAyLTEwLTIzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeGVkIGJ1ZyM2MTc4Mzg6IHZlcnNpb250YWcgaXNuJ3QgZGlzdHJpYnV0ZWQgYW5kIHNob3VsZG4ndCBiZSBhbHdheXMKICAgdXNlZCBpbiB0aGUgbWFrZSBkaXN0Y2xlYW4gY2FsbHMuCiAgIAoyMDAyLTEwLTIzIDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBpbmNvbnNlcXVlbmNpYWwgbWVtb3J5IGxlYWtzIGZpeGVkIChpbml0IHRpbWUgbGVha3MpLgogICAKMjAwMi0xMC0yMyAyMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRml4ZWQgdmFyaW91cyBtZW1vcnkgbGVha3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIFJvZ2VyIE1jQ2FsbWFuIGFuZCBKYXkgUGFybGFyIG9uIHRoZSAtY29kZXJzIGxpc3QgKGluY2x1ZGluZyB0aGVpciBwYXRjaGVzKQogICAKMjAwMi0xMC0yMyAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc25tcE5vdGlmeVRhYmxlLmMKICAgCjIwMDItMTAtMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZyZWUgYSBwcmV2aW91c2x5IG1hbGxvY2VkIHBvaW50ZXIgdG8gdGhlIHdhdGNoIHZhcmlhYmxlIGJlZm9yZSByZXBsYWNpbmcgaXQuCiAgIAoyMDAyLTEwLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICByZW1vdmUgZHVwbGljYXRlIHVudXNlZCBtYWxsb2MuCiAgIAoyMDAyLTEwLTIxIDEyOjQzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgICAgLSBhZGQgc3lzdGVtIGZpbGUgZm9yIFNvbGFyaXMgOQogICAKMjAwMi0xMC0xNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBPcHRpbWl6ZWQgdGhlIFZBQ00gY2hlY2tzIGluIHRoZSBjYXNlIG9mIGdldG5leHQvZ2V0YnVsayBzbyB0aGF0IHdoZW4KICAgbGFyZ2UgcG9ydGlvbnMgb2YgdGhlIG1pYiB0cmVlIGFyZSBleGNsdWRlZCwgdGhlIHN1Yi1taWIgYWNjZXNzIGNvZGUKICAgd29uJ3QgYmUgY2FsbGVkIGF0IGFsbCAoZmluYWxseSBpbXBsZW1lbnRpbmcgYSB2ZXJ5IGxvbmcgbmVlZGVkIG9wdGltaXphdGlvbikuCiAgIAoyMDAyLTEwLTE3IDIyOjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG5ldyBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb25hbGl0eSBiZXR3ZWVuIHR3byBvaWRzOiBuZXRzbm1wX29pZF9maW5kX3ByZWZpeAogICAKMjAwMi0xMC0xNyAyMjozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUHJpbnQgb3V0IGEgInN1bW1hcnkiIGF0IHRoZSBlbmQgb2YgYSBydW4KICAgCjIwMDItMTAtMTcgMDU6NDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFByb3Blcmx5IHRlcm1pbmF0ZSBhIGxvb3AgY29uc3RydWN0IChtaXNzaW5nICdAZW5kQCcpCiAgIFNwb3R0ZWQgYnkgS2FybCBDb29wZXIuICAgIE9vcHMhCiAgIAoyMDAyLTEwLTE2IDE3OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgY29udGludWUgYWZ0ZXIgRUlOVFIgY2F1c2VkIGJ5IHNpZ25hbCB3ZSBoYW5kbGVkIChpbnN0ZWFkIG9mIGZhbGxpbmcKICAgdGhvcm91Z2ggdG8gZXhpdCEpCiAgIAoyMDAyLTEwLTE2IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZWNrIGZvciBvdXIgc2lnbmFsIGZsYWdzIG9uIEVJTlRSLCBhbmQgb25seSByZWxlc2VjdCBpZiBub3QgY2hhbmdlZDsKICAgZGVidWcgbXNnIHdoZW4gc2lnbmFscyByZWdpc3RlcmVkIGFuZCBmb3Igc2VsZWN0L2Zkc2V0czsKICAgCjIwMDItMTAtMTYgMTU6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIENQUEZMQUdTIGJlZm9yZSB1c2VyIGNvbmZpZ3VyZSBDRkxBR1MuLiBzbyBpZiBhIHVzZXIgYWRkcyBzb21ldGhpbmcKICAgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGUgdG8gQ0ZMQUdTLCB3ZSB3aWxsIHBpY2sgdXAgb3VyIGxvY2FsIGluY2x1ZGVzIGZpcnN0LAogICBpbnN0ZWFkIG9mIGluY2x1ZGVzIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLi4KICAgCjIwMDItMTAtMTYgMDA6MDYgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oCjoKCiAgIG1ha2Ugc3VyZSBzbm1wdHJhcGQgYWx3YXlzIGhvbm9ycyBEU19BUFBfTlVNRVJJQ19JUCBmb3IgbG9nZ2luZwogICAKMjAwMi0xMC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXRzbm1wX2dldF9ib29sZWFuIC0+IG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4KICAgCjIwMDItMTAtMTUgMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggY29uc3RhbnQgdXNlZCBpbiBhc3NlcnQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMi0xMC0xNSAxNDowNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgc3lzbG9nIGZvciBsaWJ3cmFwIGxvZyBsZXZlbHMKICAgCjIwMDItMTAtMTUgMTA6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkIHlldCBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xNCAxMTo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggaXB2NiB0cmFuc3BvcnQgYWRkcmVzcyBzcGVjcwogICAKMjAwMi0xMC0xMSAxOToxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmNtdSwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVtb3ZlIHRoZSBSRUFETUUuY211IGZpbGUgKGVudGlyZWx5IG91dCBvZiBkYXRlIGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0xMC0xMSAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM2MDA5MzMgZnJvbSBEb25hbCBEaWFtb25kOiBkc2tQZXJjZW50Tm9kZSBmb3IgRnJlZUJTRDQKICAgCjIwMDItMTAtMTEgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTk4MjgwIGZyb20gSmVmZiBXYXRzb246IG1ha2UgLU9RIG5vdCBwcmludCB0eXBlIHdhcm5pbmdzLgogICAKMjAwMi0xMC0xMSAxNjo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBpbmNsdWRlIGRpcmVjdG9yeQogICAKMjAwMi0xMC0xMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHJwbSBzdWJkaXIKICAgCjIwMDItMTAtMTEgMTY6MzIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBiZXR0ZXIgZG9jcyBhYm91dCBhdXRvLWV4dHJhY3RlZCBTRiBuZXdzCiAgIAoyMDAyLTEwLTExIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBpbiBwYXRjaCAjNTk4ODY5OiBNYXJrIEhhcmlnJ3MgYmV0dGVyIHJwbSBzdHVmZgogICAKMjAwMi0xMC0xMSAxNToyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBBbHRlcm5hdGl2ZSB0byBhIHBhdGNoIHN1Z2dlc3Rpb246IGFkZCAtT1UgdG8gbm90IHByaW50IFVOSVRTIHN1ZmZpeGVzLgogICAKMjAwMi0xMC0xMSAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAuLi9hZ2VudC9zbm1wX2FnZW50LmMKICAgCjIwMDItMTAtMTEgMTU6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBkb250UHJpbnRVbml0cwogICAKMjAwMi0xMC0xMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggIzYxNzE1MSBmcm9tIEFuZHJldyBSdWNrZXIgSm9uZXM6IGZpeCBsaWJ3cmFwIGhlYWRlcnMuCiAgICAgLSBJJ20gc3RpbGwgdW5oYXBweSB3aXRoIGhvdyBsaWJ3cmFwIGZ1bmN0aW9ucy4uLiAgbmVlZHMgdGhpbmtpbmcgYWJvdXQuCiAgIAoyMDAyLTEwLTExIDEzOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICMzMTI2OTQgZnJvbSBKb2huIFN1cnZleW9yOiBmaXggZGlza2lvIG9uIHNvbGFyaXMuCiAgIAoyMDAyLTEwLTExIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNjIxMzk4IGZyb20gTWF0dGhldyBLcmVuemVyIHRvIGZpeCBsaW51eCBhcnAgdGFibGUuCiAgIAoyMDAyLTEwLTExIDA5OjQ3ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgY2hnIG5ldHNubXBtaWJzIC0+IG5ldHNubXBtaWJzc2tkIChub3RlZCBvbiBjb2RlcnMgYnkgSmVkIFdoaXR0ZW4pCiAgIAoyMDAyLTEwLTExIDA5OjQ1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIG5vdGUgc3F1YXJlIGJyYWNrZXRzIGZvciBJUHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xMSAwOTo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc2VsZWN0KCkgbW9yZSBxdWlja2x5IGlmIGFuIEVJTlRSIGhhcHBlbnMKICAgCjIwMDItMTAtMTEgMDE6NTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFwcGxpZWQgSGFycmllJ3MgcGF0Y2ggZGVzY3JpYmluZyBsb3cgbWVtb3J5IGZvb3RwcmludHMKICAgCjIwMDItMTAtMTAgMTE6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gSG9yc3RlaW4gdG8gZml4IEtTTSBtb2R1bGUKICAgCjIwMDItMTAtMTAgMDY6MjIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgICAtIHJlbW92ZSBiYWQgaW5saW5lcyB3aGljaCBjYXVzZSBmaWxlIG5vdCB0byBjb21waWxlIHdpdGggU3VuIENDLgogICAgICAgU2VlIGJ1ZyAjNjIwODI3LgogICAKMjAwMi0xMC0xMCAwMjowMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIC5sYSBmaWxlcwogICAKMjAwMi0xMC0xMCAwMjowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWFrZSB0aGUgLnNwZWMgZmlsZSBhbG1vc3QgdXNhYmxlLgogICAKMjAwMi0xMC0wOCAxODo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgRkFRIHVwZGF0ZXMgZm9yIGRvd25sb2FkIHNpdGVzLgogICAKMjAwMi0xMC0wOCAxMDozNiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgUGF0Y2ggZnJvbSBKb3NodWEgS2Vyb2VzIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKICAgCjIwMDItMTAtMDcgMTM6NTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgc3RhdGVtZW50IGFib3V0IHRoZSBDT1BZSU5HIGZpbGUgKHN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTEwLTA2IDE0OjMyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIG5zYi0qIGxpa2VzIGZ1bGwgcGF0aHMsIHVwZGF0ZSBleGFtcGxlczsgZml4IHNvdXJjZWZvcmdlIHVwbG9hZCBzaXRlCiAgIAoyMDAyLTEwLTA1IDE3OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYwosIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjYgKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNSAtPiBWNS4wLjYKCjIwMDItMTAtMDUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBpbGxlZ2FsIGZsYWcgZnJvbSBuc2ItY29uZmlnCiAgIAoyMDAyLTEwLTA1IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCBhbGxvY2F0ZSAwIGJ5dGVzCiAgIAoyMDAyLTEwLTA1IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IHJlZmVyZW5jZSBwdHIgYWZ0ZXIgaXMgaGFzIGJlZW4gZnJlZSdkLgogICAKMjAwMi0xMC0wNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHNlY29uZGFyeSBlZmZlY3Qgb2YgYnVnIDYxMzk4MyBhbmQgcmVhbGx5IGZpeCBpdCB0aGlzIHRpbWUuCiAgIAoyMDAyLTEwLTAyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuYyAoVjQtMi1wYXRjaGVzLjIpLCB0dW5uZWwuYwo6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHNvbWUgY29kaW5nIGVycm9ycwogICAKMjAwMi0xMC0wMSAwNzozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgb2ZmaWNhbCBwYXRjaCA2MTcwNDk6IGluaXRpYWxpemUgY29udGFpbmVyIGxpc3QgZWFybGllciAoaW4gaW5pdF9hZ2VudCkKICAgCjIwMDItMTAtMDEgMDc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzIChkYW1uIHdpbmRvd3MgZWRpdG9ycykKICAgCjIwMDItMDktMzAgMTU6MTcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjUgKQogICAKMjAwMi0wOS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgaW5mbyBvbiBtZDVzdW1zIGFuZCBncGcgc2lnbmluZwogICAKMjAwMi0wOS0zMCAxNToxNSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggY2htb2QgdG8gZG8gd2hhdCBJIHdhbnRlZCwgbm90IHdoYXQgSSB0b2xkIGl0CiAgIAoyMDAyLTA5LTMwIDE1OjE0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBNYWtlZmlsZS50b3AsIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC41CiAgIAoyMDAyLTA5LTMwIDE0OjI3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgbWVyZ2UgcHJlIGNoYW5nZXMgaW50byA1LjAuNCBjb21tZW50cwogICAKMjAwMi0wOS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGVzIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4zIC0+IFY1LjAuNQoKMjAwMi0wOS0zMCAxNjowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2UgbGVuIGEgc2l6ZV90IHRvIGZpeCBwcm9ibGVtIG9uIDY0IGJpdCBzeXN0ZW0sIHJlcG9ydGVkIGJ5IHNlYm5vZGAgaW4gSVJDCiAgIAoyMDAyLTA5LTMwIDE2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0YXRpYyBsb2NhbCB2YXJzLCBhcyB0aGV5IGFyZSBsaWtlbHkgdG8gY2F1c2UgcHJvYmxlbXMgd2l0aCB0aHJlYWRzCiAgIAoyMDAyLTA5LTMwIDE1OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2Ugc3VyZSBpbnN0YWxsIGRpciBpcyByZWxhdGl2ZSB0byBidWlsZCBkaXIKICAgCjIwMDItMDktMzAgMTU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcKICAgCjIwMDItMDktMzAgMTU6MTkgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKICAgCjIwMDItMDktMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhdm9pZCBpbmZpbml0ZSBsb29wCiAgIAoyMDAyLTA5LTMwIDE0OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgYXNzdW1lIG1ha2UgaXMgR05VIG1ha2UsIGFuZCBzZWFyY2ggZm9yIGl0LiByZXF1aXJlIHVzZXIgdG8gc2V0IGFuCiAgIGVudiB2YXIgaWYgbm8gR05VIG1ha2UgaXMgZm91bmQgaW4gUEFUSAogICAKMjAwMi0wOS0zMCAxNDo1OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBpZiBDVlMgZGlyIGlzIHJvLCBhdXRvbWFnaWNhbGx5IG1ha2UgaXQgcncgYmVmb3JlIHVwZGF0ZSBhbmQgcm8gYWZ0ZXIgdXBkYXRlCiAgIAoyMDAyLTA5LTI3IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtYWtlIGdldF9zZXRfY2FjaGUoKSByZXR1cm4gYW4gZXJyb3IgaWYgbm8gcHJldmlvdXMgU0VUIGhhcyBiZWVuIHN0YXJ0ZWQuCiAgIAoyMDAyLTA5LTI3IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZG91YmxlIGNoZWNrIGFnYWluc3Qgc29tZSBudWxsIHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtIGluIHRoZSBjYWNoZSBjb2RlLgogICAKMjAwMi0wOS0yNyAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IHRyZWVjYWNoZV9udW0gdG8gLTEgYXQgaW5pdCBvZiBtZW1vcnksIHRvIGJlIGV4dHJhIHNhZmUuCiAgIAoyMDAyLTA5LTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIG1vdmUgbGlid3JhcCB2YXJpYWJsZXMKICAgCjIwMDItMDktMjYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBvaywgcmVtb3ZlIHRjcHdyYXBwZXJzIHZhcnMKICAgCjIwMDItMDktMjYgMTM6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBkZWZpbmUgc3R1cGlkIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGNwd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IGdldAogICBjb25jZXB0cyBvZiBlbmNhcHN1bGF0aW9uLiAgYXJnLgogICAKMjAwMi0wOS0yNiAxMToyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGNoYW5nZSBjYWxsX3B2IHRvIHBlcmxfY2FsbF9wdiBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgcGVybC4KICAgCjIwMDItMDktMjYgMTE6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBydW4gc3RyZHVwKCkgb24gZ2V0X21pYl9kaXIoKSByZXN1bHRzIHRvIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgRXVnZW5lIEJydWsuCiAgIAoyMDAyLTA5LTIzIDEzOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWVudGlvbiBmcmVzaG1lYXQKICAgCjIwMDItMDktMjMgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIGltcGxlbWVudCBhIChsb25nIG5lZWRlZCkgc2V0dGFibGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGN1cnJlbnQKICAgICBwZXJzaXN0ZW50IGluZm9ybWF0aW9uLgogICAKMjAwMi0wOS0yMyAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBtYWtlIG5vdCBpbiB0aW1lIHdpbmRvdyByZXBvcnRzIHRyaWdnZXIgYSByZXNlbmQgb2YgaW5mb3Jtcy4KICAgICAoc3VnZ2VzdGlvbiBmcm9tIEVyaWsgQW5nZ2FyZCkKICAgCjIwMDItMDktMjAgMTE6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAgIC0gcmVtb3ZlIGZ1bmN0aW9ucyB2YWNtX3BhcnNlX3NlY3VyaXR5IGFuZCB2YWNtX2ZyZWVfc2VjdXJpdHkgd2hpY2gKICAgICAgIGRvbid0IGV4aXN0CiAgIAoyMDAyLTA5LTE5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSBzdXBwb3J0IGFnZW50IHNodXRkb3ducyAod2VsbCwgb2sgaXQncyBqdXN0IGFuIGFwaSBzaW5jZSBpdCBkb2Vzbid0IHdvcmspLgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAKMjAwMi0wOS0xOSAxNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzLCBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIGZpeCBhZ2VudCByZXF1ZXN0X2luZm9QdHIgcHJvYmxlbXMuCiAgIAoyMDAyLTA5LTE5IDEyOjA0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgQ29tcGlsZSBhbmQgbGluayB3aXRoICdnZXRvcHQuYycgZXhwbGljaXRseS4KICAgCiAgIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igc29tZSByZWFzb24KICAgKHRoYXQgY29tcGxldGVseSBlc2NhcGVzIG1lISksIHVzaW5nIGNvbW1hbmQtbGluZSBvcHRpb25zCiAgIChzdWNoIGFzIC1JUikgd2l0aCB0aGUgUmVsZWFzZSB2ZXJzaW9uIG9mIHNubXB0cmFuc2xhdGUKICAgY2F1c2VzIGEgcnVuLXRpbWUgRExMIGVycm9yLiAgKFRoZSBEZWJ1ZyB2ZXJzaW9uIGlzIGZpbmUpLgogICBUaGUgb3RoZXIgYXBwbGljYXRpb25zIHNlZW0gdG8gYmUgT0sgLSB0aGlzIHByb2JsZW0gb25seQogICBzZWVtcyB0byBoaXQgc25tcHRyYW5zbGF0ZS4gIFNvIGFzIGEgc3RpY2tpbmctcGxhc3RlciwKICAgY29tcGlsaWluZyBnZXRvcHQuYyBpbiBhcyBwYXJ0IG9mIHRoZSBwcm9qZWN0LCBrZWVwcyBib3RoCiAgIHZlcnNpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiBoYXBweS4KICAgICBTb21lb25lIHdpdGggYmV0dGVyIFdpbmRvd3Mga25vd2xlZGdlIHRoYW4gbWUgbmVlZHMgdG8KICAgbG9vayBhdCB0aGlzIGFuZCBmaXggaXQgcHJvcGVybHkuCiAgIAoyMDAyLTA5LTE5IDA2OjE0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHVuZG8gd29yc3Qgb2YgaW5kZW50IGRhbWFnZQogICAKMjAwMi0wOS0xOSAwNjowMyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgX2RwYXJzZSBmdW5jdGlvbnMgKHdoaWNoIGRvbid0IGV4aXN0KQogICAKMjAwMi0wOS0xOCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVzZXQgU05NUF9TTEVFUCBhZnRlciBsb29wCiAgIAoyMDAyLTA5LTE4IDEwOjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSByZW1vdmUgdmVyeSBvYnNvbGV0ZSAoYW5kIG5vdCB1c2VkIGFueXdoZXJlKSAjZGVmaW5pdGlvbnMgb2YKICAgICAgIFBBUlRZX01JQl9CQVNFIGFuZCBDT05URVhUX01JQl9CQVNFCiAgIAoyMDAyLTA5LTE4IDAyOjU5ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdHdlYWsgZm9yIDUuMC40IGxhc3QgbWludXRlIHVwZGF0ZQogICAKMjAwMi0wOS0xOCAwMjo0OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGNoZyA+IHRvIC1ndCB0byBhY2hpZXZlIGludGVuZGVkIHJlc3VsdAogICAKMjAwMi0wOS0xOCAwMTozOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAxOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40ICkKICAgCjIwMDItMDktMTggMDE6MzIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAwOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgJChzcmNkaXIpIHRvIGEgZmV3IGRlcGVuZGVuY2llcyB0byB0cnkgYW5kIHJlZHVjZSB0aGUgIyBvZiB0aW1lcyB0aGF0CiAgIGNvbmZpZy5zdGF0dXMgaXMgcnVuIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc3JjIGRpcgogICAKMjAwMi0wOS0xOCAwMDo1NCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIHZpc3VhbGx5IHByb3ZvY2F0aXZlIHNlY3Rpb24gaGVhZGVyczsgYWRkIHJlY2VudCBzdGF0dXMgKGFsbCBiYWQgbmV3cyk7CiAgIG5vdCB0byB1c2UgbmV3IHdpbjMyc2RrLmRzdyB0byBnZXQgYWRkaXRvbmFsIGZ1bmN0aW9uYWxpdHkgd2l0aCBwbGF0Zm9ybSBzZGs7CiAgIHJlbW92ZSBpbmZvIG9uIHJlbW92aW5nIGFnZW50eCwgYXMgaXQncyBiZWVuIGFyb3VuZCBub3cgZm9yIGEgd2hpbGU7IGFkZAogICBzZWN0aW9uIG9uIHdoYXQgZmlsZXMgdG8gZWRpdCB0byBhZGQgbWliMmMgZ2VuZXJhdGVkIGNvZGUgdG8gYWdlbnQ7IHJlbW92ZQogICByZWZlcmVuY2UgdG8gc3BlY2lmaWMgcmVsZWFzZSBudW1iZXIgaW4gZXhhbXBsZQogICAKMjAwMi0wOS0xOCAwMDoyNSAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIHRha2UgJ3Nkaycgb3V0IG9mIGV4ZSBuYW1lCiAgIAoyMDAyLTA5LTE4IDAwOjI1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc3dhcCBzbm1wZHNkayBmb3Igc25tcGQKICAgCjIwMDItMDktMTggMDA6MTQgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZ2V0IGFsbCBvdXIgZHVja3MgaW4gYSByb3c6IGFkZCBhZHZhcGkzMi5saWIgdG8gbGluayBsaW5lcywgbWFrZSBzdXJlIGFsbAogICBSZWxlYXNlIGFuZCBEZWJ1ZyBsaWJzL2FwcHMgYXJlIGNvbXBpbGUgd2l0aCBzYW1lIEMrKyBzZXR0aW5ncwogICAKMjAwMi0wOS0xOCAwMDoxMiAgcnN0b3J5CgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIHJlbW92ZSBzZGsgZGVwZW5kZW50IG1vZHVsZXMKICAgCjIwMDItMDktMTggMDA6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBncm91cCBtb2R1bGVzIHRoYXQgZGVwZW5kIG9uIHdpbjMyIHNkayB0b2dldGhlciwgd2l0aCBpZmRlZgogICAKMjAwMi0wOS0xOCAwMDowOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgbm8gY2FsbGJhY2sgZm9yIHdpbjMyIHVudGlsIHBpcGUgZmQgcHJvYmxlbSBpcyBmaXhlZAogICAKMjAwMi0wOS0xOCAwMDowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBuZXcgdmVyc2lvbnMgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xOCAwMDowNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIG5ldyB3b3Jrc3BhY2UgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaWIgbW9kdWxlIGxvYWRpbmcgZml4ZXMgYnkgY2FsbGluZyBpbml0X3NubXAgZmlyc3QKICAgCjIwMDItMDktMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgZXhhbXBsZSBuc2ItY29uZmlnIGNvbW1hbmQ7IGFkZCAtYiBiYWNrIHRvIGN2czJjbCwgb3RoZXJ3aXNlIHlvdQogICBnZXQgY2hhbmdlbG9nIG1zZ3MgZnJvbSBvdGhlciBicmFuY2hlcyBhbmQgaGF2ZSB0byB3ZWVkIHRoZW0gb3V0CiAgIAoyMDAyLTA5LTEzIDEyOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgZml4IGlsbGVnYWwgb2lkcyB0byBub3QgcmV0dXJuIGEgcG9pbnRlci4KICAgCjIwMDItMDktMTMgMTA6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gbWlub3Igb3B0aW1pc2F0aW9uOyB3ZSBkb24ndCBuZWVkIGEgemVyby10ZXJtaW5hdGVkIGNvbW11bml0eQogICAgICAgc3RyaW5nIGV4Y2VwdCBmb3IgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDItMDktMTMgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkZWQgLWkgb3B0aW9uIHRvIHJlcXVlc3QgaW5kZW50IG5vdCBiZSBydW4KICAgCjIwMDItMDktMTMgMTA6MDYgIGpicG4KCiAgICogQ09QWUlORzoKCiAgICAgLSBhZGQgbWlzc2luZyB2ZXJiIGluIGludHJvZHVjdGlvbgogICAKMjAwMi0wOS0xMiAxNTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwcm90ZWN0IGNhbGxpbmcgc29tZSBTdklWIGRlcmVmZXJlbmNlIGZ1bmN0aW9ucyBpZiBpdCdzIG5vdCBhbiBJVi4KICAgICAtIGVsaW1pbmF0ZXMgdGhlIHJlbWFpbmluZyBwZXJsIHdhcm5pbmdzLgogICAKMjAwMi0wOS0xMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW5jbHVkZSBsZGZsYWdzIHdoZXJlIGFwcHJvcHJpYXRlICgtLWxpYnMsIC0tYWdlbnQtbGlicywgLi4uKQogICAKMjAwMi0wOS0xMiAwMTo0OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBhZGQvdXNlIG5ldyBvcHRpb24gdG8gcmVtb3ZlIGJ1aWxkIGRpciBhZnRlciBzdWNjZXNzZnVsIGJ1aWxkCiAgIAoyMDAyLTA5LTEyIDAxOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcHJpbnQgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEyIDAxOjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbXVjaCBtb3JlIGNvbXBsZXggdGVzdHMgb2YgVVNNIHVzZXIgY3JlYXRpb24vbW9kaWZpY2F0aW9uLgogICAKMjAwMi0wOS0xMiAwMTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMDFzbm1wdjFnZXQsCiAgIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LCB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdHMvVDAwNHNubXB2MW5vc3VjaDoKCiAgIC0gc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGVzdHMgYXQgb25jZS4KICAgLSBtZXJnZSB2MSB0ZXN0cyBpbnRvIGEgc2luZ2xlIChmYXN0ZXIpIHRlc3QuCiAgIAoyMDAyLTA5LTEyIDAwOjM0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgbW9ua2V5IGFyb3VuZCB3aXRoIHJldHVybmluZyBlcnJvciBjb2RlcywganVzdCBleGl0OyBtb3JlIHJlZ2V4cCB0d2Vha3MKICAgCjIwMDItMDktMTEgMTk6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gdXNlIHN1Yi1zZWNvbmQgc2xlZXBzIGlmIGF2YWlsYWJsZQogICAtIHNsZWVwIDEgKHN1Yi0pc2Vjb25kIGF0IGEgdGltZSB3aGVuIHdhaXRpbmcgZm9yIHBhcnRpY3VsYXIgdGVzdHMKICAgICByYXRoZXIgdGhhbiB0aGUgZnVsbCBTTk1QX1NMRUVQIGR1cmF0aW9uLgogICAKMjAwMi0wOS0xMSAxOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHVzZSBzbm1wX2xvZyBpbnN0ZWFkIG9mIHByaW50ZiBmb3Igc2h1dGRvd24gbWVzc2FnZS4KICAgCjIwMDItMDktMTEgMTg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc3NpbmcgdmFyaWFibGUgZGVjbCBwb2ludGVkIG91dCBieSBpcmM6ZGYKICAgCjIwMDItMDktMTAgMTY6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHBzICYgZXJyb3IgbWVzc2FnZXMKICAgCjIwMDItMDktMTAgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb21waWxlciB3YXJuaW5ncyBhcmUgeW91ciBmcmllbmQhOyBmaXggZW1iZWRlZCBjb21tZW50czsgZml4IG5vbi12b2lkCiAgIGZ1bmN0aW9ucyB3L25vIHJ0biB2YWx1ZXM7IGNvZGUgcmVvcmcgdG8gZml4IGVtYWNzIGluZGVudCBjb21wbGFpbnRzCiAgIAoyMDAyLTA5LTEwIDE1OjI2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyB0YXJnZXRzIHRvIGhlbHAgbmlnaHRseSBidWlsZCBzY3JpcHQgZGV0ZXJtaW5lCiAgIGlmIGEgbWFrZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiAgIAoyMDAyLTA5LTEwIDE1OjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWtzIGZvciBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHM7IGFkIG5zYi1hYm9ydCwgbnNiLWZsb3c7CiAgIGRpcmVjdCBzb21lIG1lc3NhZ2VzIHRvIHN0ZGVycjsgdXNlIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIG1ha2UgdGFyZ2V0czsKICAgdXBkYXRlIGVycm9yIGdyZXAgdG8gaW5jbHVkZSAnKioqJzsgY2hlY2sgZm9yIG5ldyB2YWx1ZSB0byBybSAtZlIgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEwIDE1OjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkcwogICAKMjAwMi0wOS0xMCAxNTowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBhZGQgb3B0aW9uIHRvIHJtIC1mUiBidWlsZCBkaXIgYXQgc3RhcnQ7IGNoZWNrIHNjcmlwIHBhdGggZm9yIG5zYi1mdW5jdGlvbnM7CiAgIHByZWZpeCBkZWZhdWx0IGJ1aWxkIGRpciB3L3ZlcnNpb247IGV4aXQgdy9yYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOS0xMCAxNTowNSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItcGxhdGZvcm06CgogICBhZGQgY3VycmVudCBwYXRoIHRvIHNjcmlwdCB0byBuc2ItZnVuY3Rpb24gc2VhcmNoIHBhdGgKICAgCjIwMDItMDktMDkgMDk6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgSmFyZWQgU21pdGgtTWlja2Vsc29uIChidWcgIzYwNTE0NykKICAgICAgIHdoZXJlYnkgcGFzc2luZyBhbiB1bmtub3duIHR5cGUgY2hhcmFjdGVyIHRvIHNubXBfYWRkX3ZhciB3b3VsZAogICAgICAgY2F1c2UgYSBzZWdmYXVsdC4KICAgCjIwMDItMDktMDkgMDk6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciB2YWx1ZSBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAyLTA5LTA5IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEN1cnJlbnQgaGVhZGVyIHVwZGF0ZSBwYXRjaCBmb3IgbmV0YnNkIGZyb20gUGF0cmljayBXZWxjaGUuCiAgIAoyMDAyLTA5LTA2IDE4OjMwICBkcmllaHVpcwoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBNYXJrIHRoZSBub24tcmF3IHZhcmlhbnRzIG9mIG9iamVjdHMgdGhhdCBhcmUgYWNjZXNzYWJsZSBhcyByYXcgY291bnRlcnMKICAgYXMgZGVwcmVjYXRlZCwgdG8gKGhvcGVmdWxseSEpIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdXNlcnMgdGhhdCBnZXQKICAgYml0dGVuIGJ5IGl0Li4KICAgCjIwMDItMDktMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgYWRkZWQgQnJ1Y2UncyBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggcGVybGNsZWFuCiAgIAoyMDAyLTA5LTA0IDE0OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IHByb2Nlc3MgZ3JvdXBpbmcgYnkgY2FsbGluZyBzZXRzaWQoKSAocmVwb3J0ZWQgYnkgaXJjOlRyb2dMKQogICAKMjAwMi0wOS0wNCAxNDowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc2V0c2lkKCkuCiAgIAoyMDAyLTA5LTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYXNlcyB3aGVyZSB0aGVyZSBlaXRoZXIgYXJlIG5vIHRhYmxlcyBvciBubyBzY2FsYXJzLgogICAKMjAwMi0wOS0wMyAxMzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBkb24ndCB1c2UgTlVMTCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA5LTAyIDIyOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTIgKQogICAKMjAwMi0wOS0wMiAyMjozMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUyCiAgIAoyMDAyLTA5LTAyIDIyOjIyICByc3RvcnkKCiAgICogbWFuL25ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlZCBkb2NzCiAgIAoyMDAyLTA5LTAyIDIyOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA5LTAyIDIyOjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgdHJ5IGFuZCBndWVzcyBhdCBzcmMgZGlyIGlmIG5vdCBzcGVjaWZpZWQKICAgCjIwMDItMDktMDIgMjI6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIG5vdGUgYWJvdXQgZXJyIHdoZW4gYnVpbGRpbmcgaW4gYW5kIG91dCBvZiBzb3VyY2UgdHJlZQogICAKMjAwMi0wOS0wMiAyMTo1NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZnVsbCBwYXRoIHRvIHZlcnNpb250YWcsIGluIGNhc2Ugd2UgYXJlIGJ1aWxkaW50IG91dHNpZGUgb2Ygc3JjIGRpcmVjdG9yeQogICAKMjAwMi0wOS0wMiAyMTozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBmb3JjZWQgcHJvbXB0IG9uIGVycm9ycwogICAKMjAwMi0wOS0wMiAyMTozNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHdhcm5pbmdzIHdoZW4gVkVSU0lPTiBpcyByZXF1aXJlZDsgYWRkIHRhcmNsZWFuIHRhcmdldDsgYWRkIHRhcmNsZWFuIHRvCiAgIGRpc3RjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIG1zZyBvbiBlcnJvcjsgYWRkIGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAyMDoyNyAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgd2luMzIgJiBBZ2VudFggc3RhdHVzCiAgIAoyMDAyLTA5LTAyIDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGZpeCB0byBhdm9pZCBsb2NraW5nIHVwIHRoZSBhZ2VudCB3aGVuIGEgc3VnYWdlbnQgZGllcyBkdXJpbmcgYSBzZXQgcmVxdWVzdC4gV2UKICAgbXVzdCBjbGVhbiB1cCB0aGUgZGVsZWdhdGVkIHJlcXVlc3RzIHdoZW4gdGhlIHNlc3Npb24ocykgYXJlIGNsb3NlZCwgc28gdGhhdAogICB0aGV5IHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCBhbGxvd2luZyBmdXJ0aGVyIHJlcXVlc3RzIHRvIGJlIHByb2Nlc3NlZC4KICAgCjIwMDItMDktMDEgMTM6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGNoYW5nZSByZXN1bHQgdHlwZSBiYWNrIHRvIGludCwgYXMgaXQgbWF5IHJlY2VpdmUgYSBuZWdhdGl2ZSB2YWx1ZQogICAKICAgUExFQVNFIGNoZWNrIHRoZSB1c2Ugb2YgYSB2YXJpYWJsZSBiZWZvcmUgY2hhbmdpbmcgaXMgc2lnbmVkbmVzcywgZXNwZWNpYWxseQogICBhcmVvdW5kIHJlbGVhc2UgdGltZSEKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgaW5jbHVkZSBjaGVja192YXJiaW5kLmgKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBjaGFuZ2UgTk9TVUNITkFNRSB0byBOT1NVQ0hJTlNUQU5DRSBhZ2FpbiwgYXMgaXQgc2VlbXMgdGhlIGFnZW50WCBmaXggYWxzbwogICBjb3JyZWN0bHkgZGVhbHMgd2l0aCB0aGlzIGVycm9yIGNvZGUKICAgCjIwMDItMDgtMzAgMDk6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSBkZWxldGUgc3Vuc2l0ZS5jbmxhYi1zd2l0Y2guY2ggbWlycm9yLCBhcyBpdCBpc24ndCBvbmUgYW55bW9yZS4KICAgCjIwMDItMDgtMjkgMTM6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgbW9kdWxlcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlbQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IHRoZSBsYXN0IEFFUyBidWcgSSBrbm93IG9mLiAgQUVTMTI4IHdvcmtzIGdyZWF0LgogICAgIEkgc3RpbGwgTmVlZCB0byBmaXggMTkyLzI1NiBmb3IgbG9uZ2VyIGtleSBnZW5lcmF0aW9uIGZyb20gTUQ1L1NIQQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIHVzZSB0aGUgcmlnaHQgcGVybCBtb2R1bGUgbmFtZSBpbiB0aGUgdXNlIGxpbmUuCiAgIAoyMDAyLTA4LTI5IDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgd2luMzIvY29uZmlnLmg6CgogICBNb3JlIFdpbjMyLXJlbGF0ZWQgdGlkeWluZyB1cC4KICAgVGhlIGFnZW50IG5vdyBjb21waWxlcyB3aXRoIHJlbGF0aXZlbHkgZmV3IHdhcm5pbmdzLgogICAKMjAwMi0wOC0yOSAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIERlY2xhcmUgbmV3IHJvdXRpbmUgJ25ldHNubXBfb2lkX2VxdWFscycsIGFuZCBhc3NvcnRlZCBXaW4zMiBjbGVhbnVwIGZpeGVzLgogICAKMjAwMi0wOC0yOCAxNDoxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjbGFyaWZ5IGN2czJjbCBzY3JpcHQgbmFtZTsgcmVtb3ZlIC1iIGZsYWcgZnJvbSBjdnMyY2wgcGVyIERhdmU7IGEgbGl0dGxlCiAgIHJlb3JnYW5pemF0aW9uOyBwdXQgY29tbWFuZHMgb24gc2VwYXJhdGUgbGluZXMgcHJlZml4ZWQgd2l0aCAkOyBub3RlIDUueC80LngKICAgZGlmZmVyZW5jZXMgcGVyIERhdmUncyBlbWFpbDsgcGx1ZyBteSBuZXcgc2NyaXB0cyB3aGVyZSBhcHByb3ByaWF0ZQogICAKMjAwMi0wOC0yNyAxNDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgVVJMIGZvciBjdnMyY2w7IHVwZGF0ZSBjdnMyY2wgY21kcyB0byBjdnMyY2wucGwsIHNpbmNlIHRoYXQncyB0aGUgZmlsZQogICB0aGF0J3MgYWN0dWFsbHkgZGlzdHJpYnV0ZWQKICAgCjIwMDItMDgtMjcgMDA6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTEgKQogICAKMjAwMi0wOC0yNyAwMDoyNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgKDUuNSksIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiAgICg1LjUpOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjcgMDA6MTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMgKDUuMyksIG5ldHNubXBfYnVsa190b19uZXh0LjMgKDUuMyksCiAgIG5ldHNubXBfZGVidWcuMyAoNS4zKSwgbmV0c25tcF9oYW5kbGVyLjMgKDUuMyksIG5ldHNubXBfaW5zdGFuY2UuMwogICAoNS4zKSwgbmV0c25tcF9tdWx0aXBsZXhlci4zICg1LjMpLCBuZXRzbm1wX29sZF9hcGkuMyAoNS4zKSwKICAgbmV0c25tcF9yZWFkX29ubHkuMyAoNS4zKSwgbmV0c25tcF9zY2FsYXIuMyAoNS4yKSwKICAgbmV0c25tcF9zZXJpYWxpemUuMyAoNS4zKSwgbmV0c25tcF90YWJsZS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMgKDUuMyksIG5ldHNubXBfdGFibGVfZGF0YS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMyAoNS4zKSwgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zICg1LjMpLAogICBuZXRzbm1wX3RvZG8uMyAoNS4zKSwgbmV0c25tcF93YXRjaGVyLjMgKDUuMik6CgogICB1cGRhdGUgbWFuIHBhZ2VzIGZvciA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnICgxLjEpOgoKICAgbmV3IGZpbGUgdG8gY29uZmlndXJlIHVzaW5nIHNhbWUgb3B0aW9ucyBhcyBuc2ItcGFja2FnZSBmb3IgdGVzdCBvciBkaXN0CiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZSAoMS4zKToKCiAgIGRvbid0IGFwcGVuZCBzeXMtbmFtZSB3aGVuIGJ1aWxkaW5nIGluIHNyYyB0cmVlCiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE5KToKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA4LTI3IDAwOjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE4KToKCiAgIHJlbmFtZSBuc2ItZ2V0LWNvbmZnIC0+IG5zYi1jb25maWctZGlzdDsgdXNlIGRvdWJsZSBxdW90ZXMgY3V6IG9mIHNvbWUKICAgd2llcmQgc2hlbGwgdGhpbmcgSSBkb24ndCB5ZXQgdW5kZXJzdGFuZDsgY2hlY2sgZm9yIHNyYyBkaXIgaW4gY29uZmlnKgogICAKMjAwMi0wOC0yNiAyMzozNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluICg1LjEyKToKCiAgIHR3ZWFrIGNvbW1lbnRjaGVjayB0YXJnZXQgdG8gd29yayBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAyMzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAoNS4zKSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAoNS4xKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAoNS4yKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICg1LjEpLCBzbm1wbGliL3dpbnNlcnZpY2UuYwogICAoNS4xKToKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMgKGFuZCBhbnl0aGluZyB0aGF0IGV2ZW4gcmVtb3RlbHkgcmVzZW1ibGVzIG9uZSkKICAgCjIwMDItMDgtMjYgMTc6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTcpOgoKICAgcGFzcyBtYWtlIHBhcmFtcyB0byBtYWtlLCBzbyB3ZSBkb24ndCB0cnkgdG8gaW5zdGFsbCBpbiAvdXNyL2xvY2FsL2JpbiBvZgogICB0aGUgY29tcGlsZSBzZXJ2ZXJzLi4uIDotLwogICAKMjAwMi0wOC0yNiAxNzozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNik6CgogICBtYWtlIGRpc3QgJiBleHRyYSB0cmFuc3BvcnRzOyBubyBpcHY2IG9uIERhcndpbjsgbWFrZSB0b3VjaGl0IGJlZm9yZSBtYWtlCiAgIAoyMDAyLTA4LTI2IDE3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICg1LjQpOgoKICAgcmVwbGFjZSB1X2ludDMyX3QsIHdoaWNoIGRvZXNuJ3QgY29tcGlsZSBvbiBTdW4gNS44LCB3aXRoIHVfaW50CiAgIAoyMDAyLTA4LTI2IDE2OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMgKDUuMik6CgogICBmaXggdW5kZWNsYXJlZCB2YXJpYWJsZSBlcnJvciBzcG90dGVkIG9uIFN1biwgd2hpY2ggbGludXggbWlzc2VkIGNvbXBsZXRlbHkuCiAgIEkgaGF2ZSBubyBpZGVhIGhvdyB0aGlzIGNvbXBpbGVkIGJlZm9yZSEhCiAgIAoyMDAyLTA4LTI2IDE2OjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE1KToKCiAgIGNsZWFuZXIgd2F5IHRvIGFkZCBzeXN0ZW0gc3BlY2lmaWMgbW9kdWxlczsgZGlzYWJsZSBwZXJsLCBhcyBpdCBicmVha3MKICAgYnVpbGRzIG91dHNpZGUgb2YgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDE1OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE0KToKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eAogICAKMjAwMi0wOC0yNiAxNTo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xMyk6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXg7IGJhaWwgb24gY29uZmlndXJlIGVycm9ycwogICAKMjAwMi0wOC0yNiAxNTowNCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMgKDEuNCk6CgogICBhZGQgc3VnZ2VzdGlvbiB0byBzeW1saW5rIG5zYi0qIGluIGxvY2FsIGJpbiBkaXIKICAgCjIwMDItMDgtMjYgMTU6MDMgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UgKDEuMiksIG5zYi1mdW5jdGlvbnMgKDEuMTIpOgoKICAgYWRkIG9wdGlvbiBmb3IgcHJlLXJlbGVhc2UgdGVzdCBjb25maWd1cmUgb3B0aW9ucwogICAKMjAwMi0wOC0yNiAxNTowMiAgcnN0b3J5CgogICAqIFJFQURNRS5zbm1wdjMgKDUuMyk6CgogICBtYWtlIHNlY3Rpb24gaGVhZGVycyBzdGFuZCBvdXQgbW9yZTsgbW92ZSBub3RlIGFib3V0IGVuY3J5cHRpb24gbm90IGJlaW5nCiAgIGVuYWJsZWQgdG8gYSBtb3JlIHByb21pbmVudCBwbGFjZS4KICAgCjIwMDItMDgtMjQgMjE6MjQgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMKICAgKFY0LTItcGF0Y2hlcy5bMzcsM10pOgoKICAgTWVyZ2UgZnJvbSBIRUFEOiBkZXRlY3QgdGhlIHJlcXVpcmVtZW50IGZvciBsaW5raW5nIHdpdGggLWxkZXZzdGF0LgogICBVZ2x5IGhhY2sgdG8gbWFrZSBzdXJlIGRpc2tpbyBkZXZpY2UgbmFtZXMgaW5jbHVkZSB0aGUgZGV2aWNlIG51bWJlci4KICAgCjIwMDItMDgtMjMgMTE6NDYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gKFY0LTItcGF0Y2hlcy4zKToKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTIyIDA4OjMxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4yKToKCiAgICAgLSBET05UX1VTRV9OTElTVCByZWluc3RhdGVkLCBzbyBOT19LTUVNX1VTQUdFIHJlZHVuZGFudAogICAKMjAwMi0wOC0yMiAwODoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oICg1LjkpLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICg1LjEwKToKCiAgICAgLSByZWluc3RhdGUgdGVzdCBmb3IgRE9OVF9VU0VfTkxJU1QKICAgCjIwMDItMDgtMjIgMDc6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYyAoNS4xMCk6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jIChWNC0yLXBhdGNoZXMuMjQpOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDQ6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKDUuMik6CgogICBBZGQgdGhlIG1pc3NpbmcgJy14L1gnIG9wdGlvbnMgdG8gdGhlIGV4YW1wbGUgYXV0aFByaXYgY29tbWFuZCBsaW5lCiAgICAgKHJlcG9ydGVkIGJ5IFByYXNhZGEgUiBWYW5rYXlhbGFwYXRpKQogICAKMjAwMi0wOC0yMCAxMTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNiksIGFwcHMvc25tcHRyYXBkLmMgKDUuNCksCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAoNS4zKSwgRkFRICg1LjE3KToKCiAgIHF1aWV0IHNubXB0cmFwZCB3aGVuIGl0IGNhbid0IGNvbm5lY3QgdG8gdGhlIGFnZW50eCBtYXN0ZXIuCiAgIAoyMDAyLTA4LTIwIDA4OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4xKToKCiAgICAgLSBhZGQgI2RlZmluZSBOT19LTUVNX1VTQUdFIDEgc2luY2UgbmV0LXNubXAtY29uZmlnLmguaW4gbm8gbG9uZ2VyCiAgICAgICBwYXlzIGF0dGVudGlvbiB0byB0aGUgRE9OVF9VU0VfTkxJU1QgdG9rZW4uICBPbWlzc2lvbiBvZiB0aGlzCiAgICAgICBjYXVzZXMgdGhlIGFnZW50IHRvIGV4aXQgd2l0aCB0aGUgbWVzc2FnZSAiaW5pdF9rbWVtOiBrdm1fb3BlbgogICAgICAgZmFpbGVkOiBlcnJvciAwIi4KICAgCiAgICAgICBOT1RFOiB0aGlzIG1heSBuZWVkIGFwcGx5aW5nIHRvIG90aGVyIG1lbWJlcnMgb2YgdGhlIFNvbGFyaXMgMgogICAgICAgZmFtaWx5LCBidXQgSSBkb24ndCBoYXZlIG1hY2hpbmVzIHRvIGhhbmQgdG8gdGVzdCB0aGlzLgogICAKMjAwMi0wOC0yMCAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgKDUuMik6CgogICAgIC0gZGV0ZWN0IGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlcyAoZ2VOKQogICAgIC0gdW5kbyBpbmRlbnQgbWF5aGVtCiAgIAoyMDAyLTA4LTIwIDA1OjU3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggKDUuMSk6CgogICAgIC0gZm9yIG5vdywgZG9uJ3QgI2luY2x1ZGUgc25tcF9sb2NraW5nLmggc2luY2UgaXQgYnJlYWtzIHJlLWVudHJhbnQKICAgICAgIHN1cHBvcnQgKGJlY2F1c2UgbXV0ZXhfdHlwZSBnZXRzIG11bHRpcGx5LWRlZmluZWQpLiAgRnVydGhlcm1vcmUsIHRoZQogICAgICAgZnVuY3Rpb25zIGl0IGRlY2xhcmVzIGFyZSBuZXZlciB1c2VkIGFueXdoZXJlLCBub3IgZGVmaW5lZCBhbnl3aGVyZS4KICAgCjIwMDItMDgtMjAgMDU6NTYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAoNS4xKToKCiAgICAgLSBkb24ndCBkZWZpbmUgImRvIG5vdGhpbmciIG1hY3JvcyBmb3Igc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zCiAgICAgICBvbiBXaW4zMiBwbGF0Zm9ybSAoc2luY2UgcmVhbCAiZG8gbm90aGluZyIgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3IKICAgICAgIHJlYXNvbnMgYmVzdCBrbm93biB0byBzb21lb25lIGVsc2UpLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwNTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggKDUuMSk6CgogICAgIC0gZml4IGhpZ2hseSBib2d1cyBub24tQyBzeW50YXgKICAgCjIwMDItMDgtMjAgMDU6NTMgIGpicG4KCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmMgKDUuMSk6CgogICAgIC0gc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zIG5vIGxvbmdlciAjZGVmaW5lZCB0byAiZG8gbm90aGluZyIKICAgICAgIHRhcmdldHMgZm9yIFdpbjMyIGluIG10X3N1cHBvcnQuaCwgdGhlcmVmb3JlIG5vIG5lZWQgdG8gI3VuZGVmIHRoZW0KICAgICAgIGhlcmUuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggKDUuMik6CgogICBoZWFkZXJzIGZvciBjYWNoZSBlbmFibGluZyBmdW5jdGlvbnMuCiAgIAoyMDAyLTA4LTIwIDAxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgKDUuMyk6CgogICBkb24ndCB1c2Ugbm9uLWV4aXN0ZW50IG1lbW9yeSBwb2ludGVycyB0byB0aGUgcmVzcG9uc2UgZGF0YSAoZWc6ICJ0aW1lb3V0IikKICAgCjIwMDItMDgtMTkgMTc6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggKDUuMSk6CgogICBDaGFuZ2UgYSBmZXcgY29uZGl0aW9uYWxzIHRvIHVzZSAjaWYgaW4gcGxhY2Ugb2YgI2lmZGVmCiAgIAoyMDAyLTA4LTE5IDE3OjI4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jICg1LjE3KSwgcGFyc2UuYyAoNS40KToKCiAgIEFsaWduIHdpdGggNC4yIGJyYW5jaAogICAKMjAwMi0wOC0xOSAxNzoyNiAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCAoNS4xKSwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgKDUuMSksIElBTkFpZlR5cGUtTUlCLnR4dAogICAoNS4xKSwgSU5FVC1BRERSRVNTLU1JQi50eHQgKDUuMSksIE1ha2VmaWxlLm1pYiAoNS4yKSwgaWFuYWxpc3QKICAgKDUuMSksIG1pYmZldGNoICg1LjEpLCByZmNsaXN0ICg1LjEpOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCcwogICAKMjAwMi0wOC0xOSAxNzoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICg1LjcpOgoKICAgQmFpbCBvdXQgZm9yIGJhZCBzbm1wQWRtaW5TdHJpbmcgdmFsdWUKICAgCjIwMDItMDgtMTkgMTA6NDMgIGpicG4KCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTMpLCBGQVEgKDUuMTYpOgoKICAgICAtIGRvbid0IHVzZSBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgaW4gZXhhbXBsZXMKICAgICAtIGJyZWFrIGEgY291cGxlIG9mIG92ZXItbG9uZyBsaW5lcwogICAgIC0gbWVudGlvbiBuZXRzbm1wXyB2YXJpYW50IG9mIGRzX3NldF8gZnVuY3Rpb24KICAgCjIwMDItMDgtMTkgMDU6NDQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUyKSwgRkFRICg1LjE1KToKCiAgIEFkZCBhbiBlbnRyeSBhYm91dCB0aGUgc25tcHRyYXBkL0FnZW50WCB3YXJuaW5nIG1lc3NhZ2UuCiAgIAoyMDAyLTA4LTE4IDIxOjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjExKToKCiAgIGRvbid0IGNvbmZpZ3VyZSB3aXRoIGJ1aWxkIGluc3RhbGwgZGlyLCBpdCBpcyBhbHJlYWR5IHNwZWNpZmllZCBvbiBjbWQgbGluZQogICBmb3IgbWFrZSBpbnN0YWxsCiAgIAoyMDAyLTA4LTE4IDEzOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjcpOgoKICAgbW9yZSBkZWJ1Z2dpbmcgLSBsb2cgdmFsdWUgcmVxdWVzdCBpcyB0cnlpbmcgdG8gc2V0CiAgIAoyMDAyLTA4LTE2IDE4OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKDUuOSk6CgogICBhZGRlZCBCcnVjZSBTaGF3IHRvIHRoZSB0aGFua3MgbGlzdAogICAKMjAwMi0wOC0xNiAxODoxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXMgKDEuMik6CgogICBBIGdyZWF0IHVwZGF0ZSB0YWxraW5nIGFib3V0IHBlcmwgYW5kIHNvbGFyaXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAyLTA4LTE2IDA0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgKDUuNCk6CgogICBDYXRjaCBleHBsaWNpdGx5ICdub1N1Y2hJbnN0YW5jZScgZXhjZXB0aW9ucywgd2hlbiB3YWxraW5nIGFuCiAgIGl0ZXJhdG9yLWhhbmRsZWQgbW9kdWxlLCBzbyB0aGF0IGhvbGVzIGNhbiBiZSBza2lwcGVkIGFuZCB0aGUKICAgbmV4dCByZWFsIGluc3RhbmNlIHJldHJpZXZlZC4gIChUaGlzIHdhcyBhbHJlYWR5IGhhbmRsZWQgZm9yCiAgIG1vZHVsZXMgdGhhdCBkaWRuJ3QgbWFyayBtaXNzaW5nIGluc3RhbmNlcyBleHBsaWNpdGx5KS4KICAgCjIwMDItMDgtMTYgMDM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMyk6CgogICB0dXJuIG9mZiBjYWNoaW5nIGJ5IGRlZmF1bHQsIHNpbmNlIHRoZSBhZ2VudHggY29kZSBhcHBlYXJzIGJyb2tlbi4KICAgCjIwMDItMDgtMTYgMDM6MDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoNS41KSwgc25tcF9hZ2VudC5jICg1LjEyKToKCiAgIHNwZWVkIGVuaGFuY2VtZW50cyB2aWEgaW1wbGVtZW50aW5nIGEgcmVnaXN0cmF0aW9uIHN1YnRyZWUgbG9va3VwCiAgIGNhY2hlLiAgZ3JlYXRseSBzcGVlZHMgdGhpbmdzIHVwIHdoZW4gc2ltaWxhciByZXF1ZXN0cyBjb21lIGluCiAgIChzbm1wd2FsaywgLi4uKS4KICAgCjIwMDItMDgtMTUgMTM6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4zKToKCiAgIHByb3RlY3QgYWdhaW5zdCBOVUxMIGxhYmVscyBpbiBzdWJ0cmVlcwogICAKMjAwMi0wOC0xNSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAoNS4zKSwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAoNS40KSwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICg1LjEpLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAoNS4yKSwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAoNS4xKSwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAoNS4xKSwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICg1LjIpLCBzbm1wbGliL3NubXB1c20uYyAoNS4zKToKCiAgIHVzZSBuZXRzbm1wX29pZF9lcXVhbHMgKHdoaWNoIGlzIHNvbWV0aW1lcyBmYXN0ZXIgdGhhbgogICBzbm1wX29pZF9jb21wYXJlKSBpbiBhIGZldyBwbGFjZXMgdG8gYWNoaWV2ZSBiYXJlbHkgbm90aWNlYWJsZSBzcGVlZCBnYWlucy4KICAgCjIwMDItMDgtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4yKToKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgZXhpc3RzIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHN0cmNtcCgpCiAgIAoyMDAyLTA4LTE1IDExOjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwgKDUuNyk6CgogICBjaGFuZ2UgTUFOM1BPRFMgdG8gc29tZXRoaW5nIGNvbXBsaWFudCB3aXRoIHRoZSBwZXJsIG1hbnVhbHMuICBJIHRoaW5rLgogICAKMjAwMi0wOC0xNCAxMzo0MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jICg1LjIpOgoKICAgYWRkIGRlYnVnIGZvciBsb2NhbCBwYXJzaW5nIG9mIGFyZ3MKICAgCjIwMDItMDgtMTQgMTI6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAoNS41KSwgbWFzdGVyX2FkbWluLmMgKDUuNCksCiAgIHN1YmFnZW50LmMgKDUuNSk6CgogICBhZGQgbW9yZSBkZXRhaWxlZCBpbiBkZWJ1ZyBtZXNzYWdlczsgYWRkIGEgZmV3IG5ldyBkZWJ1Z3MKICAgCjIwMDItMDgtMTQgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTEpOgoKICAgd2hlbiBhbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgZmluaXNoZWQsIGNoZWNrIGFsbCByZXF1ZXN0cyBzdGF0dXMgc28gdGhhdAogICBhc3Agc3RhdHVzIGlzIHNldCwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IGFnZW50eCBzZXQgcHJvY2Vzc2luZy4KICAgKG5vdyBpZiBJIGNhbiBqdXN0IGdldCBhbGwgdGhpcyBoYWlyIG9mZiB0aGUgZmxvb3IsIGFuZCBnbHVlIGl0IGJhY2sgdG8gbXkKICAgaGVhZCwgYW5kIHRoZW4gZml4IHRoYXQgZGVudCBpbiB0aGUgd2FsbCB3aGVyZSBJJ3ZlIGJlZW4gYmFuZ2luZyBteSBoZWFkLi4uLikKICAgCjIwMDItMDgtMTMgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYyAoNS4xNCk6CgogICBmaXggYSBsZW5ndGggY29tcGFyaXNvbiBwcm9ibGVtIHdpdGggbmV0c25tcF9vaWRfaXNfc3VidHJlZSgpCiAgIAoyMDAyLTA4LTEzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBORVdTICg1LjYpOgoKICAgZG9jdW1lbnQgYSBmZXcgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTA4LTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgKDUuMSk6CgogICBGaXggb3BlbiBmaWxlIHJ1bmF3YXkgb24gc29sYXJpcy4gIFNlZSBidWcgIzU5MjgwNiByZXBvcnRlZCBieSBKYW1lcyBJcndpbi4KICAgCjIwMDItMDgtMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmggKDUuNyk6CgogICBhcnJheSBvZiBwb2ludGVycyA9IHBvaW50ZXIgdG8gYSBwb2ludGVyCiAgIAoyMDAyLTA4LTA5IDE5OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTCAoNS4xKToKCiAgIG1pc2MgZG9jIGZpeGVzLgogICAKMjAwMi0wOC0wOSAxOTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAoNS40KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggKDUuMiksIHNubXBsaWIvc25tcHVzbS5jCiAgICg1LjIpLCBzbm1wbGliL3NubXB2My5jICg1LjMpOgoKICAgaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICg1LjIpLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKDUuMTMpOgoKICAgc2xpZ2h0IHNwZWVkIHVwcyBmb3Igc25tcF9vaWRfY29tcGFyZSgpIHRvIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgdGlsbCAhPQogICAKMjAwMi0wOC0wOSAxOToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jICg1LjIpOgoKICAgLSBvcGVuc3NsIDAuOS43IHN1cHBvcnQgZm9yIERFUyBjaGFuZ2VzLgogICAtIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE5OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMgKDUuMik6CgogICBpbmRlbnQgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE5OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzY2FwaS5oICg1LjEpLCBzbm1wdXNtLmggKDUuMSk6CgogICBkZWZpbmUgQUVTIGtleSBzcGVjaWZpY3MKICAgCjIwMDItMDgtMDkgMTk6MjYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuOCksIGNvbmZpZ3VyZSAoNS4xNyksIGNvbmZpZ3VyZS5pbiAoNS4xNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gKDUuOSk6CgogICAtIGNoZWNrIGZvciBvcGVuc3NsIC4wLjkuNyBERVMgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zLgogICAtIGNoZWNrIGZvciBBRVMgc3VwcG9ydCBpbiBvcGVuc3NsICg+IDAuOS43KQogICAKMjAwMi0wOC0wOSAxOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNCk6CgogICBmaXggbW9kZSBwcm9jZXNzaW5nIGZvciBSRVNFUlZFMS9SRVNFUlZFMiB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAyLTA4LTA5IDE4OjI5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjEwKToKCiAgIGxvZyBtc2cgd2hlbiB3ZSBpZ25vcmUvZml4IGlsbGVnYWwgZXJyb3JfdmFsdWVzIGZvciB0aGUgY2xpZW50IEFQSXMKICAgCjIwMDItMDgtMDkgMTg6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgKDUuMTIpOgoKICAgY29ycmVjdGlvbnMgdG8gZXhhbXBsZSBjb2RlCiAgIAoyMDAyLTA4LTA5IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjYpOgoKICAgcmV2ZXJ0IGVycm9ycyB0byB1bmluZm9ybWF0aXZlIFNOTVB2MSBub1N1Y2hOYW1lIGZvciBBZ2VudFggZ2V0LW5leHQvaW5jbHVzaXZlCiAgIHByb2Nlc3Npbmc7IGFsc28gYWRkIG1vcmUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUKICAgCjIwMDItMDgtMDkgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgKDUuNCk6CgogICBkZWJ1ZyBtc2cgZm9yIGFnZW50eCBvaWQgZm9yIGNhc2VzIG90aGVyIHRoYW4gZ2V0L2dldG5leHQKICAgCjIwMDItMDgtMDkgMTE6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgKDUuMyk6CgogICBkb24ndCBmcmVlIHJlZ2lzdHJhdGlvbiBpbmZvIG9uIGZhaWx1cmUsIGFzIG5ldHNubXBfcmVnaXN0ZXJfbWliIGFscmVhZHkgZGlkIGl0CiAgIAoyMDAyLTA4LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICg1LjIpLCBzbm1wQ2FsbGJhY2tEb21haW4uYyAoNS4xKSwKICAgc25tcElQWERvbWFpbi5jICg1LjEpLCBzbm1wVENQRG9tYWluLmMgKDUuNCksIHNubXBUQ1BJUHY2RG9tYWluLmMKICAgKDUuNSksIHNubXBVRFBEb21haW4uYyAoNS42KSwgc25tcFVEUElQdjZEb21haW4uYyAoNS43KSwKICAgc25tcFVuaXhEb21haW4uYyAoNS40KSwgc25tcF90cmFuc3BvcnQuYyAoNS4xKToKCiAgICAgLSByZW5hbWUgc25tcF88ZG9tYWluPl9ibGFoIGZ1bmN0aW9ucyB0byBuZXRzbm1wXzxkb21haW4+X2JsYWgKICAgICAtIG1ha2UgdHJhbnNwb3J0IG1lbWJlciBmdW5jdGlvbnMgc3RhdGljLCB0byBlbXBoYXNpc2UgdGhhdCB0aGV5IHNob3VsZAogICAgICAgbm90IGJlIHVzZWQgZGlyZWN0bHkKICAgICAtIGhhbmRsZSBFSU5UUiBpbiBzZW5kIGFuZCByZWN2IGZ1bmN0aW9ucyAoYXMgcG9pbnRlZCBvdXQgYnkgQW50dGkgS3VudHNpCiAgICAgICBpbiBidWcgcmVwb3J0ICM1NzY4MDYpCiAgICAgLSBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA5OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmggKDUuMyksCiAgIHNubXBJUFhEb21haW4uaCAoNS4yKSwgc25tcFRDUERvbWFpbi5oICg1LjIpLCBzbm1wVENQSVB2NkRvbWFpbi5oCiAgICg1LjMpLCBzbm1wVURQRG9tYWluLmggKDUuMik6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwOTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAoNS4zKToKCiAgICAgLSBkb24ndCBleHBvcnQgbmV0c25tcF91bml4X2JsYWgoKSBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDkgMDk6NTMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggKDUuMSk6CgogICAgIC0gZml4IG5hc3R5IGZvcm1hdHRpbmcKICAgCjIwMDItMDgtMDggMTI6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jICg1LjIpOgoKICAgcmV3b3JkIGNvbmZpZ19wZXJyb3IgbXNncyB0byByZW1vdmUgIkVycm9yIiwgYXMgaXQgaXMgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTA4IDEyOjExICByc3RvcnkKCiAgICogc25tcGxpYi9rZXl0b29scy5jICg1LjEpOgoKICAgcmVtb3ZlIGlmZGVmIHRvIGxvZyBtc2cgdG8gdXNlciwgYWZ0ZXIgbWFraW5nIG1zZyBtb3JlIGluZm9ybWF0aXZlOyByZW1vdmUKICAgYW5ub3lpbmcgYmxhbmsgbGluZXMKICAgCjIwMDItMDgtMDggMTE6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuNyksIGNvbmZpZ3VyZSAoNS4xNiksIGNvbmZpZ3VyZS5pbiAoNS4xNCk6CgogICBQYXRjaCBmcm9tIEhhcnJpZSB0byBjb21wbGV0ZWx5IGRpc2FibGUga21lbSB1c2FnZQogICAKMjAwMi0wOC0wNiAwMzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS4zKToKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMzoyNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICg1LjEpOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgCjIwMDItMDgtMDYgMDM6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoNS4zKSwgc25tcF9hcGkuYyAoNS4xMik6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy40KToKCiAgICAgLSBhZGQgZGVidWdnaW5nIG91dHB1dCB3aGVuIGFsbCBhbGFybXMgdW5yZWdpc3RlcmVkCiAgIAoyMDAyLTA4LTA2IDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jIChWNC0yLXBhdGNoZXMuNCk6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3IgdGhpcyBwYXRjaCAoIzU1ODUxNykKICAgCjIwMDItMDgtMDYgMDM6MDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzMsMSwzNl0pOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIHByb3ZpZGluZyB0aGlzIHBhdGNoCiAgIAoyMDAyLTA4LTA1IDEwOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICg1LjMpOgoKICAgbWF0Y2ggZnVuY3Rpb24gZGVmaW5pdGlvbiB3L05ldHNubXBfKl9EYXRhUG9pbnQgdHlwZWRlZnM7IGFkZCBjdnMgSWQKICAgCjIwMDItMDgtMDMgMTE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjUpOgoKICAgYnJlYWsgdXAgbGluZXMgbG9uZyB0aGFuIDgwIGNoYXJzOyBhYmNkZSwgbm90IGFiY2RkCiAgIAoyMDAyLTA4LTAzIDAzOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjQpOgoKICAgbW9yZSB1cGRhdGVzIGFib3V0IHRoaW5ncyBXZXMgZG9lcyBhdCAxMjozMCBhbQogICAKMjAwMi0wOC0wMyAwMjo0NCAgaGFyZGFrZXIKCiAgICogRkFRICg1LjE0KSwgUkVBRE1FICg1LjgpLCBzZWRzY3JpcHQuaW4gKDUuNiksIHBlcmwvU05NUC9TTk1QLnBtCiAgICg1LjEyKSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAoNS41KToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjIgLT4gVjUuMC4zCgoyMDAyLTA4LTAyIDIzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkIC5saWJzCiAgIAoyMDAyLTA4LTAyIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wOC0wMiAyMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTAyIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yZ290dGVuIHRvIGNoZWNrIGluIHRlc3QgZm9yIHBlcmxfZXYgY2hhbmdlcwogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZW1vdmUgZGVidWdnaW5nIHByaW50IChvcHBzKQogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHZlcnNpb24gdXNhZ2UuCiAgIAoyMDAyLTA4LTAyIDIzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjNTcyMzk0IGZyb20gS2F0c3VoaXNhIEFCRToKICAgICAtIHN1cHBvcnQgbGluayBsb2NhbCBhZGRyZXNzZXMKICAgICAtIGJpbmQgdG8gaXB2NiBvbmx5IGlmIElQVjZfVjZPTkxZIGlzIGRlZmluZWQuCiAgIAoyMDAyLTA4LTAyIDIzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IGNvbmZpZ3VyZSBzcGVjaWZpZWQgZGVmYXVsdCB2ZXJzaW9uaW5nCiAgIAoyMDAyLTA4LTAyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM1NzIzOTQ6IGFkZCBpcHY2IHRyYW5zcG9ydHMgd2hlbiAtLWVuYWJsZS1pcHY2IGRlZmluZWQuICBUaGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDgtMDIgMTQ6NTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICB1cGRhdGUKICAgCjIwMDItMDgtMDIgMTQ6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIGRvY3MuCiAgIAoyMDAyLTA4LTAyIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zLCBNYWtlZmlsZS5pbjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBmb3IgeWV0IG1vcmUgc3R1ZmYuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgYSBmZXcgbW9yZSBkaXN0IHJlbGF0ZWQgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlcnJvciBtZXNzYWdlIGNoYW5nZSB0byByZW1vdmUgREVTIHNwZWNpZmljIGVycm9yIG1zZy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIHNwYWNpbmcgZml4ZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnhzOgoKICAgcmVuYW1lZCBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIHJlbmFtZWQgZmlsZQogICAKMjAwMi0wOC0wMiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBBZGQgYSAiZXZhbHZhcnMiIGRpcmVjdGl2ZSB0byBkbyBzaW1wbHkgcmVwbGFjZW1lbnRzLgogICAKMjAwMi0wOC0wMiAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBDVlNVU0VSIHZhcmlhYmxlIHdoZW4gZG9pbmcgc3R1ZmYgaW5zdGVhZCBvZiBteSBoYXJkLWNvZGVkIG5hbWUuCiAgIAoyMDAyLTA4LTAyIDE0OjE0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjaGFuZ2UgY2hlY2tjb21tZW50IHRhZyB0byBleGNsdWRlIHdpbjMyIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGNoYW5nZWxvZyBidWlsZCBub3RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNyZWF0ZWQgYSBob3ctdG8gZmlsZSBmb3IgbWFraW5nIHJlbGVhc2VzCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIGNoYW5nZWxvZyBmaXgtdXAgc2NyaXB0CiAgIAoyMDAyLTA4LTAyIDEwOjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHJhbnNsYXRlICcvJyBpbiBzeXN0ZW0gbmFtZSB0byAnXycgKGZvciBjeWd3aW4pCiAgIAoyMDAyLTA4LTAyIDA5OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIGN2cyBnZXQgY29tbWFuZCBleGFtcGxlCiAgIAoyMDAyLTA4LTAyIDA5OjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBTdXBwcmVzcyAnaW5saW5lJyB3aGVuIG5vdCB1c2luZyBHQ0MuIFN1Z2dlc3RlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDItMDgtMDIgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gb24gc2tpcHBpbmcgbWFrZSB0ZXN0OyBhZGQgLXAgZmxhZyB0byBleGFtcGxlcwogICAKMjAwMi0wOC0wMiAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBkZXNjcmliZSB1c2Ugb2YgbnNiLXBhY2thZ2Ugc2NyaXB0LiBUZXN0ZXJzIGFuZCBjb21tZW50cyBhcHByZWNpYXRlZC4uLgogICAKMjAwMi0wOC0wMiAwODozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBsYXRmb3JtOgoKICAgb3V0cHV0IHBsYXRmb3JtIGluZm8KICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbmFtZWQgdG8gbnNiLXBhY2thZ2UKICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgcmVuYW1lZCBuc2ItYnVpbGQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2NyaXB0IGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTAyIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDaGFuZ2UgbG9jYXRpb24gbmFtZSB0byBVbmtub3duCiAgIAoyMDAyLTA4LTAyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowNCAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggcmV0dXJuIGNvZGUKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGRvbid0IHB1bGwgZmlyc3QgYXJnIHRpbCBhZnRlciBnZXRvcHRzL3NoaWZ0OyBtb3ZlIHNldCBvZiBkZWZhdWx0IG9wdHMKICAgCjIwMDItMDgtMDIgMDc6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgYWRkIC1mIG9wdGlvbiB0byBwcm9tcHQgdG8gb3ZlcnJpZGUKICAgbm8gcHJvbXB0IGZsYWcgKHVzZWZ1bCBmb3IgZXJyb3JzKTsgbmV3IG5zYi1tYWtlIG1ldGhvZDsgY2hlY2sgcmMgb2YKICAgbWFrZSBjbGVhbgogICAKMjAwMi0wOC0wMiAwNzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IHR3ZWFrIHVzYWdlCiAgIAoyMDAyLTA4LTAyIDA3OjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggdHlwbzsgcmVtb3ZlIGV4dHJhIHRyYWlsaW5nIHNsYXNoIGluIGRpcgogICAKMjAwMi0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgY2hlY2sgbW9yZSBwbGFjZXMgdG8gc291cmNlIG5zYi1mdW5jdGlvbnM7IGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgcGF0aAogICAKMjAwMi0wOC0wMiAwNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGp1c3Qgc2hvdyBlcnJvcnMgYWZ0ZXIgYnVpbGQsIG5vdCB3YXJuaW5ncwogICAKMjAwMi0wOC0wMSAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmV2ZXJ0IHRvIG5vbi1hbnNpIHByb3RvdHlwZXMgZm9yIG9sZGVyIHBlcmwgd2l0aCBvbGRlciBjb21waWxlcnMgb24KICAgb2xkZXIgc3lzdGVtcy4gIE5vdCB0aGF0IEknbSBncnVtcHksIG9mIGNvdXJzZS4KICAgCjIwMDItMDgtMDEgMTY6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBjaGVjayBmb3Igb2xkZXIgYW5kIG5ldyBlbWJlZGRlZCBwZXJsIGNhbGwgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTAxIDE0OjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3Qgc3ltbGluayB0byBzcmMgZnJvbSBidWlsZDsgdXBkYXRlIG5zYi1nZXQtY29uZmlnCiAgIAoyMDAyLTA4LTAxIDE0OjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIGRpcgogICAKMjAwMi0wOC0wMSAxMjo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBjb25maWcgaW5zdGFsbCBwYXRoOyByZW1vdmUgcGxhdGZvcm0gc3BlY2lmaWMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDgtMDEgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbW92ZSBoYXJkIGNvZGVkIGluZm8KICAgCjIwMDItMDgtMDEgMTI6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgcHJvbXB0czsgcmVtb3ZlIHByZXZpb3VzIGluc3RhbGxzOyB0d2VhayBlcnIgcGF0dGVybgogICAKMjAwMi0wOC0wMSAxMjoxNCAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpIGluc3RlYWQgb2YgZHNfc2V0X2Jvb2xlYW4oKQogICAKMjAwMi0wOC0wMSAxMjoxMiAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICAgIC0gY2hhbmdlIGNvZGUgc2FtcGxlIHRvIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkKICAgICAtIHVwZGF0ZSByZWZlcmVuY2VzIHRvIGxpYnJhcmllcyAod2hpY2ggd2VyZSBzdGlsbCB0YWxraW5nIGFib3V0CiAgICAgICBsaWJ1Y2RhZ2VudCBldCBhbC4pIC0tIFBMRUFTRSBSRVZJRVcgQkVGT1JFIDUuMC4zCiAgIAoyMDAyLTA4LTAxIDEyOjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbG90cyBvZiBmaXhlcyB0byBwcmV2aW91c2UgdW50ZXN0ZWQgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgc2NyaXB0IHRvIGJ1aWxkIHJlbGVhc2VzLi4uIHN0aWxsIHNvbWUgaGFyZGNvZGluZyB3aGlsZSB0ZXN0aW5nLCBidXQgaXRzCiAgIGdldHRpbmcgdGhlcmUuLi4KICAgCjIwMDItMDgtMDEgMTE6NTEgIHJzdG9yeQoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXA6CgogICB1dGlsaXR5IHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyMi5jOgoKICAgR28gd2l0aCB0aGUgInNjYWxhciBhcyBzdXBlci1oYW5kbGVyIG9mIGluc3RhbmNlIiBpbXBsZW1lbnRhdGlvbi4KICAgU2NhbGFyMS5jIGlzIHByb2JhYmx5IHJlZHVuZGVudCwgYnV0IHdlIGNhbiByZW1vdmUgdGhpcyBsYXRlci4KICAgKFl1cCAtIEknbSBhIGNvd2FyZC4uLi4pCiAgIAoyMDAyLTA4LTAxIDAxOjExICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBNaW5vciB0eXBvcywgcGx1cyBlbXBoYXNpc2UgdGhlIG5lZWQgZm9yIHRoZSBJcEhscEFQSSBsaWJyYXJ5LgogICAKMjAwMi0wNy0zMCAwODoyNiAgZHRzMTIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQ6CgogICBSZWNvZ25pc2UgJzAnIGFzIGEgdmFsaWQgc2V0dGluZyBmb3Igc3VmZml4UHJpbnRpbmcsIGFuZCB1cGRhdGUgdGhlCiAgIHByb21wdHMgdG8gbWF0Y2ggdGhlIHY1IG91dHB1dCBmb3JtYXRzIGRlZmF1bHRzLiBTZWUgQnVnICM1Njc0NTEKICAgCjIwMDItMDctMzAgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXJzdCBhdHRlbXB0IGF0IHRhY2tsaW5nIEJ1ZyAjNTc0NDM0CiAgIFJlY29nbmlzZSB0aGF0IGRlZmF1bHQgb3V0cHV0IGZvcm1hdCBpcyBlcXVpdmFsZW50IHRvIC1PUy4KICAgU25tcHRhYmxlIHN0aWxsIGNyYXNoZXMgd2l0aCAtT2Ygb3IgLU91LCBidXQgYXQgbGVhc3QgdGhlCiAgIGRlZmF1bHQgaW52b2NhdGlvbiB3b3Jrcy4KICAgCjIwMDItMDctMzAgMDU6NDEgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0IG5ld2x5LWRlZmluZWQgcHVibGljIG5hbWVzLCBhbmQgcmUtZXhwb3J0IHNvbWUgcm91dGluZXMgdGhhdAogICBoYXZlIGNoYW5nZWQgbmFtZS4gIFRoaXMgc2hvdWxkIG5vdyBjb21waWxlIHVuZGVyIFZpc3VhbCBDKysgYWdhaW4uCiAgIAoyMDAyLTA3LTMwIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IHJlbW92ZSBhIFJvdy1TdGF0dXMgYXV0by1kZWxldGVkIHJvdyB1bnRpbCB0aGUgbGFzdCBtaW51dGUsCiAgIGluIGNhc2Ugb3RoZXIgKGxvd2VyKSBoYW5kbGVycyB0cnkgdG8gYWNjZXNzIGl0LgogICAKMjAwMi0wNy0zMCAwMTozOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMSksIEZBUToKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gZXNjYXBlIHF1b3RlcyB3aGVuIHF1ZXJ5aW5nIHN0cmluZy1pbmRleGVkIHRhYmxlcy4KICAgCjIwMDItMDctMjkgMjM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1cGRhdGUgcmVnaXN0ZXIgZnVuY3Rpb24gbmFtZQogICAKMjAwMi0wNy0yOSAyMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGF1dG9nZW4gZXhhbXBsZSBjb2RlIGZvciBpbmRleCBjaGVja2luZyBpbiBleHRyYWN0X2luZGV4OyB1cGRhdGUgcmVnaXN0ZXIKICAgZnVuY3Rpb24gbmFtZTsgdXNlIGNvbnRhaW5lciBpbiAqX2dldF9ieV9pZHgoKQogICAKMjAwMi0wNy0yOSAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgbmV3IHN0cnVjdCBuYW1lOyBhZGQgZXhhbXBsZSBjb2RlIGFzIGNvbW1lbnRzIGluc3RlYWQgb2YgdmFyX1hYWAogICBhbmQgc3VjaDsgaW4gYSBmZXcgaW1wb3J0YW50IHBsYWNlcyBhZGQgY29kZSB3aGljaCB3aWxsIGFsbG93IGEgbmV3bHkKICAgZ2VuZXJhdGVkIG1vZHVsZSB0byBiZSBjb21waWxlZCBpZiAtRFRBQkxFX0NPTlRBSU5FUl9UT0RPIGlzIHNwZWNpZmllZDsKICAgcHJvYmFibHkgYSBmZXcgb3RoZXIgdHdlYWtzIEkgZm9yZ290CiAgIAoyMDAyLTA3LTI5IDAzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfYXJyYXkuYywgdGFibGUuYywgdGFibGVfZGF0YS5jCiwgdGFibGVfZGF0YXNldC5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGRlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMuCiAgIChNb3N0IG9mIHRoZXNlIFNob3VsZCBOZXZlciBIYXBwZW4gYnV0IFlvdSBDYW4ndCBCZSBUb28gQ2FyZWZ1bCEpCiAgIAoyMDAyLTA3LTI5IDAzOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgYGRtZmUnIGV0aGVybmV0IGNhcmRzIGFzIGZvdW5kIG9uIE5ldHJhIFgxIG1hY2hpbmVzLgogICAgICAgVGhhbmtzIHRvIEpvaG4gT2xzb24gZm9yIHZlcmlmeWluZyB0aGlzIGZpeC4KICAgCiAgICAgICBBbHNvIG5vdGUgdGhhdCBgaW5kZW50JyBoYXMgLS0tLWVkIHRoZSBmb3JtYXR0aW5nIG9mIHRoaXMgZmlsZQogICAgICAgYmV5b25kIGxlZ2liaWxpdHkgaW4gc2V2ZXJhbCBwbGFjZXMuICBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8KICAgICAgIGRvICp0aGF0KiBhZ2Fpbi4KICAgCjIwMDItMDctMjkgMDI6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRnVsbGVyIHZhbGlkYXRpb24gb2YgUm93U3RhdHVzIHZhbHVlcyB3cnQgcm93IGNyZWF0aW9uL2V4aXN0aW5nIHJvd3MuCiAgIAoyMDAyLTA3LTI5IDAxOjI1ICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFRha2UgYWNjb3VudCBvZiByZWNlbnQgY2hhbmdlcyBpbiBsaWJyYXJ5IGZpbGVzLgogICAnUmVsZWFzZScgYXBwbGljYXRpb25zIHN0aWxsIGRvbid0IGxpbmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdAogICB0aGUgbGlicmFyaWVzIGNvbXBpbGUsIGFuZCB0aGUgJ0RlYnVnJyBzaWRlIHNlZW1zIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTI5IDAxOjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFR3ZWFrIGlubGluZSBoYW5kbGluZyBmb3IgQUlYIC0gc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDItMDctMjYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGF1dG9kZXBlbmRlbmNpZXMgdW50aWwgcG9ydGFibGUgc29sdXRpb24gY2FuIGJlIGZvdW5kCiAgIAoyMDAyLTA3LTI2IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgbWliX21vZHVsZV9pbml0cy5oOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChvYnNvbGV0ZSkgdWNkLXNubXAvcmVnaXN0cnkgbW9kdWxlLgogICAKMjAwMi0wNy0yNiAwNzozMiAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBQcm90ZWN0IHRoZSBXaW4zMiB2ZXJzaW9uIG9mIHRoZSBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgb3RoZXIgaGVhZGVyCiAgIGZpbGVzIHJlY29nbmlzZSB0aGF0IGl0IGhhcyBpbmRlZWQgYmVlbiBpbmNsdWRlZC4KICAgCjIwMDItMDctMjYgMDc6MjQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjApLCBGQVE6CgogICBBIGJpdCBtb3JlIGRldGFpbCBvbiBtaWIyYywgcGx1cyB0aGUgbm9uLXdyaXRlYWJpbGl0eSBvZiBzeXN7TG9jYXRpb24sQ29udGFjdH0KICAgCjIwMDItMDctMjYgMDU6MjIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjkpLCBGQVE6CgogICBBbm90aGVyIGVudHJ5IGFib3V0IGludmFsaWQgdXNlIG9mIG1pYjJjLgogICAKMjAwMi0wNy0yNiAwNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFN1cHByZXNzIHRoZSAibm9uLXN0YW5kYXJkIiBjb25kaXRpb25hbCBjb25zdHJ1Y3QsCiAgIHNpbmNlIGl0J3Mgbm90IHJlY29nbmlzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiAnbWFrZScuCiAgIAoyMDAyLTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIHRoZSAnc2NhbGFyJyBhbmQgJ3dhdGNoZXInIGhlbHBlcnMgdG8gdGhlIGhlbHBlciBsaWJyYXJ5LgogICAKMjAwMi0wNy0yNSAwMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIFN1cHBvcnQgZm9yIHdhdGNoaW5nIGEgc3lzVXBUaW1lIG1hcmtlci4KICAgCjIwMDItMDctMjUgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIE5ldyByb3V0aW5lIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIHZhbHVlIGRpcmVjdGx5IGZyb20gYSByZXF1ZXN0IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMTM6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNoZWNrIGZvciBzZXR0aW5nIHNhbWUgdmFsdWUgaW4gZHNfc2V0X3N0cmluZywgc2luY2UgaXQgZnJlZXMgdGhlIG9sZAogICB2YWx1ZSBiZWZvcmUgZHVwaW5nIHRoZSBuZXcgb25lCiAgIAoyMDAyLTA3LTI0IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICBmaXJzdCBzdGFiIGF0IGluaXQuZCBzdGFydHVwIHNjcmlwdCBmb3Igc25tcGQKICAgCjIwMDItMDctMjQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgV2hlbiBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIG9uZSBjb2x1bW4sIGFuZCBtb3Zpbmcgb24gdG8gdGhlIG5leHQKICAgKGluIGEgR2V0TmV4dCksIHdlIG5lZWQgdG8gc3RhcnQgYWdhaW4gd2l0aCB0aGUgZmlyc3Qgcm93LgogICBUaGlzIGlzIHByb2JhYmx5IHRoZSBpbnRlbnRpb24gb2YgdGhlIGNvbmRpdGlvbmFsIGJsb2NrIGF0IHRoZSBzdGFydAogICBvZiB0aGlzIGxvb3AsIGJ1dCBJIGNhbid0IHNlZSBob3cgdGhpcyB0ZXN0IGNvdWxkIGV2ZXIgcG9zc2libHkgbWF0Y2guCiAgIAogICBOb3RlIHRoYXQgdGhlcmUgaXMgYWxzbyBhIHJlZmVyZW5jZSB0byB0aGUgcm93IGRhdGEgYWNjZXNzaWJsZSB2aWEKICAgdGhlICdyZXF1ZXN0LT5wYXJlbnRfZGF0YScgZGF0YSBsaXN0LiAgIFRoaXMgd2lsbCBhbHNvIG5lZWQgdG8gYmUKICAgcmV3b3VuZC4gIFN1Z2dlc3Rpb25zIGFzIHRvIGhvdyBiZXN0IHRvIGRvIHNvIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCiAgIAoyMDAyLTA3LTI0IDA2OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgZmFpbGluZyB0byBleHRyYWN0IGEgcm93IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMDY6MzUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBpbnZhbGlkIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTIzIDE0OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtaXNzaW5nIGNvbW1lbnQgdGVybWluYXRvci46LSgKICAgCjIwMDItMDctMjMgMTI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKICAgCjIwMDItMDctMjMgMTI6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICBhZGQgbmV3IG5ldHNubXBfYXNzZXJ0LCB3aGljaCBkZWZhdWx0cyB0byBsb2dnaW5nIGEgbWVzc2FnZQogICAKMjAwMi0wNy0yMyAwNzo0MyAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zIChWNC0yLXBhdGNoZXMuMyksIG1pYl9hcGkuMy5kZWY6CgogICBGaXggdGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgJ3NwcmludF9yZWFsbG9jJyBjYWxscywgdG8gaW5jbHVkZSB0aGUgJ2FsbG93X3JlYWxsb2MnIHBhcmFtZXRlci4KICAgCjIwMDItMDctMjIgMTA6NTggIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYywgbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyAoYWxtb3N0IGVtcHR5KSBzcGVjIGZpbGU7IHN0YXJ0IGNyZWF0aW5nIGZ1bmN0aW9ucyBmb3IgYXV0b21hdGVkIGJ1aWxkcwogICAKMjAwMi0wNy0yMiAwMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEEgbW9yZSBnZW5lcmFsaXNlZCBmb3JtIG9mIHRoZSAnbnNfcmVnaXN0ZXJfe3R5cGV9X2luc3RhbmNlJyByb3V0aW5lcywKICAgaW1wbGVtZW50ZWQgYXMgYSBzZXBhcmF0ZSBoZWxwZXIgbW9kdWxlLCBhbmQgdXNlYWJsZSB3aXRoIGJvdGggdGhlCiAgIGluc3RhbmNlIGFuZCBzY2FsYXIgaGVscGVycy4KICAgICBUaGlzIGFsc28gc3VwcG9ydHMgYXJiaXRyYXJ5IEFTTiB0eXBlcyAoaW5jbHVkaW5nIHN0cmluZ3MgYW5kIE9JRHMpLgogICAKMjAwMi0wNy0yMiAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyMi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oOgoKICAgQWdlbnQgaGVscGVyIG1vZHVsZSBmb3Igc3VwcG9ydCBvZiBzY2FsYXIgb2JqZWN0cy4KICAgVmVyeSBzaW1pbGFyIHRvIHRoZSAiaW5zdGFuY2UiIGhlbHBlciwgZXhjZXB0IHRoYXQgdGhpcyBkZWFscyB3aXRoCiAgIGludmFsaWQgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgYXMgd2VsbCAocmVwb3J0aW5nIG5vU3VjaEluc3RhbmNlCiAgIHJhdGhlciB0aGF0IG5vU3VjaE9iamVjdCkuCiAgIAogICBUaGVyZSBhcmUgdHdvIHBhcmFsbGVsIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgbW9tZW50OgogICAgIC0gc2NhbGFyMSBpcyBlc3NlbnRpYWxseSBhbiBlbmhhbmNlZCBjb3B5IG9mIHRoZSBpbnN0YW5jZSBoZWxwZXIsCiAgICAgICBidXQgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBpdC4KICAgICAtIHNjYWxhcjIgc2l0cyBhYm92ZSB0aGUgaW5zdGFuY2UgaGVscGVyLCBhbmQgdXNlcyB0aGF0IHRvIGRvIG1vc3QKICAgICAgIG9mIHRoZSByZWFsIHByb2Nlc3NpbmcuCiAgIFNjYWxhcjEgaXMgcHJvYmFibHkgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQsIHdoaWxlIHNjYWxhcjIgZmVlbHMgbW9yZQogICBpbiBrZWVwaW5nIHdpdGggdGhlIGdlbmVyYWwgZXRob3Mgb2YgdGhlIGhhbmRsZXIgbWVjaGFuaXNtLgogICBXZSBwcm9iYWJseSBuZWVkIHRvIGRlY2lkZSB3aGljaCB0byBhZG9wdCwgYW5kIGp1bmsgdGhlIG90aGVyLgogICAKMjAwMi0wNy0xOSAxNDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHVzZSBuZXQgYWdlbnR4IHJldGlyZXMvdGltZW91dCBkcyB2YWx1ZXMKICAgCjIwMDItMDctMTkgMTQ6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgcmVnaXN0ZXIgcGFyc2VyIGZvciBhZ2VudHhUaW1lb3V0IGFuZCBhZ2VudHhSZXRyaWVzIHRva2VucwogICAKMjAwMi0wNy0xOSAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbi1leGlzdGVudCBuc3RBZ2VudCogZmlsZXMKICAgCjIwMDItMDctMTkgMTQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbW92ZSBPTkVfU0VDIHRvIGRlZmluaXRpb25zLmg7IGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMgZGVmYXVsdHMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oOgoKICAgbW92ZSBkZWZpbml0aW9uIG9mIE9ORV9TRUMgaGVyZSBmcm9tIHNubXBkLmMKICAgCjIwMDItMDctMTkgMTE6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcGFzcyBsb2NhbCBvYmosIG5vdCByYW5kb20gdW5pdGlhbGl6ZWQgcG9pbnRlci46LSgKICAgCjIwMDItMDctMTkgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgTUFYUEFUSExFTiBpc24ndCBkZWZpbmVkLgogICAKMjAwMi0wNy0xOSAwMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgdGhlICJzeXN0ZW0taW5kZXBlbmRlbnQiIFNOTVBfTUFYUEFUSCBsZW5ndGggZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIE1BWFBBVEhMRU4KICAgCjIwMDItMDctMTggMjI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub25leGlzdGVudCBtaWJncm91cC9uc3RBZ2VudE1vZHVsZU9iamVjdC5oCiAgIAoyMDAyLTA3LTE4IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIgKQogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4xIC0+IFY1LjAuMgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWlub3IgcGF0Y2ggZm9yIG5vbi1leGlzdGVudCAoZGllZCkgbG9nIGZpbGVzLgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4yCgoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG1ha2UgZGVwZW5kIGZpeGVzLgoJCjIwMDItMDctMTggMTg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhbGFybS5jLCBldmVudC5jOgoKICAgbWFrZSB0aGUgcm1vbiBjb2RlIGNvbXBpbGUuCiAgICAtIG5ldyBzdWJ0cmVlIHBvaW50ZXIgc3RydWN0dXJlLgogICAgLSBzcHJpbnRfb2JqaWQgLT4gc25wcmludF9vYmppZAogICAKMjAwMi0wNy0xOCAxODozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBzaWxlbmNlIHBlcmwgc3ViZGlyZWN0b3J5IGJ1aWxkIGNvbW1hbmRzLgogICAKMjAwMi0wNy0xOCAxODozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIFVzZSBuZXRzaCAtdCAtZCB4bWwgdG8gZ2V0IHhtbCBvdXRwdXQgZnJvbSBuZXRzaC4KICAgICAoT2ssIEknbSBzaXR0aW5nIGhlcmUgYXQgYW4gSUVURiBjb25mZXJlbmNlIGhhdmluZyBhbiBhcmd1bWVudCBhYm91dAogICAgICB4bWwgdnMgQkVSIGFuZCBuZWVkZWQgYSBYTUwoLWxpa2UpIGV4YW1wbGUgb2YgYSBodWdlIGRhdGEgc2V0LCBzbyBJCiAgICAgIG1hZGUgbmV0c2ggZG8gaXQuKQogICAKMjAwMi0wNy0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gaW5pdGlhbCBzdXBwb3J0IGZvciBkb2luZyByZXF1ZXN0cyBmcm9tIG11bHRpcGxlIGhvc3RzIChyZXRyaWV2YWwsIG5vdCBzZXRzKQogICAKMjAwMi0wNy0xOCAxNzo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBtb3JlIGZpeGVzIHRvIHN0aWxsIHVnbHkgY29sb3JpemVkIHRleHQgKHdlbGwsIHRoZSB0ZXh0IGlzIHByZXR0eSBidXQKICAgdGhlIHN1cHBvcnQgaXMgdWdseSkuCiAgIAoyMDAyLTA3LTE4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBjaGFuZ2UgdGV4dCBzdHJpbmcgZXJyb3IgdG8gbWF0Y2ggZnVuY3Rpb24gbmFtZSBjYWxsZWQuCiAgIAoyMDAyLTA3LTE4IDE1OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW5hbWUgZnJlZSAtPiBjZnJlZSB0byBhdm9pZCBzb21lIHByb2JsZW0gd2VzIGhhZC4uLiA7LSkKICAgCjIwMDItMDctMTggMTQ6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdHdvIHBlb3BsZSBmaXhpbmcgbWVtb3J5IGxlYWsgaW4gZGlmZmVyZW50IHBsYWNlcyA9IHNlZ2ZhdWx0CiAgIAoyMDAyLTA3LTE4IDExOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgJG5hbWUgLT4gJGkKICAgCjIwMDItMDctMTggMTA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTggMDk6NDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1kZWJ1Zy10b2tlbnMsIC0taW5kZW50LW9wdGlvbnMKICAgCjIwMDItMDctMTggMDk6MTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCBzbm1wbGliL3NubXAtdGMuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIEFwcGx5IHBhdGNoIGZyb20gQnVnICM1ODIzNDcsIGZvciBJcml4IDYuNSBzdXBwb3J0LgogICBTdWJtaXR0ZWQgYnkgSmFuIFllbnlhIEthc3ByemFrCiAgIAoyMDAyLTA3LTE4IDA5OjEyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuOC5kZWY6CgogICBGaXggbWFya3VwIHByb2JsZW0gb24gc25tcHRyYXBkIG1hbiBwYWdlIChCdWcgIzU4MzMyOSkKICAgCjIwMDItMDctMTggMDk6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVGhlIGZpeCBmb3IgdGhlIHRtX2dtdG9mZiBwcm9ibGVtIG9uIEFJWCAoQnVnICM1NjU3NjkpIGFsc28gYXBwbGllcyB0byBBSVggNQogICAKMjAwMi0wNy0xOCAwOTowNiAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAoVjQtMi1wYXRjaGVzLjEpLCBlbmNvZGVfa2V5Y2hhbmdlLmMKOgoKICAgRml4IG9mZi1ieS1vbmUgYnVmZmVyIG92ZXJmbG93IChwYXRjaCAjNTc3MjYxKQogICAKMjAwMi0wNy0xOCAwODo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgR2VuZXJhdGUgb25lIGNvZGUtZmlsZSBwZXIgdGFibGUgKHRvIG1hdGNoIHRoZSBoZWFkZXIgc3RydWN0dXJlKS4KICAgTXkgYXBvbG9naWVzIGlmIHRoaXMgaXNuJ3QgY29ycmVjdCwgUm9iZXJ0IC0gYnV0IHRoZSBwcmV2aW91cyBiZWhhdmlvdXIKICAgc2VlbWVkIHRvIGJlIGJyb2tlbi4KICAgCjIwMDItMDctMTggMDg6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFRhY2tsZSBzb21lIG9mIHRoZSBpbW1lZGlhdGUgZGVmaWNpZW5jaWVzIGluIHRoZSBmaXJzdCBkcmFmdCBvbGQtYXBpIGNvbmZpZy4KICAgKE5vdyB0aGF0IFdlcyBoYXMgcG9pbnRlZCBtZSBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uISkKICAgCjIwMDItMDctMTggMDg6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHRoZSAnZGVjbCcgc3Vic3RpdHV0aW9uIGhhbmRsaW5nIChzbyBpdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludGVybmFsIHRva2VuIGFzIHdlbGwpLgogICAKMjAwMi0wNy0xOCAwNzoxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBQcm92aWRlIHRoZSBtaXNzaW5nIHBhcmFtZXRlciBpbiBhIHJlYWRfb25seSBpbnN0YW5jZSByZWdpc3RyYXRpb24uCiAgIAoyMDAyLTA3LTE4IDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBCcmluZyB0aGUgJ3JlYWRfb25seV9pbnQnIGluc3RhbmNlIGhhbmRsZXIgaW4gbGluZSB3aXRoIHRoZSByZXN0IG9mCiAgIHRoZSBjb252ZW5pZW5jZSBpbnN0YW5jZSBoYW5kbGVycy4KICAgKGFuZCBldmVuIGJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lIGFuZCBkZWNsYXJlIHRoZSB0aGluZy4uLi4pCiAgIAoyMDAyLTA3LTE4IDA1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYW5vdGhlciBtZW1vcnkgbGVhayBkdWUgdG8gYW4gaW1wcm9wZXIgaWZkZWZlZCBvdXQgc2VjdGlvbiBvZiBjb2RlCiAgIAoyMDAyLTA3LTE4IDA0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBJJ20gYmVnaW5uaW5nIHRvIHJlZ3JldCBldmVyIHJ1bm5pbmcgaW5kZW50IG9uIHRoZSBjb2RlIGJhc2UuLi4KICAgCjIwMDItMDctMTcgMTU6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICBkb2N1bWVudCBhbmQgaW5zdGFsbCBtaWIyYy5vbGQtYXBpLmNvbmYKICAgCjIwMDItMDctMTcgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggc2VnZmF1bHQgKHBvc3NpYmx5IGNyZWF0aW5nIG1lbW9yeSBsZWFrKTsgYXV0aG9yIG5lZWRzIHRvIGV4YW1pbmUgY29kZQogICAKMjAwMi0wNy0xNyAwNzo0MSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNvbmYsCiAgIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLmludF93YXRjaC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgRGF2ZSdzIGJlaW5nIHVucmVhc29uYWJseSBwaWNreSBhYm91dCBncmFtbWFyICYgc3BlbGxpbmcgYWdhaW4uCiAgIEp1c3QgaWdub3JlIGhpbSwgYW5kIGhlJ2xsIGdvIGF3YXkuLi4uLgogICAKMjAwMi0wNy0xNyAwNzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgb2xkIDR4LXN0eWxlIGFnZW50IEFQSSB1c2luZyB0aGUgbmV3IHZlcnNpb24gb2YgbWliMmMuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHR5cGVzIHByb3Blcmx5LCBhbmQgSSdtIHN1cmUgSSdsbCBoYXZlIGJ1Z2dlcmVkIHVwIHNvbWUgb2YKICAgdGhlIGNvbnRyb2wgc3RydWN0dXJlIGhhbmRsaW5nLCBidXQgaXQgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZXRoaW5nIHRoYXQncwogICBwcmV0dHkgY2xvc2UgdG8gdGhlIG9sZCBvdXRwdXQuICAgSXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLi4uLi4KICAgCjIwMDItMDctMTYgMjI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgcmVzdG9yZSBpbmxpbmUgZnVuY3Rpb25zIChzaWdoLiBJIGZlZWwgbGlrZSBJJ20gcGxheWluZyByaW5nLWFyb3VuZC10aGUtcm9zaWUpCiAgIAoyMDAyLTA3LTE2IDIxOjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbmFtZSBzb21lIHN0cnVjdCBtZW1iZXJzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgYSBiaXQgb2YgcmUtb3JkZXJpbmcKICAgaW4gdGhlIHNldCBjb2RlOyBuZXcgZmxhZ3MgZm9yIG5ldyBhbmQgZGVsZXRlZCByb3dzOyByb3cgZGVsZXRlcyBub3cKICAgYWN0dWFseSB3b3JrIQogICAKMjAwMi0wNy0xNiAxOTozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGFuZ2UgY29tcGxleCBtYWNyb3MgaW50byBmdW5jdGlvbnMuIHdvdWxkIGJlIG5pY2UgaWYgQyBoYWQgaW5saW5lLgogICAKMjAwMi0wNy0xNiAxODowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHVtbSwgdHJ5IHVzaW5nIGNvcnJlY3QgZGVmaW5lLjotLwogICAKMjAwMi0wNy0xNiAxODowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHRlc3QgdGhhdCBuZXQtc25tcC1jb25maWcuaCBoYXMgYmVlbiBpbmNsdWRlZCwgaW5zdGVhZCBvZiBhY3R1YWxseSBpbmNsdWRpbmcgaXQuLgogICAoc2hvdWxkbid0IHRoaXMgcmVhbGx5IGJlIGluIGFsbCB0aGUgaGVhZGVyIGZpbGVzPykKICAgCjIwMDItMDctMTYgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTYgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0xNiAxMToxNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcyAoZ3J1bWJsZSBncnVtYmxlKQogICAKMjAwMi0wNy0xNiAxMToxNCAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuZGVwZW5kLCBtaWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGZhY3RvcnkuYwogICAKMjAwMi0wNy0xNiAxMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2NvbnRhaW5lcl9pbml0X2xpc3QoKSBpbiBzdGFydHVwIGluaXRzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLCBzbm1wbGliL29pZF9hcnJheS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hnIHBhcmFtIHR5cGUgZnJvbSB2b2lkKiB0byBzdHJ1Y3QgKgogICAKMjAwMi0wNy0xNiAxMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaDsgYWRkIGZhY3RvcnksIGJpbmFyeSBhcnJheSAuW2NoXTsgZGVyaXZlCiAgIE9CSlMgYW5kIExPQkpTIGZyb20gQ1NSQ1M7IGFkZCAob3B0aW9uYWwpIGF1dG8gZGVwZW5kZW5jeSBnZW5lcmF0aW9uCiAgIAoyMDAyLTA3LTE2IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaAogICAKMjAwMi0wNy0xNiAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIHN0cnVjdCBzdWJ0cmVlIC0+IG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNiAwOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGxhc3QgcmVtYWluaW5nIHJlZnMgdG8gbm93IGRlZnVuY3Qgb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBnZW5lcmljIGJpbmFyeSBhcnJheSBjb250YWluZXIgZXh0cmFjdGVkIGZyb20gb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaDsgbmV3IHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaW5kZXggKG9pZCBwdHIgKyBsZW4pCiAgIAoyMDAyLTA3LTE2IDA5OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgZ2VuZXJpYyBjb250YWluZXIgaW50ZXJmYWNlOyB1c2UgbmV3IG5ldHNubXBfaW5kZXggaW5zdGVhZCBvZgogICBvaWRfYXJyYXlfaGVhZGVyOyByZW5hbWUgYXJyYXlfZ3JvdXAgLT4gcmVxdWVzdF9ncm91cAogICAKMjAwMi0wNy0xNiAwOTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaXRlcmF0b3JzOyBtb3JlIGZ1bmN0aW9uIHR5cGVkZWZzOyByZW5hbWUgc29tZSBmdW5jIHB0cnMsIGFkZCBmaW5kX25leHQsCiAgIGdldF9zdWJzZXQsIGdldF9pdGVyYXRvciwgZm9yX2VhY2gsIG5jb21wYXJlOyBhZGQgYWJpbGl0eSB0byBoYXZlIG5lc3RlZAogICBjb250YWluZXJzOyBtb3JlIHV0aWxpdHkgcm91dGluZXM7IGNvbnZlbmllbmNlIG1hcmNyb3M7IHN0YXJ0IGFkZGluZyBjb21tZW50cwogICAKMjAwMi0wNy0xNiAwOToyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5Lmg6CgogICBkZWNsYXJhdGlvbnMgZm9yIGEgZ2VuZXJpYyBmYWN0b3J5CiAgIAoyMDAyLTA3LTE2IDA4OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9keW5peC5jLCBtZW1vcnlfaHB1eC5jCiwgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9ocHV4LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIGJ1ZyByZXBvcnQgNTgxNjE4IChhbHNvIGFwcGxpY2FibGUgdG8gZHluaXgpCiAgIFByb3ZpZGVkIGJ5IE5pY2hvbGFzIEwuIE5pZ2F5CiAgIAoyMDAyLTA3LTE2IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgcmVtb3ZlICJvdXIiIHByb2JsZW0gYW5kIHVzZSBvbGRlciAidXNlIHZhcnMiIGluc3RlYWQgZm9yIG9sZGVyIHBlcmwuCiAgICAgKHRoaXMgc2hvdWxkIG1ha2UgaXQgd29yayB3aXRoIHBlcmwgNS4wMDUuICBDb3VsZCBzb21lIG9uZSB0ZXN0IHRoaXMKICAgICAgZm9yIG1lPykKICAgCjIwMDItMDctMTUgMDY6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIG5hbWVzIG9mIG5ldHNubXBfc3VidHJlZSBlbGVtZW50cyBjaGFuZ2VkCiAgIAoyMDAyLTA3LTE1IDA2OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNSAwNToyNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBTb21lIHJlYWxseSBuYXN0eSBoYWNrcyB0byBnZXQgY29sb3JpemVkIHRhYmxlcyB0byB3b3JrLgogICAKMjAwMi0wNy0xNCAyMDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWIudDoKCiAgIGNvbW1lbnQgb3V0IGJyb2tlbiB0ZXN0cyBmb3Igbm93IChYWFggbWFya2VkKQogICAKMjAwMi0wNy0xNCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZ2V0YnVsay4KICAgCjIwMDItMDctMTQgMjA6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBBIG5ldyBmdW5jdGlvbiB0byBjYWxsIGEgc3ViLWhhbmRsZXIgYnV0IHBhc3NpbmcgaXQgb25seSBvbmUgcmVxdWVzdCB0byBoYW5kbGUuCiAgIAoyMDAyLTA3LTEwIDIxOjIxICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkZWZpbmUgTE9HX0RBRU1PTiwgc2luY2Ugd2luZG93cyBkb2Vzbid0IGhhdmUgaXQKICAgCjIwMDItMDctMTAgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBkZWZpbmUgb2YgaW5fYWRkcl90LCB3aGljaCBjYW4gYmUgZm91bmQgaW4gbmV0LXNubXAvdHlwZXMuaAogICAKMjAwMi0wNy0xMCAwMjozNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTAgMDI6MzUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBkb24ndCB1c2UgMCBpbiAlcCBmb3JtYXQgc3BlY2lmaWVycwogICAKMjAwMi0wNy0xMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIGZpeCBzb21lIGhvcnJpYmxlIGluZGVudCBicm9rZW4gZm9ybWF0dGluZwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gcmVtb3ZlIHNvbWUgb2Jzb2xldGUgdmFyaWFibGVzCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHJlZmxlY3QgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBmcm9tIGFnZW50X3JlZ2lzdHJ5CiAgIAoyMDAyLTA3LTEwIDAyOjMyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgICAgLSBjaGFuZ2VzIGR1ZSB0byByZW5hbWluZyBvZiBzdHJ1Y3Qgc3VidHJlZSB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIE5PVEUgTUVNT1JZIExFQUsgKHdoaWNoIEkgY2FuJ3Qgc2VlIGhvdyB0byBmaXggLS0gbmV3IGFnZW50IEFQSQogICAgICAgZXhwZXJ0cyBwbGVhc2UgZXhhbWluZSkKICAgCjIwMDItMDctMTAgMDI6MjkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gbmFtZSwgc3RhcnQsIGVuZCBtZW1iZXJzIGFyZSBub3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRvIHJlZHVjZQogICAgICAgd2FzdGVkIG1lbW9yeSAoYnkgYSBmYWN0b3Igb2YgNSBvciBzbykKICAgICAtIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCBjb25zaXN0ZW50bHkKICAgCjIwMDItMDctMTAgMDI6MjAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG5ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMDkgMDY6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUgY2FjaGVfaWQgc3RvcmFnZSB3aGVuIGNsb3Npbmcgc2Vzc2lvbgogICAKMjAwMi0wNy0wOSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0ganVzdCBjYWxsIG5ldHNubXBfZHNfc2h1dGRvd24oKSBvbmNlIGluIHNubXBfc2h1dGRvd24oKQogICAKMjAwMi0wNy0wOSAwNDoxNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBuZXRzbm1wX2ZpeHVwX21pYl9kaXJlY3RvcnkoKQogICAKMjAwMi0wNy0wOSAwMzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBhIGNhc3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wOCAyMjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGV4dGVybiBDIGZvciBDKysgY29tcGlsZXMKICAgCjIwMDItMDctMDggMDc6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wNy0wNyAxOTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0wNyAxOTozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA3LTA3IDE5OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIHByb2MuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDItMDctMDcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG1ha2UgcGFyYW0gY29uc3Q7IGZpeCBjb21waWxlIGNvbnN0IHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpeCBtZW1vcnkgbGVhazsgcHJlcCBhIGZldyBjb21tZW50cyBmb3IgaW5kZW50CiAgIAoyMDAyLTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMi5wcmUxICkKICAgCjIwMDItMDctMDYgMTQ6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSBwcm9qZWN0IHZlcnNpb24gdG8gNS4wLjIKICAgCjIwMDItMDctMDYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHNubXB0cmFwZCBpcyBhY3R1YWxseSBidWlsdCBpbiB0aGUgYXBwcyBkaXJlY3RvcnksIG5vdCB0aGUgYWdlbnQgZGlyZWN0b3J5LgogICAKMjAwMi0wNy0wNSAxMTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xhcmlmeSBkaXJlY3Rpb25zIGZvciBvYnRhaW5pbmcgcGVybC9TTk1QIG1vZHVsZS4KICAgCjIwMDItMDctMDUgMDU6MTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gLi4uCiAgIAoyMDAyLTA3LTA1IDAzOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2NsaWVudC5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gc3lzT2JqZWN0SUQgd2FzIGJlaW5nIHJldHVybmVkIG1pbnVzIGl0cyBsYXN0IHN1Yi1pZGVudGlmaWVyIGJlY2F1c2UKICAgICAgIHRoZSBsZW5ndGggdmFyaWFibGUgaGFkIG5vdCBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IGl0CiAgICAgICBpcyBub3cgbG9uZ2VyLiAgQ29kZSBjaGFuZ2VkIHRvIHVzZSBzaXplb2YoKSBpbnN0ZWFkLCBzbyB0aGlzIHdvbid0CiAgICAgICBoYXBwZW4gYWdhaW4uICBSZXBvcnRlZCBieSBTdGlhbiBTb2lsYW5kIChidWcgIzU3NzQzOSkuCiAgIAoyMDAyLTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAKICAgCjIwMDItMDctMDQgMDc6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIGhhbmRsaW5nIG9mIG9wYXF1ZSBwb2ludGVyIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cyB0bwogICAgICAgYXZvaWQgYm90aCBtdWx0aXBsZSBmcmVlKCkgcHJvYmxlbSBhbmQgdW5uZWNlc3NhcnkgY29weWluZy4KICAgCjIwMDItMDctMDQgMDY6MDAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAoVjQtMi1wYXRjaGVzLls1LDldKSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTmV0d29ya0Rpc2sgcGF0Y2ggIzU1NDU1NAogICAKMjAwMi0wNy0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oCiAgIChWNC0yLXBhdGNoZXMuWzUsMV0pLCBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5GUyBmaWxlc3lzdGVtIHBhdGNoICM1NTQ1NTMKICAgKHNpbXBsaWZpZWQgdG8gYXZvaWQgdGhlIHJlLWluZGVudGF0aW9uIC0gd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIHNlZQogICAgd2hhdCdzIGNoYW5nZWQuICBUaGUgd2hvbGUgSG9zdFJlcyBncm91cCBuZWVkcyBjbGVhbmluZyB1cCBhbnl3YXkhKQogICAKMjAwMi0wNy0wNCAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5zdXJlIHRyYW5zcG9ydCBvcGFxdWUgZGF0YSBpc24ndCBtdWx0aXBseSBhc3NpZ25lZAogICAoYW5kIGhlbmNlIG11bHRpcGx5IGZyZWVkKSBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMuCiAgIERhdGFncmFtLWJhc2VkIHRyYW5zcG9ydHMgZG9uJ3Qgc3VmZmVyIGZyb20gdGhpcyBwcm9ibGVtLgogICBCYXNlZCBvbiBQYXRjaCA1NzM3NzEKICAgCjIwMDItMDctMDMgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGJlIHByZWNpc2UgYWJvdXQgd2hhdCBmaWxlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGFjY2VzcyBjb250cm9sCiAgIAoyMDAyLTA3LTAzIDE0OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCBtaW5vciBncmFtbWFyIGVycm9yczsgYWRkIGRlc2NyIGZvciBtaWIyYy5hcnJheS11c2VyOyBhZGQgc2VjdGlvbiBoZWFkZXIKICAgZm9yIGdlbmVyYXRpbmcgaGVhZGVyIGRlZmluaXRpb24gZmlsZXMKICAgCjIwMDItMDctMDMgMTM6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1vdmUgaW5jbHVkZSBmb3IgaW5fYWRkcl90IHRvIG5ldC1zbm1wL3R5cGVzLmgsIHdoZXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkCiAgIGZvciBzeXN0ZW1zIHcvb3V0IG5ldGluZXQvaW4uaAogICAKMjAwMi0wNy0wMyAxMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgbW9yZSB0d2Vha3Mgbm90aWNlZCBvbiB0aGUgbWFpbGluZyBsaXN0CiAgIAoyMDAyLTA3LTAzIDA4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBtYWtlIHRlc3QgY2xlYW51cHMgdGVzdC5wbAogICAKMjAwMi0wNy0wMyAwMzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMgKFY0LTItcGF0Y2hlcy4xKSwgdXRpbF9mdW5jcy5jCjoKCiAgIFNodXQgdGhlIGFnZW50IGRvd24gY2xlYW5seSBiZWZvcmUgcmVzdGFydGluZy4KICAgVGhpcyBjbG9zZXMgYW55IFNOTVAvQWdlbnRYIHBvcnRzIGFzIHdlbGwuCiAgIAoyMDAyLTA3LTAzIDAzOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBPSUQgc3ViLWlkZW50aWZpZXJzIGFyZSB1bnNpZ25lZCwgc28gdHJlYXRpbmcgdGhlbSBhcyBzaWduZWQgY2FuCiAgIGdpdmUgdGhlIHdyb25nIHJlc3VsdHMgd2l0aCBsYXJnZSB2YWx1ZXMuCiAgIAoyMDAyLTA3LTAzIDAzOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5oIChWNC0yLXBhdGNoZXMuNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIEVuc3VyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZC4KICAgCjIwMDItMDctMDMgMDI6MzQgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdGluZyBmb3IgPHN5cy9kaXNrbGFiZWwuaD4gcmVxdWlyZXMgPG1hY2hpbmUvdHlwZXMuaD4gb24gTmV0QlNEIDEuNS4KICAgUmVwb3J0ZWQgYnkgRmVsaWNpYSBOZWZmLgogICAoQXBwYXJlbnRseSBmcm9tIHRoZSBOZXRCU0QgYnVnIGRhdGFiYXNlIC0gd2h5IHRoZXkgZGlkbid0IHRlbGwgdXMgYWJvdXQKICAgaXQgaXMgYSBteXN0ZXJ5IHRvIG1lLi4uLikKICAgCjIwMDItMDctMDMgMDI6MTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc3lzT2JqZWN0SUQgYXMgcmVwb3J0ZWQgaW4gdGhlIGNvbmZpZ3VyZSAtLWhlbHAgb3V0cHV0LgogICAoVGhlIGFjdHVhbCB2YWx1ZSB1c2VkIGlzIGNvcnJlY3QgLSBpdCdzIGp1c3QgdGhlIGhlbHAgb3V0cHV0IHRoYXQncyB3cm9uZykuCiAgIFNwb3R0ZWQgYnkgU2FuZGh5YSBTYXR5YW5hcmF5YW4uCiAgIAoyMDAyLTA3LTAyIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgdXBkYXRlIHRleHQgZm9yIHZhcmlvdXMgLmNvbmYgZmlsZXMKICAgCjIwMDItMDctMDIgMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIGZpeGVzIG5vdGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgUGF0cmljZSBLYWRpb25payA8a2FkaW9uaWtAZW5zZWlyYi5mcj4KICAgCjIwMDItMDctMDIgMDI6MzkgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgJ3NubXBkJyBhbmQgJ3NubXB0cmFwZCcgYmluYXJ5IG5hbWVzIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXRocwogICB3aGVuIHNldHRpbmcgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgogICAKMjAwMi0wNy0wMSAwNzo1MyAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjgpLCBhc24xLmM6CgogICBFbmNvZGUvRGVjb2RlIE9JRHMgb2YgdGhlIGZvcm0gMi5YIChYID4gNDApIGNvcnJlY3RseS4KICAgCjIwMDItMDctMDEgMDI6NDAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGhvcnJpYmxlIGZvcm1hdHRpbmcgaW4gaGVscCBmb3IgdHJhbnNwb3J0cwogICAKMjAwMi0wNy0wMSAwMjoyMyAgZHRzMTIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgUGljayB1cCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIGZvciB0aGUgcm9vdCBvZiB0aGUgVUNEIGV4dGVuc2libGUgYWdlbnQgdGFibGVzCiAgIChzbyB0aGF0IHRoZSBFWEFNUExFLmNvbmYgZmlsZSBnZXRzIHNldCB1cCB3aXRoIHRoZSBjb3JyZWN0IG51bWVyaWMgT0lEcykKICAgCjIwMDItMDYtMjggMDY6NDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3RjcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjggMDQ6NDEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIFVwZGF0ZSBkZWZhdWx0IHN0b3JlIHJldHJpZXZhbCBmdW5jdGlvbnMgdG8gdXNlIHRoZSBjb3JyZWN0IG5hbWUuCiAgIAogICBOb3RlIHRoYXQgdGhpcyB0ZXN0IHNjcmlwdCBhcHBlYXJzIHRvIGluY2x1ZGUgdHdvIGluZmluaXRlIGxvb3BzLgogICBJJ20gbm90IGNsZWFyIGhvdyB0aGlzIGlzIGV4cGVjdGVkIHRvIHJ1biBzdWNjZXNzZnVsbHkgPwogICAKMjAwMi0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJlbW92ZSByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZ3VnZ2luZyBmdW5jdGlvbi4KICAgCjIwMDItMDYtMjggMDQ6MzcgIGR0czEyCgogICAqIHBlcmwvbWFuYWdlci86IE1ha2VmaWxlLlBMLCBkaXNwbGF5dGFibGUucG0sCiAgIGdldFZhbHVlcy5wbSwgbWFuYWdlci5wbSwgc25tcHRvc3FsOgoKICAgQnJpbmcgcGVybCAnbWFuYWdlcicgbW9kdWxlIHVuZGVyIHRoZSBOZXRTTk1QIGJhbm5lcgogICAoYm90aCBpbiB0ZXJtcyBvZiBtb2R1bGUgZ3JvdXAgbmFtZSwgYW5kIHJlZmVyZW5jZXMgdG8gJ3VjZC1zbm1wJykuCiAgIFJlbW92ZSBzb21lIFVDRC1zcGVjaWZpYyBzZXR0aW5ncy4KICAgCiAgIE5vdGUgdGhhdCBzbm1wdG9zcWwgc3RpbGwgcmVmZXJzIGV4cGxpY2l0bHkgdG8gV2VzJyBVQ0QgZW1haWwgYWRkcmVzcywKICAgYW5kIG1hbmFnZXIucG0gdG8gV2VzJyBVQ0QgZmlsZXN0b3JlIHBhdGguICBUaGUgcmVsZXZhbnQgbGluZXMgaGF2ZQogICBiZWVuIGhpZ2hsaWdodGVkLCB0byBlbmNvdXJhZ2UgYW55b25lIHdpc2hpbmcgdG8gdXNlIHRoaXMgdG8gY2hhbmdlIHRoZW0uCiAgIAoyMDAyLTA2LTI4IDA0OjEyICBkdHMxMgoKICAgKiBwZXJsLzogQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBtYW5hZ2VyL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGNoZWNraW5nIGZvciAiaW50ZXJuYWwiIHByZXJlcXVpc2l0ZXMsIHNvIHRoYXQgInBlcmwgTWFrZWZpbGUuUEwiCiAgIGF0IHRoZSB0b3AgbGV2ZWwgd2lsbCB3b3JrIC0gZXZlbiBvbiBhIHByaXN0aW5lIHN5c3RlbS4KICAgCiAgIFFuOgogICAgIElzIGl0IG5lY2Vzc2FyeS9kZXNpcmFibGUgdG8gc2VwYXJhdGUgdGhlIE5ldFNOTVAgbW9kdWxlcyB0byB0aGlzIGV4dGVudD8KICAgV291bGQgaXQgbm90IGJlIHNpbXBsZXIgdG8gaGF2ZSBhbGwgb2YgdGhlIG1haW4gLnBtLy54cyBmaWxlcyBpbiBhIHNpbmdsZQogICBOZXRTTk1QIGRpcmVjdG9yeSwgYW5kIGNvbXBpbGUvaW5zdGFsbCB0aGVtIGFsbCBmcm9tIHRoZXJlPwogICAKMjAwMi0wNi0yOCAwMTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgLS13aXRoLWVudGVycHJpc2UgKGV0IGFsKSBiZWluZyBpbnZva2VkIHdpdGhvdXQgYSB2YWx1ZSwgYW5kIGJvbWIgb3V0LgogICAKMjAwMi0wNi0yNyAyMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbmV3IFJFQURNRSBkZXRhaW5saW5nIHRoZSB1c2Ugb2YgU0ZJTyB0byBjaXJjdW12ZW50IHRoZSAyNTUgZmQgbGltaXQgb24KICAgc29sYXJpcy4KICAgCjIwMDItMDYtMjcgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBjaGFuZ2luZyBhcnJheTsgYWRkIG5ldHNubXBfdGFibGVfYXJyYXlfcmVtb3ZlX3JvdygpCiAgIAoyMDAyLTA2LTI3IDA0OjE1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgJ21ha2VkZXBlbmQnIChlLmcuIFJlZEhhdCA3LjEpLCBjYW4ndCBoYW5kbGUgIi1vc3VmZml4IgogICBhcyBhIHNpbmdsZSBvcHRpb24uICBBbGwgdmVyc2lvbnMgc2VlbSBoYXBweSB3aXRoICItbyBzdWZmaXgiIHNvIHVzZSB0aGF0LgogICAKMjAwMi0wNi0yNyAwMzozMSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBFTlZfU0VQQVJBVE9SX0NIQVIgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyAnOicgaW4gbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeQogICAoYXMgc3VnZ2VzdGVkIGJ5IFJvYmVydCkKICAgCjIwMDItMDYtMjcgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3VkcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjcgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX21pYi5jCjoKCiAgIFZhbGlkYXRlIG5ldyBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgdmFsdWUgYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgIFNwb3R0ZWQgJiBmaXhlZCBieSBTaGFudGhhIEt1bWFyYQogICAKMjAwMi0wNi0yNSAxNDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIEFQUFRPUFMgKC1DcSkgZm9yIHN1cHByZXNzaW5nIG91dHB1dCBvZiBzZXQgcmVzdWx0cyBvbiBzdWNjZXNzCiAgIAoyMDAyLTA2LTI1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBcHBseSBwYXRjaCAjNTU5ODQ4IHRvIHVzZSB0aGUgL3Byb2MgcHNldWRvLWZpbGVzeXN0ZW0gdW5kZXIgTGludXgKICAgKHJhdGhlciB0aGFuIHBhcnNpbmcgdGhlIG91dHB1dCBvZiBwcykKICAgCjIwMDItMDYtMjUgMDg6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ2hlY2sgZm9yICdhaXg0JyAod2hpY2ggaXMgdGhlIHRva2VuIGRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSkKICAgcmF0aGVyIHRoYW4gJ2FpeCcuICAgU2VlIGJ1ZyAjNTY1NzY5CiAgIAoyMDAyLTA2LTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBUcmVhdCAnMCcgYXMgYW4gaW52YWxpZCBpbmRleCBmb3IgYSAic2ltcGxlIHRhYmxlIi4KICAgCjIwMDItMDYtMjUgMDc6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc3lzQ29udGFjdC4wIGFuZCBzeXNMb2NhdGlvbi4wCiAgIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgogICAKMjAwMi0wNi0yNSAwNjo0MCAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcDoKCiAgICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IHRvIGRlZmF1bHRfc3RvcmUgZnVuY3Rpb25zCiAgIAogICAgIC0gY2xlYW4gdXAgbWFucGFnZSBhIGJpdAogICAKICAgICAtIGZpeCBicmVha2FnZSBpbiBnZW5lcmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUuMy5oIGR1ZSB0byBhdXRvLWluZGVudGF0aW9uCiAgICAgICBvZiBkZWZhdWx0X3N0b3JlLmgKICAgCjIwMDItMDYtMjUgMDI6NTUgIGpicG4KCiAgICogRVhBTVBMRS5jb25mLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgICAtIG1lbnRpb24gdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uIGV0IGFsLiBpbiBzbm1wZC5jb25mIG1ha2VzIHRoZW0KICAgICAgIHJlYWQtb25seQogICAKICAgICAtIGFsc28gY2hhbmdlIHN5bnRheCBvZiBhbGwgZXhhbXBsZSBjb21tYW5kIGxpbmUgdG9vbHMgdG8gdXNlIG5ld2VyCiAgICAgICAtYyBDT01NVU5JVFkgc3ludGF4IG5vdCBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKMjAwMi0wNi0yNCAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBtYWtlIGJ1ZmZlciBzaXplIGluY3JlYXNlIG5vdGUgYSBkZWJ1ZyBzdGF0ZW1lbnQgcmF0aGVyIHRoYW4gYSBnZW5lcmljCiAgIGxvZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTA2LTIzIDE4OjQwICBkcmllaHVpcwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEhhbmRsZSBDT1VOVEVSNjQgaW4gX190cmFuc2xhdGVfYXNuX3R5cGUuCiAgIAoyMDAyLTA2LTIzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzY3JpcHQgYW5kIHRoZSBsYW5ndWFnZSBpdCBob3VzZXMuCiAgICAgKG1hbiBwYWdlIGF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnRhaW5lZCBwb2QgZG9jdW1lbnRhdGlvbikKICAgCjIwMDItMDYtMjMgMTU6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICB1cGRhdGUgdG8gcmVmZXJlbmNlIHRvcCBsZXZlbCBNYWtlZmlsZS5QTAogICAKMjAwMi0wNi0yMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjQtMi1wYXRjaGVzLjEpLCBTTk1QLnhzOgoKICAgZml4IHJlcG9ydGVkIGJ5IFdpbGxlbSBEZWtrZXIgZm9yIFdpbmRvd3MuICBCdWcgIzU0MzE5NCBmaXhlZC4KICAgCjIwMDItMDYtMjIgMDg6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgZm9yIHJlY2VudCBtZXRob2RvbG9naWVzCiAgIAoyMDAyLTA2LTIxIDE2OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpbmFsIChob3BlZnVsbHkhKSBmaXggZm9yIHBhcnNpbmcgaXAgYWRkcmVzc2VzIGZyb20KICAgIkZjby4gSmF2aWVyIFJpZHJ1ZWpvIiA8YWNicmlwZWZAc2kuZWh1LmVzPgogICAKMjAwMi0wNi0xOSAxNDozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZyb20gZG94eWdlbgogICAKMjAwMi0wNi0xOSAxMTo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pbnRfd2F0Y2guY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBzY2FsYXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgZ2VuZXJhdGluZyBzY2FsYXIgY29kZS4KICAgCjIwMDItMDYtMTkgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGNsZWFuIHVwIG11bHRpLWxpbmUgY29tbWVuZCB3aGljaCB3YXMgbWVzc2VkIHVwIGJ5IGluZGVudC4KICAgCjIwMDItMDYtMTkgMTE6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBhZGQgc3VwcG9ydCBmb3IgcHJvbXB0aW5nIG9mIHVua25vd24gcGFyYW1ldGVycyB0byBhbGlhc2VzLgogICAtIG1pc2Mgb3RoZXIgaW1wcm92ZW1lbnRzIChsaWtlICJyZWhhc2giKQogICAKMjAwMi0wNi0xOSAxMTozOCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGZvciBuZXcgZGVmYXVsdCBzdG9yZSBBUEkKICAgCjIwMDItMDYtMTkgMTE6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQVJHR0dHR0cKICAgSSBsb3ZlIHBlcmwuCiAgIEkgaGF0ZSBwZXJsJ3MgbWFrZSBzeXN0ZW0uCiAgIEkgaGF0ZSB0aGUgZmFjdCB0aGF0IHBlcmwgc2VnZmF1bHRzIGlmIEdldE9wdGlvbnMoKSBpcyBjYWxsZWQgbW9yZQogICB0aGFuIG9uY2UuCiAgIHNpZ2guCiAgIFRoaXMgaG9wZWZ1bGx5IHdpbGwgZml4IHRoZSBwZXJsIG1vZHVsZSBidWlsZCByb3V0aW5lcyBzbyBpdCBhdCBsZWFzdAogICB3b3JrcyAoYnV0IGl0J3Mgc3RpbGwgdWdseSBhbmQgY291bGQgdXNlIG1vcmUgY2xlYW5pbmcpLgogICAKMjAwMi0wNi0xOSAwNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBpbmZpbnRlIGxvb3AgYW5kIGFkZCBkZWJ1ZyBpbiByZW1vdmVfZGVsZWdhdGVkCiAgIAoyMDAyLTA2LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBOVUxMIHRoZSBwcml2IHBvaW50ZXIgb24gc2Vzc2lvbiBkdXBsaWNhdGlvbi4gIHRoYW5rcyB0byByZXppdG96CiAgIAoyMDAyLTA2LTE3IDA2OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2VkIEthdHN1aGlzYSdzIGVtYWlsIGFkZHJlc3MsIG9uIHJlcXVlc3QKICAgCjIwMDItMDYtMTQgMDc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM1NjkwMjE6IGZyb20gTGF1cmkgTXlsbGFyaQogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHRoZSB0YWJsZSBpdGVyYXRvciBzdXBwb3J0LgogICAKMjAwMi0wNi0xNCAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbGllZCBwYXRjaCAjNTY5MDIwIGZyb20gcmV6aXRveiBvbiBJUkMgdG8gZml4IG5vbi1pbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMi0wNi0xNCAwMzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgQWRkIChudWxsKSBjb250ZXh0LCB0byBicmluZyBpbnRvIGxpbmUgd2l0aCB0aGUgdjUgcmVnaXN0cnkgQVBJcy4KICAgRml4ZXMgYnVnIDU2ODU4MC4KICAgCjIwMDItMDYtMTQgMDI6MjcgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFVzZSBtYXRjaGluZyAnIGFuZCAiIHF1b3RlcyBmb3IgQUlYIGNvbmZpZ3VyZSB0ZXN0LgogICBNZW50aW9uZWQgaW4gcGFzc2luZyBpbiBidWcgNTY1NzY5LgogICAKMjAwMi0wNi0xMyAxNDozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgZml4IGRlZmF1bHRfc3RvcmUgcm91dGluZXMKICAgCjIwMDItMDYtMTIgMDY6NDMgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQnJpbmcgV2luZG93cyBPSUQgdXNhZ2UgaW50byBsaW5lIHdpdGggdGhlIG1haW4gY29uZmlnIGZpbGUgc2V0dGluZ3MuCiAgIAoyMDAyLTA2LTEyIDA2OjM3ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ29ycmVjdCB0aGUgZGVmYXVsdCBFbnRlcnByaXNlIE9JRCB1c2VkIGluIHRyYXBzLCB0byBhdm9pZCBhIHJlcGVhdGVkIDAKICAgc3ViaWRlbnRpZmllci4gIChGaXhlcyBidWcgIzU2NjkxNykKICAgCjIwMDItMDYtMTIgMDU6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSAnbGVuZ3RoJyBhcyBhIHNpZ25lZCB2YXJpYWJsZSwgc28gaXQgY2FuIGhhbmRsZSBhbiBlcnJvciB2YWx1ZSBvZiAtMS4KICAgUmVwb3J0ZWQgYnkgSm9ha2ltIEFsdGhpbmkuCiAgIAoyMDAyLTA2LTEyIDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHN1cmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5leHQgbGluayBpcyBwcm9wZXJseSBzYXZlZCwgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICBQcm9ibGVtIGRpc2NvdmVyZWQgYnkgSHVnbyBDYWNvdGUuCiAgIAoyMDAyLTA2LTEyIDAyOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvYWdlbnRfaW5kZXguaCwgYWdlbnQvYWdlbnRfdHJhcC5oCiwgYWdlbnQvYWxsX2hlbHBlcnMuaCwgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9idWxrX3RvX25leHQuaCwgYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9tdWx0aXBsZXhlci5oLCBhZ2VudC9udWxsLmgKLCBhZ2VudC9vbGRfYXBpLmgsIGFnZW50L3JlYWRfb25seS5oLAogICBhZ2VudC9zZXJpYWxpemUuaCwgYWdlbnQvc2V0X2hlbHBlci5oLAogICBsaWJyYXJ5L2NtdV9jb21wYXQuaCwgbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCBsaWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIGxpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIGxpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCBsaWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBsaWJyYXJ5L3NubXBfc2VjbW9kLmgsIGxpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgbGlicmFyeS91Y2RfY29tcGF0Lmg6CgogICBTdXBwbHkgbWlzc2luZyAjaWZuZGVmLyNkZWZpbmUvI2VuZGlmIGFuZCBleHRlcm4gIkMiIHt9IHdyYXBwZXJzCiAgIAoyMDAyLTA2LTExIDE3OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlbW92ZSBzcHVyaW91cyBwcmludGYgdG8gc3RkZXJyCiAgIAoyMDAyLTA2LTExIDE0OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYWRkIGV4dGVybiAiQyI7IGFkZCB2b2lkX2FycmF5IHN0cnVjdAogICAKMjAwMi0wNi0xMSAxNDoyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB0c2VhcmNoOyB1c2UgbmV3IGNvbnRhaW5lciBpbnN0ZWFkCiAgIAoyMDAyLTA2LTExIDE0OjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGNvbnRhaW5lciBmb3Igc2Vjb25kYXJ5IGluZGV4CiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjb250YWluZXIgdG8gaGVhZGVyczsgYWRkIGNvbnRhaW5lci5jCiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGluaXQgZnVuY3Rpb25zIGZvciBiYXNpYy9zb3J0ZWQgY29udGFpbmVyCiAgIAoyMDAyLTA2LTExIDE0OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgbW9yZSBtZXRob2RzIGZvciBiYXNpYyBjb250YWluZXI7IGFkZCBzb3J0ZWQgKHdpbGwgcHJvYmFibHkgcmVuYW1lKSBjb25hdGluZXIKICAgCjIwMDItMDYtMTEgMTI6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVkZXM7IGFkZCBleHRlcm4gIkMiIGZvciBfX2NwbHVzcGx1cwogICAKMjAwMi0wNi0xMSAxMToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgbmV0c2gsIHNubXBzaDoKCiAgIHJlbmFtZWQgc25tcHNoIHRvIG5ldHNoLCBhcyBJIGxpa2UgdGhlIG5hbWUgYmV0dGVyIGFuZCBpdCBhcHBlYWxzIHRvIGEKICAgd2lkZXIgbnVtYmVyIG9mIHBlb3BsZS4KICAgCjIwMDItMDYtMTAgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGRlbGV0aW5nIGFuIGFzcCBwb2ludGVyLCBtYWtlIHN1cmUgaXQgaXNuJ3QgaW4gdGhlIGRlbGVnYXRlZCBsaXN0CiAgIAoyMDAyLTA2LTEwIDA4OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBwYXJzZV9vbmVfb2lkX2luZGV4IHRvIGFsbG93IHRvbyBzaG9ydCBJUCBhZGRyZXNzIHdoZW4gY29tcGxldGUgaXMKICAgc3BlY2lmaWVkOyBhZGQgbmV0c25tcF9vaWQyY2hhcnMgJiBuZXRzbm1wX29pZDJzdHIKICAgCjIwMDItMDYtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGRlZmluZXMKICAgCjIwMDItMDYtMTAgMDc6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvTWFrZWZpbGUuUEw6CgogICBUb3AgbGV2ZWwgcGVybCBNYWtlZmlsZS5QTCB0byBpbnN0YWxsIHRoZSB3aG9sZSBidW5jaCB1bmRlcm5lYXRoLgogICBUaGlzIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBsb3dlciBsZXZlbCBtYWtlZmlsZXMgZm9yCiAgIHNpbXBsaWNpdHkuCiAgIAoyMDAyLTA2LTEwIDA3OjI3ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIEFja25vd2xlZGdlIGtub3duIGZhaWxpbmcgdGVzdHMuCiAgIFRoaXMgbWVzc2FnZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBwcm9ibGVtIGhhcyBiZWVuIGlzb2xhdGVkIGFuZCBmaXhlZC4KICAgCjIwMDItMDYtMTAgMDc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0IGZvciBpcGFkZHJlc3MgYnVpbGRpbmcvcGFyc2luZyBvZiBPSUQgaW5kZXhlcy4KICAgCjIwMDItMDYtMTAgMDI6MDcgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBNZW50aW9uIHRoZSBvdGhlciBwZXJsIG1vZHVsZXMsIGludHJvZHVjZWQgd2l0aCB2NSAocGFydGljdWxhcmx5ICdkZWZhdWx0X3N0b3JlJykKICAgCjIwMDItMDYtMTAgMDE6MjggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBOZXcgZW50cnkgZGVzY3JpYmluZyBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRyYXAgaGFuZGxlcnMuCiAgIAoyMDAyLTA2LTA4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNi0wOCAyMDo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYnJlYWsgcGVybCBtYWtlZmlsZSBjcmVhdGlvbiBpbnRvIHNlcGVyYXRlIHN0ZXA7IG9ubHkgY2xlYW4gcGVybCBkaXJlY3RvcnkKICAgaWYgdGhlcmUgaXMgYSBtYWtlZmlsZQogICAKMjAwMi0wNi0wOCAyMDoxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHBlcmx0ZXN0IHRhcmdldCB0byBtYWtlIHRlc3QgaW4gYWxsIHBlcmwgZGlyZWN0b3JpZXMKICAgCjIwMDItMDYtMDggMDk6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBmaXggdG8gZGVhbCB3aXRoIHVwZGF0ZWQgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wNi0wOCAwNzowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSB0byBTUUwtU3RhdGVtZW50IHJlcXVpcmVtZW50IG9mIDEuMDA0CiAgIAoyMDAyLTA2LTA4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBtaWIgaW5pdCBjb2RlIGZyb20gQyBzbm1wX3RyYW5zbGF0ZV9vYmogY2FsbAogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbml0X3NubXAgaW5zaWRlIHRyYW5zbGF0ZU9iagogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gMC4xCiAgIAoyMDAyLTA2LTA4IDA2OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBBIGZldyBjbGVhbnVwcyB0byBpZmNvbmZpZyBhbmQgbmV0c3RhdCBjb21tYW5kcwogICAKMjAwMi0wNi0wOCAwNjozNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgLSBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgaW1wb3J0L2V4cG9ydCBvZiBkYXRhIChjdXJyZW50bHkgdG8vZnJvbSBDU1YpLgogICAtIHN1cHBvcnQgZm9yICJkaWZmIiB3aGljaCBjb21wYXJlcyBvbGQgKHBvc3NpYmx5IGltcG9ydGVkIGRhdGEpIHRvIGN1cnJlbnQuCiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSByZXF1aXJlZCBTTk1QIG1vZHVsZSB2ZXJzaW9uIGZyb20gNCB0byA1CiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSB0dXRvcmlhbCBwbGFjZSBob2xkZXIgY29tbWVudCBPSUQuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0a21pYiBmb3IgbmV3ZXIgcGVybCBtb2R1bGVzLgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICB0dXJuIG9mZiBleHRyYSBib2xkL3VuZGVybGluZSBmb3JtYXR0aW5nIGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA2LTA3IDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZ2VuZXJpYyBjb250YWluZXIgc3RydWN0dXJlIGZvciBzdG9yaW5nIGRhdGEKICAgCjIwMDItMDYtMDcgMTM6MDEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA2LTA3IDEwOjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSB0byBrZWVwIGluIGxpbmUgd2l0aCBjb25maWd1cmUuaW4gKHdoeT8gc2hvdWxkbid0CiAgIGNvbmZpZ3VyZSBub3QgYmUgaW4gQ1ZTIGFuZCBiZSBhdXRvZ2VuZXJhdGVkPyBPbmUgb2YgdGhlc2UgZGF5cyBJJ20gZ29pbmcKICAgdG8gaGF2ZSB0byBsZWFybiBhdXRvY29uZi4uLi4pCiAgIAoyMDAyLTA2LTA3IDEwOjM1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWx3YXlzIGNoZWNrIHJldHVybiBzdGF0dXMgb2YgbWFrZSB3aGVuIGluc2lkZSBhIGxvb3AsIGFuZCBleGl0IG9uIGVycm9ycwogICAKMjAwMi0wNi0wNyAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4zKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgT25seSBudWxsLXRlcm1pbmF0ZSB0aGUgaW50ZXJmYWNlIG5hbWUgd2hpbGUgaXQncyBhY3R1YWxseSBiZWluZyBjb3BpZWQuCiAgIFJlc3RvcmUgdGhlIGRhdGEgbGluZSBhZnRlcndhcmRzLCBzbyB0aGUgZGVidWdnaW5nIG91dHB1dCBpcyBtZWFuaW5nZnVsLgogICAKMjAwMi0wNi0wNyAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGZvciBpbmRleGluZyBlcnJvciwgdGhhdCBjYXVzZXMgYSBjcmFzaCBpZiBtb3JlIHRoYW4gMTYgdmFyYmluZHMKICAgYXJlIGFkZGVkIHRvIHRoZSBjYWNoZSBpbiBvbmUgZ28uICBTcG90dGVkIGJ5IFNoYW50aCBLdW1hcmEKICAgCjIwMDItMDYtMDYgMDE6MTIgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLls3LDVdKSwgYWNsb2NhbC5tNCwKICAgY29uZmlndXJlOgoKICAgRG9uJ3QgZGlmZmVyZW5jaWF0ZSBiZXR3ZWVuIGVsZi0gYW5kIGEub3V0LWJhc2VkIE5ldEJTRCBzeXN0ZW1zLgogICAoUHJvYmxlbSBoaWdobGlnaHRlZCBieSBGZWxpY2lhIE5lZmYpCiAgIAoyMDAyLTA2LTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHB1dCBkZWZpbmVzIGZvciBzb2NrbGVuX3QgYW5kIGluX2FkZHJfdCBpbiBuZXQtc25tcC90eXBlcy5oIGluc3RlYWQgb2YgaGF2aW5nCiAgIGNvbmZpZ3VyZSBnZW5lcmF0ZSB0aGVtOyBjb25maWd1cmUgaW5zdGVhZCBnZW5lcmF0ZXMgSEFWRV9TT0NLTEVOX1QgYW5kCiAgIEhBVkVfSU5fQUREUl9UIGZvciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5lZWQgdGhlIGRlZmluZXM7IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgV2luMzIgcGxhdGZvcm0sIHdoaWNoIGRvZXNuJ3QgaGF2ZSBjb25maWd1cmUuCiAgIAoyMDAyLTA2LTA1IDA5OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZG9uJ3QgYWR2YW5jZSByZXF1ZXN0IHBvaW50ZXIgaW5zaWRlIGZvciBsb29wLCBzaW5jZSBmb3IgbG9vcCBkb2VzIGl0IGZvcgogICB1czsgb3RoZXJ3aXNlIGZvciBsb29wIG1heSBlbmQgdXAgZGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIuCiAgIAoyMDAyLTA2LTA1IDA2OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgdmFyaW91cyB1bml4IHV0aWxpdGllczoKICAgIC0gY3VycmVudGx5OiBuZXRzdGF0LCBwcywgZGYsIGlmY29uZmlnCiAgIAoyMDAyLTA2LTA1IDA2OjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGk6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbiBKdWVyZ2VuJ3MKICAgc2NsaSBjb21tYW5kLgogICAKMjAwMi0wNi0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgbmV3IGNvbW1hbmRzOgogICAgIHNvdXJjZSBmaWxlIC0tIHNvdXJjZXMgYW4gcmMgZmlsZQogICAgIHdhdGNoIGV4cHJlc3Npb24gLS0gcmVwZWF0ZWRseSBydW5zIGEgY29tbWFuZCBhbmQgY29sb3JpemVzCiAgICAgICBkaWZmZXJlbmNlcyBpbiBkYXRhCiAgICAgZXZhbCBleHByZXNzaW9uIC0tIGV2YWx1YXRlcyBhbiBleHByZXNzaW9uIGRpcmVjdGx5IGluIHBlcmwKICAgICAgIC0gYmVnaW5uaW5ncyBvZiBvdmVybG9hZHMgaW4gcGVybCBzbyB0aGF0IGNhbGxpbmcgc3lzQ29udGFjdCgpCiAgICAgICAgIHdpbGwgcmV0dXJuIHRoZSBzeXNDb250YWN0IHZhbHVlLiAgdGFibGVzIG5vdCByZXR1cm5lZCB5ZXQuCiAgIGZpeGVzOgogICAgIHR1cm5zIG9mIG9ybmFtZW50YWwgcHJvbXB0IHN1cHBvcnQgKGljaykgYnkgZGVmYXVsdAogICAKMjAwMi0wNi0wNSAwNDo0MyAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0yLXBhdGNoZXMuOCksIHNubXBjbWQuMS5kZWY6CgogICBCcmllZiBtZW50aW9uIG9mIHRoZSBuZWVkIHRvIHF1b3RlIE9JRHMgY29udGFpbmluZyBzdHJpbmcgaW5kZXhlcywKICAgdG8gcHJvdGVjdCB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHRoZSBzaGVsbC4KICAgCjIwMDItMDYtMDQgMTA6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhIG51bGwgdHJlZWNhY2hlIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0CiAgIAoyMDAyLTA2LTA0IDEwOjMzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYXNwLT5wZHUgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldC4KICAgCjIwMDItMDYtMDQgMDU6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgZm9yIHByaW50Ziwgc2luZ2xlIHF1ZXJ5L3NldHMgb2Ygc2NhbGFycywgbXVsdGktbGluZSBhbGlhc2VzLgogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBtYWtlIG5ldygpIG9wZXJhdG9yIGEgYml0IHNtYXJ0ZXIKICAgCjIwMDItMDUtMjkgMTk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9hbGFybS5jOgoKICAgc2V0IHRoZSBzdG9yYWdlIHBvaW50ZXIgdG8gTlVMTCwgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBIb3kuCiAgIAoyMDAyLTA1LTI5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIEFQSWlmeSBNSUJESVJTIHN1cHBvcnQKICAgCjIwMDItMDUtMjkgMDc6NDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBFeHBhbmQgb24gd2hlbiBPcGVuU1NMIGlzIG5lY2Vzc2FyeSwgYW5kIGhvdyB0byBjb21waWxlIHVzaW5nIGl0LgogICAKMjAwMi0wNS0yOSAwNjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBTZXQgUkVVU0VBRERSIHNvIHRoYXQgc3BlY2lmeWluZyB0aGUgc2FtZSBwb3J0IHR3aWNlIGRvZXNuJ3Qga2lsbCB0aGUgYWdlbnQuCiAgIChTdWdnZXN0ZWQgYnkgUm9iZXJ0IEhhc3RpbmdzKQogICAKMjAwMi0wNS0yOSAwMjo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIFJlZmVyZW5jZSBib3RoIHZlcnNpb25zIG9mIHRoZSB0dXRvcmlhbCAoc2luY2UgdGhpcyBkb2N1bWVudCBpcyB1c2VkCiAgIGZvciBidWlsZGluZyB0aGUgb24tbGluZSB2ZXJzaW9uIG9mIHRoZSBGQVEpCiAgIAoyMDAyLTA1LTI5IDAyOjE2ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy40KSwgRkFROgoKICAgQ2xhcmlmeSB0aGF0IHRyYXAgZmlsdGVyaW5nIGlzIG5vdCB5ZXQgb3BlcmF0aW9uYWwuCiAgIAoyMDAyLTA1LTI4IDE0OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHJlbW92ZSBeTSBjaGFycwogICAKMjAwMi0wNS0yOCAxNDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpeCBsb2dpYyBpbiBjYW5fZGVsZXRlOyBjb25zb2xpZGF0ZSB1c2Ugb2YgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0IGJ5IHNldHRpbmcKICAgcmMgZm9yIHVzZSBhdCBlbmQgb2YgbG9vcDsgZG9uJ3QgdXNlIHJlbW92ZWQgbWFjcm9zIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUsCiAgIHVzaW5nIG5ldyBuZXRzbm1wX2NoZWNrX3ZiKiByb3V0aW5lcyBpbnN0ZWFkOyBhZGQgYXNzZXJ0cyBmb3IgZXJyb3IgY2FzZXMgdGhhdAogICBzaG91bGQgYmUgY2F1Z2h0IGJ5IGVhcmxpZXIgcm91dGluZXMKICAgCjIwMDItMDUtMjggMTQ6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByb3cgKGRlKWFjdGl2YXRpb24KICAgCjIwMDItMDUtMjggMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgIiNpbmNsdWRlIDxzZWFyY2guaD4iIHdpdGggdGhlIEhBVkVfU0VBUkNIX0ggdG9rZW4uICAoU3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjggMDY6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIEZpeCB0aGUgZGVjbGFyYXRpb24gb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50LiAoU3BvdHRlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI3IDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRG9uJ3QgaGFyZHdpcmUgc3lzbG9nIGZhY2lsaXR5IHRvIExPR19EQUVNT04uCiAgIEZpeCBwcm92aWRlZCBieSBKb2FraW0gRmFsbHNqby4KICAgCjIwMDItMDUtMjcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKICAgKFY0LTItcGF0Y2hlcy5bMiw4XSksIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBUd2VhayAndXNtVXNlcicgaGVscCBzdHJpbmcgdG8gYWNjdXJhdGVseSByZWZsZWN0IHdoaWNoIGJpdHMgYXJlIG9wdGlvbmFsLgogICBSZXBvcnRlZCBieSBBbGkgQ2hhbmF1aS4KICAgCjIwMDItMDUtMjcgMDE6MjIgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY0LTItcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICJmaWxlIiBkaXJlY3RpdmVzLgogICAKMjAwMi0wNS0yNyAwMToxNyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2gsIHRoYXQgY29uZnVzZXMgc29tZSAnbWFrZSdzCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgUHJvcGVyIGNyZWF0aW9uIG9mIHJldHVybmVkIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50cyBvbiByZXR1cm5lZCBtaWIgcmVnaXN0cmF0aW9uIG9iamVjdHMgc28KICAgdGhleSdyZSBub3QgYXV0by1jbGVhbmVkIGJ5IHBlcmwgKHRoZSBhZ2VudCBub3cgaGFzIGEgY29weSBvZiB0aGUgcG9pbnRlcikKICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGRlZmF1bHRfc3RvcmUgbmV0c25tcF8gcHJlZml4ZXMuCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIHNjYWxhcnMgKG1pYjJjLnNjYWxhci5jb25mIGZpbGUgY29taW5nIHNob3J0bHkpCiAgIAoyMDAyLTA1LTI0IDA5OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEEgbmV3IHJ1bGUgY2FsbGVkICJjb21tZW50Y2hlY2siIHRvIGdyZXAgYWxsIHNvdXJjZXMgZm9yIC8vIGNvbW1lbnRzLgogICAKMjAwMi0wNS0yNCAwODowOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERlY2xhcmUgJ3JlZ2lzdGVyX21pYl9kZXRhY2hfbm9kZScgYmVmb3JlIGl0J3MgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgIChTcG90dGVkIGJ5IFhpYW5nIFpoYW5nKQogICAKMjAwMi0wNS0yNCAwNzo0NCAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaC4KICAgKFRoYXQgKm1pZ2h0KiBiZSBjb25mdXNpbmcgU3VuJ3MgbWFrZSwgYnV0IGlzIHdyb25nIGFueXdheSkKICAgCjIwMDItMDUtMjMgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9ic2RpNC5jLAogICB2bXN0YXRfZHluaXguYywgdm1zdGF0X2ZyZWVic2QyLmMsIHZtc3RhdF9ocHV4LmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgQnJpbmcgdGhlIHZhcmlvdXMgJ3Zhcl9leHRlbnNpYmxlX3Ztc3RhdCcgZGVmaW5pdGlvbnMgaW50byBsaW5lCiAgIHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZSAtIGkuZS4gbm9uLXN0YXRpYy4KICAgCjIwMDItMDUtMjEgMTU6MjUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtSSQoc3JjZGlyKS9pbmNsdWRlIHRvIENQUCBwYXRoIGZvciBwZW9wbGUgYnVpbGRpbmcgb3V0c2lkZSBvZiBzcmMgdHJlZQogICAKMjAwMi0wNS0yMSAwODoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNTU4MTI5IF0gTWFrZSB0aGUgdHVubmVsIG1pYiBjb21waWxlIGluIDUuMC4xLCBzdWJtaXR0ZWQKICAgYnkgTG9yZW56byBDb2xpdHRpIChsY29saXR0aSksIHdoaWNoIGFkZHMgbWlzc2luZyBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNS0yMSAwNTozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBjb3JlIGR1bXAgaW4gLXUgb3B0aW9uIHByb2Nlc3NpbmcsIG5vdGVkIGJ5IEFuZHJlYXMgTWF1cwogICAKMjAwMi0wNS0yMSAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjkpLCBtZW1vcnkuYwo6CgogICBMYXRjaCBtZW1vcnkgcmVwb3J0aW5nIGF0IDJeMzEtMSwgcmF0aGVyIHRoYW4gMl4zMi0xIHNpbmNlIHRoZXNlCiAgIG9iamVjdHMgYXJlIGRlZmluZWQgYXMgKHNpZ25lZCkgSW50ZWdlcjMyLgogICBPbmx5IGxhdGNoIGlmIHRoZSB2YWx1ZSBpcyAqZ3JlYXRlciogdGhhbiB0aGlzIHRocmVzaG9sZCwgbm90IGxlc3MhCiAgIAoyMDAyLTA1LTIxIDAxOjIwICBqYnBuCgogICAqIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3VjZF9jb21wYXQuYwo6CgogICAgIC0gYWRkIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucyBmb3IgbmV3bHktcmVuYW1lZAogICAgICAgZGVmYXVsdCBzdG9yZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgKGRlZmluZWQgaWZmCiAgICAgICAtLWVuYWJsZS11Y2QtY29tcGF0aWJpbGl0eSBpcyBnaXZlbiB0byBhdCBjb25maWd1cmF0aW9uIHRpbWUpCiAgIAoyMDAyLTA1LTIxIDAwOjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgICAtIG1vdmUgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX2RzX3JlYWRfY29uZmlnIHR5cGUgZnJvbSBkZWZhdWx0X3N0b3JlLmgKICAgICAgIGludG8gZGVmYXVsdF9zdG9yZS5jIChzaW5jZSBpdCBpcyBub3QsIGFuZCBzaG91bGQgbm90LCBiZSB1c2VkCiAgICAgICBlbHNld2hlcmUpLgogICAKMjAwMi0wNS0yMCAwMzo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVnaXN0ZXJzIHRva2VucyBmb3IgaXB2NiByby9ydyBjb21tdW5pdHksIGFuZCBtYWtlIHN1cmUgdG8gcGFyc2UgdGhlbQogICBhcyBpcHY2LCBub3QgdjQuCiAgIAoyMDAyLTA1LTE5IDExOjM4ICBkcmllaHVpcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEJ1Z2ZpeCBmb3IgRnJlZUJTRCBzdXBwb3J0IG9mIHRoZSBkaXNrSU8gbWliLiBUaGUgb3JpZ2luYWwgY29kZSBuZWdsZWN0ZWQKICAgdGhlIGRldmljZSBudW1iZXIsIHdoaWNoIG1hZGUgZGlzdGluZ3Vpc2hpbmcgYmV0d2Vlbiwgc2F5LCBhZDAgYW5kIGFkMQogICBpbXBvc3NpYmxlLgogICAKMjAwMi0wNS0xNyAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBzbGlnaHRseSByZWR1Y2UgbWVtb3J5IGNvc3RzIG9mIHJlZ2lzdGFydGlvbnMKICAgCjIwMDItMDUtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgc3RvcmUgdGFnIG5hbWVzLgogICBmaXggaW5pdF9zbm1wKCkgZGVmaW5pdGlvbiB0byBtYXRjaCBub3JtYWwgcGVybCBub24tYW5zaSBtb2RlLgogICAKMjAwMi0wNS0xNiAxNjozOSAgZHJpZWh1aXMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFrZSBzdXJlIC0tY2ZsYWdzIHNwaXRzIG91dCB0aGUgcmVxdWlyZWQgaW5jbHVkZSBwYXRoIHdoZW4gaW5zdGFsbGluZwogICBpbiBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uLCBhcyBkb2N1bWVudGVkIGluIHRoZSB1c2FnZSBpbmZvIGluIHRoZSBzY3JpcHQuCiAgIAoyMDAyLTA1LTE2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBhZGQgYSBsaW5lIHRvIHRoZSBzeXNTZXJ2aWNlcyBwcm9tcHQgc2F5aW5nIGlmIHlvdSBkb24ndCBrbm93LCBzYXkgbm8uCiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgdXBkYXRlIHRvIG5ldyBkZWZpbmUgbGlzdAogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB0ZXN0IHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMjo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIGF1dG9nZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGVzIHRvIG5ldyAuaCB0b2tlbnMKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICAuaCAtPiBwZXJsbW9kdWxlIHJlZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMDc6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIENvbnNvbGlkYXRlIHRoZSB2YXJpb3VzIE9JRCBvdXRwdXQgY29uZmlndXJhdGlvbiBtZWNoYW5pc21zIGludG8gb25lLgogICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgKHlldCEpIC0ganVzdCB0aGUgaW50ZXJuYWxzLgogICAKMjAwMi0wNS0xNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjcmVhdGUgYSBkZWZpbmUgbG9jYXRpb24gZm9yIEhBVkVfR0VUREVWUwogICAKMjAwMi0wNS0xNSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIGRlcGVuZCB1cGRhdGUsIHdoaWNoIEkgbWVhbnQgdG8gY2hlY2sgaW4gYmVmb3JlIHRoZSA1LjAuMSByZWxlYXNlCiAgIAoyMDAyLTA1LTE1IDA1OjUzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3BlcmwuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM5ICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9zZWNtb2QuYywgc25tcHVzbS5jLAogICBzbm1wdjMuYywgdWNkX2NvbXBhdC5jLCB2YWNtLmM6CgogICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIGZyb20gZGVmYXVsdF9zdG9yZSBmcm9tIGRzX2JsYWgKICAgICAgIHRvIG5ldHNubXBfZHNfYmxhaAogICAKMjAwMi0wNS0xNSAwMjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuMCksIHNtdXguYzoKCiAgICAgLSBpbml0aWFsaXNlIHNtdXhfbGlzdGVuX3NkIHRvIGF2b2lkIHByb2JsZW1zIG5vdGVkIGluIGJ1ZyAjNTQ1NDQ4CiAgICAgICAoYSBiaXQgdW5yZWFzb25hYmxlIGluIG15IHZpZXcgYnV0IGl0IGNhbid0IGRvIGFueSBoYXJtKS4KICAgCjIwMDItMDUtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwcmVjaXNpb24gZXh0cmFjdGlvbiBvZiB0dW1vciBpbnN0ZWFkIG9mIGFtcHV0YXRpb24sIG9yLCBpZmRlZiBzZWFyY2guaAogICBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgZXNzZW50aWFsIHRvIHRhYmxlX2FycmF5IG9wZXJhdGlvbiBhbmQgd2lsbCBwcm9iYWJseQogICB2YW5pc2ggaW4gdGhlIG5lYXIgZnV0dXJlIGFueXdheS4KICAgCjIwMDItMDUtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IHR5cGUgaW4gc2l6ZW9mCiAgIAoyMDAyLTA1LTEzIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzZWFyY2guaCBiZWZvcmUgY29tcGlsaW5nIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIKICAgCjIwMDItMDUtMTMgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0wNS0xMyAwMDozOSAgZHJpZWh1aXMKCiAgICogQ2hhbmdlTG9nOgoKICAgTm90ZSBjaGFuZ2VzIHRvIGNvbmZpZ3VyZS5pbi4KICAgCjIwMDItMDUtMTIgMTA6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE1ha2Ugc3VyZSB0aGUgY2hlY2tzIGZvciBrdm0gcmVsYXRlZCBzdHVmZiBoYXBwZW5zIHdoZW4gLWxrdm0gaXMgaW4gc2NvcGUuCiAgIEFkZCBkZXRlY3Rpb24gb2YgdGhlIC1sZGV2c3RhdCByZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIHdpdGggdWNkLXNubXAvZGlza2lvLgogICAKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMCAtPiBWNS4wLjEKCjIwMDIwLTA1LTEyIDE3OjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBkZXRlY3QgLWxkZXZzdGF0IHdoZW4gbmVlZGVkOyBmaXggLWxrdm0gZGV0ZWN0aW9uCgoyMDAyLTA1LTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gdHV0b3JpYWwtNSBpbnN0ZWFkIG9mIHR1dG9yaWFsCiAgIAoyMDAyLTA1LTEwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIHJlcXVlc3QgaW5mbyBwZXJsIGNvZGUgbW92ZWQgdG8gc2VwYXJhdGUgZmlsZS4KICAgCjIwMDItMDUtMTAgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBPSUQgYnVpbGRpbmcgb3ZlcmxvYWRzLgogICAKMjAwMi0wNS0xMCAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQWRkIHByb3BlciBsZW5ndGggc2VnbWVudCB0byB0aGUgYnVpbGQgdmlldyBPSUQuCiAgIAoyMDAyLTA1LTEwIDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IGRvYyBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZwogICAKMjAwMi0wNS0xMCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjApLCB2YWNtX3ZhcnMuYwo6CgogICBmaXggdmFjbSBwcm9ibGVtIG9uIHNldHMgd2l0aCBPSURzIGNvbnRhaW5pbmcgbGFyZ2UgbnVtYmVycyBhcyBub3RlZAogICBieSBWaW5heSBHYW9ua2FyIG9uIHRoZSAtY29kZXJzIG1haWxpbmcgbGlzdC4KICAgCjIwMDItMDUtMTAgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhbGxpbmcgb24gbXVsdGlwbGUgdGFibGVzCiAgIAoyMDAyLTA1LTEwIDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWVyZ2UgIlNUUklORzogSGV4OiIgdHlwZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiAiSGV4LVNUUklORzoiCiAgIAoyMDAyLTA1LTEwIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBSZXBvcnQgbm9uLWV4aXN0ZW50IHN1Ymluc3RhbmNlcyBhcyAnbm9TdWNoSW5zdGFuY2UnIHJhdGhlciB0aGFuICdub1N1Y2hPYmplY3QnLgogICAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMC45OSIgbm93IHJlc3BvbmRzIGNvcnJlY3RseS4KICAgKHRob3VnaCAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMSIgc3RpbGwgcmV0dXJucyAnbm9TdWNoT2JqZWN0JykKICAgCiAgIEFsc28gZ3Vlc3MgdGhhdCBmYWlsZWQgU0VUIHJlcXVlc3RzIGFyZSAnbm9DcmVhdGlvbicgZXJyb3JzICh3aGljaCBpcwogICBwcm9iYWJseSB0aGUgbW9zdCBsaWtlbHkgb3B0aW9uKS4KICAgCjIwMDItMDUtMDkgMTU6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZXhpdCBwcm9wZXJseSB3aGVuIGEgc3ViZGlyIGZhaWxzIHRvIG1ha2UgcHJvcGVybHkKICAgCjIwMDItMDUtMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjcmVhdGUgYSB0b2tlbiBmb3IgdGhlIC1PdiBlcXVpdmVsYW50CiAgIAoyMDAyLTA1LTA5IDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNSksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgcGF0Y2ggZnJvbSBUYWt1bWkgS2Fkb2RlIHRvIGZpeCBtZW1vcnkgdXNhZ2Ugb24gc29sYXJpcwogICAKMjAwMi0wNS0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICB1cGRhdGVzIGZyb20gbWFsbG9jZWQgdm1zdGF0IGZpeGVzIGZyb20gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDItMDUtMDggMTY6MzQgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG5ldyAtLWNvbXBpbGUtc3ViYWdlbnQgZmVhdHVyZXM6CiAgICAgLS1jZmxhZ3MKICAgICAtLW5vcm0KICAgICAtLWxkZmxhZ3MKICAgICBpbmNsdWRlcyBoZWFkZXIgZmlsZXMKICAgICBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDUtMDggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWFrZSB0aGUgc3ViYWdlbnQgcHJvcGVybHkgY2FsbCB0aGUgcmVzZXJ2ZTIgc3RhdGUgYWdhaW4uCiAgIAoyMDAyLTA1LTA4IDEwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDggMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgdW0sIHVzZSAzMCBzZWNvbmRzIGxpa2UgYWR2ZXJ0aXNlZC4KICAgCjIwMDItMDUtMDggMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZGVmaW5lIGEgYmV0dGVyIG5vdGlmaWNhdGlvbiBleGFtcGxlIChubyByZXF1ZXN0cy4gIGp1c3QgYWxhcm0gLT4gc2VuZCkKICAgCjIwMDItMDUtMDcgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgdXBkYXRlIHRvIGN1cnJlbnQgaW5kZW50IGNvbW1hbmQKICAgCjIwMDItMDUtMDcgMjI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBtb3ZlIHRleHQgaW4gY29tbWVudCBsZWZ0IHNsaWdodCAod2FzIHRvbyBsb25nKS4KICAgCjIwMDItMDUtMDcgMjI6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZW51bSBmaXhlcy4KICAgCjIwMDItMDUtMDcgMjI6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsCiAgIG1pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCBtaWIyYy5jb25mOgoKICAgTmV3IG1pYjJjIGZpbGVzIGZvciBnZW5lcmF0aW5nIGhlYWRlcnMgZnVsbCBvZiBjb2x1bW4gbnVtYmVyIGRlZmluZXMKICAgYW5kIGVudW0gZGVmaW5lcy4KICAgCjIwMDItMDUtMDcgMjI6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IGFnZW50IGxpYnJhcnkgcmVvcmRlcmluZyBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgbm93IHN1cHBvcnRzIC5vIGZpbGVzIChwcmVjb21waWxlZCBjb2RlKS4KICAgCjIwMDItMDUtMDcgMjI6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZToKCiAgIGhtbS4gIG1pc3NlZCBzb21lIGNoZWNraW4gZmlsZXMuCiAgIAoyMDAyLTA1LTA3IDExOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGNvbmZ0ZXN0LmNvbmYsIHN0YXJ0YWdlbnQucGwsIGNvbmYudAo6CgogICB0ZXN0IGZvciBjb25maWd1cmF0aW9uIGZpbGUvZGVmYXVsdF9zdG9yZSBzdXBwb3J0CiAgIAoyMDAyLTA1LTA3IDExOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBpbml0X3NubXAoKSB0YWtlIGEgY2hhciAqIGFyZ3VtZW50IGxpa2UgdGhlIHJlYWwgQVBJCiAgIAoyMDAyLTA1LTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICB0eXBvcy4KICAgCjIwMDItMDUtMDcgMDk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IHRoZSAtZyBmbGFnLgogICAKMjAwMi0wNS0wNyAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGxpa2UgYSBnb29kIGJveS4KICAgCjIwMDItMDUtMDYgMjA6NDMgIHJzdG9yeQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpeCBtaXNzaW5nICQgbm90ZWQgYnkgSm9obiBNaWxscyBvbiB0aGUgY29kZXJzIGxpc3QKICAgCjIwMDItMDUtMDYgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzQsMiwzLDNdKSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZSAoY29ycmVjdGx5IGRvbmUgdGhpcyB0aW1lKQogICAKMjAwMi0wNS0wNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluCiAgIChWNC0yLXBhdGNoZXMuWzMsNywxLDJdKSwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA2IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgUGF0Y2hlcyAjNTUxOTE0KyBmcm9tIEdhcnkgRWR3YXJkcyB0byBzdXBwb3J0IGhwdXgxMSBmb3IgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBuZXcgaHB1eCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBuZXcgY29udHJpYnV0b3JzLgogICAKMjAwMi0wNS0wNiAxNDozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYKLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU1MTQ4OTogRnJvbSBKZWZmcmV5IFdhdHNvbiB0byBhZGQgYSAtUSBvcHRpb24gZm9yIHF1aWNrIGJ1dCB3LyBhbiAnPScKICAgCjIwMDItMDUtMDYgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIGNoYW5nZSAtRCBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgY3VycmVudCBjb2RlLgogICAKMjAwMi0wNS0wNiAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgbWlzYyBzbWFsbCBidWdzIGFuZCBlcnJvciBtZXNzYWdlIHdvcmRpbmcgZml4ZXMuCiAgIAoyMDAyLTA1LTA2IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuOSksIHNtdXguYzoKCiAgIGJ1ZyAjNTQ3MDEwOiBmaXggc211eCBhdXRoIGJ1ZyBhcyByZXBvcnRlZCBhbmQgZml4ZWQgYnkgU3RlZmFuIFJhZG1hbgogICAKMjAwMi0wNS0wMSAyMzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyBmb3IgdXBkYXRlIHRvIHRhYmxlX2FycmF5CiAgIAoyMDAyLTA1LTAxIDIzOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgb2JqZWN0X21vbml0b3Igc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNoZWNrX3ZhcmJpbmQgc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdmFsaWRhdGlvbiB2YWJyaW5kIGluZm8KICAgCjIwMDItMDUtMDEgMjI6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGRvIEkgcmVhbGx5IGhhdmUgdG8gZG8gdGhpcz8gc2lnaC4gT2ssIHJlbmFtZSBkZWJ1ZyB0b2tlbjsgcmV2YW1wIGxvZ2ljIHRvCiAgIG1vZGlmeSByb3dzIGluIHBsYWNlLCBrZWVwaW5nIHVuZG8gaW5mbyAodnMgYWx3YXlzIGNoYW5naW5nIGEgY29weSBvZiBhIHJvdwogICBhbmQgc3dhcHBpbmcgcm93cyB3aGVuIHNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSB0byBhbGxvdyBleHRlcm5hbCBjb2RlCiAgIHRvIGtlZXAgcG9pbnRlcnMgdGhhdCBkb24ndCBkaXNhcHBlYXIgb24gdGhlbTsgYWRkIGEgZmV3IGNhbGxiYWNrcywgaW5jbHVkaW5nCiAgIHJvd19jb21wYXJlLCBzbyB0YWJsZV9hcnJheSBjYW4gbWFpbnRhaW4gdGhlIHNlY29uZGFyeSBpbmRleCB0cmVlOyBkb24ndCBjYWxsCiAgIGNhbl9hY3RpdmF0ZS9jYW5fZGVsZXRlIHVubGVzcyB3ZSBhcmUgYWN0dWFsbHkgdHJ5aW5nIHRvIGFjdGl2YXRlL2RlbGV0ZSByb3c7CiAgIGFkZCBza2VsZXRvbiAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGNvb3BlcmF0aXZlIG5vdGlmaWNhdGlvbnMgb2Ygcm93IGV2ZW50czsKICAgdXBkYXRlIGNoYW5naW5nIGFycmF5IGluIGNvbW1pdCAmIHVuZG8gY2FzZXMsIG5vdCBqdXN0IGNvbW1pdDsgY2hhbmdlIHR5cGRlZnMKICAgZm9yIGEgZmV3IGNhbGxiYWNrIHBvaW50ZXJzOyB1bW1tbS4uLiBJICp0aGluayogdGhhdCdzIGl0Li4uLjotKQogICAKMjAwMi0wNS0wMSAxNzozMCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEFkZCBpbmRleCBidWlsZGluZyB0byB0aGUgKyBvcGVyYXRvci4KICAgCjIwMDItMDUtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBPSUQvT0lELnhzLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbAosIGFnZW50L3R5cGVtYXA6CgogICBNYWtlIGdldE9JRCBmb3IgcmVxdWVzdHMgcmV0dXJuZWQgYSBOZXRTTk1QOjpPSUQgYmxlc3NlZCByZWZlcmVuY2UuCiAgIEknbSBub3QgaGFwcHkgYWJvdXQgaG93IHRoaXMgaXMgZG9uZSwgYnV0IGFsbCBhdHRlbXB0cyB0byBkbyBpdAogICBjb3JyZWN0bHkgb25seSBsZWZ0IG1lIGluIGNvbmZ1c2lvbi4KICAgCjIwMDItMDUtMDEgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwo6CgogICBDaGFuZ2UgdGhlIGRvbWFpbiBPSURzIHRvIHBvaW50IHRvIHRoZSBuZXQtc25tcCBkb21haW5zIGNyZWF0ZWQgYnkgRGF2ZS4KICAgVGhpcyBmaXhlcyBidWcgIzU0NDI0NSBhcyB3ZWxsLgogICAKMjAwMi0wNS0wMSAwOTozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIE9JRCBwZXJsIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBtb2R1bGVzLgogICAKMjAwMi0wNS0wMSAwNzo0NSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy4wKSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIHJlbW92ZSBvbGQgKGFuZCBjb25mbGljdGluZyB3aXRoIHRyYXBzKSB0cmFuc3BvcnQgZG9tYWluIE9JRHMKICAgCjIwMDItMDUtMDEgMDY6MTkgIGR0czEyCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEuZGVmLAogICBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHdhbGsuMS5kZWY6CgogICBBZGQgdHlwZSB0YWdzICJTVFJJTkc6ICIgYW5kICJJTlRFR0VSOiAiIHRvIGV4YW1wbGUgb3V0cHV0LgogICBBZGQgZXhwbGljaXQgc2V0dGluZyBvZiBwcm90b2NvbCB2ZXJzaW9uIHRvIGV4YW1wbGUgY29tbWFuZHMuCiAgIAoyMDAyLTA1LTAxIDAzOjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWd1dGlsLmgsCiAgIGFndXRpbF9hcGkuaCwgYWxhcm0uYywgYWxhcm0uaCwgZXZlbnQuYywKICAgZXZlbnQuaCwgaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHJvd19hcGkuaCwKICAgcm93cy5jLCByb3dzLmgsIHN0YXRpc3RpY3MuYywgc3RhdGlzdGljcy5oOgoKICAgICAtIHJlbW92ZSBDVlMgTG9nOiBlbnRyaWVzIHdoaWNoIGFyZSBjYXVzaW5nIHByb2JsZW1zIHNpbmNlIHRoZXkgYXJlCiAgICAgICBlbWJlZGRlZCBpbiBhIGNvbW1lbnQsIGJ1dCBzb21lIG9mIHRoZSBsb2cgZW50cmllcyBjb250YWluIGNvbW1lbnQKICAgICAgIGRlbGltaXRlcnMuCiAgIAoyMDAyLTA0LTMwIDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSBuZXRzbm1wX3Byb2Nlc3Npbmdfc2V0LCBpdCBsaXZlcyBpbiBzbm1wX2FnZW50LmMKICAgCjIwMDItMDQtMzAgMjI6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICByZW1vdmUgdW51c2VkIHBhcmFtZXRlcjsgYWxsb3cgTk9ORSBhcyBvbGQgdmFsdWUgZm9yIHN0b3JhZ2UgdHlwZSB0cmFuc3Rpb25zCiAgIAoyMDAyLTA0LTMwIDIyOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIG92ZXJseSBjb21wbGV4IG1hY3JvIHN0dWZmIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUKICAgCjIwMDItMDQtMzAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUKLCB0ZXN0LnBsOgoKICAgLSBhbGxvdyBjb252ZXJzaW9ucyB0byBhbiBhcnJheSAobmVlZHMgdG8gYmUgdGllZCBzdGlsbCkuCiAgIC0gZG9jdW1lbnRhdGlvbi4KICAgCjIwMDItMDQtMzAgMDg6MTUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMyksIHNubXBkLmM6CgogICAgIC0gZml4IGJ1ZyAjNTQ1Nzc1LCByZXBvcnRlZCBieSBEYXZlIERlbnNvbiwgd2hlcmVieSB0aGUgUElEIG9mIGFuCiAgICAgICBhbHJlYWR5LXJ1bm5pbmcgc25tcGQgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3RhcnRpbmcgYSBuZXcgc25tcGQKICAgICAgICh3aGljaCB3b3VsZCB0aGVuIGV4aXQsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIHNubXBkIHJ1bm5pbmcgYW5kIHRoZQogICAgICAgd3JvbmcgUElEIGluIHRoZSBmaWxlKS4gIFNvbHV0aW9uIGlzIG5vdCB0byB3cml0ZSB0aGUgUElEIHVudGlsIHdlCiAgICAgICBoYXZlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYWxsIG91ciBzb2NrZXRzLgogICAKMjAwMi0wNC0zMCAwNzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVCwKICAgTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUsCiAgIHRlc3QucGwsIHR5cGVtYXA6CgogICBPSUQgcGVybCBtb2R1bGUgc28geW91IGNhbiBkbyBzaW1wbGUgT0lEIG1hbmlwdWxhdGlvbnMgd2l0aGluIHBlcmwgZWFzaWx5OgogICAgIC0gRXhhbXBsZTogIG5ldyBOZXRTTk1QOjpPSUQoJ2ludGVyZmFjZXMnKSA+IG5ldyBOZXRTTk1QOjpPSUQoJ3N5c3RlbScpCiAgIAoyMDAyLTA0LTI5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVnZXhwIGZpeCBmb3Igd2hpdGUgc3BhY2UgY2hlY2tzIGluIGluZGVudCBmb3JtYXR0ZWQgY29kZQogICAKMjAwMi0wNC0yOSAxNjo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW9yZGVyIHBlcmwgbW9kdWxlIG5hbWVzIHRvIHJlZmxlY3QgKG5ldykgZGVwZW5kZW5jaWVzLgogICAKMjAwMi0wNC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBmaXggYSBmZXcgd2FybmluZ3Mgb24gZmFpbGVkIHRlc3RzIChqdXN0IHNjcmVlbiBjbGVhbnVwcykKICAgCjIwMDItMDQtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgTWFrZSB0aGUgcGVybCBtb2R1bGUgcmVzcGVjdCBzbm1wLmNvbmYgc2V0dGluZ3MgKGZpbmFsbHkpLgogICAgIC0gTm93IHJlcXVpcmVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTmV0U05NUDo6ZGVmYXVsdF9zdG9yZSBtb2R1bGUgdGhvdWdoLgogICAKMjAwMi0wNC0yNyAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvbid0IHByb2Nlc3Mgc2V0IHJlcXVlc3QgdGlsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLCBhbmQgcXVldWUKICAgYW55IG90aGVyIHJlY2VpdmVkIHBhY2tldHMgdW50aWwgYSBzZXQgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nLgogICAKMjAwMi0wNC0yNyAwODoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFuIHVwIGNvbW1lbnRzIG11bmdlZCBieSBpbmRlbnQKICAgCjIwMDItMDQtMjcgMDg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNC0yNyAwODowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogb2JqZWN0X21vbml0b3IuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZmRlZiBneW1uYXN0aWNzIHRvIG1ha2Ugc3VyZSBhc3NlcnRzIGFyZSBvbmx5IGNvbXBpbGVkIGluIG9ubHkgaWYgZXhwbGljaXR5CiAgIHJlcXVlc3RlZAogICAKMjAwMi0wNC0yNiAyMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IHVuYmFsYW5jZWQgZW5kaWYgb24gbGludXguIGhvcGUgSSBkaWRuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZS4KICAgCjIwMDItMDQtMjYgMTk6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IHVudXNlZCB2YXIgd2FybmluZyBmb3IgIXdpbmRvd3MKICAgCjIwMDItMDQtMjYgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGZpeCBPSURfTEVOR1RIIGRlZmluaXRpb25zCiAgIAoyMDAyLTA0LTI2IDEwOjUzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzIGluIG1ha2VmaWxlcy4gIE1ha2UgZXZlcnl0aGluZyB1c2UKICAgbmV0LXNubXAtY29uZmlnLCAuLi4KICAgCjIwMDItMDQtMjYgMTA6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG06CgogICAtIENsZWFudXAuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBDaGFuZ2UgZG9jdW1lbnRhdGlvbiByZWZlcmVuY2VzIGZvciB1Y2Qtc25tcAogICAtIENoYW5nZSBjb250YWN0IGxvY2F0aW9uIHRvIG5ldC1zbm1wLXVzZXJzIChwZXIgSm9lJ3MgYWdyZWVtZW50KQogICAKMjAwMi0wNC0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBSRUFETUUsIAoJZGVmYXVsdF9zdG9yZS5wbSwgdGVzdC5wbDoKCiAgIC0gY2xlYW51cC4KICAgLSBVc2UgbmV0LXNubXAtY29uZmlnIHRvIGZpbmQgbGlicmFyeSwgZXRjLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gYSBmZXcgbW9yZSB0ZXN0cyBhZGRlZAogICAtIHVzZSBjb3JyZWN0IGxpYnJhcmllcwogICAtIGFkZCBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTA0LTI2IDA0OjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEV4dHJhY3RpbmcgdGhlIHZlcnNpb24gZnJvbSAnc25tcGxpYi9zbm1wX3ZlcnNpb24uYycgbmVlZHMgdG8gdGFrZSBhY2NvdW50CiAgIG9mIGJsYW5rIHNwYWNlLiAgUmVwb3J0ZWQgYnkgU3RlZmFuIFJhZG1hbiAoQnVnICM1NDczNzkpCiAgIAoyMDAyLTA0LTI2IDA0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOCksIG1lbW9yeS5jCjoKCiAgIEhhbmRsZSBtZW1vcnkgdmFsdWVzID4gMzJiaXQgKGxhdGNoaW5nIGF0IDJeMzItMSkKICAgUGF0Y2ggIzU0ODY2MyBmcm9tIFJvYiBNeWVycwogICAKMjAwMi0wNC0yNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJ0ludmFsaWQgb3B0aW9uJyBtZXNzYWdlLCBzaW5jZSB0aGlzIGlzIHR5cGljYWxseQogICByZXBvcnRlZCBieSBnZXRvcHQoKS4gIChTdWdnZXN0ZWQgYnkgQW5kcmV3IFJ1Y2tlciBKb25lcyAtIHBhdGNoICM1NDg3NDggKQogICAKMjAwMi0wNC0yNiAwMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFkZCAndicgdG8gdGhlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucyAocGF0Y2ggIzU0ODc0OCkKICAgVGhhbmtzIHRvIEFuZHJldyBSdWNrZXIgSm9uZXMuCiAgIAoyMDAyLTA0LTI2IDAzOjM2ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBpbXByb3ZlZCBIUC1VWCAxMSBwYXRjaAogICAoIzUzMDcyNCkgdG8gdGhlIG1haW4gdjUgbGluZSwgYXMgd2VsbCBhcyB0aGUgdjQtMiBicmFuY2guCiAgIFRoZSBjb2RlIG5vdyBjb21waWxlcyBjbGVhbmx5IHVuZGVyIEhQLVVYIDExIHVzaW5nIGdjYy4KICAgCjIwMDItMDQtMjUgMDc6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBQYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZyB0byBmaXggcG9zc2libGUgdmFyaWFibGUgbmFtZSBjbGFzaAogICAKMjAwMi0wNC0yNCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBoYW5kbGUgY2FsbGJhY2tzIHNlbmRpbmcgbmV3IG5vdGlmaWNhdGlvbnMgKHdoaWxlIHByb2Nlc3Npbmcgbm90aWZpY2F0aW9ucykKICAgCjIwMDItMDQtMjQgMjE6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICBoZWFkZXIgZm9yIG5ldyBmdWNudGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0cwogICAKMjAwMi0wNC0yNCAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBuZXcgZnVuY3Rpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdCB2YWx1ZXMKICAgCjIwMDItMDQtMjQgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgL3Byb2Mvc3RhdCBjYW4gYmUgbGFyZ2VyIHRoYW4gMTAyNAogICAKMjAwMi0wNC0yNCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pc3NpbmcgJ21kNS5oJyBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDQtMjMgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBsYXN0IG9mIHRoZSAjd2FybmluZ3MsIGFkZCB4eHgtcmtzIGlmIG5lY2Vzc2FyeQogICAKMjAwMi0wNC0yMyAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTIyIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUU6CgogICB1cGRhdGUgVVJMIHRvIHVzZSBmcmVlbm1wLmNvbSBtaXJyb3IgKHVubGVzcyBzb21lb25lIGtub3dzIGEgYmV0dGVyIHBsYWNlPykKICAgCjIwMDItMDQtMjIgMTQ6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYXBwbHkgZG9jdW1lbnRhdGluIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnZXIgPEF4ZWwuS2l0dGVuYmVyZ2VyQG1heHhpby5jb20+CiAgIAoyMDAyLTA0LTIyIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlIGV4dHJhIEBlbmRAIChzdXJlIHdvdWxkIGJlIG5pY2UgaWYgbWliMmMgd291bGQgY2hlY2sgZm9yIHVuYmFsYW5jZWQKICAgQGVuZEBzKQogICAKMjAwMi0wNC0yMiAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICB1cGRhdGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggaGVhZGVyIChubyBtaXhlZCBjYXNlKQogICAKMjAwMi0wNC0yMiAwODoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCBidWcgIzU0NzExMDogcHJvcGVybHkgc3BlbGwgZGVmaW5lCiAgIAoyMDAyLTA0LTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQgc3RhdGljIHRvIGEgcmV0dXJuZWQgdmFyaWFibGUKICAgCjIwMDItMDQtMjEgMTY6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMKICAgCjIwMDItMDQtMjEgMTE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgNS4wLnByZTMgLT4gNS4wOyAoSSdtIHN1cmUgdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB0aGlzIG5lZWRzIHRvIGNoYW5nZSwKICAgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgZmlyc3QgcG9zdCA1LjAgY2hlY2tpbi4uLjotKQogICAKMjAwMi0wNC0yMCAwMDozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMCApCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMiAtPiBWNS4wCgoyMDAyLTA0LTIwIDAwOjI3ICBoYXJkYWtlcgoKICAgKiBldmVyeXRoaW5nOgoKICAgc2V0IGFsbCBDVlMvUkNTIHJldmlzaW9uIGNvbnRyb2wgbnVtYmVycyB0byA1LjAKCQoyMDAyLTA0LTIwIDAwOjA3ICBoYXJkYWtlcgoKICAgKiBldmVyeXRoaW5nOgoJCiAgIFdoaXRlIHNwYWNlLCBvaCBnbG9yaW91cyB3aGl0ZSBzcGFjZS4KICAgSG93IGdyZWF0IG91ciB0aG91Z2g/CiAgIFRoZSBjb2RlIGlzIGZpbmUuCiAgIFdlIGFncmVlIG9uIGZ1bmN0aW9uYWxpdHkgZWFzaWx5LgogICBXaGF0IHJlYWxseSB0cm91YmxlcyB1cz8KICAgU29tZXRoaW5nIHdlIGNhbid0IHNlZS4KICAgU29tZXRoaW5nIGJldHdlZW4gdGhlIGNvZGUuCiAgIFdlIGJvdyBkb3duIHRvIHlvdXIgbWFnbmlmaWNlbmNlLAogICBGb3IgeW91IGFyZSBldmVyeXdoZXJlLAogICBCZXR3ZWVuIGV2ZXJ5dGhpbmcuCiAgIFByZXR0eSBub3RoaW5nbmVzcyB5b3UgYXJlLgoJCjIwMDItMDQtMjAgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHR1cm4gb24gdWNkIGNvbXBhdCBieSBkZWZhdWx0LgogICAKMjAwMi0wNC0yMCAwMDowMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGxhc3QgdXBkYXRlcwogICAKMjAwMi0wNC0xOSAyMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIHJlbW92ZSB0ZXN0ZGVsYXllZAogICAKMjAwMi0wNC0xOSAyMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogLmN2c2lnbm9yZSAsIC5jdnNpZ25vcmU6CgogICBjdnMgaWdub3JlIGZpbGUKICAgCjIwMDItMDQtMTkgMjM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZG9uJ3QgZGllIGlmIHBlcmwgZG9lc24ndCBpbml0LgogICAKMjAwMi0wNC0xOSAyMzowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgUkVBRE1FICwgU05NUC5wbToKCiAgIGNoYW5nZSB3YXJuaW5nLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbXVsdGlwbGUgaW5zZXJ0cyBpbnRvIHRoZSBkZWxlZ2F0ZWQgY2hhaW4gZG9uJ3QKICAgaGFwcGVuIChyZWFkOiB0aGV5IHNob3VsZG4ndCBhbnl3YXksIGJ1dC4uLi4uKS4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdHlwZWRlZiB1cGRhdGUKICAgCjIwMDItMDQtMTkgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBGaXggdGhlIGNhbGxiYWNrIGJ1aWxkIGhvb2sgdG8gdHVybiBvZmYgdGhlIGV4cGVjdCByZXNwb25zZSBmbGFnIHdoZW4KICAgbm90IGFwcHJvcHJpYXRlLgogICAKMjAwMi0wNC0xOSAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIHNwZWxsaW5nIG1pc3RlYWs7IHJlbW92ZSBjYXBpdGFsIGxldHRlcnMgaW4gZnVuY3Rpb24gbmFtZXMKICAgCjIwMDItMDQtMTkgMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB1cGRhdGUgZm9yIGZ1bmN0aW9uIG5hbWUgY2hhbmdlZCBpbiBvaWRfYXJyYXkuaAogICAKMjAwMi0wNC0xOSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBtYWtlIHRoZSBwZXJsSW5pdEZpbGUgYW5kIGRpc2FibGVQZXJsIHRva2VucyByZWdpc3RlciBhcyBwcmVtaWIgc3VjaAogICB0aGF0IHdoZW4gcGFzc2VkIGFzIGEgLS1GTEFHIGl0J2xsIGFjdHVhbGx5IGRvIHRoZSByaWdodCB0aGluZyBhbmQKICAgZGlzYWJsZSB0aGUgbGF0ZXIgInBlcmwiIHRva2VuIGhhbmRsZXJzLgogICAKMjAwMi0wNC0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBtYW4vTWFrZWZpbGUuaW4gLCBtYW4vbmV0c25tcF9hZ2VudC4zCiAgICwgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMgLCBtYW4vbmV0c25tcF9kZWJ1Zy4zICwKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMgLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKICAgLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zICwKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zICwgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwogICAsIG1hbi9uZXRzbm1wX29sZF9hcGkuMyAsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zICwKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMgLCBtYW4vbmV0c25tcF90YWJsZS4zICwKICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMyAsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMyAsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMyAsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKICAgLCBtYW4vbmV0c25tcF90b2RvLjM6CgogICBkb2N1bWVudGF0aW9uLiAgQ2FuJ3QgZ2V0IGVub3VnaC4KICAgICAtIG1ha2UgZG9jcyBub3cgaW5zdGFsbHMgbWFuIHBhZ2VzIGludG8gdGhlIG1hbiBkaXIsIHdoaWNoIGFyZSB0aGVuIGluc3RhbGxlZC4KICAgCjIwMDItMDQtMTkgMTc6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0ICwgVDEyMXByb3h5c2V0OgoKICAgQ29ycmVjdCBmb3IgbmV3IFNUUklORyBwcmVmaXguCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgS2F0c3VoaXNhIEFCRQogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ueHMgLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBmaXggaGVhZGVyIGZpbGVzIGZvciBuZXcgcGF0aHMuCiAgIAoyMDAyLTA0LTE5IDE3OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBtYW4vc25tcGQuY29uZi41LmRlZiAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoICM1MzI1NTU6IGlwdjYgY29tMnNlYyBzdXBwb3J0LCB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDQtMTkgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggc3lzVXBUaW1lIChhbmQgcmVsYXRlZCBmdW5jdGlvbnMpIHRvIGhhbmRsZSBtdWNoIGxhcmdlciB1cFRpbWUKICAgdmFsdWVzIChpZSwgZml4IHNpZ25lZCBpbnRlZ2VyIHdyYXBwaW5nKS4KICAgCjIwMDItMDQtMTkgMTE6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZW1iZWRkZWQgcGVybCBzdXBwb3J0LgogICAKMjAwMi0wNC0xOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9zbm1wX3BlcmwuYyAsIGFnZW50L3NubXBfcGVybC5wbCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBBZGQgc29tZSBuZXcgc25tcGQuY29uZiB0b2tlbnMgZm9yIGNvbnRyb2xsaW5nIHBlcmwgYmV0dGVyLgogICBGaXggZW1iZWRkZWQgcGVybCBzdXBwb3J0IHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0wNC0xOSAxMTozMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogLmN2c2lnbm9yZSAsIE1ha2VmaWxlLlBMICwKICAgZGVmYXVsdF9zdG9yZS5wbSAsIGRlZmF1bHRfc3RvcmUueHM6CgogICBBZGRlZCBtaXNzaW5nIGFnZW50IGRlZmF1bHRfc3RvcmUgc3R1ZmYuICAodGhleSBleGlzdGVkIG9uIG15IG1hY2hpbmUsCiAgIEkgZG9uJ3Qga25vdyB3aHkgZXZlcnlvbmUgZWxzZSB3YXMgaGF2aW5nIHByb2JsZW1zKQogICAKMjAwMi0wNC0xOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoaW5ncyB0aGF0IHNob3VsZCBuZXZlciBldmVyIGhhcHBlbgogICAKMjAwMi0wNC0xOSAwMzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICA8U2lnaD4gQSBsaXR0bGUgbGVhcm5pbmcgaXMgYSBkYW5nZXJvdXMgdGhpbmcuCiAgIEFwcGx5IHRoZSByZXN0IG9mIHRoZSBwYXRjaCBmcm9tIEF4ZWwgLSBzb3JyeS4KICAgCjIwMDItMDQtMTkgMDE6NDkgIGR0czEyCgogICAqIE1ha2VmaWxlLmluICwgZG94eWdlbi5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgZG9jdW1lbmF0aW9uIHdoZW4gc3JjZGlyICE9IGNvbmZpZ2RpcgogICAoUGF0Y2ggc3VwcGxpZWQgYnkgQXhlbCBLaXR0ZW5iZXJnZXIpCiAgIAoyMDAyLTA0LTE4IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGZpeCBzbm1wSVBYRG9tYWluIChhZ2FpbikKICAgCjIwMDItMDQtMTggMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IG9ubHkgb3BlbiBzdWJhZ2VudCBjb25uZWN0aW9ucyBvbmNlIGF0IHN0YXJ0dXAKICAgCjIwMDItMDQtMTggMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogZm9yIGRvd24gc3ViYWdlbnQgY2FzZXMsIG1hcmsgcmVnaXN0cmF0aW9ucyBhcyBkZXRhY2hlZAogICAKMjAwMi0wNC0xOCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVmaW5lIGEgbWF4aW11bSBwYWNrZXQgc2l6ZSB3ZSBjYW4gYWNjZXB0IHRvIHByb3RlY3QgY2VydGFpbiBlcnJvcgogICBjb25kaXRpb25zICgtMSBhZnRlciBjb252ZXJzaW9uIGlzIG5vdyB0b28gbGFyZ2UpLgogICAKMjAwMi0wNC0xOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIGNoYW5nZSB0aGUgZW50ZXJwcmlzZSBPSURzIGluIHRoZSBwcm9wZXIgcGxhY2UgKG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZSkuCiAgIAoyMDAyLTA0LTE4IDEzOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBuZXQtc25tcC1jb25maWcuaW46CgogICAtIEFkZCB0d28gbmV3IG9wdGlvbnMgdG8gbmV0LXNubXAtY29uZmlnIGFzIHJlcXVlc3RlZCBvbiB0aGUgSVJDIGNoYW5uZWwuCiAgICAgLS1jb25maWd1cmUtb3B0aW9ucwogICAgIC0tc25tcGQtbW9kdWxlLWxpc3QKICAgCjIwMDItMDQtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wNC0xOCAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2Ygc3VwcGxpZWQgZW50ZXJwcmlzZSBPSURzIGNvcnJlY3RseQogICAoYW5kIHVzZSBhIG1vcmUgbWVhbmluZ2Z1bCBvdXRwdXQgbWVzc2FnZSkKICAgCiAgIFNoYW1lIHRoZXNlIHNldHRpbmdzIGFyZW4ndCBjYWNoZWQgZm9yIGxhdGVyIHJlLXVzZS4uLi4KICAgCjIwMDItMDQtMTggMDc6MTggIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBOb3RpZnkgb24gYWdlbnQgcmVjb25maWd1cmF0aW9uLgogICAKMjAwMi0wNC0xOCAwNzoxNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgbm90aWZpY2F0aW9ucyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xOCAwNzowOCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4IHRoZSB0YWJsZS1vZi1jb250ZW50cyBzZXF1ZW5jZSBmb3IgdGhlIG5zTW9kdWxlVGFibGUsIGFkZCBub3RpZmljYXRpb24KICAgZGVmaW5pdGlvbnMgZm9yIHRoZSBhZ2VudCwgYW5kIGRlZmluZSBncm91cHMgZm9yIGV2ZXJ5dGhpbmcuCiAgIAoyMDAyLTA0LTE4IDAyOjUyICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQnJpbmcgaW50ZWdlciBhbmQgc3RyaW5nIG91dHB1dCBmb3JtYXRzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciB0eXBlcwogICBieSBwcmludGluZyBhIHR5cGUgdG9rZW4gYmVmb3JlIHRoZSB2YWx1ZSAodW5sZXNzIHN1cHJlc3NlZCBieSAncXVpY2sgcHJpbnQnKQogICBUaGFua3MgdG8gRXJpayBmb3IgdGhlIHBhdGNoCiAgIAoyMDAyLTA0LTE4IDAxOjQ2ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXBsYWNlIHRoZSBkbG1vZCAnV0hFUkUnIHdpdGggc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bC4uLi4KICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZGVmaW5lIHRoZSBpcHhEb21haW4gdmFyaWFibGVzCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBFcnJvciBjb25kaXRpb24gdGVzdHMKICAgCjIwMDItMDQtMTcgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBPaCwganVzdCBhIHNtYWxsIHBhdGNoIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gbWFrZSBtb2R1bGVzIHJlcXVlc3QKICAgdGhhdCBhbGwgcXVlcmllcyB0byBhIHNldCBvZiByZWdpc3RyYXRpb25zIGdldCBwYXNzZWQgYWxsIGF0IG9uY2UKICAgKHdoaWNoIGFwcGFyZW50bHkgaXMgaW1wb3J0YW50IGZvciwgb2gsIGFnZW50eCkKICAgCjIwMDItMDQtMTcgMTA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1pc2Mgbm9uLWNoYW5nZSBjbGVhbiB1cHMKICAgCjIwMDItMDQtMTcgMTA6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbmFtZSBzdHJ1Y3R1cmVzIGJlZ2lubmluZyB3aXRoIF8gdG8gZW5kaW5nIHdpdGggX3MKICAgCjIwMDItMDQtMTcgMTA6MDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBzZXNzaW9uIGNyZWF0b3IgdG8gdXNlIGF0IHdpbGwgKGRpZmZlcmVudAogICBmcm9tIHRoZSBjYWxsYmFjayBtYWdpYykuCiAgIAoyMDAyLTA0LTE3IDA5OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBzeXNPSURzIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE3IDA4OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UuCiAgIAoyMDAyLTA0LTE3IDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlCiAgIAoyMDAyLTA0LTE3IDA2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMgLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBtb3ZlIG5zTW9kdWxlVGFibGUgaW50byBEYXZlJ3Mgc3RydWN0dXJlLgogICAKMjAwMi0wNC0xNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmggLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGRlY2xhcmF0aW9ucyBvZiBEb21haW4gb2JqZWN0cyAoY29uc3QgLT4gZXh0ZXJuKQogICAKMjAwMi0wNC0xNyAwNjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZyAsCiAgIHNubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnICwgc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnOgoKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBkYXRhCiAgIAoyMDAyLTA0LTE3IDAzOjAxICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgcmVwb3J0ZWQgZGVmYXVsdCBzZXR0aW5ncyBmb3Igc3lzb2lkICYgbm90aWZpY2F0aW9uIE9JRHMKICAgYmFjayBpbnRvIGxpbmUgd2l0aCB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoaS5lLiB0aGUgdWNkYXZpcyBPSURzKS4KICAgCiAgIFFuOiAgRG8gd2Ugd2FudCB0byBzd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldC1zbm1wIGVxdWl2YWxlbnQgc3lzT0lEcz8KICAgUW46ICBXaGF0IGFib3V0IGRlZmluaW5nIG5ldC1zbm1wIG5vdGlmaWNhdGlvbnM/CiAgIAoyMDAyLTA0LTE3IDAyOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBGaXggLS13aXRoLWVudGVycHJpc2Utc3lzb2lkIGFuZCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkLAogICBhbmQgdHJ5IHRvIGNsYXJpZnkgdGhhdCB0aGVzZSBhcmUgT0lEcywgd2hpbGUgLS13aXRoLWVudGVycHJpc2Utb2lkCiAgIGlzIGFjdHVhbGx5IGp1c3QgdGhlIGVudGVycHJpc2UgKm51bWJlcioKICAgCiAgIFFuOiAgc2hvdWxkIHdlIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiB0byByZWZsZWN0IHRoaXM/CiAgIAoyMDAyLTA0LTE2IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4gLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICwgRkFRICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTMgKQogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgZGVsZXRlIHRvcCBkaXNjbGFpbWVycwogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0wNC0xNiAxMDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtaXNjIGJ1ZyBmaXhlcwogICAKMjAwMi0wNC0xNiAwODoxOSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGNvbmNlcm5pbmcgdGhlICdsaWJjcnlwdG8nIFJQTSBkZXBlbmRlbmN5LgogICAKMjAwMi0wNC0xNiAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTA0LTE2IDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgYSBubyBsb25nZXIgYXBwcm9wcmlhdGUgdG9kbyBjb21tZW50CiAgIAoyMDAyLTA0LTE2IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBJIGd1ZXNzIEkgZm9yZ290IHRvIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNC0xNSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBzbm1wY29uZiAsIE1ha2VmaWxlLmluOgoKICAgbW92ZSBzbm1wY29uZiBkYXRhIGRpcmVjdG9yaWVzIHRvIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCBjb25mdXNpb24KICAgCjIwMDItMDQtMTUgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9hdXRob3B0cyAsCiAgIHNubXAtZGF0YS9kZWJ1Z2dpbmcgLCBzbm1wLWRhdGEvbWlicyAsIHNubXAtZGF0YS9vdXRwdXQKICAgLCBzbm1wZC1kYXRhL2FjbCAsIHNubXBkLWRhdGEvYmFzaWNfc2V0dXAgLAogICBzbm1wZC1kYXRhL2V4dGVuZGluZyAsIHNubXBkLWRhdGEvbW9uaXRvciAsCiAgIHNubXBkLWRhdGEvb3BlcmF0aW9uICwgc25tcGQtZGF0YS9zeXN0ZW0gLAogICBzbm1wZC1kYXRhL3RyYXBzaW5rcyAsIHNubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcgLAogICBzbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlOgoKICAgZGF0YSBmaWxlIG1vdmluZwogICAKMjAwMi0wNC0xMiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBNYXNzaXZlIGNsZWFudXAgZWZmb3J0LiAgSXQgc2hvdWxkIG5vdyByZXNwZWN0IG9yZGVyaW5nIGluIHRoZQogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGZpbGVzIGFzIHdlbGwuCiAgIAoyMDAyLTA0LTEyIDEzOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgZml4IGZvciBvdmVyemVhbG91cyBwZXJsIHNjcmlwdAogICAKMjAwMi0wNC0xMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBjb3B5IHVjZCBwZXJzaXNlbnQgZGlyZWN0b3J5IHRvIG5ldC1zbm1wIChwcm9tcHRzLCBmbGFncyBhbmQgb3RoZXIgZnVuKQogICAKMjAwMi0wNC0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHRyYXB0b2VtYWlsCiAgIAoyMDAyLTA0LTEyIDA3OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICByZW1vdmUgdHJhcG5vdGlmCiAgIAoyMDAyLTA0LTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgcnNubXA6CgogICByZW1vdmUgcnNubXAsIHdoaWNoIGlzIHZlcnkgdmVyeSBvbGQgYW5kIG91dCBvZiBkYXRlCiAgIAoyMDAyLTA0LTEyIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlICwgTWFrZWZpbGUuaW4gLCBtaWIyYy4xLmRlZjoKCiAgIEEgbWFudWFsIHBhZ2UgZm9yIG1pYjJjIChoZWxwLCBJJ20gdHVybmluZyBpbnRvIERhdmUpCiAgIAoyMDAyLTA0LTEyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBkb3RnZGJpbml0OgoKICAgYSBnZGIgaW5pdGlhbGl6YXRpb24gZmlsZSB3aXRoIGhlbHBmdWwgZnVuY3Rpb25zCiAgIAoyMDAyLTA0LTEyIDAyOjQyICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEFkZCAnc25tcGNvbmYnIGFuZCAnbWliMmMnIHRvIHRoZSBsaXN0IG9mIHNjcmlwdHMgdG8gaW5zdGFsbC4KICAgCiAgIEkndmUgbGVmdCAndHJhcHRvZW1haWwnIG9mZiB0aGlzIGxpc3QsIHNpbmNlIGl0IHNheXMgaXQncyBub3QgaW50ZW5kZWQKICAgYXMgYSBkaXJlY3RseSB1c2VyLWludm9rZWQgY29tbWFuZCwgc28gcHJvYmFibHkgb3VnaHQgbm90IHRvIGJlIGluc3RhbGxlZAogICBpbnRvIGEgYmluYXJ5IGRpcmVjdG9yeS4KICAgCjIwMDItMDQtMTIgMDI6NDEgIGR0czEyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgRml4IHRoZSBwYXRoIG9mIHNubXB3YWxrIHRvIGJlIHNvbWV0aGluZyBtb3JlIHBsYXVzaWJsZS4KICAgKEknbSBub3QgY29udmluY2VkIGFib3V0IHRoZSB2YWxpZGl0eSBvZiB0aGF0IGluaXRpYWwgJ3J0b3BtaWInIE9JRCBtaW5kISkKICAgCjIwMDItMDQtMTIgMDI6MzYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBGaXggdHlwbyBpbiByZWZlcmVuY2UgdG8gJ21pYjJjLml0ZXJhdGUuY29uZicKICAgCjIwMDItMDQtMTIgMDI6MzMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1haW4gbGlicmFyeSBhcyAnbGlic25tcCcgaWYgY29uZmlndXJlZCB1c2luZyBVQ0QgY29tcGF0aWJpbGl0eS4KICAgVGhpcyBzaG91bGQgaGFuZGxlIHRoZSByZXF1aXJlbWVudHMgb2YgYXBwbGljYXRpb24gY29tcGF0aWJpbGl0eS4KICAgQWdlbnQgbGlicmFyeSBjb21wYXRpYmlsaXR5IGlzIGxpa2VseSB0byBwcm92ZSBhIGhhcmRlciBwcm9ibGVtCiAgIChzaW5jZSB0aGVyZSBhcmUgbm93IHRocmVlIGxpYnJhcmllcywgbm90IGp1c3QgdHdvLi4uKQogICAKMjAwMi0wNC0xMSAyMjoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHNldCBTTk1QQ09ORlBBVEggaWZmIFtzaWNdIG5vdCBzZXQKICAgCjIwMDItMDQtMTEgMjI6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmV0dXJuIGZyb20gaW5pdE1pYiBiZWZvcmUgZG9pbmcgYW55dGhpbmcuCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0dXJuIG9mZiBjb21wbGllciB3YXJuaW5ncwogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCAic2hvdyBjb2x1bW5zIGZyb20gVEFCTEUiCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSBuZXcgZGVtbyBzY2FsYXI6IHRoZSBzbGVlcGVyLiAgKGRhaCBkYWggZGFoIGR1bW1tbW0pCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBpbmRlbnQuCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzLmggLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKICAgLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmg6CgogICBBZGQgYSBkZWxheWVkIGluc3RhbmNlIGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHJldHVybiBtaWIgcmVxdWVzdAogICByZXN1bHRzIGxhdGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5LgogICAKMjAwMi0wNC0xMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIHJlbW92ZSBsZWdhY3kgZXhhbXBsZS4KICAgCjIwMDItMDQtMTEgMjI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBjb21tZW50IGFib3V0IHBvc3NpYmx5IGZpeGluZyBpbmNsdXNpdmUgcmVxdWVzdHMgaW4gdGhlIGZ1dHVyZS4KICAgCjIwMDItMDQtMTEgMTc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIGNoYW5nZSBtb2R1a2VzLT4gbW9kdWxlcwogICAKMjAwMi0wNC0xMSAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHR1cm4gb2ZmIGRlYnVnZ2luZyB3aGVuIGNhbGxpbmcgbG9nZ2luZyBjYWxsYmFja3MKICAgCjIwMDItMDQtMTAgMTI6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgZml4IHBlcmwgbW9kdWxlIGluIG1hbnkgbWFueSBwbGFjZXMuICBtb3N0IHRlc3RzIG5vdyBwYXNzLgogICAKMjAwMi0wNC0xMCAxMjo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIGZvcmNlIHNldHRpbmcgdG8gYSAiYm9ndXMiIFNOTVBDT05GUEFUSC4KICAgCjIwMDItMDQtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICBFeHBvcnRpbmcgZnVuY3Rpb25zIGdvb2QuICBJbnRlcm5hbGl6aW5nIGJhZC4KICAgCjIwMDItMDQtMTAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHNpZ2guCiAgIAoyMDAyLTA0LTEwIDA5OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTA0LTEwIDA5OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gTWFrZSB0aGUgcGVybCBtb2R1bGUgY2FsbCBpbml0X3NubXAoKQogICAgIC0gdGhpcyBpcyBhIGZhaXJseSBtYWpvciBjaGFuZ2UsIGlzIGl0IG5vdyB3aWxsIHJlYWQgLmNvbmYgZmlsZXMuCiAgICAgLSBtYW55IHBlb3BsZSBoYXZlIGFza2VkIGZvciB0aGlzLgogICAtIG1pc2MgY2xlYW4gdXBzLgogICAKMjAwMi0wNC0xMCAwOToxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBEb24ndCByZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgZm9yIHRoZSBjb25zaXR1ZW50IHN1YnRhcmdldHMgb2YgIm1ha2UgaW5zdGFsbCIKICAgCjIwMDItMDQtMTAgMDk6MDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBhIGZldyB0aGluZ3MsIHNlcGFyYXRlZCBwZXJsIHN0dWZmIGludG8gaXQncyBvd24gc2VjdGlvbi4KICAgCjIwMDItMDQtMTAgMDg6NDYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSBoZWxwIG1lc3NhZ2UgZm9yIHRoZSBVQ0QgY29tcGF0YWJpbGl0eSBvcHRpb24gaW50byBsaW5lIHdpdGgKICAgd2hhdCdzIGFjdHVhbGx5IHJlY29nbmlzZWQuCiAgIAoyMDAyLTA0LTEwIDA3OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjaGFuZ2UgbGlidG9vbCB2ZXJzaW9uaW5nIHRvIHRoZWlyIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBkb2luZyB0aGluZ3MKICAgKHdoaWNoIEkgaGF0ZSwgYnV0IGlzIHN0aWxsIGJldHRlciB0aGFuIHdoYXQgd2Ugd2VyZSBkb2luZywgSSBndWVzcykKICAgCjIwMDItMDQtMTAgMDc6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgQnJpbmcgdXNlIG9mIEJVSUxUU1VCRElSIHdpdGhpbiAnaW5zdGFsbGxvY2FsaGVhZGVycycgaW50byBsaW5lCiAgIHdpdGggdGhlIHByZWNlZGluZyBjb21tZW50LCBhbmQgYWN0dWFsIHVzYWdlLgogICAoaS5lLiBJTlNUQUxMQlVJTFRTVUJESVIgcmF0aGVyIHRoYW4gSU5DTFVERUJVSUxUU1VCRElSKQogICAKMjAwMi0wNC0xMCAwNTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR5cG8gaW4gc2VjdXJpdHktaW5jbHVkZSBoZWFkZXIgZGVzdGluYXRpb24gZGlyZWN0b3J5IHZhcmlhYmxlCiAgIAoyMDAyLTA0LTEwIDA1OjU1ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyBtaWIyYyBjb25mIGZpbGVzLgogICAKMjAwMi0wNC0xMCAwMTo1NSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDRzbm1wdjFub3N1Y2ggLCBUMDE5c25tcHYyY25vc3VjaDoKCiAgIFR3byBuZXcgdGVzdHMgdG8gY2hlY2sgaGFuZGxpbmcgb2YgR0VUaW5nIG5vbi1leGlzdGFudCBpbnN0YW5jZXMKICAgCjIwMDItMDQtMTAgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEEgZml4IGZvciBTTk1QdjEgZXJyb3JzIHRoYXQgZG9lc24ndCBlbmQgdXAgYnJlYWtpbmcgQWdlbnRYIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMi0wNC0wOSAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBEYXZlIHRvIGZpeCB2MSBlcnJvciByZXN1bHRzLgogICAKMjAwMi0wNC0wOCAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaXggaW5jb3JyZWN0IGxlbmd0aCByZXR1cm4gdmFsdWUKICAgCjIwMDItMDQtMDggMTg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgLCB2YWNtX3ZhcnMuaDoKCiAgIGRvbid0IGFsbG93IG5vLWNvbmZpZ3VyYXRpb24gYWNjZXNzIGFueW1vcmUuCiAgIAoyMDAyLTA0LTA4IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgbW9yZSB1bmNvbnN0IGNvcnJlY3RuZXNzCiAgIAoyMDAyLTA0LTA4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHNpemVfdCBleHRlcm5zIGZvciBleHBvcnRlZCBvaWRzCiAgIAoyMDAyLTA0LTA4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHRoYXQgYWNjaWRlbnRhbGx5IGJlY2FtZSBwZXJtYW5lbnQuCiAgIAoyMDAyLTA0LTA4IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jICwgc25tcF90cmFuc3BvcnQuYzoKCiAgIGRlZmluZSBsZW5ndGggc2l6ZV90J3MgZm9yIG9pZCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIHN1cHBvcnQgIm51bGwiIHR5cGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgbm90aWZpY2F0aW9uIGxvZyBtaWIgc3VwcG9ydCBiZWZvcmUgLUggdXNhZ2UuCiAgIAoyMDAyLTA0LTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZml4IGEgZmV3IHRoaW5ncyBhbmQgbWFrZSBzdWJoYW5kbGVycyBub3QgYWJsZSB0byB0ZWxsIHRoZXJlIHdlcmUgbW9yZSByZXF1ZXN0cy4KICAgCjIwMDItMDQtMDggMTY6NDMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBBIGNvLXdvcmtlciBwb2ludGVkIG91dCB0aGF0IHRoZSBJTlNUQUxMIHNjcmlwdCBzdGlsbCBzYWlkIHRvIGVkaXQgY29uZmlnLmgKICAgCjIwMDItMDQtMDggMTU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB1bnN0YXRpYy1pemUgYSBmZXcgb2lkcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gZXh0ZXJuYWwKICAgCjIwMDItMDQtMDggMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwKICAgc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcF9hcGkuYyAsIHNubXBfdHJhbnNwb3J0LmMKICAgLCBzbm1wdXNtLmM6CgogICBDaGFuZ2UgY29uc3Qgb2lkIGRlY2xhcmF0aW9ucyBpbnRvIHN0YXRpYyBvbmVzIHNpbmNlIHNoYXJlZCBsaWJyYXJpZXMKICAgaGF2ZSBhIHByb2JsZW0gd2l0aCBpbml0aWFsaXppbmcgdGhlbSBvbiBsaW51eCBzeXN0ZW1zIGF0IGxlYXN0LgogICAKMjAwMi0wNC0wOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5pbWFsIGRvY3VtZW50YXRpb24gZm9yIGRlYnVnZ2luZyBhbmQgdGhlIGluamVjdEhhbmRsZXIgdG9rZW4KICAgCjIwMDItMDQtMDUgMTQ6MzIgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXB0cmFwZC44LmRlZiAsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE5PVElGSUNBVElPTi1MT0ctTUlCIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGNvbnRleHQgbmFtZSBzdXBwb3J0IGluIHByb3h5IGNvZGUuCiAgIAoyMDAyLTA0LTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBkaXNtYW4gZXZlbnQgbWliIHN1cHBvcnQgZm9yIHNlbmRpbmcgdHJhcHMgdmlhIG1vbml0b3JlZCBPSURzLgogICAKMjAwMi0wNC0wNSAxMDoxMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBwdXQgdHJhcCBjb25maWcgaW50byBpdHMgb3duIHNlY3Rpb24uCiAgIGRvY3VtZW50IHRoZSAib3ZlcnJpZGUiIHRva2VuLgogICAKMjAwMi0wNC0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGNoYW5nZSBkZWZhdWx0IGNvbnRleHQgdG8gYW4gZW1wdHkgc3RyaW5nCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy41KSwgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRlYWwgd2l0aCBmZCB1bnJlZ2lzdHJhdGlvbnMgcHJvcGVybHkuCiAgIAoyMDAyLTA0LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIE1ha2UgYW4gZXhhbXBsZSBkYXRhc2V0IHRhYmxlIHRvIGhvbGQgYW5kIHN0b3JlIGRhdGEgaW4gKGFkbWl0dGVkbHkKICAgdXNlbGVzcyBkYXRhIGZyb20gYSBuZXR3b3JrIG1hbmFnZW1lbnQgcG9pbnQgb2YgdmlldywgYnV0IGl0J3MgYW4gZXhhbXBsZSkuCiAgIAoyMDAyLTA0LTAyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIGZyb20gc3ViZGlyIGJ1aWxkIGNhc2UuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMgZnJvbSBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oIGFuZCBtaWJfbW9kdWxlX2luY2x1ZGVzLmggZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLmggZnJvbSB0aGUgYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBjcmVhdGUgc29tZSBpbnN0YWxsIGZyb20gYnVpbHQgaGVhZGVyIHJ1bGVzLgogICAKMjAwMi0wNC0wMiAxNzoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIG1pYjJjLmNvbmY6CgogICByZW1vdmUgZGVsZXRlZCBhcnJheS1hdXRvIGZyb20gLmNvbmYgaW5zdGFsbC9yZWZlcmVuY2UgbGlzdHMKICAgCjIwMDItMDQtMDIgMTU6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCAsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICB1Y2Qtc25tcC9yZWdpc3RyeS5oOgoKICAgcmVtb3ZlIHRoZSByZWdpc3RyeSBtb2R1bGUsIGFzIGl0J3Mgb2Jzb2xldGUgZHVlIHRvIGNvbnRleHRzLiAgVXNlIHRoZSBuc01vZHVsZVRhYmxlIGluc3RlYWQKICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAoVjQtMi1wYXRjaGVzLjcpLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjQtMi1wYXRjaGVzLjgpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAyIDA3OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBjaGFyIGZvciBOVUxMIGJlZm9yZSBzZXR0aW5nIHRvOgogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy45KSwgY211X2NvbXBhdC5jICwKICAgc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI5IDE1OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzICYgdXBkYXRlcwogICAKMjAwMi0wMy0yOSAxMDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhZGQgY29tbWVudAogICAKMjAwMi0wMy0yOSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBhIGFsbG93X2NyZWF0aW9uIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTI5IDA4OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2UgbmV0LXNubXAtY29uZmlnIGV4ZWN1dGFibGUgYWZ0ZXIgaXQncyBidWlsdAogICAKMjAwMi0wMy0yOSAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzZXRTZXJpYWxOby5jICwgc2V0U2VyaWFsTm8uaDoKCiAgIG9wcHMuICBmb3Jnb3QgdG8gY2hlY2sgdGhlIHNldFNlcmlhbCBjb2RlIGluCiAgIAoyMDAyLTAzLTI4IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAoVjQtMi1wYXRjaGVzLjQpLCBwYXNzLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIGZvciBwYXNzIG1vZHVsZXMuICBQYXRjaCAjNDgyMDA1CiAgIAoyMDAyLTAzLTI4IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNTE3MzQwOiBmcmVlYnNkNSBzdXBwb3J0CiAgIAoyMDAyLTAzLTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jIChWNC0yLXBhdGNoZXMuNCksIGhyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYklJL2ludGVyZmFjZXMuYwogICAsIG1pYklJL2lwQWRkci5jOgoKICAgQXBwbHkgbmV0YnNkIGZpeCBwYXRjaCAjNTI5NzMzCiAgIAoyMDAyLTAzLTI4IDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wX2FwaS5jICwKICAgc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyNSAgZHRzMTIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCAsIHJlYWRfY29uZmlnLjMuZGVmICwKICAgc25tcF9hcGkuMy5kZWY6CgogICBUd2VhayB0byB1c2UgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZS4KICAgCjIwMDItMDMtMjggMTU6MjMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBBZGQgYSBmZXcgbmV3IGVudHJpZXMgKG1vc3RseSByZWxhdGluZyB0byB0cmFwcykKICAgCjIwMDItMDMtMjggMTQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW5hbWUvcHJlZml4IGZ1bmN0aW9uczsgYWRkIGRveHlnZW4gZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wMy0yOCAxMzowMCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIGFkZCBkZWZpbmUgZm9yIGV4Y2x1ZGluZyBzdHVmZiAoRE9YWUdFTl9TSE9VTERfU0tJUF9USElTKQogICAKMjAwMi0wMy0yOCAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCBzZXRTZXJpYWxObwogICAKMjAwMi0wMy0yOCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBmaXggYSBuZXZlci1zZWVuLWJ1dC12ZXJ5LW9sZC1idWcgdXNpbmcgdGhlIHdyb25nIGRlZmF1bHRfc3RvcmUgdG9rZW4uCiAgIAoyMDAyLTAzLTI4IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvbmx5IHNldCB0aGUgZGVmYXVsdCBvdXRwdXQgc3R5bGUgaWYgaXQncyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nLgogICAKMjAwMi0wMy0yOCAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIHdyYXBwaW5nLgogICAKMjAwMi0wMy0yOCAxMjoxNyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHZlcnNpb24gbnVtYmVyCiAgIAoyMDAyLTAzLTI4IDEyOjA4ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBiYWNrIG91dCBjaGFuZ2UgZnJvbSB2ZXJzaW9uIDEuNjUgdW50aWwgYmV0dGVyIHNvbHV0aW9uIGNhbiBiZSBmb3VuZDsKICAgYnVnICM1MzUwMjkKICAgCjIwMDItMDMtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmV0dXJuIHNwZWNpZmljIHJlc3VsdCBjb2RlIGZvciByZWdpc3RyYXRpb24gZmFpbHVyZSBpZiBhdmFpbGFibGUuCiAgIAoyMDAyLTAzLTI4IDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBwZXJsIHR5cG8KICAgCjIwMDItMDMtMjcgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBkZWxldGUgb2xkLCB1bnVzZWQgY29uZiBmaWxlCiAgIAoyMDAyLTAzLTI3IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jICwgbm90aWZpY2F0aW9uX2xvZy5oICwKICAgc25tcHRyYXBkLmM6CgogICBhZGQgImRvbnRSZXRhaW5Mb2dzIiB0b2tlbiB0byBzbm1wdHJhcGQuY29uZiB0byBub3QgZW5hYmxlIHRoZQogICBub3RpZmljYXRpb24gbG9nIG1pYi4KICAgCjIwMDItMDMtMjcgMDE6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGNvcnJlY3QgbmFtZSBvZiB0aGUgV2luZG93cyBJUCBIZWxwZXIgQVBJIGxpYnJhcnkuCiAgIChDb21wdXRlcnMgY2FuIGJlIHNvb29vIHBpY2t5ISkKICAgCjIwMDItMDMtMjYgMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIFJlYWxseSBmaXggdGhlICJ1bmRvIGZhaWxlZCIgcHJvYmxlbS4gIElFLCBub3QganVzdCBhbnkgb2xkIGVycm9yCiAgICAgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCBtZXNzYWdlIHRvIGdldCBzZW50IGJhY2suICBPbmx5IHZhcmJpbmRzCiAgICAgd2l0aCBhbiB1bmRvIGZhaWxlZCBlcnJvciBjb2RlIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgcmVzdWx0LgogICAgIHVuZG8gZmFpbGVkIHJlc3VsdHMgZG8gc3RpbGwgc3VwZXJzZWRlIGFsbCBvdGhlciBlcnJvciBjb2RlcywKICAgICBob3dldmVyLCB3aGljaCBpcyB3aGF0IHRoZSBvcmlnaW5hbCBwcm9ibGVtIHdhcyBhbGwgYWJvdXQuICBXZSBzdGlsbAogICAgIGhhdmUgdG8gZGVwZW5kIG9uIHRoZSBtb2R1bGVzIHJldHVybmluZyB0aGUgcmlnaHQgZXJyb3IgY29kZSAoYnV0CiAgICAgdGhhdCdzIHRoZWlyIGZhdWx0IGlmIHRoZXkgZG9uJ3QpLgogICAtIG1pc2MgY2xlYW51cHMgYW5kIHJlbmFtZXMKICAgCjIwMDItMDMtMjYgMjM6MjAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBDcmFpZyBTZXRlcmEKICAgCjIwMDItMDMtMjYgMTQ6MDcgIHJzdG9yeQoKICAgKiBUT0RPOgoKICAgYWRkIGNyZWF0aW5nIHNyYyBycG0gc3BlYyBmaWxlCiAgIAoyMDAyLTAzLTI2IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2tpby5jIChWNC0yLXBhdGNoZXMuMiksIGRpc2tpby5jOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NTggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBmaXggZm9yIG90aGVyLWRpciBidWlsZHMKICAgCjIwMDItMDMtMjYgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGluZm8gaW4gc3BsaXRfc3VidHJlZQogICAKMjAwMi0wMy0yNiAwNzo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bMCwwXSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAvZXRjL2ZpbGVzeXN0ZW1zIHRvIGxpc3Qgb2YgbW91bnQgdGFibGUgZmlsZXMgKGZvciBBSVgpCiAgIFNob3VsZCBmaXggYnVncyAyMzI1ODggYW5kICg/KTUxNzExMwogICAKMjAwMi0wMy0yNiAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bOSw5XSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjQxICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgbGlzdCBvZiBhZ2VudCBsaWJyYXJpZXMsIHdoZW4gcnVubmluZyBvbiBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjQtMi1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDMtMjUgMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgdXNlIGVtYWNzIHRvIGZpeCBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIHBlcmwgdG8gc2VhcmNoIGFuZCByZXBsYWNlIHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTI1IDA4OjQzICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCAsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKICAgLCBzbm1wZC9zbm1wZC5kc3AgLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsCiAgIHNubXBkZi9zbm1wZGYuZHNwICwgc25tcGdldC9zbm1wZ2V0LmRzcCAsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAogICAsIHNubXBzZXQvc25tcHNldC5kc3AgLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiAgICwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKICAgLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwICwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AgLAogICBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwICwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbnMgb2YgJ2dldG9wdC5jJyBhbmQgJ3NubXBfcGFyc2VfYXJncy5jJyBpbgogICBlYWNoIGluZGl2aWR1YWwgYXBwbGljYXRpb24gcHJvamVjdC4gIFRoZXNlIHJvdXRpbmVzIGFyZSBpbmNsdWRlZCB3aXRoaW4KICAgdGhlIGxpYnJhcmllcywgc28gd2UgbWlnaHQgYXMgd2VsbCB1c2UgdGhvc2UuCiAgIAoyMDAyLTAzLTI1IDA1OjUzICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyLm9wdCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgR290Y2hhISAgRXZlcnl0aGluZyBub3cgYnVpbGRzIChtb3JlLW9yLWxlc3MpIGNsZWFubHkgdW5kZXIgVmlzdWFsIEMrKy4KICAgWW91IHN0aWxsIGhhdmUgdG8gdXNlIHRoZSAiQmF0Y2ggQnVpbGQiIG1lY2hhbmlzbSAob3IgZWxzZSBiZSBjYXJlZnVsIHdoaWNoCiAgIG9mIGxpYnNubXAvbGlic25tcF9kbGwgeW91IGJ1aWxkIGluIGVhY2ggb2YgdGhlIERlYnVnICYgUmVsZWFzZSBtb2RlcyksCiAgIGFuZCB5b3UgbmVlZCB0byBidWlsZCB0d2ljZSBpbiBvcmRlciB0byBnZXQgZW5jb2RlX2tleWNoYW5nZSBsaW5raW5nLgogICBCdXQgdGhpbmdzICpkbyogZmluYWxseSBidWlsZC4KICAgCjIwMDItMDMtMjQgMDU6MjEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMyAwOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHJlYWxseSBmaXggc25tcGluZm9ybSBpbnN0YWxscyB0aGlzIHRpbWUuCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbmFsIGNsZWFudXBzIG9mIG5vdGlmaWNhdGlvbiBsb2cgc3VwcG9ydAogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gb2Ygc25tcGluZm9ybQogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJlbmFtZSBzdHVmZi4gIEZpeCBzdHVmZi4gIFlvdSBrbm93LCBub3JtYWwgcm91dGluZS4KICAgCjIwMDItMDMtMjIgMjI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB2ZXJzaW9uIGZpbGUgbG9jYXRpb24gZm9yIG5vbi1zb3VyY2VkaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTIyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZvcmdvdCB0byBjb21taXQgYSBwcm90b3R5cGUuCiAgIAoyMDAyLTAzLTIyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgcmVnaXN0ZXJfbWliX2NvbnRleHQyIC0+IG5ldHNubXBfcmVnaXN0ZXJfbWliIChhbmQgbWFya2VkIGFzIGludGVybmFsKQogICAKMjAwMi0wMy0yMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBzdWJhZ2VudC5jOgoKICAgdXNlIG5ldyBlcnJvciBsb2dnaW5nIGFwaSB3aGVuICFyb290CiAgIAoyMDAyLTAzLTIyIDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlbmFibGUgbG9nZ2luZyBzZXNzaW9uIGVycm9ycyB0byBzb21lIGxvZyBsZXZlbCBvdGhlciB0aGFuIEVSUi4KICAgCjIwMDItMDMtMjIgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgc3ViYWdlbnQuYzoKCiAgIGJldHRlciBhZ2VudHggY29ubmVjdGlvbiByZWxhdGVkIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0yMiAwOTozNSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3cgLCB3aW4zMi5vcHQgLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwICwgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AgLCBzbm1wZC9zbm1wZC5kc3A6CgogICBTbG93bHkgbWFraW5nIHByb2dyZXNzIG9uIDUuMCBXaW5kb3dzIGJ1aWxkLgogICBFdmVyeXRoaW5nIG5vdyBjb21waWxlcywgdGhvdWdoIHRoZSBSZWxlYXNlIHZlcnNpb24gZG9lc24ndCBsaW5rLgogICAgIChjb21wbGFpbnMgYWJvdXQgYXNzb3J0ZWQgdW5rbm93biByb3V0aW5lcyB0aGF0IGFyZSB0aGVyZSwKICAgICAgc3RhcmluZyBpdCBpbiB0aGUgZmFjZS4gIEdycnIhISEhKQogICAKMjAwMi0wMy0yMiAwODoyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBub3QgInR3ZWFrIiByYW5nZV9zdWJpZCB3aGVuIGRlYWxpbmcgd2l0aCBjb21wcmVzc2VkIE9JRHMuCiAgICAgICBUaGFua3MgdG8gQ3JhaWcgU2V0ZXJhIGZvciBwb2ludGluZyBvdXQgdGhpcyBkZXZpYXRpb24gZnJvbSBSRkMKICAgICAgIDI3NDEuCiAgIAoyMDAyLTAzLTIyIDA3OjUwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLCBzbm1wbGliL29pZF9hcnJheS5jCiAgICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFZhcmlvdXMgbWlub3IgaW5jb25zaXN0ZW5jaWVzIChtb3N0bHkgdG8gZG8gd2l0aCBzdWJ0bGUgdmFyaWF0aW9ucyBpbiB0eXBlcykKICAgCjIwMDItMDMtMjIgMDc6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDMtMjIgMDc6MjkgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oICwgbWliX21vZHVsZV9pbml0cy5oICwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBuZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnJpbmcgV2luZG93cyB2ZXJzaW9ucyBvZiAiYXV0b21hdGljYWxseS1nZW5lcmF0ZWQiIGhlYWRlciBmaWxlcyB1cCB0byBkYXRlLgogICAKMjAwMi0wMy0yMiAwMjoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZG9uJ3QgdXNlICJyZWciIGFzIGEgcGFyYW1ldGVyIG5hbWUgaW4ga2VybmVsX3N1bm9zNV9jYWNoZV9hZ2UoKQogICAgICAgYXMgL3Vzci9pbmNsdWRlL2luZXQvY29tbW9uLmggc2F5czoKICAgICAgICNkZWZpbmUgcmVnIHJlZ2lzdGVyCiAgICAgICAoISkgd2hpY2ggdGhlIGNvbXBpbGVyIHRoZW4gYmFyZnMgb24uICBSZXBvcnRlZCBhcyBidWcgIzUzMzMzNiBieQogICAgICAgQW5vbnltb3VzLgogICAKMjAwMi0wMy0yMSAwOToyNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfY29uZmlnKiAtPiBuZXRzbm1wX2NvbmZpZyAoZm9yIG5ldyBmdW5jdGlvbnMgb25seSkKICAgLSBmaXggYnVnIHdoZXJlIHNubXBfY29uZmlnKCkgc3RyaW5ncyB3ZXJlIGdldHRpbmcgcGFyc2VkIHR3aWNlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHdyYXAgYWdlbnR4IHN0dWZmIGluIGEgc3RpbGwgdW51c2VkIHZhcmlhYmxlIChhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgZml4IG9pZCBwYXJzaW5nLgogICAKMjAwMi0wMy0yMSAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uL2FsYXJtLmMgLCBSbW9uL3N0YXRpc3RpY3MuYyAsCiAgIG1pYklJL2F0LmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIxIDA2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjAgMjA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBhIGxpc3Qgb2YgcmVnaXN0ZXJlZCB0ZXh0IGVudW1zIHRvIEFTTl8qIHZhbHVlcy4KICAgICAoSW4gcHJvYmFibHkgdGhlIHdyb25nIHBsYWNlLikKICAgCjIwMDItMDMtMjAgMjA6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMgLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaDoKCiAgIGNyZWF0ZSBhIG5ldyAib3ZlcnJpZGUiIGRpcmVjdGl2ZSB0byBmb3JjZSBhbiBPSUQgdG8gYSBwYXJ0aWN1bGFyIHZhbHVlCiAgIC0gbm90IGZpbmlzaGVkLiAgSXQncyBkZXNpZ25lZCB0byBkbyByZWFkLXdyaXRlIGFzIHdlbGwsIGJ1dCBkb2Vzbid0LgogICAKMjAwMi0wMy0yMCAyMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2hlY2sgZm9yIGluY2x1c2l2ZQogICAKMjAwMi0wMy0yMCAxMTozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBpbmNsdWRlIG5ldyBkZWxldGUvcmVtb3ZlIGJyZWFrZG93biBBUElzCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFQSSBjaGFuZ2UuCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIHNvbWUgInRoaXMgd2lsbCBjaGFuZ2UiIGVhcmx5IHJvdyBzdGF0dXMgaW1wbGVtZW50YXRpb24uCiAgICAtICh0aGlzIHdpbGwgbW92ZSB0byBhIHNlcGFyYXRlIGhhbmRsZXIpCiAgIAoyMDAyLTAzLTIwIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHBvaW50ZXIgY2hlY2tpbmcgYWdhaW5zdCBpbGxlZ2FsIGFkZHMgKGllLCBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBjaGVjayBhbnl3YXkpCiAgIAoyMDAyLTAzLTIwIDA4OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgT2ssIEkgbWFrZSBtaXN0YWtlcy4gIEkgYWRtaXQgaXQuICBJdCByZWFsbHkgc2hvdWxkIGhhdmUgYmVlbiBhIE5VTEwuCiAgIAoyMDAyLTAzLTIwIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDMtMjAgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBzZXBhcmF0ZSBvdXQgZGVsZXRlL3JlbW92ZSByb3cgZnVuY3Rpb25hbGl0eQogICAKMjAwMi0wMy0yMCAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0yMCAwNjoyNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGUgLCBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG1hbnkgbWFueSAtVCBmbGFncyBmb3IgZGVmaW5pbmcgdHlwZXMuCiAgIAoyMDAyLTAzLTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZm9yY2Ugc2V0dGluZyBvZiAnIXJvb3QnIGZsYWcgc28gdGhhdCBpdCB3aWxsIHJ1biBmb3Igbm9uLXByaXZpbGVnZWQKICAgdXNlcnMgb3Igd2hlbiBhbiBhZ2VudHggbWFzdGVyIHNpbXBseSBoYXMgbmV2ZXIgZXhpc3RlZC4KICAgCjIwMDItMDMtMTkgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGFsbG93IHRhYmxlcyB0byBiZSBtYXJrZWQgd2hldGhlciB0aGV5IHNob3VsZCBzdXBwb3J0IGNyZWF0aW9uIG9yIG5vdC4KICAgLSBidWcgZml4ZXMKICAgCjIwMDItMDMtMTkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMgLCB0YWJsZV9kYXRhc2V0LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGhlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBwZXJsL2FnZW50L2FnZW50LnhzICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVuYW1lZCBhIGZldyBiYWRseSBuYW1lZCBmdW5jdGlvbnMgKG5ldHNubXBfIGFwcGVhcmVkIHR3aWNlKS4KICAgLSBpbXBsZW1lbnRlZCB0aGUgYmVnaW5uaW5nIG9mIGNyZWF0aW9uIHN1cHBvcnQgZm9yIGRhdGFzZXRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgQXBwYXJlbnRseSBJIHJhbiBhdXRvY29uZiBlYXJsaWVyIGFuZCBtaXNzZWQgY2hlY2tpbmcgaW4gdGhlIHJlc3VsdHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGFkZCAtbmZjYQogICAKMjAwMi0wMy0xNyAxNjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgU2V0IGRlZmF1bHQgcG9ydCB0byAxNjIuCiAgIAoyMDAyLTAzLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jOgoKICAgaW1wcm92ZWQgZm9ybWF0dGluZyBzdHJpbmdzIHNob3dpbmcgYm90aCB0cmFuc3BvcnQgdHlwZSBhbmQgcG9ydCBudW1iZXIuCiAgIAoyMDAyLTAzLTEzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBtaXNzaW5nICJpbnN0YWxsc3ViZGlycyIgdGFyZ2V0IG1pc3NpbmcgKHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFKQogICAKMjAwMi0wMy0xMyAyMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY3JlYXRlLXNubXB2My11c2VyIHRvIGF1dG9tYXRlIGFkZGluZyBhIHYzIHVzZXIgdG8gYm90aCB0aGUgdXNtCiAgIGFuZCB2YWNtIHRhYmxlcyAoYnkgYWRkaW5nIGxpbmVzIHRvIGJvdGggdGhlIHBlcnNpc3RlbnQgYW5kIG5vcm1hbAogICBjb25mIGZpbGVzKS4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGJ1ZyBmaXggZm9yIHByZS1wcm9jZXNzZWQgcmVxdWVzdHMuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oICwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmggLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgoKICAgLSAtLWVuYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGFjdHVhbGx5IGluc3RhbGxzIGhlYWRlcnMgKGFzIG9wcG9zZWQKICAgICB0byBhbHdheXMsIHdoaWNoIGlzIHdoYXQgaXQgdXNlZCB0byBkbykuCiAgIC0gYWRkIGFnZW50X21pYnMgdG8gY29uZmlndXJlIGRlZmF1bHQgbWliIG1vZHVsZXMgYW5kIGRvY3VtZW50LgogICAtIGNoYW5nZSBoZWxwIGRvY3VtZW50YXRpb24gYSBiaXQgZm9yIHRoZSBtaWIgbW9kdWxlcy4KICAgLSBhZGQgYSBmb3JjZWQgZGVwZW5kZW5jeSBmb3IgbWliX21vZHVsZXMubG8KICAgCjIwMDItMDMtMTMgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Lmg6CgogICBvcHBzLiAgZHVwbGljYXRlcyBleGlzdGluZyBhZ2VudF9taWJzLmgKICAgCjIwMDItMDMtMTMgMTU6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dAogICAoVjQtMi1wYXRjaGVzLlsxLDEsMSwxLDEsOV0pLCBVQ0QtREVNTy1NSUIudHh0ICwKICAgVUNELURJU0tJTy1NSUIudHh0ICwgVUNELURMTU9ELU1JQi50eHQgLAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCAsIFVDRC1JUEZXQUNDLU1JQi50eHQgLAogICBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmggLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBBZGRlZCBhIG5zTW9kdWxlVGFibGUgdGFibGUgd2hpY2ggcmVwbGFjZXMgdGhlIG9sZGVyIG1yVGFibGUuCiAgIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgaXRlbXMgd2l0aGluIHRoZSBNSUIKICAgdHJlZSBqdXN0IGxpa2UgdGhlIG1yVGFibGUgd2FzLCBidXQgd2l0aCBzdXBwb3J0IGZvciBjb250ZXh0cyBhbmQgZm9yCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIHdpdGggZGlmZmVyZW50IHByaW9yaXRpZXMuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAoVjQtMi1wYXRjaGVzLjQpLCB0b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgdW5uZWVkZWQgZGVidWcgc3RhdGVtZW50CiAgIAoyMDAyLTAzLTEzIDE0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGxvY2FsIHZhcmlhYmxlIG5hbWUgYnVmZmVycyBieSBkZWZhdWx0IHdoZW4gYnVpbGRpbmcgb2lkIHNlZ21lbnRzLgogICAKMjAwMi0wMy0xMyAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLyogc3RvcCB3YXRlciBmcm9tIGZsb3dpbmcgdGhyb3VnaCBkYW0gKi8KICAgZmluZ2VyLT5pbnNlcnQoImhvbGUiKQogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjE6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIG1pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBoZWFkZXJzLgogICAKMjAwMi0wMy0xMiAyMToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZG9uJ3QgZm9ybWF0IGNvbW1lbnRzIG9wdGlvbgogICAKMjAwMi0wMy0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIHRhYmxlcyB3aXRoIGhvbGVzLgogICAKMjAwMi0wMy0xMiAyMTowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIG1vdmUgZGVmYXVsdCBtaWJzIHRvIHRoZWlyIG93biB2YXJpYWJsZS4KICAgCjIwMDItMDMtMTIgMjE6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL01ha2VmaWxlLlBMICwgYWdlbnQvTWFrZWZpbGUuUEwgLAogICBhZ2VudC9hZ2VudC54cyAsIGFnZW50L3R5cGVtYXA6CgogICAtIHVzZSBuZXQtc25tcC1jb25maWcgdG8gZmlndXJlIHRoaW5ncyBvdXQuCiAgIC0gdXBkYXRlIGhlYWRlcnMgYW5kIHR5cGVpbmZvIGZvciByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogRkFRMkhUTUwgLCBSRUFETUUubWliMmMgLCBtaWIyYyAsIHRrbWliCiAgICwgbWliMmMuYXJyYXktYXV0by5jb25mICwgbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBtaWIyYy5jb25mIGZpbGUKICAgCjIwMDItMDMtMTIgMTg6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9uJ3QgZm9yZ2V0IHRvIHNldCByb3ctPm5leHQtPnByZXYgdG8gc29tZXRoaW5nIHdoZW4gcmVtb3Zpbmcgcm93LgogICAKMjAwMi0wMy0xMiAxNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGFnZW50eCBpbmNsdXNpdmUgc2VhcmNoZXMgdG8gaWdub3JlIGdldCBlcnJvcnMuCiAgIAoyMDAyLTAzLTEyIDE3OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgc29tZSBtaW5pbWFsIGR1bXAgZGVidWdnaW5nLgogICAKMjAwMi0wMy0xMiAwODozNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIFVwZGF0aW5nIG9mIHRoZSBGQVEgcmVhZHkgZm9yIHRoZSBuZXh0IHJlbGVhc2UuCiAgIChNb3N0bHkgcmVwaHJhc2luZyBvZiBleGlzdGluZyBlbnRyaWVzLCBidXQgYSBmZXcgbmV3IHF1ZXN0aW9ucykKICAgCjIwMDItMDMtMTEgMTg6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGNhc3QgLTEgdG8gdV9jaGFyIHNvIHRlc3QgZG9lc24ndCBhbHdheXMgZmFpbCAoZml4IGNvbXBpbGVyIHdhcm5pbmcpCiAgIAoyMDAyLTAzLTExIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB0cmVhdCAoaWxsZWdhbCkgZXJyb3JzIGZyb20gc3ViYWdlbnRzIHNwZWNpYWxseSBmb3IgZ2V0bmV4dCBjYXNlcy4KICAgCjIwMDItMDMtMTEgMTM6NDEgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBvdXIgc25tcCBsaWJyYXJpZXMgdG8gb3V0cHV0CiAgIAoyMDAyLTAzLTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogdGFibGVfZGF0YS5oICwgdGFibGVfZGF0YXNldC5oOgoKICAgZGVsZXRlL3JlbW92ZSBzdXBwb3J0IGhlYWRlciBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMSAwOToxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBjb21waWxhdGlvbiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VENQCiAgIAoyMDAyLTAzLTExIDA4OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gZml4ZXMgZm9yIC0tZGlzYWJsZS1kZWJ1Z2dpbmcKICAgCjIwMDItMDMtMTEgMDc6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIGNvcnJlY3Qgc2Vzc2lvbiBJRCB3aGVuIHRhbGtpbmcgdG8gc3ViYWdlbnRzLiAgVGhhbmtzIHRvIENyYWlnCiAgICAgICBTZXRlcmEgZm9yIHRoaXMgZml4LgogICAKMjAwMi0wMy0xMSAwNToyMCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTEgMDA6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBjaGVjayBmb3IgTlVMTCBmcmVlcywgZXZlbiB0aG91Z2ggaXQncyBzdXBwb3NlZCB0byBiZSBvayBhY2NvcmRpbmcgdG8gYW5zaS4KICAgCjIwMDItMDMtMTEgMDA6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYmVnaW5uaW5nIHN1cHBvcnQgZm9yIG1heGltdW0gbG9nZ2VkIGNoZWNraW5nLgogICAKMjAwMi0wMy0xMSAwMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIC0gbnVsbCBjaGVjawogICAtIGRvYyBjb21tZW50cy4KICAgCjIwMDItMDMtMTEgMDA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgCjIwMDItMDMtMTEgMDA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV4dCBoYW5kbGVycyAob3BwcykuCiAgIAoyMDAyLTAzLTEwIDE0OjExICBuYmEKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBGaXggb25lIHNwcmludF92YXJpYWJsZSA9PiBzbnByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAzLTEwIDE0OjA2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgIEFkZCBzbnByaW50XyogZnVuY3Rpb25zIHRoYXQgd2VyZSBzcHJpbnRfKiBpbiB1Y2Qtc25tcCA0CiAgIAoyMDAyLTAzLTEwIDE0OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXggY29tcGlsYXRpb24gd2hlbiBJUFgtdHJhbnNwb3J0IGVuYWJsZWQKICAgCjIwMDItMDMtMTAgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgRml4IGNvbXBpbGF0aW9uIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMy0wOCAyMjoyNiAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgcGVybC9TTk1QL1NOTVAucG0gLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUyICkKICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1pc2MgY2hhbmdlcy4KICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTA4IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZCB0byBkZWFsIHdpdGggU2VuZG1haWwgOC4xMiBxdWV1ZWdyb3Vwcy4KICAgCjIwMDItMDMtMDggMTY6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIGNzZXRlIHRvIGZpeCB3aW4zMiBidWlsZHMKICAgCjIwMDItMDMtMDggMTY6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBDYWxsYmFjayB0cmFuc3BvcnQgdG8gY3lnd2luCiAgIAoyMDAyLTAzLTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBybW9uIHN1cHBvcnQuCiAgIAoyMDAyLTAzLTA4IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHJlbW92ZSBvbGQgYW4gdW51c2VkIHBvaW50ZXIKICAgCjIwMDItMDMtMDggMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmggLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXBidWxrZ2V0LmMgLAogICBhcHBzL3NubXBidWxrd2Fsay5jICwgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMKICAgLCBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcGdldG5leHQuYyAsCiAgIGFwcHMvc25tcHNldC5jICwgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jCiAgICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmggLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCAsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICwKICAgbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL2NtdV9jb21wYXQuYyAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIHN0cnVjdCBzbm1wX3Nlc3Npb24gdHlwZWRlZmVkIHRvIG5ldHNubXBfc2Vzc2lvbi4gICYgcGR1LiAmIC4uLgogICAKMjAwMi0wMy0wOCAxNDowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXRfc3ltYm9sIC0+IGdldF90cmVlCiAgIAoyMDAyLTAzLTA4IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9TTk1QLnhzICwgYWdlbnQvYWdlbnQucG0gLCBhZ2VudC9hZ2VudC54cwogICAsIGFnZW50L3Rlc3QucGw6CgogICBtaXNzZWQgdXBkYXRlcwogICAKMjAwMi0wMy0wOCAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jICwgZGVmYXVsdF9zdG9yZS5jICwgbWliLmMKICAgLCBvaWRfYXJyYXkuYyAsIG9pZF9zdGFzaC5jICwgcmVhZF9jb25maWcuYwogICAsIHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uYyAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsIHNubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBfYXBpLmMgLCBzbm1wX2RlYnVnLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcHYzLmM6CgogICBtaXNzaW5nIHVwZGF0ZWQgY29kZQogICAKMjAwMi0wMy0wOCAwMjowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNvbWUgc25tcCAtPiBuZXRzbm1wIGZpeGVzCiAgIAoyMDAyLTAzLTA3IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyA0KQogICAKMjAwMi0wMy0wNyAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMykKICAgCjIwMDItMDMtMDcgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAyKQogICAKMjAwMi0wMy0wNyAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmggLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXBzdGF0dXMuYyAsCiAgIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDEpCiAgIAoyMDAyLTAzLTA3IDA2OjIxICBqYnBuCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTo0NyAgamJwbgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgICAgLSBtaW5vciB1cGRhdGVzCiAgIAoyMDAyLTAzLTA3IDA1OjM5ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTowMCAgamJwbgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICAgIC0gbWFrZSBwcm90b3R5cGVzIG1hdGNoIGhlYWRlcgogICAKICAgICAtIG1ha2Ugc3R5bGUgY29uc2lzdGVudCB3aXRoIG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDM6MDcgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZml4IHVwIHNucHJpbnRfIGRlY2xhcmF0aW9ucywgZml4IHNtYWxsIHR5cG8uICBQYXRjaCBieSBHdXkKICAgSGFycmlzLgogICAKMjAwMi0wMy0wNyAwMjo0NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiBzcHJpbnRfcmVhbGxvY19ieV90eXBlLCBhcyBub3RlZAogICAgICAgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlICwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZToKCiAgIG5ldyBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDMtMDYgMTc6MTMgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgZG9jcwogICAKMjAwMi0wMy0wNiAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGV4YW1wbGVzIG1vZHVsZSB3cmFwcGVyIHRvIGluY2x1ZGUgYWxsIChuZXcpIGV4YW1wbGVzLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnQgYmV0dGVyLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgc2VhcmNoIGV4YW1wbGVzIGZvciBkb2NzLgogICAKMjAwMi0wMy0wNiAxNjoyOSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZXhhbXBsZSBNSUIgdGVtcGxhdGUgKGFuZCBvbmUgbm9kZSkKICAgCjIwMDItMDMtMDYgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIGluc3RhbnRpYXRlIGV4YW1wbGVzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIE5TIG1pYnMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogc2NhbGFyX2ludC5jICwgc2NhbGFyX2ludC5oOgoKICAgRXhhbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBhIFNOTVAgZW5hYmxlZCBpbnQgcmVnaXN0ZXJlZCBhdCBhIHNjYWxhci4KICAgCjIwMDItMDMtMDYgMTY6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIG1hbnkgY2hhbmdlcyBmb3IgaW5zdGFuY2VzLiAgU3BlY2lmaWNpY2FsbHk6CiAgICAgLSBhbGxvdyBmb3Igc3ViaGFuZGxlcnMuCiAgICAgLSBwcm92aWRlIGFuIGludCB3cmFwcGVyLgogICAgIC0gcmV1c2UgbW9yZSBjb2RlLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9hZG1pbi5jOgoKICAgRml4IG1hc3RlciBhZ2VudCBnZXRidWxrIHN1cHBvcnQuICB0aGlzIGhhcyB0byBiZSBpbmRlcGVuZGVudGx5IG9mIHRoZQogICBub3JtYWwgYnVsay0+bmV4dCBmaXhlcyBkdWUgdG8gZGVsZWdhdGlvbi4gIExvbmcgc3RvcnkuCiAgIAoyMDAyLTAzLTA2IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgbW92ZSBidWxrX3RvX25leHQgZml4aW5nIGZ1bmN0aW9uYWxpdHkgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZS4KICAgCjIwMDItMDMtMDYgMTA6MjYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBzcHJpbmtsZSBtYWdpYyBjb25zdCBkdXN0CiAgIAoyMDAyLTAzLTA2IDEwOjE4ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGRvY3VtZW50IGNoYW5nZWQgQVBJLCBpbmNvcnBvcmF0aW5nIHBhdGNoZXMgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDk6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEyYWdlbnR4c2V0ZmFpbCAsIFQxMjJwcm94eXNldGZhaWw6CgogICBmaXggdGVzdHMuCiAgIAoyMDAyLTAzLTA2IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgcmUtZW5hYmxlIHNldHRpbmcgb3B0aW5kIHRvIDEgdGlsbCBEYXZlIHRlbGxzIG1lIHdoZXJlIHRoaXMgYnJlYWtzLgogICAKMjAwMi0wMy0wNiAwOTowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTFzbm1wdjJjdHJhcCAsIFQwNTJzbm1wdjJjaW5mb3JtICwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICBmaXhlcyBmb3IgbmV3IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjIwMDItMDMtMDYgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vcmUgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgKG1vc3RseSkKICAgCjIwMDItMDMtMDYgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGF1dG9jb25mCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHByb3RvY29sLmM6CgogICBwcm9wZXIgZml4IGZvciBub3QgcmVxdWlyaW5nIHJlc3BvbnNlcyB0byBDTEVBTlVQIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wNiAwNjowNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gemVybyB0aGUgbmFtZSBvZiBlbGVtZW50cyBvZiB0aGUgYnVsayBjYWNoZQogICAKMjAwMi0wMy0wNiAwNjowNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNhbGxvYygpIG5vdCBtYWxsb2MoKSBpbiBhIGZldyBwbGFjZXMgdG8gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMKICAgICAgIHRvIHplcm9lcy4KICAgCjIwMDItMDMtMDYgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwNTo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCByZXF1ZXN0cyBmb3IgT0lEcyBwcmVjZWVkaW5nIHRoZSBzdGFydCBvZiBhIHJlZ2lvbgogICAgICAgKHRoaXMgY2FuIGxlYWQgdG8gbG9vcHMgaWYgZS5nLiBhIHN1YmFnZW50IGhhcyByZWdpc3RlcmVkIHR3bwogICAgICAgYWRqYWNlbnQgcm93cykuCiAgIAoyMDAyLTAzLTA2IDA1OjA3ICBqYnBuCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAgIC0gaWdub3JlIGVycm9ycyBkb2luZyBybSAtcmYgL3RtcC9zbm1wLXRlc3QqIHdoZW4gbWFraW5nIHRlc3RjbGVhbgogICAKMjAwMi0wMy0wNiAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHVzZSBtb3JlIGVmZmljaWVudCBnZXRfdHJlZSgpIGluIHNwcmludF9yZWFsbG9jX3ZhbHVlKCkKICAgCjIwMDItMDMtMDUgMTg6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE1c25tcHYyY2dldG5leHQgLCBUMDAxc25tcHYxZ2V0ICwKICAgVDAwMnNubXB2MWdldG5leHQgLCBUMDAzc25tcHYxZ2V0ZmFpbCAsIFQwMTRzbm1wdjJjZ2V0CiAgICwgVDAxNnNubXB2MmNnZXRmYWlsICwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwgLCBUMTAwYWdlbnRodXA6CgogICBmaXhlcyBmb3IgbmV3IGZvcmNlZCAtYyBmbGFncwogICAKMjAwMi0wMy0wNSAxODoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIGNvbW1lbnQuCiAgIAoyMDAyLTAzLTA1IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBkdXBsaWNhdGUgZnJlZSBieSBjbG9uaW5nIHRoZSBwZHUgYmVmb3JlIHNlbmRpbmcgaXQgb3V0IGFnYWluCiAgICh0aG91Z2h0IEkgaGFkIGRvbmUgdGhpcyBvbmNlIGluIHRoZSBwYXN0IGFscmVhZHksIGJ1dCBJIGdvdCAxLzIgZnVuY3Rpb25zKS4KICAgCjIwMDItMDMtMDUgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGVtcG9yYXJ5IGZpeCB0byBmaXggZm9yIGFnZW50eCBTRVQgcmVxdWVzdHMuICBUaGlzIHJldmVyc2VzIGEKICAgcHJldmlvdXMgSm9obiBjaGFuZ2Ugd2hlcmUgcmVzcG9uc2VzIHRvIGNsZWFudXBzIGFyZSBub3cgZXhwZWN0ZWQKICAgYWdhaW4uICBUaGlzIHRvb2sgbWUgYSBnb29kIDIgZGF5cyB0byB0cmFjayBkb3duLCBzaWdoLi4uCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIGFkZCAoYXNjaWkpIGFnZW50eCBzdGF0ZSBkaWFncmFtCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIG11bHRpcGxlIGZyZWUgYnVnIGZpeGVzLgogICAtIGltcHJvdmVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMy0wNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAsIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICByZW1vdmVkIHVudXNlZCBmaWxlcwogICAKMjAwMi0wMy0wNSAxMDozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCBmaXggYmFkIGN1dCBhbmQgcGFzdGUKICAgCjIwMDItMDMtMDUgMTA6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVpbnRyb2R1Y2Ugc2NvcGUgcHJvY2Vzc2luZyAoc2VlIFJGQyAyNzQxLCBwLiA2Niwgc2VjdGlvbiA3LjIuMy4yCiAgICAgICBwYXJhZ3JhcGggMik6ICJJZiB0aGUgc3ViYWdlbnQgY2FuJ3QgbG9jYXRlIGFuIGFwcHJvcHJpYXRlCiAgICAgICB2YXJpYWJsZSwgX192Lm5hbWVfaXNfc2V0X3RvX3RoZV9zdGFydGluZ19PSURfXyBbdGhlIGltcG9ydGFudAogICAgICAgYml0XSBhbmQgdGhlIFZhckJpbmQgaXMgc2V0IHRvIGBlbmRPZk1pYlZpZXcnIgogICAKMjAwMi0wMy0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwODo0OCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBzbm1wX2FnZW50LmMgLAogICBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgbmV3IERFQlVHTVNHVkFSIG1hY3JvIGluIGEgZmV3IHBsYWNlcwogICAKMjAwMi0wMy0wNSAwODo0NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHTVNHVkFSIG1hY3JvIHRvIHByaW50IG91dCBhIHZhcmlhYmxlCiAgIAoyMDAyLTAzLTA1IDA4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIHByaW50X3ZhbHVlIGZ1bmN0aW9uIHVwZGF0ZXMuCiAgIAoyMDAyLTAzLTA1IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHVjZERlbW9QdWJsaWMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICB1Y2REZW1vUHVibGljLmM6CgogICBBZGQgbWlzc2luZyAic3RhbmRhcmQiIGhlYWRlcnMsIGFuZCB0d2VhayBhIHR5cGUgc2xpZ2h0bHkuCiAgIChCYXNlZCBvbiByZXF1ZXN0cyBmcm9tIEdyZWdvcnkgVG90aCkuCiAgIAoyMDAyLTAzLTA1IDA4OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBncnJyLCBib3RjaGVkIGxhc3QgZml4CiAgIAoyMDAyLTAzLTA1IDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgY2FsbGJhY2sgc2Vzc2lvbiB2ZXJzaW9uIG51bWJlciB0byB0aGUgZ2VuZXJpYyAtMQogICB2ZXJzaW9uIGFsbG93aW5nIHRoZSBwZHUgdG8gcGFzc2VkIHdpdGhvdXQgdmVyc2lvbiBjaGVja2luZy4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1vdmUgTlVMTCBjaGVjayB0byAqYmVmb3JlKiB5b3UgYWN0dWFsbHkgdXNlIHRoZSBwb2ludGVyLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gbWFyayBJTkNMVVNJVkUgcmVxdWVzdHMgYXMgc3VjaAogICAKMjAwMi0wMy0wNSAwNzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIHVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSB3aGlsZSBsb29wLCBqdXN0IGEgcHJlY2F1dGlvbiBmb3IgZnV0dXJlIHByb2JsZW1zLgogICAKMjAwMi0wMy0wNSAwNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9jaGVja19wYXJzZSkgYWxsb3cgaW50ZXJuYWwgc2V0IHRyYW5zYWN0aW9ucyB0byBiZSBwYXNzZWQgdG8KICAgICB0aGUgYWdlbnQsIHNpbmNlIGFnZW50eCBzZW5kcyB0aGVtLgogICAKMjAwMi0wMy0wNSAwNzoyMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGRvbid0IGFkZCB0aGUgIm1vZHVsZSBJRCIgdG8gT0lEcyBpZiBpdCBpcyBudW1lcmljIGJlY2F1c2Ugd2UKICAgICAgIGNvdWxkbid0IGxvb2sgaXQgdXAgcHJvcGVybHkgKHRvIGF2b2lkIGhvcnJpYmxlIGxvb2tpbmcgb3V0cHV0CiAgICAgICBsaWtlIHRoaXM6ICJPSUQ6ICMtMTo6aXNvLjIuMy40LjUuIikKICAgCjIwMDItMDMtMDUgMDc6MDUgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gMmMgaW4gZXJyb3IgbWVzc2FnZSBmcm9tIHZlcnNpb24gcHJvbXB0CiAgIAoyMDAyLTAzLTA1IDA3OjAxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHRlc3RzCiAgIAoyMDAyLTAzLTA1IDA2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICAtIHJlLWVtcGhhc2lzIGEgc3VnZ2VzdGlvbiB0byBzd2l0Y2ggdG8gYSBzZWN1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuCiAgIC0gZGVsZXRlIG5vdGlvbiB0aGF0IHYzIHdpdGhvdXQgYXV0aC9wcml2IHByb3ZpZGVzIGJldHRlciBzZWN1cml0eSAoaXQgZG9lc24ndCkuCiAgIC0gRG9uJ3QgYWNjZXB0IHYyYyBhcyBhbiBhY2NlcHRlZCB2YWx1ZSwgYXMgaXQncyB1c2VkIGFzIGFuIGludC4KICAgICAtIGJ1dCBkbyBjaGFuZ2UgaGVscCBtZXNzYWdlcywgZXRjLCB0byByZWZsZWN0IHRoYXQgMiA9IHYyYy4KICAgCjIwMDItMDMtMDUgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY2FsbG9jIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA1IDA2OjIwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8gaW4gT0JKUyBkZWZpbml0aW9uCiAgIAoyMDAyLTAzLTA1IDA2OjE4ICBqYnBuCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgICAtIGNsZWFuIHRhcmdldCBkZXBlbmRzIG9uICQoT0JKUykgYW5kICQoTE9CSlMpLCBzbyBkZWZpbmUgdGhlbQogICAKMjAwMi0wMy0wNSAwMzo1MiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGRlZmF1bHQgdmVyc2lvbiB0ZXN0cyAoc3BsaXR0aW5nIHRoZW0gb3ZlciBzZXZlcmFsIGxpbmVzCiAgICAgICBjb25mdXNlcyBzaCBvbiBTb2xhcmlzLCBhdCBsZWFzdCkuCiAgIAogICAgIC0gZGlzYW1iaWd1YXRlIHNvbWUgaW5zdGFuY2VzIG9mICJ2ZXJzaW9uIiBpbiBkZWZhdWx0IHZlcnNpb24KICAgICAgIHByb21wdCB0ZXh0LgogICAKMjAwMi0wMy0wNSAwMjozNCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ29ycmVjdGx5IGRldGVjdCB3aGVuIG5vIGluaXRpYWwgZGVmYXVsdCB2ZXJzaW9uIGhhcyBiZWVuIHNldC4KICAgQWNjZXB0ICcyYycgYXMgd2VsbCBhcyAnMicgZm9yIGEgZGVmYXVsdCB2ZXJzaW9uIGNob2ljZS4KICAgRml4IHRoZSB0aXRsZSBmb3IgdGhpcyBwcm9tcHQsIGFuZCByZXdvcmQgdGhlIGRlc2NyaXB0aW9uIHRvCiAgIG1ha2UgaXQgYSAqc2xpZ2h0bHkqIGxlc3MgbGVhZGluZyBxdWVzdGlvbiwgbSdsdWQuCiAgIAogICBRbjogU2hvdWxkIHdlIHN1cHBvcnQgYSAibm8gZGVmYXVsdCB2ZXJzaW9uIiBvcHRpb24gPwogICAgIChoZW5jZSBhbGxvdyB0aGUgYWRtaW4gdG8gZm9yY2UgdGhlIGRlY2lzaW9uIGRvd24gdG8gdGhlIHVzZXIpCiAgIAoyMDAyLTAzLTA0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2UKICAgCjIwMDItMDMtMDQgMTg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIChUbyBKb2huKTogZG8gbm90IGZyZWUgdGhlIG15dm9pZCBwb2ludGVyIGluIGEgaGFuZGxlci4gIFlvdSBjYW4gbm90CiAgIGFzc3VtZSB0aGF0IGl0J3MgYSBmcmVlYWJsZSByZXNvdXJjZS4gIEZvciBpbnN0YW5jZSwgdGhlIGFnZW50eCBtYXN0ZXIKICAgYWdlbnQgd2FzIHVzaW5nIGl0IHRvIHN0b3JlIHRoZSBtYXN0ZXIgc2Vzc2lvbiBwb2ludGVyIGluIGl0ICh3aGljaAogICB3b3VsZCBleGlzdCBpbiBtdWx0aXBsZSByZWdpc3RlcmVkIG5vZGVzKS4KICAgCjIwMDItMDMtMDQgMTc6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhIGNvbmZpZ3VyZSBnZW5lcmF0ZWQgd3JhcHBlciBoZWFkZXIgZm9yIHYzIHNlY3VyaXR5IG1vZHVsZXMuCiAgIAoyMDAyLTAzLTA0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgZG1hbGxvYy5oIHRvIHRoZSBwcm9wZXIgcGxhY2UuCiAgIAoyMDAyLTAzLTA0IDExOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzdHJpbmcgY2xlYW4gdXBzLgogICAKMjAwMi0wMy0wNCAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGFjbG9jYWwubTQgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB2My5jOgoKICAgSW1wbGVtZW50IGEgZGVmYXVsdCB2ZXJzaW9uIHByb21wdCBmb3IgY29uZmlndXJlLgogICAgLSAoV2VzIGR1Y2tzIGFzIHRoaXMgaXMgY3VycmVudGx5IHNldCB0byAnMycgd2hpY2ggaGUgbWF5IGhhdmUgdG8KICAgICAgIGNoYW5nZSBhcyBpdCBoYXNuJ3QgZXhhY3RseSBiZWVuIGFncmVlZCB1cG9uIGFzIHRoZSBwcm9wZXIgZGVmYXVsdCB5ZXQpLgogICAgLSAtLXdpdGgtZGVmYXVsdC1zbm1wLXZlcnNpb24gYWxzbyBjcmVhdGVkLgogICAgLSBjaGFuZ2VkIGhhbmRsaW5nIG9mIGRlZmF1bHQgc3RvcmUgLyBzbm1wLmNvbmYgdXNhZ2UgYnV0IGltcGFjdAogICAgICBzaG91bGQgYmUgbG93LCBob3BlZnVsbHkuCiAgIAoyMDAyLTAzLTA0IDExOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhIGZldyBlcnJvciBzdHJpbmdzIHNsaWdodGx5IGltcHJvdmVkLiAgV2UgcmVhbGx5IG5lZWQgdG8gY2hhbmdlIHRoZQogICB3YXkgdGhlc2UgYXJlIGhhbmRsZWQgdG8gZ2V0IGJldHRlciBpbXByb3ZlbWVudC4KICAgCjIwMDItMDMtMDQgMDc6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIGNsZWFuaW5nIG9mIC90bXAgZnJvbSB0aGUgbWFpbiBjbGVhbmluZyB0byBwcm92aWRlIGl0CiAgIGFzIGEgc3BlY2lhbCB0YXJnZXQuCiAgIAoyMDAyLTAzLTA0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC1XYWxsIGZpeGVzLgogICAKMjAwMi0wMy0wNCAwNTozMiAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiAsIHNubXBidWxrd2Fsay4xLmRlZiAsCiAgIHNubXBnZXQuMS5kZWYgLCBzbm1wZ2V0bmV4dC4xLmRlZiAsIHNubXBzdGF0dXMuMS5kZWYKICAgLCBzbm1wdGVzdC4xLmRlZiAsIHNubXB0cmFwLjEuZGVmOgoKICAgICAtIHJlbW92ZSBmdXJ0aGVyIGluc3RhbmNlcyBvZiBwb3NpdGlvbmFsIGNvbW11bml0eSBzdHJpbmcgcGFyYW1ldGVyLAogICAgICAgYWZ0ZXIgUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDU6MjUgIGpicG4KCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAsIHNubXB3YWxrLjEuZGVmOgoKICAgICAtIHBhdGNoZXMgZnJvbSBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjYpLCBtZW1vcnkuYzoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgbWFraW5nIHRoZSAoc2FtZSkgZGVidWdnaW5nIHN0YXRlbWVudCBtb3JlIHVzZWZ1bC4KICAgCjIwMDItMDMtMDEgMjI6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSB0byBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTAzLTAxIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYyAsIG1pYi5jICwgc25tcF9hcGkuYyAsCiAgIHNubXBfY2xpZW50LmMgLCBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhIGZldyBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTAxIDEyOjAxICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgaW5zdGFsbCBoZWFkZXJzIGhlcmUuCiAgIAoyMDAyLTAzLTAxIDA1OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gYWRkIHNucHJpbnRfdmFsdWUsIHNucHJpbnRfdmFyaWFibGUsIHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDItMjggMDY6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYyAsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AgLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEFkZCBiYWNrIHRoZSAnc25tcENhbGxiYWNrJyBkb21haW4gdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjcgMTA6MDQgIGpicG4KCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYyAsIHNubXBnZXQuYwogICAsIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMgLCBzbm1wc3RhdHVzLmMKICAgLCBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLCBzbm1wdHJhbnNsYXRlLmMKICAgLCBzbm1wdHJhcC5jICwgc25tcHVzbS5jICwgc25tcHdhbGsuYzoKCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzLCBtYWtlIHRoZW0gbW9yZSBjb25zaXN0ZW50IGFuZCBicmluZyBpbiBsaW5lCiAgICAgICB3aXRoIG1hbnVhbCBwYWdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBtYW4vOiBzbm1wc2V0LjEuZGVmICwgc25tcHRhYmxlLjEuZGVmICwgc25tcHRyYXAuMS5kZWYKICAgLCBzbm1wdXNtLjEuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgY2hhbmdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBwYXJzZS5jICwgc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzIHRvIGJlIG1vcmUgY29uc2lzdGVudCBhbmQgaW4gbGluZSB3aXRoIG1hbnVhbAogICAgICAgcGFnZXMKICAgCjIwMDItMDItMjcgMDk6NDcgIGR0czEyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbS5jOgoKICAgSGFuZGxlIHZpZXdzIHRoYXQgc3BlY2lmeSBhIGZ1bGwgaW5zdGFuY2UgT0lELgogICAoU2luY2UgdGhlIGludGVybmFsbHkgc3RvcmVkIE9JRCBwcmVwZW5kcyB0aGUgbGVuZ3RoIGFzIHdlbGwsCiAgICB0aGUgYXBwYXJlbnQgbGVuZ3RoIGlzIG9uZSBncmVhdGVyIHRoYW4gaXQgcmVhbGx5IGlzKQogICAKMjAwMi0wMi0yNyAwNjo1MCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIFtBRERSRVNTRVNdIC0+IFtMSVNURU5JTkcgQUREUkVTU0VTXSBpbiB1c2FnZSBtZXNzYWdlLCB0byBtYXRjaAogICAgICAgbWFudWFsIHBhZ2UuCiAgIAoyMDAyLTAyLTI3IDA2OjA5ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRyb3Agb3B0aW9uYWwgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGZyb20gdHJhcHNlc3MKICAgICAgIGRlc2NyaXB0aW9uLgogICAKMjAwMi0wMi0yNyAwNTo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGRyb3Agc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gbm8gc25wcmludF9ibGFoIHlldAogICAKMjAwMi0wMi0yNyAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAsIGhyX3N3cnVuLmM6CgogICBVc2UgdGhlIG1vcmUgaW5mb3JtYXRpdmUgJ291dHB1dF9hcGkuaCcgaGVhZGVyIGZpbGUgbmFtZQogICAgIChJIG11c3QgaGF2ZSBtaXNzZWQgdGhlc2UgZWFybGllcikKICAgCjIwMDItMDItMjcgMDU6MzUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB5ZXMsIGZvciBvbmNlIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgKmJlZm9yZSogdGhlCiAgIGNvZGUhCiAgIAoyMDAyLTAyLTI3IDA1OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA1OjExICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfYXBpLmggLCBzbm1wX2RlYnVnLmggLAogICBzeXN0ZW0uaDoKCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNToxMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaDoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQTCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNDozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jICwgYXBwcy9zbm1wZGVsdGEuYyAsCiAgIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHdhbGsuYwogICAsIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwMjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNyAwMjowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZSwgbm8sIEkgTUVBTiBpdCB0aGlzIHRpbWUKICAgCjIwMDItMDItMjcgMDI6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjYgMTI6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjbGVhciBuZXcgbWVtb3J5IGFmdGVyIHJlYWxsb2MoKSBzaW5jZSByZWFsbG9jIGRvZXNuJ3QgZG8gaXQuCiAgIAoyMDAyLTAyLTI2IDEyOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBVTlNJR05FRDMyCiAgIAoyMDAyLTAyLTI2IDA4OjU1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jICwga2VybmVsX3N1bm9zNS5oICwKICAgbWliSUkvYXQuYyAsIG1pYklJL2ljbXAuYyAsIG1pYklJL2ludGVyZmFjZXMuYyAsCiAgIG1pYklJL2lwLmMgLCBtaWJJSS90Y3AuYyAsIG1pYklJL3VkcC5jICwKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gY2hhbmdlIGNhY2hlIGltcGxlbWVudGF0aW9uIGFmdGVyIHNvbWUgaW50ZXJlc3RpbmcgcHJvZmlsaW5nIChzZWUKICAgICAgIGxlbmd0aHkgbmV3IGNvbW1lbnQgaW4ga2VybmVsX3N1bm9zNS5jKQogICAKMjAwMi0wMi0yNiAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBzbm1wbGliL3NubXAtdGMuYyAsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgUmVtb3ZlIGFzc29ydGVkIGV4dHJhbmVvdXMgXk0ncwogICAKMjAwMi0wMi0yNiAwNzoxNCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQSBxdWljayBndWlkZSB0byBpbnN0YWxsaW5nIHRoZSBDb3JlIFBsYXRmb3JtIFNESywgbmVlZGVkIGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjYgMDc6MDMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgIE1vc3RseSBiZWNhdXNlIFZDKysgaXMgZnVzc3kgYWJvdXQgc29ydC1vZi1jb21wYXRpYmxlIGRhdGEgdHlwZXMKICAgICAoZS5nLiBzaWduZWQgdnMgdW5zaWduZWQgaW50ZWdlcnMpLgogICAKMjAwMi0wMi0yNiAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi5kc3cgLCB3aW4zMi5vcHQKICAgLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AgLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCAsCiAgIHNubXBkL3NubXBkLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgUmVuYW1lICdsaWJ1Y2RtaWJzJyB0byByZWZsZWN0IHRoZSBjaGFuZ2Ugb2YgcHJvamVjdCBuYW1lLAogICBhbmQgYXNzb3J0ZWQgdHdlYWtzIHNvIHRoYXQgdGhlIGZ1bGwgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgICAoTi5COiBUaGUgYWdlbnQgcmVxdWlyZXMgIk1pY3Jvc29mdCBQbGF0Zm9ybSBDb3JlIFNESyIgaW4gb3JkZXIKICAgICAgIHRvIGJ1aWxkIHRoZSAnbmV0c25tcG1pYnMnIHByb2plY3QpCiAgIAoyMDAyLTAyLTI2IDA2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB2YXJpYWJsZSBpbiBhIHdhcm5pbmcKICAgCjIwMDItMDItMjYgMDY6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wMi0yNSAyMTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1vcmUgaW5zdGFsbCBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI1IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpbnN0YWxsaW5nIERCRDo6RmlsZS4KICAgCjIwMDItMDItMjUgMjA6MzggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBvbmUgdG9vIG1hbnkgJzAncyBpbiBhIHVybC4KICAgCjIwMDItMDItMjUgMjA6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICByZXdvcmQuCiAgIAoyMDAyLTAyLTI1IDIwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgbW92ZSB3YXJuaW5nIG91dHNpZGUgc2Vjb25kYXJ5IHdhcm5pbmcgYXVnbWVudGF0aW9uIGxvb3AuCiAgIAoyMDAyLTAyLTI1IDIwOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDItMjUgMTY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgZmluZF90YWJsZV9hcnJheV9oYW5kbGVyKCk7IHJlbW92ZSBkZWJ1Z2dpbmcgY29kZS9jb21tZW50czsKICAgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGhhbmRsZXIgYmVmb3JlIHVzaW5nIHRoZSB2b2lkIHBvaW50ZXI7CiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAyLTI1IDExOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgMiBuZXcgZnVuY3Rpb25zLgogICAKMjAwMi0wMi0yNSAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzZXQgc2VjdXJpdHkgbW9kZWwKICAgCjIwMDItMDItMjUgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwgd2luMzIvd2luMzIuZHN3OgoKICAgQ29udGludWluZyBpbXByb3ZlbWVudHMgdG8gY29tcGlsYXRpb24gb2YgdGhlIGxhdGVzdCBjb2RlIHVuZGVyIFZpc3VhbCBDKysuCiAgIFRoZSAnbGliaGVscGVycycgcHJvamVjdCBub3cgY29tcGlsZXMsIGFuZCB0aGlzIGFsc28gYWRkcmVzc2VzIGEgbnVtYmVyCiAgIG9mIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGxpYmFnZW50IGFuZCBsaWJ1Y2RtaWJzIHByb2plY3RzLgogICAgIEJ1dCB0aGVzZSB0d28gc3RpbGwgZmFpbCBvbiAnT0lEX0xFTkdUSCcgYW5kICdpcGhscGFwaS5oJwogICAKMjAwMi0wMi0yNSAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFByb3ZpZGUgYSBwbGF1c2libGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI1IDA2OjA0ICBqYnBuCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgICAgLSByZXNvbHZlIGNvbmZsaWN0aW5nIFNZTlRBWGVzIGZvciBuc1RyYW5zYWN0aW9uTW9kZQogICAKICAgICAtIGFkZCByYW5nZSBmb3IgaW5kZXggbnNUcmFuc2FjdGlvbklECiAgIAoyMDAyLTAyLTI1IDAzOjIzICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBFbnN1cmUgdGhlIG1haW4gbGlicmFyeSBjb21waWxlcyBhbmQgd29ya3MgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MTkgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmggLCBzbm1wdHJhcGQuYzoKCiAgIEVuc3VyZSBzbm1wdHJhcGQgY29tcGlsZXMgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MDkgIGR0czEyCgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9zdGFzaC5jICwgc25tcC10Yy5jICwKICAgdWNkX2NvbXBhdC5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGtlZXAgVmlzdWFsIEMrKyBoYXBweS4KICAgCjIwMDItMDItMjUgMDI6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgV3JhcCB3aXRoICJleHRlcm4gQyIKICAgCjIwMDItMDItMjUgMDI6NTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg6CgogICBQYW5kZXIgdG8gQ1BQJ3MgaW5jcmVkaWJseSBmdXNzeSBuYXR1cmUsIGFuZCBwcm92aWRlIHRoZSBjb3JyZWN0IGhlYWRlciBmaWxlIG5hbWUuCiAgIAoyMDAyLTAyLTI1IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgQGZvcmVhY2ggJHZhcjEgJHZhcjIgZW51bXNACiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICByZW1vdmUgdHJhaWxpbmcgOydzIGZyb20gc3FsIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAyLTIyIDEwOjU1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGRlZmluZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbAogICAKMjAwMi0wMi0yMiAxMDo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSB1dGlsaXRpZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGRvbid0IGxvb3AgYWdhaW4gZm9yIHNlY29uZGFyeSBTRVQgbW9kZXMgYW5kIGNhY2hlIGluZm9ybWF0aW9uIGluc3RlYWQuCiAgIC0gdmFyaW91cyBmaXhlcy4KICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbCBkaXJlY3RvcmllcyBmb3IgaGVhZGVycwogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY29tcGlsZS1zdWJhZ2VudCBmb3IgYXV0b21hdHRlZCBzdWJhZ2VudCBjb21waWxhdGlvbiBmcm9tCiAgIG1pYm1vZHVsZSAuYyBmaWxlcyA7LSkKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgKFY0LTItcGF0Y2hlcy5bMSwxXSksCiAgIE1TRzAwMDAxLmJpbiAsIHdpbnNlcnZpY2UubWM6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDA4OjQwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmggLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFR3ZWFrcyByZXF1aXJlZCB0byBnZXQgdGhlIGxpYnJhcnkgY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MgVkMrKwogICAKMjAwMi0wMi0yMiAwODozNyAgZHRzMTIKCiAgICogd2luMzIvOiBzbm1wc21faW5pdC5oICwKICAgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCAsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwgbGliYWdlbnQvbGliYWdlbnQuZHNwICwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwCiAgICwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AgLCBzbm1wZC9zbm1wZC5kc3AgLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsIHNubXBkZi9zbm1wZGYuZHNwICwKICAgc25tcGdldC9zbm1wZ2V0LmRzcCAsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCAsIHNubXBzZXQvc25tcHNldC5kc3AgLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwICwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AgLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiAgICwgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKICAgLCBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwICwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUHJvdmlkZSBXaW5kb3dzLXNwZWNpZmljIHZlcnNpb25zIG9mIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGhlYWRlciBmaWxlcywKICAgYW5kIGFkZCB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlIHRvIHRoZSBwcm9qZWN0IGZpbGVzLgogICAKMjAwMi0wMi0yMiAwNzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBEZWZpbmUgc3RhbmRhcmQgT0lEIGxlbmd0aHMgaGVyZSAod2hlcmUgdGhleSdyZSBhdmFpbGFibGUgdG8gYW55CiAgIGZpbGUgd2FudGluZyB0byBhY2Nlc3MgdGhlIE9JRCBzdHJ1Y3R1cmVzKQogICAKMjAwMi0wMi0yMiAwMzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBTdXBwb3J0ICIuLi4uIC0zdSB7c2VjTmFtZX0gLi4uLiIgc3ludGF4CiAgIChpbiB0aGUgbm9ybWFsIGdldG9wdCBzdHlsZSAtIGkuZS4gbm8gbmVlZCBmb3Igc3Vycm91bmRpbmcgcXVvdGVzKQogICAKICAgSXQgc2hvdWxkIG5vdyBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggdG8gdGhpcyBhcyB0aGUgcmVjb21tZW5kZWQgZm9ybQogICBmb3IgU05NUHYzIG9wdGlvbnMgLSBpZiB0aGF0J3Mgd2hhdCB3ZSB3YW50IHRvIGRvLgogICAgIFFuOiAgRG8gd2Ugd2FudCB0bz8KICAgCjIwMDItMDItMjEgMDg6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTdXBwb3J0ICItM3Uge3NlY05hbWV9IiBzeW50YXggKCp3aXRoKiB0aGUgcXVvdGVzLCB1bmZvcnR1bmF0ZWx5KS4KICAgTm93IGNvbWVzIHRoZSBmdW4gYml0Li4uLi4KICAgCjIwMDItMDItMjEgMDc6NTQgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDc6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGRyb3AgaW5saW5lIChtb3JlIHRyb3VibGUgdGhhbiBpdCBpcyB3b3J0aCkKICAgCjIwMDItMDItMjEgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhbiBTTk1QdjMgImNvbWJpbmVkLW9wdGlvbiIgY29tbWFuZC1saW5lIGZsYWcgKC0zeCkuCiAgIChJbiAqYWRkaXRpb24qIHRvIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSBmbGFncywgSSBoYXN0ZW4gdG8gYWRkISkKICAgCiAgIFN1cHBvcnRzICAiLi4uIC0zdXtzZWNOYW1lfSAuLi4iIGFuZCAiLi4uIC0zdT17c2VjTmFtZX0gLi4uIiBzeW50YXgsCiAgIGJ1dCBub3QgdGhlIHNlcGFyYXRlICIuLi4gLTN1IHtzZWNOYW1lfSAuLi4iIHN0eWxlLgogICAKICAgSSBoYXZlbid0IHRvdWNoZWQgdGhlIGRvY3VtZW50YXRpb24gb3IgdXNhZ2UgbWVzc2FnZSB0byBtZW50aW9uIHRoaXMuCiAgIAoyMDAyLTAyLTIwIDE4OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICB1c2UgZm9yIGluc3RlYWQgb2YgY29udGludWUgZm9yIGxvb3BzLgogICAKMjAwMi0wMi0yMCAxMzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gQWRkIGEgLS1xdWl0IG9wdGlvbiAoYW5kIGEgY29uZmlndXJhdGlvbiB0b2tlbikgc28gdGhhdCB5b3UgY2FuIG5vdwogICAgIGNyZWF0ZSBuZXcgdXNlcnMgYnkgc2ltcGx5IGNhbGxpbmcgc25tcGQgYXM6CiAgICAgICBzbm1wZCAtLWNyZWF0ZVVzZXI9Im15dXNlciBNRDUgbXlwYXNzd29yZCIgLS1xdWl0CiAgIC0gQ2hhbmdlIFJFQURNRS5zbm1wdjMgZG9jdW1lbnRhdGlvbiB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCiAgIAoyMDAyLTAyLTIwIDA2OjE2ICBqYnBuCgogICAqIGFwcHMvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXB0cmFwZC5jICwgY29uZmlndXJlCiAgICwgY29uZmlndXJlLmluICwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgdG8gc25tcHRyYXBkICh1bnRlc3RlZCkKICAgCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvIHNubXBkIGxpYndyYXAgc3VwcG9ydAogICAKICAgICAtIGNvbmZpZ3VyZSBmaXhlcyBmb3IgbGlid3JhcAogICAKMjAwMi0wMi0yMCAwMzowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTIwIDAzOjA2ICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTIwIDAzOjAzICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gdXAgdGhlIG9iamVjdCBmaWxlcyBhcyB3ZWxsCiAgIAoyMDAyLTAyLTIwIDAxOjQxICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSB0aGUgbmV3IGNyb3Agb2YgZ2VuZXJhdGVkIG1hbiBwYWdlcy4KICAgCjIwMDItMDItMjAgMDE6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIFN1cHBseSBtaXNzaW5nIGRvdWJsZS1xdW90ZSAgKG9vcHMpCiAgIAoyMDAyLTAyLTE5IDA0OjAxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEluaXRpYWxpc2UgdGhlIGxpYnJhcnkgaW50ZXJuYWxzICpiZWZvcmUqIHBhcnNpbmcgdGhlIGNvbW1hbmQgbGluZSwKICAgc28gdGhhdCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICBRbjogIFNob3VsZCAnX2luaXRfc25tcCcgYmUgaW52b2tlZCBieSAnc25tcF9wYXJzZV9hcmdzJyBpdHNlbGY/CiAgIAoyMDAyLTAyLTE5IDAzOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdCBmbGFncyB3b3JrIGluIGEgY29uc2lzdGVudCBtYW5uZXIuCiAgIChpLmUuIHRoZSBsYXN0IG9uZSBpcyB1c2VkLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGludGVybmFsIG9yZGVyaW5nKS4KICAgCjIwMDItMDItMTggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYyAsIHRlc3RoYW5kbGVyLmM6CgogICBpbmNsdWRlIHN0ZGxpYi5oCiAgIAoyMDAyLTAyLTE4IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBpbmNsdWRlcwogICAKMjAwMi0wMi0xOCAyMTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgLSBtYWtlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIGRhdGEgY29udGV4dHMgZnJvbSBhIGxvb3AgY29udGV4dCAobGVzcwogICAgIG1hbGxvY3Mgd2hlbiBtYWxsb2NzIGFyZW4ndCBvdGhlcndpc2UgYXZvaWRhYmxlKS4KICAgLSBkb24ndCBkb3VibGUgZnJlZSB0aGUgZGF0YSBjb250ZXh0IHBvaW50ZXIuCiAgIAoyMDAyLTAyLTE4IDIxOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIGFsbCBhZ2VudCBoZWxwZXJzLgogICAKMjAwMi0wMi0xOCAyMTo0OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oOgoKICAgcHJvdGVjdCBpbmNsdWRlIGZyb20gZG91YmxlIGluY2x1ZGUKICAgCjIwMDItMDItMTggMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIGZpeCBpbmNsdWRlIHBhdGhzCiAgIAoyMDAyLTAyLTE4IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUd2VhayB0aGUgbGlzdCBvZiBoZWFkZXIgZmlsZXMgdG8gYmUgaW5zdGFsbGVkICh0aGFua3MgdG8gQ2hyaXN0b3BoIE1hbW1pdHpzY2gpCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jIChWNC0yLXBhdGNoZXMuNyksIGhyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTYgMjM6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBORVQtU05NUC1NSUIudHh0ICwgTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0ICwKICAgTkVULVNOTVAtU1lTVEVNLU1JQi50eHQgLCBORVQtU05NUC1UQy50eHQ6CgogICB3aGl0ZSBzcGFjZSBjbGVhbiB1cC4gIChBR0VOVC1NSUIgbm90IGNoZWNrZWQgaW4gZHVlIHRvIG90aGVyCiAgIGluY29tcGxldGUgY2hhbmdlcykuCiAgIAoyMDAyLTAyLTE2IDAwOjE3ICBoYXJkYWtlcgoKICAgKiBORVdTICwgYWdlbnQvc25tcGQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBmaW5pc2ggaW1wbGVtZW50aW5nIHNubXBfY29uZmlnKCJteSBjb25maWcgbGluZSIpCiAgICAgLSB3YXMgZG9uZSBiZWZvcmUsIGJ1dCBwcmV2aW91c2x5IGhhZCB0byBiZSBjYWxsZWQgb25seSBhZnRlcgogICAgICAgY29uZmlndXJhdGlvbiBmaWxlcyBoYWQgYmVlbiByZWFkLiAgTm93IGNhbiBiZSBjYWxsZWQgYXQgYW55IHRpbWUuCiAgIC0gbWFrZSBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBhcyAtLWxvbmdvcHRzIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIC0gLS1zb21ldGhpbmc9dmFsdWUgLT4gInNvbWV0aGluZyB2YWx1ZSIKICAgICAtIC0tc29tZXRoaW5nICAgICAgIC0+ICJzb21ldGhpbmcgMSIgKHdvcmtzIGZvciBzZXR0aW5nIGJvb2xlYW5zIHRvIHRydWUpCiAgIAoyMDAyLTAyLTE2IDAwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgZml4IHJwbSBmb3IgNC4wLjMgYW5kIGFib3ZlIChvciB3aGVuZXZlciBpdCB3YXMgdGhhdCB3ZSBub3cgbmVlZCBsaWJycG1kYikKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggbmV0LXNubXAtY29uZmlnIGluc3RhbGwvY2xlYW4vZXRjLgogICAKMjAwMi0wMi0xNSAyMjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlczoKCiAgIGluc3RhbGwgYWxsIHN5c3RlbSBhbmQgbWFjaGluZSBmaWxlcywgc2luY2UgdGhleSBpbmNsdWRlIGVhY2ggb3RoZXIKICAgCjIwMDItMDItMTUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0ICwgbWlicy9ORVQtU05NUC1NSUIudHh0ICwKICAgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQgLCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0CiAgICwgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBTa2VsZXRvbiBmcmFtZXdvcmsgZm9yIHRoZSBOZXQtU05NUCBlbnRlcnByaXNlIHRyZWUuCiAgIChpbmNvcnBvcmF0aW5nIHRoZSBpbml0aWFsICduc1RyYW5zYWN0aW9uVGFibGUnLCBidXQgbm90aGluZyBlbHNlIGFzIHlldCkKICAgCjIwMDItMDItMTUgMDk6MTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KICAgCjIwMDItMDItMTUgMDc6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmggLCBzbm1wbGliL3dpbnNlcnZpY2UuYwogICAsIGFnZW50L3NubXBkLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjICwgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgU3VwcG9ydCBmb3IgcnVubmluZyBhcyBhIFdpbmRvd3Mgc2VydmljZS4KICAgKFN1cHBsaWVkIGJ5IFJhanUgS3Jpc2huYXBwYSAmIExhdGh1IFByYWJodSkKICAgCjIwMDItMDItMTUgMDc6MjUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIFN0b2tlIFdlcycgc2Vuc2Ugb2YgcGFyYW5vaWEgYnkgY29uY2VkaW5nIHdpdGhvdXQgY29tbWVudC4KICAgICAgIChXaGF0IG1pZ2h0IFNoaWVsZCBiZSBwbG90dGluZyBub3cuLi4uLi4pCiAgIAoyMDAyLTAyLTE1IDA3OjE5ICBqYnBuCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgICAtIGZpeCB0aW55IGZvcm1hdHRpbmcgZXJyb3IKICAgCjIwMDItMDItMTUgMDc6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIE5PVElGSUNBVElPTi1MT0ctTUlCIChzaW5jZSBpdCdzIG9uZSBvZiB0aGUgZGVmYXVsdCBsb2FkIGxpc3QhKQogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmg6CgogICBmaWxlIHdpbnNlcnZpY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UucmM6CgogICBmaWxlIHdpbnNlcnZpY2UucmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBmaWxlIHdpbnNlcnZpY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjA4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBJbmNsdWRlIHRoZSA8c3lzL3RpbWUuaD4gY2FzY2FkZSwgdG8gcGljayB1cCB0aGUgZGVmaW5pdGlvbiBvZiAndGltZXZhbCcKICAgCjIwMDItMDItMTUgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gYnJpbmcgdXNhZ2UgbWVzc2FnZSBpbiBsaW5lIHdpdGggbWFucGFnZQogICAKMjAwMi0wMi0xNSAwMzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENhdGNoIHVzZSBvZiB0aGUgdHJhbnNwb3J0IGFuZCBwb3J0IG9wdGlvbnMsIGFuZCBpc3N1ZSBhbiBhcHByb3ByaWF0ZQogICBlcnJvciBtZXNzYWdlLCBkZXNjcmliaW5nIHVzZSBvZiB0aGUgPGhvc3RuYW1lPiBwYXJhbWV0ZXIgaW5zdGVhZC4KICAgCjIwMDItMDItMTUgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHNubXBfYXBpLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCAqYmVmb3JlKiBwcm9jZXNzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLAogICByYXRoZXIgdGhhbiBhZnRlci4gIFRoYXQncyBwcm9iYWJseSBhIGJpdCBtb3JlIGZsZXhpYmxlOi0pCiAgIAoyMDAyLTAyLTE1IDAyOjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oICwgZGVmaW5pdGlvbnMuaCAsCiAgIG1pYl9hcGkuaCAsIG91dHB1dF9hcGkuaCAsIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmgKICAgLCBzbm1wdjNfYXBpLmggLCB0eXBlcy5oICwgdXRpbGl0aWVzLmggLAogICB2YXJiaW5kX2FwaS5oOgoKICAgUmVtb3ZlICduZXQtc25tcC1jb25maWcuaCcgZnJvbSB0aGUgbWFpbiBBUEkgaGVhZGVyIGZpbGVzLgogICBUaGlzIHdpbGwgaGF2ZSB0byBiZSAjaW5jbHVkZWQgc2VwYXJhdGVseSAoZWl0aGVyIGV4cGxpY2l0bHkKICAgb3IgdmlhIHRoZSBhbGwtaW4tb25lICduZXQtc25tcC1pbmNsdWRlcy5oJyBoZWFkZXIpCiAgIAoyMDAyLTAyLTE1IDAyOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgUkVBRE1FIHRvIGRlc2NyaWJlIHRoZSBzdGF0dXMgb2YgPG5ldC1zbm1wL2xpYnJhcnk+IGFuZCA8bmV0LXNubXA+IGhlYWRlciBmaWxlcy4KICAgCjIwMDItMDItMTUgMDI6MTMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSB7c3lzdGVtLG1hY2hpbmV9LyouaCBoZWFkZXIgZmlsZXMgYXMgd2VsbC4KICAgCiAgIERvaW5nIHRoaXMgdmlhIHRoZSAnbWFuJyAmICdtaWJzJyBNYWtlZmlsZXMgaXMgYSBncm9zcyBoYWNrLAogICBhbmQgcmVhbGx5IG5lZWRzIHRvIGJlIGhhbmRsZWQgbW9yZSBjbGVhbmx5LiAgQnV0IGl0J3MgdGhlCiAgIGJlc3QgSSBjYW4gY29tZSB1cCB3aXRoIGF0IHRoZSBtb21lbnQuICBTb3JyeSAtIERhdmUuCiAgIAoyMDAyLTAyLTE1IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluICwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBVQ0QtY29tcGF0YWJpbGl0eSBoZWFkZXJzIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTE1IDAxOjU3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE9ubHkgaW5zdGFsbCBzdWJkaXJlY3Rvcnkgc3R1ZmYgKm9uY2UqLiAgKERvbid0IGJlIHNvIGVudGh1c2lhc3RpYywgRGF2ZSEpCiAgIAoyMDAyLTAyLTE1IDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgUmVtb3ZlIHJlZHVuZGVudCAnLUNOJyBhbmQgJy1DTycgb3B0aW9ucyBmcm9tIHRoZSBleGFtcGxlIHNubXB1c20gY29tbWFuZC4KICAgICAoYXMgbWVudGlvbmVkIGJ5IFdlcyBvbiB0aGUgdXNlcnMgbWFpbGluZyBsaXN0IDIwMDItMDItMTMpCiAgICAgUW46IERvZXMgdGhpcyBuZWVkIHRvIGJlIGRvbmUgb24gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2ggYXMgd2VsbD8KICAgCjIwMDItMDItMTUgMDE6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgUmVzdG9yZSAndmVyc2lvbi5oJyBhcyBiZWluZyBhICJ0b3AtbGV2ZWwiIGhlYWRlciBmaWxlLgogICAKMjAwMi0wMi0xNSAwMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIGZ1bGwgc2V0IG9mIGxpYnJhcnkgaGVhZGVyIGZpbGVzLAogICByZXRhaW5pbmcgdGhlIHRvcC1sZXZlbCB2cyBsaWJyYXJ5IHN1YmRpcmVjdG9yeSBzcGxpdC4KICAgCjIwMDItMDItMTUgMDE6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIExvb2sgZm9yIHRyYW5zcG9ydC1yZWxhdGVkIGhlYWRlciBmaWxlcyBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbi4KICAgCjIwMDItMDItMTUgMDE6MDkgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRW5zdXJlIHBhcnRpYWwgaW5zdGFsbCB0YXJnZXRzIHJlY3Vyc2UgcHJvcGVybHkuCiAgIAoyMDAyLTAyLTE0IDA4OjE4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBMb29rIGZvciBtaWJfbW9kdWxlX2NvbmZpZy5oIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uCiAgIAoyMDAyLTAyLTE0IDA4OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggbWFuOCBpbnN0YWxsIGRlZmluaXRpb25zCiAgIAoyMDAyLTAyLTE0IDA3OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1YnN0aXR1dGUgdmFsdWVzIGludG8gJ25ldC1zbm1wLWNvbmZpZycgcHJvcGVybHksIGFuZCBkb24ndCAnbWFrZSBjbGVhbicgaXQgYXdheS4KICAgCjIwMDItMDItMTQgMDc6MjIgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcwogICAKMjAwMi0wMi0xNCAwNzoxNCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzoxMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgLAogICBhcHBzL3NubXBidWxrZ2V0LmMgLCBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcHN0YXR1cy5jCiAgICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsIGFnZW50L2FnZW50X3RyYXAuYwogICAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyBzcGFjZSBmcm9tIENQUEZMQUdTCiAgIAoyMDAyLTAyLTE0IDA2OjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oICwgZGVmaW5pdGlvbnMuaCAsCiAgIG1pYl9hcGkuaCAsIG5ldC1zbm1wLWluY2x1ZGVzLmggLCBvdXRwdXRfYXBpLmggLAogICBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oICwgc25tcHYzX2FwaS5oICwgdHlwZXMuaAogICAsIHV0aWxpdGllcy5oICwgdmFyYmluZF9hcGkuaDoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNjoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hc24xLmggLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmggLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaCAsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRQogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKICAgLCBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL29pZF9hcnJheS5jICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgc25tcGxpYi92YWNtLmM6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDQ6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9jYWxsYmFjay5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IG1vdmVzIHRvd2FyZHMgdXNpbmcgdGhlICJwdWJsaWMiIEFQSSBoZWFkZXIgZmlsZXMgaW4gdGhlIGxpYnJhcnkKICAgY29kZSBhcyB3ZWxsIChjb25jZW50cmF0aW5nIG9uIG91dHB1dC9jb25maWcvdXRpbGl0eSBoZWFkZXIgZmlsZXMpLgogICAKMjAwMi0wMi0xNCAwMzoxNyAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ2xvc2UgYSBkYW5nbGluZyAiaWYiIGJsb2NrLiAgIChvb3BzISkKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jIChWNC0yLXBhdGNoZXMuNCksIGlmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIExhdGVzdCBSZWRIYXQgcnBtLXJlbGF0ZWQgcGF0Y2gKICAgCjIwMDItMDItMTQgMDE6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkb3B0IFJlZEhhdCdzIGNvbmZpZ3VyZSB0ZXN0aW5nIGZvciBSUE0gbGlicmFyaWVzCiAgIAoyMDAyLTAyLTEzIDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIE1ha2UgSm9obiB0cnVzdCBoaXMgY29kZQogICAKMjAwMi0wMi0xMyAwODozNCAgamJwbgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgICAgLSB0cmFuc3BvcnQgZml4ZXMgKHVudGVzdGVkLCBzdGlsbCAjaWYgMCkKICAgCjIwMDItMDItMTMgMDg6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWFyayBzb21lIEpvaG4tdG8tZG8tc2VjdGlvbnMKICAgCjIwMDItMDItMTMgMDc6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwgbWFuL3NubXBjbWQuMS5kZWYgLAogICBzbm1wbGliL21pYi5jOgoKICAgU3dpdGNoIHRvIHVzaW5nIC1PUyBzdHlsZSBvdXRwdXQgYnkgZGVmYXVsdCwgYW5kIGRyb3AgdGhlIHJlcXVpcmVtZW50CiAgIGZvciBmdWxsIE9JRHMgdG8gc3RhcnQgd2l0aCAnLicsIHBsdXMgY29tbWFuZC1saW5lIG9wdGlvbnMgdG8gcmVzdG9yZQogICB0aGUgb3JpZ2luYWwgVUNELXN0eWxlIGJlaGF2aW91ci4KICAgCjIwMDItMDItMTMgMDc6MzYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBcHBseSBKb2huJ3MgZml4IGZvciBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZAogICBjb2x1bW5zIGluIHdyb25nIG9yZGVyKSB0byB0aGUgbWFpbiBicmFuY2ggYXMgd2VsbC4KICAgCjIwMDItMDItMTIgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbnN0IGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogLmN2c2lnbm9yZSAsIEFTTi8uY3ZzaWdub3JlICwgYWdlbnQvLmN2c2lnbm9yZQogICAsIGRlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZToKCiAgIGFkZCAuY3ZzaWdub3JlIGZpbGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBhZGQgYWdlbnQvYWdlbnRfaGFuZGxlci5oCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50Lmg6CgogICBjb25zdCBhZGRpdGlvbnMuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBBZGQgc3RyaW5nLmgKICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGFkZCBoZWFkZXIuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXhlcyB0byByZWVuYWJsZSBkaXNtYW4gZXZlbnQgc3R1ZmYgZm9yIDUuMCBjb2RlLiAgTm90IGRvbmUgdGhlCiAgICJyaWdodCIgd2F5LCBidXQgaXQgd29ya3MuCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gLVdhbGwgZml4ZXMKICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYWRkIHN0ZGxpYi5oCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBubyBsb25nZXIgdXNlZCAiZHVtcF92YXIiIHJvdXRpbmUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGNvbnN0IHNwZWNpZmljIGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbmV3IHBlcmwgc3BlY2lmaWMgZmVhdHVyZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC5QSE5PWSBtb2RzCiAgIAoyMDAyLTAyLTEyIDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9sb2dnaW5nX2FwaS5oICwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmg6CgogICBSZW5hbWUgdGhlIGxvZ2dpbmcgJiByZWxhdGVkIG91dHB1dCBBUEkgaGVhZGVyIGZpbGUsIHRvIGJldHRlcgogICByZWZsZWN0IHRoZSBzY29wZSBvZiB0aGlzIEFQSS4gIChBcyBzdWdnZXN0ZWQgYnkgV2VzICYgSm9obikKICAgCjIwMDItMDItMTIgMDc6MjEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjM5ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBsaWIgZGVwZW5kZW5jeSBmaXggZm9yIHNubXBkIHRhcmdldAogICAKMjAwMi0wMi0xMSAwODoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCAsIHNubXBsaWIvY211X2NvbXBhdC5jICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3BhcnNlLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIEV4dHJhY3QgQ01VX0NPTVBBVEFCSUxJVFkgY29kZSwgYW5kIGV4cGxpY2l0bHkgZGVwcmVjYXRlZCBVQ0QgY29kZSBpbnRvIHNlcGFyYXRlIGZpbGVzLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIHRoZSAnZHNfc2V0X3h4eCcgbGlicmFyeSByb3V0aW5lcywgcmF0aGVyIHRoYW4gdGhlIG9sZCAnc25tcF9zZXRfeHh4JyBjYWxscwogICAKMjAwMi0wMi0xMSAwNDo0NSAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2NvbmZpZy41LmRlZiAsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgbWlub3Igc3BlbGxpbmcgdHdlYWtzCiAgIAoyMDAyLTAyLTExIDA0OjI3ICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluICwgZGVmYXVsdF9zdG9yZS4zLnRvcCAsIG1pYl9hcGkuMwogICAsIG1pYl9hcGkuMy5kZWYgLCBzbm1wX2FnZW50X2FwaS4zICwKICAgc25tcF9hZ2VudF9hcGkuMy5kZWYgLCBzbm1wX2FsYXJtLjMgLCBzbm1wX2FsYXJtLjMuZGVmCiAgICwgc25tcF9hcGkuMyAsIHNubXBfYXBpLjMuZGVmICwgc25tcF9zZXNzX2FwaS4zCiAgICwgc25tcF9zZXNzX2FwaS4zLmRlZiAsIHNubXBfdHJhcF9hcGkuMyAsCiAgIHNubXBfdHJhcF9hcGkuMy5kZWYgLCB2YXJpYWJsZXMuNSAsIHZhcmlhYmxlcy41LmRlZjoKCiAgICAgLSBnZW5lcmF0ZSB0aGUgcmVzdCBvZiB0aGUgbWFudWFsIHBhZ2VzICh0byBnZXQgdmVyc2lvbiBpbiBmb290ZXIpCiAgIAoyMDAyLTAyLTA4IDE1OjU2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oICwgbWliX21vZHVsZV9jb25maWcuaCAsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLCBzbm1wZC9zbm1wZC5kc3A6CgogICB3aW4zMiBzcGVjaWZpYyBwb3J0aW9ucyBvZiBwYXRjaCA1MDMyNTYKICAgCjIwMDItMDItMDggMTU6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBwYXRjaCM1MDMyNTY6IGhlbHBlcnMgbGlicmFyeSBkZWZpbml0aW9uIGZvciB3aW4zMgogICAKMjAwMi0wMi0wOCAwOTowOCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXQgdHdlYWthZ2UKICAgCjIwMDItMDItMDggMDg6MjIgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAsIHNubXBfYWdlbnRfYXBpLjMgLCBzbm1wX2FsYXJtLjMKICAgLCBzbm1wX2FwaS4zICwgc25tcF9zZXNzX2FwaS4zICwgc25tcF90cmFwX2FwaS4zOgoKICAgUmVmZXJlbmNlIHRoZSBuZXcgaGVhZGVyLWZpbGVzIGluIHNlY3Rpb24gMyBtYW4gcGFnZSBzeW5vcHNlcy4KICAgCjIwMDItMDItMDggMDc6NTAgIGpicG4KCiAgICogbWFuLzogbWliX2FwaS4zICwgcmVhZF9jb25maWcuMy5kZWYgLCBzbm1wX2FnZW50X2FwaS4zCiAgICwgc25tcF9jb25maWcuNS5kZWYgLCBzbm1wX3RyYXBfYXBpLjMgLAogICBzbm1wY21kLjEuZGVmICwgc25tcGNvbmYuMS5kZWYgLCBzbm1wZC5jb25mLjUuZGVmICwKICAgdmFyaWFibGVzLjU6CgogICAgIC0gbW9yZSBtaW5vciB0d2Vha3MgKHVjZC1zbm1wIC0+IE5ldC1TTk1QIGV0Yy4pCiAgIAoyMDAyLTAyLTA4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgbG9jYWwgbW9kdWxlcyBmcm9tIGRlcGVuZGVuY3kgbGlzdAogICAKMjAwMi0wMi0wOCAwNzo0NSAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9pbmRleC5jICwKICAgYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMKICAgLCBhdXRvX25saXN0LmMgLCBrZXJuZWwuYyAsIG1pYl9tb2R1bGVzLmMgLAogICBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYyAsIHNubXBkLmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBoZWxwZXJzL2luc3RhbmNlLmMgLCBoZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBoZWxwZXJzL251bGwuYyAsIGhlbHBlcnMvb2xkX2FwaS5jICwgaGVscGVycy9yZWFkX29ubHkuYwogICAsIGhlbHBlcnMvc2VyaWFsaXplLmMgLCBoZWxwZXJzL3RhYmxlLmMgLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBoZWxwZXJzL3RhYmxlX2RhdGEuYyAsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBtaWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYyAsCiAgIG1pYmdyb3VwL1Jtb24vYWxhcm0uYyAsIG1pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwgbWliZ3JvdXAvUm1vbi9yb3dzLmMgLAogICBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYyAsCiAgIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYwogICAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYmdyb3VwL21pYklJL2F0LmMKICAgLCBtaWJncm91cC9taWJJSS9pY21wLmMgLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgLCBtaWJncm91cC9taWJJSS9pcC5jICwgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBtaWJncm91cC9taWJJSS9pcHY2LmMgLCBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIG1pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwogICAsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgLCBtaWJncm91cC9taWJJSS90Y3AuYyAsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS91ZHAuYyAsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgLCBtaWJncm91cC9taXNjL2RsbW9kLmMgLCBtaWJncm91cC9taXNjL2lwZndhY2MuYwogICAsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC9zbXV4L3NtdXguYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAsIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jICwKICAgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBtaWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMKICAgLCBtaWJncm91cC90dW5uZWwvdHVubmVsLmMgLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFVzZSB0aGUgbmV3ICduZXQtc25tcC1pbmNsdWRlcycgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzLAogICBpbiBwbGFjZSBvZiB0aGUgKHVuaW5zdGFsbGVkKSAnbWliaW5jbC5oJy4KICAgICBXaGVlZWVlLi4uLi4uCiAgIAoyMDAyLTAyLTA4IDA3OjE3ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiAsIHNubXBfYWdlbnRfYXBpLjMgLAogICBzbm1wX2FsYXJtLjMgLCBzbm1wX2FwaS4zICwgc25tcF9jb25maWcuNS5kZWYgLAogICBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wZC4xLmRlZiAsIHNubXBkLmNvbmYuNS5kZWYgLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgICAgLSBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSBnZW5lcmF0ZSBtYW4gcGFnZXMgYXQgY29tcGlsZSB0aW1lCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEgLCBzbm1wYnVsa3dhbGsuMSAsCiAgIHNubXBidWxrZ2V0LjEuZGVmICwgc25tcGJ1bGt3YWxrLjEuZGVmICwgc25tcGNtZC4xCiAgICwgc25tcGNtZC4xLmRlZiAsIHNubXBjb25mLjEgLCBzbm1wY29uZi4xLmRlZgogICAsIHNubXBnZXQuMSAsIHNubXBnZXQuMS5kZWYgLCBzbm1wZ2V0bmV4dC4xICwKICAgc25tcGdldG5leHQuMS5kZWYgLCBzbm1wc2V0LjEgLCBzbm1wc2V0LjEuZGVmICwKICAgc25tcHN0YXR1cy4xICwgc25tcHN0YXR1cy4xLmRlZiAsIHNubXB0YWJsZS4xICwKICAgc25tcHRhYmxlLjEuZGVmICwgc25tcHRlc3QuMSAsIHNubXB0ZXN0LjEuZGVmICwKICAgc25tcHRyYW5zbGF0ZS4xICwgc25tcHRyYW5zbGF0ZS4xLmRlZiAsIHNubXB0cmFwLjEKICAgLCBzbm1wdHJhcC4xLmRlZiAsIHNubXB1c20uMSAsIHNubXB1c20uMS5kZWYgLAogICBzbm1wd2Fsay4xICwgc25tcHdhbGsuMS5kZWYgLCBzbm1wdHJhcGQuOCAsCiAgIHNubXB0cmFwZC44LmRlZjoKCiAgICAgLSByZW5hbWUgbWFuIHBhZ2VzIHdoaWNoIGFyZSBub3cgZ2VuZXJhdGVkIGF0IGNvbXBpbGUgdGltZSBpbiBvcmRlcgogICAgICAgdG8gcGljayB1cCB0aGUgdmVyc2lvbiAod2hpY2ggZ2V0cyBwdXQgaW4gdGhlIGZvb3RlcikuCiAgIAogICAgIC0gYWxzbyBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYkpKLmggLCBtaWJKSi9pY21wLmMgLCBtaWJKSi9pY21wLmgKICAgLCBtaWJKSi9pZl9maWVsZHMuaCAsIG1pYkpKL2ludGVyZmFjZXMuYyAsCiAgIG1pYkpKL2ludGVyZmFjZXMuaCAsIG1pYkpKL2lwLmMgLCBtaWJKSi9pcC5oICwKICAgbWliSkovaXBBZGRyLmMgLCBtaWJKSi9pcEFkZHIuaCAsIG1pYkpKL2lwTWVkaWEuYyAsCiAgIG1pYkpKL2lwTWVkaWEuaCAsIG1pYkpKL2lwUm91dGUuYyAsIG1pYkpKL2lwUm91dGUuaAogICAsIG1pYkpKL2lwdjYuYyAsIG1pYkpKL2lwdjYuaCAsIG1pYkpKL2tlcm5lbF9ocHV4LmMKICAgLCBtaWJKSi9rZXJuZWxfaHB1eC5oICwgbWliSkova2VybmVsX2xpbnV4LmMgLAogICBtaWJKSi9rZXJuZWxfbGludXguaCAsIG1pYkpKL3NubXBfbWliLmMgLAogICBtaWJKSi9zbm1wX21pYi5oICwgbWliSkovc3lzT1JUYWJsZS5jICwKICAgbWliSkovc3lzT1JUYWJsZS5oICwgbWliSkovc3lzdGVtX21pYi5jICwKICAgbWliSkovc3lzdGVtX21pYi5oICwgbWliSkovdGNwLmMgLCBtaWJKSi90Y3AuaCAsCiAgIG1pYkpKL3RjcFRhYmxlLmMgLCBtaWJKSi90Y3BUYWJsZS5oICwgbWliSkovdWRwLmMgLAogICBtaWJKSi91ZHAuaCAsIG1pYkpKL3VkcFRhYmxlLmMgLCBtaWJKSi91ZHBUYWJsZS5oICwKICAgbWliSkovdmFjbV92YXJzLmMgLCBtaWJKSi92YWNtX3ZhcnMuaDoKCiAgIFJlbW92ZSB0aGUgYXR0ZW1wdGVkICdtaWJJSScgcmUtd3JpdGUuCiAgIElmIHdlIHdhbnQgdG8gdGlkeSB1cCBtaWJJSSwgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byB1c2UgdGhlIG5ldyBhZ2VudCBBUElzLgogICAKMjAwMi0wMi0wOCAwNjo0NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IG5ldC1zbm1wLWluY2x1ZGVzLmggLAogICBhZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQnJpbmcgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzIGNsb3NlciBpbiBsaW5lIHdpdGggdGhlIGV4aXN0aW5nICJtaWJpbmNsLmgiIGZpbGUKICAgCjIwMDItMDItMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiAgIChWNC0yLXBhdGNoZXMuWzYsM10pLCBob3N0L2hyX3N0b3JhZ2UuYyAsIHVjZC1zbm1wL21lbW9yeS5jOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQ29uc29saWRhdGUgaWRlbnRpY2FsIE1JQiBvYmplY3QgZW50cmllcyAoV0lOMzIvbm9uLVdJTjMyKQogICAKMjAwMi0wMi0wOCAwMDo1MCAgamJwbgoKICAgKiBtYW4vUkVBRE1FOgoKICAgICAtIHJlbW92ZSBjaHJvbmljYWxseSBkYXRlZCB1bmhlbHBmdWwgUkVBRE1FCiAgIAoyMDAyLTAyLTA3IDEzOjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgbWFrZWZpbGVpbmRlcGVuZC5wbCAsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L01ha2VmaWxlLmluICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiAgICwgYXBwcy9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsIGxvY2FsL01ha2VmaWxlLmluCiAgICwgbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbWFrZSBtYWtlJ3MgTWFrZWZpbGUncyB0byBtYWtlIGJldHRlciBtYWtpbmcKICAgCjIwMDItMDItMDcgMTM6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIGxvY2FsIHBhdGhlcwogICAKMjAwMi0wMi0wNyAxMjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRW5zdXJlIGFnZW50IHJldHVybnMgdGhlIGNvcnJlY3QgZXJyb3IgY29kZXMgZm9yIFVORE8gYW5kIENPTU1JVCBmYWlsdXJlcy4KICAgCjIwMDItMDItMDcgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMICwgU05NUC54cyAsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGF0dGVtcHQgYXQgcG9ydGluZyBKb2UncyBTTk1QIG1vZHVsZSB0byBuZXQtc25tcC4KICAgSXQgY29tcGlsZXMsIGJ1dCBvbmx5IHNvbWUgb2YgdGhlIHRlc3RzIHN1Y2NlZWQuCiAgIAoyMDAyLTAyLTA3IDEwOjA5ICBqYnBuCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AgLCBtaWJfYXBpLjMgLAogICByZWFkX2NvbmZpZy4zLmRlZiAsIHNubXAuY29uZi41LmRlZiAsIHNubXBfYWdlbnRfYXBpLjMKICAgLCBzbm1wX2FsYXJtLjMgLCBzbm1wX2FwaS4zICwgc25tcF9jb25maWcuNS5kZWYKICAgLCBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wX3RyYXBfYXBpLjMgLCBzbm1wYnVsa2dldC4xCiAgICwgc25tcGJ1bGt3YWxrLjEgLCBzbm1wY29uZi4xICwgc25tcGQuY29uZi41LmRlZgogICAsIHNubXBkZWx0YS4xICwgc25tcGRmLjEgLCBzbm1wZ2V0LjEgLAogICBzbm1wZ2V0bmV4dC4xICwgc25tcG5ldHN0YXQuMSAsIHNubXBzZXQuMSAsCiAgIHNubXBzdGF0dXMuMSAsIHNubXB0YWJsZS4xICwgc25tcHRlc3QuMSAsCiAgIHNubXB0cmFuc2xhdGUuMSAsIHNubXB0cmFwLjEgLCBzbm1wdHJhcGQuY29uZi41LmRlZgogICAsIHNubXB1c20uMSAsIHNubXB3YWxrLjEgLCB2YXJpYWJsZXMuNToKCiAgICAgLSBhZGQgTmV0LVNOTVAgaW4gaGVhZGVyIG9mIGFsbCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDk6NTIgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSB1cGRhdGUgc3R5bGUgdG8gbWF0Y2ggc25tcGQgYW5kIHNubXB0cmFwZCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDg6MTUgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGZpeCBzcGVlbGluZyBtaXN0YWtlCiAgIAoyMDAyLTAyLTA3IDA4OjAwICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBicmluZyB1cCB0byBkYXRlIHdpdGggc25tcHRyYXBkCiAgIAoyMDAyLTAyLTA3IDA3OjI4ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExICwgYWNjb25maWcuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmggLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmggLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFN1cHBvcnQgZm9yIEhQLVVYIDExLCBjb3VydGVzeSBvZiBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAyLTAyLTA3IDA2OjMwICBqYnBuCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgICAgLSBhbHBoYWJldGlzZSBvcHRpb25zCiAgIAogICAgIC0gYnJpbmcgbWFuIHBhZ2UgaW4gbGluZSB3aXRoIG5ldyBwb3NpdGlvbmFsIGFyZ3VtZW50cyBsaXN0ZW5pbmcKICAgICAgIGFkZHJlc3Mgc3BlY2lmaWNhdGlvbiBhbmQgYWRkIHNlY3Rpb24gZGVzY3JpYmluZyB0aGF0CiAgIAogICAgIC0gcHV0IE5ldC1TTk1QIGluIGhlYWRlcgogICAKMjAwMi0wMi0wNiAxMDowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmg6CgogICAgIC0gZml4IGJ1ZyBub3RlZCBieSBOaWVscwogICAKMjAwMi0wMi0wNiAwOToyNSAgamJwbgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jICwgc25tcHVzbS5jOgoKICAgICAtIG1pbm9yIHR3ZWFrcyBkdWUgdG8gY2hhbmdlIGluIGRlZmluaXRpb24gb2YgVVNNIE9JRHMuCiAgIAoyMDAyLTAyLTA2IDA5OjE3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gbW92ZSBVU00gT0lEIGRlZmluaXRpb25zIGludG8gc25tcHVzbS5jLCBtYWtlIHRoZW0gY29uc3QKICAgCiAgICAgLSBjb25zZXF1ZW50IGluY3JlYXNlIGluIGNvbnN0LW5lc3MgaW4gc29tZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICByZW1vdmUgaW50ZXJuYWwgbm90ZSBhYm91dCB2MyBhcGksIHdoaWNoIHNob3VsZCBiZSBwdWJsaWMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0Lmg6CgogICByZW1vdmVkIHVubmVlZGVkIGZpbGUKICAgCjIwMDItMDItMDYgMDk6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgc25tcGxpYi9rZXl0b29scy5jICwgc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCBjb25zdC1uZXNzIGZvciB0cmFuc2Zvcm0gdHlwZSBhcmdzCiAgIAoyMDAyLTAyLTA2IDA5OjAxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaAogICAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBhZGQgc29tZSBjb25zdC1uZXNzIGZvciBPSUQgYXJncyAobWFpbmx5IHNvIHRoYXQgZGVidWdtc2dfb2lkIHRha2VzCiAgICAgICBjb25zdCkuCiAgIAoyMDAyLTAyLTA2IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU3VwcG9ydCBmb3IgRHluaXgvUFRYIDQuNCwgY291cnRlc3kgb2YgUGF0cmljayBIZXNzLgogICAKMjAwMi0wMi0wNiAwNzo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSBmaXJzdCBhcmd1bWVudCBvZiBzbm1wX2R1cF9vYmppZCgpIGNvbnN0LgogICAKICAgICAtIGJldHRlciBoYW5kbGUgTlVMTCB2YWx1ZXMgaW4gc25tcF9kdXBfb2JqaWQoKS4KICAgCjIwMDItMDItMDYgMDc6MDkgIGR0czEyCgogICAqIEZBUSAsIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICBDbGFyaWZ5IHRoZSBhcHBsaWNhYmlsaXR5IG9mICdzbm1wX3RyYXBfYXBpKDMpJyByb3V0aW5lcyB0byBBZ2VudFggc3ViYWdlbnRzLgogICAKMjAwMi0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAsIG5vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYyAsIHNubXBkZWx0YS5jICwKICAgc25tcGRmLmMgLCBzbm1wZ2V0LmMgLCBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jCiAgICwgc25tcHN0YXR1cy5jICwgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwKICAgc25tcHRyYW5zbGF0ZS5jICwgc25tcHRyYXAuYyAsIHNubXB0cmFwZC5jICwKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMgLCBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdXNtLmMKICAgLCBzbm1wdmFjbS5jICwgc25tcHdhbGsuYyAsIHNubXBuZXRzdGF0L2lmLmMKICAgLCBzbm1wbmV0c3RhdC9pbmV0LmMgLCBzbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgc25tcG5ldHN0YXQvbWFpbi5jICwgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEFwcGxpY2F0aW9ucyBhbWVuZGVkIHRvIHVzZSB0aGUgbmV3LXN0eWxlIGxpYnJhcnkgaGVhZGVyIHN0cnVjdHVyZS4KICAgKEluIG1vc3QgY2FzZXMsIHNpbXBseSBpbmNsdWRpbmcgdGhlIHNpbmdsZSAiZnVsbCBBUEkiIGhlYWRlciBmaWxlKQogICAKMjAwMi0wMi0wNiAwNTo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFzbjEuaCAsIGNvbmZpZ19hcGkuaCAsCiAgIGRlZmluaXRpb25zLmggLCBsb2dnaW5nX2FwaS5oICwgbWliX2FwaS5oICwKICAgbmV0LXNubXAtaW5jbHVkZXMuaCAsIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmggLAogICBzbm1wdjNfYXBpLmggLCB0eXBlcy5oICwgdXRpbGl0aWVzLmggLCB2YXJiaW5kX2FwaS5oOgoKICAgRnJhbWV3b3JrIGZvciBuZXcgbGlicmFyeSBoZWFkZXIgZmlsZSBvcmdhbmlzYXRpb24sIHdpdGggZWlnaHQgbWFpbiBncm91cHMKICAgb2YgQVBJIHJvdXRpbmVzLiAgQ3VycmVudGx5IHRoZXNlIHN0aWxsIHJlZmVyIHRvIHRoZSBVQ0Qtc3R5bGUgc3R5bGUgaGVhZGVyCiAgIGZpbGVzIGZvciB0aGUgYWN0dWFsIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KICAgCjIwMDItMDItMDYgMDU6MzEgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIHJlcGxhY2UgdXNlIG9mICQ8IHdpdGggZXhwbGljaXQgZmlsZW5hbWUsIHNpbmNlIG5vbi1HTlUgbWFrZXMgc2VlbQogICAgICAgdG8gYmFyZiBvbiBpdAogICAKMjAwMi0wMi0wNiAwMzozMSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXggaW5jb3JyZWN0IGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9uIGluICdtYWtlIGNsZWFuJwogICAKMjAwMi0wMi0wNiAwMzoxOCAgZHRzMTIKCiAgICogYWNjb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm90ZWN0IHRoZSBwcm9qZWN0IGNvbmZpZyBmaWxlIGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9uLgogICAKMjAwMi0wMi0wNiAwMzowNyAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzIGFuZAogICAgICAgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uLy4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMKICAgICAgIGFuZCBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy43KSwgQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwZXJsIGZpeGVzCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1vdmUgdGhlIG9pZHRyZWVfY29tcGFyZSBmdW5jdGlvbiB0bwogICB0aGUgbWFpbiBsaWJyYXJ5LgogICAKMjAwMi0wMi0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBwZXJsIGJ1aWxkIGZpeGVzLgogICAKMjAwMi0wMi0wNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBvcHBzLiAgUmVtb3ZlZCBmb3JjZWQgcGVybCBlbWJlZGRpbmcKICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB0aGlzIGZpbGUgc2hvdWxkbid0IGJlIGNoZWNrZWQgaW4KICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvc25tcF9wZXJsLmMKICAgLCBhZ2VudC9zbm1wX3BlcmwucGwgLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gU3VwcG9ydCBmb3IgZW1iZWRkaW5nIHBlcmwgc3Vicm91dGluZXMgaW50byB0aGUgYWdlbnQgdG8gYmUgY2FsbGVkCiAgICAgYXMgaGFuZGxlcnMuCiAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0td2l0aC1wZXJsLW1vZHVsZXMgYXR0ZW1wdHMgdG8gYnVpbGQgY29udGFpbmVkIG1vZHVsZXMgKHBvb3JseSBjdXJyZW50bHkpLgogICAgIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWN0dWFsbHkgc3BlY2lmaWVzIHRvIGRvIHBlcmwgZW1iZWRkaW5nCiAgICAgd2l0aGluIHRoZSBhZ2VudC4KICAgCjIwMDItMDItMDQgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtICwgQVNOL0FTTi54cyAsIEFTTi9DaGFuZ2VzICwKICAgQVNOL01BTklGRVNUICwgQVNOL01ha2VmaWxlLlBMICwgQVNOL3Rlc3QucGwgLAogICBhZ2VudC9DaGFuZ2VzICwgYWdlbnQvTUFOSUZFU1QgLCBhZ2VudC9NYWtlZmlsZS5QTCAsCiAgIGFnZW50L2FnZW50LnBtICwgYWdlbnQvYWdlbnQueHMgLCBhZ2VudC90ZXN0LnBsICwKICAgYWdlbnQvdHlwZW1hcCAsIGRlZmF1bHRfc3RvcmUvQ2hhbmdlcyAsCiAgIGRlZmF1bHRfc3RvcmUvTUFOSUZFU1QgLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMICwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtICwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzICwgZGVmYXVsdF9zdG9yZS90ZXN0LnBsICwKICAgZGVmYXVsdF9zdG9yZS90eXBlbWFwOgoKICAgQmVnaW5uaW5ncyBvZiBuZXcgcGVybCBtb2R1bGVzIG5lZWRlZCB0byBpbXBsZW1lbnQgYW4gU05NUCBhZ2VudCAob3IKICAgYWdlbnR4IHN1YmFnZW50KSBpbnNpZGUgcGVybC4KICAgICAtIG5vdCBjb21wbGV0ZSB5ZXQuCiAgICAgLSBtYXkgY2hhbmdlLgogICAgIC0gYnV0IHdvcmtzLgogICAKMjAwMi0wMi0wNCAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3QgcHJvY2Vzc2luZyBmb3IgdGltZXRpY2tzIHdoZW4gRFNfTElCX05VTUVSSUNfVElNRVRJQ0tTIGlzCiAgICAgICBzZXQgKGNvcnJlY3RzIGJ1ZyAjNTExNzkzLCByZXBvcnRlZCBieSBBbm9ueW1vdXMpLgogICAKMjAwMi0wMi0wMSAwMTo1MCAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB0aGUgcHJvY2VkdXJlIGZvciBjb21waWxpbmcgd2l0aCAnY2MnIHJhdGhlciB0aGFuICdnY2MnCiAgIAoyMDAyLTAxLTMxIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBzL3NubXBsaWJcLy8vOwogICAKMjAwMi0wMS0zMSAwNjo1NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2UgY2xlYW4gYXMgcmVwb3J0ZWQgYnkgQnJhZGxleSBCb3phcnRoLgogICAKMjAwMi0wMS0zMCAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEJyaW5nIE1JQiB2YXJpYWJsZSB2ZXJzaW9uVGFnIGludG8gbGluZSB3aXRoIHRoZSBuZXcgPG5ldC1zbm1wL3ZlcnNpb24uaD4gdXNhZ2UKICAgCjIwMDItMDEtMjkgMTc6NTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTW92ZWQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBmcm9tIHZlcnNpb24uaCB0bzoKICAgICAtIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgICAtIGRlZmluZSBuZXRzbm1wX2dldF92ZXJzaW9uKCk7CiAgICAgICAtIGNyZWF0ZSBhIGNvbnN0IGNoYXIgKk5ldFNubXBWZXJzaW9uSW5mbwogICAgIC0gaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGV4dGVybiB0aGUgYWJvdmUgY2hhciAqCiAgICAgICAtIHByb3RvdHlwZSB0aGUgZnVuY3Rpb24KICAgICAtIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBjcmVhdGUgYSBzdGF0aWMgdmFyaWFibGUgKHRoZSBvbGQgd2F5KSBhbmQgc2V0IGl0IHRvIE5ldFNubXBWZXJzaW9uSW5mbwogICAKMjAwMi0wMS0yOSAxNjowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2ggLCB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtICwKICAgdGVzdHMvVDA1MHNubXB2M3RyYXAgLCB0ZXN0cy9UMDUxc25tcHYyY3RyYXAgLAogICB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSAsIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCAsCiAgIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLCB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLAogICB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLAogICB0ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIHRyYXAgdGVzdCBmaXhlcyBzbyB0aGUgbWFqb3JpdHkgb2YgdGhlIHRlc3RzIG5vdyB3b3JrLgogICAKMjAwMi0wMS0yOSAxNjowOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBnZW5lcmF0ZSB1Y2Qtc25tcC1jb25maWcuaCBhbnkgbG9uZ2VyLgogICAKMjAwMi0wMS0yOSAxNToyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oOgoKICAgbW92ZWQgcy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vKi5oCiAgIG1vdmVkIG0vZ2VuZXJpYy5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgKICAgCjIwMDItMDEtMjkgMDk6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLWMgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDItMDEtMjkgMDk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlZmVyZW5jZSBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGluc3RlYWQgb2YganVzdCBjb25maWcuaAogICAKMjAwMi0wMS0yOSAwOTowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBhdHRlbXB0IHRvIGZpeCB0aGUgdW5rbm93biBlbmdpbmVpZC91bmtub3duIHVzZXIgcHJvYmxlbXMgb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDItMDEtMjggMjE6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHdob29wcy4gIE1pc3NlZCBzb21lIC5oIGZpbGUgY2hlY2tzIGluIGNvbmZpZ3VyZS4gIFRoYW5rcyBSb2JlcnQuCiAgIAoyMDAyLTAxLTI4IDIxOjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIG1pbm9yIGZpeC4KICAgCjIwMDItMDEtMjggMjE6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgYWRkZWQgY29kZSBjb252ZXJ0IHNjcmlwdCBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgaGVhZGVyIGNvbnZlcnNpb24KICAgCjIwMDItMDEtMjggMjA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYyAsIGFwcHMvc25tcGJ1bGt3YWxrLmMgLAogICBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYyAsIGFwcHMvc25tcGdldC5jCiAgICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwgYXBwcy9zbm1wc2V0LmMgLAogICBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB0ZXN0LmMKICAgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KICAgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwgaW5jbHVkZS9uZXQtc25tcC9hc24xLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oICwgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmggLCBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC92YWNtLmggLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAogICAsIG1hbi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvYXNuMS5oICwgc25tcGxpYi9jYWxsYmFjay5jCiAgICwgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9kYXRhX2xpc3QuYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmggLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwgc25tcGxpYi9nZXRvcHQuaCAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIvaW50NjQuaCAsIHNubXBsaWIva2V5dG9vbHMuYwogICAsIHNubXBsaWIva2V5dG9vbHMuaCAsIHNubXBsaWIvbGNkX3RpbWUuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCAsIHNubXBsaWIvbGlic25tcC5oICwgc25tcGxpYi9tZDUuYwogICAsIHNubXBsaWIvbWQ1LmggLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaAogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9tdF9zdXBwb3J0LmggLAogICBzbm1wbGliL29pZF9hcnJheS5jICwgc25tcGxpYi9vaWRfYXJyYXkuaCAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL29pZF9zdGFzaC5oICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9wYXJzZS5oICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zY2FwaS5jICwgc25tcGxpYi9zY2FwaS5oICwgc25tcGxpYi9zbm1wLXRjLmMKICAgLCBzbm1wbGliL3NubXAtdGMuaCAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wLmggLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmggLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaCAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmggLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5oICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5oICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBEb21haW4uaCAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uaCAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCAsIHNubXBsaWIvc25tcF9hbGFybS5jCiAgICwgc25tcGxpYi9zbm1wX2FsYXJtLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5oICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXBfZGVidWcuaCAsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXBfZW51bS5oICwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmggLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmggLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB1c20uaCAsIHNubXBsaWIvc25tcHYzLmMgLCBzbm1wbGliL3NubXB2My5oCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvc3lzdGVtLmggLAogICBzbm1wbGliL3Rvb2xzLmMgLCBzbm1wbGliL3Rvb2xzLmggLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggLCBzbm1wbGliL3ZhY20uYyAsCiAgIHNubXBsaWIvdmFjbS5oICwgdGVzdGluZy9SVU5URVNUUyAsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oICwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmggLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMjA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jCiAgICwgYXV0b19ubGlzdC5jICwga2VybmVsLmMgLCBtaWJfbW9kdWxlcy5jICwKICAgc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmMgLCBzbm1wZC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYyAsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgaGVscGVycy9pbnN0YW5jZS5jICwgaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgaGVscGVycy9udWxsLmMgLCBoZWxwZXJzL29sZF9hcGkuYyAsIGhlbHBlcnMvcmVhZF9vbmx5LmMKICAgLCBoZWxwZXJzL3NlcmlhbGl6ZS5jICwgaGVscGVycy90YWJsZS5jICwKICAgaGVscGVycy90YWJsZV9hcnJheS5jICwgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBtaWJncm91cC9ob3N0X3Jlcy5oICwKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwgbWliZ3JvdXAvbWliaW5jbC5oICwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMgLCBtaWJncm91cC9SbW9uL2FsYXJtLmMgLAogICBtaWJncm91cC9SbW9uL2V2ZW50LmMgLCBtaWJncm91cC9SbW9uL2hpc3RvcnkuYyAsCiAgIG1pYmdyb3VwL1Jtb24vcm93cy5jICwgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICwgbWliZ3JvdXAvbWliSUkvYXQuYyAsIG1pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIG1pYmdyb3VwL21pYklJL2lwLmMgLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYyAsIG1pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwogICAsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgLCBtaWJncm91cC9taWJJSS90Y3AuYyAsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS91ZHAuYyAsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgKICAgLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIG1pYmdyb3VwL21pYkpKL2ljbXAuYwogICAsIG1pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIG1pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBtaWJncm91cC9taWJKSi9pcEFkZHIuYyAsIG1pYmdyb3VwL21pYkpKL2lwTWVkaWEuYwogICAsIG1pYmdyb3VwL21pYkpKL2lwdjYuYyAsIG1pYmdyb3VwL21pYkpKL2tlcm5lbF9saW51eC5jCiAgICwgbWliZ3JvdXAvbWliSkovc25tcF9taWIuYyAsIG1pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYwogICAsIG1pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIG1pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsIG1pYmdyb3VwL21pYkpKL3VkcC5jICwKICAgbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYyAsIG1pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jICwgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jICwKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMTk6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBERUZJTkUgSVQgaW5zdGVhZAogICAKMjAwMi0wMS0yOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIGRlZmluZSBpdCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI1IDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZV9vbmVfb2lkX2luZGV4OgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGludCBmb3IgbGVuZ3RoJ3MgcHVsbGVkIGZyb20gdGhlIG9pZC4KICAgICAtIE1ha2Ugc3VyZSB0aGV5J3JlIGFsd2F5cyA8IDEyOAogICAKMjAwMi0wMS0yNSAwOToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNsb3NlciBhZGhlcmVuY2UgdG8gc3RhdGUgbWFjaGluZXMgZGVzY3JpYmVkIGluIFJGQyAyNTc0CiAgIAoyMDAyLTAxLTI1IDA5OjEwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIHVzbURlY3J5cHRpb25FcnJvciByZXBvcnRzIHRvIGJlIHNlbnQgaW4gYSBjb3VwbGUgb2YgZXh0cmEKICAgICAgIGNhc2VzOiBiYWQgc2FsdCAobGVuZ3RoICE9IDgpIGFuZCBsZW5ndGggb2YgZW5jcnlwdGVkIGRhdGEgbm90IGEKICAgICAgIG11bHRpcGxlIG9mIDggb2N0ZXRzIChwZXIgUkZDIDI1NzQpLgogICAKMjAwMi0wMS0yNSAwOTowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZm9yIHVua25vd24gbWVzc2FnZSB0eXBlcywgaW5jcmVtZW50IHNubXBJbkFTTlBhcnNlRXJycyBhbmQgZmFpbAogICAgICAgYXQgdGhlIHBvc3QtcGFyc2Ugc3RhZ2UuCiAgIAogICAgIC0gZm9yIG5vdGlmaWNhdGlvbiB0eXBlcywgaW5jcmVtZW50IHNubXBVbmtub3duUERVSGFuZGxlcnMgYW5kIGJhaWwKICAgICAgIG91dCBlYXJseS4KICAgCjIwMDItMDEtMjUgMDk6MDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZvciB1bmhhbmRsZWQgbWVzc2FnZXMgKGUuZy4gUkVTUE9OU0UgbWVzc2FnZXMgc2VudCB0byBhZ2VudHMpLAogICAgICAgaW5jcmVtZW50IHRoZSBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGNvdW50ZXIuCiAgIAogICAgIC0gdHJ5IHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZnMgd2hlbiBwb3N0LXBhcnNlIGZhaWxzLgogICAKMjAwMi0wMS0yNSAwNjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNiksIHZhY21fdmFycy5jOgoKICAgICAtIGZpeCBtaW5vciBwcm9ibGVtIHdpdGggc3RvcmFnZVR5cGUgKGFsd2F5cyBva2F5IHRvIHNldCB0byBjdXJyZW50CiAgICAgICB2YWx1ZSkuCiAgIAogICAgIC0gZG9uJ3QgcmVzZXQgc29tZSB2YXJpYWJsZXMgdG8gb2xkIHZhbHVlIHVubGVzcyB3ZSBhY3R1YWxseSBzZXQKICAgICAgIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQogICAKMjAwMi0wMS0yNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgcHJpbnQgb3V0IGRlYnVnZ2luZyBpbmZvIGluIGEgZnVydGhlciBjYXNlIHdoZXJlIGl0IGhhcyBiZWVuCiAgICAgICBmcmVlKClkLgogICAKICAgICAtIHNldCB0aGUgZXhjZXB0aW9uIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIGVycm9yIG5vU3VjaE5hbWUgd2hlbgogICAgICAgd2UgaGF2ZSB0aGUgaW5jb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzLgogICAKMjAwMi0wMS0yNSAwNDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9SRUFETUUubmV3bGliOgoKICAgZmlsZSBSRUFETUUubmV3bGliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDItMDEtMjUgMDQ6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIG1vdmUgZGVidWdnaW5nIG91dHB1dCB0byBiZWZvcmUgd2hlcmUgKHBvdGVudGlhbGx5KSB0aGUgZGF0YSBpdCBpcwogICAgICAgdHJ5aW5nIHRvIHByaW50IGdldHMgZnJlZSgpZC4KICAgCjIwMDItMDEtMjUgMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGtlZXAgYXNwLT52YmNvdW50IGNvcnJlY3QgaW4gY3JlYXRlX3N1YnRyZWVfY2FjaGUoKSBpZiB3ZSBkdW1wCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgR0VUTkVYVCBjYXNlIGJlY2F1c2UgbnVtdmFyYmluZHMgPiBub24tcmVwZWF0ZXJzLgogICAgICAgRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgY2F1c2UgcHJvYmxlbXMgbGF0ZXIgd2hlbiB5b3UgaXRlcmF0ZSBvdmVyCiAgICAgICAwIC4uIGFzcC0+dmJjb3VudCAtIDEgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKS4KICAgCjIwMDItMDEtMjQgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICB1cGRhdGUgbWFjcm9zIHRvIHB1dCBwYXJlbnMgYXJvdW5kIHBhcmFtZXRlcnMgd2hlbiB1c2VkLCBpbiBjYXNlIGEgcGFyYW1ldGVyIGlzIGFuIGV4cHJlc3Npb24sIHdoaWNoIG1pZ2h0IG11Y2sgYWJvdXQgd2l0aCBvcGVyYXRvciBwcmVjZWRlbmNlIHJ1bGVzIGFuZCBjYXVzZSB1bmV4cGVjdGVkIGFuZCB1bmRlc2lyYWJsZSBiZWhhdmlvci4KICAgCjIwMDItMDEtMjQgMTE6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0cnkgdG8gZmluZCAmIGhhbmRsZSBleHRlcm5hbCBpbmRleGVzOyB1c2UgbmV3IHN0eWxlIG5ldC1zbm1wIGluY2x1ZGVzOyBhZGQKICAgcm93X2NvcHk7IHVzZSBjb250ZXh0IHR5cGVzICYgY2FzdHMgaW4gcGFyYW1ldGVycyBpbnN0ZWFkIG9mIGdlbmVyaWMgdHlwZXMKICAgcmVjYXN0IGluc2lkZSBtZXRob2QKICAgCjIwMDItMDEtMjQgMDY6MDMgIGpicG4KCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4zKSwgcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwNDozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBkb24ndCBhdXRvbWF0aWNhbGx5IGFjY2VwdCBhIG1zZ1VzZXJOYW1lIG9mICIiIHdoZW4gcHJvY2Vzc2luZwogICAgICAgaW5jb21pbmcgbWVzc2FnZXMuCiAgIAoyMDAyLTAxLTI0IDA0OjMwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiaWdnZXIgYnVmZmVyIGZvciBtc2dBdXRob3JpdGF0aXZlRW5naW5lSUQgZmllbGQgc2luY2UgaXQgaXMgbm90CiAgICAgICBsaW1pdGVkIHRvIDMyIGJ5dGVzIGxpa2UgU25tcEVuZ2luZVRDLiAgUmVhbGx5IHRoaXMgbmVlZHMgdG8gYmUKICAgICAgIGFsbG9jYXRlZCBieSB0aGUgc2VjdXJpdHkgbW9kdWxlIGJ1dCBmb3Igbm93IHdlJ2xsIGp1c3QgbWFrZSBpdAogICAgICAgdHdpY2UgYXMgYmlnLgogICAKMjAwMi0wMS0yNCAwMzoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgc25tcGxpYi9zbm1wLXRjLmM6CgogICBBSVggc3VwcG9ydCBmb3IgdGhlIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc2VjTW9kZWwgb2YgMCBpcyBhIHBhcnNlIGVycm9yIGluIEhlYWRlckRhdGEKICAgCjIwMDItMDEtMjMgMDc6MjMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJlIGNhcmVmdWwgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzIGluCiAgICAgICBzbm1wdjNfcGFyc2UgLS0gZml4ZXMgbWVtb3J5IGxlYWtzIHdoZW4gbWFsZm9ybWVkIFBEVXMgYXJlCiAgICAgICByZWNlaXZlZC4KICAgCjIwMDItMDEtMjIgMTk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICBjaGcgYXBpIGZvciBzbm1wX29pZF9uY29tcGFyZSwgZG9uJ3QgaW1wbGVtZW50IGl0IHZpIHNubXBfb2lkX2NvbXBhcmUKICAgCjIwMDItMDEtMjIgMTk6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfYXJyYXkuaDoKCiAgIGFkZCBHZXRfb2lkX2RhdGFfY291bnQoKTsgYWRkIHN1YnNldCBzdXBwb3J0CiAgIAoyMDAyLTAxLTIyIDE5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICBhZGQgbmV0c25tcF9zdHIyb2lkKCkKICAgCjIwMDItMDEtMjIgMTk6NDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uCiAgIAoyMDAyLTAxLTIyIDE5OjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbjsgYWRkIHByZWxpbWluYXJ5IGxvY2tpbmcgY29kZTsgYWRkIHRhX2NoZWNrX3Jvd19zdGF0dXMKICAgCjIwMDItMDEtMjIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgYSBwYXJzZSBlcnJvciBpZiB3ZSByZWNlaXZlIFVzbVNlY3VyaXR5UGFyYW1ldGVycyB3aXRoIGEKICAgICAgIG1zZ1VzZXJOYW1lIHRoYXQgaXMgaWxsZWdhbGx5IGxvbmcuCiAgIAoyMDAyLTAxLTIyIDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgICAgLSBvb3BzLCBsZWZ0IG9sZCBjb2RlIGluICNpZiAwIGJyYW5jaCBBR0FJTi4gIEkgYW0gZ2V0dGluZyBpbnRvIGJhZAogICAgICAgaGFiaXRzIQogICAKMjAwMi0wMS0yMiAwMzowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrcyBpbiByb3cgY3JlYXRpb24vZGVzdHJ1Y3Rpb24KICAgCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgdmFsaWRpdHkgY2hlY2tpbmcgb2Ygc25tcE5vdGlmeVRhZywgc25tcE5vdGlmeVR5cGUKICAgICAgIGFuZCBzbm1wTm90aWZ5U3RvcmFnZVR5cGUuCiAgIAogICAgIC0gcGFzc2VzIDYuNS4xLjAgLS0gNi41LjguMwogICAKMjAwMi0wMS0yMiAwMTo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMi0wMS0yMSAyMzo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHRpZHkgdGhpbmdzIHVwIGEgYml0IChoYWQgbGVmdCBzb21lIG9sZCBjb2RlIHNpdHRpbmcgaWYgI2lmIDAKICAgICAgIGJyYW5jaCkuCiAgIAogICAgIC0gcmVtZW1iZXIgdG8gY2xvc2UgKHRhcmdldC0+c2Vzcykgd2hlbiB3ZSBtb3ZlIGEgdGFyZ2V0IHRvCiAgICAgICBub3RJblNlcnZpY2UoMikuCiAgIAoyMDAyLTAxLTIxIDExOjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQogICAKMjAwMi0wMS0yMSAwNjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBzbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICAgIC0gaW1wbGVtZW50IHNubXBUYXJnZXRTcGluTG9jayBvYmplY3QKICAgCjIwMDItMDEtMTggMDk6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZS4gIFBhc3NlcyBhbGwgdGhlCiAgICAgICByZWxldmFudCBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjQuMC4xIC0tIDUuNC45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDg6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHZhY20uYyAsIHZhY20uaDoKCiAgICAgLSBhZGQgYSBzd2l0Y2ggdG8gdmFjbV9nZXRWaWV3RW50cnkoKSB0byBhbGxvdyB0aGUgbWFzayBlbnRyaWVzCiAgICAgICB0byBiZSBpZ25vcmUgKHdoaWNoIGlzIHdoYXQgeW91IHdhbnQgd2hlbiB5b3UgYXJlIGp1c3QgdXNpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgdGFibGUgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBuZXcKICAgICAgIHZhbHVlIHRvIG9uZSBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cykuCiAgIAoyMDAyLTAxLTE4IDA2OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbUFjY2Vzc1RhYmxlLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuMy4wIC0tIDUuMy45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUgKGkuZS4gZG9uJ3QKICAgICAgIGp1c3QgZG8gZXZlcnl0aGluZyBpbiB0aGUgQ09NTUlUIHBoYXNlKS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjIuMCAtLSA1LjIuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA0OjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZXJyb3Igc3RhdHVzIGFmdGVyIENPTU1JVCBvciBVTkRPCiAgICAgICBwaGFzZXMgd2l0aCBjb21taXRGYWlsZWQgb3IgdW5kb0ZhaWxlZCAoYnV0IGRvIHRyYW5zbGF0ZSBlcnJvcgogICAgICAgcmV0dXJucyBmcm9tIHRob3NlIHBoYXNlcyBpbnRvIHRob3NlIGVycm9ycyB3aGVuIHdlIGRvbid0IGhhdmUgYW4KICAgICAgIGV4aXN0aW5nIGVycm9yIHN0YXR1cykuCiAgIAoyMDAyLTAxLTE3IDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnSUQgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUgcGFja2V0CiAgICAgICBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTcgMDY6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dNYXhTaXplIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlCiAgICAgICBwYWNrZXQgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE1IDA4OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgdG9wIGxldmVsIGluY2x1ZGUgd2hpY2ggaW5jbHVkZXMgdXNlZnVsIHNubXBsaWIgaGVhZGVycwogICAKMjAwMi0wMS0xNSAwODoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvdWNkLXNubXAvOiBhZ2VudF9pbmRleC5oICwgYWdlbnRfcmVhZF9jb25maWcuaAogICAsIGFnZW50X3JlZ2lzdHJ5LmggLCBhZ2VudF90cmFwLmggLCBhc24xLmggLAogICBhdXRvX25saXN0LmggLCBjYWxsYmFjay5oICwgZGVmYXVsdF9zdG9yZS5oICwKICAgZHNfYWdlbnQuaCAsIGhlYWRlcl9jb21wbGV4LmggLCBpbnQ2NC5oICwga2V5dG9vbHMuaAogICAsIG1pYi5oICwgbWliX21vZHVsZV9jb25maWcuaCAsIG1pYmluY2wuaCAsCiAgIHBhcnNlLmggLCByZWFkX2NvbmZpZy5oICwgc2NhcGkuaCAsIHNubXAtdGMuaCAsCiAgIHNubXAuaCAsIHNubXBfYWdlbnQuaCAsIHNubXBfYWxhcm0uaCAsIHNubXBfYXBpLmgKICAgLCBzbm1wX2NsaWVudC5oICwgc25tcF9kZWJ1Zy5oICwgc25tcF9pbXBsLmggLAogICBzbm1wX2xvZ2dpbmcuaCAsIHNubXBfcGFyc2VfYXJncy5oICwgc25tcF92YXJzLmggLAogICBzbm1wdXNtLmggLCBzbm1wdjMuaCAsIHN0cnVjdC5oICwgc3lzdGVtLmggLAogICB0b29scy5oICwgdHJhbnNmb3JtX29pZHMuaCAsIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgLCB1Y2Qtc25tcC1jb25maWcuaCAsIHVjZC1zbm1wLWluY2x1ZGVzLmggLAogICB1dGlsX2Z1bmNzLmggLCB2YXJfc3RydWN0LmggLCB2ZXJzaW9uLmg6CgogICBjcmVhdGUgNC54IGhlYWRlcnMgdGhhdCBhcmUgd3JhcHBlcnMgcG9pbnRpbmcgdG8gbmV3IGhlYWRlcnMKICAgCjIwMDItMDEtMTQgMTU6MDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgVXNlclJvd0FjdGlvbiBhbmQgdm9pZCBwb2ludGVyCiAgIAoyMDAyLTAxLTE0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwgTWFrZWZpbGUuaW46CgogICAtPiBuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgIAoyMDAyLTAxLTE0IDEzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICByZW1vdmVkCiAgIAoyMDAyLTAxLTE0IDEzOjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgY29weSB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oIGFuZCB1cGRhdGUgdG8gbmV0LXNubXAgdXNlIG5ldyBhZ2VudCBkaXIKICAgCjIwMDItMDEtMTQgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hZ2VudF90cmFwLmggLAogICBhZ2VudC9hdXRvX25saXN0LmMgLCBhZ2VudC9hdXRvX25saXN0LmggLAogICBhZ2VudC9kc19hZ2VudC5oICwgYWdlbnQva2VybmVsLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jCiAgICwgYWdlbnQvbWliX21vZHVsZXMuaCAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcF92YXJzLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsIGFnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwTWVkaWEuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwUm91dGUuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwdjYuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKICAgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIG1vdmVkIHRoZSAvYWdlbnQgaW5zdGFsbGVkIGhlYWRlcnMgdG8gLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudAogICAKMjAwMi0wMS0xMyAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgYSBjb3VwbGUgbW9yZSBpbnN0YWxsIGhlYWRlcnMuCiAgIAoyMDAyLTAxLTExIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4gLCBub3RpZmljYXRpb25fbG9nLmM6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuaCAsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmgKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgKICAgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmggLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmggLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFwcHMvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSBBZGQgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgdG8gaW5jbHVkZSBwYXRoLgogICAtIFJlbmFtZSAzIGFnZW50IGxpYnJhcmllcyBmcm9tIGxpYnVjZCogLT4gbGlibmV0c25tcCoKICAgCjIwMDItMDEtMTEgMDc6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZG9uJ3QgdXNlIHdoaWxlKHgtLSA+PSAwKSBsb29wcyBmb3IgbmV3IHVuc2lnbmVkIGluZGV4IGNvbXBvbmVudHMKICAgCjIwMDItMDEtMTEgMDU6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYmUgY2FyZWZ1bCBhYm91dCBzaWduZWRlc3Mgb2YgaW5kZXggY29tcG9uZW50cyBpbiB0YWJsZXMKICAgCjIwMDItMDEtMTAgMTM6MTIgIG5iYQoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDcmVhdGUgdGhlIGluY2x1ZGUgZGlyZWN0b3J5IHdoZW4gYnVpbGRpbmcgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAxLTEwIDA4OjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgICAgLSB1c2UgYW4gdW5zaWduZWQgbG9uZyBsb29wIHZhcmlhYmxlIGluIHZhcl9zeXNPUlRhYmxlKCkgdG8gYXZvaWQKICAgICAgIGluY29ycmVjdCBsZXhpLW9yZGVyaW5nIHdoZW4gZG9pbmcgcmVxdWVzdHMgbGlrZSBHRVRORVhUCiAgICAgICBzeXNPUkRlc2NyLjQyOTQ5NjcyOTUuCiAgIAogICAgIC0gbWlub3IgZGVidWdnaW5nIG91dHB1dCBjaGFuZ2VzCiAgIAoyMDAyLTAxLTEwIDA3OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKQogICAKMjAwMi0wMS0xMCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2V0IHR5cGUgZm9yIHVuaGFuZGxlZCBHRVQgcmVxdWVzdHMgaW4gaGFuZGxlX3BkdSgpIHRvIGJlCiAgICAgICBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBub1N1Y2hPYmplY3QgKG5vU3VjaE9iamVjdCBleGNlcHRpb25zCiAgICAgICBhcmUgZGV0ZWN0ZWQgYW5kIGV4cGxpY2l0bHkgc2V0IGVhcmxpZXIpLgogICAKMjAwMi0wMS0xMCAwNTo1MiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBjb3JyZWN0IHR5cG8gdGhhdCBtZWFudCBlcnJvciByZXR1cm5zIGZyb20gb2xkLWFwaSB3cml0ZSBtZXRob2RzCiAgICAgICB3ZXJlIGlnbm9yZWQuCiAgIAoyMDAyLTAxLTEwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBjaGFuZ2UgdmFsdWUgb2YgU1RBVF9UQVJHRVRfU1RBVFNfRU5EIHNvIHRoYXQgbWliSUkvc25tcF9taWIuYyBjYW4KICAgICAgIHJldHVybiB2YWx1ZXMgb2YgbWFuZGF0b3J5IG9iamVjdHMgc25tcFNpbGVudERyb3BzIGFuZAogICAgICAgc25tcFByb3h5RHJvcHMuCiAgIAoyMDAyLTAxLTA5IDA4OjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHVua25vd24vaWxsZWdhbCB2YXJiaW5kIHR5cGVzIGluIHYxL3YyYyBQRFVzIGNhdXNlCiAgICAgICBzbm1wSW5BU05QYXJzZUVycnMgdG8gYmUgaW5jcmVtZW50ZWQuCiAgIAoyMDAyLTAxLTA5IDA3OjU1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOSAwNzozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICAgIC0gYnJpbmcgYXBwLXNwZWNpZmljIG9wdGlvbnMgaW4gbGluZSB3aXRoIHNubXBidWxrd2FsayAoLUMgcmF0aGVyCiAgICAgICB0aGFuIC1CKQogICAKMjAwMi0wMS0wOSAwNzozMSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGZvcm1hdHRpbmcgY2hhbmdlIHRvIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDItMDEtMDkgMDY6MzUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOCAwODo1NSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGFkZCBvcHRpb25zIGZyb20gc25tcHdhbGsKICAgCiAgICAgLSBhbGxvdyBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzIHRvIGJlIHNldAogICAKICAgICAtIGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIG1heC1yZXBlYXRlcnMgdG8gYSBsb3dlciB2YWx1ZSB0byBhdm9pZAogICAgICAgdGltZW91dHMgd2l0aCBzbG93ZXIgYWdlbnRzCiAgIAoyMDAyLTAxLTA4IDA4OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB0cnkgdG8gbWFsbG9jKCkgYSB6ZXJvLWxlbmd0aCBidWZmZXIsIGluIGNhc2Ugc29tZSBtYWxsb2MoKXMKICAgICAgIGNvbXBsYWluLgogICAKMjAwMi0wMS0wOCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaG9wZWZ1bGx5IGZpbmFsIEdFVEJVTEsgZml4IC0tIHBhc3NlcyBhbGwgU2lsdmVyQ3JlZWsncyBHRVRCVUxLCiAgICAgICB0ZXN0cyAoaW5jbC4gbmVnYXRpdmUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycykKICAgCjIwMDItMDEtMDggMDY6NTkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgICAtIEdFVEJVTEsgZml4IHRvIGlnbm9yZSB2YXJiaW5kcyBmb3Igd2hpY2ggemVybyByZXBldGl0aW9ucyBhcmUKICAgICAgIGNhbGxlZCBmb3IKICAgCiAgICAgLSBkcm9wIGFzcC0+c3RhcnQgYW5kIGFzcC0+ZW5kIHdoaWNoIGFyZSBoYXJkbHkgdXNlZCBhbmQgd2hpY2ggZ2V0CiAgICAgICBpbiB0aGUgd2F5IG9mIHRoaXMgdHlwZSBvZiBwcm9jZXNzaW5nCiAgIAogICAgIC0gaWdub3JlIG5lZ2F0aXZlIHJlcGV0aXRpb25zIGluIGJ1bGtfdG9fbmV4dCBoYW5kbGVyCiAgIAoyMDAyLTAxLTA3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTAxLTA3IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvSU5TVEFMTDoKCiAgIFBOR0dyYXBoIC0+IEdEOjpHcmFwaAogICAKMjAwMi0wMS0wNCAxMzo0OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTAxLTA0IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oOgoKICAgbW92ZSBhY2NvbmZpZy5oIGJhY2sgdG8gdGhlIHRvcCBkaXIgd2hlcmUgaXRzIGFwcGFyZW50bHkgc3VwcG9zZWQgdG8gbGl2ZS4KICAgCjIwMDItMDEtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgdWNkLXNubXAgLT4gbmV0LXNubXAgdHJhbnNsYXRpb25zLiAgd2FybmluZzogaW5jbHVkZXMgdGhlIGRlZmF1bHQgcGVyc2lzdGVudCBzdG9yZS4KICAgCjIwMDItMDEtMDQgMTM6MDQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvOiBuZXQtc25tcC8uY3ZzaWdub3JlICwgdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMS0wNCAxMzowMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBidWlsdCBuZXQtc25tcC1jb25maWcKICAgCjIwMDItMDEtMDQgMTM6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiAsIGVuY29kZV9rZXljaGFuZ2UuYyAsCiAgIG5vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYwogICAsIHNubXBkZWx0YS5jICwgc25tcGRmLmMgLCBzbm1wZ2V0LmMgLAogICBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jICwgc25tcHN0YXR1cy5jICwKICAgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwgc25tcHRyYW5zbGF0ZS5jICwKICAgc25tcHRyYXAuYyAsIHNubXB0cmFwZC5jICwgc25tcHRyYXBkX2hhbmRsZXJzLmMKICAgLCBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdXNtLmMgLCBzbm1wdmFjbS5jCiAgICwgc25tcHdhbGsuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkovaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBSb3V0ZS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXB2Ni5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkova2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zbm1wX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKICAgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyAsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvb2lkX2FycmF5LmMgLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcF9lbnVtLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zbnByaW50Zi5jICwgc25tcGxpYi9zdHJ0b2wuYyAsCiAgIHNubXBsaWIvc3RydG91bC5jICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYwogICAsIHNubXBsaWIvdmFjbS5jICwgdGVzdGluZy9ULmMgLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jICwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMgLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMgLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnRvcCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYXV0b19ubGlzdC5jICwKICAgYWdlbnQva2VybmVsLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwogICAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKICAgLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMgLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW46CgogICByZW1vdmVkIHVuZWVkZWQgb2xkZXIgZmlsZXMKICAgCjIwMDItMDEtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggIzQ5MjA3MiB0byBtYWluIGJyYW5jaAogICAKMjAwMi0wMS0wMyAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBzZXRtbnRlbnQgYmVmb3JlIHVzaW5nIHRoZW0uCiAgIAoyMDAyLTAxLTAzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDItMDEtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG06CgogICBQTkdHcmFwaCAtPiBHREdyYXBoCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hhbmdlIGV4cG9ydCBuYW1lIHRvICJuZXQtc25tcCIgZnJvbSAidWNkLXNubXAiCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1ha2UgdXNlIG9mIHRoZSBuZXcgbXVsdGktYWRkIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhc2V0LmMgLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBhZGQgbXVsdGlwbGUgZGVmYXVsdCByb3cgY29sdW1uIGRlZmluaXRpb25zIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jICwgdGFibGUuaDoKCiAgIGFkZCBtdWx0aXBsZSBpbmRleGVzIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMgKGdldFN0YXRQdHIgbm8gbGVzcykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiAsIG9pZF9zdGFzaC5jICwgb2lkX3N0YXNoLmg6CgogICBkYXRhIHN0YXNoaW5nIGJhc2VkIG9uIGFuIG9pZCBjYWNoaW5nIHRyZWUuCiAgIAoyMDAxLTEyLTI2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMICwgTWFrZWZpbGUuUEwgLCBtYW5hZ2VyLnBtOgoKICAgdXBkYXRlIHRvIG1ha2UgaXQgYSBiaXQgZWFzaWVyIHRvIGluc3RhbGwgKGluY2x1ZGluZyBhIE1ha2VmaWxlIGZvcgogICBhdXRvbWF0ZWQgaW5zdGFsbGF0aW9uKS4KICAgCjIwMDEtMTItMjYgMTM6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwgLCBkaXNwbGF5dGFibGUucG0gLCBnZXRWYWx1ZXMucG0KICAgLCBncmVlbi5naWYgLCBtYW5hZ2VyLnBtICwgcmVkLmdpZiAsIHNldHVwYXV0aAogICAsIHNldHVwZGIgLCBzZXR1cHVzZXIgLCBzbm1wdG9zcWw6CgogICBtb3ZpbmcgbWFuYWdlciB0byBwZXJsL21hbmFnZXIKICAgCjIwMDEtMTItMjQgMTY6MTAgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTEgKQogICAKMjAwMS0xMi0yNCAxNjowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIG1pYjJjICwgbWliMmMuY29uZjoKCiAgIFVwZGF0ZSB0byBtYWtlIHBlb3BsZSB1bmRlcnN0YW5kIHRoYXQgaXQncyBub3QgZmluaXNoZWQgYW5kIHlvdSBtdXN0CiAgIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBmaWxlIGF0IHRoaXMgcG9pbnQuCiAgIAoyMDAxLTEyLTI0IDE1OjUxICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmggLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5ub3QuZXZlbi5jbG9zZSApCiAgIAoyMDAxLTEyLTI0IDE1OjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtb3JlIGNvbW1lbnRzLgogICAKMjAwMS0xMi0yNCAxNTo0MSAgaGFyZGFrZXIKCiAgICogRkFRICwgUkVBRE1FOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGRveHlnZW4gY29tbWVudHMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIE5FV1MgLCBSRUFETUU6CgogICA1LjAgY29tbWVudCB1cGRhdGVzLgogICAKMjAwMS0xMi0yNCAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG94eWdlbiBjb21tZW50cyBvbiBhIGZldyBmdW5jdGlvbnMuCiAgIAoyMDAxLTEyLTI0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTEyLTI0IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIG5vbi1leGlzdGVudCBtb2R1bGVzCiAgIAoyMDAxLTEyLTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWc6CgogICBvcHBzLiAgRG9uJ3QgY2hlY2sgaW4gZ2VuZXJhdGVkIGZpbGVzLgogICAKMjAwMS0xMi0yMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IHJwbSB1c2FnZSAoSSBob3BlKS4KICAgCjIwMDEtMTItMjMgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGRlZCAuY3ZzaWdub3JlIGZpbGUKICAgCjIwMDEtMTItMjMgMTQ6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuCiAgIAoyMDAxLTEyLTIzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBORVdTICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgbmV0LXNubXAtY29uZmlnICwgbmV0LXNubXAtY29uZmlnLmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBjcmVhdGVkIGEgbmV0LXNubXAtY29uZmlnIHNjcmlwdCB0byByZXBvcnQgY29tcGlsZWQgbGlicy4KICAgLSBzZXBhcmF0ZWQgbGlicyBuZWVkZWQgYnkgYWdlbnQgZnJvbSB0aG9zZSBuZWVkZWQgYnkgdGhlIHJlc3Qgb2YgdGhlCiAgICAgYXBwbGljYXRpb25zLgogICAKMjAwMS0xMi0yMSAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaG93IHRvIGluc3RhbGwgREJJCiAgIAoyMDAxLTEyLTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIHJlbW92ZSB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBBbnlEYXRhCiAgIAoyMDAxLTEyLTIxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoyMDAxLTEyLTIxIDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwgLCBJTlNUQUxMICwgSU5TVEFMTCAsCiAgIElOU1RBTEw6CgogICBiZXR0ZXIgZGVzY3IKICAgCjIwMDEtMTItMjEgMTY6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRToKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlLgogICAKMjAwMS0xMi0yMSAxNjowNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaXQncyB2ZXJ5IGFscGhhIGNvZGUuCiAgIAoyMDAxLTEyLTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbmV3IGluc3RydWN0aW9ucwogICAKMjAwMS0xMi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZG94eWdlbi4KICAgCjIwMDEtMTItMjEgMTA6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaDoKCiAgIGNvbXBpbGUgaW4gYWdlbnQgc3BlY2lmaWMgc3VwcG9ydCBtaWJzLgogICAKMjAwMS0xMi0yMSAwOTo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChzdGlsbCBpbmNvbXBsZXRlKSAybmQgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMjEgMDk6NDQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoaW5jb21wbGV0ZSkgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMTkgMTc6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IHJlYWxsb2MgZmxvYXQgYW5kIGRvdWJsZSBidWlsZHMuCiAgIAoyMDAxLTEyLTE5IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNjIGZpeGVzLgogICAKMjAwMS0xMi0xOSAxNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkZWZpbmUgYSBDIGRhdGF0eXBlIGFzICR2YXIuZGVjbCAocGVyIFJvYmVydCdzIHN1Z2dlc3Rpb24uICBSb2JlcnQ6IHdlCiAgIHByb2JhYmx5IHdhbnQgcG9pbnRlcnMgZm9yIHRoaW5ncyBsaWtlIHN0cmluZ3MsIG5vPyAgbWF5YmUgb25lIHR5cGUKICAgdGhhdCBpcyBhbHdheXMgYSBwb2ludGVyIGFuZCBhbm90aGVyIHRoYXQgaXMgc29tZXRpbWVzIGRlcGVuZGluZyBvbgogICB0aGUgdHlwZT8pCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgY2hhbmdlIGRlZmF1bHQgYnVsayBudW1iZXIgdG8gMTAwIGZyb20gdGhlIHJpZGljdWxvdXMgMTAwMC4KICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLAogICBhcHBzL01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAxLTEyLTE5IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBnZXRidWxrIHVwZGF0ZXMgdG8gbWFrZSBpdCB0aGUgbW9kdWxlcyByZXNwb25zaWJpbGl0eSB0byB1cGRhdGUgdGhlCiAgIHZhcmJpbmQgY2hhaW4gYW4gdGhlIHJlcGVhdCBjb3VudGVyLgogICAKMjAwMS0xMi0xOSAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmgKICAgLCBoZWxwZXJzL01ha2VmaWxlLmluICwgaGVscGVycy9hbGxfaGVscGVycy5jICwKICAgaGVscGVycy9hbGxfaGVscGVycy5oICwgaGVscGVycy9idWxrX3RvX25leHQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0Lmg6CgogICBHRVRCVUxLIHN1cHBvcnQgZm9yIHRoZSBuZXcgQVBJLgogICAgIC0gbWF5IG5lZWQgdG8gbWFrZSBzb21lIHNsaWdodCBtb2RpZmljYXRpb25zLgogICAgIC0gZGVmYXVsdHMgdG8gR0VUTkVYVCBmb3IgYW55IGhhbmRsZXIgdGhhdCBkb2Vzbid0IHNldCBIQU5ETEVSX0NBTl9HRVRCVUxLLgogICAgIC0gZG9lc24ndCBkZWFsIHByb3Blcmx5IHlldCB3aXRoIGVuZC1vZi1taWIgY29uZGl0aW9uIHJlbW92YWwuCiAgIAoyMDAxLTEyLTE5IDA2OjA1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCAtcCBvcHRpb24uICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzIG9wdGlvbmFsCiAgICAgICBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIGRyb3AgKGxvbmctZGVwcmVjYXRlZCkgLXEgb3B0aW9uLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgYW5kCiAgICAgICBjaGFuZ2VkIGRlc2NyaXB0aW9uIG9mIHNvbWUgb3B0aW9ucyB0byBiZSBtb3JlIHNpbWlsYXIgdG8gc25tcGQKICAgICAgIG9wdGlvbnMgKHdoZXJlIGFwcHJvcHJpYXRlKS4KICAgCjIwMDEtMTItMTkgMDQ6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcwogICAgICAgb3B0aW9uYWwgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIHBsdXMKICAgICAgIG1pbm9yIGZvcm1hdHRpbmcgdHdlYWtzLgogICAKICAgICAtIHJlLXdyaXR0ZW4gb3B0aW9ucyBwcm9jZXNzaW5nIGxvb3AgdG8gdXNlIG9wdGFyZygpLgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjUpLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgd2FybmluZyAtPiBkZWJ1Zy4KICAgCjIwMDEtMTItMTcgMTA6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBnZXROZXh0IHF1ZXJpZXMgd2hlcmUgdGhlIGluaXRpYWwgdmFyYmluZC0+dHlwZSBpcwogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSAodGhlc2UgY3VycmVudGx5IGFyaXNlIG9ubHkgaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMgYnV0IHRoZSBoYW5kbGluZyBpcyBub3Qgc3BlY2lmaWMgdG8gQWdlbnRYKS4KICAgCiAgICAgICBCYXNpY2FsbHkgdGhpcyBpcyBkb25lIGJ5IHBlcmZvcm1pbmcgYSBHRVQgZmlyc3Qgb24gYWxsIHRoZQogICAgICAgdmFyaWFibGVzIGluIGEgcmVxdWVzdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBoYWQgYW4gaW5pdGlhbCB0eXBlIG9mCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCB3ZXJlIHNhdGlzZmllZCBieSB0aGlzIGluaXRpYWwgR0VULCB3ZSB1c2UKICAgICAgIHRoaXMgdmFsdWUgYXMgdGhlIHJlc3VsdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBkaWQgbm90IGhhdmUgYW4KICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFLCBvciB2YXJpYWJsZSB0aGF0IGhhZCBhbmQKICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFIGJ1dCB3ZXJlIG5vdCBzYXRpc2ZpZWQgYnkgdGhpcwogICAgICAgR0VUIHJlcXVlc3QsIHdlIHByb2NlZWQgdG8gcGVyZm9ybSBhIEdFVC1ORVhUIHR5cGUgcmVxdWVzdCBhcwogICAgICAgbm9ybWFsLgogICAKMjAwMS0xMi0xNyAxMDowNCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoIGVtdWxhdGVzIG9sZAogICAgICAgZnVuY3Rpb25hbGl0eS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gcmVnaXN0ZXJfb2xkX2FwaSgpLgogICAKMjAwMS0xMi0xNyAwOTozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBib2d1cyBpbmRlbnQKICAgCjIwMDEtMTItMTcgMDk6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHJpZ2h0IG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlZ2lzdGVyX21pYl9jb250ZXh0MigpIGluCiAgICAgICByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiBkaXR0by4KICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSBoYW5kbGVyIGluamVjdGlvbiBvcmRlciAoc2VyaWFsaXplIG5lZWRzIHRvIGJlIGNhbGxlZCBmaXJzdCkKICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjaGVjayBmb3IgYWxyZWFkeSBhbnN3ZXJlZCBBU05fTlVMTHMgaW4gZmlyc3QgcGFzcy4KICAgCjIwMDEtMTItMTIgMDk6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogLmN2c2lnbm9yZSAsIElOU1RBTEwgLCBNQU5JRkVTVAogICAsIFJFQURNRSAsIHNubXBzaDoKCiAgIC0gZG9jIHVwZGF0ZS4KICAgLSBzbm1wc2ggbm93IHN1cHBvcnRzIGFsaWFzZXMgc28geW91IGNhbiBkZWZpbmUgY29tbWFuZCBzZXRzLgogICAtIHNubXBzaCBub3cgcmVhZHMgYSB+Ly5zbm1wc2hyYyBmaWxlIGZvciBzdG9yaW5nIHRoZXNlIGRlZmluZWQgYWxpYXNlcy4KICAgCjIwMDEtMTItMTIgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBuZXcgZnVuY3Rpb24gam9pbl9zdWJ0cmVlKCkgd2hpY2ggcmVwYWlycyAicHVuY3R1cmVkIiBzdWJ0cmVlcwogICAgICAgKHRoZXNlIGFyaXNlIGluIHBhcnRpY3VsYXIgd2hlbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMgYXJlCiAgICAgICB3aXRoZHJhd24pLgogICAKICAgICAtIGNvcHkgcmVnaW5mbyB3aGVuIGRvaW5nIGEgcmFuZ2UgcmVnaXN0cmF0aW9uIChhcyB3ZSB1c2VkIHRvIGRvCiAgICAgICB3aXRoIHRoZSB2YXJpYWJsZSBzdHJ1Y3R1cmUpLCBzaW5jZSBlYWNoIG5vZGUgbXVzdCBzdGFuZCBhbG9uZS4KICAgCiAgICAgLSBhZGQgcGFyYW1ldGVyIHRvIHJlZ2lzdGVyX21pYl9jb250ZXh0MiB0byBhbGxvdyBSRUdJU1RFUl9PSUQKICAgICAgIGNhbGxiYWNrcyB0byBiZSB3aXRoaGVsZCAoZm9yIGluc3RhbmNlLCB5b3UgbmVlZCB0aGlzIHRvIGF2b2lkCiAgICAgICBleGNlc3MgQWdlbnRYIHRyYWZmaWMgZm9yIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSByZW1vdmUgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIC0tIHRoaXMgaGFzIG1vdmVkIHRvIG9sZF9hcGkuYwogICAKICAgICAtIGNhbGwgam9pbl9zdWJ0cmVlKCkgaW4gdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKS4KICAgCjIwMDEtMTItMTIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9oYW5kbGVyLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9ucyBzbm1wX2hhbmRsZXJfZnJlZSgpLCBzbm1wX2hhbmRsZXJfZHVwKCksCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2R1cCgpIGFuZAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkuCiAgIAoyMDAxLTEyLTExIDE4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCBidWcgd2hlcmUgcGR1LT5jb250ZXh0TmFtZSBpcyBOVUxMLgogICAKMjAwMS0xMi0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBCSVRTOiBpcGFkZHIgLT4gb2N0ZXRfc3RyCiAgIAoyMDAxLTEyLTExIDA0OjExICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNlbmQgSU5DTFVTSVZFIHNlYXJjaCByYW5nZXMgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMTAgMjA6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBub2FjY2VzcyBmbGFnIGZvciBub3QtYWNjZXNzaWJsZSBub2RlcwogICAKMjAwMS0xMi0xMCAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBDaGFuZ2VzICwgREJEX0FueURhdGEucGF0Y2ggLAogICBGb3JtYXQucG0gLCBJTlNUQUxMICwgTUFOSUZFU1QgLCBNYWtlZmlsZS5QTCAsCiAgIFN0b3JhZ2UucG0gLCBzbm1wc2g6CgogICBGaXJzdCB2ZXJzaW9uCiAgIAoyMDAxLTEyLTEwIDAzOjIwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwIGFyZyB0byBkc19zZXRfc3RyaW5nCiAgIAoyMDAxLTEyLTEwIDAzOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkaXR0byBpbiBzZXRfcGVyc2lzdGVudF9kaXJlY3RvcnkoKQogICAKMjAwMS0xMi0xMCAwMzoxOCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgaW4gc2V0X2NvbmZpZ3VyYXRpb25fZGlyZWN0b3J5KCkgYmVjYXVzZQogICAgICAgZHNfc2V0X3N0cmluZygpIGFscmVhZHkgZG9lcyB0aGF0IGZvciB5b3UuCiAgIAoyMDAxLTEyLTA3IDA5OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuaAogICAsIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICAtIEltcGxlbWVudCBuZXcgbWFudHJhOiAiYWx3YXlzIHBhc3MgbW9yZSBpbmZvcm1hdGlvbiwgcmF0aGVyIHRoYW4gbGVzcyIuCiAgIC0gZml4IHRhYmxlIGl0ZXJhdGVyIEdFVE5FWFRzIGZvciBtaXNzaW5nIGRhdGEgcG9pbnRzLgogICAtIGFkZCBhIG5ldyBob29rIHRvIGZyZWUgbG9vcCBjb250ZXh0cyBhdCB0aGUgZW5kIG9mIHRoZSBlbnRpcmUgaXRlcmF0aW9uLgogICAKMjAwMS0xMi0wNiAwNjo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAoSkJQTi1DQkwtNC4xKSwgY2xpZW50LmM6CgogICAgIC0gaWYgcmVxdWVzdCBJRHMgZG9uJ3QgbWF0Y2gsIHRoZW4gY2FsbCBoYW5kbGVfYWdlbnR4X3BhY2tldCgpIC0tCiAgICAgICBjb3BlcyBiZXR0ZXIgd2l0aCB1bmV4cGVjdGVkIHBhY2tldHMsIGluIHBhcnRpY3VsYXIgZml4ZXMKICAgICAgIGludGVybWl0dGVudCBkdXBsaWNhdGUgdHJhcCBpc3N1ZSAoZHVlIHRvIHJlc2VudAogICBhZ2VudHgtTm90aWZ5LVBEVSkuCiAgIAoyMDAxLTEyLTA1IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFoZW0uICBPcHBzLiAgTWlzc2luZyBpbmNsdWRlcy4KICAgICAtIG5vdGUgdG8gc2VsZjogY29tcGlsZSBmaXJzdCwgKnRoZW4qIGNoZWNrIGluIGNoYW5nZXMuCiAgIAoyMDAxLTEyLTA1IDEzOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGFkZCBpbiB0aGUgbWlzc2luZyBmdW5jdGlvbnMgZnJvbSB0aGUgTkVXLUFHRU5ULUFQSSBicmFuY2guCiAgICAgKGFuZCB0byBhbnN3ZXIgUm9iZXJ0J3MgcGVuZGluZyBxdWVzdGlvbiBvZiB3aGF0IGhhcHBlbmVkLCBpdCB3YXMKICAgICAgbGlrZWx5IG9uZSBvZiB0aGUgZmlsZXMgdGhhdCBmYWlsZWQgdG8gY29tbWl0IG9uIG15IHNpZGUgdGhhdCB5b3UKICAgICAgdHJpZWQgdG8gZml4IGFuZCBzb21ld2hlcmUgYmV0d2VlbiB0aGUgdHdvIG9mIHVzIHRoZSBjaGFuZ2VzIHdlcmUgbG9zdCkuCiAgIAoyMDAxLTEyLTA1IDEwOjAzICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWlub3IgdHdlYWtzCiAgIAoyMDAxLTEyLTA1IDA5OjE0ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gYWRkIFRDUC9JUHY2IGRvbWFpbiB0byBBR0VOVCBTUEVDIHNlY3Rpb24KICAgCiAgICAgLSBpbmNvcnBvcmF0ZSBzdWdnZXN0aW9ucyBmcm9tIHJzdG9yeQogICAKMjAwMS0xMi0wNSAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICAgIC0gdXNlIFNPQ0tfU1RSRUFNIG5vdCBTT0NLX0RHUkFNIChkdWghKS4gIFlvdSB3b3VsZG4ndCBiZWxpZXZlIGhvdwogICAgICAgY29uZnVzaW5nIHRoaXMgd2FzIC0tIGUuZy4gaG93IG9uICplYXJ0aCogY2FuIHRoYXQgY29ubmVjdCgpIGJlCiAgICAgICBzdWNjZWVkaW5nIQogICAKMjAwMS0xMi0wNSAwODozNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIHN1cmUgdG8gY2xvc2Ugc29ja2V0IGlmIHlvdSBjYW4ndCBtYWxsb2MgdGhlIGVuY29kZWQgZmFyLWVuZAogICAgICAgYWRkcmVzcyBpbiBzbm1wX3RjcF90cmFuc3BvcnQoKQogICAKMjAwMS0xMi0wNSAwODoyNyAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwICwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AgLAogICBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDg6MjMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZyAsIEZBUSAsIE5FV1MgLCBSRUFETUUgLAogICBSRUFETUUud2luMzIgLCBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLAogICBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLAogICBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwgbG9jYWwvbWliMmMgLCBsb2NhbC90a21pYgogICAsIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwKICAgcGVybC9TTk1QL1NOTVAucG0gLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc25tcC5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwICwgd2luMzIvY29uZmlnLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oICwgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oICwKICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIvd2luMzIuZHN3ICwKICAgd2luMzIvd2luMzIub3B0ICwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAogICAsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCAsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKICAgLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCAsIHdpbjMyL3NubXBkL3NubXBkLmRzcAogICAsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AKICAgLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwICwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwKICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwICwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAogICAsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AgLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA3OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBmaXggYnVnIGluIGFkZHJlc3MgcGFyc2VyCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvLCBhaGVtLCBtYWtlIGl0IGNvbXBpbGUKICAgCjIwMDEtMTItMDUgMDc6NDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gY29uZGl0aW9uYWxpc2UgI2luY2x1ZGUgPGZjbnRsLmg+CiAgIAoyMDAxLTEyLTA1IDA3OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMi0wNSAwNzoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluOgoKICAgICAtIG1lbnRpb24gdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBpbiBjb25maWcsIGFuZCBhZGQgYSAjZGVmaW5lIGZvciBpdAogICAgICAgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGNhbGwgc25tcF90Y3A2X2N0b3IoKSBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBUQ1BJUHY2RG9tYWluLmg6CgogICAgIC0gVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIFVudGVzdGVkLgogICAKMjAwMS0xMi0wNSAwNzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWFrZSBlbmNvZGVkIGFkZHJlc3NlcyBhdCB0cmFuc3BvcnQgb3BlbiB0aW1lCiAgIAoyMDAxLTEyLTA1IDA3OjE3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIG1vdmUgI2RlZmluaXRpb24gb2YgU05NUF9TVFJFQU1fUVVFVUVfTEVOIGZyb20gc25tcFRDUERvbWFpbi5jCiAgICAgICB0byBzbm1wX3RyYW5zcG9ydC5oCiAgIAoyMDAxLTEyLTA1IDA3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jOgoKICAgcmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zIGxpa2UsIG9oLCBJIGRvbid0IGtub3csIGdldFN0YXRQdHIoKS4KICAgCjIwMDEtMTItMDUgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTEyLTA1IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBjaGFuZ2VkIHRleHR1YWwgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTEyLTA0IDIyOjUyICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4IGJpbmQgcGFyYW1ldGVycywgc28gdGhhdCB0aGUgYWdlbnQgd29ya3MKICAgCjIwMDEtMTItMDQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICAtIG1vdmUgZm9yZ290dGVuIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIGl0ZXJhdG9yIHNwZWNpZmljIGhlYWRlciBmaWxlLgogICAtIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgY2FsbGJhY2tzIHRvIG1ha2UgZnVuY3Rpb25zIG1vcmUgcmV1c2FibGUuCiAgIAoyMDAxLTEyLTA0IDEzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbW92ZSBpdGVyYXRvciBzcGVjaWZpYyB0YWJsZSBpbmZvcm1hdGlvbiBpbnRvIGl0cyBvd24gc3RydWN0dXJlLgogICAKMjAwMS0xMi0wNCAxMjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgRml4IHByb3RvdHlwZSBhcyBwb2ludGVkIG91dCBieSBKZXJvbWUgUGVkdWNhc3NlCiAgIAoyMDAxLTEyLTA0IDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWVudGlvbiB0aGF0IG5vdCBhbGwgdHJhbnNwb3J0IGRvbWFpbnMgYXJlIGFsd2F5cyBhdmFpbGFibGUuCiAgIAoyMDAxLTEyLTA0IDA5OjU1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gcmVtb3ZlIC1wIGFuZCAtVCBvcHRpb25zIGZyb20gZG9jdW1lbnRhdGlvbi4KICAgCiAgICAgLSBhZGQgbGVuZ3RoeSBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIG5ldyB0cmFuc3BvcnQgYWRkcmVzcwogICAgICAgc3BlY2lmaWNhdGlvbiBmb3JtYXQsIHdpdGggZXhhbXBsZXMgYW5kIGV2ZXJ5dGhpbmchCiAgIAoyMDAxLTEyLTA0IDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucyBmb3IgYXBwcy4KICAgCjIwMDEtMTItMDQgMDM6MTAgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIGFkZCBjcmVhdGVfb3N0cmluZyBtZXRob2QsIGV4cG9ydCB1Y2RTbm1wVURQSVB2NkRvbWFpbltdCiAgIAoyMDAxLTEyLTA0IDAyOjE5ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBtZW50aW9uIElQdjYgdHJhbnNwb3J0IGRvbWFpbiBPSURzIGluIHJlbGV2YW50IGNvbW1lbnQuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBRdWVsbCBhIGNvbnN0IGNhc3Qgd2FybmluZy4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZGVidWcgb3V0cHV0IGZyb20gcmV0cmllcy4KICAgCjIwMDEtMTItMDMgMTU6MDYgIG5iYQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBIQVZFX1NZU19UWVBFU19IIGlzIG5vdCBjb25kaXRpb25hbC4KICAgCjIwMDEtMTItMDMgMTU6MDQgIG5iYQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IHRvIGFsbG93IGNvbXBpbGF0aW9ucyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkuCiAgIAoyMDAxLTEyLTAzIDE1OjAzICBuYmEKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4ZXMgdG8gbWFrZSBVRFBJUHY2IHRyYW5zcG9ydCB3b3JrIGZvciBTb2xhcmlzLCBMaW51eCBhbmQgRnJlZUJTRC4KICAgSXQgY29tcGlsZXMsIGFuZCB0aGUgYXBwcyBzZW5kIHY2IHBhY2tldHMuIEFnZW50IG5vdCB5ZXQgdGVzdGVkLgogICAKMjAwMS0xMi0wMyAwOTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYgLCBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgY29weSByb2JlcnRzIHNwaWZmeSBoZWFkZXIgdGV4dAogICAKMjAwMS0xMi0wMyAwODozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBkYXRlbnRpbWUgY29sdW1uLgogICAKMjAwMS0xMi0wMyAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHByb2JsZW0gd2l0aCBkb3VibGUgZGVsZWdhdGVkIHJlcXVlc3RzIGFmdGVyIGdldG5leHQgbG9vcC4KICAgCjIwMDEtMTItMDMgMDg6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0OgoKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIgYWRkZWQgdG8gZGVmYXVsdCBsaXN0LgogICAKMjAwMS0xMi0wMyAwNTozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgZGVidWdnaW5nIG91dHB1dCAoImJsYWgiKQogICAKMjAwMS0xMS0zMCAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBDaGFuZ2UgaG93IHJlcXVlc3QgcHJvY2Vzc2luZyBnZXRzIGRvbmUgc3VjaCB0aGF0IHJlcXVlc3Qgb2JqZWN0cyBhcmUKICAgYWxsIGNhbGxvY2VkIGF0IG9uY2UgYW5kIGdldCByZXVzZWQgaW5zdGVhZCBvZiByZWFsbG9jYXRlZC4gIEJpZyBzcGVlZAogICBpbXByb3ZlbWVudHMuCiAgIAoyMDAxLTExLTMwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGRveHlnZW4uY29uZjoKCiAgICJtYWtlIGRvYyIgdG8gcnVuIGRveHlnZW4uCiAgIAoyMDAxLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogZGVidWdfaGFuZGxlci5jICwgbXVsdGlwbGV4ZXIuaDoKCiAgIGRveHlnZW4gZml4ZXMKICAgCjIwMDEtMTEtMzAgMDk6MjYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFIGluIHJlZ2lzdGVyX2hhbmRsZXIoKSBpZiBhcHByb3ByaWF0ZS4KICAgCjIwMDEtMTEtMzAgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpIHdoZW4gc3ViYWdlbnQgdHJpZXMgdG8KICAgICAgIHJlZ2lzdGVyIGEgTUlCIHJlZ2lvbiB0aGF0IGZhaWxzIGVpdGhlciBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlCiAgICAgICBvciBiZWNhdXNlIG9mIHNvbWUgb3RoZXIgcmVhc29uLgogICAKMjAwMS0xMS0zMCAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgb2Ygb2xkX2luZm8gKHRoYXQgbmV2ZXIgc2VlbXMgdG8gZ2V0IHVzZWQgZm9yCiAgICAgICBhbnl0aGluZyBhbnl3YXk/KQogICAKICAgICAtIGZpeCBtZW1vcnkgbGVhayB0aGF0IGFyaXNlcyBkdXJpbmcgcm93IHJlZ2lzdHJhdGlvbiAoaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMpIGJlY2F1c2Ugc3VjY2Vzc2l2ZSB2YXJzIGNhdXNlIGFwcGFyZW50IGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucyAodGhpcyBpcyBhIGRlZmljaWVuY3kpIC0tIGJ1dCBpdCB3b3VsZCBhcHBlYXIgdGhpcwogICAgICAgY291bGQgYXJpc2UgaW4gb3RoZXIgc2l0dWF0aW9ucyB0b28gKGdlbnVpbmUgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zKS4KICAgCjIwMDEtMTEtMzAgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGZpeCBicm9rZW4gcGFyc2luZyBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MoKSAtLSBsb29wIHdhcwogICAgICAgY29weWluZyB0aGUgc2FtZSAoZmlyc3QpIHRva2VuIE1BWF9BUkdTIHRpbWVzLgogICAKICAgICAtIGVsaW1pbmF0ZSBtZW1vcnkgbGVhayBpbiBkaXR0by4KICAgCiAgICAgLSBmaXggdHlwbyAoIlBhdXNpYmxlIGNhdXNlIiAtPiAiUG9zc2libGUgY2F1c2UpIGluIGRpdHRvLgogICAKMjAwMS0xMS0zMCAwNjoyOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcHJpbnQgZmQgaW4gc2Vzc19wcm9jZXNzX3BhY2tldCgpIC0tIHVzZWZ1bCBmb3IgZGVidWdnaW5nCiAgIAoyMDAxLTExLTMwIDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgICAtIHJlbW92ZSBhIGNvdXBsZSBvZiB1bm5lY2Vzc2FyeSAjaW5jbHVkZXMgZnJvbSBzbm1wQ2FsbGJhY2tEb21haW4uaAogICAKICAgICAtIHNldCAqb3BhcXVlIHRvIE5VTEwgYWZ0ZXIgd2UgZnJlZSBpdCAtLSBpdCBtaWdodCBtYXR0ZXIuCiAgIAoyMDAxLTExLTMwIDAzOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGNsb25lIFBEVSBpbiBoYW5kbGVfYWdlbnR4X3N1YmFnZW50KCkgYmVmb3JlIHNlbmRpbmcgaXQgb24gY2FsbGJhY2sKICAgICAgIHNlc3Npb24gdG8gYXZvaWQgZG91YmxlIGZyZWUoKSBhbmQgZnJlZSgpZCBtZW1vcnkgcmVhZHMuCiAgIAogICAgIC0gbW9yZSBjb25jaXNlIChhaGVtKSBkZWNsYXJhdGlvbiBvZiBteWNhbGxiYWNrIGluIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkuCiAgIAoyMDAxLTExLTI5IDA1OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBwdXQgc2Vzc2lvbiBhbmQgc3Vic2Vzc2lvbiBpbiBzdWJhZ2VudCBkZXNjcmlwdGlvbiAoaGVscGZ1bCBmb3IKICAgICAgIGRlYnVnZ2luZykKICAgCjIwMDEtMTEtMjkgMDU6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggSU5TVEFMTEhFQURFUlMKICAgCjIwMDEtMTEtMjkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIHNvbWUgZGVidWdnaW5nIHRvIGluaXRfc3ViYWdlbnQoKSAod2hpY2ggc2hvd2VkIHRoYXQgaXQgd2Fzbid0CiAgICAgICBiZWluZyBjYWxsZWQsIHNvLi4uKS4KICAgCiAgICAgLSBmaXggY2FzdCBpbiBoYW5kbGVfc3ViYWdlbnRfc2V0X3Jlc3BvbnNlKCkKICAgCjIwMDEtMTEtMjkgMDU6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWFrZSBzdXJlIGluaXRfc3ViYWdlbnQoKSBnZXRzIGNhbGxlZAogICAKMjAwMS0xMS0yOCAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNoZWNrIGZvciBzZXNzaW9uIHJlZ2lzdHJhdGlvbnMgaW4gYWxsIGNvbnRleHRzLgogICAKMjAwMS0xMS0yOCAwNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgQWRkIHN5cy90eXBlcy5oIGZvciBidWcgIzQ4NjI3Ny4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICAgIC0gI2luY2x1ZGUgPG5ldGRiLmg+CiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gaW5zdGFsbCBzbm1wX3RyYW5zcG9ydC5oIGFuZCBzbm1wKkRvbWFpbi5oIChmb3IgdGhlIGNvbmZpZ3VyZWQKICAgICAgIHRyYW5zcG9ydCBkb21haW5zKQogICAKMjAwMS0xMS0yOCAwMzoyOSAgamJwbgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAgIC0gcmV2ZXJzZSBteXN0ZXJ5IHJlbW92YWwgb2YgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gYW5kICNpbmNsdWRlCiAgIDxzeXMvdGltZS5oPgogICAKMjAwMS0xMS0yNyAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBtb3JlIGludGVsbGlnZW50bHkgYWxsb2NhdGUgdHJlZSBzcGFjZSBiYXNlZCBvbiBudW1iZXIgb2YgdmFyYmluZHMgaW4gcmVxdWVzdC4KICAgCjIwMDEtMTEtMjcgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgbWFsbG9jIG9uZSBsYXJnZSB0cmVlX2NhY2hlIGFycmF5IHJhdGhlciB0aGFuIGFuIGFycmF5IG9mIHRyZWVfY2FjaGUgcG9pbnRlcnMuCiAgIAoyMDAxLTExLTI3IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBpbmNsdWRlIGZpbGUgbmFtZSBjaGFuZ2UuCiAgIAoyMDAxLTExLTI3IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb21tZW50IGNoYW5nZXMuCiAgIAoyMDAxLTExLTI3IDA3OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4ZWQgTWFrZWZpbGUgZm9yIHNubXB0cmFwZC4KICAgCjIwMDEtMTEtMjcgMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBNYWtlZmlsZS5pbiAsIGFsbF9oZWxwZXJzLmMgLAogICBhbGxfaGVscGVycy5oICwgZGVidWdfaGFuZGxlci5jICwgZGVidWdfaGFuZGxlci5oOgoKICAgZGVidWcgaGFuZGxlciBjcmVhdGVkIGZvciBpbnNlcnRpbmcgZGVidWdnaW5nIG91dHB1dCBpbnRvIHRoZSBjYWxsaW5nIGNoYWluLgogICAKMjAwMS0xMS0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZW51bSBkZWZpbml0aW9ucyBmb3IgbW9kZXMgYW5kIGNhbl9tb2Rlcy4KICAgCjIwMDEtMTEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCBQRFUgdmFyaWFibGUgdG8gTlVMTCB0byBhdm9pZCBmcmVlaW5nIGl0IHR3aWNlLgogICAKMjAwMS0xMS0yNiAxMToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHBsdWcgYW5vdGhlciBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDk6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0ICwgVDAyMXNubXB2M2dldG5leHQgLAogICBUMDIyc25tcHYzZ2V0TUQ1ICwgVDAyM3NubXB2M2dldE1ENURFUyAsCiAgIFQwMjRzbm1wdjNnZXRTSEExICwgVDAyNXNubXB2M2dldFNIQURFUyAsCiAgIFQwMjhzbm1wdjNnZXRmYWlsICwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsCiAgIFQwNTNhZ2VudHYxdHJhcCAsIFQwNTRhZ2VudHYyY3RyYXAgLCBUMDU1YWdlbnR2MW1pbnRyYXAKICAgLCBUMDU2YWdlbnR2MmNtaW50cmFwICwgVDExMGFnZW50eGdldCAsCiAgIFQxMTFhZ2VudHhzZXQgLCBUMTEyYWdlbnR4c2V0ZmFpbCAsIFQxMTNhZ2VudHh0cmFwICwKICAgVDEyMHByb3h5Z2V0ICwgVDEyMXByb3h5c2V0ICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGRvbid0IHVzZSBjb250ZXh0cyBpbiB0ZXN0cy4KICAgCjIwMDEtMTEtMjYgMDg6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaXggbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMgLCBhZ2VudHgvbWFzdGVyLmMgLAogICB1Y2Qtc25tcC9wcm94eS5jOgoKICAgdXNlIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgdG8gcGx1ZyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTExLTI2IDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2hhbmRsZXIuaDoKCiAgIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgcm91dGluZQogICAKMjAwMS0xMS0yNiAwODoxOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCB0aGUgYWJpbGl0eSB0byBsaXN0ZW4gZm9yIHRyYXBzIG9uIG11bHRpcGxlIHRyYW5zcG9ydHMgdmlhIHRoZQogICAgICAgLXAgb3B0aW9uIChjb25zaXN0ZW50IHdpdGggc25tcGQpLgogICAKMjAwMS0xMS0yNiAwNTo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl90cmFuc3BvcnRfb2lkKCkgdG8gZG8gc2Vzc2lvbiBjcmVhdGlvbiBmcm9tCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpciwgdG8gYWxsb3cgY3JlYXRpb24gb2YKICAgICAgIG5vbi1JUHY0IHNlc3Npb25zIGluIHNubXBUYXJnZXRBZGRyVGFibGUuCiAgIAoyMDAxLTExLTI2IDA0OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYwogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBhIHRyYW5zcG9ydCBmcm9tIGEKICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLgogICAKMjAwMS0xMS0yNiAwMzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB0cmFuc3BvcnQgZG9tYWluCiAgICAgICBpcyBzdXBwb3J0ZWQuCiAgIAoyMDAxLTExLTIzIDEwOjI0ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIG11bHRpcGxlIHRyYW5zcG9ydCBkb21haW4gc3VwcG9ydCBmb3IgdHJhcGQgLS0gdGhpcyB3YXMgcmVhbGx5CiAgICAgICBSRUFMTFkgZWFzeSEKICAgCjIwMDEtMTEtMjMgMDk6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgZnVuY3Rpb24gc25tcF90cmFuc3BvcnRfc3VwcG9ydCgpIChyZXBsYWNlZCB3aXRoCiAgICAgICBzbm1wX3Rkb21haW5fc3VwcG9ydCgpKS4KICAgCjIwMDEtMTEtMjMgMDg6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jOgoKICAgICAtIHVzZSBuZXR3b3JrIG9yZGVyIGZvciBBQUw1UFZDIHRyYW5zcG9ydCBhZGRyZXNzIGVuY29kaW5nCiAgIAoyMDAxLTExLTIzIDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBzZXQgbG9jYWxfbGVuZ3RoLCByZW1vdGVfbGVuZ3RoIGFzIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTExLTIzIDA4OjM5ICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTEtMjMgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gbWFrZSB0cmFwcyB3b3JrIHdpdGggbmV3LXN0eWxlIGFkZHJlc3NlcywgdXNlIGRvbWFpbi1iYXNlZCBhZGRyZXNzCiAgICAgICBlbmNvZGluZ3MgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4gIE5vdGUgeW91IGNhbiBub3cgc2VuZCB0cmFwcy9pbmZvcm1zCiAgICAgICBvdmVyIGFueSBzdXBwb3J0ZWQgdHJhbnNwb3J0IHR5cGUgYnkgdXNpbmcgdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZSBhbmQKICAgICAgIGEgdHJhbnNwb3J0OmFkZHJlc3MgdHlwZSBzcGVjaWZpY2F0aW9uLgogICAKMjAwMS0xMS0yMyAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gY3JlYXRlIGFwcHJvcHJpYXRlbHktZW5jb2RlZCBsb2NhbCBvciByZW1vdGUgZW5kcG9pbnQgYWRkcmVzc2VzIGF0CiAgICAgICB0cmFuc3BvcnQgb3BlbiB0aW1lLgogICAKMjAwMS0xMS0yMyAwNjo1MCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIHVwZGF0ZSBkZXBlbmRlbmNpZXMgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMjIgMDk6MDggIGpicG4KCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoICwgZXZhbF90b29scy5zaCAsCiAgIHRlc3RzL1QwMDFzbm1wdjFnZXQgLCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCAsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsICwgdGVzdHMvVDAxNHNubXB2MmNnZXQgLAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQgLCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwgLAogICB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsICwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAogICAsIHRlc3RzL1QwMjBzbm1wdjNnZXQgLCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCAsCiAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUgLCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTICwKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEgLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTICwKICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwgLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uICwKICAgdGVzdHMvVDA0OXNubXB2M2luZm9ybSAsIHRlc3RzL1QwNTBzbm1wdjN0cmFwICwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwICwgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0gLAogICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwKICAgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwgdGVzdHMvVDEwMGFnZW50aHVwICwKICAgdGVzdHMvVDExMGFnZW50eGdldCAsIHRlc3RzL1QxMTFhZ2VudHhzZXQgLAogICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCAsIHRlc3RzL1QxMTNhZ2VudHh0cmFwICwKICAgdGVzdHMvVDEyMHByb3h5Z2V0ICwgdGVzdHMvVDEyMXByb3h5c2V0ICwKICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgICAgLSB1c2UgdWRwOjxob3N0bmFtZT46PHBvcnQ+IGluc3RlYWQgb2YgLXAgdG8gbWFrZSB0ZXN0cyB3b3JrIGFnYWluCiAgIAoyMDAxLTExLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jICwgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgbW9yayB3b3JlIG9uIHRoZSBub3RpZmljYXRpb24gbG9nIG1pYi4gIEl0IG5vdyBzdXBwb3J0cyB2YXJpYWJsZQogICBzdG9yYWdlLCBidXQgc2VnZmF1bHRzIG9uIGFjY2VzcyBkdWUgdG8gcGR1IGNsb25pbmcgcHJvYmxlbXMgSSdtIG5vdAogICBnb2luZyB0byB3b3JrIG91dCByaWdodCBub3cuCiAgIAoyMDAxLTExLTIxIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHNubXB0cmFwZCBsaW5raW5nLgogICAKMjAwMS0xMS0yMSAyMjo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBPSURfTEVOR1RIOyB1c2UgYWN0dWFsIG9pZCB0eXBlIGluIGNhbGN1bGF0aW9uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYWRkIE5VTEwgcG9pbnRlciBmb3IgcmJ1aWxkIGluIHNlc3Npb24gY3JlYXRpb24uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBuZXRpbmV0L2luLmggbmVlZGVkLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB2YXJpYWJsZSBjbGVhbiB1cHMuCiAgIAoyMDAxLTExLTIxIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwgbG9jYWwvbWliMmMgLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiAsCiAgIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW4gLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaAogICAsIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc25tcC10Yy5oICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2FwaS5oICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5oICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oICwKICAgc25tcGxpYi90b29scy5jICwgc25tcGxpYi90b29scy5oICwgc25tcGxpYi92YWNtLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjI6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliLzogdmFjbS5oICwgYXNuMS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQzICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9hcnJheS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMwICByc3RvcnkKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jICwgZGF0YV9saXN0Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMTg6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCB2ZXJzaW9uLmggLCBhZ2VudC9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jCiAgICwgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsIGFnZW50L3Zhcl9zdHJ1Y3QuaAogICAsIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmggLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmggLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmggLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgKICAgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLCBhcHBzL01ha2VmaWxlLmluICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMDY6NDMgIGpicG4KCiAgICogY29uZmlnLmguaW46CgogICAgIC0gSVB2NiBjb25maWcgZGVmcwogICAKMjAwMS0xMS0yMSAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1leHRyYW5lb3VzICNpbmNsdWRlICJzbm1wQmxhaERvbWFpbi5oIiBsaW5lcwogICAKMjAwMS0xMS0yMSAwMzozOSAgamJwbgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTExLTIwIDA5OjM4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmg6CgogICAgIC0gZHVoLiAgRm9yZ290IGEgY291cGxlIG9mIHRoaW5ncyB0byBkbyB3aXRoIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQKICAgICAgIGFkZHJlc3MgcGFyc2luZy4KICAgCjIwMDEtMTEtMjAgMDk6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBuZXcgZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcgZm9yIGFnZW50IE5TQVBzCiAgIAoyMDAxLTExLTIwIDA5OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsIHNubXBUQ1BEb21haW4uaAogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVRFBEb21haW4uaCAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5oICwgc25tcF9hcGkuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTExLTIwIDA5OjE2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgTm90ZTogaW5jb21wbGV0ZSEKICAgCjIwMDEtMTEtMjAgMDg6MjkgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgYWdlbnRfaW5kZXguaDoKCiAgICAgLSB1bnJlZ2lzdGVyX3tzdHJpbmcsaW50LG9pZH1faW5kZXgoKSB1dGlsaXR5IGZ1bmN0aW9ucyBjb250cmlidXRlZAogICAgICAgYnkgRGFtaWFuIEdpbG11cnJheS4KICAgCjIwMDEtMTEtMjAgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmggKFY0LTItcGF0Y2hlcy4xKSwgc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YgU05NUF9NQVhfU0VDX05BTUVfU0laRSwgbm90ZWQgYnkKICAgICAgIEthcmwgTS4gSGVnYmxvb20uCiAgIAoyMDAxLTExLTE5IDE2OjU5ICBkcmllaHVpcwoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCB0eXBvIGluIGNvbW1lbnQgW2thcmxoZWdAbWljcm9zaGFycC5jb21dCiAgIAoyMDAxLTExLTE2IDA4OjM0ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgVW5zaWduZWQzMi9HYXVnZTMyIHR5cGVzCiAgIAoyMDAxLTExLTE1IDEwOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHByb3RvY29sLmMgKFY0LTItcGF0Y2hlcy41KSwgcHJvdG9jb2wuYzoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3RyYXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNjo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBsZXQgVkFDTSBjaGVja3Mgc3VjY2VlZCBmb3Igbm9uLUlQdjQgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0xNSAwNToxOSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCAsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE1IDA0OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgInNubXBkLmgiIChmb3IgI2RlZmluaXRpb24gb2YgTUFTVEVSX0FHRU5UKQogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgYWdlbnR4c29ja2V0IHZhbHVlIC0tIGRzX3NldF9zdHJpbmcgZG9lcyBpdCBmb3IgeW91CiAgICAgLSBjaGFuZ2UgZGVidWdnaW5nIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCByZXN0IG9mIG1vZHVsZQogICAKMjAwMS0xMS0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bNyw3XSksIGNvbmZpZy5oLmluCiAgICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGluaXQgZnVuY3Rpb24gY2hlY2tpbmcgaW4gbW9kdWxlcwogICAKMjAwMS0xMS0xNCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5jICwgYWdlbnR4X2NvbmZpZy5oCiAgICwgbWFzdGVyLmMgLCBtYXN0ZXIuaCAsIHN1YmFnZW50Lmg6CgogICBzbGlnaHRseSBtb2RpZmllZCBwYXRjaCBmcm9tIEhhcnJpZSB0byBtb3ZlIGFnZW50eCBjb25maWd1cmF0aW9uIGludG8KICAgYSBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmg6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaDoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpbGUgTkVULVNOTVAtQUdFTlQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAwNToyOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBxdWlldGVuIHNvbWUgbm9pc3kgbG9nZ2luZwogICAKMjAwMS0xMS0xMyAwNDoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gdXNlIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoZW4gYXBwcm9wcmlhdGUgaW4KICAgICAgIHVucmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCjIwMDEtMTEtMTMgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSByZXNldCB2ci0+bmFtZWxlbiB3aGVuIHdlJ3ZlIGZpbmlzaGVkIHdpdGggaXQKICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgZmlsZSBhbGxfaGVscGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTA4IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYmV0dGVyIGltcGxlbWVudGF0aW9uIG9mIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpLCB3aGljaCB1c2VzCiAgICAgICByYW5nZXMgcHJvcGVybHkgaW4gdGhlIGNhbGxiYWNrIChoZW5jZSBtdWNoIG1vcmUgZWZmaWNpZW50IGZvcgogICAgICAgQWdlbnRYKS4KICAgCjIwMDEtMTEtMDcgMDk6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1yZWR1bmRhbnQgYWdlbnR4X2J1aWxkIGZ1bmN0aW9ucwogICAKMjAwMS0xMS0wNyAwNjozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIG1hc3Rlcl9hZG1pbi5jICwKICAgcHJvdG9jb2wuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSgpIGluIGEgY291cGxlIG9mIHBsYWNlcyBmb3IgbW9yZSBjb21wcmVoZW5zaXZlCiAgICAgICBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKICAgICAtIHBhcnNlIHVucmVnaXN0ZXIgcmFuZ2VzIHByb3Blcmx5LCBhbmQgdXNlIHRoZSByYW5nZSBwcm9wZXJseSBmb3IKICAgICAgIHBhc3NpbmcgdG8gdW5yZWdpc3Rlcl9taWJfY29udGV4dCgpLgogICAKMjAwMS0xMS0wNyAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9kZWJ1Zy5jICwgc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR1NNU0dPSURSQU5HRSgpIG1hY3JvIGZvciBkZWJ1Z2dpbmcgT0lEIHJhbmdlcwogICAKMjAwMS0xMS0wNiAwNjowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSByZXNldCB0aGUgaW5jbHVzaXZlIGZsYWcgaW4gYSBjb3VwbGUgb2YgY2FzZXMsIHRvIHByZXZlbnQgc3B1cmlvdXMKICAgICAgIElOQ0xVU0lWRSBnZXROZXh0IGJlaGF2aW91cgogICAKMjAwMS0xMS0wNSAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBjb3JyZWN0IGJ1ZyBpbiByYW5nZV9zdWJpZCB0d2VhayBjb2RlCiAgIAoyMDAxLTExLTA1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY2FsY3VsYXRlIHVwcGVyIGJvdW5kIGZvciB0YWJsZSByb3cgcmVnaXN0cmF0aW9ucyBzbGlnaHRseSBkaWZmZXJlbnRseQogICAKMjAwMS0xMS0wMSAwOTozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHByb3RvY29sLmMgLAogICBwcm90b2NvbC5oICwgc3ViYWdlbnQuYzoKCiAgICAgLSBpbXBsZW1lbnQgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBhZ2VudHhfYnVpbGQoKSByb3V0aW5lcywKICAgICAgIGFuZCB1c2UgdGhlbS4KICAgCjIwMDEtMTEtMDEgMDk6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgICAtIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGJ1ZmZlciBidWlsZCBjYWxsYmFja3MgdmlhIG9wZW5fZXggY2FsbHMKICAgCjIwMDEtMTAtMzAgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMzAgMDM6MjQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdGhlIGluaXRpYWwgYnVmZmVyIHNpemUgMjA0OCBpbiBzbm1wX3Jlc2VuZF9yZXF1ZXN0IChhcyBpbgogICAgICAgX3Nlc3NfYXN5bmNfc2VuZCkgdG8gbWFrZSBzdWNjZXNzL2ZhaWwgYmVoYXZpb3VyIGZvciBBZ2VudFggbW9yZQogICAgICAgcHJlZGljdGFibGUgKHNpbmNlIEFnZW50WCBTVElMTCBkb2Vzbid0IHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMsCiAgICAgICBib28gaGlzcykuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS1hdXRvLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LXVzZXIuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGZpbGUgdGFibGVfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaDoKCiAgIGZpbGUgdGFibGVfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5Lmg6CgogICBmaWxlIG9pZF9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpbGUgb2lkX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjYgMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBmdW5jdGlvbiBuYW1lIGluIGVycm9yIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDY6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgLCBpbnRlcmZhY2VzLmg6CgogICAgICAtIGFkZCBzdXBwb3J0IGZvciByeCBhbmQgdHggZHJvcCBjb3VudHMgKGlmSW5EaXNjYXJkcyBhbmQKICAgICAgICBpZk91dERpc2NhcmRzKSBmb3IgTGludXggKDIuMispCiAgIAoyMDAxLTEwLTI2IDA1OjU3ICBqYnBuCgogICAqIGFjbG9jYWwubTQ6CgogICAgIC0gYWRkIGlmX2lxZHJvcHMgbWVtYmVyIHRvIHN0cnVjdCBpZm5ldAogICAKMjAwMS0xMC0yNiAwNDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gYWRkIHRyYW5zbGF0aW9uIGZvciBhdG0oMzcpIHR5cGUgaW50ZXJmYWNlcyBmb3IgTGludXgKICAgCjIwMDEtMTAtMjYgMDM6NDMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjQpLAogICBzeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA4OjQzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jICwgc3lzdGVtX21pYi5oOgoKICAgICAtIGltcGxlbWVudCBwZXJzaXN0ZW5jZSBmb3Igc3lzTG9jYXRpb24uMCwgc3lzQ29udGFjdC4wIGFuZCBzeXNOYW1lLjAKICAgCiAgICAgLSBwcmVzZW5jZSBvZiBhIHN5c2xvY2F0aW9uIHRva2VuIGluIHNubXBkLmNvbmYgbWFrZXMgc3lzTG9jYXRpb24uMAogICAgICAgbm9uLXdyaXRhYmxlIChyZXR1cm5zIG5vdFdyaXRhYmxlIG9uIFNFVCBhdHRlbXB0cykKICAgCjIwMDEtMTAtMjQgMDU6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3aW5zdC5jIChWNC0yLXBhdGNoZXMuMiksIGhyX3N3aW5zdC5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMjQgMDM6MzggIGpicG4KCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhdXRvY29uZiBzdXBwb3J0IGZvciBkZXRlY3RpbmcgcGtnaW5mbyBpbnRlcmZhY2UgaW4gbGliYWRtLiAgVGhhbmtzCiAgICAgICB0byBTdGVmYW4gUmFkbWFuIChwYXRjaCAjNDczNjY5KS4KICAgCjIwMDEtMTAtMjEgMDc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpbGUgbWliMmMuaXRlcmF0ZS5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgZmlsZSBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4yKSwgRkFROgoKICAgTWVudGlvbiB0aGUgTVJURyB0dXRvcmlhbCB3ZWIgcGFnZXMKICAgICAoYXMgc3VnZ2VzdGVkIGJ5IENocmlzdGlhbiBSb2JvdHRvbSBSZWlzKQogICAKMjAwMS0xMC0xNSAwNjo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHplcm8gc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlcy4gIEhvcGVmdWxseSBmaXhlcyBwcm9ibGVtcyBvbiBOZXRCU0QKICAgICAgIG5vdGVkIGJ5IEpvYWtpbSBBbHRoaW5pIChyZWxhdGVkIHRvIHNhX2xlbiBtZW1iZXIgcHJvYmFibHk/PykuCiAgIAoyMDAxLTEwLTExIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9wcHNlcy4KICAgCjIwMDEtMTAtMTEgMTQ6MTUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiAsIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMyAsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiAsIG1hbi9zbm1wX2Vycm9yLjMgLAogICBtYW4vc25tcF9wZXJyb3IuMyAsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMgLAogICBtYW4vc25tcGNtZC4xICwgbWFuL3NubXBkLjEuZGVmICwgbWFuL3NubXBkLmNvbmYuNS5kZWYKICAgLCBtYW4vc25tcHNldC4xICwgbWFuL3NubXB0cmFuc2xhdGUuMSAsCiAgIG1hbi9zbm1wdHJhcGQuOCAsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiAsCiAgIG1hbi9zbm1wd2Fsay4xICwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQgLAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCAsIG1pYnMvTWFrZWZpbGUubWliICwKICAgbWlicy9SRUFETUUubWlicyAsIG1pYnMvU01VWC1NSUIudHh0ICwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwgbWlicy9taWJmZXRjaCAsIG1pYnMvcmZjbGlzdAogICAsIG1pYnMvc21pc3RyaXAgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9pbnQ2NC5jICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmggLCBzbm1wbGliL210X3N1cHBvcnQuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5oICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9zY2FwaS5jICwgc25tcGxpYi9zY2FwaS5oICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2F1dGguYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYwogICAsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCAsIHRlc3RpbmcvTWFrZWZpbGUuaW4KICAgLCB3aW4zMi9jb25maWcuaCAsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTExIDE0OjAxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HICwgQ2hhbmdlTG9nICwgRkFRICwgTWFrZWZpbGUuaW4gLAogICBORVdTICwgUkVBRE1FICwgYWNjb25maWcuaCAsIGFjbG9jYWwubTQgLAogICBjb25maWcuZ3Vlc3MgLCBjb25maWcuaC5pbiAsIGNvbmZpZy5zdWIgLAogICBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBsdGNvbmZpZyAsIGx0bWFpbi5zaAogICAsIG1ha2VmaWxlaW5kZXBlbmQucGwgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmgKICAgLCBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF90cmFwLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAogICAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLCBhcHBzL01ha2VmaWxlLmluCiAgICwgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMgLAogICBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcGdldG5leHQuYyAsIGFwcHMvc25tcHNldC5jCiAgICwgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jICwKICAgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXB0cmFwLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KICAgLCBsb2NhbC9taWIyYy5jb25mICwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiAsCiAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QgLCBsb2NhbC90a21pYjoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMDkgMDc6MTQgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgU29tZXRpbWVzIHdlIGZlZWwgbGlrZSBhIC1udXQKICAgCjIwMDEtMTAtMDkgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBwcm9wZXJseSBhY2NvdW50IGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBzdWZmaXggaW4gdGhlIHZhcmlhYmxlCiAgICAgICB0YWJsZSBpbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCjIwMDEtMTAtMDggMDg6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIGRlY2xhcmUgdmVyc2lvbl9zeXNvaWRfbGVuIGFzIGV4dGVybiBJTlQgbm90IGV4dGVybiBvaWQsIHNvIGFzIHRvCiAgICAgICBtYXRjaCBpdHMgYWN0dWFsIGRlZmluaXRpb24gaW4gc3l0ZW1fbWliLmMuICBUaGlzIGNhdXNlZCBhbGwga2luZHMgb2YKICAgICAgIGZ1biAmIGdhbWVzIG9uIExpbnV4IG9uIGEgQWxwaGEuCiAgIAoyMDAxLTEwLTA0IDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jICwgY2FsbGJhY2suaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gc25tcF9jYWxsYmFja19saXN0KCkgdG8gcmV0dXJuIGxpc3Qgb2YgY2FsbGJhY2tzIGZvciBhCiAgICAgICBnaXZlbiA8bWFqb3IsIG1pbm9yPiBwYWlyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIGZpbGUgcGFzc19wZXJzaXN0dGVzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTEwLTAzIDA1OjQyICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMyAwMzoxMSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGRvIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lEIGNhbGxiYWNrcyBpbgogICAgICAgdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKSAtLSBjYWxsZWQgd2hlbiBBZ2VudFggc3ViYWdlbnRzCiAgICAgICBkaXNhcHBlYXIuCiAgIAoyMDAxLTEwLTAyIDA2OjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvbid0IHNlbmQgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgQVNOX1BSSVZfRVhDTF9SQU5HRSBvbi10aGUtd2lyZQogICAKMjAwMS0wOS0yNiAwODowMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGFsbG93IHNwbGl0X3N1YnRyZWUoKSB0byBkbyBhIHNwbGl0IGluIHRoZSBtaWRkbGUgb2YgYSBjb2x1bW4sCiAgICAgICBrZWVwaW5nIHRoZSByZWxldmFudCB2YXJpYWJsZSBpbiBib3RoIHRoZSBvbGQgdHJlZSBhbmQgdGhlIG5ldwogICAgICAgdHJlZSAoYXJpc2VzIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcGF0Y2ggZnJvbSBEYW1pYW4gR2lsbXVycmF5IGZvciByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2gKICAgICAgIGFsbG93cyBpdCB0byBjb3BlIHdpdGggbm9uLXplcm8gbGVuZ3RoIHZhcmlhYmxlcyBhbmQgYWxzbwogICAgICAgbm9uLWNvbnRpZ3VvdXMgT0lEcyBmb3IgYWRqYWNlbnQgY29sdW1ucy4KICAgCiAgICAgLSByZXdyaXR0ZW4gZHVtcF9yZWdpc3RyeSgpIHRoYXQgdXNlcyByZWFsbG9jYXRpbmcgcHJpbnQgZnVuY3Rpb25zCiAgICAgICBhbmQgYWxzbyBwcmludHMgb3V0IHZhcmlhYmxlIGxpc3RzLgogICAKMjAwMS0wOS0yNiAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IG9mIHN1YnRyZWUgbmFtZSBiZWluZyBsb25nZXIgdGhhbgogICAgICAgcmVxdWVzdGVkIG5hbWUgd2hlbiBjYWxjdWxhdGluZyB0aGUgc3VmZml4IGZvciB2YXJpYWJsZSBtYXRjaGluZy4KICAgCiAgICAgLSBiZSBzdHJpY3QgYWJvdXQgc3VidHJlZSBjaHVua3MgYmVpbmcgaW5jbHVzaXZlIG9mIHRoZSBzdGFydCBPSUQKICAgICAgIGFuZCBleGNsdXNpdmUgb2YgdGhlIGVuZCBPSUQgKHNob3dzIHVwIGJpZyB0aW1lIGluIEFnZW50WCkuCiAgIAoyMDAxLTA5LTI2IDA3OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGRvbid0IGRvIGdldE5leHQgcmVxdWVzdHMgb24gZXhjbHVzaXZlIHNlYXJjaFJhbmdlcyB0aGF0IGJlZ2luIGluCiAgICAgICBhIHRyZWUgbWFya2VkIGFzIGEgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlICh0aGV5IGFyZSBkb29tZWQgdG8KICAgICAgIGZhaWwpLiAgU2tpcCB0byB0aGUgbmV4dCBwYXJ0IG9mIHRoZSB0cmVlIHN0cmFpZ2h0IGF3YXkuCiAgIAoyMDAxLTA5LTI2IDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBicmluZyBkZWJ1Z2dpbmcgdG9rZW5zIGludG8gbGluZSB3aXRoIHJlc3Qgb2YgQWdlbnRYIGNvZGUKICAgCjIwMDEtMDktMjUgMDg6MTUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZSBjaGFyYWN0ZXIKICAgCjIwMDEtMDktMjUgMDM6NTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGNhc3QKICAgCjIwMDEtMDktMjUgMDM6NDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBmaXggcG9zc2libGUgaW5mZWxpY2l0eSB3aGVuIHByaW50aW5nIGFuZCBzeXNsb2dnaW5nIChub3Qgc3VyZSB0aGlzIGlzCiAgICAgICBhY3R1YWxseSBwb3NzaWJsZSBidXQpCiAgIAoyMDAxLTA5LTI1IDAzOjA5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gaW50ZWdyYXRlIHNvbWUgY2hhbmdlcyBmcm9tIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoOiBIYXJyaWUncwogICAgICAgcHJvdG90eXBlcyBhbmQgV2VzJ3MgZml4IGZvciBidWcgICM0NjMyMjYuCiAgIAoyMDAxLTA5LTI1IDAzOjAxICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGZpeCBzaWduZWRuZXNzIG9mIHRpbWUgc3R1ZmYKICAgCjIwMDEtMDktMjUgMDI6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jICwgc25tcF9sb2dnaW5nLmg6CgogICAgIC0gbWFrZSBhcmd1bWVudCBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQgY29uc3QKICAgCiAgICAgLSBkb24ndCBzdHJkdXAgREVGQVVMVF9MT0dfSUQgaWYgYSBOVUxMIGFyZyBpcyBnaXZlbgogICAKMjAwMS0wOS0yNCAwOTozOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGluIHNubXB0cmFwZF9sb2cuYyB3aGljaAogICAgICAgYXZvaWQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAogICAgIC0gZml4IGJ1ZyBub3RlZCBpbiBzdXBwb3J0IHJlcXVlc3QgIzQ1NjY0NiAoY3VzdG9tIHRyYXAgZm9ybWF0IHdhcwogICAgICAgYmVpbmcgaWdub3JlZCBmb3IgdjIgdHJhcHMgYW5kIGluZm9ybXMpLiAgVGhhbmtzIHRvCiAgICAgICBHLlByaW5jaXBhdG9AbW90b3JvbGEuY29tIGZvciBzcG90dGluZyB0aGlzIG9uZS4KICAgCiAgICAgLSBjb3JyZWN0IHVzYWdlIGZvciAtUCBvcHRpb24gdG8gcmVmbGVjdCB0aGF0IGl0IGNhdXNlcyBvdXRwdXQgb24KICAgICAgIHN0ZGVyciBub3Qgc3Rkb3V0LgogICAKMjAwMS0wOS0yNCAwOTozNiAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2xvZy5jICwgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIHJld3JpdGUgb2Ygb3V0cHV0IGZ1bmN0aW9ucyB0byBhdm9pZCB1c2Ugb2YgZml4ZWQtbGVuZ3RoIGJ1ZmZlcnMKICAgCjIwMDEtMDktMjAgMTM6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgbmV3IGxvZ21hdGNoIG1pYiBmcm9tIFN0ZXBoYW4gV2VuemVsLgogICAKMjAwMS0wOS0xNSAwODo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBvdmVycmlkZSBleGNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dCBvcGVyYXRpb25zIHdoZW4gcmV0cnlpbmcKICAgICAgIG9wZXJhdGlvbnMKICAgCjIwMDEtMDktMTUgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICAgIC0gaW1wcm92ZWQgc3VwcG9ydCBmb3IgQWdlbnRYLXN0eWxlIGluY2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0CiAgIAoyMDAxLTA5LTE0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHBhdGNoICM0NDMxMTUgZnJvbSBZaW1pbiBHZTogZGlza2lvIHN1cHBvcnQgZm9yIGZyZWVic2Q0CiAgIAoyMDAxLTA5LTE0IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICBQYXRjaCAjNDQwMzIwIGZyb20gTWFyayBGZXJsYXR0ZToKICAgCiAgIDEpIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gdGhlIHNubXBfbG9nZ2luZyBBUEkKICAgICAgKHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChjaGFyICppZGVudCkpCiAgIAogICAyKSBQb3J0cyBzbm1wdHJhcGQgdG8gdXNlIHRoZSBleGlzdGluZyBzbm1wX2xvZ2dpbmcgQVBJIGluc3RlYWQgb2YKICAgICAgdXNpbmcgc3lzbG9nIGRpcmVjdGx5LgogICAKICAgMykgUG9ydHMgc25tcF9sb2dnaW5nLltjaF0gdG8gdXNlIHRoZSBXaW4zMiBFdmVudCBMb2cgd2hlbiBjb21waWxlZCBvbgogICAgICBXaW4zMi4gSSBkaWRuJ3QgdXBkYXRlIHRoZSBWaXN1YWwgQyBwcm9qZWN0IGZpbGVzLCBiZWNhdXNlIEkgb25seQogICAgICBoYXZlIGFjY2VzcyB0byBhIG5ld2VyIHZlcnNpb24gb2YgVkMsIGFuZCBJIGRpZG4ndCBrbm93IGlmIHlvdQogICAgICB3YW50ZWQgdGhlbSB1cGRhdGVkLiBUaGUgYWR2YXBpMzIgbGlicmFyeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUKICAgICAgcHJvamVjdCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIG9uIFdpbjMyICh0aGF0J3Mgd2hlcmUgdGhlIGV2ZW50CiAgICAgIGxvZyBBUEkgaXMpLgogICAKMjAwMS0wOS0xNCAxNDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmU6CgogICBJLCB1aCwgY291Z2gsIHVoIGZvcmdvdCB0byBydW4gYXV0b2NvbmYvYXV0b2hlYWRlci4gIERhdmU6IGRvbid0IGtpbGwgbWUuCiAgIAoyMDAxLTA5LTE0IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIFBhdGNoICM0Mjg4ODQ6IEFkZCAtUFIgbGlrZSBvcHRpb24gdG8gcGVybCBtb2R1bGUgKGZyb20gSm9lIENsYXJrZSkuCiAgIAoyMDAxLTA5LTE0IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oCiAgICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oCiAgICwgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvYXNuMS5oOgoKICAgQXBwbGllZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzQyNzM0MyBmcm9tIEhhcnJpZToKICAgICBtYWtlIGVudGVycHJpc2UgSUQgcmVsb2NhdGFibGUgd2hlcmUgbGVnYWwgdG8gZG8gc28KICAgCjIwMDEtMDktMTQgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4gLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDEyOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfdXRpbHMuYyAsIGhyX3V0aWxzLmg6CgogICByZW1vdmVkLiAgRnVuY3Rpb25hbGl0eSBtb3ZlZCB0byBzbm1wbGliL3NubXAtdGMuW2NoXQogICAKMjAwMS0wOS0xNCAxMjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAtdGMuaDoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgZmlsZSBjb25maWcuaC5ib3JsYW5kIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDktMTQgMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwKICAgbWFzdGVyX3JlcXVlc3QuaDoKCiAgICAgLSB1c2UgaW5jbHVzaXZlIHNlYXJjaCByYW5nZSBvbmx5IHdoZW4gYXBwcm9wcmlhdGUgZm9yIGdldE5leHQKICAgICAgIHF1ZXJpZXMKICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0wNiAwNzo0MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jOgoKICAgICAtIGlmIGluY2x1ZGUgYml0IGlzIHNldCBpbiBhbiBBZ2VudFggU2VhcmNoUmFuZ2UgKGhlbmNlIHR5cGUgb2YgdmFyYmluZAogICAgICAgaXMgQVNOX1BSSVZfSU5DTF9SQU5HRSksIHRyeSBhbiBleGFjdCBxdWVyeSBmaXJzdCBiZWNhdXNlIGFuIG9iamVjdAogICAgICAgd2hvc2UgbmFtZSBpcyBsZXhpLWVxdWFsIGlzIGEgdmFsaWQgcmVzcG9uc2U7IGlmIGV4YWN0IHF1ZXJ5IGZhaWxzCiAgICAgICB0aGVuIGZhbGwgYmFjayB0byBhbiBpbmV4YWN0IHF1ZXJ5LgogICAKMjAwMS0wOS0wNiAwNzozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLAogICBwcm90b2NvbC5jICwgc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCB1c2VkIElOQ0wvRVhDTCB3cm9uZyB3YXkgcm91bmQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCiAgIAogICAgIC0gYmV0dGVyIHRlc3QgZm9yIHNjb3BpbmcgcmVxdWlyZW1lbnRzIGluIHN1YmFnZW50CiAgIAoyMDAxLTA5LTA0IDA3OjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTI4IDAzOjA0ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5oOgoKICAgZmlsZSBkYXRhX2xpc3QuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBmaWxlIGRhdGFfbGlzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTIyIDA4OjQ1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIGNoZWNraW5nIHRoYXQgcmVzdWx0cyB0byBiZSByZXR1cm5lZCB0byBtYXN0ZXIgYWdlbnQgYXJlIGluCiAgICAgICByZXF1ZXN0ZWQgc2NvcGUgKGlmIGFueSkgKGdldEJ1bGsgbm90IHlldCBkb25lKQogICAKMjAwMS0wOC0xNSAwOTozMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgaW4gZGVidWdtc2dfb2lkIHRvIHByaW50IGxvbmcgT0lEcy4KICAgCjIwMDEtMDgtMTUgMDg6MzcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHRoZSB2YWx1ZSBvZiBzbm1wSW5CYWRDb21tdW5pdHlVc2VzIHdoZW4gYXR0ZW1wdGluZyBhbgogICAgICAgb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIGdpdmVuIGNvbW11bml0eSwgcGVyIFJGQyAxOTA3LgogICAKMjAwMS0wOC0xNSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gd2hlbiB0cmFuc2xhdGluZyB0aGUgdjIrIGVycm9yLXN0YXR1cyB2YWx1ZSBhdXRob3JpemF0aW9uRXJyb3IKICAgICAgIGludG8gbm9TdWNoTmFtZSBmb3IgYSB2MSBzZXNzaW9uLCBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mCiAgICAgICBzbm1wSW5CYWRDb21tdW5pdHlVc2VzLCBwZXIgUkZDIDI1NzYuCiAgIAoyMDAxLTA4LTE0IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBpbiBzbm1wX3NldF92YXJfb2JqaWQoKSwgdHJ5IHRvIGRldGVjdCBhIHByZXZpb3VzbHktbWFsbG9jKCllZAogICAgICAgYnVmZmVyIGZvciB0aGUgdmFyaWFibGUgbmFtZSwgYW5kIGZyZWUoKSBpdCwgdG8gYXZvaWQgbWVtb3J5CiAgIGxlYWtzLgogICAKMjAwMS0wOC0xMyAwMzo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB1c2UgV2luMzIgY2FsbHMgdG8gY2hhbmdlIGJsb2NraW5nIHN0YXRlIG9mIHNvY2tldHMgaWYKICAgICAgIGFwcHJvcHJpYXRlLiAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMTMgMDM6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYW4gU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbiBpZgogICAgICAgd2UgZ2V0IGFuIGVycm9yIG9uIGEgc3RyZWFtIHJlY2VpdmUsIGFzIHdlbGwgYXMgaWYgaXQgaXMgY2xvc2VkIGluCiAgICAgICBhbiBvcmRlcmx5IGZhc2hpb24uICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIG9uIFdpbjMyIGlucGFydGljdWxhci4KICAgICAgIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oOgoKICAgZmlsZSB0YWJsZV9kYXRhLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZmlsZSB0YWJsZV9kYXRhLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfYXBpX2VycnN0cmluZy4zOgoKICAgZmlsZSBzbm1wX2FwaV9lcnJzdHJpbmcuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfc2Vzc19wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9zZXNzX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9lcnJvci4zOgoKICAgZmlsZSBzbm1wX2Vycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNiAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTMwIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG1vdmUgc25tcF9zb2NrZXRfbGVuZ3RoIGZ1bmN0aW9uIHRvIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgICBmcm9tIHNubXBfYXBpLmMgLS0gdGhpcyBpcyB0aGUgb25seSByZW1haW5pbmcgcGxhY2UgdGhhdCB1c2VzIHRoaXMKICAgICAgIGZ1bmN0aW9uLCB3aGljaCBjZXJ0YWlubHkgZG9lc24ndCBiZWxvbmcgaW4gc25tcF9hcGkuYyBhZnRlciB0aGUKICAgICAgIHRyYW5zcG9ydCBhYnN0cmFjdGlvbiBtYWxhcmtleS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSB0cnkgdG8gcmV0dXJuIGludmFsaWQoMikgZm9yIHRoZSBpcFJvdXRlVHlwZSBjb2x1bW4gaWYgdGhlIHJvdXRlCiAgICAgICBpcyBub3QgdXAuICBTZWUgYnVnICM0MjY3MTAsIHJlcG9ydGVkIGJ5IHBqd2ViZXIuCiAgIAoyMDAxLTA3LTI3IDA3OjMyICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gc2V0IGRlZmF1bHRBdXRoVHlwZSB0byB1c21ITUFDU0hBMUF1dGhQcm90b2NvbCBpZiBTSEEgc3BlY2lmaWVkCiAgICAgICAod2FzIHNldCB0byB1c21ITUFDTUQ1QXV0aFByb3RvY29sIGluIHRoaXMgY2FzZSkuICBTcG90dGVkIGJ5CiAgICAgICBXaWxsaWFtIEtlbm5lbWVyIChidWcgIzQ0NDg2MCkKICAgCjIwMDEtMDctMjcgMDY6NTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gY2hhbmdlIHRvIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UgT05MWSB0byBzZW5kIE5FV0xZIGRlbGVnYXRlZAogICAgICAgcmVxdWVzdHMgYWZ0ZXIgcHJvY2Vzc2luZyBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuICBUaGlzIGlzIGFjaGlldmVkCiAgICAgICBieSBzYXZpbmcgdGhlIHZhbHVlIG9mIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgYW5kIHRlbXBvcmFyaWx5CiAgICAgICBzZXR0aW5nIGl0IHRvIE5VTEwuICBBZnRlciBwcm9jZXNzaW5nIGFsbCB2YXJiaW5kcyBpbiB0aGUKICAgICAgIHJlc3BvbnNlLCB0aGVyZWZvcmUsIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgY29udGFpbnMgb25seSBuZXdseQogICAgICAgZGVsZWdhdGVkIHJlcXVlc3RzLCBpZiBhbnkuICBBZnRlciBzZW5kaW5nIHRoZXNlLCB0aGUgbmV3IHJlcXVlc3RzCiAgICAgICBhcmUgbWVyZ2VkIHdpdGggdGhlIHNhdmVkIHF1ZXVlLgogICAKICAgICAgIFRoaXMgZml4ZXMgYSBidWcgdGhhdCBhcmlzZXMgaWYgeW91IHJlcXVlc3QgdmFyaWFibGVzIGZyb20gdHdvIG9yCiAgICAgICBtb3JlIHNlcGFyYXRlIHN1YmFnZW50cyBzaW11bHRhbmVvdXNseS4gIFdoYXQgdXNlZCB0byBoYXBwZW4gaXMKICAgICAgIHRoYXQsIHVwb24gcmVjZWl2aW5nIHRoZSBmaXJzdCByZXNwb25zZSwgdGhlIG1hc3RlciBhZ2VudCB3b3VsZAogICAgICAgbm90aWNlIHRoYXQgaXQgaGFkIGFuIG91dHN0YW5kaW5nIHJlcXVlc3QsIGFuZCByZXRyYW5zbWl0IGl0LgogICAgICAgVGhlbiB0aGUgc2Vjb25kIHJlc3BvbnNlIGFycml2ZXMsIGFuZCB0aGUgbWFzdGVyIGFnZW50IHNlbmRzIHRoZQogICAgICAgcmVwbHkgdG8gdGhlIChTTk1QKSByZXF1ZXN0ZXIgYW5kIGZyZWVzIHRoZSByZXF1ZXN0cyAoaW5jbHVkaW5nCiAgICAgICBjYWxsYmFjayBkYXRhKS4gIEZpbmFsbHksIGFub3RoZXIgQWdlbnRYIHJlc3BvbnNlICh0byB0aGUKICAgICAgIGVycm9uZW91c2x5IHRyYW5zbWl0dGVkIHJlcXVlc3QpIGFycml2ZXMgYW5kIHRoZSBjYWxsYmFjayBpcwogICAgICAgY2FsbGVkIHJlZmVyZW5jaW5nIGRlYWxsb2NhdGVkIG1lbW9yeSwgd2hpY2ggY2F1c2VzIGEgc2VnZmF1bHQuCiAgIAoyMDAxLTA3LTI2IDA3OjI4ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoTkVXLUxJQlJBUlktQVBJLjQpLCBzbm1wX2FwaS5jOgoKICAgQWRkaW5nIGEgJ2RvdWJsZSctdmFsdWVkIHZhcmJpbmQgaXNuJ3QgaW5oZXJlbnRseSBhbiBpbnRlcm5hbCBlcnJvciEKICAgCjIwMDEtMDctMjUgMDU6NDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkaXNhYmxlIHN0ZGVyciBsb2dnaW5nIChpZiByZXF1ZXN0ZWQpIGJlZm9yZSBjYWxsaW5nIGluaXRfbWliX21vZHVsZXMoKS4KICAgICAgIFRoaXMgc2hvdWxkIGZpeCB0aGUgcHJvYmxlbSBub3RlZCBieSBOaWdlbCBNZXRoZXJpbmdoYW0gaW4gYnVnICM0MTg4NTcKICAgICAgIHdoZXJlYnkgdGhlIEFnZW50WCBtYXN0ZXIgbW9kdWxlIHByaW50cyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdoaWNoIGNhdXNlcwogICAgICAgYSBTSUdQSVBFIHdoZW4gdGhlIGFnZW50IGlzIHN0YXJ0ZWQgYXMgYSBkYWVtb24uCiAgIAoyMDAxLTA3LTI1IDAyOjE4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGluaXRpYWxpc2UgYnVmZmVycyB0byB6ZXJvIGluIGhhbmRsZV93cmFwX2ZtdCwgdG8gYXZvaWQgZ2FyYmFnZSBpbgogICAgICAgZGlzcGxheSBvZiBzZWN1cml0eSBwYXJhbWV0ZXJzLCBhcyBub3RlZCBieSBXaWxsaWFtIEZyYXVlbmhvZmVyCiAgICAgICAoYnVnICM0MzcyMzEpLgogICAKICAgICAtIGFkZCBjbG9zaW5nIHBhcmVudGhlc2lzIGFmdGVyICh2aWEgPGFkZHJlc3M+IGluIGZvcm1hdF9wbGFpbl90cmFwCiAgIAoyMDAxLTA3LTIzIDA3OjUzICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSByZW1vdmUgZXhjZXNzaXZlIGRlYnVnZ2luZyBmcm9tIHNubXBfKHJlKWFsbG9jIGZ1bmN0aW9ucwogICAKMjAwMS0wNy0yMyAwNDozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGRlYnVnZ2luZyBvdXRwdXQgdG8gcHJpbnQgbG9zaW5nIHBhdGggY29ycmVjdGx5IHdoZW4KICAgICAgIGEgcmVtb3RlIGNvbm5lY3QgZmFpbHMuCiAgIAoyMDAxLTA3LTE3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHVwZGF0ZSBmb3IgbmFtaW5nIGNvbnZlbnRpb25zIGFuZCBmb3Igc3RydWN0dXJlIGRlZmluaXRpb25zLgogICAKMjAwMS0wNy0xNyAwOTowNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBpbml0aWFsIGNvZGluZyBzdHlsZSBndWlkZWxpbmUgZG9jdW1lbnQuCiAgIAoyMDAxLTA3LTE3IDA5OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlbWVtYmVyIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24ob3VyLXNlc3Npb24td2l0aC1tYXN0ZXItYWdlbnQpCiAgICAgICBpZiB0aGUgbWFzdGVyIGFnZW50IHNlc3Npb24gZ29lcyBhd2F5LCBiZWNhdXNlIG90aGVyd2lzZSB5b3UKICAgICAgIG1heSBzdWJzZXF1ZW50bHkgdHJ5IHRvIHVzZSBpdCwgd2hpY2ggd2lsbCBwcm9iYWJseSBkdW1wIGNvcmUsCiAgICAgICBhbmQgaXMgY2VydGFpbmx5IGFuIGVycm9yLgogICAKICAgICAtIGFsc28gY2hhbmdlIHdoZW4gdHJhcCBzZXNzaW9uIGlzIHJlZ2lzdGVyZWQgdG8gYmVpbmcgaW1tZWRpYXRlbHkKICAgICAgIHRoZSBzZXNzaW9uIGlzIG9wZW5lZCBzbyB0cmFwcyBjYW4gYmUgc2VudCwgZS5nLiBmcm9tIHRoZQogICAgICAgSU5ERVhfU1RBUlQgY2FsbGJhY2sgKGZvciBleGFtcGxlIGxpbmtVcCB0cmFwcyBpbiBzdWJhZ2VudHMgdGhhdAogICAgICAgcmVnaXN0ZXIgYSByb3cgb2YgaWZUYWJsZSkuCiAgIAoyMDAxLTA3LTE3IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBjaGFuZ2UgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLCBzbyBhcyBub3QgdG8gY2xvc2UgYW4gU05NUAogICAgICAgc2Vzc2lvbiBzaW1wbHkgYmVjYXVzZSB3ZSBhcmUgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgdHJhcF9zaW5rCiAgICAgICBsaXN0LiAgVGhlIHJhdGlvbmFsZSBpcyB0aGF0IHRoZSBzZXNzaW9uIG1heSBzdGlsbCBiZSBpbiB1c2UgZm9yCiAgICAgICBvdGhlciBwdXJwb3Nlcywgb3IgKG1vcmUgdG8gdGhlIHBvaW50KSB5b3UgbWF5IGJlIGNhbGxpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gZnJvbSB0aGUgc2Vzc2lvbidzIGNhbGxiYWNrIChmcm9tIHdoZXJlIGNsb3NpbmcgdGhlCiAgICAgICBzZXNzaW9uIGlzbid0IGEgZ29vZCBpZGVhKS4KICAgCjIwMDEtMDctMTMgMDY6MDIgIGR0czEyCgogICAqIHNubXBsaWIvbmV0c25tcC5oOgoKICAgZmlsZSBuZXRzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmg6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMDI6MjEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gZml4IGZvciBidWcgIzQzOTA5NCwgcmVwb3J0ZWQgYnkgRXZlcnQtSmFuIHZhbiBUdWlqbCwgd2hlcmVieQogICAgICAgdGhlIEFnZW50WCBtYXN0ZXIgYWdlbnQgZXhwZWN0cyBhIHJlc3BvbnNlIHRvIGFuIGFnZW50eC1DbGVhbnVwU2V0LVBEVQogICAgICAgbWVzc2FnZSAoaW5jb3JyZWN0bHkpLiAgVGhpcyBvbmx5IHNob3dzIHVwIHdoZW4gdGVzdGluZyBhZ2FpbnN0IG90aGVyCiAgICAgICBzdWJhZ2VudHMgKGUuZy4gamF4KSBiZWNhdXNlIHRoZSBuZXQtc25tcCBzdWJhZ2VudCBzZW5kcyBhIHJlc3BvbnNlCiAgICAgICB0byB0aGUgYWdlbnR4LUNsZWFudXBTZXQtUERVIChpbmNvcnJlY3RseSkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGZpbGUgdmFjbV9jb250ZXh0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wNSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAsIGludGVyZmFjZXMuaDoKCiAgICAgLSBtYWtlIEludGVyZmFjZV9TY2FuX0dldF9Db3VudCBub24tc3RhdGljIGFzIGl0J3MgdmVyeSB1c2VmdWwKICAgCjIwMDEtMDctMDUgMDM6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZnJlZSB0aGUgY2FjaGVkIHNlY3VyaXR5IHBhcmFtZXRlcnMgd2hlbiB3ZSBoYXZlIGEgcGFyc2UgZXJyb3IKICAgICAgIG9uIGlucHV0LCBvdGhlcndpc2Ugd2UgbGVhayBtZW1vcnkgKHRyaWdnZXJlZCBieSBTQyAzLjAuMTMuezIsM30pLgogICAKMjAwMS0wNy0wNCAwOTo1MSAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNhdGNoIHNvbWUgbWFsZm9ybWVkIFNOTVB2MyBwYWNrZXRzCiAgIAoyMDAxLTA3LTA0IDA3OjQyICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJhZCBtaXN0YWtlIGluIHNubXB2M19zY29wZWRQRFVfaGVhZGVyX3JlYWxsb2NfcmJ1aWxkIHdoaWNoCiAgICAgICB3YXMgZW5jb2RpbmcgdGhlIHdyb25nIGxlbmd0aCBpbnRvIHRoZSBTY29wZWRQRFUgU0VRVUVOQ0UgaGVhZGVyCiAgICAgICAod2Fzbid0IGluY2x1ZGluZyBsZW5ndGggb2YgYWN0dWFsIGRhdGEsIGkuZS4gUERVISkuICBUb3RhbGx5IG15CiAgICAgICBmYXVsdCAtLSBpbnRyb2R1Y2VkIHdoZW4gY2hhbmdpbmcgb3ZlciB0byByZWFsbG9jYXRpbmcgYnVmZmVyCiAgICAgICB0eXBlIGZ1bmN0aW9ucy4gIEFtYXppbmcgdGhpcyBoYXNuJ3QgY2F1c2VkIGFsbCBzb3J0cyBvZiB0cm91YmxlCiAgICAgICBmb3IgcGVvcGxlIQogICAKMjAwMS0wNy0wMiAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgZmlsZSBzbm1wLXRjLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDIgMDk6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDEtMDctMDIgMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgICAtIGZpeCBiYWQgYmVoYXZpb3VyIGluIGhlYWRlcl9zaW1wbGVfdGFibGUgd2hlbiB0aGUgaW5kZXggaXMKICAgICAgIGVxdWFsIHRvIFVMT05HX01BWAogICAKMjAwMS0wNi0yOCAxMDowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNoYW5nZSBzZW5zZSBvZiBzbm1wX29pZF9jb21wYXJlKCkgcmVzdWx0IGNoZWNrIGluIHZhcl91c21Vc2VyCiAgICAgICB0byBkbyBsZXhpLW9yZGVyaW5nIGNvcnJlY3RseQogICAKMjAwMS0wNi0yOCAwNzoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY291bnQgbW9yZSB2MS92MmMgcGFyc2UgZXJyb3JzIChTQyAxLjEuMTIuMTApCiAgIAoyMDAxLTA2LTI4IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGVjayB0aGF0IHZlcnNpb24gZmllbGQgb2YgUERVIGlzIG9mIGludGVnZXIgdHlwZSByYXRoZXIgdGhhbiBqdXN0CiAgICAgICBhc3N1bWluZyBpdCBpcyAoU0MgMS4xLjEyLjIuMSkKICAgCjIwMDEtMDYtMjggMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHNubXBJbkJhZENvbW11bml0eU5hbWVzIHdoZW4gd2Ugc2VlIHVua25vd24gY29tbXVuaXR5CiAgICAgICBuYW1lcywgcGVyIFJGQzE5MDcKICAgCjIwMDEtMDYtMjcgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgbmV3IGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB0byBtYXJrIGFsbCBvdXIKICAgICAgIG5vZGVzIGFzIGRldGFjaGVkIHdoZW4gd2UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDYtMjcgMDg6MDcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBhZGQgYWRkaXRpb25hbCBmbGFnIHRvIHN1YnRyZWUgc3RydWN0dXJlIHRoYXQgc3ViYWdlbnRzIGNhbiB1c2UKICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byByZWdpc3RlciBhbmQgT0lECiAgICAgICB3aXRoIGEgbWFzdGVyIGFnZW50IGR1cmluZyBhIHNlc3Npb24ncyBsaWZldGltZS4gIFRoaXMgYWxsb3dzCiAgICAgICBtYW51YWwgcmUtcmVnaXN0cmF0aW9uIGFuZCBhdXRvbWF0aWMgcmUtcmVnaXN0cmF0aW9uIHRvIGJlIG1peGVkCiAgICAgICB3aXRoaW4gYSBzdWJhZ2VudCAocGVyaGFwcyBiZWNhdXNlIHlvdSBhcmUgZG9pbmcgaW5kZXggc3R1ZmYpLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgd2hpY2ggdW5zZXRzIHRoaXMgZmxhZyBmb3IKICAgICAgIGFsbCBrbm93biBub2RlcyAoc3ViYWdlbnQgd291bGQgdHlwaWNhbGx5IGNhbGwgdGhpcyBvbiBkaXNjb25uZWN0CiAgICAgICBpbmRpY2F0aW9uKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCiAgICAgLSBjb3JyZWN0IGJhZCByZWN1cnNpdmUgYmVoYXZpb3VyIGluIHJlZ2lzdGVyX21pYl9yZWF0dGFjaCgpIHdoaWNoCiAgICAgICB1c2VkIHRvIHRyeSB0byByZS1yZWdpc3RlciBOIG5vZGVzIE4hIHRpbWVzLiAgT25jZSB3aWxsIG5vcm1hbGx5CiAgICAgICBiZSBlbm91Z2guCiAgIAogICAgIC0gY2hhbmdlIHRvIGR1bXBfcmVnaXN0cnkoKSBmb3JtYXQgdG8gaW5jbHVkZSBoZXggZGlzcGxheSBvZgogICAgICAgZmxhZ3MgZmllbGQuCiAgIAoyMDAxLTA2LTI2IDA5OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBGaXggZXJyb3IgaW4gU05NUHYyIHRyYXAgZXhhbXBsZXMgIChJZGVudGlmaWVkIGJ5IERpd2FrYXIgU2hldHR5KS4KICAgCjIwMDEtMDYtMjYgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0ZWQgc2Vuc2Ugb2YgZHVtcF9yZWFsbG9jX29pZF90b19zdHJpbmcoKSByZXR1cm4gdmFsdWUKICAgICAgIGNoZWNrcywgYXMgc3BvdHRlZCBieSBSb2JlcnQgU3RvcnkuCiAgIAoyMDAxLTA2LTI1IDA2OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIGluIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UoKSB3aGVuIHJldHJ5aW5nIHVuZnVsZmlsbGVkCiAgICAgICByZXF1ZXN0czogY29udGludWUgZnJvbSB0aGUgInN0YXJ0IiBPSUQgb2YgdGhlIG5leHQgbm9kZSBvZiB0aGUKICAgICAgIHRyZWUsIG5vdCBmcm9tIHRoZSAibmFtZSIgT0lELCB3aGljaCBjYXVzZXMgbG9vcGluZy4KICAgCjIwMDEtMDYtMjEgMDk6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gaGFuZGxlICJob2xlcyIgaW4gcm93cyBvZiB0YWJsZXMgdGhhdCBhcmUgaGFuZGxlZCBieSBzdWJhZ2VudHMKICAgCiAgICAgICBTaW5jZSB0aGUgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlIGlzIHJlZ2lzdGVyZWQsIHdlIGludGVycHJldAogICAgICAgYSByZXR1cm4gb2Ygbm9TdWNoSW5zdGFuY2Ugd2hlbiBkb2luZyBhbiBpbmV4YWN0IHF1ZXJ5IGFzIG1lYW5pbmcKICAgICAgIHdlIHNob3VsZCByZXRyeSB0aGUgcXVlcnkuCiAgIAoyMDAxLTA2LTIxIDAyOjUwICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZm9yZ290IHRvIGNvbW1pdCBhdCB0aGUgc2FtZSB0aW1lIGFzIGxhc3QgbWliLmMgY29tbWl0OyB1cGRhdGVkCiAgICAgICBwcm90b3R5cGUgZm9yIHNwcmludF9yZWFsbG9jX2hpbnRlZF9pbnRlZ2VyCiAgIAoyMDAxLTA2LTIwIDA2OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIGNvdW50X2luZGV4ZXMgd2hpY2ggcmV0dXJucyB0aGUgbnVtYmVyIG9mIGluZGV4ZXMKICAgICAgIGFsbG9jYXRlZCBmb3IgYSBnaXZlbiBPSUQuICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZwogICAgICAgInJvdyBjb3VudCIgb2JqZWN0cywgZS5nLiBpZk51bWJlci4KICAgCjIwMDEtMDYtMjAgMDU6MzcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVEFSVCBhbmQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RPUAogICAgICAgY2FsbGJhY2tzIHdoaWNoIG1heSBiZSB1c2VkIHRvIG1hbmFnZSBpbmRleCBhbGxvY2F0aW9ucy4KICAgCiAgICAgICBNYXN0ZXIgYWdlbnQgc2hvdWxkIHByb2JhYmx5IGNhbGwgdGhlc2UgY2FsbGJhY2tzIHRvbywgYWx0aG91Z2gKICAgICAgIGl0J3MgYSBiaXQgb2YgYSBkZWdlbmVyYXRlIGNhc2UuCiAgIAoyMDAxLTA2LTE5IDA5OjQ0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gdXNlIGFuIGV4cGxpY2l0IGZpZWxlZCAiYWxsb2NhdGVkIiBpbiBzbm1wX2luZGV4IHN0cnVjdHVyZSB0bwogICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBjdXJyZW50bHkgYWxsb2NhdGVkLCByYXRoZXIKICAgICAgIHRoYW4gb3ZlcmxvYWRpbmcgYSBOVUxMIHNlc3Npb24gdG8gbWVhbiB0aGF0IGl0IGlzIG5vdC4KICAgCiAgICAgICBUaGlzIGFsbG93cyBzdGFydHVwIGNvZGUgaW4gYSBtYXN0ZXIgYWdlbnQgdG8gcHJlLXJlZ2lzdGVyIGluZGljZXMKICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIHNlc3Npb25zIG9wZW4uCiAgIAoyMDAxLTA2LTE5IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jICwgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSAga2VlcCB0aGUgdmFsdWUgb2YgTkVUV09SS19CWVRFX09SREVSIGZyb20gaC5mbGFncyBpbiB0aGUKICAgICAgICBhZ2VudHgtT3Blbi1QRFUgYW5kIHVzZSBpdCBmb3Igc3Vic2VxdWVudCBtYXN0ZXItaW5pdGlhdGVkCiAgICAgICAgQWdlbnRYIHByb3RvY29sIG9wZXJhdGlvbnMsIHBlciBSRkMgMjc0MSAoc2VjdGlvbiA3LjEuMSwKICAgICAgICBwYXJhZ3JhcGggNCkuCiAgIAogICAgICAgIEZvciBub3csIHdlIGFyZSBzdG9yaW5nIHRoaXMgaW4gdGhlIGZsYWdzIGZpZWxkIG9mIGEKICAgICAgICBzdWJzZXNzaW9uLiAgVGhpcyBpcyBsaWtlbHkgdG8gc3RvcCB3b3JraW5nIGlmIHRoZSBmbGFncwogICAgICAgIGRlZmluaXRpb25zIGNoYW5nZSAoaS5lLiBpdCdzIG5vdCBhIGdyZWF0IHNvbHV0aW9uKQogICAKICAgICAtICBUaGFua3MgdG8gUGV0ZXIgS29yc3RlbiAoc2V2ZXJpdHlvbmUgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0KQogICAgICAgIGZvciBpZGVudGlmeWluZyB0aGlzIGJ1ZywgYW5kIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzIGZpeC4KICAgCjIwMDEtMDYtMTkgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSByZWluc3RhdGUgc3BhY2UgYmV0d2VlbiBudW1iZXJzIGFuZCB1bml0cy4KICAgCiAgICAgLSByZXNwZWN0IERJU1BMQVktSElOVHMgZm9yIFVuc2lnbmVkMzIsIEdhdWdlLCBHYXVnZTMyIHR5cGVzLgogICAKMjAwMS0wNi0xMyAwMzoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gZGVidWdnaW5nIHRvIHJlZHVjZSAibm9pc2UgbGV2ZWwiIGZyb20gUHVyaWZ5CiAgIAoyMDAxLTA2LTEyIDEwOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGV0aXRpb25zIGZpZWxkIHZhbHVlcyBvZiA8IDAgKGJ5CiAgICAgICBzZXR0aW5nIHRoZW0gdG8gMCwgcGVyIFJGQyAxOTA1KQogICAKMjAwMS0wNi0xMiAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IGJ1ZyB0aGF0IGNhdXNlZCBhIG51bGwgcG9pbnRlciB0byBiZSBmb2xsb3dlZCB3aGVuIHByb2Nlc3NpbmcgYQogICAgICAgR0VUQlVMSyByZXF1ZXN0IHdpdGggbm9uLXJlcGVhdGVycyA+IDAsIG1heC1yZXBldGl0aW9ucyA9PSAwIGFuZCBubwogICAgICAgdmFyYmluZHMgaW4gdGhlIHJlcXVlc3QuCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjEpLCByZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0wNiAwNzozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSgpIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCkgY2FsbHMKICAgCjIwMDEtMDYtMDYgMDc6MzcgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBtb3JlIHVuaWZvcm0gcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKTogbWFrZSBpdCBhbHdheXMgYQogICAgICAgdmFyYmluZCB3aGljaCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlKClpbmcsIG9yIGVsc2UgTlVMTC4KICAgCjIwMDEtMDYtMDUgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBmaXggZm9yIGluZGV4IGFsbG9jYXRpb24sIHN1Y2ggdGhhdCByZXF1ZXN0cyBmb3Igc3BlY2lmaWMgaW5kaWNlcyB3aGljaAogICAgICAgaGF2ZSBwcmV2aW91c2x5IGJlZW4gYWxsb2NhdGVkLCBidXQgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLCBzdWNjZWVkLgogICAKICAgICAtIG1vcmUgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICBmaWxlIHRlc3RkZWxheWVkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmg6CgogICBmaWxlIHRlc3RoYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICBmaWxlIHRlc3RkZWxheWVkLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBmaWxlIHRlc3RoYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpbGUgdGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oOgoKICAgZmlsZSBtdWx0aXBsZXhlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpbGUgb2xkX2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuaDoKCiAgIGZpbGUgbnVsbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBmaWxlIGluc3RhbmNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oOgoKICAgZmlsZSBzZXRfaGVscGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaDoKCiAgIGZpbGUgdGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYzoKCiAgIGZpbGUgcmVhZF9vbmx5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaWxlIHNlcmlhbGl6ZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaDoKCiAgIGZpbGUgb2xkX2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmg6CgogICBmaWxlIGluc3RhbmNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5Lmg6CgogICBmaWxlIHJlYWRfb25seS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpbGUgTWFrZWZpbGUuaW4gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmg6CgogICBmaWxlIHNlcmlhbGl6ZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIGZpbGUgbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1pc2MgZml4ZXMgZm9yIG9pZCBmb3JtYXR0aW5nIHByb2JsZW1zLgogICAKMjAwMS0wNi0wMSAwNzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hcnRpbiBPbGRmaWVsZC4KICAgCjIwMDEtMDYtMDEgMDI6NTAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBmaXggZm9yIGFic29sdXRlbHkgbWluZC1iZW5kaW5nIG1lbW9yeSBsZWFrIHdoZW4gQWdlbnRYIHNlc3Npb25zCiAgICAgICB0aW1lb3V0LiAgYWdlbnRfc2Vzc2lvbl9saXN0IGhvbGRzIGEgcXVldWUgb2Ygc2Vzc2lvbnMgd2l0aCBvdXRzdGFuZGluZwogICAgICAgcmVxdWVzdHMuICBXaGVuIGEgc2Vzc2lvbiB0aW1lcyBvdXQsIHRoaXMgbXVzdCBiZSBzY2F2ZW5nZWQgdG8gbWFrZQogICAgICAgc3VyZSB0aGUgc2Vzc2lvbnMgdGhhdCBoYXZlIHRpbWVkIG91dCwgYW5kIHRoZWlyIGFzc29jaWF0ZWQgcmVxdWVzdHMKICAgICAgIGFyZSBmcmVlKClkLgogICAKMjAwMS0wNS0zMCAwMzoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZXRyeSBpbml0aWFsIG9wZW4gb2YgQWdlbnRYIG1hc3RlciBzb2NrZXQgaWYgQWdlbnRYIHBpbmdzIGFyZQogICAgICAgZW5hYmxlZCAoc2hvdWxkIHJlYWxseSBiZSBhIHNlcGFyYXRlIGRlZmF1bHRfc3RvcmUgb3B0aW9uIGJ1dAogICAgICAgbmV2ZXIgbWluZCkKICAgCjIwMDEtMDUtMzAgMDM6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIGhhbmRsaW5nIG9mIHRpbWVvdXQgY29uZGl0aW9ucyAoYWxzbyBmaXggbWVtb3J5CiAgICAgICBsZWFrKQogICAKMjAwMS0wNS0zMCAwMzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gbW9yZSBpbmZvcm1hdGl2ZSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAgIC0gcmVtb3ZlIG5vaXN5IGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9yZSBjb21wYWN0IGRlYnVnZ2luZyBpbiBfc2Vzc19zZWxlY3RfaW5mbwogICAKMjAwMS0wNS0zMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNvcHkgZmxhZ3MgaW4gcmVhdHRhY2hfc3VidHJlZSAobmVlZGVkIGZvciBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikKICAgCjIwMDEtMDUtMjggMDg6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBjbGllbnQuaCAsCiAgIG1hc3Rlcl9hZG1pbi5jICwgbWFzdGVyX3JlcXVlc3QuYyAsIHN1YmFnZW50LmM6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQ5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHR3ZWFrIHRvIGdldFN0YXRQdHIgdG8gaGFuZGxlIGdldE5leHQgb3BlcmF0aW9ucyBpbiBjb21iaW5hdGlvbiB3aXRoCiAgICAgICBGVUxMWV9RVUFMSUZJRURfSU5TVEFOQ0Ugbm9kZXMgKHdoaWNoIGFyaXNlIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKS4KICAgCjIwMDEtMDUtMjggMDg6NDYgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIHRvIGRlYnVnZ2luZyBvdXRwdXQKICAgCjIwMDEtMDUtMjggMDg6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcyAqcHJvcGVybHkqLgogICAKMjAwMS0wNS0yOCAwNDo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGluIF9zZXNzX2FzeW5jX3NlbmQgZXJyb3IgY2FzZXMKICAgCjIwMDEtMDUtMjggMDQ6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gYWRkIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMuCiAgIAoyMDAxLTA1LTIzIDA5OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXNwZWN0IG1zZ01heFNpemUgaW4gcmVjZWl2ZWQgdjMgUERVcyAoaW4gdGhlIHdlYWsgc2Vuc2UgdGhhdCBpZgogICAgICAgdGhlIHNlcmlhbGl6ZWQgcmVzcG9uc2UgUERVIGlzIG1vcmUgdGhhbiBpdCwgd2UgZG9uJ3Qgc2VuZCBpdCkKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkuICBVc2luZyB0aGVzZQogICAgICAgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuCiAgICAgICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLCBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZQogICAgICAgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA5OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RydWN0IHNvY2thZGRyX2luIHJlc3BJcAogICAKMjAwMS0wNS0yMyAwODo1OCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZWFybHkgYmFpbCBvdXQgb2YgaGFuZGxlX3NubXBfcGFja2V0KCkgaWYgdGhlIGNhbGxiYWNrIG9wZXJhdGlvbgogICAgICAgdHlwZSBpcyBub3QgU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFLiAgSW4gcHJhY3RpY2UsIHRoZQogICAgICAgb25seSB3YXkgdGhpcyBhcmlzZXMgY3VycmVudGx5IGlzIHdoZW4gYSBzdHJlYW0gdHJhbnNwb3J0IGJhc2VkCiAgICAgICBjb25uZWN0aW9uIGdvZXMgYXdheSBhbmQgYSBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgb2NjdXJzLgogICAKMjAwMS0wNS0yMyAwODo0NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbmV3IGZpZWxkcyByY3ZNc2dNYXhTaXplIGFuZCBzbmRNc2dNYXhTaXplIGluIHNubXBfc2Vzc2lvbgogICAgICAgc3RydWN0dXJlIHRvIHN1cHBvcnQgdjMgbXNnTWF4U2l6ZQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeSBmcm9tIHB1YmxpYwogICAgICAgaW50ZXJmYWNlLiAgVXNpbmcgdGhlc2UgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkKICAgICAgIHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLiAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywKICAgICAgIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwODozNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgbXNnTWF4U2l6ZSBmaWVsZCB0byBzbm1wX3RyYW5zcG9ydCBzdHJ1Y3R1cmUgdG8gc3VwcG9ydAogICAgICAgbXNnTWF4U2l6ZSBuZWdvdGlhdGlvbiBmb3IgdjMKICAgCjIwMDEtMDUtMjMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcgaW5zdGVhZCBvZiBzcHJpbnRfaGV4c3RyaW5nIGZvcgogICAgICAgU05NUF9URVNUSU5HX0NPREUgZGVidWdnaW5nIG91dHB1dCBvZiBJViwga2V5IGFuZCBwbGFpbnRleHQKICAgCjIwMDEtMDUtMjMgMDU6MjUgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgb3B0aW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDQ6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIGFuZCAtRSBvcHRpb25zLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDM6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIHVzZSBuZXcgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkgZnVuY3Rpb25zIGZvciBpbnB1dCBzdHJpbmcKICAgICAgIHRvIE9DVEVUIFNUUklORyBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGFzY2lpX3RvX2JpbmFyeQogICAgICAgYW5kIGhleF90b19iaW5hcnkKICAgCiAgICAgLSBvbWl0IHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBzdHJpbmcgKGhlbHBmdWwgZm9yIG9iamVjdHMgdGhhdCBkb24ndAogICAgICAgYWxsb3cgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMsIGUuZy4gc3lzTG9jYXRpb24uMCkKICAgCjIwMDEtMDUtMjAgMDg6MTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJld3JpdHRlbiBfc2Vzc19yZWFkKCkgZnVuY3Rpb246CiAgIAogICAgICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2YgbG9uZyBwYWNrZXRzCiAgICAgICAtIHplcm8tY29weSByZWNlcHRpb24gb2YgcGFja2V0cyBvbiBzdHJlYW0gdHJhbnNwb3J0cwogICAgICAgLSBsb3dlciBtZW1vcnkgb3ZlcmhlYWRzIGZvciBwYWNrZXQgZnJhZ21lbnQgaGFuZGxpbmcgZm9yIHN0cmVhbQogICAgICAgICB0cmFuc3BvcnRzCiAgIAogICAgIC0gYWxsb3cgcGFyc2luZyBvZiBsYXJnZSBvYmplY3RzICg+ODE5MiBvY3RldHMpCiAgIAoyMDAxLTA1LTIwIDA1OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgY29udGV4dE5hbWUsIHNlY3VyaXR5TmFtZSAtLSBjYXVzZXMgbWlub3IgbWVtb3J5CiAgICAgICBsZWFrLgogICAKMjAwMS0wNS0yMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB0ZXN0IHJldHVybiBvZiBmY250bChGX0dFVEZMKSwgc28gYXMgbm90IHRvIHNldCBmbGFncyB0byBnYXJiYWdlCiAgIAogICAgIC0gY29ycmVjdGlvbiB0byBjb21tZW50IC0tIHNldCBzb2NrZXQgdG8gKmJsb2NraW5nKiEKICAgCiAgICAgLSBjaGVjayBvcGFxdWUgYmVmb3JlIHdyaXRpbmcgdG8gaXQgaW4gcmVjdgogICAKMjAwMS0wNS0yMCAwNTowMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcHJvcGVyIGhhbmRsaW5nIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBpbiBzbm1wX3N5bmNoX2lucHV0OgogICAgICAgc2V0IGFuIGVycm9yIGNvbmRpdGlvbiwgd2l0aCBlcnJubyBTTk1QRVJSX0FCT1JUICgiU2Vzc2lvbiBhYm9ydAogICAgICAgZmFpbHVyZSIpLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBlbm91Z2ggbWF0Y2guCiAgIAoyMDAxLTA1LTE4IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2UgbmV3bHktYWNjZXB0KCllZCBzb2NrZXRzIGJsb2NraW5nOyBvdGhlcndpc2UgcHJvYmxlbXMgYXJpc2UKICAgICAgIGxhdGVyIHdoZW4gc2VuZCgpaW5nIGxhcmdlIFBEVXMgKHNpbmNlIG9ubHkgYSBzaW5nbGUgc29ja2V0IGJ1ZmZlcidzCiAgICAgICB3b3J0aCBvZiBkYXRhIGF0IG1vc3QgY2FuIGJlIHNlbnQgd2l0aG91dCBibG9ja2luZykuCiAgIAoyMDAxLTA1LTE4IDA3OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGluc3RlYWQgb2YKICAgICAgIHNwcmludF9vYmppZCBhbmQgc3ByaW50X3ZhcmlhYmxlIHJlc3BlY3RpdmVseSwgdG8gYWxsb3cgbGFyZ2UgUERVcwogICAgICAgdG8gYmUgcHJpbnRlZCB3aGVuIGRlYnVnZ2luZwogICAKMjAwMS0wNS0xOCAwNzoxNiAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIHNubXBfcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE4IDA3OjE1ICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgICAtIHJlbW92ZSBkZWJ1Z2dpbmcgZnJvbSBvdXRwdXQgcm91dGluZXMKICAgCiAgICAgLSBuZXcgZnVuY3Rpb24gc3ByaW50X3JlYWxsb2Nfb2JqaWQKICAgCiAgICAgLSBtYWtlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBleHRlcm5hbGx5CiAgICAgICB2aXNpYmxlCiAgIAoyMDAxLTA1LTE4IDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBhc25fcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE1IDA0OjEwICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0lEcyBmb3IgVURQL0lQdjYgYW5kIFRDUC9JUHY2CiAgIAoyMDAxLTA1LTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGFkZGVkIFxuIHRvIHRleHQgb2Ygc25tcF9sb2coKSBtZXNzYWdlcyAoYnVnICM0MjI5NzgpCiAgIAoyMDAxLTA1LTExIDA3OjMwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgICAtIGFkZGVkIHNwcmludF9yZWFsbG9jXzx0eXBlPiBmYW1pbHkgb2YgZnVuY3Rpb25zIHdoaWNoIHRha2UgZXh0cmEKICAgICAgIHBhcmFtZXRlcnMgYW5kIHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMgdG8gcmVtb3ZlIGxpbWl0YXRpb25zIGR1ZSB0bwogICAgICAgZml4ZWQtc2l6ZSBidWZmZXJzIChlLmcuIHNlZSBidWcgIzQwOTE4MSkuCiAgIAogICAgIC0gYWxzbyBmaXhlcyBwb3RlbnRpYWwgcHJvYmxlbSBub3RlZCBhcyBidWcgIzQxNDgwMwogICAKICAgICAtIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGFuZCBmcHJpbnRfdmFsdWUgdXNlIG5ldyBmdW5jdGlvbnMKICAgICAgIHN1Y2ggdGhhdCBzbm1wZ2V0IGV0Yy4gYXJlIGltcHJvdmVkIGltbWVkaWF0ZWx5CiAgIAogICAgIC0gb2xkIGZ1bmN0aW9ucyByZW1haW4gKkZPUiBOT1cqIC0tIGJ1dCByZWFsbHkgdGhleSBzaG91bGQgYmUKICAgICAgIGNvbnNpZGVyZWQgdG8gYmUgZGVwcmVjYXRlZCAobmV3IGZ1bmN0aW9ucyBwcm92aWRlIGEgc3VwZXJzZXQgb2YKICAgICAgIHRoZWlyIGZ1bmN0aW9uYWxpdHkpLgogICAKMjAwMS0wNS0xMSAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAgIC0gYWRkZWQgYWRkaXRpb25hbCBmdW5jdGlvbiBwb2ludGVyIHRvIHN0cnVjdCB0cmVlIHRvIHBvaW50IGF0CiAgICAgICByZWxvY2F0aW5nIGJ1ZmZlciBjb21wYXRpYmxlIG91dHB1dCBmdW5jdGlvbgogICAKMjAwMS0wNS0xMSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAsIHRvb2xzLmg6CgogICAgIC0gYWRkZWQgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3N0cmNhdCwgd2hpY2ggYXBwZW5kcyBhIHN0cmluZyB0byBhCiAgICAgICByZWxvY2F0YWJsZSBidWZmZXIKICAgCjIwMDEtMDUtMTAgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjNDIzMTA5IGluY29ycmVjdCBpbmRleCBwYXJzaW5nCiAgIAoyMDAxLTA1LTA5IDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IHNubXBfY2xpZW50LmM6NTY5OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTA5IDEyOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi5oICwgUm1vbi9SRUFETUUgLCBSbW9uL2FndXRpbC5jCiAgICwgUm1vbi9hZ3V0aWwuaCAsIFJtb24vYWd1dGlsX2FwaS5oICwgUm1vbi9hbGFybS5jCiAgICwgUm1vbi9hbGFybS5oICwgUm1vbi9ldmVudC5jICwgUm1vbi9ldmVudC5oICwKICAgUm1vbi9oaXN0b3J5LmMgLCBSbW9uL2hpc3RvcnkuaCAsIFJtb24vcm93X2FwaS5oICwKICAgUm1vbi9yb3dzLmMgLCBSbW9uL3Jvd3MuaCAsIFJtb24vc3RhdGlzdGljcy5jICwKICAgUm1vbi9zdGF0aXN0aWNzLmggLCBSbW9uL3Rlc3RfYWxhcm0uc2ggLAogICBSbW9uL3Rlc3RfaGlzdC5zaDoKCiAgIEluY2x1ZGUgQWxleCBSb3ppbidzIFJtb24uCiAgIAoyMDAxLTA1LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYyAsIHNubXBfY2xpZW50Lmg6CgogICBBZGRlZCBhIGNvdXBsZSBvZiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyB2YXJiaW5kbGlzdHM6CiAgICAgaW50IHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZShzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqbmV3dmFyLCB1X2NoYXIgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqdmFsX3N0ciwgc2l6ZV90IHZhbF9sZW4pOwogICAgIHZvaWQgc25tcF9yZXBsYWNlX3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgb2xkX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdfdHlwZSk7CiAgICAgdm9pZCBzbm1wX3Jlc2V0X3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgbmV3X3R5cGUpOwogICAKMjAwMS0wNS0wNyAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgZGVmaW5lIFNOTVBfTUFMTE9DX1RZUEVERUYoKQogICAKMjAwMS0wNS0wNSAwNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIGZpeCBzdG9yZV8gbmFtZTsgZG9uJ3QgY2FzdCB0byBhc255IHR5cGUgaWYgcGFybSBleHBlY3RpbmcgdV9jaGFyKjsgZml4IF92YXJpYWJsZV9vaWQKICAgbmFtaW5nOyBjYXN0IHBhcm0gMiBvZiBtZW1kdXAgdG8gdV9jaGFyKgogICAKMjAwMS0wNS0wMyAxNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAgIC0tIG1vcmUgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHByb2JsZW0gZm91bmQuCiAgIAoyMDAxLTA1LTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgIAoyMDAxLTA1LTAzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00ICwgY29uZmlnLmd1ZXNzICwgY29uZmlnLnN1YiAsCiAgIGNvbmZpZ3VyZSAsIGx0bWFpbi5zaDoKCiAgIHVwZGF0ZWQgdG8gbGlidG9vbCAxLjQKICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgdXNlIHJlYWxsb2Mgcm91dGluZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggdmFyaWFibGUgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTA1LTAxIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgcHJpbnQgaGV4IGZvciBzdHJpbmcgbGVuZ3RocyBsZXNzIHRoYW4gNC4gIFNob3VsZCBoYXZlIGRpZWQgYWdlcyBhZ28uCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIEZpeCBwcm90b3R5cGUgc28gaXRzIG5vdCBzdGF0aWMgKGl0IHNob3VsZG4ndCBiZSkuCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgbWFrZSBST05MWSB2YXJpYWJsZXMgd3JpdGFibGUgKHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsuICBJJ20gYmV0dGluZyBub3QuKQogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBhbiBycG0gc3ViZGlyZWN0b3J5LgogICAKMjAwMS0wNC0yMyAyMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBiaWcgY2xlYW51cCBhbmQgb3RoZXIgZml4ZXMgSSd2ZSBhbHJlYWR5IGZvcmdvdHRlbiBpbiB0aGUgbGFzdCBmZXcgbWludXRlcy4KICAgCjIwMDEtMDQtMjMgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgd2FsayBvZmYgZW5kIG9mIG1pYiB0cmVlIChzaWdoKS4KICAgCjIwMDEtMDQtMjMgMjA6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRoZSBtaWIgaW5mbyBkaXNwbGF5IG9wdGlvbnMuCiAgIHNhdmUgdGhlbSBhcHByb3ByaWF0ZWx5LgogICAKMjAwMS0wNC0yMyAxODoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtb3JlIHNhdmFibGUgb3B0aW9uIGl0ZW1zLgogICB1c2UgRGF0YTo6RHVtcGVyIHRvIHNhdmUgbW9zdCBzdHVmZi4KICAgCjIwMDEtMDQtMjMgMTc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgc2F2ZSBzZXNzaW9uIG9wdGlvbnMgdHdpY2UuCiAgIE1ha2UgY29sb3Igb2Ygd3JpdGFibGUgb2JqZWN0cyBhIHZhcmlhYmxlLgogICAKMjAwMS0wNC0yMyAxNzowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiB0a21pYiAoVjQtMi1wYXRjaGVzLjIpLCB0a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMjMgMTY6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcmVkdWNlIHNjcmVlbiByZWFsZXN0YXRlIGFsbCBvdmVyIHRoZSBwbGFjZQogICAKMjAwMS0wNC0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICB0ZXN0IGFnYWluc3QgdmVyc2lvbiA1CiAgIAoyMDAxLTA0LTE4IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oICwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQKICAgLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGRlZCBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0IChkaXNraW8gZXh0ZW5zaW9uKSBmcm9tIE1hcnRpbiBPbGRmaWVsZAogICAKMjAwMS0wNC0xOCAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFja2luZyBvbiBzbm1wX2FkZF92YXIgdG8gaGFuZGxlIGxvbmcgdmFsdWVzCiAgIAogICAgICAgLSB1c2Ugc25tcF97aGV4LGRlY2ltYWx9X3RvX2JpbmFyeSBpbnN0ZWFkIG9mIGhleF90b19iaW5hcnkKICAgICAgICAgYW5kIGFzY2lpX3RvX2JpbmFyeTsgdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQKICAgCiAgICAgICAtIGRvbid0IHVzZSBzdHJ0b2sgaW4gcHJvY2Vzc2luZyBiaXRzdHJpbmdzCiAgIAoyMDAxLTA0LTE4IDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHVzZSB0aGUgZ2VuZXJpYyBzbm1wX3JlYWxsb2MgZnVuY3Rpb24gaW4gYXNuX3JlYWxsb2MKICAgCjIwMDEtMDQtMTggMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMgLCB0b29scy5oOgoKICAgICAtIG5ldywgcmVhbGxvY2F0aW5nIHV0aWxpdHkgZnVuY3Rpb25zIHNubXBfaGV4X3RvX2JpbmFyeSBhbmQKICAgICAgIHNubXBfZGVjaW1hbF90b19iaW5hcnkgdG8gY29udmVydCBoZXggYW5kIGRlY2ltYWwgc3RyaW5ncyB0byBvY3RldAogICAgICAgc3RyaW5ncyByZXNwZWN0aXZlbHkuCiAgIAogICAgIC0gbmV3IHV0aWxpdHkgZnVuY3Rpb24gc25tcF9yZWFsbG9jIHRvIHBlcmZvcm0gYnVmZmVyIChyZS0pYWxsb2NhdGlvbgogICAKMjAwMS0wNC0xMiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgQmV0dGVyIGZpeCBmb3IgYnVnICM0MTQ4NTUgZnJvbSBhcmFqZXNoCiAgIEhhbmRsZXMgbm9uLXJlcGVhdGVycz0wIGFzIHdlbGwsIGFuZCBhdm9pZHMgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0wNC0xMSAxMDowNiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBleHRlbmRlZCAoYW5kIGNvcnJlY3RlZCEpIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBuZXcgQVBJLgogICAKMjAwMS0wNC0xMSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcC5jICwgc25tcC5oOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZF92YXJfb3AgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTExIDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjAyICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGFzbl9yZWFsbG9jKCkgZnVuY3Rpb24gY2hlY2tzIHdoZXRoZXIgaXQgaGFzIGJlZW4gcGFzc2VkIGEgTlVMTAogICAgICAgcG9pbnRlciBhbmQgdXNlcyBtYWxsb2MoKSBpbiB0aGF0IGNhc2UgKHRoYW5rcyB0byBNaWNoYWVsIFNsaWZjYWsKICAgICAgIGZvciBwb2ludGluZyBvdXQgdGhlIGRhbmdlciBoZXJlKS4KICAgCjIwMDEtMDQtMTEgMDY6MTMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwNDo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBzZXQgU09fU05EQlVGIGFuZCBTT19SQ1ZCVUYgdG8gMTI4S2IgZm9yIG5ld2x5LW9wZW5lZCBVRFAgc29ja2V0cywKICAgICAgIHRvIGVuYWJsZSBsYXJnZSBQRFVzIHRvIGJlIHNlbnQgYW5kIHJlY2VpdmVkLiAgU29tZQogICAgICAgaW1wbGVtZW50YXRpb25zIGRlZmF1bHQgdmVyeSBsb3cgKFNvbGFyaXMgMi43IDhLYiwgTGludXggMi40CiAgICAgICA2NEtiKS4KICAgCjIwMDEtMDQtMDkgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gbW9kaWZpZWQgdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gbWFrZSB1c2Ugb2YgcmVhbGxvY2F0aW5nCiAgICAgICByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgICAtIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuaDoKCiAgICAgLSBhbGxvdyBhZGRpdGlvbmFsIHBhcmFtZXRlciBmb3Igb3V0Z29pbmcgcGFyYW1zIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBwcm90b3R5cGVzIGZvciByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zCiAgIAoyMDAxLTA0LTA5IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCB0byB1c2UgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgaWYKICAgICAgIHVzaW5nIHJldmVyc2UgZW5jb2RpbmcgYXQgYWxsLgogICAKMjAwMS0wNC0wOSAwOTo0OSAgamJwbgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgICAgLSBhZGQgbmV3IGZ1bmN0aW9uIHNubXBfcmVhbGxvY19yYnVpbGRfdmFyX29wKCkgd2hpY2ggdXNlcwogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgdG8gZW5jb2RlIHZhcmJpbmRzLgogICAKMjAwMS0wNC0wOSAwOTo0NyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBwcm90b3R5cGUgZm9yIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sCiAgICAgICB3aGljaCBwZXJmb3JtIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZQogICAgICAgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKICAgICAtIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBhYm92ZS4KICAgCjIwMDEtMDQtMDkgMDk6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwgd2hpY2ggcGVyZm9ybQogICAgICAgcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKICAgICAgIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAoyMDAxLTA0LTA2IDEyOjEyICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQgLCBDT1BZSU5HICwgQ2hhbmdlTG9nICwKICAgRVhBTVBMRS5jb25mLmRlZiAsIEZBUSAsIE5FV1MgLCBQT1JUSU5HICwKICAgUkVBRE1FICwgUkVBRE1FLmFnZW50eCAsIFJFQURNRS5zbm1wdjMgLCBjb25maWd1cmUKICAgLCBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmgKICAgLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9kc19hZ2VudC5oICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmggLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwgYXBwcy9zbm1wZGVsdGEuYwogICAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBsb2NhbC9NYWtlZmlsZS5pbiAsIGxvY2FsL21pYjJjICwgbG9jYWwvc25tcGNvbmYKICAgLCBsb2NhbC90a21pYiAsIGxvY2FsL3dlc3Jlc3RhcnQgLCBtYW4vc25tcGNtZC4xCiAgICwgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBtYW4vc25tcGRlbHRhLjEgLAogICBtaWJzL3JmY2xpc3QgLCBtaWJzL3JmY21pYnMuZGlmZiAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBtZXJnZTMgLT4gbWVyZ2U0LiAgSSBkb24ndCAqdGhpbmsqIEkgYnJva2UgYW55dGhpbmcuCiAgICAgLSBUaGUgbWFpbiBsaW5lIHNob3VsZCBub3cgY29udGFpbiBhbGwgdGhlIDQuMi4xIHBhdGNoZXMuCiAgICAgLSBJIG1heSBkb3VibGUgY2hlY2sgdGhpcyBhdCBhIGxhdGVyIGRhdGUuCiAgIAoyMDAxLTA0LTA1IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgQWxzbyBhcHBsaWVkIHRvICdwYXNzX3BlcnNpc3QnLgogICAKMjAwMS0wNC0wNSAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jICwga2VybmVsLmMKICAgLCBtaWJfbW9kdWxlcy5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oCiAgICwgc25tcF92YXJzLmMgLCBtaWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMgLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBtaWJncm91cC9ob3N0L2hyX3V0aWxzLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDUgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDUgMDY6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAoQSBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gdGhlIHByZXZpb3VzIHBhdGNoKQogICAKMjAwMS0wNC0wNSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMgLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA1IDA0OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIHNhdmUgYSBzdHJjcHkoKSBhbmQgYWxsb3cgbG9uZyBvY3RldCBzdHJpbmcgdmFsdWVzIHdpdGhvdXQgY3Jhc2hpbmcKICAgICAgKHRob3VnaCB0aGVyZSBhcmUgc3RpbGwgcHJvYmxlbXMgZHVlIHRvIHRoZSBsaWJlcmFsIHVzZSBvZiBmaXhlZAogICAgICBzaXplIGJ1ZmZlcnMgd2l0aCBubyBib3VuZHMgY2hlY2tpbmcgYWxsIG92ZXIgdGhlIHBsYWNlLiAgU2lnaCkuCiAgIAoyMDAxLTA0LTA0IDA2OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTAzIDA5OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgJ2V4dG1wJyBjb21tYW5kIHZhcmlhYmxlIGlzIGFjY2Vzc2libGUgb24gc3lzdGVtcyB3aXRob3V0IEVYRUNWLgogICAKMjAwMS0wNC0wMyAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjIyICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgLCBzbm1wdHJhcGRfbG9nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MTUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHJlYWRfY29uZmlnLmMgLCBzbm1wVENQRG9tYWluLmgKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uaCAsIHNubXBfYXBpLmMgLCBzbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oICwgc3lzdGVtLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDEwOjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIGNoZWNrIGZvciBsaW1pdHMuaCBwcm9wZXJseQogICAKMjAwMS0wNC0wMiAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIG1pbm9yIHR5cGVmYWNlIGNoYW5nZXMKICAgCjIwMDEtMDMtMzEgMDY6MjcgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjoyNSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgIC0gZG9jdW1lbnQgdGhlIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIgZnVuY3Rpb24KICAgCiAgICAtIGV4cGFuZCB0aGUgTk9URVMgc2VjdGlvbiBkaXNjdXNzaW5nIHVzZSBvZiBTSUdBTFJNIChvciBub3QpCiAgIAoyMDAxLTAzLTMxIDA2OjE3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5IGFuZCBjYW5jZWwgYWxsCiAgICAgIGNhbGxiYWNrcyB3aGljaCBtYWtlIHJlZmVybmNlIHRvIHRoZSBBZ2VudFggc2Vzc2lvbi4KICAgCjIwMDEtMDMtMzEgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgIC0gRml4IG11bHRpcGxlIGZyZWUoKSBvZiBwYXJ0cyBvZiB0aGUgc3Vic2Vzc2lvbiBieSB6ZXJvaW5nIG91dAogICAgICBmaWVsZHMgdGhhdCB3ZSBkb24ndCB1c2UuCiAgIAogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gQ2hhbmdlZCBwYWNrZXQgaGFuZGxpbmcgb24gc3RyZWFtLWxpa2UgdHJhbnNwb3J0cyBzbyB0aGF0IGFsbAogICAgICBjb21wbGV0ZSByZWNlaXZlZCBwYWNrZXRzIGFyZSBwcm9jZXNzZWQ6CiAgIAogICAgICBfc2Vzc19yZWFkIGlzIHJlZmFjdG9yZWQgaW50byB0d28gZnVuY3Rpb25zOiBfc2Vzc19yZWFkIHJlbWFpbnMKICAgICAgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIHRoZSB0cmFuc3BvcnQgbGF5ZXIsIGJ1dCB0aGVuCiAgICAgIGNhbGxzIChwZXJoYXBzIG1vcmUgdGhhbiBvbmNlKSBfc2Vzc19wcm9jZXNzX3BhY2tldCB0byBkaXNwYXRjaAogICAgICBlYWNoIHBhY2tldCByZWFkLgogICAKICAgIC0gVGhlIHByZXNlbmNlIG9mIGEgc2Vzc2lvbiB3aXRoIGEgYnVmZmVyZWQgcGFydGlhbCBwYWNrZXQgbm8gbG9uZ2VyCiAgICAgIGNhdXNlcyBzbm1wX3NlbGVjdF9pbmZvIHRvIHJldHVybiB3aXRoIGEgdGltZW91dCBvZiB6ZXJvLgogICAKICAgIC0gRnJlZSB0aGUgc3Vic2Vzc2lvbnMgb2YgYSBzZXNzaW9uIHdoZW4gZG9pbmcgYW4gc25tcF9zZXNzX2Nsb3NlOwogICAgICB0aGlzIGZpeGVzIGFuIEFnZW50WCBtZW1vcnkgbGVhayB3aGVuIHN1YmFnZW50cyBjb21lIGFuZCBnby4KICAgCiAgICAtIFBlcmZvcm0gY2FsbGJhY2tzIHdpdGggYW4gb3BlcmF0aW9uIGFyZ3VtZW50IG9mCiAgICAgIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB3aGVuIHlvdSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uLgogICAKMjAwMS0wMy0zMSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICBNYWRlIHRyYW5zcG9ydCBkb21haW4gY29uc3QKICAgCjIwMDEtMDMtMzEgMDU6NTUgIGpicG4KCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHRoYXQgY2FuIG9jY3VyIHdoZW4gZGVyZWdpc3RlcmluZyBjYWxsYmFja3MKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBmaWxlIFJFQURNRS5hZ2VudHggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTIChWNC0yLXBhdGNoZXMuMSksIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmIChWNC0yLXBhdGNoZXMuMyksIGxpYnNubXAuZGVmOgoKICAgQWRkIHZhY21faXNfY29uZmlndXJlZC4KICAgCjIwMDEtMDMtMjggMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNjowMCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTozNiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jICwgc25tcF9hcGkuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgIC0gcmVuYW1lIGNhbGxiYWNrIG9wZXJhdGlvbnMgdG8gU05NUF9DQUxMQkFDS19PUF88bmFtZT4KICAgIC0gYWRkIG5ldyBvcGVyYXRpb25zIFNOTVBfQ0FMTEJBQ0tfT1BfQ09OTkVDVCwgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUCiAgICAtIGFkZCBsZWdhY3kgZGVmaW5pdGlvbnMgZm9yIFJFQ0VJVkVEX01FU1NBR0UsIFRJTUVEX09VVCwgU0VORF9GQUlMRUQKICAgCjIwMDEtMDMtMjcgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmM6CgogICBjaGFuZ2UgZnByaW50ZiAtPiBzbm1wX2xvZy4KICAgRG9uJ3QgYWxsb3cgbW9kaWZpY2F0aW9ucyBvZiByZWFkLW9ubHkgcm93cyBpbiBtdGVPYmplY3RzVGFibGUuCiAgIAoyMDAxLTAzLTI3IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmggLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKICAgLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmggLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmggLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBzbm1wbGliL3ZhY20uYyAsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogaXBmLW1vZC5wbCAoVjQtMi1wYXRjaGVzLjEpLCBpcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDA3OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgQVNOX09DVEVUX1NUUiByYXRoZXIgdGhhbiB0aGUgaGlzdG9yaWMgQVNOX0JJVF9TVFIgZm9yICdiJyBvYmplY3QgdmFsdWVzCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jIChWNC0yLXBhdGNoZXMuMyksIGFnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzozMCAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEF2b2lkIGNyYXNoIGluIHNubXBfc2h1dGRvd24gb24gcGxhdGZvcm1zIHRoYXQgY2hlY2sgcG9pbnRlciB2YWxpZGl0eQogICBpbiBmcmVlKDMpLCBlLmcuIEZyZWVCU0QuCiAgIAoyMDAxLTAzLTIxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKICAgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgUkVBRE1FLndpbjMyICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBtYW4vc25tcC5jb25mLjUuZGVmICwgbWFuL3NubXBjbWQuMSAsIG1hbi9zbm1wdHJhcGQuOAogICAsIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0ICwgbWlicy9NVEEtTUlCLnR4dCAsCiAgIG1pYnMvTWFrZWZpbGUubWliICwgbWlicy9SRUFETUUubWlicyAsCiAgIG1pYnMvVFVOTkVMLU1JQi50eHQgLCBtaWJzL2lhbmFsaXN0ICwgbWlicy9taWJmZXRjaAogICAsIG1pYnMvcmZjbGlzdCAsIG1pYnMvcmZjbWlicy5kaWZmICwgbWlicy9zbWlzdHJpcAogICAsIHBlcmwvU05NUC9TTk1QLnhzICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL21pYi5oICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKICAgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvc3lzdGVtLmggLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKICAgLCB3aW4zMi9jb25maWcuaCAsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmggLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmggLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgbWVyZ2UgZnJvbSBwYXRjaGVzIGJyYW5jaDogbWVyZ2UyLT4zLgogICAKMjAwMS0wMy0xNSAxMDoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmg6CgogICBleHRyYSBtZW1iZXJzIGZvciBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMDc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gcnVuIHNpZ25hbCBoYW5kbGVycyBlYXJsaWVyCiAgIAoyMDAxLTAzLTE0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuaCAoVjQtMi1wYXRjaGVzLjIpLCBhZ2VudF90cmFwLmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOiBtYWtlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgYSBwdWJsaWMgZm4uCiAgIAoyMDAxLTAzLTE0IDEyOjE2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTE6MDUgIHNsaWYKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluICwgUlVOVEVTVFMgLCBURVNUQ09ORi5zaAogICAsIGV2YWxfb25lc2NyaXB0LnNoICwgZXZhbF90b29scy5zaDoKCiAgIG1lcmdlIHRoZSB0ZXN0IHNjcmlwdCBjaGFuZ2VzIG1hZGUgaW4gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAxLTAzLTE0IDEwOjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIENoYW5nZSB0byBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcgdG8gc3RvcCBpdCByZXR1cm5pbmcgVFJVRSBhbGwgdGhlCiAgIHRpbWUKICAgCjIwMDEtMDMtMTQgMTA6NTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgIC0gcm91Z2ggc3RhYiBhdCBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgIC0gYmFpbCBvdXQgb2YgZ2V0TmV4dC10eXBlIGxvb3BzIG9uIGEgYmFkVHlwZSBjb25kaXRpb24KICAgCjIwMDEtMDMtMTQgMTA6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAga2VyYmVyb3MgUkVBRE1FIGZpbGUgZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTE0IDEwOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgR2V0IHJldHVybmVkICp2YXJfbGVuIHJpZ2h0IGZvciBtdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SUQKICAgCjIwMDEtMDMtMTQgMTA6MTkgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAsIGFwcHMvc25tcHZhY20uYyAsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsIHRvIHF1aWV0IHNvbWUgd2FybmluZ3MuCiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4uCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMi1wYXRjaGVzLjUpLCBocl9zd3J1bi5jOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXnqatnZXIpCiAgIAoyMDAxLTAzLTE0IDA1OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0wMy0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBBZGQgYSBmdW5jdGlvbiB0byB0ZXN0IHdoZXRoZXIgYW4gT0lEIGNvcnJlc3BvbmRzIHRvIGEgc3VwcG9ydGVkIHRyYW5zcG9ydAogICBkb21haW4uCiAgIAoyMDAxLTAzLTExIDA3OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5oOgoKICAgQWRkICNpbmNsdWRlcyB0byBtYWtlIHN0cnVjdCBzb2NrYWRkcl9pbiBjb21wbGV0ZQogICAKMjAwMS0wMy0xMSAwNzo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmg6CgogICBSZW1vdmUgc3B1cmlvdXMgI2luY2x1ZGUKICAgCjIwMDEtMDMtMDkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJ3dXNlciAtcyBtb2RlbCB0byBhY3R1YWxseSB3b3JrLgogICAKMjAwMS0wMy0wOSAwNTo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFNldCBhIFBEVSdzIG9wYXF1ZSBkYXRhIG9uIGEgdGNwX3JlY3Y7IHRoaXMgaXNuJ3QgbmVjZXNzYXJ5IHRvIHNlbmQKICAgcmVwbGllcyAoYmVjYXVzZSB0aGUgdW5kZXJseWluZyBzb2NrZXQgaXMgc3Ryb25nbHkgY29ubmVjdGVkKSBidXQgaWYKICAgeW91IGRvbid0IGRvIHRoaXMgdGhlbiB5b3UgY2FuJ3QgZG8gImNvbTJzZWMiIHR5cGUgcHJvY2Vzc2luZyBmb3IgUERVcwogICByZWNlaXZlZCBvbiBUQ1Agc2Vzc2lvbnMuLi4gaW50ZXJlc3RpbmcuCiAgIAoyMDAxLTAzLTA5IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGJhZCBhc3N1bXB0aW9uIHRoYXQgY29tbXVuaXR5IHN0cmluZyBpcyB6ZXJvLXRlcm1pbmF0ZWQKICAgCjIwMDEtMDMtMDggMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvcnJlY3QgdmVyc2lvbiBzdGF0ZW1lbnRzIHRvIGluZGljYXRlIG5ldC1zbm1wLgogICAtIHJlbW92ZSBteSBuYW1lIGFzIGF1dGhvciAoSSdtIGNlcnRhaW5seSBub3QgdGhlIG9ubHkgb25lKQogICAtIGFkZCB3ZWIgYWRkcmVzcy4KICAgCjIwMDEtMDMtMDggMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gQWRkZWQgS2VuIEhvcm5zdGVpbidzIG5hbWUgdG8gY29udHJpYnV0ZXJzIGxpc3QuCiAgIC0gUmVtb3ZlZCBtaW5lIGZyb20gYmVpbmcgbGlzdGVkIHNlcGFyYXRlbHkuCiAgIAoyMDAxLTAzLTA4IDE0OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBBZGRlZCBhIGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZHVsZSAoa3NtKS4KICAgICBIb3dldmVyLCBOZWVkcyBsaWJyYXJpZXMgKC1sa3JiNSAtbGNvbV9lcnIpIG5vdCBiZWluZyBjaGVja2VkIGZvciBjdXJyZW50bHkuCiAgIAoyMDAxLTAzLTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBXaG9vcHMuICBTaG91bGRudCBoYXZlIGEgbmVnYXRpb24gc2lnbiBvbiB0aGUgbW9zdCByZWNlbnQgY2hlY2tpbi4KICAgCjIwMDEtMDMtMDggMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIElmIE5PX1BST0JFIGlzIHNldCwgZG9uJ3QgZG8gYW55IHBvc3QgcHJvYmluZyBhY3Rpdml0aWVzIGVpdGhlciBsaWtlCiAgIHRpbWUgdXBkYXRpbmcgYW5kIHVzZXIgY3JlYXRpb24uCiAgIAoyMDAxLTAzLTA4IDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIFJlbW92ZSBzdHJkdXAoKXMgb24gc29tZSBzZXNzaW9uIHBhcmFtZXRlcnMgd2hpY2ggY2F1c2UgbWVtb3J5IGxlYWtzCiAgIChzaW5jZSBzbm1wX29wZW4gZGVlcCBjb3BpZXMgdGhlIGlucHV0IHNlc3Npb24gYW55d2F5KQogICAKMjAwMS0wMy0wOCAwODoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgTWFrZSBzdXJlIHNlc3MgZmllbGQgb2YgbmV3IGVudHJpZXMgaXMgaW5pdGlhbGlzZWQgdG8gTlVMTC4KICAgCjIwMDEtMDMtMDggMDc6NDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgTWFrZSBjb25maWcgdG9rZW4gcGFyc2VyIHVwZGF0ZSB0aW1lc3RhbXAgb24gZW50cnkgaXQgY3JlYXRlczsKICAgbW92ZSB1cGRhdGVfdGltZXN0YW1wIGZ1bmN0aW9uLgogICAKMjAwMS0wMy0wNyAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgU05NUC5wbSAsIFNOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byByZW1vdmUgdW5uZWVkZWQgdGltZXN0YW1wIHN1cHBvcnQKICAgCjIwMDEtMDMtMDYgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYyAsIHNubXBfc2VjbW9kLmMKICAgLCBzbm1wX3NlY21vZC5oICwgc25tcHVzbS5jOgoKICAgc2VjbW9kIHN0cnVjdCBzeW1ib2wgbmFtZSBjaGFuZ2VzIHRvIHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZS4KICAgCjIwMDEtMDMtMDYgMTY6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYzoKCiAgIC0gc2V0IHRoZSBkZWZhdWx0IHBkdSBzZWN1cml0eSBtb2RlbCB0byBTTk1QX0RFRkFVTFRfU0VDTU9ERUwgKG5vdCAwKS4KICAgLSBkb24ndCBmb3JjZSB0aGUgc2VjdXJpdHkgbW9kZWwgb2YgdGhlIHNlc3Npb24gb24gdGhlIHBkdSBpZiBhbHJlYWR5IHNldC4KICAgCjIwMDEtMDMtMDYgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgaG9wZWZ1bGx5IGZpeCB0byBhbGxvdyBvdGhlciAocmVnaXN0ZXJlZCkgc2VjdXJpdHkgbW9kZWxzIHRvIGJlIHVzZWQuCiAgIAoyMDAxLTAzLTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoyMDAxLTAzLTA2IDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHByb3Blcmx5IGluc3RhbGwgc2VjbW9kIGhlYWRlciBsaXN0LgogICAKMjAwMS0wMy0wNiAwODo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgLSBidWcgZml4ZXMgZm9yIHNlY21vZCByZWxhdGVkIHN0dWZmIChpdCBjb21waWxlcyBub3cgKG9wcHMpKS4KICAgCjIwMDEtMDMtMDYgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIFBhc3MgaW4gcGR1IHRvIHNlY21vZCBlbmNvZGUvZGVjb2RlIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNiAwMzozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb2RpZmllZCBmdW5jdGlvbiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZSAoU29sYXJpcyBzcGVjaWZpYykgdG8gY29wZSBtb3JlCiAgIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzIG9mIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzCiAgIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQgbWVtb3J5IHJlYWRzLgogICAKMjAwMS0wMy0wNSAxNjozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV2ZXJzZSBjYWxsYmFjayBvcmRlcmluZyBvZiBub3JtYWwgY2FsbGJhY2svc2VjbW9kIGNhbGxiYWNrCiAgIHByb2Nlc3NpbmcgaW4gc2Vzc19jb3B5KCkuCiAgIAoyMDAxLTAzLTA1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICByZW1vdmUgdW51c2VkIGZyZWUgZnVuY3Rpb24gY2FsbHMgZm9yIHNlY3VyaXR5IG1vZHVsZSB1bnJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAzLTA1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBtaW5vciBBUEkgY2hhbmdlcyB0byB0aGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVsIGhhbmRsaW5nLgogICAKMjAwMS0wMy0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvcGVybHkgcmVzcGVjdCB0aGUgRE9OVF9QUk9CRV9GTEFHLgogICAKMjAwMS0wMy0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oICwgc25tcF9zZWNtb2QuaDoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICBBZGQgYSBrcmI1IHNwZWNpZmljIGVycm9yIGNvZGUuCiAgIAoyMDAxLTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBwcm9wZXJseSBoYW5kbGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZHVsZXMKICAgCjIwMDEtMDMtMDUgMTQ6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcmVzcGVjdCBub24tbG9jYWwgc3JjZGlycyBmb3IgdHJhbnNwb3J0L3NlY21vZHMKICAgCjIwMDEtMDMtMDUgMTA6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwgYXBwcy9zbm1wdHJhcGQuYwogICAsIHNubXBsaWIvLmN2c2lnbm9yZSAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hcGkuaCAsCiAgIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdXNtLmggLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgc3VwcG9ydCBmb3IgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVscy4gIEN1cnJlbnRseSBvbmx5IHRoZSBVU00gaXMKICAgYXZhaWxhYmxlLCBidXQgYSBuZXcga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kZWwgd2lsbCBiZSBhdmFpbGFibGUKICAgc2hvcnRseS4gIFRoZXNlIGNoYW5nZXMgc2ltcGx5IG1ha2UgaXQgcG9zc2libGUgdG8gdXNlIG1vcmUgdGhhbiBvbmUKICAgc2VjdXJpdHkgc2VydmljZS4KICAgCjIwMDEtMDMtMDUgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX3NlY21vZC5jICwgc25tcF9zZWNtb2QuaDoKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBhdXRob3JzIGxpc3QuCiAgIAoyMDAxLTAzLTA1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5oOgoKICAgQ29tbWVudCByZS1hcnJhbmdpbmcgdG8gYWN0dWFsbHkgYmUgbmVhciB0aGUgZnVuY3Rpb25zIHRoZXkncmUgZGVzY3JpYmluZy4KICAgCjIwMDEtMDMtMDUgMDY6MTAgIGpicG4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIGdldF9teWFkZHIoKSBmdW5jdGlvbiB0byBjb3BlIG1vcmUgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMKICAgb2YgaW50ZXJmYWNlcywgYW5kIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG5vbi1JUHY0IGFkZHJlc3NlcyBvbiBzb21lCiAgIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQKICAgbWVtb3J5IHJlYWRzLiAgVXNlICJvZmZpY2lhbCIgZGVmaW5pdGlvbiBvZiBJTkFERFJfTE9PUEJBQ0suCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIGZpbGUgaWFuYWxpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIGZpbGUgcmZjbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9SRUFETUUubWliczoKCiAgIGZpbGUgUkVBRE1FLm1pYnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgZmlsZSByZmNtaWJzLmRpZmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMSAxOToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgLCByZWFkX2NvbmZpZy5oICwKICAgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnKGNoYXIgKmxpbmUpIHRvIHBhcnNlIGEgLmNvbmYgY29uZmlndXJhdGlvbgogICAgIGxpbmUgYXQgYW55IHRpbWUgaW4gdGhlIGNvZGUgKGhhbmRsZXJzIG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaGFuZCkuCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWdfcmVtZW1iZXIoY2hhciAqbGluZSkgdG8gbWVtb3JpemUgaXQgZm9yCiAgICAgbGF0ZXIgdXNlLgogICAtIHJlYWRfY29uZmlncywgZXQgYWwsIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZW0gYWZ0ZXIgcmVhZGluZwogICAgIGV2ZXJ5dGhpbmcgZWxzZS4KICAgLSBBZGRlZCBhIC1ZIGZsYWcgdG8gc25tcF9wYXJzZV9hcmdzIHRvIHN0b3JlIHJlYWQgY29uZmlnIGRpcmVjdGl2ZXMKICAgICBmb3IgbGF0ZXIgdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBzcGVjaWZ5IC5jb25mIGRpcmVjdGl2ZXMgb24gdGhlCiAgICAgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wMi0yNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggQWdlbnRYIHN1YmFnZW50cyBhbmQgVkFDTSBjaGVja2luZyBpbnRlcmFjdGlvbi4KICAgKEZpeCBwcm92aWRlZCBieSBGcmFuayBTdHJhdXNzKQogICAKMjAwMS0wMi0yMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHVjZC1zbm1wLWluY2x1ZGVzLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jIChWNC0yLXBhdGNoZXMuMiksIGludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZhcl9zdHJ1Y3QuaCAoVjQtMi1wYXRjaGVzLjEpLCB2YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE2IDA0OjE2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENoYW5nZSBiZWhhdmlvdXIgb24gY3lnd2luIHRvIGV4Y2x1ZGUgVW5peCBkb21haW4gdHJhbnNwb3J0cyBieSBkZWZhdWx0CiAgIG9uIGN5Z3dpbiwgYW5kIGFsc28gZml4IGEgbWlub3IgYnVnLCB0aGFua3MgdG8gc3VnZ2VzdGlvbnMgYnkgUGV0ZXIgRm9say4KICAgCjIwMDEtMDItMTQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEyIDE0OjExICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkZWQgS2FybCdzIHBhdGNoIGZvciB1c2VudW1lcmljCiAgIAoyMDAxLTAyLTEyIDEzOjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNUICwgU05NUC5wbSAsIFNOTVAueHMgLAogICBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBhZGRlZCB0cmFwIHJlY2VwdGlvbiBBUEkgZnJvbSBQaGlsaXAgUHJpbmRldmlsbGUgPHBoaWxpcHBAY2lzY28uY29tPgogICAKMjAwMS0wMi0xMSAwODoyMyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfYWRkIG5vdCBzbm1wX3Nlc3NfYWRkICh0aGUgbGF0dGVyIGRvZXNuJ3QgYWRkIGEgc2Vzc2lvbiB0bwogICB0aGUgU2Vzc2lvbiBsaXN0LCBhbmQgaXQgdGhlcmVmb3JlIHdvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0KCkKICAgZmRzZXQsIGhlbmNlIHNubXB0cmFwZCB3aWxsIG5ldmVyIHJlY2VpdmUgdmVyeSBtdWNoKS4KICAgCjIwMDEtMDItMTEgMDg6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggaW1wcm9wZXJseS10ZXJtaW5hdGVkIGxpc3QgaW4gY29tMnNlYyBoYW5kbGluZy4KICAgCjIwMDEtMDItMTEgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENsZWFuIHVwIG1lcmdlICg+Pj4+Pj4sID09PT09PSBldGMuIGxlZnQgYmVoaW5kKS4KICAgCjIwMDEtMDItMTAgMDk6MjYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8uCiAgIAoyMDAxLTAyLTEwIDA5OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmMgLAogICBzdWJhZ2VudC5jOgoKICAgTWVtb3J5IGxlYWsgcGF0Y2hlcyAoc291cmNlZm9yZ2UgcGF0Y2ggIzEwMzYwNSkuCiAgIFJlbW92ZSBhIGZldyBzdHJkdXAoKXMsIGFuZCBjYWxsIGZyZWVfYWdlbnRfc25tcF9zZXNzaW9uKCkgcmF0aGVyIHRoYW4KICAgZnJlZSgpIGluIHN1YmFnZW50LmM6aGFuZGxlX2FnZW50eF9wYWNrZXQoKSBmb3IgQUdFTlRYX01TR19SRVNQT05TRQogICBhbmQgZGVmYXVsdCBjYXNlcywgdG8gZW5zdXJlIGZyZWUoKWluZyBvZiBjbG9uZWQgUERVIGFsbG9jYXRlZCBieQogICBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgCjIwMDEtMDItMTAgMDc6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaCAsIHNubXBUQ1BEb21haW4uYwogICAsIHNubXBUQ1BEb21haW4uaCAsIHNubXBVRFBEb21haW4uYyAsCiAgIHNubXBVRFBEb21haW4uaCAsIHNubXBVbml4RG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5oCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBXaG9vcHMuICBGb3Jnb3QgdGhlIG5ldyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBsdWdnYWJsZSB0cmFuc3BvcnQgc3R1ZmYuCiAgIAoyMDAxLTAyLTA5IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCAsIG10ZU9iamVjdHNUYWJsZS5jCiAgICwgbXRlT2JqZWN0c1RhYmxlLmggLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmggLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIEltcGxlbWVudGVkIGFuZCBtYWRlIHVzZSBvZiBtdGVPYmplY3RzVGFibGUgdG8gc2VuZCBhZGRpdGlvbmFsIG9iamVjdHMgb3V0IHdpdGggdHJhcHMgZ2VuZXJhdGVkLiAgQWxzbywgZG9uJ3QgcmV0dXJuIGRhdGEgZm9yIG1pc2MgdGFibGVzIHdoZW4gdGhhdCB0cmlnZ2VyIGlzbid0IGRlZmluZWQgdG8gdXNlIHRoYXQgdGVzdCB0eXBlLgogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYyAoVjQtMi1wYXRjaGVzLjIpLCBtaWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjEpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYwogICAsIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMKICAgLCBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0ICwgVDAwMnNubXB2MWdldG5leHQgLAogICBUMDAzc25tcHYxZ2V0ZmFpbCAsIFQwMTRzbm1wdjJjZ2V0ICwgVDAxNXNubXB2MmNnZXRuZXh0CiAgICwgVDAxNnNubXB2MmNnZXRmYWlsICwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwgLCBUMDIwc25tcHYzZ2V0ICwKICAgVDAyMXNubXB2M2dldG5leHQgLCBUMDIyc25tcHYzZ2V0TUQ1ICwKICAgVDAyM3NubXB2M2dldE1ENURFUyAsIFQwMjRzbm1wdjNnZXRTSEExICwKICAgVDAyNXNubXB2M2dldFNIQURFUyAsIFQwMjhzbm1wdjNnZXRmYWlsICwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsIFQwNTNhZ2VudHYxdHJhcCAsCiAgIFQwNTRhZ2VudHYyY3RyYXAgLCBUMDU1YWdlbnR2MW1pbnRyYXAgLAogICBUMDU2YWdlbnR2MmNtaW50cmFwICwgVDA1OGFnZW50YXV0aHRyYXAgLCBUMTAwYWdlbnRodXAKICAgLCBUMTEwYWdlbnR4Z2V0ICwgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsCiAgICwgVDExM2FnZW50eHRyYXAgLCBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQKICAgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvdHJhcHRvZW1haWwgLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICB0cmFwdG9lbWFpbCBwZXJsIHNjcmlwdCBjcmVhdGVkIGFzIGFuIGV4YW1wbGUgdHJhcGhhbmRsZSBzY3JpcHQKICAgCjIwMDEtMDItMDggMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF90cmFwLmMgLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCAsIGFwcHMvc25tcGRlbHRhLmMKICAgLCBhcHBzL3NubXBzZXQuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHZhY20uYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLAogICBsb2NhbC9taWIyYyAsIG1hbi9zbm1wY21kLjEgLCBtaWJzL1JNT04tTUlCLnR4dCAsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnBtICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWVyZ2UgZnJvbSBWNC0yLXBhdGNoZXM6IG1lcmdlIDEtPjIKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jIChWNC0yLXBhdGNoZXMuMSksIGRpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgdXNlIHNubXBfZW51bSdzIHByb3Blcmx5IChzdHJkdXAoKSB0aGUgc3RyaW5ncyBmaXJzdCkKICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYyAsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmggLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmggLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwgbXRlVHJpZ2dlckRlbHRhVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmggLAogICBtdGVUcmlnZ2VyVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5oICwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIEluaXRpYWwgKG5vdC1jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERJU01BTi1FVkVOVC1NSUI6CiAgICAgLSBJbXBsZW1lbnRzIGFsbCAzIHRlc3RzIChib29sZWFuLCB0aHJlc2hvbGQgYW5kIGV4aXN0ZW5jZSkuCiAgICAgLSBub3Qgcmlnb3JvdXNseSB0ZXN0ZWQuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBxdWVyeWluZyB0aGUgbG9jYWwgYWdlbnQKICAgICAgIChtdGVUcmlnZ2VyVGFyZ2V0VGFnIG11c3QgYmUgJycpLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2VuZGluZyB0cmFwcyBhbmQgdGhlIG10ZU9iamVjdHNUYWJsZSBpcwogICAgICAgbm90IGltcGxlbWVudGVkIChteSBuZXh0IHRvZG8gaXRlbSkKICAgICAtIE9ubHkgdGhlIGRlZmF1bHQgdHJhcHMgYXJlIHNlbnQuICBUaGUgbXRlRXZlbnQqIG9iamVjdHMgaGF2ZW4ndAogICAgICAgYmVlbiBpbXBsZW1lbnRlZCAobm8gc2VsZi1kZWZpbmVkIHRyYXBzL3NldHMpLgogICAgIC0gbm8gZWFzeSB0byB1c2UgY29uZmlndXJhdGlvbiB5ZXQgKHNvb24pLgogICAgIC0gY29uZmlndXJlIHdpdGggLS13aXRoLW1pYi1tb2R1bGVzPWRpc21hbi9ldmVudC1taWIKICAgCjIwMDEtMDEtMzAgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzcHJpbnRmIGZvciBzdHJpbmdzIHRoYXQgbWF5IG5vdCBiZSBudWxsIHRlcm1pbmF0ZWQuCiAgIAoyMDAxLTAxLTMwIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIEltcGxlbWVudGVkIGdldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKSBhbmQgc2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpOgogICAgIC0gVGhlc2UgYWxsb3cgYSBtaWIgbW9kdWxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CiAgICAgICBhZ2VudF9zbm1wX3Nlc3Npb24gcG9pbnRlciBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgLSBUaGlzIHNob3VsZCBwcm9iYWJseSBkb25lIGRpZmZlcmVudGx5IGxhdGVyIHdoZW4gd2UgY2hhbmdlIHRoZSBtaWIKICAgICAgIG1vZHVsZSBhcGkuCiAgICAgLSBUaGlzIHdpbGwgY29tcGxldGVseSBmYWlsIHRvIHdvcmsgcHJvcGVybHkgaW4gYSBtdWx0aS10aHJlYWRlZAogICAgICAgYWdlbnQgKHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueXdheSkuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBkZWJ1Z2dpbmcgc3RhdGVtZW50IGF0IGluaXRpYWxpemF0aW9uIHRpbWUuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBwcm9wZXJseSBtYWxsb2MgYSAxIGJ5dGUsIE5VTEwgY2hhcmFjdGVyIHN0cmluZyBmb3IgIiIgcmVhZCBzdHJpbmdzLgogICAKMjAwMS0wMS0yOSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jICwgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiAsCiAgIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMDkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICBkc19hZ2VudC5oICwgdmFyX3N0cnVjdC5oICwgbWliZ3JvdXAvbWliaW5jbC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgU3ViQWdlbnQgcGluZyBzdXBwb3J0OgogICAgIC0gYWdlbnR4UGluZ0ludGVydmFsIHNwZWNpZmllcyBTRUNPTkRTIGJldHdlZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgICAgIHRyaWVzIHRvIHBpbmcgdGhlIG1hc3RlciBhZ2VudC4KICAgICAtIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCBpdCB0cmllcyB0byByZWNvbm5lY3QuCiAgICAgLSBmYWlsaW5nIHRoYXQgaXQgdHJpZXMgZXZlcnkgU0VDT05EUyBhZ2FpbiB0aWxsIGl0IHN1Y2NlZWRzLgogICAgIC0gcmUtcmVnaXN0ZXJzIGl0cyBvaWQncyBiYXNlZCBvbiB0aGUgY3VycmVudCBzdWJ0cmVlIGxpc3QuCiAgICAgICAtIG1heSBuZWVkIHNvbWUgdGhvdWdodC4gIEFzc3VtZXMgKmFsbCogbmVlZCB0byBiZSByZS1yZWdpc3RlcmVkLgogICAgICAgLSBuZWVkcyB0byByZS1yZWdpc3RlciBzeXNvcnRhYmxlIGVudHJpZXMgdG9vLCBidXQgZG9lc24ndC4KICAgICAtIGN1cnJlbnRseSBzZWctZmF1bHRzIG9uIGFib3V0IHRoZSAyLTR0aCB0aW1lIG9yIHNvLiAgTm90IHN1cmUgd2h5LgogICAgIC0gU2hvdWxkIG1ha2UgRGF2ZSBzbWlsZSBvciBjcmluZ2Ugb3IgZ2lnZ2xlLCBub3Qgc3VyZSB3aGljaC4KICAgCjIwMDEtMDEtMDkgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jICwgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMgLCBzbm1wX2VudW0uaDoKCiAgIC0gZ2VuZXJpYyBzbm1wIGVudW0gbGlzdCBzdXBwb3J0LiAgTm90IHVzZWQgYW55d2hlcmUgKHlldCkuCiAgIAoyMDAxLTAxLTA0IDE2OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcAogICAsIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiAsIG1hbi9zbm1wY21kLjEgLCBzbm1wbGliL21pYi5jOgoKICAgLSBhZGRlZCBuZXcgcHJpbnRIZXhUZXh0IHNubXAuY29uZiB0b2tlbi4KICAgLSBkb2N1bWVudGVkIC1PVCwgYW5kIHRoZSB0b2tlbi4KICAgCjIwMDEtMDEtMDQgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmggLCBtaWIuYzoKCiAgIFBhdGNoICMxMDMwOTEgYXBwbGllZDoKICAgICAtIEFkZGVkIC1PVCBvcHRpb24gdG8gdmlldyBoZXggc3RyaW5ncyB3aXRoIHRleHQgaW4gdGhlbS4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjIgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTE5IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBpbml0X3NubXB2MygpIGRlYWwgd2l0aCBhIE5VTEwgYXJndW1lbnQgcHJvcGVybHkuCiAgIAoyMDAwLTEyLTE4IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IHJlbW92ZSBwYXNzdGVzdCBmcm9tIHRoZSAuY3ZzaWdub3JlIGZpbGUgKGJ1ZyAjMTI2OTQpCiAgIAoyMDAwLTEyLTE4IDEwOjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgc25tcGxpYi92YWNtLmM6CgogICAtIHZhY21fdmFycy5jLCB2YWNtLmM6IGluZGV4aW5nIG9mIHZhY21WaWV3VHJlZUZhbWlseUVudHJ5IHdhcyBob3NlZCwgYXNzdW1pbmcKICAgCXRoYXQgdGhlIFN1YnRyZWUgaW5kZXggaGFkIGFuIElNUExJRUQgYXR0cmlidXRlLgogICAKMjAwMC0xMi0wOCAxNDo0NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgLCBocl9wYXJ0aXRpb24uYzoKCiAgIC0gaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzogZml4IHNvbWUgemVybyBpbmRleCB2YWx1ZXMuCiAgIAoyMDAwLTEyLTA4IDE0OjQzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBmaXggcmV0dXJucyBvZiB6ZXJvRG90WmVybyAoc3VjaCBhcyBpZlNwZWNpZmljKQogICAKMjAwMC0xMi0wOCAxNDozOCAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcGQuYzogc2VjdXJpdHkgbW9kZWwgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUgaXMgc25tcCB2ZXJzaW9uIHZhbHVlcwogICAKMjAwMC0xMi0wNiAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBMaW51eCBrZXJuZWwgMi4wLnggaGFzIG5vIEFSUEhSRF9ISVBQSQogICAKMjAwMC0xMi0wNSAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCByc25tcCdzIC91c3IvbG9jYWwgaGFyZGNvZGVkIHBhdGguCiAgIAoyMDAwLTEyLTA0IDE3OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiBmaXgKICAgCjIwMDAtMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjMgLT4gVjQuMi40CgkKMjAwMi0wNC0wNCAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBwYXRjaCBmcm9tIFBldHRlciBMYXJzZW4gdG8gYWRkIGEgZnVuY3Rpb24gZm9yIGV4dHJhY3RpbmcgdGhlIGZkIGFzc29jaWF0ZWQgd2l0aCBhIHNlc3Npb24KICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTMgKQogICAKMjAwMi0wNC0wMiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIEFwcGx5IHBhdGNoICM1MTU1NzcgdG8gZml4IG9uZSBjYXNlIG9mIGEgcmVnaXN0cnkgcHJvYmxlbS4KICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgcy9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBidWcgIzUyNTg0NC4gIHBlcmwgU05NUCB3YXMgdXNpbmcgYSB0cmFwIGFkZHJlc3Mgb2YgMC4wLjAuMC4KICAgCjIwMDItMDMtMjggMjM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI3IDAxOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo0NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGFnZW50IGxpYnJhcmllcyB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgRExMSUJTIGlzIG5vdCBhcyBzdWl0YWJsZSBhcyBBR0VOVF9MSUJTIGZvciB0aGlzCiAgIChzZWUgdGhlIGVxdWl2YWxlbnQgcGF0Y2ggb24gdGhlIG1haW4gYnJhbmNoKSwgYnV0IGl0IHNob3VsZCBkby4KICAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBmaXggYnVnIzUwMjEyMyBhZ2VudHggaW5maW5pdGUgbG9vcC4KICAgCjIwMDItMDMtMjQgMDU6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBSZXN0cmljdCBoclNXUnVuUGFyYW1zIHJldHVybnMgdmFsdWVzIHRvIDEyOCBvY3RldHMKICAgCjIwMDItMDMtMjQgMDU6MDQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMSAwNzoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnICM1MzI2OTYgZml4aW5nIHJwbSBmb3IgbmV3ZXIgcnBtIHZlcnNpb25zCiAgIAoyMDAyLTAzLTIwIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTE5IDAyOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgICAtIHBhdGNoIGZyb20gSm9zaHVhIEdpbGVzIHRvIGluY3JlYXNlIHRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGgKICAgICAgICgjNTI3NjUwKS4KICAgCjIwMDItMDMtMTggMTQ6MzggIG5iYQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCBtaXNzaW5nIGV4cG9ydHMgZm9yIFZDKysgYnVpbGQKICAgCjIwMDItMDMtMTggMTM6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBQcm9wZXIgdGVzdCBmb3Igc3VjY2Vzc2Z1bCBvcGVuIG9mIEVUQ19NTlRUQUIKICAgCjIwMDItMDMtMTggMTM6MDkgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGludGVyY2hhbmdlZCBwYXJhbWV0ZXJzIGZvciBzdHJuY3B5CiAgIAoyMDAyLTAzLTE4IDA4OjUxICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBBcHBseSBET1MtdHlwZSBsaW5lIGVuZGluZ3MgdG8gdGhlIERTVy9EU1AgZmlsZXMuCiAgIAoyMDAyLTAzLTE4IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGZvciBvdXRwdXQgYnVmZmVyIGFuZCBzaXplIGNhbGN1bGF0aW9uLgogICAKMjAwMi0wMy0xOCAwNTozOSAgamJwbgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBzL2hwdXguaDoKCiAgICAgLSBjb21taXQgSm9oYW5uZXMncyB1cGRhdGUgdG8gdGhlIEhQVVgtMTEgcGF0Y2gKICAgCjIwMDItMDMtMTggMDI6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGV4dGVuZCB0Y3Bfd3JhcHBlcnMgc3VwcG9ydCB0byBBZ2VudFguICBUaGlzIG1ha2VzIGl0IG1vcmUKICAgICAgIHJlYXNvbmFibGUgdG8gaW1wbGVtZW50IGEgZGlzdHJpYnV0ZWQgc3ViYWdlbnQgYXJjaGl0ZWN0dXJlCiAgICAgICB3aXRob3V0IG1hc3NpdmUgc2VjdXJpdHkgd29ycmllcy4KICAgCjIwMDItMDMtMTQgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkb250X3Byb2JlIGJ1ZyBwb2ludGVkIG91dCBieSBTdGVmYW4gQWVzY2hiYWNoZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjU4ICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2xhcmlmeSB1bnNpZ25lZCBjaGFyIGFyZ3VtZW50IGZvciB0aGUgbm9pc3kgb3IgY29uZnVzZWQgY29tcGlsZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHF1ZWxsIHNldmVyYWwgd2FybmluZ3MgYWJvdXQgc2lnbmVkIHZzIHVuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMi0wMy0xMyAxODo0NCAgc2xpZgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIHRvIHJlc3RvcmUgYnVpbGRpbmcgZWl0aGVyIERlYnVnIG9yIFJlbGVhc2UgdGFyZ2V0cy4KICAgCjIwMDItMDMtMTMgMTg6NDMgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB0cmFjayBjaGFuZ2Ugc2V0ZW52IC0tPiBzbm1wX3NldGVudgogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBQYXRjaCBmcm9tIGRhbmllbCBTdWxseSB0byBpbXByb3ZlIHNvbGFyaXMgc3dhcCBpbmZvCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmMsCiAgIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgYmV0dGVyIHByaW50aW5nIGFwaXMKICAgCjIwMDItMDMtMTEgMTA6MDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCBhcGkgaW4gYSBjb21tZW50IChob3cgcGlja3kgYW0gST8pCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNToxNiAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTAgMTQ6MDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgT29wcyAtIGZvcmdvdCB0byByZW1vdmUgdGhlICNpZmRlZiBmb3IgdW5zYWZlIHNwcmludF8qIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NTQgIG5iYQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBGaXggdXAgb3V0LW9mLW9yZGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDItMDMtMTAgMTM6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgRG9uJ3QgZGllIG9uIHYyIGV4Y2VwdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NDEgIG5iYQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2RlYnVnLmM6CgogICBSZW1vdmUgc29tZSBjYWxscyB0byBvbGQgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIEFkZCBzbnByaW50XyogcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBhbGwgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIERvY3VtZW50IHNucHJpbnRfe29iamlkLHZhcmlhYmxlLHZhbHVlfQogICAKMjAwMi0wMy0xMCAwODozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIGluY2x1ZGUgdGhlIHNucHJpbnRmIGNvdW50ZXJwYXJ0cyBmcm9tIHRoZSA1LjAgY29kZS4KICAgCjIwMDItMDMtMDggMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVkZWZpbmUgYSB2YXJpYWJsZSBvbiBmcmVlYnNkIGZvciAyLjIuNQogICAKMjAwMi0wMy0wOCAxNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIGEgYnJva2VuIGZpeCBJIGFjY2lkZW50aWNhbGx5IGNvbW1pdHRlZAogICAKMjAwMi0wMy0wOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggZnJvbSBNaWhhaWwgQmFsaWtvdiB0byBzdXBwb3J0IHVwIGJ1dCBubyBpcCBpbnRlcmZhY2VzLgogICAKMjAwMi0wMy0wOCAxNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFjbG9jYWwubTQ6CgogICBwYXRjaCBmcm9tIFBhdWwgUmFzbXVzc2VuIHRvIGZpeCAtLWVuYWJsZS1zaGFyZWQKICAgCjIwMDItMDMtMDggMTY6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb2xkIHBhdGNoIGZyb20gQmVydCBEcmllaHVpcyB0byBmaXggYzY0cyBpbiBwZXJsCiAgIAoyMDAyLTAzLTA4IDE0OjUzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSAxMDAwIGxpbmVzIG9mIGR1cGxpY2F0ZSBjb2RlIGJ5IHVzaW5nIHRoZSBzcHJpbnRfcmVhbGxvY18qIGZ1bmN0aW9ucwogICBpbiB0aGUgaW1wbGVtZW50YWlvbiBvZiB0aGUgbm9uLXJlYWxsb2MgY291bnRlcnBhcnRzLgogICAKMjAwMi0wMy0wOCAxNDo1MSAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIFJlbW92ZSBsYXN0IHNwcmludF9ub25yZWFsbG9jIGNhbGxzCiAgIAoyMDAyLTAzLTA3IDAzOjIwICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAgIC0gcGF0Y2ggZnJvbSBHdXkgSGFycmlzIHRvIGRlc2NyaWJlIG5ldyBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAyOjU4ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZGVjbGFyZSB0aGUgc3ByaW50X3JlYWxsb2NfYmxhaCBmdW5jdGlvbnMuICBUaGFua3MgdG8gR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwMzoxOSAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyBjbGVhbiAodGhpcwogICAgICAgaGFwcGVucyBhbGwgdGhlIHRpbWUgb24gdGhlIGNvbXBpbGUgZmFybSBiZWNhdXNlIGUuZy4gSSBjYW4ndAogICAgICAgZGVsZXRlIFdlcydzIHRlc3QgZGlyZWN0b3JpZXMgYW5kIGl0J3MgYSBudWlzYW5jZSBiZWNhdXNlIHRoZW4gdGhlCiAgICAgICByZXN0IG9mIHRoZSBkaXJlY3RvcmllcyBkb24ndCBnZXQgY2xlYW5lZCB1cCBwcm9wZXJseSkuCiAgIAoyMDAyLTAzLTA2IDAyOjI0ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGFub3RoZXIgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBwcm9ibGVtIGFzIHJlcG9ydGVkIGluIGJ1ZwogICAgICAgIzUyNjI2Mi4KICAgCjIwMDItMDMtMDUgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIG1pc3NlZCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgcGF0Y2guCiAgIAoyMDAyLTAzLTA1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBIG1vZGlmaWVkIHBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyIGZvciBsb25nZXIgY29uZmlndXJlIHN0cmluZ3MuCiAgIAoyMDAyLTAzLTA1IDA4OjIzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIFJldmVyc2UgbXkgZWFybGllciAoYm9ndXMpIGZpeC4KICAgVGhpbmdzIHdlcmUgZmluZSBhcyB0aGV5IHdlcmUgLSBJIG11c3QgYmUgY3JhY2tpbmcgdXAuLi4uLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICBCcmluZyBkZWNsYXJhdGlvbiBvZiAnaW5pdF9hZ2VudCcgaW50byBsaW5lIHdpdGggY29kZSBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0wNSAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIHVjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY291cGxlIG9mIG1hbGxvY3MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDQgMjE6MzggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUyICkKICAgCjIwMDItMDMtMDQgMDE6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2F0Y2ggYW5kIHJlcG9ydCBpbnZhbGlkIG5vZGUgc3BlY2lmaWNhdGlvbnMuCiAgIChUaGlzIG91Z2h0IHRvIGJlIGhhbmRsZWQgYnkgdGhhdCB0ZXN0IHRoYXQgZm9sbG93cyBpbW1lZGlhdGVseSwgYnV0CiAgICAiJFNOTVA6Ok1JQnskb2lkfSIgYXBwZWFycyB0byByZXR1cm4gdGhlIGNvcmUgbWliLTIgb2JqZWN0IHJlZ2FyZGxlc3MpCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJ1ZyAjNTI0NTI5CiAgIAoyMDAyLTAzLTAxIDA3OjE3ICBuYmEKCiAgICogbHRtYWluLnNoLCBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBQdWxsIGluIHVwLXRvLWRhdGUgbGlidG9vbCwgd2hpY2ggc2hvdWxkIGhlbHAgRGFyd2luCiAgIAoyMDAyLTAzLTAxIDA3OjE1ICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgUHVsbCBpbiB1cC10by1kYXRlIGNvbmZpZyBzY3JpcHRzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjYgMTQ6MTggIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIFNhdmUgRmlsZS9saW5lIGZvciBtZXNzYWdlcyBhYm91dCB1bmxpbmtlZCBPSURzCiAgIAoyMDAyLTAyLTI1IDE1OjQ2ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBNYWtlIHN1cmUgdGhhdCB3ZSBmZXRjaCBJQU5BaWZUeXBlLU1JQiBmcm9tIHRoZSBtYWludGFpbmVkIGxvY2F0aW9uLgogICAKMjAwMi0wMi0yNSAxNTo0NSAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBVcGRhdGUgZm9yIFJGQyAzMjMxCiAgIAoyMDAyLTAyLTI1IDA4OjU5ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IFJGQydzIGlzc3VlZCB3aXRoIG1pYnM6CiAgIDMyMDEgICBDSVJDVUlULUlGLU1JQgogICAzMjAyICAgRlJTTEQtTUlCCiAgIDMyMzEgICBESVNNQU4tU0NIRURVTEUtTUlCCiAgIAoyMDAyLTAyLTI1IDA4OjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBGcmVlQlNENCBoYXMgbmV3IGRpc2sgbmFtZXMKICAgCjIwMDItMDItMjUgMDg6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQcm9wZXJseSBicmFja2V0IHJ1bl9scHN0YXQgcHJvdG90eXBlCiAgIAoyMDAyLTAyLTI1IDAyOjQ4ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBvbmx5IGNvcHkgdGhlIGZpcnN0IERFU0NSSVBUSU9OIGNsYXVzZSBvZiBNT0RVTEUtQ09NUExJQU5DRQogICAgICAgc3RhdGVtZW50cyB0byBhdm9pZCBhIG1lbW9yeSBsZWFrIChzZWUgYnVnICM1MjIzNjMpLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jICwKICAgTVNHMDAwMDEuYmluICgxLjEpLCB3aW5zZXJ2aWNlLm1jICgxLjEpOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwMTo0OSAgamJwbgoKICAgKiBGQVEsIFJFQURNRS53aW4zMjoKCiAgICAgLSB1cGRhdGUgY29tbWVudHMgb24gV2luMzIgcG9ydCBpbiBGQVEKICAgCiAgICAgLSBkaXNjdXNzIHdoYXQgSVBITFBBUEkue0xJQixETEx9IGlzIGFuZCB3aGVyZSBpdCBjYW4gYmUgb2J0YWluZWQKICAgICAgIGZyb20gaW4gUkVBRE1FLndpbjMyCiAgIAoyMDAyLTAyLTIxIDA3OjAyICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDAzOjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgICAtIGVtaXQgZXJyb3Igb24gb3Zlci1sZW5ndGggcGFzc3dvcmQgaW5zdGVhZCBvZiB3cml0aW5nIG9mZiBlbmQgb2YKICAgICAgIGJ1ZmZlciAoYnVnICM1MjA2NDksIG5vdGVkIGJ5IEpvaG4gU2VsbGVucykuCiAgIAoyMDAyLTAyLTIwIDA5OjI3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgICAtIGNoYW5nZXMgdG8gYXZvaWQgbmFtZXNwYWNlIGNsYXNoIHByb2JsZW1zIHdpdGggc2V0ZW52KCkgd2hpY2ggYXJlCiAgICAgICBjYXVzZWQgYnkgbGlid3JhcCBzdXBwbHlpbmcgYSBmdW5jdGlvbiBvZiB0aGF0IG5hbWUgYXMgd2VsbCBhcyB1cy4KICAgCiAgICAgLSBhbGwgY2FsbHMgaW4gdGhlIGNvZGUgdG8gc2V0ZW52KCkgYXJlIHJlcGxhY2VkIHdpdGggYSBjYWxsIHRvCiAgICAgICBzbm1wX3NldGVudigpLgogICAKICAgICAtIHNubXBfc2V0ZW52KCkgY2FsbHMgc2V0ZW52KCkgaWYgc3VjaCBhIGZ1bmN0aW9uIGV4aXN0cywgb3RoZXJ3aXNlCiAgICAgICBpdCBzaW11bGF0ZXMgdGhlIGVmZmVjdCBieSBjYWxsaW5nIHB1dGVudigpLgogICAKMjAwMi0wMi0yMCAwNTo0MyAgamJwbgoKICAgKiBORVdTOgoKICAgICAtIG1lbnRpb24gdGNwX3dyYXBwZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNTo0MSAgamJwbgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNToyMCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBleGl0IHdpdGggYW4gZXJyb3IgaWYgLS13aXRoLWxpYndyYXAgaXMgZ2l2ZW4gYW5kIHdlIGNhbid0IGZpbmQgaXQKICAgCjIwMDItMDItMjAgMDM6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMTkgMDY6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUGF0Y2ggZnJvbSBKZXJvZW4gUnVpZ3JvayB0byBtZXJnZSBhIGZldyBpZmRlZnMKICAgCjIwMDItMDItMTkgMDE6NTEgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgICAtIGFkZCBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHN0cnVjdCBubGlzdCB0byBhdm9pZCBjb21waWxlcgogICAgICAgY29tcGxhaW50cy4gIFRoYW5rcyB0byBBbmR5IEhvb2QuCiAgIAoyMDAyLTAyLTE4IDA4OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHBhdGNoIGZyb20gSmVyb2VuIFJ1aWdyb2sgZm9yIG1pbm9yIGlmZGVmIGNsZWFuIHVwcwogICAKMjAwMi0wMi0xOCAwMjozNiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAyOjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHJlbW92ZSB0cm91Ymxlc29tZSBpbmxpbmUgcXVhbGlmaWVycy4gIFRoYW5rcyB0byBBbmR5IEhvb2QgZm9yCiAgICAgICBub3RpbmcgdGhhdCB0aGVzZSBjYXVzZSBwcm9ibGVtcyBvbiBBSVguCiAgIAoyMDAyLTAyLTE4IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICAgIC0gcmVtb3ZlIC8vLXN0eWxlIGNvbW1lbnRzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZCBmb3IgcG9pbnRpbmcgdGhpcwogICBvdXQuCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTUgMjI6MDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUxICkKICAgCjIwMDItMDItMTUgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBmaXggYnVnIzUwODEyNiB3aGljaCBhY3R1YWxseSBsZWQgbWUgdG8gYW5vdGhlci4KICAgICAtIG9pZCBwYXJzaW5nIGFuZCBzZWFyY2hpbmcgaW4gZ2V0bmV4dHMgY291bGQgc29tZXRpbWVzIGxvb3AuCiAgIAoyMDAyLTAyLTE1IDE3OjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3VwcG9ydCAtLWRpc2FibGUtc2hhcmVkLXZlcnNpb24gY29uY2VwdCBmcm9tIFBhdWwgUmFzbXVzc2VuLgogICAKMjAwMi0wMi0xNSAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZHluaXggYnJva2UgbGludXguICBCYWQgZHluaXguICBObyBib25lLiAgR28gdG8geW91ciByb29tLgogICAKMjAwMi0wMi0xNSAxNjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGJhY2sgaW4gbmV0aW5ldC9pbi5oIGFuZCBzeXMvdGltZS5oIChpbiBwcm9wZXIgcHJvdGVjdGVkIGZvcm0pCiAgIHdoaWNoIHdhcyBkZWxldGVkIGZyb20gNC4yLjMgZm9yIHNvbWUgcmVhc29uIHdlIG5ldmVyIGZpZ3VyZWQgb3V0LgogICAKMjAwMi0wMi0xNSAxNjoyMSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFJFQURNRToKCiAgIHVwZGF0ZXMgZm9yIHdoYXQgd2lsbCBiZSA0LjIuNAogICAKMjAwMi0wMi0xNSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGNoZWNrIGVuZCBvZiBtaWJ2aWV3IGNvbmRpdGlvbnMKICAgCjIwMDItMDItMTUgMDg6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUG9wdWxhdGUgYW4gZW1wdHkgY2FzZSBzdGF0ZW1lbnQgKHNwb3R0ZWQgYnkgSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE1IDA3OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVtb3ZlIHVubmVlZGVkIC1DTiBhbmQgLUNPIGV4YW1wbGUgb3B0aW9ucwogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHNubXBsaWIvd2luc2VydmljZS5oLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE0IDExOjExICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBNYWtlIGJ1ZmZlciBwb2ludGVyIHN0YXRpYyBzbyBpdCBkb2Vzbid0IGxlYWsKICAgCjIwMDItMDItMTQgMTE6MTAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBGaXggYmFkIHBhcmFudGhlc2lzCiAgIAoyMDAyLTAyLTE0IDA3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGVtYWlsIGFkZHJlc3MgYnVnICM1MTcxNzgKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgSW5jbHVkZSBSZWRIYXQgcGF0Y2hlcyBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0CiAgIAoyMDAyLTAyLTE0IDAxOjM4ICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgcnBtIGxpYnJhcnkgcmVxdWlyZW1lbnRzCiAgIAoyMDAyLTAyLTEzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBzaGFyZWQgYnkgZGVmYXVsdCBleGNlcHQgZm9yIGRldmVsb3BlcnMKICAgCjIwMDItMDItMTMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICByZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGZyb20gYmVpbmcgZGVjbGFyZWQgaW4gYW5vdGhlciBmdW5jdGlvbi4KICAgCjIwMDItMDItMTMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHJlbW92ZSBpbmxpbmUgZnVuY3Rpb24gZnJvbSBiZWluZyBkZWNsYXJlZCBpbiBhbm90aGVyIGZ1bmN0aW9uLgogICAKMjAwMi0wMi0xMyAwODoxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc2V0cyBvZiB1bnNpZ25lZDMyJ3MuCiAgIAoyMDAyLTAyLTEzIDA3OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRFNfTElCX1BSSU5UX1NVRkZJWF9PTkxZIGlzIGFuIGludGVnZXIgb3B0aW9uLCBub3QgYSBib29sZWFuIGZsYWcuCiAgIChBdHRlbXB0aW5nIHRvIHNldCB0aGlzIHZpYSB0aGUgU1VGRklYIGVudmlyb25tZW50YWwgdmFyaWFibGUgd2lsbAogICB0dXJuIG9uIHBhY2tldCBkdW1waW5nIGluc3RlYWQhKQogICAKMjAwMi0wMi0xMyAwNDoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAgIC0gZml4IGJ1ZyAjNTE2OTA0IChzbm1wZCBkaWVzIGlmIG5vIHByaW50Y2FwIHdpdGggY2dldGVudCksIG5vdGVkIGJ5CiAgICAgICBBbm9ueW1vdXMgLS0gY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGNnZXRuZXh0KCkgcHJvcGVybHkgaW4KICAgICAgIEluaXRfSFJfUHJpbnQoKS4KICAgCjIwMDItMDItMTIgMDc6MTEgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MjkgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTIgMDE6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgSW1wbGVtZW50IHRoZSBCYWRDb21tdW5pdHl7TmFtZXMsVXNlc30gY291bnRlcnMuCiAgIAoyMDAyLTAyLTExIDEwOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kIGNvbHVtbnMgaW4KICAgICAgIHdyb25nIG9yZGVyKS4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA1OjMwICBqYnBuCgogICAqIEZBUToKCiAgICAgLSBtZW50aW9uIEhQVVgtMTEgYW5kIER5bml4L1BUWCA0LjQgc3VwcG9ydCwgYW5kIHNvbWUgc3BlbGxpbmcgZml4ZXMKICAgCjIwMDItMDItMDggMDY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb2Nlc3MgdGhlIGZ1bGwgbGlzdCBvYmplY3RzIGluIGVhY2ggcGFzcyBvZiBhIFNFVCwgZXZlbiBpZiBvbmUgZW50cnkgZmFpbHMKICAgbWlkd2F5IHRocm91Z2guICBUaGlzIGlzIGxlc3MgZWZmaWNpZW50IHRoYW4gZmFpbGluZyBpbW1lZGlhdGVseSwgYnV0IGJyaW5ncwogICB0aGUgYmVoYXZpb3VyIGluIGxpbmUgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwgYW5kIGVuc3VyZXMgdGhhdCBhbGwgcmVzb3VyY2VzCiAgIHdpbGwgYmUgcmVsZWFzZWQuCiAgIAoyMDAyLTAyLTA4IDAyOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZXR1cm4gdGhlIGNvcnJlY3QgZXJyb3IgaW5kZXggZm9yIHByb2JsZW1zIGluIFNFVCBoYW5kbGluZy4KICAgKHBhdGNoICM0NjcxNTUsIGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBSZWdpc3RlciBJUCBSb3V0aW5nIHRhYmxlIG9iamVjdHMgYXMgd3JpdGFibGUuCiAgIAoyMDAyLTAyLTA3IDA3OjM5ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgcy9ocHV4Lmg6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNSAxMTo0NSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDQgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDEtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1pcnJvciBzZWN0aW9uIHVwZGF0ZQogICAKMjAwMi0wMS0yOCAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgd2FybmluZyBhZGRlZCBhYm91dCBzZW5kX3RyYXBfdmFycyBhbmQgZW50ZXJwcmlzZSBvaWQgdXNlZC4KICAgCjIwMDItMDEtMjUgMDY6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI0IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwMzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIHMvYWl4Lmg6CgogICBBSVggc3VwcG9ydCBmb3IgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMiAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGJhY2twb3J0IG9mIHJlY2VudCBpbXByb3ZlbWVudHMgdG8gc25tcFRhcmdldFBhcmFtc1RhYmxlLAogICAgICAgc25tcFRhcmdldEFkZHJUYWJsZSBhbmQgc25tcE5vdGlmeVRhYmxlLgogICAKMjAwMi0wMS0yMSAwNDoyMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzZXQgbm9TdWNoT2JqZWN0IHRvIEZBTFNFIGlmIHdlIGhhdmUgYSB2YWxpZCB3cml0ZV9tZXRob2QgKHRoaXMKICAgICAgIGNhdXNlcyB0aGUgY29ycmVjdCBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgdG8gYmUgZ2VuZXJhdGVkIGlmIHRoZQogICAgICAgcmVxdWVzdGVkIG9iamVjdCBkb2Vzbid0IGV4aXN0KS4KICAgCjIwMDItMDEtMjEgMDQ6MjAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDItMDEtMjEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgICAgLSBiYWNrcG9ydCBvZiByZWNlbnQgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlLCB2YWNtQWNjZXNzVGFibGUgYW5kCiAgICAgICB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZSBjaGFuZ2VzIChjb3JyZWN0ZWQgc3RhdGUgbWFjaGluZXMpLgogICAgICAgQmVmb3JlOiBwYXNzZWQgMjAsICBmYWlsZWQgODAsIHVudGVzdGVkIDExCiAgICAgICBBZnRlcjogIHBhc3NlZCAxMDcsIGZhaWxlZCAxLCAgdW50ZXN0ZWQgMwogICAKICAgICAgIFRoZSBzdGlsbC1leHRhbnQgZmFpbHVyZXMgYXJlIGR1ZSB0byB0aGUgbm9uLWltcGxlbWVudGVkCiAgICAgICB2YWNtQ29udGV4dFRhYmxlLgogICAKMjAwMi0wMS0xNSAxMjo0NCAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgRml4IHN0dXBpZCBtaXNzaW5nIHNpemVvZihvaWQpIGZhY3RvciBpbiBtZW1jcHkKICAgCjIwMDItMDEtMTUgMTI6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIERvbnQgdXNlIHN0YXRpYyBidWZmZXIgd2hlbiByZWFkaW5nIC9wcm9jL3N0YXQKICAgCjIwMDItMDEtMTUgMTI6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBzL3NvbGFyaXMyLjYuaCwgcy9zb2xhcmlzMi43LmgsCiAgIHMvc29sYXJpczIuOC5oOgoKICAgRml4IGhyTWF4UHJvY2Vzc2VzIGZvciBTb2xhcmlzCiAgIAoyMDAyLTAxLTE1IDEyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU29tZSBhZGRpdGlvbmFsIGRlYnVnIHN0YXRlbWVudHMKICAgCjIwMDItMDEtMDkgMDg6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgQWRkIGZ1bmN0aW9uIHRvIGFjY2VzIHJhdyBrc3RhdCBkYXRhCiAgIAoyMDAyLTAxLTA5IDA4OjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBVc2UgdGhhdCBzeXNjb25mIHJldHVybnMgYSBsb25nLCB0byBzYXZlIGxhcmdlIHBoeXMgbWVtCiAgIAoyMDAyLTAxLTA5IDA4OjI0ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KICAgCjIwMDItMDEtMDkgMDg6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDYXJlIGZvciBMaW51eCBkcml2ZXJzIHRoYXQgbWFpbnRhaW4gb2N0ZXQgY291dGVycyBhcyBsb2cgbG9uZyB2YWx1ZXMKICAgCjIwMDItMDEtMDkgMDI6MjAgIGpicG4KCiAgICogRkFROgoKICAgICAtIGFkZCBPUyBYIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIE9TZXMsIHRvIGZpeCBidWcgIzUwMTE3OSAoISkKICAgCjIwMDItMDEtMDMgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBidWcgIzQ5ODgwOSAoSSB0aGluaykgYnkgY2hlY2tpbmcgc2V0bW50ZW50IHJldHVybiB2YWx1ZS4KICAgCjIwMDItMDEtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMS0xMi0xOCAwODo0OSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgICAgLSBhZGQgT1NUWVBFIGRlZmluZSBmb3Igd2luMzIKICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDY6NTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHBhdGNoIGZyb20gTGF0aGEgUHJhYmh1IHRvIHByb2R1Y2UgbW9yZSBtZWFuaW5nZnVsIHN5c0Rlc2NyLjAKICAgICAgIHN0cmluZ3MgZm9yIE1pY3Jvc29mdCBwbGF0Zm9ybXMuCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoIGZyb20gSmFzb24gR2xvdWRvbiB0byBmaXggbGVha2luZyBzZXNzaW9uIHN0cnVjdHVyZXMgZnJvbSBzbm1wX3RpbWVvdXQoKS4KICAgCjIwMDEtMTItMDMgMTQ6NTIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb21wbGV0ZSB0aGUgQlNEIElQU1RBVFMgY29uZmlndXJlIHRlc3RzLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIE1vcmFlcwogICAoYnVnIyA0ODc3MDgpCiAgIAoyMDAxLTExLTI5IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICA0LjIuMyBjaGFuZ2VzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjIgLT4gVjQuMi4zCgkKMjAwMS0xMS0yOSAxNDoyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4zICkKICAgCjIwMDEtMTEtMjkgMTM6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTb2xhcmlzIDggcmVuYW1lZCB0aGUga3N0YXQgaWZzcGVlZCBhdHRyaWJ1dGUgdG8gaWZTcGVlZCBhbmQgc29tZXdoZXJlCiAgIGFsb25nIHRoZSBsaW5lIGNoYW5nZWQgaXRzIHZhbHVlIGZyb20gTWJwcyB0cCBicHMKICAgCjIwMDEtMTEtMjggMTQ6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGltcHJvdmVkIGlyaXggc3VwcG9ydC4KICAgCjIwMDEtMTEtMjggMTQ6MzEgIGhhcmRha2VyCgogICAqIHMvaXJpeC5oOgoKICAgbGFzdCBmaXhlcyBmb3IgaXJpeCBJIHRoaW5rCiAgIAoyMDAxLTExLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjcmVhdGUgaXNsYW5kcyBpbiB0aGUgc3RyZWFtCiAgIAoyMDAxLTExLTI4IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBzL2lyaXguaDoKCiAgIGlyaXggZml4ZXMgZm9yIGJyb2tlbiBpcml4IGhlYWRlcnMKICAgCjIwMDEtMTEtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgdmVyc2lvbiBzdGFtcCAoNC4yLjMucHJlMSAob3BwcykpCiAgIAoyMDAxLTExLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZml4IGZvciB2ZXJzaW9uIHN0YW1waW5nIHRoZSBwZXJsIG1vZHVsZS4KICAgCjIwMDEtMTEtMjcgMTc6MDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDQuMi4zCiAgIAoyMDAxLTExLTI3IDExOjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICB1c2UgYXQgb3duIHJpc2sgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGRlcGVuZGFuY2llcwogICAKMjAwMS0xMS0yNyAwNjo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgICAtIHRyeSBoYXJkZXIgdG8gZ2V0IGhyU3lzdGVtTWF4UHJvY2Vzc2VzLjAgcmlnaHQsIGRyYXdpbmcgb24gcGF0Y2gKICAgICAgICM0ODU3NjUsIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIsIGZvciBMaW51eCwgYW5kCiAgICAgICBhbHNvIHVzaW5nIHN5c2N0bCgpIG1vcmUgd2lkZWx5LgogICAKMjAwMS0xMS0yNyAwNjo1MSAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIHMvbGludXguaDoKCiAgICAgLSBMb29rIGZvciA8bGludXgvdGFza3MuaD4sIGluIG9yZGVyIHRvIGdpdmUgYSBiZXR0ZXIgdmFsdWUgZm9yCiAgICAgICBoclN5c3RlbU1heFByb2Nlc3Nlcy4wLiAgRnJvbSBwYXRjaCAjNDg1NzY1LCBzdWJtaXR0ZWQgYnkKICAgICAgIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjcgMDM6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgsIHRjcC5jOgoKICAgICAtIGdpdmUgY29ycmVjdCB2YWx1ZXMgZm9yIHRjcEluRXJycy4wIGFuZCB0Y3BPdXRSc3RzLjAgdW5kZXIgTGludXgKICAgICAgIGlmIHRoZSBrZXJuZWwgbWFrZXMgdGhlIGRhdGEgYXZhaWxhYmxlLiAgRnJvbSBwYXRjaCAjNDg1NzY1LAogICAgICAgc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjYgMDk6NTEgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0OgoKICAgICAtIGxvbmdlciB0aW1lb3V0IGZvciBpbml0aWFsIEdFVCAoZml4IHNwdXJpb3VzIHRlc3QgZmFpbHVyZXMpCiAgIAoyMDAxLTExLTIxIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBoZWxwIHVwZGF0ZSB0byByZW1vdmUgdGhlIHN1cHBvcnQgZGF0YWJhc2UKICAgCjIwMDEtMTEtMjEgMDQ6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgICAtIGZpeCBjb21waWxhdGlvbiBmb3IgVWx0cml4IDQuNSAoYnVnICMgNDE1MTk3KSAtLSBtYWtlIHN1cmUKICAgICAgIHZmcy5mX2JzaXplIGV4aXN0cyBpbiB2YXJfZXh0ZW5zaWJsZV9kaXNrKCksIGFuZCBkZWZhdWx0IGl0IHRvCiAgICAgICAxMDI0LgogICAKMjAwMS0xMS0yMCAwMjoyNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudGF0aW9uIG9mIGlnbm9yZWRpc2sgZGlyZWN0aXZlLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9kaXNrLmgsIGhyX3BhcnRpdGlvbi5jLAogICBocl9wYXJ0aXRpb24uaDoKCiAgICAgLSBwYXRjaCBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciB0byBhZGQgZGlyZWN0aXZlICJpZ25vcmVkaXNrIiB0bwogICAgICAgc2tpcCBjZXJ0YWluIGRldmljZXMgKGFuZCBoZW5jZSBhdm9pZCB0aGUgYHNubXB3YWxrIHRpbWVzIG91dCcgdHlwZQogICAgICAgcHJvYmxlbXMgZnJlcXVlbnRseSByZXBvcnRlZCkuICBBbHNvIGV4dGVuZHMgc2VhcmNoIHJhbmdlcyB0byBjb3BlIHdpdGgKICAgICAgIGxhcmdlciBudW1iZXJzIG9mIGRpc2tzIGV0Yy4KICAgCjIwMDEtMTEtMTYgMDU6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTYgMDM6MjEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gbW9yZSBjb25zdC1uZXNzIGluIHFzb3J0X2NvbXBhcmUgPT4gZmV3ZXIgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NTQgIGpicG4KCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gYWRkIHByb3RvdHlwZXMgZm9yIHRpbWVyU2V0KCkgYW5kCiAgICAgICB0aW1lclBhdXNlKCkuCiAgIAoyMDAxLTExLTE2IDAyOjUyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byAjaW5jbHVkZSA8Z3JwLmg+IGlmIHdlIGhhdmUgaXQKICAgCjIwMDEtMTEtMTYgMDI6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmV0dXJuIGEgdmFsdWUgZnJvbQogICAgICAgbm90aWZ5VGFibGVfdW5yZWdpc3Rlcl9ub3RpZmljYXRpb25zKCkgdG8gYXZvaWQgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtYWtlIHNpZ25hdHVyZSBvZiBxc29ydF9jb21wYXJlCiAgICAgICBmdW5jdGlvbiBtYXRjaCB0aGF0IGV4cGVjdGVkIGJ5IHFzb3J0KDMpIC0tIGFkZHMgY29uc3QgdG8gYXJncy4KICAgCjIwMDEtMTEtMTYgMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1ha2UgZGVmaW5pdGlvbiBvZiBwcmludF90cmVlX25vZGUKICAgICAgIHN0YXRpYyB0byBtYXRjaCBmb3J3YXJkIGRlY2xhcmF0aW9uLgogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGZpeCBiYWQtbG9va2luZyBleHByZXNzaW9uIHdoaWNoIHdhcyBjYXVzaW5nIHByb2JsZW1zIGRlc2NyaWJlZCBpbgogICAgICAgZW1haWwgdGl0bGVkICJEZWZlY3QgcmVwb3J0IG9uIFVDRCBTTk1QIHRvb2xraXQgKGNyYXNoIGluCiAgICAgICBrZXJuZWxfc3Vub3M1LmMpIiBzZW50IHRvIG5ldC1zbm1wLXVzZXJzIG9uIDIwMDEtMDctMTcuCiAgIAoyMDAxLTExLTE1IDA4OjMzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODoyOCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA1OjE2ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0LCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE0IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMy5wcmUxICkKICAgCjIwMDEtMTEtMTQgMTc6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgbnVtZXJpYyBjb21tZW50cyBpbiBib3RoIGhleCBhbmQgZGVjaW1hbAogICAKMjAwMS0xMS0xNCAxNzo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNsdWRlIElOVEVHRVIzMiBpbiBJTlRFR0VSIGNhc2UgY2hlY2tpbmcuCiAgIAoyMDAxLTExLTE0IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdmVyc2lvbiB0YWcgcGVybC9TTk1QL1NOTVAucG0gd2l0aCB0aGUgdWNkLXNubXAgdmVyc2lvbiBudW1iZXIuCiAgIAoyMDAxLTExLTE0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gc25tcGNvbmYuCiAgIAoyMDAxLTExLTE0IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTE6NTggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gbWFrZSBhIG5ldyBjYWxsYmFjayBmb3IgcHJlLXVwZGF0ZS1jb25maWcgY29uZGl0aW9ucy4KICAgLSBtYWtlIHRoZSBzbm1wTm90aWZ5VGFibGUgbWFrZSB1c2Ugb2YgaXQgdG8gcmVtb3ZlICJyZWFkT25seSIgZW50cmllcwogICAgIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gZ2VuZXJhdGVkIHZpYSBjb25maWd1cmF0aW9uIHBhcnNpbmcuCiAgICAgLSBub3RlIHRoYXQgdGhpcyBkb2Vzbid0IHJlbW92ZSB0aGUgZ2VuZXJhdGVkIHRhcmdldCBlbnRyaWVzLCB3aGljaAogICAgICAgaXMgbm90IGlkZWFsLCBidXQgYXQgbGVhc3QgZHVwbGljYXRlIHRyYXBzIGFyZW4ndCBzZW50LgogICAKMjAwMS0xMS0xMyAxMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gbG9vayBmb3IgZXJpIGludGVyZmFjZXMuCiAgIAoyMDAxLTExLTEzIDA1OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEyIDIzOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYzoKCiAgIE1TIEMrKyB3YXJuaW5nIGZpeGVzIGZyb20gSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMTEtMTEgMjE6NDggIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlc3RvcmUgdGhlIG9sZCB2YWx1ZSBvZCBUSU1FX1dJVEhfU1lTX1RJTUUKICAgCjIwMDEtMTEtMDkgMTI6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEFkZGVkIGEgZ2VybWFueSBiYXNlZCBtaXJyb3IKICAgCjIwMDEtMTEtMDkgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1lbnRpb24gbmV3IG1pcnJvcgogICAKMjAwMS0xMS0wOSAxMToyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgYXBwbGllZCBlbmdsaXNoL3R5cG8vY2hhbmdlcyBub3RlZCBpbiBidWcgIzQ3MTE3OQogICAKMjAwMS0xMS0wOSAwOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyA0NzkzNjU6IHVzZSBzdHJuY3B5IGluIHNubXBfYWRkX3ZhcigpLgogICAKMjAwMS0xMS0wOSAwNzo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaXggYnVnICM0NzQ0ODg6IGFkZCBleHRlcm4gQyB3cmFwcGVycwogICAKMjAwMS0xMS0wOSAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggT0lEcyB0byBpbmNsdWRlIGVudHJ5IG5vZGUKICAgCjIwMDEtMTEtMDggMDk6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFVOSVQgc3BlY3MgZm9yIHRoZSBmaWxlVGFibGUgdG8gc2F5IGtCIGV4cGxpY2l0bHkKICAgCjIwMDEtMTEtMDggMDk6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB0aGF0IHRoZSBmaWxlVGFibGUgaXMgaW4ga0IuCiAgIAoyMDAxLTExLTA2IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCB0a21pYjoKCiAgIGFkZCBmaXhlcyB0byBjaGVjayBmb3IgdGhlIFNOTVAgYW5kIFRrIHBlcmwgbW9kdWxlcyBhbmQgcHJpbnQgYSBiZXR0ZXIKICAgZXJyb3IgbWVzc2FnZSBpZiB0aGV5J3JlIG5vdCBhdmFpbGFibGUgdGVsbGluZyB1c2VycyBob3cgdG8gZ2V0IHRoZW0uCiAgIAoyMDAxLTExLTA2IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBhc25fYnVpbGRfYml0c3RyaW5nIHRvIGNoZWNrIGZvciBOVUxMIHZhbHVlcyAocG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4pLgogICAKMjAwMS0xMS0wNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBsZW5ndGggY2hlY2sgZml4ZWQgZm9yIHdyYXBwZWQgYWRkaXRpb24uICBCdWcgcG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4KICAgCjIwMDEtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBtYWtlIHBhdGhzIG1vcmUgY29uZmlndXJhYmxlIGZyb20gd2l0aGluIEMgY29kZS4KICAgCjIwMDEtMTAtMzAgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMjYgMDk6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGFnZW50eC9jbGllbnQgLT4gYWdlbnR4L3N1YmFnZW50IGhlbHAgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwMzozNCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDk6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzozMyAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTI0IDAzOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTA4IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjEgLT4gVjQuMi4yCgkKMjAwMS0xMC0wOCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBBcHBseSBwYXRjaGVzIHN1Z2dlc3RlZCBpbiBidWcgIzQ2OTA4MiB0byBmaXggaWxsZWdhbCByb3cgY3JlYXRpb25zCiAgIHdoZW4gcm93c3RhdHVzIGlzIHNldCB0byBkZXN0cm95LgogICAKMjAwMS0xMC0wNiAwNzo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWlub3IgdHdlYWtzIHRvIHRoZSBkb3dubG9hZCBsaXN0LgogICAKMjAwMS0xMC0wNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIERhdmlkIExhd3JlbmNlJ3MgdGV4dCBhYm91dCBjb250cmlidXRpbmcgcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDUgMTg6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTYgKQogICAKMjAwMS0xMC0wNSAxODowMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICBDaGFuZ2UgX1JFRU5UUkFOVCBkZWZpbmUgdG8gTlNfUkVFTlRSQU5UIHRvIG5vdCBjb25mbGljdCB3aXRoIEJTRC9PUyA0LjMuCiAgIAoyMDAxLTEwLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgcy9pcml4Lmg6CgogICBpcml4IHNwZWNpZmljIGZpeGVzIG1lbnRpb25lZCBpbiBidWcgIzQwNTQ1NAogICAKMjAwMS0xMC0wNSAxNzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggIzQ0MDgwOCBwb3NzaWJseSBvdmVyd3JpdGluZyBhIG9pZCBidWZmZXIuCiAgIAoyMDAxLTEwLTA1IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgZml4IHVuc2lnbmVkMzIgcmV0dXJuIHZhcmlhYmxlIHVzYWdlCiAgIAoyMDAxLTEwLTA1IDE2OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgbW92ZSBhcnB0YWJfY3VycmVudCBhbmQgYXJwdGFiX3NpemUgZGVmaW5pdGlvbnMgdXAgb3V0IG9mIGlmZGVmIG1lc3MuCiAgIAoyMDAxLTEwLTA1IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRvbid0IGNyZWF0ZSByb3dzdGF0dXMgZW50cmllcyB3aXRoICdkZXN0cm95JyBhcyBpbml0aWFsIHZhbHVlLgogICAKMjAwMS0xMC0wNSAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBmaXhlZCBVTkRPIGNsYXVzZXMuCiAgIAoyMDAxLTEwLTA1IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBmb3IgcGlja3kgY29tcGlsZXJzLgogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgYmV0dGVyIGVycm9yIGRlc2NyaXB0aW9uIGZvciB0cmFwc2VzcwogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgQWRkZWQgbWlycm9yIHNpdGVzLgogICAKMjAwMS0xMC0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNNVVgtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1JQiBwcm9ibGVtcyBwb2ludGVkIG91dCBieSBNYXJlayBNYWxvd2lkemlraQogICAKMjAwMS0xMC0wNCAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIERvbid0IHdyaXRlIGEgbnVsbCBwYXN0IHRoZSBlbmQgb2YgdGhlIGNvbW11bml0eSBzdHJpbmcgYnVmZmVyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9leHRlbmRpbmcsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggZnJvbSBULiBKLiBNYXRoZXI6IERvY3VtZW50YXRpb24gb2YgdGhlIHBhc3NfcGVyc2lzdCBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIFBhdGNoIGZyb20gVC4gSi4gTWF0aGVyOiBBbiBleGFtcGxlIChwZXJsKSBwYXNzX3BlcnNpc3Qgc2NyaXB0LgogICAKMjAwMS0xMC0wNCAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCiAgICAgICBBbHNvIG5vdGVkIHdpdGggZXh0ZW5zaXZlIGFuYWx5c2lzIGJ5IFRlZCBSdWxlIGluIGJ1ZyAjNDY3NTUxLgogICAKMjAwMS0xMC0wMyAxMToyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNSApCiAgIAoyMDAxLTEwLTAzIDExOjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi90b29scy5jOgoKICAgcHJvcGVyIGNvbnN0IGNhc3RpbmcgaW4gZnJvbnQgb2YgTWFya2t1J3MgY2FzdGluZyBwYXRjaC4KICAgCjIwMDEtMTAtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi90b29scy5jOgoKICAgUGF0Y2g6IHByb3BlciBjYXN0cyBmb3IgcGlja3kgY29tcGlsZXJzIGZyb20gTWFya2t1IExhdWtrYW5lbi4KICAgCjIwMDEtMTAtMDMgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJidWlsZCBiZXlvbmQgdGhlIGVuZCBvZiBhIGJ1ZmZlciAobmVlZGVkIGJ1ZmZlciArIGxlbmd0aCAiLSAxIikuCiAgIAoyMDAxLTEwLTAzIDA1OjM4ICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ2hhbmdlIG9pZCBsZW5ndGhzIHRvIHNpemVfdCBmcm9tIGludCAoc2VnZmF1bHRzIG9uIGFuIGFscGhhL2xpbnV4KS4KICAgCjIwMDEtMTAtMDIgMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgQWRkIHByb3RvdHlwZSBmb3IgZ2V0VG90YWxTd2FwKCkuCiAgIAoyMDAxLTEwLTAyIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgcmV0dXJuIE5PVF9XUklUQUJMRSBpbnN0ZWFkIG9mIFJFQURPTkxZIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIGFyYWplc2hAaW5kaWEuYWR2ZW50bmV0LmNvbS4KICAgCjIwMDEtMTAtMDIgMTc6MDMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gZGVmaW5lIHNucHJpbnRmIGFzIF9zbnByaW50ZgogICAKMjAwMS0xMC0wMiAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gY2hlY2sgZm9yIEhBVkVfTFBTVEFUIGJlZm9yZSBjYWxsaW5nIGl0LgogICAKMjAwMS0xMC0wMiAxNzowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIFJvbi4KICAgCjIwMDEtMTAtMDIgMTc6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBnZXRfdXB0aW1lKCkgaW1wbGVtZW50YXRpb24gZm9yIHdpbmRvd3MgZnJvbSBSb24gTWV2aXNzZW4uCiAgIAoyMDAxLTEwLTAxIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU0ICkKICAgCjIwMDEtMTAtMDEgMTc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgbWFrZWZpbGVpbmRlcGVuZAogICAKMjAwMS0xMC0wMSAxNzozNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIHRyYW5zbGF0ZSAubyAtPiAubG8gYnkgaGFuZC4KICAgCjIwMDEtMTAtMDEgMTc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX3ByaW50LmM6CgogICBBcHBsaWVkIHBhdGNoICM0NjU1NDUgdG8gZml4IGRlbGF5cyBpbiBob3N0IHJlc291cmNlcyBtaWIgd2hlbiBsb29raW5nCiAgIGF0IGRldmljZXMgYW5kIHByaW50ZXJzLgogICAKMjAwMS0xMC0wMSAxNjo0NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3IHN0dWZmIGluIDQuMi4yCiAgIAoyMDAxLTEwLTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xOgoKICAgbWFrZSBzbm1wd2FsayBkZWZhdWx0IHRvIGRldGVjdGluZyBpbGxlZ2FsIE9JRCBpbmNyZWFzZXMuICAtQ2MgdHVybnMKICAgaXQgb2ZmIGluc3RlYWQgb2Ygb24uCiAgIAoyMDAxLTEwLTAxIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZWRpdGluZyB0d2Vha3MgYnkgSm9obiB0byBjb3VudCB0aGluZ3MgcHJvcGVybHkuICBXZXMgbG9vc2VzIHRoZQogICBhYmlsaXR5IHRvIGNvdW50IGJleW9uZCB0aGUgbnVtYmVyIDIuCiAgIAoyMDAxLTEwLTAxIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGl0dG8uCiAgIAoyMDAxLTEwLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgVmFyaW91cyBjb3B5cmlnaHQgdXBkYXRlcy4KICAgCjIwMDEtMTAtMDEgMDI6NTIgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCAjaW5jbHVkZSAic25tcF9sb2dnaW5nLmgiIHRvIGF2b2lkIGNvbXBpbGF0aW9uIHByb2JsZW1zIG9uCiAgICAgICBzb21lIHBsYXRmb3JtcyBpbnRyb2R1Y2VkIGJ5IG5ldyBlcnJvciBtZXNzYWdlcy4gU2VlOgogICAgICAgPFVSTDpodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFpZD00NjU4MDcmZ3JvdXBfaWQ9MTI2OTQmYXRpZD0xMTI2OTQ+CiAgIAoyMDAxLTA5LTI5IDA2OjA2ICBuYmEKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIEFkZCBhIG1pc3NpbmcgcHJvdG90eXBlIGZvciBzbm1wX3JlYWxsb2NfYnlfdHlwZQogICAKMjAwMS0wOS0yOSAwNjowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgRml4IGEgYmFkICNpZmRlZiBwYXJhbnRoZXNlcwogICAKMjAwMS0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBzbXV4IGlzICpub3QqIGEgcHJvcGVyIGRlbGVnYXRpb24gc3ViYWdlbnQuCiAgIAoyMDAxLTA5LTI1IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUzICkKICAgCjIwMDEtMDktMjUgMTE6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzY2FwaS5oOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2VzIHdoZW4gZW5jcnlwdGlvbiBzdXBwb3J0IGlzbid0IGF2YWlsYWJsZS4KICAgCjIwMDEtMDktMjUgMDc6NTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGFub3RoZXIgc3BhY2UgdGhhdCB3b3VsZCBtYWtlIHRoZSB0ZXN0IHN1aXRlIGZhaWwKICAgCjIwMDEtMDktMjUgMDc6NTMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZQogICAKMjAwMS0wOS0yNSAwNTo0MyAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIGluY29ycG9yYXRlIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGZyb20gbWFpbiBicmFuY2ggdG8gYXZvaWQKICAgICAgIGZpeGVkIGxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTI1IDA1OjQxICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2UgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBzcHJpbnQgZnVuY3Rpb25zCiAgIAoyMDAxLTA5LTI1IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHBhcnNlLmg6CgogICAgIC0gYWRkIHJlbG9jYXRpbmcgYnVmZmVyIGNvZGUgZnJvbSBtYWluIGJyYW5jaAogICAKMjAwMS0wOS0yNSAwNTozOSAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBhZGQgc25tcF9yZWFsbG9jKCkgYW5kIHNubXBfc3RyY2F0IGZ1bmN0aW9ucyB3aGljaCB0aGUgcmVsb2NhdGluZwogICAgICAgYnVmZmVyIGNvZGUgdXNlcwogICAKMjAwMS0wOS0yMSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBHbGVubiBNYW5zZmllbGQgdG8gZml4IGludGVyZmFjZSBjb3VudGluZyBvbiBpbnRlcmZhY2VzCiAgIHdpdGhvdXQgaXAgYWRkcmVzc2VzLgogICAKMjAwMS0wOS0yMCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgY2hlY2sgc2tpcF93aGl0ZSgpIHJldHVybiAoYXMgbWVudGlvbmVkIGluIHBhdGNoICM0NjIyMDEpLgogICAKMjAwMS0wOS0yMCAxMTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeGVkIGEgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93IGJ1ZyBpbiBzcHJpbnRfYXNjaWlzdHJpbmcgYXMgcG9pbnRlZAogICBvdXQgYnkgYnVnICM0NjMyMjYuCiAgIAoyMDAxLTA5LTIwIDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IHdhcm4gYWJvdXQgbWlzc2luZyBvcGVuc3NsIHVubGVzcyBleHBsaWNpdGx5IGFza2VkIChhbmQgdGhlbiBlcnJvcikuCiAgIAoyMDAxLTA5LTIwIDA5OjEyICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBtb3ZlIGhlYWRlcnMgYXJvdW5kIHRvIGZpeCBjb21waWxhdGlvbiBvbiBTb2xhcmlzIDIuNzsgc3lzL3N0cmVhbS5oCiAgICAgICBuZWVkcyB0byBiZSBpbmNsdWRlZCBiZWZvcmUgc3lzL3NvY2tldHZhci5oIGZvciB0aGlzIHBsYXRmb3JtLgogICAKMjAwMS0wOS0yMCAwOTowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgInN5c3RlbS5oIiB3aGljaCB1c2VzIHRoZSB0eXBlIGluX2FkZHJfdCB0aGVyZWJ5CiAgICAgICBjYXVzaW5nIHByb2JsZW1zLCBhbmQgc2VlbXMgdG8gYmUgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMS0wOS0yMCAwNjo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWFrZSBzdXJlIEhhcnJpZSdzIG5hbWUgaXMgaW4gdGhlIHBhdGNoZXMgUkVBRE1FIGFzIHdlbGwgYXMgdGhlIG1haW5saW5lLgogICAKMjAwMS0wOS0yMCAwNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfZGVidWcuYywgc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIHByb3BlciBwcm90b3R5cGVzIGZvciBzb21lIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDktMTkgMTc6MTkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTIgKQogICAKMjAwMS0wOS0xOSAxNzowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMSApCiAgIAoyMDAxLTA5LTE5IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCiAgIAoyMDAxLTA5LTE4IDE3OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVbmRvIE5pZWxzJyBjaGFuZ2UgdG8gYWxsb3cgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gb3ZlcnJpZGUgLmNvbmYKICAgZmlsZXMuICBSaWdodCBnb2FsLCB3cm9uZyBicmFuY2ggdG8gZG8gaXQgaW4gYXMgaXQgYnJva2UgU05NUHYzIGFtb25nCiAgIG90aGVyIHRoaW5ncy4gIFRoZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGlzIHJhdGhlciBzZW5zaXRpdmUgdG8KICAgb3JkZXJpbmcuCiAgIAoyMDAxLTA5LTE4IDE1OjA4ICBuYmEKCiAgICogcy9kYXJ3aW4uaDoKCiAgIEZpeCBhbiBvdmVyc2lnaHQgaW4gdGhlIERhcndpbiBwYXRjaAogICAKMjAwMS0wOS0xOCAxNTowOCAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGFuIG92ZXJzaWdodCBpbiB0aGUgRGFyd2luIHBhdGNoZXMKICAgCjIwMDEtMDktMTcgMDk6MDAgIG5iYQoKICAgKiBzL2Rhcndpbi5oOgoKICAgVGhlIGRhcndpbiBzeXN0ZW0gZmlsZSwgd2hpY2ggSSBmb3Jnb3Qgd2hlbiBjb21taXR0aW5nIHRoZSByZXN0IG9mCiAgIHRoZSBkYXJ3aW4gcGF0Y2guCiAgIAoyMDAxLTA5LTE3IDA3OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIgcnVuCiAgIAoyMDAxLTA5LTE3IDA0OjEzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBuZXdsaW5lcyBpbnNpZGUgdXNhZ2Ugc3RyaW5nLgogICAKMjAwMS0wOS0xNiAxNDo1NiAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBNb3ZlIHRoZSBzbXV4X2xpc3Rlbl9zZCB2YXJpYWJsZSB0byBzbXV4LmMuIFRoaXMgd2F5IGl0IHdpbGwgYmUgaW4gdGhlCiAgIGxpYnJhcnkgc28gdGhlIGxpbmtlciB3b250IGJlIHVwc2V0IHdoZW4geW91IGxpbmsgd2l0aCB0aGUgYWdlbnQgbGlicmFyeS4KICAgCjIwMDEtMDktMTYgMTQ6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBzL29wZW5ic2QuaDoKCiAgIFBhdGNoZXMgZm9yIE9wZW5CU0QgMi45CiAgIAoyMDAxLTA5LTE2IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBkaXNraW8gc3VwcG9ydCBmb3IgRnJlZUJTRDQuIFRoYW5rcyB0byBZaW1pbiBHZQogICAKMjAwMS0wOS0xNiAxNDoxNiAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgUGF0Y2hlcyB0byBzdXBwb3J0IERhcndpbiAoTWFjIE9TL1gpCiAgIFRoYW5rcyB0byBUZXggQ2xheXRvbiA8dGV4QGRhcnR3YXJlLmNvbT4KICAgCjIwMDEtMDktMTYgMTQ6MDMgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGVhZGVyIHJlYXJyYW5nZW1lbnRzIHRvIG1ha2UgQlNEJ3MgaGFwcHkgYWZ0ZXIgdGhlIFdJTjMyIHBhdGNoCiAgIAoyMDAxLTA5LTE1IDA2OjA4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGFyZ3VtZW50IHRvIHNucHJpbnRmIChlcnJwcmUgY29ycmVzcG9uZGluZyB0byAlcykgLS0KICAgICAgIGl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIHBhdGNoICgjNDUyMDI3KQogICAKMjAwMS0wOS0xNCAxNzoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIGRlYnVnZ2luZyBjb21waWxhdGlvbiBmaXhlcwogICAKMjAwMS0wOS0xNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtYW55IG5lZWRlZCBjaGFuZ2VzIGZyb20gbWFpbmxpbmUgbWVyZ2VkIGludG8gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDktMTQgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgUGF0Y2ggIzQ1MjAyNyBmcm9tIE1hcmN1cyBNZWlzc25lcjoKICAgICBzZWN1cml0eSBmaXggdG8gbWFrZSBzdXJlIHRoYXQgbG9uZyBhc24gbGVuZ3RocyBjYW4ndCBiZSB1c2VkIGFuZAogICAgIGFyZW4ndCBpbXByb3Blcmx5IGNhc2VkIHRvIGEgc2lnbmVkIHZhbHVlLgogICAKMjAwMS0wOS0xNCAxNDoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNDMyOTgyIGZyb20gSG9sbGlzOiBmaXggLS13aXRoLWxpYndyYXAgd2l0aG91dCBhIHBhdGggb3B0aW9uCiAgIAoyMDAxLTA5LTE0IDEzOjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYklJL3VkcFRhYmxlLmM6CgogICBTb2xhcmlzIHN1cHBvcnQgZm9yIHVkcFRhYmxlLgogICBUaGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIDxqc2ZASW50ZXJGYWNlLUFHLmNvbT4KICAgCjIwMDEtMDktMTQgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGZyb20gcGF0Y2ggIzQyMzQ2NjogYWRkIGFiaWxpdHkgdG8gdXNlIHRoaXMgZmlsZSB3aXRoaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgQWRkZWQgY29uZmlnLmggZmlsZSBmb3IgYm9ybGFuZCBjb21waWxlcnMgKHdoaWNoIGRpZmZlcnMgc2xpZ2h0bHkpLgogICAgIEZyb20gcGF0Y2ggIzQyMzQ2NgogICAKMjAwMS0wOS0xNCAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgaXBBZGRyLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYywgdmFyX3JvdXRlLmM6CgogICBNaWItMiBzdXBwb3J0IGZvciBXaW5kb3dzIHN5c3RlbXMuCiAgICpNYW55KiB0aGFua3MgdG8gTGF0aGEgUywgZm9yIGZpbGxpbmcgdGhpcyBsb25nLWF3YWl0ZWQgbmVlZC4KICAgCjIwMDEtMDktMTQgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCBpcEFkZHIuYywgdGNwLmMsIHRjcFRhYmxlLmMsCiAgIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgTW92ZSBwYWNrYWdlLXByb3ZpZGVkIGhlYWRlciBpbmNsdWRlcyAoJ21pYmluY2wnIGFuZCAndXRpbF9mdW5jcycpCiAgIHRvIGFmdGVyIHRoZSBzeXN0ZW0gaW5jbHVkZXMuICBUaGlzIHNob3VsZG4ndCBhZmZlY3QgbW9zdCBzeXN0ZW1zLAogICBidXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgV2luZG93cyBwb3J0LgogICAKMjAwMS0wOS0xNCAwODoyOCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUHJvcG9nYXRlIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4gdGhyb3VnaCB0byB0aGUgYml0IHRoYXQgZG9lcyB0aGUgd29yay4KICAgCiAgICAgKE91ciBpbGx1c3RyaW91cyBsZWFkZXIgY2xlYXJseSBoYXMgbm8gY29uZmlkZW5jZSBpbiB0aGUgY29tcGV0YW5jZQogICAgICBvZiBoaXMgbWluaW9ucy4gIEknZCB0YWtlIHVtYnJhZ2UsIGlmIGhlIHdhc24ndCByaWdodCEpCiAgIAoyMDAxLTA5LTE0IDA4OjAxICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgQWRkIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4KICAgCjIwMDEtMDktMTQgMDc6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIGlwQWRkci5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgV3JhcCB2YXJpb3VzICNpbmNsdWRlcyB3aXRoIGFwcHJvcHJpYXRlICNpZiBIQVZFX1hYWF9IIGRlY2xhcmF0aW9ucwogICAod2hlcmUgdGhpcyBoYXMgbm90IGFscmVhZHkgYmVlbiBkb25lKS4KICAgCjIwMDEtMDktMTEgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1lbW9yeV9mcmVlYnNkMi5oLCBtZW1vcnlfbmV0YnNkMS5jLCBtZW1vcnlfbmV0YnNkMS5oLAogICBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgsIHZtc3RhdC5jLCB2bXN0YXQuaCwKICAgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oLCB2bXN0YXRfZnJlZWJzZDIuYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUgdGhhdCB0aGUgT0lEIGRlZmluZXMgYXJlIG9ubHkgaW4gb25lIHBsYWNlLiBObyBmdW5jdGlvbmFsIGNoYW5nZS4KICAgCjIwMDEtMDktMTEgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmM6CgogICBIZWFkZXIgcmVvcmRlcmluZyB0byBhbGxvdyBkbWFsbG9jIHRvIHdvcmsuCiAgIAoyMDAxLTA5LTExIDE0OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIEZpeCBhIG1pc3BsYWNlcyA7IGluIGEgbG9vcC4KICAgVGhhbmtzIHRvIE1hbGEgUmFtYWtyaXNobmFuIDxtYWxhQHJvdXRlc2NpZW5jZS5jb20+CiAgIGFuZCBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgPGpzZkBJbnRlckZhY2UtQUcuY29tPgogICAKMjAwMS0wOS0xMCAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY2hhbmdlIGludGVyZmFjZSBjb3VudGluZyB0byBoYXBwZW4gbW9yZSBmcmVxdWVudGx5IHRvIGRldGVjdCBuZXcgY2FyZHMuCiAgICAgLSBzZWUgYnVnICM0NTcyOTAKICAgCjIwMDEtMDktMTAgMTE6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtUCB0byB1c2FnZSBpdCBwcmludHMgdG8gc3RkZXJyIChidWcgIzQ1OTM3MikKICAgCjIwMDEtMDktMTAgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGZpeCB3aGl0ZXNwYWNlIHBhcnNpbmcgYnVnIHJlcG9ydGVkIGl0IGJ1ZyAjNDU3MjY3LgogICAKMjAwMS0wOS0xMCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBmcmVlYnNkIHNwZWNpZmljIHBhdGNoIGZyb20gYnVnIzQ1NTkyNCB0byBmaXggdm1zdGF0J3Mgc3dhcCByZXBvcnQuCiAgIAoyMDAxLTA5LTEwIDEwOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFVzZSBhIG1vcmUgcG9ydGFibGUgREJQUlQgbWFjcm8uCiAgIAoyMDAxLTA5LTEwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgUm93U3RhdHVzIHZhbHVlIGNoZWNrcyBtZW50aW9uZWQgaW4gYnVnIzQ0OTUwMgogICAKMjAwMS0wOS0wNCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0zMSAxMzoxOSAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NSSVBULU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHJmY2xpc3QsCiAgIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBvZiBESVNNQU4tU0NSSVBULU1JQiwgYW5kIGEgZmV3IGNvc2V0aWMgY2hhbmdlcwogICB0byBzbWlzdHJpcCBldCBhbC4KICAgCjIwMDEtMDgtMzEgMTM6MTggIG5iYQoKICAgKiBsdGNvbmZpZzoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sIDEuNC4gVGhpcyBlbnN1cmVzIHRoYXQgbWFrZSBpbnN0YWxsIHdpbGwgd29yayBmb3IgTmV0QlNECiAgIAoyMDAxLTA4LTMxIDEzOjE3ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICBVcGRhdGUgdG8gbGlidG9vbCAxLjQuIFRoaXMgd2lsIGVuc3VyZSB0aGF0IG1ha2UgaW5zdGFsbCB3b3JrIG9uIE5ldEJTRAogICAKMjAwMS0wOC0yOCAxNTowNCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggYSBiYWQgZml4CiAgIAoyMDAxLTA4LTI4IDE1OjAzICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oOgoKICAgQysrIGJyYWNrZXQgdGhlIGluc3RhbGxlZCBzZ2VudCBoZWFkZXJzCiAgIAoyMDAxLTA4LTI4IDA3OjM1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBhIG1hbGZvcm1lZCBtdWx0aS1saW5lIHN0cmluZwogICAKMjAwMS0wOC0yOCAwMzowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjcgMjI6MTUgIG5iYQoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBGaXggc29tZSBwbGFjZXMgd2hlcmUgYWN0dWFsIGxpbmVzIHN0YXJ0ZWQgd2l0aCBhIHBlcmlvZC4KICAgCjIwMDEtMDgtMTcgMTU6MTIgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBGaXggbWlzc3BlbGxlZCBtYW4gcGFnZSBuYW1lIChzbm1wZXJyb3IgPT4gc25tcF9wZXJyb3IpCiAgIAoyMDAxLTA4LTE3IDE1OjA5ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBJQU5BIGhhcyBtb3ZlZCB0aGVpciBtaWJzIGludG8gYW4gaWFuYS5taWIgZGlyZWN0b3J5LgogICBGaXggUkZDIG51bWJlciBmb3IgUk1PTi1NSUIuCiAgIE1ha2UgIm1ha2UgYWxsbWFpYnMiIGV4dHJhY3QgbWlicyB0byBhbm90aGVyIGRpcmVjdG9yeS4KICAgCjIwMDEtMDgtMTcgMTU6MDMgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBZZXQgYW5vdGhlciB1cGRhdGUgZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0xNyAxNDowOSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIEFkZCBzb21lIG5lZWRlZCBlcnJvciBjaGVja2luZyB0byB0aGUgdWlkL2dpZCBwYXJzaW5nIGNvZGUuCiAgIEFsbG93IHN5bWJvbGljIHVpZC9naWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wOC0xNyAxNDowNyAgbmJhCgogICAqIEZBUToKCiAgIEFkZCBhIG1pc3NpbmcgYXJndW1lbnQgdG8gdGhlIHNubXB0cmFwIGV4YW1wbGVzLgogICAKMjAwMS0wOC0wNyAxNDo1NSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL21pYi5jOgoKICAgVGltZXRpY2tzIGFyZSB1bnNpZ2VkISBUaGFua3MgdG8gSm9zaCBXaWxtZXMgPGpvc2gtdWNkQGhpdGNoaGlrZXIub3JnPgogICAKMjAwMS0wOC0wNyAxNDo0MiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENoYW5nZXMgdG8gYWxsb3cgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBvdmVycmlkZSBzbm1wLmNvbmYgc2V0dGluZ3MuCiAgIAoyMDAxLTA4LTA3IDE0OjAyICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gb2YgSUFOQWlmVHlwZS1NSUIuCiAgIEFkZCByZmMgMzE0NCBJTlRFUkZBQ0VUT1BOLU1JQiB0byByZmNsaXN0LgogICAKMjAwMS0wOC0wNyAxNDowMCAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcGNtZC4xLAogICBtYW4vc25tcHRyYXBkLjg6CgogICBBIGJ1bmNoIG9mIG1pbm9yIGZpeGVzIHRvIHVzYWdlIG1lc3NhZ2VzIGFuZCBtYW51YWwgcGFnZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU2ICBuYmEKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgRml4IHBhcnNpbmcgb2Ygb2lkIHZhbHVlcyBmb3Igc2V0CiAgIAoyMDAxLTA4LTA3IDA3OjA5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMjYgMDE6NDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAoyMDAxLTA3LTIzIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBjYXJlZnVsbHkgY29uc3RydWN0IHRtcCBmaWxlIG5hbWVzLgogICAKMjAwMS0wNy0yMyAxMDo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIHNldGdyb3VwcyB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDEtMDctMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgYWRkIE5FVFdPUkstU0VSVklDRVMtTUlCIHRvIG1pYiByZXF1aXJlIGxpc3QKICAgCjIwMDEtMDctMDkgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCB0cmFwc2VzcyBwYXJzaW5nIHNvIGFzIHRvOgogICAgIC0gc2V0IHRoZSBkZWZhdWx0IHBvcnQgdG8gMTYyCiAgICAgLSBkb24ndCBmcmVlIG1lbW9yeSBwYXNzZWQgdG8gc25tcF9wYXJzZV9hcmdzKCkgc2luY2UKICAgICAgIHNubXBfcGFyc2VfYXJncyBpcyBicm9rZW4gYW5kIG5lZWRzIHRvIGNvcHkgbWVtb3J5IHJhdGhlciB0aGFuCiAgICAgICBqdXN0IG1ha2UgdXNlIG9mIGl0LgogICAKMjAwMS0wNi0yNyAxNTo0OCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGZpeCB0byB0cmFwc2VzcyBhcmd1bWVudCBsaXN0CiAgIAoyMDAxLTA2LTI1IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCAnbWlicyAiIicuCiAgIAoyMDAxLTA2LTIyIDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBbGxvdyBpbnRlcmZhY2Ugc25tcGQuY29uZiB0b2tlbnMgdG8gY29tcGxldGVseSBvdmVycmlkZSBzeXN0ZW0KICAgdmFsdWVzLiAgW2J1ZyM0MjY5NzVdCiAgIAoyMDAxLTA2LTIyIDExOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZGVmaW5lIHVsb25nX3JldAogICAKMjAwMS0wNi0yMiAwMTo0NCAgZHRzMTIKCiAgICogRkFRLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEluY2x1ZGUgYSB3YXJuaW5nIG9mIHRoZSBleHBlcmltZW50YWwgbmF0dXJlIG9mIEFnZW50WCBpbiB0aGUgbWFuIHBhZ2UsCiAgIGFuZCB1cGRhdGUgdGhlIEZBUSB0byByZWZsZWN0IHRoZSBmdWxsZXIgaW50ZWdyYXRpb24gb2YgdGhpcyBzdXBwb3J0LgogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBFbGltaW5hdGUgbG9uZyBsb25nIHZhcmlhYmxlcwogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBXYXJuIGFib3V0IGRlcHJlY2F0ZWQgLWIgLXcgYW5kIC1pIG9wdGlvbnMuCiAgIAoyMDAxLTA2LTIxIDE1OjE1ICBuYmEKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXBzZXQuMSwgc25tcHdhbGsuMToKCiAgIFVwZGF0ZSB0aW1lIHN0YW1wcwogICAKMjAwMS0wNi0yMSAxNTowOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICBBZGQgLW0gYW5kIC1NIG9wdGlvbnMgdG8gaGVhZGVyLiBVcGRhdGUgU0VFIEFMU08gdG8gcmVmZXJlbmNlIHNubXBjbWQKICAgYW5kIFJGQyAyNTc4LTgwIGluIHBsYWNlIG9mIDExNTUKICAgCjIwMDEtMDYtMjEgMTU6MDEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggcGFyc2luZyBvZiB4eCAuLi46Oj0geyB5eSB9CiAgIAoyMDAxLTA2LTIxIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICB0eXBvcyAoSU9EIC0+IE9JRCkKICAgCjIwMDEtMDYtMjEgMTA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBtZW50aW9uICJtYXN0ZXIgYWdlbnR4IgogICAtIGZpeCBjb25maWcgZmlsZSByZS1yZWFkaW5nIG9pZC4KICAgCjIwMDEtMDYtMjEgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIG1ha2Ugc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24gYWNjZXB0ICIiIHN0cmluZ3MuCiAgIAoyMDAxLTA2LTIxIDA5OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gQXBwbGllZCBhcmcgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIERhdmlkIEVpc25lcgogICAKMjAwMS0wNi0xNCAyMzoxOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIERvY3VtZW50IC1uIG9wdGlvbgogICAKMjAwMS0wNi0xMiAxNToxNCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUHJvcGVybHkgZGV0ZWN0IGFuZCBkaWFnbm9zZSBiYWQgYm9vbGVhbiBhbmQgaW50ZWdlciBjb25maWd1cmF0aW9uIHZhbHVlcwogICAKMjAwMS0wNi0xMiAxNToxMiAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmM6CgogICBQcm9wZXJseSBkaWFnbm9zZSBiYWQgLUMgb3B0aW9ucwogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0xMSAxNTo0NCAgbmJhCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjE6CgogICBBZGQgYW4gb3B0aW9ucyAoLUNjKSB0byBzbm1wd2FsayB0aGF0IHdpbGwgdmFsaWRhdGUgdGhhdCB0aGUgcmV0dXJuZWQgb2JqZWN0cwogICBhcmUgaW5kZWVkIGxleGljb2dyYXBoaWNhbGx5IGluY3JlYXNpbmcuCiAgIAoyMDAxLTA2LTExIDE1OjQzICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmMsIG1hbi9zbm1wc2V0LjEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFsbG93IGEgc2ltcGxlciBzbm1wc2V0IG5vdGF0aW9uIHdoZW4gTUlCIGRhdGEgYXJlIGxvYWRlZDogVXNpbmcgJz0nIGZvcgogICB0eXBlIHR5cGUgd2lsbCBpbmZlciBpdCBmcm9tIHRoZSBNSUIuCiAgIAoyMDAxLTA2LTExIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgRml4IHNvbWUgbG9uZyBzdGFuZGluZyBidWdzIHdoZW4gc2V2ZXJhbCBNSUIgZmlsZXMgZGVmaW5lIHRoZSBzYW1lIG9iamVjdHMKICAgd2l0aCBkaWZmZXJlbnQgbmFtZXMuIEhvcGVmdWxseSB0aGUgcmVzdWx0cyB3aWxsIGJlIGNvbnNpc3RlbnQgbm93LgogICAKMjAwMS0wNi0xMSAxMjoxMiAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIEFub3RoZXIgdHJ5IGF0IENvdW50ZXI2NCBwcm9ibGVtcywgdGhhbmtzIHRvIEphc29uIEdsb3Vkb24gPHNubXBAZ2xvdWRvbi5jb20+CiAgIAoyMDAxLTA2LTExIDExOjUyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggZm9yIGEgbWlzc2luZyAwLWJ5dGUgdG8gdGVybWluYXRlIGNvbW11bml0eSBzdHJpbmcuCiAgIFRoYW5rcyB0byAiS1VCT1RBLFRha2F5YSIgPHRha2F5YUBwby5udHRzLmNvLmpwPi4KICAgCjIwMDEtMDYtMDYgMjE6MzggIG5iYQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBVc2UgPHV0bXB4Lmg+IGlmIGF2YWlsYWJsZSAodG8gZml4IGNvdW50aW5nIHVzZXJzIGZvciBTb2xhcmlzKQogICAKMjAwMS0wNi0wNiAyMTozMyAgbmJhCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIE1lbnRpb24gLXMgYW5kIC1QIHBpZGZpbGUgYXJndW1lbnRzCiAgIAoyMDAxLTA2LTA2IDIxOjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc2VuZGluZyBvZiB0cmFwcyB3aXRob3V0IHZhcmJpbmRzCiAgIAoyMDAxLTA2LTA2IDIxOjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgTW9yZSBtZWFuaW5nZnVsIGFyZ3VtZW50cyB0byBzZXRQZXJyb3JzdGF0dXMgKHRydWUgZmlsZSBuYW1lcykKICAgCjIwMDEtMDUtMTcgMTI6MzYgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGEgVHJ1bHkgU3R1cGlkIEJ1ZyB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSA8YWJla2F0c3VAY3lzb2xzLmNvbT4KICAgCjIwMDEtMDUtMDQgMDk6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGwgZnJvbSAlbGxkIHByaW50ZiBzeW50YXgKICAgCjIwMDEtMDUtMDQgMDc6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zYWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDEtMDUtMDMgMTA6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgc25tcC10Yy5oIHRvIGluc3RhbGwgbGlzdAogICAKMjAwMS0wNS0wMiAwNzowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFkZCAtVCBmbGFnIHRvIHVzYWdlIG91dHB1dC4KICAgCjIwMDEtMDUtMDEgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBGaXggdXNlIG9mIGEgLTEgYXNzaWduZWQgdG8gYSB1X2xvbmcgYXMgYSBmYWlsdXJlIGNoZWNraW5nIGNhc2UuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMTcgMTI6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBHZXQgZGF0YSBmb3IgaHJTV1J1blBlcmZUYWJsZSBmb3IgY3lnd2luIHVuZGVyIE5UIChvciBiZXR0ZXIpCiAgIAoyMDAxLTA0LTE3IDExOjMzICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSB0byBhIHJlY2VudCB2ZXJzaW9uIG9mIGNvbmZpZy5ndWVzcy9jb25maWcuc3ViLiBVcGRhdGUgY29uZmlndXJlCiAgIHRvIGhhbmRsZSB0aGUgbmV3IE5ldEJTRCB2YXJpYW50IHRoYXQgaW5jbHVkZSB0aGUgb2JqZWN0IGZvcm1hdC4KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMDY6MDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwOTozMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGZpeGVkIHNlZ2ZhdWx0IHdoZW4gcm93IGhhcyBob2xlcy4KICAgCjIwMDEtMDQtMDYgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIEFkZGVkIGRvY3VtZW50b3Rpb24gZm9yIC1PdAogICAKMjAwMS0wNC0wNiAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgdHJhcHMvaW5mb3JtcyByZXZlcnNlZAogICAKMjAwMS0wNC0wNSAwOTozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfbWluX2NvbXBhcmUuCiAgIAoyMDAxLTA0LTA1IDA5OjEzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTA0LTA1IDA4OjIxICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBtYWxsb2MgdG8gZGVjcmVhc2Ugc3RhY2sgc2l6ZSBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEV4dGVuZCByZWNlbnQgJ3Bhc3MnIGNoYW5nZXMgdG8gJ3Bhc3NfcGVyc2lzdCcuICAoVGhhbmtzLCBNaWtlISkKICAgCjIwMDEtMDQtMDUgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgCjIwMDEtMDQtMDQgMTQ6NTYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xICkKICAgCjIwMDEtMDQtMDQgMTQ6NTUgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgQ2hhbmdlIHdvcmRpbmcgdG8gc2F5IDQuMiBsaW5lIGlzIHRoZSBsYXN0IHRvIHVzZSB0aGUgdWNkLXNubXAgbmFtZS4KICAgCjIwMDEtMDQtMDQgMTQ6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMiAtPiBWNC4yLjEKCjIwMDEtMDQtMDQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGZpeCBtaXNzaW5nIHZhcmlhYmxlIG9uIHNvbGFyaXMgMi42CiAgIAoyMDAxLTA0LTA0IDE0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICB1c2Uga2lsbCAtVEVSTSBpbnN0ZWFkIG9mIGtpbGwgLVNJR1RFUk0gZm9yIHBvcnRhYmlsaXR5IChicmVha3Mgb24gc29sYXJpcykuCiAgIAoyMDAxLTA0LTA0IDEyOjM5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsZWFudXAgZGVidWcgbWVzc2FnZXMsIGJ1aWxkLgogICAKMjAwMS0wNC0wNCAwOToxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXggbmV0d29yayBieXRlIG9yZGVyIGZvciBJcEFkZHJlc3MgZGlzcGxheWVkLgogICAKMjAwMS0wNC0wNCAwODo1MCAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcXVpZXQgZXhpdCBvbiBTSUdURVJNL1NJR0lOVCwgc2FtZSBhcyBzbm1wZC4KICAgCjIwMDEtMDQtMDQgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA0IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIHRvIHdoZW4gYWdlbnQgcmVtb3ZlcyAiY3JlYXRlVXNlciIgZGlyZWN0aXZlcy4KICAgCjIwMDEtMDQtMDQgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBcHBsaWVkIHBhdGNoICM0MTIwODA6IGFkZCBmcmVlYnNkNSB0byBtb2R1bGUgaW5jbHVkZSBsaXN0LgogICAKMjAwMS0wNC0wNCAwODoxMiAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIERvY3VtZW50IGhvdyB0byBlbmFibGUgdGhlIEFnZW50WCBmYWNpbGl0eSBpbiB0aGUgbWFzdGVyIGFnZW50LgogICAKMjAwMS0wNC0wNCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggYnVnICM0MTE5MTc6IGNoYW5nZSB3YWxrIGVuZCBjb25kaXRpb24gYXMgc3VnZ2VzdGVkIGJ5IHN1Ym1pdHRlci4KICAgCjIwMDEtMDQtMDQgMDc6NDMgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA0IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRml4IHR5cG8gaW4gY2FzdCAobWlzc2luZyAnc3RydWN0JykKICAgCjIwMDEtMDQtMDQgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBhIGxhcmdlciBtYWxsb2NlZCBidWZmZXIgd2hlbiBkZWNvZGluZyBhIGxhcmdlIGluY29taW5nIGVuY3J5cHRlZCBtZXNzYWdlLgogICAKMjAwMS0wNC0wNCAwNzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBMaW1pdCBzaXplIG9mIGhleCBtZXNzYWdlcyB0byAxLzV0aCBidWZmZXIgc2l6ZSAodG8gYmUgc2FmZSkuCiAgIAoyMDAxLTA0LTA0IDA3OjI0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTA0IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgCjIwMDEtMDQtMDQgMDY6NDUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMjI6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IG1heGltdW0gZW5jcnlwdGVkIHBhY2tldCBsZW5ndGggc3VwcG9ydCBmb3IgcmV2ZXJzZSBlbmNvZGVkIHBhY2tldHMuCiAgIAoyMDAxLTA0LTAzIDE4OjA3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgZml4IHJ3Y29tbXVuaXR5CiAgIAoyMDAxLTA0LTAzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC93ZXNyZXN0YXJ0OgoKICAgcmVtb3ZlIG9sZCB1bnVzZWQgc2NyaXB0CiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9vcGVyYXRpb246CgogICBBZGQgc25tcGNvbmYgZGlyZWN0aXZlIHN1cHBvcnQgZm9yIHRoZSBuZXcgIm1hc3RlciIgdG9rZW4uCiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIEZpeCBidWcgaW4gbWVudXMgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgY29udGFpbmluZyBvbmx5ICJncm91cHMiLgogICAKMjAwMS0wNC0wMyAxNjo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlIG15IG5hbWUgLT4gbmV0LXNubXAgZGV2ZWxvcGVycy4KICAgCjIwMDEtMDQtMDMgMTU6MzYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBtZW50aW9uIHNubXBjb25mCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICB1cmwgY2hhbmdlcyBtb3N0bHkuCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgNC4yLjEgdXBkYXRlIChwbGVhc2UgY2hlY2spLgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZnRwIHNpdGUgdXBkYXRlLgogICAKMjAwMS0wNC0wMyAxNDowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGRlZCBhZ2VudHggdG8gZGVmYXVsdCBtb2R1bGVzIHRvIGNvbXBpbGUgaW4KICAgCjIwMDEtMDQtMDMgMTA6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGEgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBtaWIyYyBvdXRwdXQgZXhwbGFpbmluZyB0aGF0IGl0cwogICBtZXJlbHkgYSB0ZW1wbGF0ZS4KICAgCjIwMDEtMDQtMDMgMDg6MjcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCwgRkFRLCBQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBXZWIgcGFnZS9mdHAgc2l0ZSB1cGRhdGVzLiAgVXNlcyB3d3cubmV0LXNubXAub3JnIGV2ZXJ5d2hlcmUgbm93LgogICAKMjAwMS0wNC0wMyAwNjoyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXggc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUuCiAgIAoyMDAxLTA0LTAzIDA2OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAyMzoyMiAgbmJhCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEZpeCBhbiBpbmNvbXBsZXRlbHkgaW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDEtMDQtMDIgMjM6MjEgIG5iYQoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIFRoZSBhbnN3ZXJzIGZvciB0aGUgImxvYWQgd2hpY2ggZmlsZXMiIG1lbnUgYXJlIGtlcHQgc2VjcmV0IGZyb20gdGhlIGNvZGUKICAgdGhhdCBsb2FkcyB0aGUgZmlsZXMgLi4uLiBmaXhlZC4KICAgCjIwMDEtMDQtMDIgMjA6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mLmRpci9zbm1wdHJhcGQuY29uZi9mb3JtYXR0aW5nLAogICBzbm1wY29uZi5kaXIvc25tcHRyYXBkLmNvbmYvdHJhcGhhbmRsZToKCiAgIEFkZGVkIHNubXB0cmFwZCBjb25maWd1cmF0aW9uIGZpbGUgZGlyZWN0aXZlcyB0byBzbm1wY29uZi4KICAgCjIwMDEtMDQtMDIgMTA6MDggIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAoyMDAxLTA0LTAyIDA5OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAoyMDAxLTA0LTAyIDA4OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBVc2UgdGhlICdzdGFuZGFyZCcgY29uZmlnIGhhbmRsZXIgcmVnaXN0cmF0aW9uIHJvdXRpbmUsCiAgIGFuZCByZWNvZ25pc2UgdGhlIGNvbmZpZyBzZXR0aW5nICdtYXN0ZXIgYWxsJwogICAKMjAwMS0wNC0wMiAwNjo1MyAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHNvbWUgbWlzc2luZyBxdW90aW5nIG9uIC5JUCBwYXJhbWV0ZXJzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRS5hZ2VudHgsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgbW92ZWQgYWdlbnR4IFJFQURNRSB0byB0b3AKICAgCjIwMDEtMDMtMzAgMDc6MjIgIGR0czEyCgogICAqIEZBUToKCiAgIFR5cG8gaW4gQWdlbnRYIFJFQURNRSBmaWxlbmFtZQogICAKMjAwMS0wMy0zMCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFByb3ZpZGUgJ21hc3RlcicgY29uZmlnIGRpcmVjdGl2ZSB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvCiAgIGFjdGl2YXRlIGV4dGVuc2libGUgc3ViYWdlbnQgc3VwcG9ydC4KICAgICBJbml0aWFsbHkgcmVzdHJpY3RlZCB0byBBZ2VudFggc3VwcG9ydCBvbmx5LgogICAKMjAwMS0wMy0zMCAwMzo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICBVcGRhdGUgdG8gcmVmbGVjdCB0aGUgaW5jcmVhc2VkIG1hdHVyaXR5IG9mIHRoZSBBZ2VudFggaW1wbGVtZW50YXRpb24uCiAgIAoyMDAxLTAzLTMwIDAzOjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBUd2Vha2VkIHZhcmlvdXMgZW50cmllcywgYW5kIGFkZGVkIGEgZmV3IG5ldyBvbmVzLiAgR2VuZXJhbCBTaGllbGQgbWVkZGxpbmcuCiAgIAoyMDAxLTAzLTMwIDAxOjAwICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBBZGQgcHJvbWluZW50IHdhcm5pbmcgcmVnYXJkaW5nIHVjZC1zbm1wID0+IG5ldC1zbm1wIHN3aXRjaC4KICAgCjIwMDEtMDMtMzAgMDA6NDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBpbnRlcnByZXRhdGlvbiBvZiAicHVyZSBudW1lcmljIiBwZWVybmFtZSBzdHJpbmdzIChpLmUuIGxpc3RlbiBvbiB0aGUKICAgICBzcGVjaWZpZWQgcG9ydCBvbiBhbGwgaW50ZXJmYWNlcykgLSBwcm9ibGVtIGlkZW50aWZpZWQgYnkgTWFsYSBSYW1ha3Jpc2huYW4uCiAgIAoyMDAxLTAzLTMwIDAwOjA0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwbGFjZSBhdG9pL2F0b2wgd2l0aCBzdHJ0byh1KWwgd2hpY2ggaGFzIGJldHRlciBvdXQtb2YtcmFuZ2UgcmV0dXJucy4KICAgVGhpcyBpcyBub3QgYSBwZXJmZWN0IHNvbHV0aW9uLCBidXQgaXQgaXMgYmV0dGVyIC4uLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgbWlub3IgZm9ybWF0dGluZy4KICAgCjIwMDEtMDMtMjkgMTQ6MzMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBVbSwgZ290IHRoZSB5ZWFyIHJpZ2h0IHRoaXMgdGltZS4KICAgCjIwMDEtMDMtMjkgMTQ6MzIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB1cGRhdGUgZm9yIDIwMDE6IGFkZGVkIG15IHJlcXVpcmVkIE5BSSBCU0QgY29weXJpZ2h0LgogICAKMjAwMS0wMy0yOSAwODoyMyAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtZXJnZSBjaGFuZ2UgZnJvbSBtYWluIGJyYW5jaCAocmV0dXJuX3ZhbHVlPTEgc3RhdGVtZW50KS4KICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAyMjoxMiAgbmJhCgogICAqIG1pYnMvOiByZmNsaXN0LCByZmNtaWJzLmRpZmY6CgogICBBZGQgUHJpbnRlci1NSUIgdG8gdGhlIHJmY2xpc3Qgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwYXRjaC4KICAgCjIwMDEtMDMtMjggMTM6MDYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQcm9wZXJseSBpZ25vcmUgbm9uLXJlc3BvbnNlIFBEVSdzIHdoZW4gZG9pbmcgYXN5bmMgdHJhbnNhY3Rpb24uCiAgIAoyMDAxLTAzLTI4IDEzOjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYzoKCiAgIEZpeCBpbmRleCBoYW5kbGluZyB0byBwcm9wZXJseSBhY2NlcHQgaW5kZXhpbmcgd2l0aCBUaW1lVGlja3MuCiAgIEltcGxlbWVudCAtSXIgdG8gZGlzYWJsZSBpbmRleCBjaGVja3MuCiAgIAoyMDAxLTAzLTI4IDA2OjIwICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMS5wcmUyICkKICAgCjIwMDEtMDMtMjcgMTA6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICAKMjAwMS0wMy0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9pcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IE1JQiBpbiBSRkMgMzA4MzogRE9DUy1CUEktTUlCCiAgIAoyMDAxLTAzLTIyIDE0OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIHMvY3lnd2luLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIE1ha2UgbW9zdCBvZiB0aGUgaG9zdCByZXNvdXJjZXMgbWliIGNvbXBpbGUgdW5kZXIgQ3lnd2luLiBXZSBjYW4gbm93IGRvCiAgIC0td2l0aC1taWItbW9kdWxlcz1ob3N0IC0td2l0aC1vdXQtbWliLW1vZHVsZXM9aG9zdC9ocl9uZXR3b3JrCiAgIAoyMDAxLTAzLTIyIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBmaXggaGVhZGVyX3NpbXBsZV90YWJsZSgpIGZvciB0b28gbG9uZyByZXF1ZXN0cwogICAKMjAwMS0wMy0yMiAwODoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJhZCBXZXM6IGZpbmQgYWxsIGluc3RhbmNlcyBvZiBjdXQtbi1wYXN0ZSBlcnJvcnMgYmVmb3JlIGNvbW1pdHRpbmcuCiAgIAoyMDAxLTAzLTIyIDA4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmFkIFdlczogZG9uJ3QgY2FsbCBmdW5jdGlvbiB3aXRob3V0IHRoZSAoKXMuICAoYXQgbGVhc3QgaW4gQykuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MjIgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCdWdmaXggZm9yIGNyYXNoIGF0IHNubXBfc2h1dGRvd24gdGltZSB3aXRoIE9TJ3MgdGhhdCBjaGVjayBwb2ludGVyCiAgIHZhbGlkaXR5IChlLmcuLCBGcmVlQlNEKQogICAKMjAwMS0wMy0yMSAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgam9pbiBicm9rZW4gc25tcF9sb2cgbGluZXMKICAgCjIwMDEtMDMtMjEgMDg6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLUYgKEkgdGhpbmspCiAgIAoyMDAxLTAzLTIxIDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggdmFyaWFibGUgdHlwZXMgKGludCAtPiBzaXplX3QpCiAgIAoyMDAxLTAzLTIwIDA4OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzL2xpbnV4Lmg6CgogICBGaXggdGhlIGF0VGFibGUgYW5kIGlwTmV0VG9wTWVkaWFUYWJsZSBmb3IgTGludXggdG8gcmV0dXJuIHRoZSBpZkluZGV4CiAgIAoyMDAxLTAzLTE5IDEzOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBkZWx0YS4xOgoKICAgTWFqb3Igb3B0aW9uIHBhcnNpbmcgc3VyZ2VyeSB0byBjYXRoZXIgZm9yIHRoZSBnZXRvcHQgdXNpbmcgdmVyc2lvbiBvZgogICBzbm1wX3BhcnNlX2FyZ3MuIFNlZW1zIHRvIGhhdmUgYmVlbiBmb3Jnb3R0ZW4gd2hlbiB0aGUgcmVzdCBvZiB0aGUgYXBwcwogICB3ZXJlIHVwZGF0ZWQuCiAgIAoyMDAxLTAzLTE5IDEzOjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmUtb3JkZXIgc3lzL2NvbmYuaCBhbmQgc3lzL3BhcmFtLmggdG8gbWFrZSBGcmVlQlNELTUgaGFwcHkKICAgCjIwMDEtMDMtMTUgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBmaXhlZCBidWcgIzQwNTAwMDogZHJvcHBlZCBzdXBwb3J0IGZvciBJUE9VVE5PUk9VVEVTLCBzaW5jZSBubwogICBjYWxjdWxhdGlvbiBvZiBpdCBzZWVtcyBjbG9zZSB0byBjb3JyZWN0LgogICAKMjAwMS0wMy0xNSAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICBmaXggcGFydCAyIG9mIGJ1ZyA0MDU1MTkgYWRkaW5nIGZ1bGxzb2NrIHRvIHVkcGluZXJyb3JzCiAgIAoyMDAxLTAzLTE1IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIGZpeCBidWcgIzQwODM4OCB3aGVyZSBtZW1tb3ZlIGlzIGNhbGxlZCB3aXRoIHRvbyBzaG9ydCBhIGxlbmd0aC4KICAgCjIwMDEtMDMtMTUgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xLnByZTEgKQogICAKMjAwMS0wMy0xNSAwMzozNCAgamJwbgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBraWxsIC1TSUdLSUxMIGlzbid0IGxlZ2FsIHN5bnRheCBvbiBTb2xhcmlzIG9yIExpbnV4OyBjaGFuZ2VkIHRvIGtpbGwgLTkKICAgd2hpY2ggaXMgbGlrZWx5IHNhZmVyCiAgIAogICBkb24ndCBzZXQgcmV0dXJuX3ZhbHVlIHRvIDEgYWZ0ZXIga2lsbGluZyBzbm1wZCwgd2hpY2ggY2F1c2VzIHNwdXJpb3VzCiAgIHRlc3QgZmFpbHVyZXMKICAgCjIwMDEtMDMtMTQgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggaXBuZXR0b21lZGlhIGluZGV4aW5nIG9uIHNvbGFyaXMuCiAgIAoyMDAxLTAzLTE0IDEwOjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTA6MTggIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHF1aWV0ICJ3aGljaCIgb3V0cHV0LiAgbmV2ZXIgZW5kaW5nIHNhZ2EuLi4KICAgCjIwMDEtMDMtMTQgMTA6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBxdWlldCB1bnNpZ25lZCBsb25nIGNvbXBhcmUuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIEdldCBhIGRlY2wgb2YgaW5fYWRkcl90IGZyb20gbmV0aW5ldC9pbi5oLCB3aGVyZSBuZWNlc3NhcnkuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEF2b2lkIHdhcm5pbmdzIG9mIHN0cnVjdCB0aW1ldmFsIGRlY2wgaW4gc3lzdGVtLmggYnkgaW5jbHVkaW5nICp0aW1lLmgqLgogICAKMjAwMS0wMy0xNCAwOTo0NyAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMDMtMTQgMDk6NDAgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGRvbid0IHJ1biB0ZXN0cyB3aXRob3V0IG5lZWRlZCBwcm9ncmFtczogc25tcGQsIHNubXBnZXQsIHNubXBnZXRuZXh0LgogICAKMjAwMS0wMy0xNCAwODoyNCAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFByb3ZpZGUgYW4gZW1wdHkgRExMSUJTIHZhbHVlIGZvciBub24tZGxtb2QgdXNlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBjYXN0IHVfbG9uZyB0byB1X2NoYXIgd2hlbiBzdG9yaW5nIDgtYml0IHZhbHVlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCB1bnNpZ25lZCBsZW5ndGggY29tcGFyZXMuCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteepq2dlcikKICAgCjIwMDEtMDMtMTMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBjaGVjayBmb3IgTlVMTHMgaW4gREVCVUcgbXNnCiAgIAoyMDAxLTAzLTEyIDE0OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICBGaXggc29tZSBtaW5vciBsZWFrcy4KICAgCjIwMDEtMDMtMTIgMTQ6MDUgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU29tZSBtaW5vciBmaXhlcyB0byBhcmd1bWVudCBwcm9jZXNzaW5nLCBpbmNsdWRpbmcgdGVybWluYXRpbmcgc25tcGQgb24KICAgZXh0cmFuZW91cyBub24tb3B0aW9uIGFyZ3VtZW50cy4KICAgCjIwMDEtMDMtMTAgMDg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBCdWcgIzQwNDk4ODogZG9uJ3QgdXNlIGlwc3RhdC5pcHNfZnJhZ3RpbW91dCBhcyBhIG51bWJlciBvZiBzZWNvbmRzLgogICAKMjAwMS0wMy0wNyAxMDoyNiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAKICAgbmV3IERFTEFZIGZ1bmN0aW9uOyBzdGFydC9zdG9wIGRhZW1vbnMgdXNpbmcgbmV3IFNUQVJUUFJPRy9TVE9QUFJPRyB3aXRoIERFTEFZOwogICBsb2cgY29tbWFuZHMgaXNzdWVkIGFuZCBmaW5hbCByZXN1bHQgdG8gU05NUF9UTVBESVIvaW52b2tlZDsKICAgc3VwcHJlc3MgImtpbGwiIG91dHB1dCB0byBoZWxwIEN5Z3dpbiB1c2VycyBoYXBweS4KICAgCjIwMDEtMDMtMDcgMTA6MjMgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIAogICBhZGQgLVMgcGFyYW1ldGVyIGZvciBERUxBWSBzZWNvbmRzOyBhZGQgdHJhcCBmb3IgaW50ZXJydXB0IGNvbnRyb2w7CiAgIHBhc3MgdGVzdCBudW1iZXIgYW5kIGRpc3BsYXktaGVhZGVyLW9ubHkgdG8gZXZhbF9vbmVzY3JpcHQuc2g7CiAgIGFkZCB3aGljaCB0ZXN0IHRvIHZlcmJvc2UgbG9jYXRpbmcgbWVzc2FnZXMgKEN5Z3dpbiB1c2VzIHR5cGUsIG5vdCB3aGljaCkuCiAgIAoyMDAxLTAzLTA3IDEwOjIwICBzbGlmCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2g6CgogICAKICAgCiAgIEluY29ycG9yYXRlIHRlc3QgbnVtYmVyIGludG8gdGVzdCByZXN1bHRzIGRpciBuYW1lLgogICBQcm92aWRlIGRlZmF1bHQgdmFsdWVzIGZvciB0ZXN0IG51bWJlciBhbmQgZGlzcGxheS1oZWFkZXItb25seSBmbGFnLgogICAKMjAwMS0wMy0wNyAxMDoxOSAgc2xpZgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgCiAgIAogICAibWFrZSBjbGVhbiIgcmVtb3ZlcyBhbnkgdGVzdCByZXN1bHQgZGlycyAiL3RtcC9zbm1wLXRlc3QtKiIuCiAgIAoyMDAxLTAzLTA3IDEwOjE1ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIAogICBSZXBsYWNlIHNsZWVwIHdpdGggY29tbWVudGVkIG91dCBERUxBWSA7IGVhY2ggc3RhcnQvc3RvcCBhY3Rpb24gbm93CiAgIGludm9rZXMgREVMQVkuCiAgIAoyMDAxLTAzLTA3IDEwOjE0ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgCiAgIFJlcGxhY2Ugc2xlZXAgd2l0aCBERUxBWS4KICAgCjIwMDEtMDMtMDcgMTA6MTMgIHNsaWYKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAKICAgCiAgIENoYW5nZSBlbGVtZW50IHNlcGFyYXRvciB0byBXaW4zMiAnOycgaW4gREVGQVVMVF9NSUJTCiAgIERlY2xhcmUgV2luMzIgaGFzIGdldHBpZCEuCiAgIAoyMDAxLTAzLTA3IDEwOjEwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgV2luMzIgaW5jbHVkZSBpby5oIHRvIGRlY2xhcmUgbWt0ZW1wLgogICBFeHBhbmQgdGhlIGNvbW1lbnQgbmVhciBta3RlbXAgdXNhZ2UgdG8gZXhwbGFpbiB3aHkgaXQgaXMgbmVlZGVkLgogICAKMjAwMS0wMy0wNyAxMDowOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIAogICAKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IGlmbmRlZiBXSU4zMi4gIGlmZGVmIFNJR0FMUk0gaXMgc3VmZmljaWVudC4KICAgCjIwMDEtMDMtMDcgMTA6MDcgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIAogICAKICAgV2luMzIgaW5jbHVkZSBwcm9jZXNzLmggdG8gZGVjbGFyZSBnZXRwaWQuCiAgIAoyMDAxLTAzLTA3IDEwOjA2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAKICAgCiAgIFVzZSBwcm9wZXIgZGVmaW5lIHRvIHF1YWxpZnkgaW5jbHVkZS1pbmcgYSBoZWFkZXIuCiAgIAoyMDAxLTAzLTA3IDEwOjA0ICBzbGlmCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIAogICAKICAgQXBwbHkgdGhlIHRpbWUgZ29vIGNvbnNpc3RlbnRseTogbW92ZSBoZWFkZXIgaW5jbHVkZXMgb3V0IG9mIHN5c3RlbS5oLgogICAKMjAwMS0wMy0wNiAxMDowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBmb3JjZSBpbmNsdXNpb24gb2YgLWxkbC4KICAgCjIwMDEtMDMtMDUgMDY6MzAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIAogICAKICAgRm9sbG93IG1ldGhvZCB1c2FnZSwgZG9uJ3QgZGVjbGFyZSBnZXRId0FkZHJlc3MgdW5sZXNzIHVzZWQuCiAgIAoyMDAxLTAzLTA1IDA2OjMwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgUmVtb3ZlIG5lc3RlZCB2YXJpYWJsZSBlcCAtIG9uZSBhbHJlYWR5IGV4aXN0cy4KICAgCjIwMDEtMDMtMDUgMDY6MjggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgCiAgIAogICBDb21tZW50IG91dCBleGFtcGxlIHZhcmlhYmxlcyB0aGF0IGFyZSBub3QgdXNlZC4KICAgCjIwMDEtMDMtMDQgMTc6NDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgCiAgIAogICBwYXRjaCB0byBidWlsZCBtb3JlIG1vZHVsZXMsIGluY2x1ZGluZyBhZ2VudFgsIG9uIFdpbjMyIHVzaW5nIE1TLVZDLgogICAKMjAwMS0wMy0wNCAxNzoyNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAKICAgCiAgIHBhdGNoIHRvIGJ1aWxkIG1vcmUgb2YgdGhlIGFnZW50IHVzaW5nIE1TLVZDIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5taWIsCiAgIFJFQURNRS5taWJzLCBUVU5ORUwtTUlCLnR4dCwgaWFuYWxpc3QsIG1pYmZldGNoLCByZmNsaXN0LAogICByZmNtaWJzLmRpZmYsIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQWlmVHlwZS1NSUIsIHBsdXMgYWRkaXRpb24gb2YgUkVBRE1FIGFuZCB0b29scyB0byBnZXQKICAgYSBjb21wbGV0ZSBzZXQgb2YgSUVURiBNSUIgZmlsZXMuCiAgIAoyMDAxLTAzLTAzIDA3OjExICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgUmVtb3ZlIGFuIHVudXNlZCBwcm90b3R5cGUKICAgCjIwMDEtMDMtMDMgMDY6MzYgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQWRkIGEgbmV3ICVQIGZvcm1hdHRpbmcgc2VxdWVuY2UgdG8gdXNlciBzcGVjaWZpZWQgbG9nIGZvcm1hdHMuIEl0IHByaW50CiAgIHRoZSBzZWN1cml0eSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBQRFUgKGNvbW11bml0eSwgdXNlciwgY29udGV4dCBhcyBhdmFpbGFibGUpCiAgIEFsc28gbW9kaWZ5IHRoZSBkZWZhdWx0IHRyYXAgb3V0cHV0IHRvIHVzZSBpdC4KICAgCjIwMDEtMDMtMDMgMDY6MjEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBzcGVjaWZpZXJzIGxpa2UgJS4zcwogICAKMjAwMS0wMy0wMyAwNjoxMCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCB0aGUgcGFyc2VyIHRvIGRpYWdub3NlIG9pZCBzcGVjcyBsaWtlOjo9IHsgc2luZ2xlIH0KICAgQmUgc2lsZW50IGZvciBpbnRlcm5hbCBsaW5rcyB3aGVuIG1vdmluZyBub2RlcyB0byB0aGUgYWRvcHRpb24gbGlzdC4gVGhpcwogICBzaG91bGQgaGVscCBnaXZpbmcgb25seSBhIHNpbmdsZSBtZXNzYWdlIGZvciBtaXNzaW5nIGltcG9ydHMgb2YgZW50ZXJwcmlzZXMuCiAgIAoyMDAxLTAzLTAyIDEzOjI0ICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgCiAgIAogICBjbGVhbnVwIGZvciBNUy1WQyBXaW4zMiBidWlsZAogICAKMjAwMS0wMy0wMiAwNzozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgc291cmNlcmZvcmdlIC0+IHNvdXJjZWZvcmdlCiAgIAoyMDAxLTAzLTAyIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIGZpeCB0aW1lc3RhbXBzIGluIHN5bmNob25vdXMgY2FzZXMKICAgCjIwMDEtMDMtMDIgMDY6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBzbm1wX29pZF9jb21wYXJlKCkuCiAgIAoyMDAxLTAzLTAxIDE5OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDItMjEgMTU6MzEgIG5iYQoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMToKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcwogICAKMjAwMS0wMi0yMSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzODA1IGZyb20gYmNvbGxhcjogYWRkIHN5cy90aW1lLmggdG8gdWNkLXNubXAtaW5jbHVkZXMuaAogICAKMjAwMS0wMi0yMSAxNToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0yMSAxNDozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVHJ5IGZpeGluZyBpbmNvbnNpc3RlbnQgaW5kZXhpbmcgb24gQlNECiAgIAoyMDAxLTAyLTE5IDA4OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAKICAgCiAgIC0gcHJveHkuYzogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDItMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gaW5jcmVhc2UgVUNEX1JFR0lTVFJZX09JRF9NQVhfTEVOIHRvIDEyOCBhdCBGcmFuaydzIHJlcXVlc3QKICAgCjIwMDEtMDItMTQgMTg6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyAjMTMwNzQwIHVzaW5nIHN1Z2dlc3RlZCBjbG9zZSgpIHdyYXBwZXIgYXJvdW5kIG1rc3RlbXAoKQogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjA0OiBBZGQgc3VwcG9ydCBmb3IgVjEgdHJhcHMgYW5kIGludC9pbnQzMiBkaWZmZXJlbmNlcwogICAKMjAwMS0wMi0wOSAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzcwMjogZml4IHN3YXAgcmVwb3J0aW5nIG9uIGZyZWVic2QgNC4yCiAgIAoyMDAxLTAyLTA2IDE0OjI2ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEFkZCBhIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAKICAgCjIwMDEtMDItMDYgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIEltcGxlbWVudCByYXcgaW50ZXJydXB0IGFuZCBjb250ZXh0IHN3aXRjaCBjb3VudGVycwogICAKMjAwMS0wMi0wNiAxNDoyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIE1ha2UgZG1hbGxvYyBoYXBweSBieSBmaXhpbmcgYSBtYWxsb2MgcmVhZCBvdmVycnVuCiAgIAoyMDAxLTAyLTA2IDE0OjE2ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmM6CgogICBCYWNrcG9ydCAtT1Qgb3V0cHV0IHRvIDQtMi1wYXRjaGVzIGJyYW5jaAogICAKMjAwMS0wMi0wNiAwNjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVudGF0aW9uIGZpeAogICAKMjAwMS0wMS0zMSAyMzowMiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB2YWx1ZSB2YWxpZGF0aW9uIGZvciBzbm1wc2V0L3NubXB0cmFwCiAgIAoyMDAxLTAxLTMxIDIzOjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEZpeCBiYWQgcmV0dXJuIG9mIGEgcG9pbnRlciB0byBub24tc3RhdGljIHN0b3JhZ2UKICAgCjIwMDEtMDEtMzEgMTU6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgQmFydGVscyBmb3IgZnJlZWJzZCBmaXhlcwogICAKMjAwMS0wMS0zMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNDE0OiBmaXggZGlzayBpbmZvIGZvciBibG9jayBzaXplcyBvdGhlciB0aGFuIDEwMjQuCiAgIAoyMDAxLTAxLTI5IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGZpeCBidWcgIzEzMDQxMDogIHNldCB0aGUgd3JpdGVfbWV0aG9kIGluIHZhcl9zbXV4IGJlZm9yZSByZXR1cm5pbmcKICAgTlVMTCB0byBtYWtlIHN1cmUgdGhhdCBzZXRzIGhhcHBlbiBvbiBPSURzIHRoYXQgZG9uJ3QgZXhpc3QgZmlyc3QuCiAgIAoyMDAxLTAxLTI5IDEzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBzdWdnZXN0ZWQgaW4gYnVnICMxMjk5NDg6IGNoZWNrIGZvciAtIGFyZ3VtZW50cyBhdCB0aGUgYmVnZ2lubmluZwogICBvZiB0aGUgY29tbWFuZCBsaW5lIHRva2VuIChkb24ndCBtYXRjaCBtaWItMiwgZWcpLgogICAKMjAwMS0wMS0yOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZml4IHN1Z2dlc3RlZCBpbiBidWcgIzEyOTg3NjogY2hlY2sgZm9yIGhpbnQgIT0gTlVMTCBiZWZvcmUgZnJlZWluZy4KICAgCjIwMDEtMDEtMjYgMDU6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBGaXggYnVnIG9uIEZyZWVCU0Qgd2hlbiAvZXRjL3ByaW50Y2FwIGlzIGVtcHR5CiAgIAoyMDAxLTAxLTI1IDE0OjM4ICBuYmEKCiAgICogbWlicy9STU9OLU1JQi50eHQ6CgogICBVcGRhdGVkIHRvIFJGQyAyODE5CiAgIAoyMDAxLTAxLTI0IDIxOjM3ICBuYmEKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGxpYnJhcmllcyBiZWZvcmUgYWdlbnQgc28gdGhhdCBsaWJ0b29sIGNhbiByZWxpbmsuCiAgIAoyMDAxLTAxLTIwIDA1OjU0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgVHdvIENvdW50ZXI2NCBnbGl0Y2hlcyBkZXRlY3RlZCBieSBKYXNvbiBHbG91ZG9uIDxzbm1wQGdsb3Vkb24uY29tPgogICAKMjAwMS0wMS0yMCAwNTo0NCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBEb250IHNldCB1cCB0aGUgc2VsZWN0IHBhcmFtZXRlcnMgYmVmb3JlIGNhbGxpbmcgaW50ZXJydXB0IGhhbmRsZXJzIQogICBUaGFua3MgdG8gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDEtMjAgMDU6NDIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZW5jb2Rpbmcgb2YgQklUUyB2YXJpYWJsZSwgdGhhbmtzIHRvIEZyYW5rIFN0cmF1c3MKICAgCjIwMDEtMDEtMjAgMDU6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFJhdyBJTyBjb3VudGVycyBmcm9tIEpvY2hlbiBLbWlldHNjaAogICAKMjAwMS0wMS0yMCAwNTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBQcmVwYXJlIGZvciBtb3JlIHJhdyBjb3VudGVycwogICAKMjAwMS0wMS0xNSAxNToxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICB1bmRvIGEgY2hhbmdlIHRoYXQgc25lYWtlZCBpbiBieSBtaXN0YWtlCiAgIAoyMDAxLTAxLTE1IDE0OjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIEV4dGVuZCB0aGUgc3lzdGVtU3RhdHMuY3B1UmF3IHNlY3Rpb24gdG8gaW5jbHVkZSBtb3JlIHJhdyBjb3VudGVycyBmb3IgdmFyaW91cwogICBvcGVyYXRpbmcgc3lzdGVtcy4gIEJhc2ljIHRlc3RpbmcgcGVyZm9ybWVkIGZvciBTb2xhcmlzIGFuZCBGcmVlQlNELiBDb2RlCiAgIGd1ZXNzdGltYXRlIGZvciBOZXRCU0QgYW5kIEJTRGkuCiAgIAoyMDAxLTAxLTEyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMTAgMjE6NTUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggY2FsbGluZyBvZiBpbml0X2NhbGxiYWNrcyBldmVuIGlmIGluaXRfc25tcCBjYWxsZWQgd2l0aCBOVUxMIHBhcmFtZXRlcgogICAKMjAwMS0wMS0xMCAyMTo1MyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBiYWRseSBhcHBsaWVkIHByZXZpb3VzIHBhdGNoCiAgIAoyMDAxLTAxLTEwIDIxOjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgRml4IHVzYWdlIG1lc3NhZ2UgKC1lIGlzIG5vdyAtQ2UpCiAgIAoyMDAxLTAxLTEwIDIxOjUxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXggYSBiYWQgaXBSb3V0ZVByb3RvY29sIHJldHVybgogICAKMjAwMS0wMS0xMCAyMTo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBwcm9ibGVtIHdoZW4gcnVubmluZyAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgZm9yIEZyZWVCU0QuIFRoYW5rcyB0bwogICBCZXJ0IERyaWVodWlzLgogICAKMjAwMS0wMS0xMCAyMTo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFVzZSB0aGUgaWZzcGVlZCBhdHRyaWJ1dGUgZnJvbSBkcml2ZXIgd2hlbiBhdmFpbGFibGUKICAgCjIwMDEtMDEtMDkgMDY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFwcGx5aW5nIHBhdGNoIGZvdW5kIGluIGJ1ZyAjMTI3Mjk5OgogICAgIC0gc3dpdGNoIGlmQWRtaW4gYW5kIGlmT3BlclN0YXR1cyBtZWFuaW5ncyB0byBtYXRjaCBrZXJuZWwgcGFyYW1ldGVycyBiZXR0ZXIuCiAgIAoyMDAxLTAxLTA5IDA2OjIxICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA4IDA4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQYXRjaCBmcm9tIEFuZGVycyBFbGxlZnNydWQKICAgICAtIGZpeCBocl9zd3J1biB3aGVuIHByb2dyYW1zIGhhdmUgZXhpdGVkIHNvIHdlIGRvbid0IHRydW5jYXRlCiAgICAgICBnZXRuZXh0IHF1ZXJpZXMuCiAgIAoyMDAxLTAxLTA4IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggQklUUyBlbmNvZGluZyBsZW5ndGggd2hlbiBtaWIga25vd2xlZGdlIGlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMDEtMDQgMjM6MTggIG5iYQoKICAgKiBhcHBzLzogc25tcHNldC5jLCBzbm1wdHJhcC5jOgoKICAgVHJ5IGZpeGluZyBwcm9ibGVtcyB3aXRoIHNubXBzZXQgb2YgbmVnYXRpdmUgdmFsdWVzCiAgIAoyMDAxLTAxLTA0IDIzOjE1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmM6CgogICBBZGQgdGhlIHJhdyBjcHUgY291dGVycyBmb3IgQlNEaS4gQ291cnRlc3kgQmVydCBEcmllaHVpcy4KICAgCjIwMDEtMDEtMDQgMjM6MTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgU2F2ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKICAgCjIwMDEtMDEtMDQgMjM6MDkgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBBZGQgbWlzc2luZyBkbWFsbG9jIHN1cHBvcnQgZm9yIHNvbWUgZmlsZXMKICAgCjIwMDEtMDEtMDQgMjM6MDQgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSBzb3J0IG9yZGVyIGZvciBjb25maWcuaC5pbgogICAKMjAwMS0wMS0wNCAxMDoyNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggc2VtaS1jb2xvbiBwcm9ibGVtLiAgUGF0Y2ggIzEwMzEwMS4KICAgCjIwMDEtMDEtMDMgMDc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC9wcm9jLyVkL2NtZGxpbmUgbWF5IGJlIGFuIGVtcHR5IGZpbGUgZm9yIHNvbWUgcHJvY2Vzc2VzLiAgUmV0dXJuICIiIGlmIHNvLgogICAKMjAwMS0wMS0wMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGFkZCBhICIlcyIgZm9ybWF0dGluZyBzdHJpbmcgdG8gdGhlIHN5c2xvZygpIGNhbGwgKHJlZGhhdCBidWcgIzE4MTUzKS4KICAgCjIwMDAtMTItMjkgMTM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgZm9yIGZvcm1hdHRpbmcgb2YgdGhlIC9wcm9jL25ldC9kZXYgZmlsZSB0byBhdm9pZAogICAgICAgbGludXggY29yZSBkdW1wcyB3aGVuIHRoZSBrZXJuZWwgbWlzLWJlaGF2ZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQxMTNhZ2VudHh0cmFwOgoKICAgLSB0cmFwIEFQSSB0ZXN0aW5nIHN1aXRlIGVuaGFuY2VkIHRvIHRlc3QgbW9yZSBjYXNlcy4KICAgCjIwMDAtMTItMjcgMTY6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oOgoKICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHdvcmsgbW9yZSB2aWEgY2FsbGJhY2tzIGFuZCByZW1vdmUgaWZkZWZzIGluCiAgICAgYWdlbnRfdHJhcC5jCiAgIC0gTWFrZSB0aGUgYWdlbnRfdHJhcC5jIGZpbGUgY2hlY2sgZm9yIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbnMgYW5kCiAgICAgaGFuZGxlIGl0IGludGVybmFsbHkgdXNpbmcgdGhlIG9sZCB0cmFwc2luayBzdXBwb3J0IGlmIG5vIGNhbGxiYWNrCiAgICAgaXMgZm91bmQuCiAgIC0gVGhpcyBmaXhlcyB0aGUgcHJvYmxlbSB3aGVuIGluaXRfbWliX21vZHVsZXMoKSBpc24ndCBjYWxsZWQgaW4gc3ViYWdlbnRzLgogICAKMjAwMC0xMi0yNyAxNjo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgbWFrZSB0aGUgZXhhbXBsZSB0cmFwcyBiZSBzZW50IHVzaW5nIGEgZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwIG9mIDk5CiAgIHJhdGhlciB0aGFuIDMuICBXZSBuZWVkIHRvIGRlZmluZSBpdCBpbiB0aGUgbWliIHN0aWxsLgogICAKMjAwMC0xMi0yNyAxNToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYnJva2VuIGNvbXBpbGVyIHByZWNlZGVuY2UgYXMgcmVwb3J0ZWQgaW4gc3VwcG9ydCAjMTEwNDczLgogICAKMjAwMC0xMi0yMiAwODo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY291bnRlcjY0IHJldmVyc2UgZW5jb2RpbmdzLgogICAKMjAwMC0xMi0yMiAwNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggdmlldyBwcm9jZXNzaW5nIHRvIHdhdGNoIGZvciBsZW5ndGggcHJlZml4LiAgVGhlIGxlbmd0aCBwcmVmaXgKICAgcmVhbGx5IHJlYWxseSBzaG91bGRuJ3QgYmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvaWQuICBOaWVscz8KICAgCjIwMDAtMTItMjEgMTQ6NDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcHJvYmxlbSB3aXRoIHBvc2l0aW9uYWwgY29tbXVuaXR5IGFyZ3VtZW50IHRvIHNubXBuZXRzdGF0CiAgIAoyMDAwLTEyLTIxIDE0OjM3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IG1ha2Ugc3VyZSBpbml0X21pYl9pbnRlcm5hbHMgaXMgY2FsbGVkIGJlZm9yZSBkb2luZyBhbnl0aGluZwogICAJc2VyaW91cyBpbiBpbml0X21pYgogICAKMjAwMC0xMi0yMSAwODoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzdXBwb3J0IGZvciBCSVRTCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4xLjIgLT4gVjQuMgoKMjAwMC0xMi0wNCAxNTozMCAgaGFyZGFrZXIKCgktIChORVdTLCBSRUFETUUpOiB1cGRhdGVzLgoJCjIwMDAtMTItMDQgMTQ6NDggIG1hcnoKCgllbnN1cmUgbWlibG9hZC50IHVzZXMgY29ycmVjdCBNSUJESVIgZm9yIHRlc3RpbmcKCQoyMDAwLTEyLTA0IDExOjA1ICBoYXJkYWtlcgoKCS0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KCQoyMDAwLTEyLTA0IDA4OjQ1ICBoYXJkYWtlcgoKCS0gKE5FV1MpOiBhZ2VudHggbm90ZSBjaGFuZ2VzLgoJCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKCS0gc25tcHRyYXBkX2xvZy5jOiBmb3ggbWlzc2luZyBsZWFkaW5nIHplcm9lcyBmb3IgJS4yZCBsaWtlIGZvcm1hdHMuCgkJQWRkIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yIHVwLXRpbWUgZGlzcGxheXMuCgkKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKCWZvdW5kIHRoZSB1bmluaXRpYWxpemVkIGRhdGEgYnVnLi4ubXVzdCBoYXZlIGJlZW4gaW4gdGhlcmUgZG9ybWFudCBmb3IgYSB3aGlsZSwgb3RoZXIgdGVzdCBmaXhlcyAtIGdvb2QgdG8gZ28hCgkKMjAwMC0xMi0wMSAxNjozNiAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MzUgIGhhcmRha2VyCgoJLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgoJLSAoVE9ETyk6IHJlZmVyZW5jZSBuZXQtc25tcC1jb2RlcnMuCgkKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCgktIChSRUFETUUpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCgktIChidWctcmVwb3J0LCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogcmVtb3ZlIHRoZSBidWcgcmVwb3J0IHNjcmlwdC4KCQoyMDAwLTEyLTAxIDE2OjMxICBoYXJkYWtlcgoKCS0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCgktIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQoJICB0aGUgc2FtZSBhcyBzbm1wdjIgdHJhcHMuCgkKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTU6MzEgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTU6MTYgIGhhcmRha2VyCgoJLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSBmb3IgcHJveHkgc3VwcG9ydC4KCQoyMDAwLTEyLTAxIDE0OjM2ICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBhIGZldyB0aGluZ3MuCgkKMjAwMC0xMi0wMSAxNDoyOCAgbmJhCgoJLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCgkKMjAwMC0xMi0wMSAxNDoyMyAgbmJhCgoJLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCgkKMjAwMC0xMi0wMSAxNDoxOSAgbmJhCgoJLSBzbXV4LmM6IHJlZm9ybWF0IHNvbWUgZGVidWcgbWVzc2FnZXMgZm9yIHJlYWRhYmlsaXR5CgkKMjAwMC0xMi0wMSAxNDoxNyAgbmJhCgoJLSBpbnRlcmZhY2VzLmM6IGZpeCBpZlR5cGUgdmFsdWVzIGZvciBMaW51eAoJCjIwMDAtMTItMDEgMTQ6MTQgIG5iYQoKCS0gc3ViYWdlbnQuYzogc3VwcGx5IGEgbWlzc2luZyByZXR1cm4gdmFsdWUKCQoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCgkKMjAwMC0xMi0wMSAwOTo0OSAgaGFyZGFrZXIKCgktIChzbm1wY29uZi4xKTogcXVpY2sgbWFuIHBhZ2UgZm9yIHNubXBjb25mLgoJCjIwMDAtMTItMDEgMDk6MTUgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvbW9uaXRvcik6IGNsZWFudXBzLgoJCjIwMDAtMTItMDEgMDk6MTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9wYXJzZS5jKTogY2hhbmdlIG5vLXBhcmVudCBsb2cgbWVzc2FnZSBpbnRvIGEgd2FybmluZy4KCQoyMDAwLTEyLTAxIDA5OjExICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogdXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCgktIChhZ2VudC9hZ2VudF90cmFwLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgoJICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KCQoyMDAwLTEyLTAxIDA3OjU2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdHlwby4KCQoyMDAwLTEyLTAxIDA3OjQyICBtYXJ6CgoJYWRkaXRpb25hbCBmaXhlcyB0byBzdXBwb3J0IHRhcmdldHRlZCBidWlsZHMgb2YgcGVybC9TTk1QIHVzaW5nIC1ORVQtU05NUC1QQVRIIChhbmQgd2hpdGUgc3BhY2UgcmVtb3ZhbCBhcyBteSBlbWFjcyBraW5kbHkgZG9lcyB0aGF0IGZvciBtZT8pCgkKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgoJLSBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6IGV4dGVybiAiQyIgYnJhY2tldGluZwoJCjIwMDAtMTEtMzAgMTQ6MDQgIG5iYQoKCS0gc25tcGQuY29uZi41LmRlZjogZml4IGZvcm1hdHRpbmcgb2Ygc211eHBlZXIgdG9rZW4KCQoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKCS0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KCQoyMDAwLTExLTMwIDA5OjE5ICBoYXJkYWtlcgoKCS0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCgkKMjAwMC0xMS0zMCAwOToxOCAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbiwgc25tcGNvbmYsIGFjbCwgYmFzaWNfc2V0dXAsIG1vbml0b3IsIG9wZXJhdGlvbiwKCSAgc3lzdGVtLCB0cmFwc2lua3MpOgoJICAtIGdyb3VwaW5nIHN1cHBvcnQuCgkgIC0gc29ydC1vZi1xdWlldCBvdXRwdXQgc3VwcG9ydC4KCSAgLSBvcGVyYXRpb24gbW9kZSBzdXBwb3J0IChzZXR0aW5nIHVzZXIsIGdyb3VwLCBwb3J0cy4uLikKCQoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNhdmUgYSB3YXJuaW5nIGhlYWRlciBhdCB0aGUgdG9wIG9mIHRoZQoJICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KCQoyMDAwLTExLTMwIDA5OjExICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgoJCjIwMDAtMTEtMzAgMDk6MTAgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IHNldCBEU19BR0VOVF9OT19ST09UX0FDQ0VTUyBpbiAtSCBoZWxwIG91dHB1dC4KCQoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgoJCjIwMDAtMTEtMjkgMTg6MjEgIHNsaWYKCglVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKCQoyMDAwLTExLTI5IDExOjM0ICBtYXJ6CgoJZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKCQoyMDAwLTExLTI5IDA1OjE4ICBtYXJ6CgoJcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKCQoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgoJcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKCQoyMDAwLTExLTI3IDE0OjM3ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2Jhc2ljX3NldHVwKTogYmFzaWMgc2V0dXAgc2VyaWVzIG9mIHF1ZXN0aW9ucy4KCQoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2FjbCk6IHR5cG9zLgoJCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYpOgoJICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KCSAgLSBkb24ndCB1c2UgSU86OkRpciwgYXMgaXRzIG5vdCBpbiB0aGUgc3RhbmRhcmQgcGVybCBtb2R1bGUgZGlzdHJpYnV0aW9ucy4KCQoyMDAwLTExLTI3IDE0OjM0ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgoJCjIwMDAtMTEtMjcgMTQ6MzMgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggYXV0by1zZXQgc3VwcG9ydCBmb3IgdGhlIGFnZW50IChhbmQgcGx1ZyBhIG1lbW9yeSBsZWFrKS4KCQoyMDAwLTExLTI3IDEzOjQyICBuYmEKCgktIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawoJCjIwMDAtMTEtMjcgMTM6NDEgIG5iYQoKCS2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKCQoyMDAwLTExLTI0IDE1OjE0ICBuYmEKCgktIG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXRfbmV0YnNkMS5jOiBtaW5vciBmaXhlcyBmb3IgTmV0QlNEIDEuNSwgT1BlbkJTRCAyLjYKCQoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMpOiBQYXRjaCBmcm9tIFNlYW4gSGFyZGluZzoKCSAgLSBkb24ndCBleHBvcnQgYW4gaW50ZXJuYWwgdmFyaWFibGUuCgkKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgoJLSBtaWIuYzogZml4IHBhcnNpbmcgb2Ygb2lkIGxpa2UgOTkuMTMuXCJndWZcIjgKCQoyMDAwLTExLTE5IDEzOjAzICBuYmEKCgktIFNOTVAueHMsIG1pYjJjLnZhcnR5cGVzLmNvbmY6IFRoZSByZWNlbnQgc3BlY2lhbGlzYXRpb24gb2YgdGhlIEludGVnZXIKCQl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgoJCWZvciBtaWIyYy4gU29ycnkgZm9yIG5vdCBjYXRjaGluZyB0aGlzIGJlZm9yZSBwcmUyIDotKAoJCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKCS0gZml4ZXMgdG8gLi9jb25maWd1cmUgLS13aXRoLWRlZmF1bHRzIC0tZW5hYmxlLW1pbmktYWdlbnQ7IG1ha2UgaW5zdGFsbAoJCWFuZCBydW4gdGhlIHRvb2xzIHVuZGVyIGN5Z3dpbi4gSGF2ZW4ndCB0cmllZCB0aGUgYWdlbnQgeWV0IDotKQoJCjIwMDAtMTEtMTggMDc6MTQgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMiApCgkKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCgktIChUMDQ5c25tcHYzaW5mb3JtKTogdjMgaW5mb3JtIHRlc3QgYWRkZWQuCgkKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgoJLSBtaWIuYywgc25tcF9hcGkuYzogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgc25tcHNldCBjYWxscyBhbmQgYmFkCgkJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KCQoyMDAwLTExLTE3IDEwOjMyICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QwNTBzbm1wdjN0cmFwKTogdGVzdCBmb3Igc25tcHYzIHRyYXBzLgoJCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggY2FzZXMgd2hlcmUgdGhlIGZvcm1hdCBzdHJpbmdzIGFyZSBzcGVjaWZpZWQuCgkKMjAwMC0xMS0xNyAxMDoyNiAgbmJhCgoJLSBJQU5BaWZUeXBlLU1JQi50eHQ6IHVwZGF0ZSBmcm9tIElBTkEKCQoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgoJICAtIGZpeCBtZW1vcnkgbGVha3MuCgkgIC0gZml4IGFnZW50eCBwcm9ibGVtcyB3aXRoIGJhZCBzZXRzLgoJCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wdjMuYyk6IGFkZGVkIGEgc3BhY2UgaW4gYSBkZWJ1Z2dpbmcgb3V0cHV0IHN0YXRlbWVudC4KCQoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGFkZGVkLgoJCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2V0IERTX0xJQl9BUFBUWVBFIGlmIGl0IGhhc24ndCBiZWVuIHNldCB5ZXQuCgkKMjAwMC0xMS0xNiAxNzo1MiAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBhZGQgQ09ORklHVFJBUEQuCgkKMjAwMC0xMS0xNiAxNzo1MCAgaGFyZGFrZXIKCgktIChzbm1wbGliL21pYi5jLCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLAoJICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwpOgoJICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KCQoyMDAwLTExLTE2IDE3OjI1ICBoYXJkYWtlcgoKCS0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgoJCjIwMDAtMTEtMTYgMTY6NTIgIGhhcmRha2VyCgoJLSAoVDExM2FnZW50eHRyYXApOiBBIG5ldyB0ZXN0IHRvIHRlc3QgdHJhcCBzdXBwb3J0IGZyb20gYWdlbnR4IHN1YmFnZW50cy4KCQoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKCS0gKFQwNThhZ2VudGF1dGh0cmFwKTogc2xlZXAgc29tZSBhbmQgb25seSBwZXJmb3JtIG9uZSBnZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDE2OjQ5ICBoYXJkYWtlcgoKCS0gKFQwNTRhZ2VudHYyY3RyYXApOiBzbGVlcCBhIGJpdCBhbmQgb25seSBzZW5kIG9uZSBzbm1wIHNldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTU6NDcgIG5iYQoKCS0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCgkKMjAwMC0xMS0xNiAxNTozMSAgbmJhCgoJLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKCQoyMDAwLTExLTE2IDE1OjE2ICBuYmEKCgktIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KCQlzZXQgbG9nIGZvcm1hdHMgZm9yIFRSQVAxIGFuZCBUUkFQMiBwZHVzLgoJCjIwMDAtMTEtMTYgMTM6NTAgIG5iYQoKCS0gc25tcF9hcGkuYzogYWRkIGZ1bmN0aW9uYWxpdHkgdG8gY2hlY2sgdmFsdWUgdHlwZXMgaW4gYWRkaXRpb24gdG8gcmFuZ2VzCgkJZm9yIHNubXBzZXQgYW5kIHNubXB0cmFwLgoJCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKCS0gcGFyc2UuYzogRml4IERFRlZBTCBwYXJzaW5nIGZvciAgT0JKRUNUIElERU5USUZJRVIgb3IgQklUUyB2YWx1ZXMKCQkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQoJCjIwMDAtMTEtMTYgMTE6MzkgIGhhcmRha2VyCgoJLSAoVDA1OGFnZW50YXV0aHRyYXApOiBhZGQgYSBncmVhdGVyIHRpbWVvdXQgdG8gdGhlIGdldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jKToKCSAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KCSAgLSBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoJCjIwMDAtMTEtMTYgMTE6MzQgIGhhcmRha2VyCgoJLSAoVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU4YWdlbnRhdXRodHJhcCk6CgkgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KCQoyMDAwLTExLTE2IDA5OjU2ICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCgkKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtKTogdGVzdCBpbmZvcm0gc2VuZGluZy9yZWNlaXZpbmcuCgkKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwLmMsIG1hbi9zbm1wdHJhcC4xKTogc3VwcG9ydCAtQ2kgZm9yIHNlbmRpbmcgaW5mb3Jtcy4KCQoyMDAwLTExLTE1IDE1OjQ4ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZF9sb2cuYyk6IHVzZSBTTk1QX01BWEJVRiBpbnN0ZWFkIG9mIGEgbG9jYWwgbGVuZ3RoIGRlZmluaXRpb24uCgkKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKCQoyMDAwLTExLTE1IDE0OjExICBuYmEKCgktIG1haW4uYzogdXBkYXRlIHRvIHVzZSBnZXRvcHQgZm9yIGFyZ3VtZW50IHBhcnNpbmcuCgkKMjAwMC0xMS0xNSAxNDoxMCAgbmJhCgoJLSBzbm1wX2FnZW50LmM6IGZpeCBhIGNvbmZ1c2luZyBpbmRlbnRhdGlvbi4KCQoyMDAwLTExLTE1IDE0OjA5ICBuYmEKCgktIGFnZW50X3RyYXAuYzogbWFrZSBzdXJlIGNvbW11bml0eSBpcyBcMC10ZXJtaW5hdGVkIGluIHRhcmdldFBhcmFtc1RhYmxlCgkKMjAwMC0xMS0xNSAxNDowMyAgbmJhCgoJLSBzbm1wdHJhcGRfbG9nOiBmaXggYSBidWZmZXIgdGhhdCBpcyB3YXkgdG9vIHNob3J0IGZvciBhIHRyYXAgd2l0aCBqdXN0IGEKCQlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgoJCjIwMDAtMTEtMTUgMTQ6MDAgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS5jOiBmaXggYSBzdHVwaWQgcGVycm9yIGZvciBzbm1wX3BlcnJvcgoJCjIwMDAtMTEtMTUgMTM6NTggIG5iYQoKCS0gcGFyc2UuW2NoXSwgbWliLmM6IGVuaGFuY2UgdGhlIHBhcnNlciB0byBkaXN0aW5ndWlzaCBJTlRFR0VSLCBJbnRlZ2VyMzIsCgkJVW5zaWduZWQzMiwgVUludGVnZXIzMi4KCQoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCglzbm1wX2FwaS5jOiByZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCgkKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKCSAgLSBEb24ndCBtYWtlIGluaXRfYWdlbnQoKS9zdWJhZ2VudF9wcmVfaW5pdCgpIGV4aXQgYnV0IHJldHVybiBhbgoJICAgIGVycm9yIGNvbmRpdGlvbiBpbnN0ZWFkLgoJCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgoJLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkIE5VTEwgdG8gZW5kIG9mIGRlbW8gc3RyaW5nIGFuZCBjaGVjayBmb3IgbGVuPTAuCgkKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgoJc25tcF9hcGkuYzogTWFrZSBzdXJlIHRoZSBub1JhbmdlQ2hlY2sgdG9rZW4gaXMgYSBib29sZWFuCgkKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgoJLSBtaWIuYzogZ2l2ZSB0aGUgdHJlZS10b3AgYSBuYW1lIHRvIHByb3RlY3QgZXJyb3IgbWVzc2FnZSB3aGVuIGxvb2tpbmcgdXAgLmZvbwoJCjIwMDAtMTEtMTIgMDQ6MzYgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS5jOiB1c2UgY29uZmlnX3BlcnJvciBmb3IgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZQoJCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKCS0gcHJveHkuYzogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTExLTEyIDA0OjMzICBuYmEKCgktYWdlbnRfdHJhcHMuYzogTW92ZSBhIGNvbmRpdGlvbmFsbHkgdXNlZCB2YXJpYWJsZQoJCjIwMDAtMTEtMTIgMDQ6MzIgIG5iYQoKCUZpeCBhIGJvZ3VzICNpZmRlZgoJCjIwMDAtMTEtMTAgMDk6MTggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhcHBseSBwYXRjaCAjMTAyMjI0IGZyb20gamJwbiBmb3IgY3Jvc3MtY29tcGlsaW5nLgoJCjIwMDAtMTEtMTAgMDg6NTYgIGhhcmRha2VyCgoJLSAodGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCk6CgkgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCgkgICAtIHdoaWNoIGV2ZW4gdW5jb3ZlcmVkIGEgYnVnLgoJCjIwMDAtMTEtMTAgMDg6NTUgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGQuYyk6CgkgIC0gZm9yayBpZiBmaWxlIGxvZ2dpbmcgb3Igc3lzbG9nZ2luZywgYnV0IG5vdCBwcmludGluZy4KCSAgLSBkb24ndCBjbG9zZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuICBUaGVyZSBzaG91bGRuJ3QgYmUgYW55LgoJCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KCQoyMDAwLTExLTA5IDE2OjQwICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgoJCjIwMDAtMTEtMDkgMTU6MzIgIGhhcmRha2VyCgoJLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgoJCjIwMDAtMTEtMDkgMTU6MzEgIGhhcmRha2VyCgoJLSAoTkVXUywgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KCQoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGVzL2J1bGt3YWxrLnBsLCB0L2J1bGt3YWxrLnQpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCgkKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCgktIChNQU5JRkVTVCwgUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgoJCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGZpeCAtSCBvdXRwdXQuCgkKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBtYWtlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgY2FsbCBydW5fYWxhcm1zKCkuCgkKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCgktIChkaXNraW8uYyk6IGZpeCBPSUQuCgkKMjAwMC0xMS0wOCAxNzowNiAgaGFyZGFrZXIKCgktIChTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBNYXJrIENhdmFnZSBmb3IgZGVmYXVsdCB2YWx1ZSBzdXBwb3J0LgoJCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgoJLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBtaW5pbWFsIERFRlZBTCBwYXJzaW5nIHN1cHBvcnQuCgkKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGxpYnJzYXJlZiwgZXRjLCBpZiBuZWVkZWQuCgkKMjAwMC0xMS0wNyAxNToxNSAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCgkgIGFnZW50L3NubXBkLmMpOgoJICAtIHVpZC9naWQgY2hhbmdlcy4KCQoyMDAwLTExLTA3IDE1OjEwICBoYXJkYWtlcgoKCS0gKFNOTVAueHMpOiBmaXggVFlQRV9OT1RJRiAtPiBUWVBFX05PVElGVFlQRS4KCQoyMDAwLTExLTA3IDExOjMwICBoYXJkYWtlcgoKCS0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgoJICAtIGltcGxlbWVudCBiZXN0LWd1ZXNzICgtSWIpIHBhcnNpbmcuCgkgIC0gYWNjZXNzIHRvIHRyYXAgdmFyYmluZHMuCgkgIC0gcmFuZ2UgYWNjZXNzLgoJCjIwMDAtMTEtMDcgMTE6MDAgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBidWlsZCBjcmVhdGVkIGZpbGVzLgoJCjIwMDAtMTEtMDcgMTA6NTggIGhhcmRha2VyCgoJLSAoUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gaW1wbGVtZW50IGEgZmluaXNoKCkgY2FsbC4KCQoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKCS0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIG11bHRpcGxlIGNhbGxiYWNrIHBhdGNoIGZvciBwZXJsL1NOTVAvU05NUC54cy4KCQoyMDAwLTExLTA3IDEwOjQ4ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgb3B0aW9uYWwgY29uZmlnIGZpbGUgRE5FLgoJCjIwMDAtMTEtMDcgMTA6NDEgIGhhcmRha2VyCgoJLSAoU05NUC5wbSk6IGZpeCBpaWQgcGFyc2luZyB3aXRoIHJlc3BlY3QgdG8gbWliIG5vZGVzIHdpdGggYSAtIGluIGl0LgoJCjIwMDAtMTEtMDcgMTA6MjkgIGhhcmRha2VyCgoJLSAoaWZfZmllbGRzLmgsIGludGVyZmFjZXMuYywgaXBNZWRpYS5jLCBpcFJvdXRlLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLAoJICB1ZHAuYywgdWRwVGFibGUuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBtaWJKSiBmaXhlcyBbRnJlZUJTRC9vdGhlciBCU0Qnc10uCgkKMjAwMC0xMS0wNyAxMDoxMyAgaGFyZGFrZXIKCgktIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLAoJICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBpbXBsZW1lbnQgdWlkL2dpZCBjaGFuZ2VzIGFmdGVyIHN0YXJ0dXAgZm9yIHRoZSBhZ2VudC4KCQoyMDAwLTExLTA3IDA4OjMzICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogYSBiZXR0ZXIgc2FuaXR5IGNoZWNrIGZvciBzZXNzaW9uIGRlbGV0aW9uLgoJCjIwMDAtMTEtMDcgMDc6MjQgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBQYXRjaCBmcm9tIERhdmUgdG8gc2FuaXR5IGNoZWNrIHBhcmFtLT51cGRhdGVUaW1lLgoJCjIwMDAtMTEtMDYgMTE6MDAgIGhhcmRha2VyCgoJLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCgkgIC0gaXRzIHBvc3NpYmxlIHNvbWUgY29tcGlsZXJzIHdpbGwgY2hva2Ugb24gdGhpcyBoYWNrLgoJICAtIGZpeGVzIGJ1ZyAjMTIxNzUuCgkKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCgktIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KCQoyMDAwLTExLTAzIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZml4IG1pYiByZWdpc3RyYXRpb25zIGZvciBkdXBsaWNhdGUgT0lEcyBiZWluZyB1c2VkIGZvciB0aGUgdHJhcCBleGFtcGxlcy4KCQoyMDAwLTExLTAzIDE1OjMxICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KCSAgLSBVbSwgYXBwbGllZCBjb3JyZWN0bHkgdGhpcyB0aW1lIChJIGhvcGUpLgoJCjIwMDAtMTEtMDMgMTU6MjkgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgoJCjIwMDAtMTEtMDIgMjI6MTkgIG5iYQoKCUNsZWFuIHVwIHNvbWUgdW51c2VkIHZhcmlhYmxlcyBldGMuCgkKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCgkKMjAwMC0xMS0wMiAyMjoxNSAgbmJhCgoJLSBzbm1wdHJhcGQuYzogZml4IHRoZSBmb3JtYXQgc3RyaW5nIGZvciBmb3JtYXRfdHJhcAoJCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKCS0gTWFrZWZpbGUuaW46IHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMgZnJvbSBmaWxlIGxpc3RzCgkKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgoJRG9jdW1lbnQgdGhlIC1PWCBvdXRwdXQgb3B0aW9uCgkKMjAwMC0xMS0wMiAyMjoxMSAgbmJhCgoJRG9jdW1lbnQgdGhlIHN5c3NlcnZpY2VzIHRva2VuCgkKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oKTogYWRkIHVjZC1zbm1wL3Byb3h5LgoJCjIwMDAtMTEtMDIgMTY6MTYgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCgkKMjAwMC0xMS0wMiAxMzoyMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCAxMDIyMzkgZnJvbSBkb3Vnd2FyeiB0byBmaXggYSBwcmV2aW91c2x5IGJhZCBzbXV4LmMgcGF0Y2guCgkKMjAwMC0xMS0wMSAxNjozNiAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKCQoyMDAwLTExLTAxIDE2OjE0ICBoYXJkYWtlcgoKCS0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KCQoyMDAwLTExLTAxIDE2OjA4ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgoJICAtIG1pbmltYWwgU0VUIHN1cHBvcnQgZm9yIHRoZSBwcm94eSBjb2RlLgoJCjIwMDAtMTEtMDEgMTA6MjIgIGhhcmRha2VyCgoJLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgoJCjIwMDAtMTAtMzEgMTQ6MzAgIG5iYQoKCS0gdGNwVGFibGUuYzogcmVtb3ZlIGFuIHVubmVzY2Vzc2FyeSAjaW5jbHVkZQoJCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKCS0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCgkKMjAwMC0xMC0zMSAxNDoyNSAgbmJhCgoJLSBwcm90b2NvbC5jOiBmaXggc29tZSBzdXNwaWNpb3VzIGxvb2tpbmcgY29kZQoJCjIwMDAtMTAtMzEgMTQ6MjEgIG5iYQoKCS0gbWFuL3NubXBkLmNvbmY6IGZpeCBhIHR5cG8KCQoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCgktIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKCQoyMDAwLTEwLTMxIDEyOjI3ICBuYmEKCgktIGludGVyZmFjZS5jOiBhZGQgImludGVyZmFjZSIgY29uZmlnIGZvciB1bmd1ZXNzYWJsZSBpbnRlcmZhY2UgdHlwZS9zcGVlZAoJCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKCS0gYXBwcy8qOiBtYWtlIHN1cmUgd2UgcmVwb3J0IGFueSBlcnJpbmRleC9lcnJjb2RlIGluIHRoZSByZXNwb25zZQoJCjIwMDAtMTAtMzEgMTI6MDQgIG5iYQoKCS0gcHJvdG9jb2wuYzogY2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCgkKMjAwMC0xMC0zMSAwOToyNCAgaGFyZGFrZXIKCgktIChTTk1QLnhzKTogcHJpbnQgY291bnRlcjY0J3MgYXMgdW5zaWduZWQuCgkKMjAwMC0xMC0zMSAwNzo1NCAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc3ViYWdlbnQuYywgc25tcE5vdGlmeVRhYmxlLmMsCgkgIHNubXBOb3RpZnlUYWJsZS5oKTogUGF0Y2ggZnJvbSBEYXZlOgoJICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KCQoyMDAwLTEwLTMwIDIyOjAzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IGZpeCBidWcgIzExOTc4NjogbWFrZSBzbXV4IHJldXNlIHNvY2tldCBhZGRyZXNzLgoJCjIwMDAtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCk6CgkgIC0gZml4IGJ1ZyAjMzgyCgkgIC0gZml4IGFnZW50eCBub24tcm9vdCB0ZXN0cyB0byB1c2UgLXggL3RtcC9ibGFoL2FnZW50eF9zb2NrZXQuCgkKMjAwMC0xMC0zMCAxMzo0NSAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGZpeCBhIHR5cG8gcG9pbnRlZCBvdXQgYnkgQ2hyaXMgUGVwcGVyLgoJCjIwMDAtMTAtMzAgMTE6NDYgIGhhcmRha2VyCgoJLSAodGVzdHMvVDExMWFnZW50eHNldCk6IHRlc3Qgc2NyaXB0IGZvciBBZ2VudFggc2V0IHN1cHBvcnQuCgkKMjAwMC0xMC0zMCAxMTo0MyAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTEwYWdlbnR4Z2V0KTogaGVhZGVyIGNoYW5nZWQgdG8gaW5jbHVkZSB0aGUgd29yZCBHRVQuCgkKMjAwMC0xMC0zMCAxMToxMyAgbmJhCgoJLSB1Y2Qtc25tcC92bXN0YXRfKiwgbWVtb3J5X2ZyZWVic2QyLmMsIGRsbW9kLmM6IE1ha2Ugc3NSYXdDcHUgb2JqZWN0cyBDb3VudGVycywKCQlhbmQgYWRkIHN1cHBvcnQgZm9yICpCU0QgKGluY2x1ZGluZyBPcGVuQlNEKQoJCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKCS0gQ2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTMwIDExOjA0ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eCwgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0KToKCSAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCgkKMjAwMC0xMC0zMCAxMTowMyAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgoJCjIwMDAtMTAtMzAgMTA6MzkgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IGVycm9yIHdoZW4gcGFyc2luZyAtWCBmb3Igbm9uLWFnZW50eCBidWlsZHMuCgkKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZC5jKTogYWRkIC1vIGZsYWcgdG8gbG9nIHRvIGEgcGFydGljdWxhciBmaWxlLgoJCjIwMDAtMTAtMjcgMTA6NDEgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogdXNlIG1rc3RlbXAgaWYgYXZhaWxhYmxlLgoJCjIwMDAtMTAtMjcgMTA6NDAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU2VhcmNoIGZvciBta3N0ZW1wKCkuCgkKMjAwMC0xMC0yNyAxMDowOCAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgbGludXgga2VybmVsIGxpc3QgdG8gaW5jbHVkZSAyLjIuCgkKMjAwMC0xMC0yNiAxNzo1MSAgaGFyZGFrZXIKCgktIChldmFsX3Rvb2xzLnNoKTogbWFrZSBTS0lQSUZOT1QgY2hlY2sgdGhlIG1pYiBtb2R1bGUgbGlzdCB0b28uCgkKMjAwMC0xMC0yNiAxNzo0OCAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTAxYWdlbnR4KTogQWdlbnRYIHN1YmFnZW50IHRlc3QgZm9yIHNpbXBsZSBnZXQgcmV0cmlldmFsLgoJCjIwMDAtMTAtMjUgMTc6NDQgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCgkKMjAwMC0xMC0yNSAxNzowNiAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KCQoyMDAwLTEwLTE3IDE1OjMwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4KCQoyMDAwLTEwLTE2IDAzOjEzICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXIuYyk6IFNwZWNpZnkgdGhlIGxlbmd0aCBvZiB0aGUgKHBzZXVkby0pYW5zd2VyIHRvIGEgcmVxdWVzdC4KCQlUaGlzIGFsbG93cyBpdCB0byBiZSBjYWNoZWQgY29ycmVjdGx5IGZvciBtdWx0aS1wYXNzIFNFVCBoYW5kbGluZy4KCQoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KCQlUaGlzIHNob3VsZCBoZWxwIHdpdGggKHNvbWUgb2YpIHRoZSBTRVQgaGFuZGxpbmcgcHJvYmxlbXMuCgkKMjAwMC0xMC0xNiAwMTo1NiAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IERvbid0IGZyZWUgY2FsbGJhY2sgZGF0YSBzdHJ1Y3R1cmUuCgkJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCgkJSSByZWFsaXNlIHRoYXQgdGhpcyBpbnRyb2R1Y2VzIGEgbWVtb3J5IGxlYWssIGJ1dCB0aGlzIGlzbid0IHRoZQoJCWNvcnJlY3QgcGxhY2UgdG8gaGFuZGxlIHRoaXMuCgkKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogYWRkIC1JIHRvIHRoZSBoZWxwIG91dHB1dC4KCQoyMDAwLTEwLTEyIDE0OjI0ICBoYXJkYWtlcgoKCS0gKGFnZW50L2RsbW9kcy8qKTogcmVtb3ZlIG9ic29sZXRlIHZlcnNpb25zCgkKMjAwMC0xMC0xMiAxNDowOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUpOiB1cGRhdGUuCgkKMjAwMC0xMC0xMiAxNDowMSAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgoJICAtIHVkcCBjb25maWd1cmF0aW9uIGNoYW5nZXMgdG8gY2hlY2sgZm9yIG1pc2Mgc3RydWN0dXJlIGRlZmluaXRpb25zLgoJCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgoJLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCgkKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCgktICh0dW5uZWwuaCk6IGNvbmZpZ19hZGRfbWliKFRVTk5FTC1NSUIpLgoJCjIwMDAtMTAtMTIgMTM6NDcgIGhhcmRha2VyCgoJLSAodHVubmVsLmgsIHR1bm5lbC5jLCB0dW5uZWwuaCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCgkKMjAwMC0xMC0xMCAxNDozMyAgbXNsaWZjYWsKCglGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCgkKMjAwMC0xMC0xMCAxMTowMiAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IHJldmVyc2UgbGlicmFyeSBsaW5rIG9yZGVyaW5nIGFnYWluLi4uCgkKMjAwMC0xMC0xMCAwOTowMyAgbXNsaWZjYWsKCglSZW1vdmUgcmVsYXRpdmUgcGF0aCB0byBpbmNsdWRlIHN5c3RlbS5oLgoJCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgoJUmVtb3ZlIHVubmVlZGVkIGRlY2wgb2YgdnNucHJpbnRmIHdpdGhvdXQgc3RkYXJnL3ZhcmFyZ3MgZGVjbCBvZiB2YV9saXN0LgoJCjIwMDAtMTAtMTAgMDU6MTUgIG1zbGlmY2FrCgoJQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KCQoyMDAwLTEwLTA5IDE3OjA2ICBtc2xpZmNhawoKCXBhdGNoIHRvIGZpeCBsZWFkaW5nIHplcm8gZXJyb3IgaW50cm9kdWNlZCBieSBjaGFuZ2VzIGZvciBzaHV0ZG93bl9taWIuCgkKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCgktIChkbG1vZC5jKTogbWlub3IgZGVidWdnaW5nIG91dHB1dCBhZGRpdGlvbnMuCgkKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IG1vdmUgYXV0b19ubGlzdCB0byBsaWJ1Y2RtaWJzLgoJCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgoJLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KCQoyMDAwLTEwLTA5IDEwOjI2ICBtc2xpZmNhawoKCU1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCgkKMjAwMC0xMC0wOSAwMjozNiAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKCQkoUW46IHNob3VsZCBhbnkvYWxsIG9mIHRoZSBvdGhlcnMgYmUgcXVhbGlmaWVkIGFzIHdlbGw/KQoJCjIwMDAtMTAtMDYgMDg6NTYgIG1zbGlmY2FrCgoJU3VwcG9ydCBmb3Igc2h1dGRvd25fbWliIC0gY2xlYXJpbmcgdGhlIE1JQiB0cmVlcyBhbmQgY29uZmlndXJlZCByZWdpc3RyYXRpb25zLgoJCjIwMDAtMTAtMDYgMDU6MzMgIG1zbGlmY2FrCgoJUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KCQoyMDAwLTEwLTA2IDA0OjU4ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMDUgMjM6NDUgIG5iYQoKCS0gbWliLmM6IGZpeCBzaWxseSBidWcgaW4gbmV3IG9pZCBwYXJzZXIsIHdoZW4gbGVhdmluZyB0aGUgdHJlZSBhbmQgZ29pbmcKCQlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CgkKMjAwMC0xMC0wNSAxNjowMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jeSBvcmRlci4KCQoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgoJCjIwMDAtMTAtMDQgMTc6NTggIGhhcmRha2VyCgoJLSAoZXh0ZW5kaW5nKTogYWRkIHNubXBjb25mIHN1cHBvcnQgZm9yIGV4dGVuZGluZyB0aGUgYWdlbnQgKHBhc3MsIGV4ZWMsIC4uLikKCQoyMDAwLTEwLTA0IDE3OjU4ICBoYXJkYWtlcgoKCS0gKG1vbml0b3IpOiBtaXNjIHVwZGF0ZXMgYW5kIGFkZCAiZmlsZSIgd2F0Y2hpbmcuCgkKMjAwMC0xMC0wNCAxNzo1NyAgaGFyZGFrZXIKCgktIChhY2wpOiBkb24ndCBzcGVjaWZ5IGxpbmUgc3BlY2lmaWNhdGlvbnMgZm9yIGRlZmF1bHQgc25tcGNvbmYgdXNhZ2UuCgkKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgoJLSBGQVE6IGZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuICJvbWl0IiBhbmQgImluY2x1ZGUiCgkKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCgktIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgoJCjIwMDAtMTAtMDQgMTA6MzUgIGhhcmRha2VyCgoJLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDc6MTUgIG1zbGlmY2FrCgoJRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCgkKMjAwMC0xMC0wNCAwNzowMiAgbXNsaWZjYWsKCglxdWFsaWZ5IG5ldyBpL2YgdHlwZXMuCgkKMjAwMC0xMC0wNCAwNjo1MiAgbXNsaWZjYWsKCglxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCgkKMjAwMC0xMC0wNCAwNjo1MSAgbXNsaWZjYWsKCglUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCgkKMjAwMC0xMC0wNCAwMDoxOCAgbmJhCgoJLSBzbm1wdGFibGUuYzogaW5kZXggY29sdW1udCAoLUNpKSB3aWR0aCBub3QgcHJvcGVybHkgY29tcHV0ZWQgd2hlbiB1c2luZwoJCUdFVEJVTEsKCQoyMDAwLTEwLTAzIDE4OjE5ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KCQoyMDAwLTEwLTAzIDE4OjE3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBtb3ZlIGF1dG9fbmxpc3Quby9sbyB0byBsaWJ1Y2RhZ2VudCBzaW5jZSBzb21lIG1pYi1tb2R1bGVzIG5lZWQgaXQuCgkKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CgkgIC0gZml4IGdldG5leHQgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgoJCjIwMDAtMTAtMDMgMTc6MjYgIGhhcmRha2VyCgoJLSAobWliSkovaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCgkKMjAwMC0xMC0wMyAxNzoyNCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gYmV0dGVyIGlmdHlwZSBndWVzc2luZy4KCQoyMDAwLTEwLTAzIDE2OjUyICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIGZyb20gRG91ZyBXYXJ6ZWNoYToKCSAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCgkKMjAwMC0xMC0wMyAxNjoyMyAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMsIGV4YW1wbGUuaCk6IGV4YW1wbGUgb2YgY29kaW5nIGEgdjIgdHJhcCBmcm9tIHNvbWVvbmUgd2hvCgkgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCgkgIGEgd2hpbGUgdG8gcHJvcGVybHkgYXR0cmlidXRlIHRoaXMgcGF0Y2guICBTaWdoLgoJCjIwMDAtMTAtMDMgMTY6MjEgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEb3VnbGFzIFdhcnplY2hhOgoJICAtIHNubXBkIHJldHVybnMgd3JvbmcgZXJyb3IgaW5kZXggb24gU05NUHYxIHJlcXVlc3QgKEJVRyMzNzUpLgoJCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgoJRml4IG51bGwgZGVyZWYgb2Ygc3MtPmNvbW11bml0eSwgcmVwb3J0ZWQgYnkgSmltIFBpY2tlcmluZy4KCQoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKCUNhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCglUaGFua3MgdG8gTWFya2t1IExhdWtrYW5lbiA8cGt5QG1vcmVtYWdpYy5jb20+CgkKMjAwMC0xMC0wMyAwNTo1OSAgbXNsaWZjYWsKCglSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQoJCjIwMDAtMTAtMDIgMjE6NDEgIG5iYQoKCS0gbWliLmM6IEVzY2FwZSAiIGFuZCBcIGluIHRleHQgc3RyaW5ncy4KCQoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCgktIHNubXBfbG9nZ2luZy5jOiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgoJCjIwMDAtMTAtMDIgMjE6MzggIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBhIG1pc3NpbmcgJChzcmNkaXIpIGR1cmluZyBtYWtlIGluc3RhbGwgb2YgbWliMmMKCQljb25maWd1cmF0aW9uIGZpbGVzCgkKMjAwMC0xMC0wMiAyMTozNyAgbmJhCgoJLSBzbm1wc2V0LmM6IERvIGEgZXhpdCgyKSBmb3IgZmFpbHVyZSBpbiBzZXR0aW5nIHRoZSB2YXJpYWJsZS4KCQoyMDAwLTEwLTAyIDIxOjM2ICBuYmEKCgktIGhyX3N3cnVuLmM6IGFkZCBhIHNhZmVndWFyZCBmb3IgdmVyeSBsb25nIGFyZ3VtZW50IGxpc3RzLgoJCjIwMDAtMTAtMDIgMjE6MzQgIG5iYQoKCS0gaHJfZGlzay5jOiBBZGQgYSBuYW1lIHBhdHRlcm4gdGhhdCBtYXRjaGVzIHg4NiBJREUgZGlza3MgZm9yIFNvbGFyaXMuCgkKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgoJLSBrZXJuZWxfc3Vub3M1LmM6IG1ha2UgdGhlIGJ1ZmZlciBmb3IgU0lPQ0dJRkNPTkYgZHluYW1pYy4KCQoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wdXNtLmguCgkKMjAwMC0xMC0wMiAxMDo0OCAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6CgkgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KCSAgLSBtb3JlIGNvbW1lbnRzIGluIHRoZSBjb2RlLgoJICAtIGFsbG93IHJlYWRpbmcgYSAuY29uZiBkaXJlY3RseSB0byB3cml0aW5nIGZvciBhdXRvLWNvbW1lbnRpbmcgLmNvbmYgZmlsZXMuCgkgIC0gbWlzYy4KCQoyMDAwLTEwLTAyIDEwOjQ3ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLWxlc3MuCgkKMjAwMC0xMC0wMiAwOTozNSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwcm90ZWN0IGFnYWluc3QgMCBieXRlIHN0YXRQIG1hbGxvY3MuCgkKMjAwMC0xMC0wMiAwOToxNCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgoJICAtIGZpeCBpbnRlcmZhY2VzLmMgZm9yIHZhcmlhYmxlIGxlbmd0aCBudW1iZXIgZm9ybWF0dGluZyBpbiAvcHJvYy9uZXQvZGV2LgoJCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgoJUGVyIE5pZWxzIHJlY29tbWVuZGF0aW9uLCBjaGRpciB0byBQRVJTSVNURU5UX0RJUkVDVE9SWSAocmU6IGJ1ZyAjMjk4KQoJCjIwMDAtMDktMzAgMDg6NTcgIG1zbGlmY2FrCgoJRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgoJVGhhbmtzIHRvIHNpbW9uQHppZC50dXdlaW4uYWMuYXQKCQoyMDAwLTA5LTMwIDA4OjUwICBtc2xpZmNhawoKCUZpeCBzb21lIGtlcm5lbCBzeW1ib2xzIC0gdGhhbmtzIHRvIHNpbW9uQHppZC50dXdpZW4uYWMuYXQKCQoyMDAwLTA5LTI5IDE0OjM1ICBoYXJkYWtlcgoKCS0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCArIC5vIC0+IC5sbyBmaXhlcy4KCQoyMDAwLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKCS0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KCQoyMDAwLTA5LTI5IDE0OjA5ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogZHJvcCBkdXBsaWNhdGUgbGluZXMgZnJvbSByZWFkIGluIHNubXBkLmNvbmYgZmlsZXMuCgkKMjAwMC0wOS0yOSAxMzo0NiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNvcnQgdW5rbm93biBkaXJlY3RpdmVzIGJ5IGZpbGV0eXBlICh3aG9vcHMpLgoJCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgoJLSAobW9uaXRvcik6IG1pbm9yIHdvcmRpbmcgYWRqdXN0bWVudHMuCgkKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHByaW50IG1vcmUgaW5mb3JtYXRpb24vY29tbWVudHMgdG8gdGhlIHNjcmVlbi4KCQoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKCS0gKHZhcl9zdHJ1Y3QuaCk6IGluY3JlYXNlIHJlZ2lzdHJhdGlvbiBuYW1lIGxlbmd0aCB0byAzMiBmcm9tIDE2IChCdWcgIzE3MikKCQoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBpbmNvcnJlY3QgdmFsIGxlbmd0aCBwYXNzZWQgdG8gcGFyc2VfdW5zaWduZWRfaW50IChCdWcgIzMzOSkuCgkKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogZml4IEJ1ZyMzNTMgZm9yIGhvc3RuYW1lcyB0aGF0IGxvb2sgbGlrZSAiNXciLgoJICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgoJCjIwMDAtMDktMjkgMTA6MzkgIGhhcmRha2VyCgoJLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb206CgkgIC0gVGhlcmUgaXMgYSBwZWN1bGlhcml0eSBpbiB0aGUgc25tcF9hbGFybV91bnJlZ2lzdGVyIGZ1bmN0aW9uIGluCgkgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCgkKMjAwMC0wOS0yOSAxMDozNCAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IHVzZSBvZiBOVUxMIHRpbWVzdGFtcCBwb2ludGVyIGluIG5ldyByb3cgY3JlYXRpb24gKEJ1ZyAjMzQ2KQoJCjIwMDAtMDktMjggMTQ6MzggIG5iYQoKCS0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKCQoyMDAwLTA5LTI4IDE0OjE0ICBuYmEKCgktIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKCQoyMDAwLTA5LTI4IDE0OjEzICBuYmEKCgktIG1hbi86IGFkZCBtYW4gZW50cmllcyBmb3IgbWFueSBsaWJyYXJ5IGZ1bmN0aW9ucyAocG9pbnRpbmcgdG8gc25tcF9hcGkuMykKCQoyMDAwLTA5LTI4IDExOjA5ICBtc2xpZmNhawoKCXJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKCQoyMDAwLTA5LTI4IDExOjA4ICBtc2xpZmNhawoKCUZvciBidWlsZGluZyBvbiBVbHRyaXggVjQueAoJCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgoJLSAoZGxtb2QuaCk6IGFkZCB0aGUgVUNELURMTU9ELU1JQiB0byB0aGUgZGVmYXVsdCBsb2FkIGxpc3QuCgkKMjAwMC0wOS0yNyAxMjo1NSAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgoJICAtIGluY2x1ZGUgdWNkLXNubXAvZGxtb2QgYnkgZGVmYXVsdC4KCSAgLSBidWlsZCBjb2RlIG9ubHkgaWYgZGxvcGVuIGlzIGZvdW5kLgoJCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgoJLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KCQoyMDAwLTA5LTI2IDE2OjA3ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IG1pbm9yIGJ1ZyBmaXhlcy4KCQoyMDAwLTA5LTI2IDE0OjIxICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSwgbWFuYWdlci5wbSk6CgkgIC0gZGlzcGxhdGFibGUgc3VwcG9ydHMgLW1hcmsvLW9ubWFya2VkLgoJICAtIHVzZXIncyBvbmNhbGwgc2NoZWR1bGUgaXMgbW9kaWZpYWJsZSB2aWEgdGhlIHdlYi4KCQoyMDAwLTA5LTI2IDEzOjE3ICBtc2xpZmNhawoKCUZvciBXaW4zMiBBUEk6IERlY2xhcmUgc3RydG91bCwgdnNucHJpbnRmOyBFbmFibGUgcmV2ZXJzZSBCRVIgZW5jb2RpbmcuCgkKMjAwMC0wOS0yNiAxMzoxNSAgbXNsaWZjYWsKCglJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKCQoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKCUZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgoJCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgoJRml4IHVuc2lnbmVkIGNvbXBhcmlzb25zLgoJCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgoJRml4IHNpZ25lZCBjb21wYXJpc29uOyBSZW1vdmUgdW51c2VkIHZhci4KCQoyMDAwLTA5LTI2IDEzOjEyICBtc2xpZmNhawoKCUluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCgkKMjAwMC0wOS0yNiAxMzoxMSAgbXNsaWZjYWsKCglNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgoJCjIwMDAtMDktMjYgMTI6NTggIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCgkKMjAwMC0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCgktIChtaWIyYyk6IGNob21wKCQxKSBpcyBpbGxlZ2FsLgoJCjIwMDAtMDktMjYgMDM6MDQgIG1zbGlmY2FrCgoJRXhwbGljaXRseSBidWlsZCBwYXRoIHRvIENBQ0hFRklMRSwgYXMgbm90IGFsbCBDIGNvbXBpbGVycyBzdXBwb3J0ICIjIyIuCgkKMjAwMC0wOS0yNSAxNzo0OSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBXZXMgYWN0dWFsbHkgZG9jdW1lbnRlZCBzb21ldGhpbmc/ICB5b3UgbXVzdCBiZSBraWRkaW5nIQoJCjIwMDAtMDktMjUgMTY6NTYgIG1zbGlmY2FrCgoJY2hkaXIganVzdCBiZWZvcmUgc2VuZGluZyBjb2xkc3RhcnQgdHJhcCwgdG8gYWxsb3cgZm9yIHBhdGhzIHRvIGJlCglyZXNvbHZlZC4KCQoyMDAwLTA5LTI1IDE1OjA4ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IG1pbm9yIGdyYXBoaW5nIGNoYW5nZXMKCQoyMDAwLTA5LTI1IDA5OjM1ICBtc2xpZmNhawoKCWNhc2UgaW5zZW5zaXRpdmUgdG9rZW4gc2VhcmNoICh1c2Ugc3RyY2FzZWNtcCkuCgkKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgoJIC1taWJzLzogTUlCIHVwZGF0ZXMKCQoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCgktIG1pYnMvOiBNSUIgdXBkYXRlcwoJCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKCS0gc25tcF9hcGkuYzogc3VwcG9ydCBzZXR0aW5nIG9mIEJJVFMgdmFyaWFibGVzCgkKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgoJLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CgkKMjAwMC0wOS0yMiAwNDoyOSAgbmJhCgoJLSBzbm1wdXNtLmM6IGlzc3VlIGVycm9yIG1lc3NhZ2Ugd2l0aCBvYmplY3QKCQoyMDAwLTA5LTIyIDA0OjI4ICBuYmEKCgktIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgoJCjIwMDAtMDktMjIgMDQ6MjcgIG5iYQoKCS0gdmFjbV92YXJzLmM6IHByb3RlY3QgYWdhaW5zdCBvdmVycnVuIG9mIHN0cmluZ3MKCQoyMDAwLTA5LTIxIDE2OjE3ICBuYmEKCgktIGFwcHMvOiBkaXNwbGF5IGZhaWxlZCBvYmplY3Qgd2hlbiBvbmUgaXMgaWRlbnRpZmllZCBieSBwZHUtPmVycmluZGV4CgkKMjAwMC0wOS0yMSAxNTo1OSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcGRmLjEpOiBkb2N1bWVudCB0aGUgc25tcGRmIGNvbW1hbmQuCgkKMjAwMC0wOS0yMSAxNTo1MCAgbmJhCgoJLSBzbm1wdGFibGU6IHVzZSBHRVRCVUxLIHRvIGNvbGxlY3QgZGF0YSB3aGVuIHByb3RvY29sIGFsbG93cyBpdC4gQWRkCgkJLUNCIG9wdGlvbnMgdG8gZmFsbCBiYWNrIHRvIEdFVE5FWFQuCgkKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgoJLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KCQlBZGQgRGF2ZXMgc3VnZ2VzdGVkIC1PdiBvdXRwdXQuIEFsc28gZW5oYWNlIC1UZCBvdXRwdXQgdG8KCQlkZXN0aW5ndWlzaCBPQkpFQ1QtVFlQRSBmcm9tIFRSQVAtVFlQRSwgTU9EVUxFLUlERU5USVRZIGV0Yy4KCQoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKCS0gKHNubXBkZi5jKTogdXNlIHRoZSBVQ0QtU05NUC1NSUIncyBkc2tUYWJsZSBpZiB0aGUKCSAgSE9TVC1SRVNPVVJDRVMtTUlCIGlzIGVtcHR5IG9yIGlmIC1DdSBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KCQoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCgktIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQoJCWFuZCBOT1RJRklDQVRJT04tVFlQRS4gSWdub3JlIGZpbGVzIHRoYXQgZG9lcyBub3QgaGF2ZSBERUZJTklUSU9OUwoJCWFzIHRoZWlyIHNlY29uZCB0b2tlbi4gRW5oYW5jZSAtVGQgb3V0cHV0IGFjY29yZGluZ2x5LgoJCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKCS0gc25tcGxpYjogYWRkIHNucHJpbnRmLCBzdHJ0b2wsIHN0cnRvdWwgZm9yIHN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIHRoZW0KCQoyMDAwLTA5LTIxIDE1OjEwICBoYXJkYWtlcgoKCS0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzdHJ0b3VsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAwNjoxNiAgaGFyZGFrZXIKCgktIChtaWIuYywgbWliLmgpOiBtYWtlIHNwcmludCogbm9uLXN0YXRpYyAoYnVnICMxMzIpLgoJCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgoJLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggYnVnICMzNjAgd2hlcmUgYSBjbGllbnQgbWlnaHQgcmVtb3ZlIGEgYWxhcm0gcmVnaXN0cmF0aW9uCgkgICAgZHVyaW5nIGEgY2FsbCB0byB0aGUgYWxhcm0gZnVuY3Rpb24gYW5kIGludmFsaWRhdGUgdGhlIHBvaW50ZXIKCSAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgoJCjIwMDAtMDktMjEgMDA6MjIgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLWRpc2FibGUtc2hhcmVkIGJ5IGRlZmF1bHQgaW4gY3ZzIGNoZWNrb3V0cy4KCQoyMDAwLTA5LTIwIDE3OjMxICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc3BhY2UgaW5kZW50IHRva2VucyBpZiAjIHByZXBlbmRlZC4KCQoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBudWxsIGludGVybmFsIGhlbHAgbGluZXMuCgkKMjAwMC0wOS0yMCAxNzoyOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgbW9uaXRvcik6IGRpc2ssIHByb2MsIGFuZCBsb2FkIGNoZWNrcy4KCQoyMDAwLTA5LTIwIDE3OjI4ICBoYXJkYWtlcgoKCS0gKGF1dGhvcHRzKTogZml4IHZhbGlkIGFuc3dlcnMgZm9yIGF1dGggYW5kIHByaXYgdHlwZXMuCgkKMjAwMC0wOS0yMCAxNzoyNyAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jLCBzbm1wdjMuYyk6IE5VTEwgb3V0IGhlbHAgbWVzc2FnZXMgZm9yIC5jb25mCgkgIHRva2VucyB0aGF0IGFyZSBlaXRoZXIgaW50ZXJuYWwgb3Igbm8gbG9uZ2VyIHRoZSBzdGFuZGFyZCB3YXkgb2YKCSAgZG9pbmcgdGhpbmdzLgoJCjIwMDAtMDktMjAgMTc6MjYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBleHBvcnQgU05NUENPTkZQQVRIIHRvIE1ha2VmaWxlcwoJCjIwMDAtMDktMjAgMTc6MjUgIGhhcmRha2VyCgoJLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgoJCjIwMDAtMDktMjAgMTY6NDYgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGRlYnVnZ2luZywgbWlicywgb3V0cHV0KTogbW9yZSBzbm1wLmNvbmYgc25tcGNvbmYgY29uZmlnIGZpbGVzLgoJCjIwMDAtMDktMjAgMTU6MTcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGF1dGhvcHRzKTogc25tcC5jb25mIHN1cHBvcnQgZm9yIGJhc2ljIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCgkKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6CgkgLSBkb24ndCBmb3JjZSByZWFkaW5nIG9mIC91c3IvbG9jYWwvc2hhcmUvc25tcGQuY29uZi4KCSAtIGRvbid0IHByaW50IHVua25vd24gZGlyZWN0aXZlIGNvbW1lbnQgaGVhZGVycyBpZiB0aGVyZSBhcmVuJ3QgYW55LgoJCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgoJCjIwMDAtMDktMjAgMTQ6NDQgIGhhcmRha2VyCgoJLSAodHJhcHNpbmtzKTogYWRkIHBvcnQgbnVtYmVyIG9wdGlvbiB0byB0cmFwc2luayBkaXJlY3RpdmVzLgoJCjIwMDAtMDktMjAgMTQ6MzUgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBjb25mKTogaW5zdGFsbCBzbm1wY29uZiBhbmQgaXRzIHZhcmlvdXMgc3VwcG9ydCBmaWxlcy4KCQoyMDAwLTA5LTIwIDE0OjIwICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBkbyByZXZlcnNlIHYzIGhlYWRlciBlbmNvZGluZyB3aXRoIGEgc3RhdGljIGJ1ZmZlci4KCQoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wOS0yMCAwODo1NCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgoJCjIwMDAtMDktMjAgMDI6MDUgIGRhdmVzCgoJLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBEb24ndCBpbmNsdWRlIGNvbnRleHQgc3RyaW5ncyBvbiBQRFVzIHRoYXQgc2hvdWxkbid0IGhhdmUgdGhlbQoJCShUaGFua3MgdG8gUGVkcm8gUGVyZWlyYSBmb3IgaWRlbnRpZnlpbmcgdGhpcykKCQoyMDAwLTA5LTE5IDE3OjA3ICBoYXJkYWtlcgoKCS0gKGFjbCwgc3lzdGVtLCB0cmFwc2lua3MpOiBpbml0aWFsIHNubXBjb25mIGRlc2NyaXB0aW9uIGZpbGVzLgoJCjIwMDAtMDktMTkgMTc6MDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiByZWFkIG9sZGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gYW5kIG1lcmdlIHdpdGggbmV3IHJlc3VsdHMuCgkKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogcHJpbnQgcGR1IHR5cGUgb24gZGVidWdnaW5nIGR1bXAgb3V0cHV0LgoJCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBzbm1wLmMpOiByZXZlcnNlIGVuY29kaW5nIHN1cHBvcnQgZm9yIHNwZWNpYWxpemVkIG9wYXF1ZQoJICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCgkKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCgktIChhY2xvY2FsLm00KTogZG9jdW1lbnQgbWFjcm9zIGEgYml0IG1vcmUgZm9yIHN1Ym1pc3Npb24gdG8gdGhlCgkgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCgkKMjAwMC0wOS0xOSAwODozMCAgbXNsaWZjYWsKCglGaXggYnVnICMyOTUgcmVwb3J0ZWQgYnkgSm9obiBXaGl0bmV5IGpvaG53QGFpaW5ldC5jb20KCQoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5oLCBzbm1wZC5oKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBtb3ZlIGdldFN0YXRQdHIgZGVmaW5pdGlvbiB0byBwcm9wZXIgLmggZmlsZS4KCQoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKCUZpeCBidWcgIzM0NyByZXBvcnRlZCBieSBkYXNfZGVuaXpAeWFob28uY29tOiBtYWtlIHNiaW4gaW5zdGFsbCBkaXIKCQoyMDAwLTA5LTE0IDA5OjA1ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgoJCjIwMDAtMDktMTQgMDg6NTIgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgoJCjIwMDAtMDktMTMgMTU6MDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBuZXcgdXRpbGl0eSB0byBnZW5lcmF0ZSAuY29uZiBmaWxlcyBieSBwcm9tcHRpbmcgdGhlCgkgIHVzZXIgd2l0aCBxdWVzdGlvbnMuCgkKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCgktIChwcm94eS5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246CgkgIC0gZml4IHByb3h5IHN1cHBvcnQgZm9yIG51bGwgbGVuZ3RoIHN0cmluZ3MuCgkKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJIC0gZml4IG9wZW5zc2wgY2hlY2tzLgoJIC0gcnVuIGF1dG9oZWFkZXIuCgkKMjAwMC0wOS0wNSAxMzozNSAgbXNsaWZjYWsKCglNaW5vciB0b3VjaHVwcyB0byBidWlsZCBvbiBXaW4zMiBwbGF0Zm9ybS4KCQoyMDAwLTA5LTA1IDEzOjM0ICBtc2xpZmNhawoKCVdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KCQoyMDAwLTA5LTA0IDE1OjE5ICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKCQoyMDAwLTA5LTA0IDE1OjEyICBuYmEKCgktIHNubXBuZXRzdGF0LjE6IGFsaWduIG1hbiBwYWdlIHdpdGggcHJvZ3JhbQoJCjIwMDAtMDktMDQgMTU6MTAgIG5iYQoKCS0gaXBBZGRyLmM6IHJlbW92ZSBhIGJhZCBudG9obCBmb3IgT3BlbkJTRAoJCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKCS0gbWliaW5jbC5oLCB7dGMsdWR9cHssVGFibGV9LmM6IGVuc3VyZSBqdXN0IG9uZSBpbmNsdWRlIG9mIHNvY2tldC5oCgkJdG8gbWFrZSB1bnByb3RlY3RlZCBpbmNsdWRlIGZpbGUgaW4gVWx0cml4IGhhcHB5CgkKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgoJLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawoJCjIwMDAtMDktMDEgMTU6MTQgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CgkgIC0gdXBkYXRlZCBjb2RlLgoJCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBTY290dCBMaXBjb24gbm90ZWQgdGhhdCBzbm1wdHJhcGQgZG9lc24ndCBzdXBwb3J0IC1ULgoJCjIwMDAtMDgtMzAgMTM6MjggIG5iYQoKCS0gcGFyc2UuYzogZml4IGxvb3AgaW4gc3ludGF4IGVycm9yIGluIERFRlZBTCBjbGF1c2UuIEFsc28gZml4IHJlYWRpbmcKCQlvZiAuaW5kZXggZmlsZSB3aXRoIGZpbGVuYW1lcyBjb250YWluaW5nIGJsYW5rcy4KCQoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgoJbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwoJCjIwMDAtMDgtMjQgMDE6NTUgIGRhdmVzCgoJLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBidWcgd2l0aCBkaXNwbGF5aW5nIGhlYWRlci1sZXNzIGluZGV4ZWQgdGFibGVzCgkJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCgkKMjAwMC0wOC0xOSAxMToyOSAgbXNsaWZjYWsKCglBcHBseSBwYXRjaCBmcm9tIDxDaHJpc3RvcGguTWFtbWl0enNjaEB0dS1jbGF1c3RoYWwuZGU+Cgl0byBmaXggc2lnbiBpbiBhc25fcmJ1aWxkX3Vuc2lnbmVkX2ludCAuCgkKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCglyZXN0b3JlIHByZXZpb3VzIHZlcnNpb247IG9wZW5ic2QsIHNvbGFyaXMsIGxpbnV4IGJ1aWxkIG9rLgoJCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgoJcmVtb3ZlIHVudXNlZCBwcmludGYgYXJndW1lbnQgcGFzc2VkIHRvIHNubXBfbG9nLgoJCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgoJZml4IGJ1ZyAyNTMgd2l0aCBwYXRjaCBzdXBwbGllZCBieSBKZWZmcmV5IEhvbmlnIDxqY2hAYnNkaS5jb20+CgkKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCglmaXggYnVnIDMxOCAtIHRlc3QgOSBhbmQgMTAgZXhwbGljaXRseSBjcmVhdGUgdGhlIHRlc3QgdXNlci4KCQoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKCVRoZSBiYXR0bGUgdG8gdHJpbSBuZXdsaW5lcyBjb3JyZWN0bHkgY29udGludWVzLi4ucmVkdWNlIGxlbmd0aCBieSBvbmUuCgkKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBmaXggdmFyaW91cyBlbmNyeXB0aW9uL2RlY3J5cHRpb24gcHJvYmxlbXMuCgkKMjAwMC0wOC0xNiAxNTowMyAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogZml4IHBhZGRpbmcgc2l6ZSBpbiBlbmNyeXB0aW9uLgoJCjIwMDAtMDgtMTYgMTQ6NDggIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IHNldCBwbGFpbnRleHQgbGVuZ3RoIGF0IHRoZSBlbmQgb2Ygc2NfZGVjcnlwdC4KCQoyMDAwLTA4LTE1IDA1OjA4ICBtc2xpZmNhawoKCUZpeCBidWcgMjg0IHdpdGggYSBzaG9ydCBleHBsYW5hdGlvbiBhYm91dCBzbm1wLmNvbmYuCgkKMjAwMC0wOC0xNSAwMzowMCAgbXNsaWZjYWsKCglGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CgkKMjAwMC0wOC0xNSAwMDowOSAgbmJhCgoJLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCgkKMjAwMC0wOC0xNCAyMjowNSAgbmJhCgoJLSBhY2xvY2FsLm00LCBjb25maWd1cmUuaW46IGZpeGVzIGZvciBjb25maWd1cmUgLS1zaWxlbnQKCQoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJICAtIC0tZW5hYmxlLXNpbGVudC1saWJ0b29sIHRvIG1ha2UgTmllbHMgc21pbGUuCgkKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiBpbXBsZW1lbnQgYSBuZXcgKGRlZmF1bHQpIGVuZ2luZUlEIHR5cGUgYmFzZWQKCSAgb24gYSByYW5kb20gbnVtYmVyLCBhbmQgYSB0aW1lc3RhbXAuCgkgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCgkKMjAwMC0wOC0xNCAxNjo0NyAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKToKCSAgLSBpZiAtRHJlYWRfY29uZmlnLCB0aGVuIHByaW50IGV2ZW4gbm8taGVscCB0b2tlbnMgYW5kIGEgKiBmb3IgUFJFTUlCIG9uZXMuCgkKMjAwMC0wOC0xNCAxNDo1MSAgbmJhCgoJLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKCQoyMDAwLTA4LTE0IDExOjMzICBoYXJkYWtlcgoKCS0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgoJICAtIHJlbW92ZSB1bnVzZWQgY29udGV4dCB2YXJpYWJsZXMuCgkKMjAwMC0wOC0xNCAxMToyOSAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKCSAgLSByZW1vdmUgZHVwbGljYXRlIGtleWxlbmd0aCBjaGVjay4KCQoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBvcHRpbWl6ZSByZXZlcnNlIGVuY29kaW5nIG9mIHZhcmJpbmRsaXN0cy4KCQoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKCS0gKFJFQURNRS5taWIyYyk6IFBhdGNoIGZyb20gSmFuIEFsZnJlZCBTYW5kdmVuOgoJICAtIHR5cG9zLgoJCjIwMDAtMDgtMTEgMDY6MDUgIG5iYQoKCS0gYXBwcy8qOiBzbm1wYXBwIC1WIHNob3VsZCBub3QgZ2l2ZSB0aGUgdXNhZ2UgbWVzc2FnZSB0b28uCgkKMjAwMC0wOC0xMSAwMDo0NCAgbmJhCgoJLSBzbm1wdHJhcGQuODogZml4IHR5cG8uIFRoYW5rcyB0byBHLiBBbGxlbiBNb3JyaXMgSUlJIDxnYW0zQGFjbS5vcmc+CgkKMjAwMC0wOC0xMCAyMzoyMyAgbmJhCgoJLSBwYXJzZS5jOiBwcmVkZWZpbmUgT2JqZWN0U3ludGF4LCBBcHBsaWNhdGlvblN5bnRheCwgU2ltcGxlU3ludGF4IGFuZAoJCU9iamVjdE5hbWUKCQoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CgkgIC0gbWFrZSBtaWIyYyBsb29rIGluICQoc25tcGxpYmRpcikgZm9yIC5jb25mIGZpbGVzLgoJICAtIGluc3RhbGwgbWliMmMgYW5kIC5jb25mIGZpbGVzLgoJCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jKTogZHluYW1pY2FsbHkgZGVjaWRlIHRvIHJldmVyc2UvZm9yd2FyZCBlbmNvZGUuCgkKMjAwMC0wOC0xMCAxNDozMSAgaGFyZGFrZXIKCgktIChleHRlbnNpYmxlLmMpOiBmaXggQ1IgdGVybWluYXRpb24uCgkKMjAwMC0wOC0xMCAxNDoyNSAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSByZXZlcnNlIGVuY29kaW5nIG9uIGJ5IGRlZmF1bHQuCgkKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCglmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgoJCjIwMDAtMDgtMTAgMDk6MDcgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsCgkgIHNubXB1c20uaCwgc25tcHYzLmMpOgoJICAtIGltcGxlbWVudCByZXZlcnNlIGVuY29kZWQgbWVzc2FnZXMuCgkgICAgLSBUT0RPOiBjbGVhbiB1cCwgcnVuLXRpbWUgZGV0ZXJtaW5hdGlvbiBvZiB3ZWF0aGVyIHRvIHVzZSBpdCBvciBub3QuCgkKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCglGaXggYnVnIDMzMSB3aXRoIHBhdGNoIGluIHBhcnQgcHJvdmlkZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKCW5vIC8vIGNvbW1lbnQsIGluIGRlZmVyZW5jZSB0byBub24tQU5TSS1DIGNvbXBpbGVycy4KCQoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCgktIGhyX3N3cnVuLmM6IGZpeCB0aGUgUnVuUGF0aCBmb3Igc3dhcHBlZCBvdXQgTGludXggcHJvY2VzcwoJCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKCS0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KCQoyMDAwLTA4LTA5IDA0OjQ0ICBuYmEKCgktIG1haW4uYzogZml4IHBhcnNpbmcgb2YgLXYKCQoyMDAwLTA4LTA5IDAxOjEzICBkYXZlcwoKCS0gKG1pYkpKL2lwUm91dGUuaCk6IE9taXQgcm91dGVfd3JpdGUgZm9yIG5vdwoJCjIwMDAtMDgtMDkgMDA6NTggIGRhdmVzCgoJLSAobWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQoJCShQaWxvdCBlcnJvciB3aGVuIHRyeWluZyB0byBjb21taXQgdGhlIGNoYW5nZXMgZWFybGllciAtIHNvcnJ5ISkKCQoyMDAwLTA4LTA4IDEwOjA2ICBoYXJkYWtlcgoKCS0gKGV4dGVuc2libGUuYyk6IHN0cmlwIG5ld2xpbmVzLgoJCjIwMDAtMDgtMDggMDg6NTEgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCgkgIC0KCQoyMDAwLTA4LTA4IDA2OjM2ICBtc2xpZmNhawoKCUZpeCBidWcgIzI5NSAoZnJlZSAqc2VjU3RhdGVSZWYgYmVmb3JlIGFsbG9jYXRpbmcgYW5vdGhlciBvbmUpLgoJCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjMjk4IHJlcG9ydGVkIGFuZCBwYXRjaCBzdXBwbGllZCBieSBDb25yYWQgTGluayA8Y2xpbmtAbWwuY29tPgoJCjIwMDAtMDgtMDggMDQ6NTkgIG5iYQoKCS0gc25tcF9hcGkuYzogZml4IGEgYnVzeSBsb29wIHdoZW4gYWxhcm0gcXVldWUgaXMgYWN0aXZlIHdpdGhvdXQgYW55CgkJb3V0c3RhbmRpbmcgcmVxdWVzdHMKCQoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCgktIHNubXBzZXQuMTogY2Fubm90IHNldCBjb3VudGVycwoJCjIwMDAtMDgtMDggMDQ6NDIgIG1zbGlmY2FrCgoJRml4ZWQgKEJVRyMzMzIpIHVzaW5nIHBhdGNoIHN1Ym1pdHRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJQWxzbyBjb25zb2xpZGF0ZWQgY29tbWVudHMgYWJvdXQgdGhlIGZvdXIgc2VuZCBQRFUgZnVuY3Rpb25zLgoJCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgoJRml4IGxlYWsgaW4gcmVwb3J0YWJsZSBlcnJvcnMgZm91bmQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCglmaWxlIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCglmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBzbm1wX3NldF9taWJfd2FybmluZ3MuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbW9kdWxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfdmFyaWFibGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgaW5pdF9taWJfaW50ZXJuYWxzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBpbml0X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBhZGRfbWliZGlyLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCgkKMjAwMC0wOC0wNCAxNzowOCAgaGFyZGFrZXIKCgktIChub3RpZmljYXRpb24uaCk6IG5vdGlmaWNhdGlvbiBtaWIgd3JhcHBlci4KCQoyMDAwLTA4LTA0IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKToKCSAtIGluaXRpYWxpemUgb3B0aW5kIGJlZm9yZSBjYWxsaW5nIGdldG9wdC4KCSAtIGRlYnVnZ2luZyBvdXRwdXQuCgkKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCgktIChwcm94eS5jKTogcHJvcGVybHkgc2V0IHRoZSBmaXJzdCAodW51c2VkKSBhcmd1bWVudCB0byBzbm1wX3BhcnNlX2FyZ3MoKS4KCQoyMDAwLTA4LTA0IDE2OjUzICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKCSAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKCSAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KCQoyMDAwLTA4LTA0IDA1OjI2ICBkYXZlcwoKCS0gKG1pYmdyb3VwL21pYkpKLmggbWliZ3JvdXAvbWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQoJCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgoJLSAobWliZ3JvdXAvdXRpbF9mdW5jcy5bY2hdKTogTmV3ICdjYWNoZWQgdGFibGUnIHJvdXRpbmVzCgkKMjAwMC0wOC0wMyAwODozNyAgbXNsaWZjYWsKCglGaXggYnVnICMzMjUgaWRlbnRpZmllZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSVAtRk9SV0FSRC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSU5FVC1BRERSRVNTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSENOVU0tVEMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgoJU2lsZW50IHJ1bm5pbmcgZ3JlcCByZXN1bHRzLgoJCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgoJRml4IEJVRyAjMjkxIDogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwoJCjIwMDAtMDgtMDIgMDU6MjAgIG1zbGlmY2FrCgoJRml4IChCVUcjMzIzKSA6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgoJCjIwMDAtMDgtMDIgMDU6MDYgIG1zbGlmY2FrCgoJQWRkIC1wIG9wdGlvbiBvbmNlIHRvIHNubXBkIGFyZ3MuCglGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCglGaXggY29uZGl0aW9uIHRvIHNldCBQQVRILgoJCjIwMDAtMDgtMDEgMjM6MzAgIG5iYQoKCS0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKCQoyMDAwLTA4LTAxIDIzOjE5ICBuYmEKCgktIGlwLmM6IEEgYmFkICNpZiAuLi4gdGhlIHByb3BlciBkZWZpbmUgdG8gdGVzdCBmb3IgU29sYXJpcyBpcyBzb2xhcmlzMgoJCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgdW51c2VkIHVzYWdlKCkgdHlwZWRlZi4KCQoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKCS0gKHByb3h5LmMsIHByb3h5LmgpOiAtV2FsbCB3YXJuaW5nIGZpeGVzLgoJCjIwMDAtMDgtMDEgMTY6MzkgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiBuZXdlciB2ZXJzaW9ucyBvZiBTb2xhcmlzLgoJCjIwMDAtMDgtMDEgMTY6MzcgIGhhcmRha2VyCgoJLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogcmV2ZXJ0IHRvIG5vbi1jb25maWdlZCBURVNUQ09ORi4KCQoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCk6IG1ha2UgdW4tcXVpZXQuCgkKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCgktIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCgkKMjAwMC0wOC0wMSAwNDo0NSAgbXNsaWZjYWsKCglGaXggYnVnIGZvdW5kIGJ5IFlpZ2FsIEhvY2hiZXJnIDxob2NoYmVyZ0BkbWhzb2Z0d2FyZS5jb20+CgkKMjAwMC0wOC0wMSAwMzozMCAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBidWlsZGluZyBvZiBjb21wbGV0ZSBPSUQKCQkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKCQkgbm90IGFueSBzdWJzZXF1ZW50IGRpdmlzaW9uIGJvdW5kYXJpZXMpCgkKMjAwMC0wNy0zMSAyMDowOSAgbXNsaWZjYWsKCglSZW1vdmUgZHVwbGljYXRlIGZvcGVuIGZyb20gc2hlbGxfY29tbWFuZC4KCQoyMDAwLTA3LTMxIDE4OjU4ICBtc2xpZmNhawoKCShURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KCShSVU5URVNUUykgLSBhbGxvdyBiaW5hcmllcyB0byBiZSBpbiB0aGUgIi1EIGJpbmRpciIgZGlyZWN0b3J5LgoJCjIwMDAtMDctMzEgMTU6MjUgIG1zbGlmY2FrCgoJRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgoJRG9udCBhZGQgcG9ydCBzcGVjIHRvIFNOTVBfRkxBR1MgaWYgb25lIGlzIGFscmVhZHkgc3BlY2lmaWVkLgoJCjIwMDAtMDctMzEgMTM6NDkgIG1zbGlmY2FrCgoJUmVtb3ZlIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHNraXBwZWQgdGVzdHMuCglLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIGZhaWxlZCB0ZXN0cy4KCUtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCglTZWFyY2ggY29uZmlnLmggYXQgdGhlIHJvb3Qgb2YgdGhlIGJ1aWxkIHRyZWUuCgkKMjAwMC0wNy0zMSAxMTozMiAgbXNsaWZjYWsKCglNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAsIENyYXktVDMsIFNYLTQsIFNYLTUKCQoyMDAwLTA3LTMxIDExOjMxICBtc2xpZmNhawoKCU1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAoJCjIwMDAtMDctMzAgMTc6MzggIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOgoJICAtIGltcGxlbWVudCB1bnRlc3RlZCBmaWx0ZXJpbmcgZnVuY3Rpb24gY2FsbGJhY2sgZm9yIHRhcmdldCBzZWFyY2hlcy4KCSAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoJICAtIG1pc2Mgd2FybmluZyBmaXhlcy4KCQoyMDAwLTA3LTMwIDE3OjA3ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAoJICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgoJICAtIG1vcmUgbm90aWZpY2F0aW9uIHRhYmxlIGltcGxlbWVudGF0aW9ucyBmb3IgZmlsdGVyaW5nLgoJICAgIC0gRnJhbWV3b3JrIGNvbXBsZXRlLCBmdW5jdGlvbmFsaXR5IGlzIG5vdC4KCQoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgoJICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCgkgIC0gaW1wbGVtZW50IGhlYWRlcl9jb21wbGV4X2dldCgpIGZvciBzaW1wbGUgZGF0YSByZXRyaWV2YWxzLgoJCjIwMDAtMDctMjggMDY6MTUgIG1zbGlmY2FrCgoJQ2xlYW51cCBpbmNsdWRlIGhlYWRlcnMgdG8gZml4IGJ1ZyAjMzA3LiBUaGFua3MgdG8gc2FuZHZlbkByZXNlYXJjaC5hdHQuY29tLgoJCjIwMDAtMDctMjcgMTU6MTkgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFZpbmF5IE1vaHRhOgoJICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgoJCjIwMDAtMDctMjcgMTU6MDAgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CgkgIC0gZml4IGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gYXR0YWNoZWQgSVAgYWRkcmVzcy4KCQoyMDAwLTA3LTI3IDE0OjU1ICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgoJICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KCQoyMDAwLTA3LTI3IDA4OjI1ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYyk6IHByaW50IGVycm9ycyB0byBzdGRlcnIuCgkKMjAwMC0wNy0yNyAwNjoyMCAgbmJhCgoJLSBwYXJzZS5jOiBGaXggYSBtaXNzaW5nIGluaXRpemF0aW9uIHdoZW4gb25lIE1JQiBob2xkcyBNT0RVTEUtQ09NUExJQU5DRQoJCWZvciBhbm90aGVyCgkKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgoJLSBzbm1wX2FwaS5jOiBGaXggcGR1LT5jb21tdW5pdHkgYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCBzZXNzaW9uLT5jb21tdW5pdHkKCQlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgoJCjIwMDAtMDctMjYgMjI6MjggIG1zbGlmY2FrCgoJVXBkYXRlIGZvciB3aW4zMiBidWlsZDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIHVucHVibGlzaGVkIG1ldGhvZC4KCQoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKCS0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgoJLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gdHJhbnNsYXRlT2JqIGhhY2suCgkKMjAwMC0wNy0yNiAwODo0OSAgaGFyZGFrZXIKCgktICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSByZW1vdmUgYmVnaW5uaW5nIG5ld2xpbmUgaW4gZGVzY3JpcHRpb24gY2xhdXNlcy4KCQoyMDAwLTA3LTIxIDE0OjAwICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNubXB0b3NxbCk6IG9ubHkgZGVsZXRlIGhpc3Rvcnkgcm93cyBvbmNlIGV2ZXJ5IGhvdXIgb3Igc28uCgkgIC0gdG9vIENQVSBpbnRlbnNpdmUgZm9yIGxhcmdlIHRhYmxlcy4KCQoyMDAwLTA3LTIxIDEyOjU5ICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNubXB0b3NxbCk6IHJlY29yZCBhbmQgZGlzcGxheSBzeXNVcFRpbWUgYW5kIG90aGVycy4KCQoyMDAwLTA3LTIxIDEyOjU3ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBncmFwaGluZyB3b3JrcyBhZ2Fpbi4KCQoyMDAwLTA3LTIxIDEyOjU3ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGNvbW1lbnRzLCBsZWdlbmRzLCBhbmQgbWF4L21pbiB3b3JrIGFnYWluLgoJCjIwMDAtMDctMTcgMTE6MDAgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmgpOiBjb25maWdfcmVxdWlyZSBrZXJuZWxfc3Vub3M1LgoJCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBjb3B5IGtleSBsZW5ndGggYXMgd2VsbCBhcyB0aGUga2V5IHdoZW4gdXNpbmcgdGhlIHNhbWUKCSAgcHJpdmFjeSBrZXkgYXMgdGhlIGF1dGgga2V5LgoJCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCglhZGRlZCByYW5nZXMgZmllbGQgdG8gU05NUDo6TUlCIGhhc2gKCQoyMDAwLTA3LTExIDEwOjA1ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gbWFrZSBudWxsIFBSRUZJWCB2YXJpYWJsZSBwb3NzaWJsZSBzbyBub24tZG90LWxlYWRpbmcgb2lkcyBhcmUgYWNjZXB0ZWQuCgkKMjAwMC0wNy0xMSAwOToyMiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CgkgIC0gbWFrZSB0aGUgc2Vzc2lvbiBwb2ludGVycyBpbmRpY2F0ZSB3ZWF0aGVyIG9yIG5vdCB0aGV5IGFyZQoJICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwoJICAgIG9yIHJlcG9ydGluZyBvbiB0aGVtLgoJICAtIHBhc3MgdGhlIHJlY2VpdmVkLXBhY2tldCBzZXNzaW9uIHBvaW50ZXIgaW50byBzbm1wdjNfcGFyc2UgYW5kCgkgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCgkgIC0gc2V0IGlzQXV0aG9yYXRhdGl2ZSA9IHRydWUgaW4gdGhlIGFnZW50LCBhbmQgdW5rbm93biBpbiB0aGUgc25tcHRyYXBkLgoJCjIwMDAtMDctMTEgMDg6MzIgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCgkKMjAwMC0wNy0wNyAwMTozNyAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CgkKMjAwMC0wNy0wNiAxNzoxOSAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQoJICB3aGVyZSBwb3NzaWJsZS4gIChJRSwgY2hlY2sgZm9yIHByaW50YWJsZSBjaGFyYWN0ZXJzIGJlZm9yZSBwcmludGluZyBoZXgpLgoJCjIwMDAtMDctMDYgMTc6MDUgIGhhcmRha2VyCgoJLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KCSAgYW5kIGhhdmUgdGhlIE1JQlMgcGF0aCB2YXJpYWJsZSBidWlsdCBieSBjb25maWd1cmUgc2luY2UgaXQga25vd3MKCSAgd2hlcmUgdGhlIHJvb3QgbGV2ZWwgc291cmNlIGRpcmVjdG9yeSBpcy4KCQoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgYXNuMS5oLCBzbm1wX2FwaS5jKToKCSAgLSBpbXBsZW1lbnQgSU1QTElFRCBpbmRleCBoYW5kbGluZy4KCSAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwoJICAgIGFwcHJvcHJpYXRlbHkuCgkKMjAwMC0wNy0wNiAxNzowMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5oKTogYmV0dGVyIGNvbW1lbnRzIG9uIGEgY291cGxlIG9mIGZ1bmN0aW9uIGRlZmluaXRpb25zLgoJCjIwMDAtMDctMDUgMDc6NTAgIG1zbGlmY2FrCgoJZml4IChCVUcjMjkwKSBncmFjZWZ1bGx5IGhhbmRsZSBzb21lIFBEVXMgdGhhdCBoYXZlIG5vIHZhcmlhYmxlcy4KCQoyMDAwLTA3LTA1IDA2OjQ2ICBtc2xpZmNhawoKCVtubyBsb2cgbWVzc2FnZV0KCQoyMDAwLTA3LTA0IDEwOjIxICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgoJICAtIHJlbW92ZSBsYXN0IHJlbW5hbnRzIG9mIHRoZSAiaW5pdGlhbCIgdXNlci4KCSAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKCSAgICBpbiB0aGUgbWVzc2FnZSBmbGFnLgoJICAgIC0gTm90ZTogdGhpcyBpcyBhIGJpZyBpc3N1ZSB3aXRoIHRoZSBTTk1QdjMgcHJvdG9jb2wgc3BlY3MuICBUaGUKCSAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCgkgICAgICAiYXV0aG9yaXRhdGl2ZSIsIGJ1dCBkb24ndCBkZXNjcmliZSBob3cgdG8ga25vdyBpZiB5b3UgYXJlCgkgICAgICBhdXRob3JpdGF0aXZlIG9yIG5vdC4gIEZvciBzaXR1YXRpb25zIGxpa2UgcHJveGllcyBhbmQKCSAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKCSAgICAgIGFuZCBvdGhlciB0aW1lcyB5b3UncmUgbm90LCB0aGlzIGlzIHByb2JsZW1hdGljLiAgVGhlIFNOTVB2MwoJICAgICAgQVNJcyBkbyBub3QgcGFzcyBpbiBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lIHRoaXMgYW5kIHRoZQoJICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KCSAgICAgIEFQSSwgYnV0IHRoZSBpbml0aWFsIHdvcmsgZG9uZSBieSBOQUkgYW5kIFRJU0xhYnMgYXR0ZW1wdGVkIHRvCgkgICAgICBpbXBsZW1lbnQgdGhlIFVTTSBzdWNoIHRoYXQgaXQgd291bGQgYmUgYSAicmVmZXJlbmNlIiByZWxlYXNlCgkgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKCSAgICAgIHRoZSBBU0lzIGFzIEFQSXMganVzdCB0byBzZWUgaWYgd2UgY291bGQuICBXZSBjb3VsZCBwcmV2aW91c2x5CgkgICAgICBvbmx5IGJlY2F1c2Ugd2Ugd2VyZSBhbHdheXMgZWl0aGVyIGF1dGhvcml0YXRpdmUgb3IKCSAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQoJICAgICAgbm90aWZpY2F0aW9uIG1pYiwgdGhpcyBpcyBubyBsb25nZXIgcG9zc2libGUuICBGb3IgdGhlIHJlY29yZCwgSQoJICAgICAgYW0gaGVyZWJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHJlZmVyZW5jZSByZWxlYXNlIGluIHN1Y2ggYQoJICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCgkgICAgICBhcyBub3QgdG8gY29uZnVzZSBhbnlvbmUsIHRoaXMgaXMgYW4gZW50aXJlbHkgdGhlb3JldGljYWwgaXNzdWUKCSAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgU05NUHYzIHNwZWNpZmljYXRpb24gYW5kIGlzIHBlcmZlY3RseSBsZWdhbAoJICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgoJCjIwMDAtMDctMDMgMTA6MTAgIGhhcmRha2VyCgoJLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgoJICAtIEFkZCBhIG5ldyBjYWxsYmFjayBmb3Igc2VuZGluZyB0cmFwcy4KCSAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgoJICAtIG1ha2UgdGhlIHRhcmdldCBtaWIgZ2VuZXJhdGUgbW9yZSBwZXJzaXN0ZW50IHNlc3Npb25zLgoJICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgYWx3YXlzIGFzayB0aGUgdGFyZ2V0IG1pYiBmb3IgYSBzZXNzaW9uCgkgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KCQoyMDAwLTA3LTAzIDA4OjM4ICBtc2xpZmNhawoKCWZpeCAoQlVHIzI2MikgLSAoc29tZSkgc3RhdGVtZW50cyB0aGF0IGNhbm5vdCBiZSByZWFjaGVkLgoJCjIwMDAtMDctMDMgMDc6NTUgIG1zbGlmY2FrCgoJZml4IChCVUcjMjg3KQoJCjIwMDAtMDctMDMgMDY6MTEgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjIDI4OQoJCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgoJc2ltcGxpZnkgbWVtb3J5IGFsbG9jYXRpb24gaW4gcmVhZF9jb25maWdfcmVhZF97b2N0ZXRfc3RyaW5nLCBvYmppZH0KCQoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gZm9yIGtleXdvcmRzIHdpdGhvdXQgaGVscAoJCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKCS0gSUYtTUlCLnR4dDogdXBncmFkZSB0byBSRkMgMjg2MwoJCjIwMDAtMDYtMjggMDA6NTggIG5iYQoKCS0gaW50ZXJmYWNlcy5jLCBjb25maWd1cmU6IElyaXggNi41IGhhcyBpZmlfYmF1ZHJhdGUuaWZzX3ZhbHVlCgkKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgoJLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KCQoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCgktIHNubXB2My5jOiBkbyBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIG9wdGlvbiB2YWx1ZXMuCgkKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLjE6IGRvY3VtZW50IHRoYXQgLXcgaXMgYWxzbyBmb3IgLVRkCgkKMjAwMC0wNi0yNyAwMDozMCAgbmJhCgoJLSB2YXJpb3VzIG1hbiBwYWdlIG5pdC1waWNraW5nCgkKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgoJLSBzbm1wdGFibGUuYzogZml4ZXMgYW5kIHVzYWdlIG1lc3NhZ2UgZm9yIC1DaCBhbmQgLUNICgkKMjAwMC0wNi0yNiAyMzo0MyAgbmJhCgoJLSBNYWtlZmlsZS5pbiwgKk1JQi50eHQ6IHVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9uCgkKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgoJLSBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDogdG9vbHMgdG8gZXh0cmFjdCBNSUJzIGZyb20gUkZDCgkJZG9jdW1lbnRzLgoJCjIwMDAtMDYtMjYgMjM6NDAgIG5iYQoKCS0gcGFyc2UuYywgbWliLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWRkIHBhcnNpbmcgb2YgQ0hPSUNFIGFuZCBjaGVja3MgZm9yCgkJT0JKRUNULUdST1VQIGFuZCBBR0VOVC1DQVBBQklMSVRJRVMuIFRoaXMgYWxsb3dzIHVzIHRvIHBhcnNlCgkJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KCQoyMDAwLTA2LTI2IDIzOjM4ICBuYmEKCgktIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwoJCjIwMDAtMDYtMjYgMjM6MzcgIG5iYQoKCS0gc25tcFRhcmdldEFkZHJFbnRyeS5jOiBkbyBhIGNhc3QgdG8ga2lsbCBhIHdhcm5pbmcKCQoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCgktIGFnZW50X3RyYXAuYzogRml4IGEgbGVhayB3aGVuIHJlcXVlc3QgaXMgYmxvY2tlZCBieSBWQUNNIGFuZCBubyB0cmFwCgkJaXMgc2VudC4KCQoyMDAwLTA2LTI2IDExOjU2ICBtc2xpZmNhawoKCWZpeCAoQlVHIzIzMykKCQoyMDAwLTA2LTIzIDA2OjQyICBtc2xpZmNhawoKCXJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgoJCjIwMDAtMDYtMjMgMDE6MDggIGRhdmVzCgoJLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwoJCShUaGFua3MgdG8gQnJ5YW4gQmxhY2ttYW4pCgkKMjAwMC0wNi0yMiAxNzowOSAgbXNsaWZjYWsKCglyZW1vdmUgZXh0cmEgaW5jbHVkZSBlcnJvcm1pYi5oCgkKMjAwMC0wNi0yMiAxNjo1MCAgbXNsaWZjYWsKCglGaXggYnVnICMyNzYgLSBjbG9zZSBtb3N0IGZpbGUgZGVzY3JpcHRvcnMgYmVmb3JlIGV4ZWMnaW5nIGNvbW1hbmQuCgkKMjAwMC0wNi0yMiAxNTo1OSAgbXNsaWZjYWsKCglmZ2V0czogdXNlIHNpemVvZihidWYpIGluIGxpZXUgb2YgY29tcGlsZXIgY29uc3RhbnQgU1RSTUFYLgoJCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgoJVXNlIGZld2VyIGxhcmdlIHN0YXRpYyBidWZmZXJzLiAgcGFzc19wZXJzaXN0IHVzZXMgYmlnZ2VyIGJ1ZmZlcnMgbm93LgoJCjIwMDAtMDYtMjEgMTQ6NTkgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSwgc25tcHRvc3FsKTogcmVjb3JkIGFuZCByZXBvcnQgc3lzVXBUaW1lLgoJCjIwMDAtMDYtMjEgMTQ6MzEgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogbWlub3Igc3FsIGNhY2hpbmcgc3BlZWQgb3B0aW1pemF0aW9ucy4KCQoyMDAwLTA2LTIxIDEzOjMzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IEFjay4gIERvbid0IGRlbGV0ZSBzdHVmZiBmcm9tIHRoZSBoaXN0b3J5IHRhYmxlIHRoYXQgZnJlcXVlbnRseS4KCQoyMDAwLTA2LTIxIDEyOjUxICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGJldHRlciBlcnJvciBkZXNjcmlwdGlvbiBzdXBwb3J0LgoJCjIwMDAtMDYtMjEgMTI6NDYgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSwgc25tcHRvc3FsKTogY29sbGVjdCBzeXNEZXNjciwgc3lzT2JqZWN0SWQsICYgdmVyc2lvblRhZy4KCQoyMDAwLTA2LTIxIDEyOjQ2ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGFkZCAtc2VsZWN0b3JkZXIuCgkKMjAwMC0wNi0yMSAxMjoyNSAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYyk6IFVoLCBvbmx5IGlmIG5vdCBkZWxldGVkLgoJCjIwMDAtMDYtMjEgMTI6MjMgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBjaGFuZ2UgY3JlYXRlQW5kR28vY3JlYXRlQW5kV2FpdCBzdGF0ZXMgdG8gYWN0aXZlL05JUy4KCQoyMDAwLTA2LTIwIDIwOjAxICBtc2xpZmNhawoKCURlY2xhcmUgdG9wX2J1aWxkZGlyIHRvIGF2b2lkIGFubm95aW5nIC9saWJ0b29sIG5vdCBmb3VuZCBtZXNzYWdlLgoJCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgoJRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KCQoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKCVdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgoJCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgoJRW5jYXBzdWxhdGUgbG9jYWwgdmFyaWFibGUgIngiIHRvIHRoZSBzY29wZSB3aGVyZSBuZWVkZWQuCgkKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhciAibmV3dmFyIi4KCQoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKCVVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCgkKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcnMgc3RydWN0IHRtLCB0aW1lX3QuCgkKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhciAiaW5pdGxpc3QiLgoJCjIwMDAtMDYtMjAgMTU6MzMgIG1zbGlmY2FrCgoJRGVjbGFyZSBzdHJuY2FzZWNtcCBpbiBzeXN0ZW0uaCA7IFJlbW92ZSB1bnVzZWQgdmFyICJzdGF0dXMiLgoJCjIwMDAtMDYtMjAgMTU6MzEgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJzLgoJCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgoJRGVjbGFyZSBvcHRhcmcgaW4gZ2V0b3B0LmguCgkKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCgktIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIG1pbm9yIGNoYW5nZXMuCgkKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlLCBzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgpOgoJICAtIFNOTVAtTk9USUZJQ0FUSU9OLU1JQidzIHNubXBOb3RpZnlUYWJsZSBpbXBsZW1lbnRlZDoKCSAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgoJICAgIC0gdXNlcyBoZWFkZXJfY29tcGxleCB0byBoYW5kbGUgdGhlIGRhdGEuCgkgICAgLSBtdWNoIHRvZG86CgkgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgoJICAgICAgICAtIHRoaXMgd2lsbCBiZSBhIHJlYWwgcGFpbi4KCSAgICAgIC0gZml4IHYzIHJlbGF0ZWQgdHJhcHMgc3RpbGwgKHNhbWUgdXNtIGJ1ZyBJJ3ZlIGJlZW4gbWVhbmluZyB0byBmaXgpLgoJICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KCQoyMDAwLTA2LTIwIDEzOjUzICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgoJLSBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCgktIG1pc2Mgb3RoZXIgbWlub3IgZml4ZXMuCgkKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCgktICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgoJICBiYXNlZCBvbiBlbnRyaWVzIGluIHRoZSBTTk1QLVRBUkdFVC1NSUIgdGFibGUuCgkKMjAwMC0wNi0yMCAxMzo1MCAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCgkKMjAwMC0wNi0yMCAxMzo0OCAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6IGFkZCByZW1vdmVfdHJhcF9zZXNzaW9uKCkuCgkKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZGVhbCB3aXRoIDAtbGVuZ3RoIHBlcnNpc3RlbnQgc3RyaW5ncyBiZXR0ZXIuCgkKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCglDaGVjayBtb3JlIGFsbG9jIGZhaWx1cmVzLgoJCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgoJKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCgkoY2xpZW50LmMpIEFkZCBfYWxsXyBvZiBPSUQgdmFsdWUgZm9yIGFnZW50eF9yZWdpc3RlciBhbmQgYWdlbnR4X3VucmVnaXN0ZXIuCgkKMjAwMC0wNi0xOSAxMTo0MSAgbXNsaWZjYWsKCgkgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgoJCjIwMDAtMDYtMTkgMDM6MDQgIG5iYQoKCVByb3RvdHlwZSBmaXh1cC4KCQoyMDAwLTA2LTE5IDAzOjAxICBuYmEKCglzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCgkKMjAwMC0wNi0xOSAwMjo1OCAgbmJhCgoJLSBtYWtlbm9zeXNkZXBlbmQucGwgTWFrZWZpbGUuaW46IG9iamVjdCBmaWxlcyBhcmUgbm93IG5hbWVkIC5sbyAuLi4KCQoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgoJCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IGZpeCBpbmNvcnJlY3QgT0lEcy4KCQoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgoJZmF0IGZpbmdlcnMKCQoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgoJYWRkIGRlZmF1bHRzIHRvIGRhZW1vbiBzZWFyY2ggcGF0aC4uLnJlY2FsYyB0L3NubXB0ZXN0LmNtZCBldmVyeXRpbWUgcGVyIG1ha2VmaWxlLlBMIGlzIHJ1bgoJCjIwMDAtMDYtMTQgMTY6MTUgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGZpeCB1c2VyIHByZWZlcmVuY2VzLiAgQ29sdW1ucyBhcmUgb3B0aW9uYWxseQoJICBkaXNwbGF5YWJsZSBhZ2Fpbi4KCQoyMDAwLTA2LTE0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCBoaXN0b3J5IGRlbGV0aW9uLgoJCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgoJLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgoJCjIwMDAtMDYtMTIgMTY6MzkgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOgoJICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgoJICAgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3Mgc28gYW55IHR5cGUgb2YgdHJhcCBjYW4gYmUgc2VudCB3aXRoIGl0CgkgICAgICBtb2RpZmllZCBieSBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgZG9jdW1lbnRlZCBpbiBzbm1wY21kKDEpLgoJICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQoJICAgICAgcmVjZW50IHByb3h5IHN1Ym1pc3Npb25zIChteSBuZXh0IHRhcmdldCkuCgkgICAgLSAtQ2kgaW4gdGhlIGFyZ3VtZW50IHNwZWNpZmllcyBpbmZvcm1zIHNob3VsZCBiZSB1c2VkLgoJCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgoJCjIwMDAtMDYtMTIgMTY6MTcgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzYXZlIGV4ZWMgZGF0YSB0byAvdmFyL3VjZC1zbm1wLgoJICAtIGNvdWxkIGNhdXNlIHByb2JsZW1zIGZvciBub24tcm9vdCBydW5zLiAgVW50ZXN0ZWQuCgkKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CgkgIC0gcmVtb3ZlIGVuZGluZyBjb21tYXMgaW4gZW51bSBsaXN0LgoJCjIwMDAtMDYtMTIgMTA6MzYgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc2V0dXB1c2VyLCBzbm1wdG9zcWwpOiB1c2UgIlRhYmxlInMgaW5zdGVhZCBvZiAiRW50cnkicy4KCQoyMDAwLTA2LTEyIDEwOjMzICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIGRpc3BsYXkgcHVycG9zZXMgKGFnYWluKS4KCQoyMDAwLTA2LTEyIDEwOjI5ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCgkKMjAwMC0wNi0xMiAxMDoyNyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogcHJvcGVybHkgc29ydCBkaXNwbGF5ZWQgdGFibGUgY29sdW1ucyBhZ2Fpbi4KCQoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKCS0gKHNubXBfY29uZmlnLjUuZGVmLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKCSAgLSB0aGUgVFlQRS5jb25mIHBhcnNlciBub3cgYWNjZXB0cyB0b2tlbnMgZnJvbSBhIGRpZmZlcmVudCAuY29uZgoJICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQoJICAgIC5jb25mIGZpbGUuICBTZWUgc25tcF9jb25maWcoNSkgZm9yIGEgYmV0dGVyIGRlc2NyaXB0aW9uLgoJCjIwMDAtMDYtMDcgMTM6MjIgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAgLSBtYXAgc3RydG91bCB0byBhdG9pIGlmIHRoZSBmdW5jdGlvbiBpc24ndCBmb3VuZC4KCQoyMDAwLTA2LTA2IDE0OjI2ICBoYXJkYWtlcgoKCS0gKElOU1RBTEwsIGdyZWVuLmdpZiwgbWFuYWdlci5wbSwgcmVkLmdpZiwgc2V0dXBhdXRoLCBzZXR1cGRiLAoJICBzZXR1cG5ld2hvc3QsIHNldHVwdXNlciwgc25tcHRvc3FsLCBzbm1wdG9zcWx0YWJsZSwgc3FsdG9odG1sKToKCSAgLSBtYW5hZ2VtZW50IGNsZWFudXAgYW5kIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgd3JpdHRlbi4KCSAgLSBzaG91bGQgYmUgbW9zdGx5IGNvbXBsZXRlIChpZSwgYmFyZWx5IGZ1bmN0aW9uYWwpIGZvciB0aGUgYWxwaGEgdGVzdGVycy4KCQoyMDAwLTA2LTA2IDA4OjAzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGhvc3QgbmFtZSBjaGFuZ2VzIC0+IHZhcmNoYXIoNjQpCgkKMjAwMC0wNi0wNiAwODowMiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogbWFueSBtaW5vciBmaXhlcyBhbmQgY2hhbmdlcy4KCQoyMDAwLTA2LTA2IDA4OjAyICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGFsbG93IHRhYmxlIHRpdGxlIHNldHRpbmcuCgkKMjAwMC0wNi0wMiAxMTo0MSAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogYWRkICoubWFkZS4KCQoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLCBtaWIyYywgdGttaWIpOgoJICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgoJCjIwMDAtMDYtMDEgMTY6NDcgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogdHlwb3MuCgkKMjAwMC0wNi0wMSAxNjo0NCAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOgoJICAtIGRlYnVnZ2luZyB0byBTVERFUlIuCgkgIC0gYXV0byBkZWxldGlvbiBvZiBvbGQgaGlzdG9yaWNhbCBkYXRhLgoJCjIwMDAtMDYtMDEgMTY6NDQgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGJlZ2lubmluZ3Mgb2YgYSBuaWNlciByZWFsIGludGVyZmFjZS4KCQoyMDAwLTA2LTAxIDE2OjQzICBoYXJkYWtlcgoKCS0gKGdldFZhbHVlcy5wbSk6IHNvbWUgdmFyaWFibGVzIHdlcmUgZ2xvYmFsIGFuZCBoZW5jZSBwZXJzaXN0ZW50IGFuZAoJICB3ZXJlIG1lc3NpbmcgdGhpbmdzIHVwLgoJCjIwMDAtMDYtMDEgMTQ6NDggIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBpbW1lZGlhdGVseSBhZnRlciBpbml0J2luZyB0bwoJICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgoJCjIwMDAtMDUtMzEgMTY6MjIgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KCQoyMDAwLTA1LTMxIDE1OjUyICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKCSAgLSBuZXcgLUkgc3dpdGNoIHRvIHNubXBkIHRvIGRvIGR5bmFtaWMgZGV0ZXJtaW5hdG9uIG9mIHdoaWNoIG1pYgoJICAgIG1vZHVsZXMgdG8gaW5pdGlhbGl6ZSAoYW5kIGhlbmNlIHdoaWNoIG1pYiB0cmVlIHNlY3Rpb25zIHRvIHN1cHBvcnQpLgoJCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOiBkZWZhdWx0IHN0b3JlIHJvdXRpbmVzIGZvciB2b2lkIHBvaW50ZXJzLgoJIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQoJICAgb3JpZ2luYWxseSBpbXBsZW1lbnRlZCBpdCBmb3IsIHNvIGl0cyBub3QgYmVpbmcgdXNlZCB5ZXQuCgkKMjAwMC0wNS0zMSAwNTo1OSAgZGF2ZXMKCgktIChtaWJJSS9pcC5bY2hdKTogQWxsb3cgSVAgc3VwcG9ydCB3aXRob3V0IHRoZSBBdC9pcE5ldFRvTWVkaWEgbW9kdWxlCgkKMjAwMC0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCgktIChwcm94eS5jLCBwcm94eS5oKTogc2ltcGxlIHByb3h5IHN1cHBvcnQuCgkgIC0gbWFwcyBvbmUgb2lkIGluc2lkZSB0aGUgYWdlbnQgdG8gYSBwb3NzaWJseS1kaWZmZXJlbnQgb2lkIG9uIGEgdGFyZ2V0LgoJICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgoJICAtIG5vIHNldCBzdXBwb3J0LgoJICAtIG5vIGtpbGwgLUhVUCBzdXBwb3J0LgoJICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIElBTkEtTEFOR1VBR0UtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBBR0VOVFgtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDA3OjQ3ICBtc2xpZmNhawoKCUZpeCBwcm9ibGVtIGlkZW50aWZpZWQgYnkgVi4gR3JlbmV0IDogbmV3IG1ldGhvZCBzbm1wX29pZF9taW5fY29tcGFyZQoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgbWliZmV0Y2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIE1ha2VmaWxlLm1pYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTI2IDA5OjI0ICBkYXZlcwoKCS0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgoJICAtIFVzZSBuZXcgdGltZSB1dGlsaXR5IHJvdXRpbmVzIHRvIHNpbXBsaWZ5IHByb2Nlc3NpbmcKCSAgLSBVcGRhdGUgc3lzT1JMYXN0Q2hhbmdlIHdoZW4gYWRkaW5nL3JlbW92aW5nIGVudHJpZXMKCQoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKCS0gKHV0aWxfZnVuY3MuW2NoXSk6IE5ldyB0aW1lLWRpZmYgdXRpbGl0eSByb3V0aW5lcwoJCjIwMDAtMDUtMjYgMDg6NDYgIGRhdmVzCgoJLSAoc25tcGQuYyBzbm1wX2FnZW50LmMgbWliSUkvdmFyX3JvdXRlLmMpOiBVc2UgJ21pYmluY2wuaCcgaGVhZGVyCgkKMjAwMC0wNS0yNiAwNzo0OCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQoJICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOgoJICAgLSBTdXBwb3J0IGZvciBNSUIgcmVnaW9uIHRpbWVvdXRzCgkKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCgktIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwoJCjIwMDAtMDUtMjYgMDc6NDUgIGRhdmVzCgoJLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBNaW5vciBlcnJvciBpbiBBZ2VudFggcGFja2V0IGR1bXAKCQoyMDAwLTA1LTI1IDEwOjA3ICBoYXJkYWtlcgoKCS0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKCSAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KCQoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKCUZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCglTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCgkKMjAwMC0wNS0yNSAwMzozOSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCgkKMjAwMC0wNS0yNSAwMzozMSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CgkKMjAwMC0wNS0yNSAwMTo1MyAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogUmVwbGFjZSB1c2Ugb2YgJ2N1dCcgd2l0aCBlcXVpdmFsZW50ICdzZWQnIGNhbGxzCgkKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgoJICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKCQoyMDAwLTA1LTIyIDE2OjIyICBoYXJkYWtlcgoKCS0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KCQoyMDAwLTA1LTIyIDE2OjIxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCgkgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAoJICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKCSAgc25tcF9wYXJzZV9hcmdzLmgpOgoJICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KCSAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgoJCjIwMDAtMDUtMjIgMDU6NDcgIGRhdmVzCgoJLSAoc25tcGxpYi90b29scy5bY2hdKTogUm91dGluZSBmb3IgY29tcGFyaW5nIHR3byBtYXJrZXJzLgoJCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgoJLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQoJCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSB3cml0YWJsZSB2YWNtIG1pYiBzdXBwb3J0LgoJICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KCQoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBEb24ndCBzZWdmYXVsdCBvbiBhbiB1bmtub3duIGNvbW1hbmQsIGluc3RlYWQgcHJpbnQgYSB3YXJuaW5nLi4KCQoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB2YWNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CgkgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCgkKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogbWVudGlvbiB0aGUgcG9ydCBudW1iZXIgb24gdGhlIHRyYXBzaW5rIGhlbHAgbGluZS4KCQoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKCQoyMDAwLTA1LTE3IDA5OjEzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KCSAgSmVmZiBDb3VyczoKCSAgLSBjdXN0b21pemVkIGZvcm1hdHRpbmcgb2YgdHJhcCBvdXRwdXQuCgkKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCgktIChSRUFETUUpOiBhZGQgSmVmZiBhbmQgQXJuZS4KCQoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCgkKMjAwMC0wNS0xNyAwODoxMSAgaGFyZGFrZXIKCgktIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCgkKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKCSAgLSBzaGVsbCBiYWNrc2xhc2ggZXNjYXBlIHF1b3RhdGlvbnMgbWFya3MgZm9yIGN1dHRpbmcgYW5kIHBhc3RpbmcKCSAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCgkKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CgkgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KCSAgLSAgQ2FjaGUgTUlCLUlJIHN0YXRpc3RpY3Mgb24gYWxsIGFyY2hpdGVjdHVyZXMuCgkKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCgktICh1Y2Rfc25tcC5oLCB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgoJCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQoJCjIwMDAtMDUtMTUgMDM6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwoJCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50X2luZGV4LltjaF0pOiBNb3ZlICdmZCcgcmVnaXN0cnkgaGFuZGxpbmcgYmFjayB0byBhZ2VudF9yZWdpc3RyeQoJCgktIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKCQoyMDAwLTA1LTEyIDEwOjE1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KCQoyMDAwLTA1LTEyIDA5OjAwICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKCQoyMDAwLTA1LTEyIDA4OjQ1ICBkYXZlcwoKCS0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKCQlUaGFua3MgdG8gSmF5IFlvdW5nCgkKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCgktIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBTcGxpdCBpbmRleCBoYW5kbGluZyBvdXQgZnJvbSB0aGUgTUlCIHJlZ2lzdHJ5LgoJCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogQWRkIHN1cHBvcnQgZm9yIHJlY29nbmlzaW5nIFF1YWRGYXN0RXRoZXIgaW50ZXJmYWNlCgkKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCgktIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQoJCVRoYW5rcyB0byBYYXZpZXIgRk9VUk5FVAoJCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgoJCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCgkJSGVyZSdzIGhvcGluZy4uLi4uCgkKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KCQlEaXNhcHBlYXJpbmcgc3ViYWdlbnRzIHRoZXJlZm9yIGFwcGVhciBhcyBub3JtYWwgSS9PIGZhaWx1cmVzCgkKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6CgkgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCgkgIC0gQnJpbmcgcGFja2V0IGR1bXAgaW4gbGluZSB3aXRoIHRoZSBtYWluIGxpYnJhcnkgc3R5bGUKCSAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwoJCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KCQoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCgkKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCgktIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CgkgIG1hcHBpbmdzIHZpYSAtcCBbdHJhbnNwb3J0Ol1wb3J0W0BhZGRyZXNzXS4KCQoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKCWZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CgkKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKCQoyMDAwLTA1LTEwIDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wbGliL3NubXBfYXBpLmgpOgoJICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgoJCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCgkKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKCQoyMDAwLTA1LTEwIDA1OjMzICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAoJCjIwMDAtMDUtMTAgMDU6MjkgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwoJCjIwMDAtMDUtMDkgMTQ6NDIgIG1zbGlmY2FrCgoJYWxzbyBjbGVhbiBXaW4zMiBiaW5hcnkgb2JqZWN0cywgYW5kIGNvcmUgZmlsZXMuCgkKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCgl0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgoJCjIwMDAtMDUtMDkgMTE6MzIgIG1zbGlmY2FrCgoJdW50aWwgRGF2ZSdzIHZlcnNpb24gd2lucywgbmVlZCBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIGJ1aWxkIFdpbjMyIGFnZW50LgoJCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgoJZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKCQoyMDAwLTA1LTA5IDExOjMwICBtc2xpZmNhawoKCVJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KCQoyMDAwLTA1LTA5IDA4OjUwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwoJICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgoJCjIwMDAtMDUtMDkgMDg6NDcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwoJCShhbmQgZml4IGEgcHJvYmxlbSB3aXRoIHNwZWNpZnlpbmcgdGhlIGVuZC1vZi1yYW5nZSB2YWx1ZSkKCQoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KCQkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKCQoyMDAwLTA1LTA5IDA3OjM0ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KCQkoVGhpcyBpcyBub3QgdGhlIGNsZWFuZXN0IHdheSBvZiBkb2luZyB0aGluZ3MsCgkJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgoJCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgoJLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCgkJKHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBuYW1lIHJlZ2lzdGVyZWQpCgkJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KCQoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCgkKMjAwMC0wNS0wOCAxMTowMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCBsaWJyYXJ5IGxpc3QuCgkKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCgktIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KCQoyMDAwLTA1LTA1IDA5OjU0ICBoYXJkYWtlcgoKCS0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgoJCjIwMDAtMDUtMDUgMDk6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gLS13aXRoLWxpYndyYXAgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgoJICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CgkgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKCQkoVGhlc2UgbWF5IG5vdCBiZSBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwgYnV0IHRoZXkgZ2V0IHRoaW5ncyB3b3JraW5nIGFnYWluISkKCQoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgoJCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBhbGxvdyAtLXdpdGhvdXQtb3BlbnNzbCB0byB3b3JrLgoJCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAoJCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCgkKMjAwMC0wNS0wNCAxNToyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOiBtYWtlIHB1cmR5IGdyYXBocyB3aXRoIGhpc3RvcnkgdGFibGVzLgoJCjIwMDAtMDUtMDQgMDg6MjYgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2NsaWVudC5bY2hdKTogTmV3IHJvdXRpbmUgJ3NubXBfY2xvbmVfdmFyYmluZCgpJwoJCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDAxOjI5ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KCQlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKCQkJKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBmcm9tIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgoJLSAodWNkLXNubXAvcHJvYy5jKTogSW5pdGlhbGl6ZSBuZXdseSBtYWxsb2NlZCBzdHJ1Y3R1cmUKCQkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQoJCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KCSAgICBOZXcgcm91dGluZSAnZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAoJCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgoJCjIwMDAtMDUtMDMgMDg6MTQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wMyAwNDozNyAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCgkJKGFuZCByZW1vdmUgcmVkdW5kYW50ICdnZW5lcmljJyBTRVQgaGFuZGxpbmcpCgkKMjAwMC0wNS0wMiAwOTo1NiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogbG90cyBvZiBzbWFsbCBjaGFuZ2VzLgoJCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKCS0gbWliLmM6IGZpeCBwcmludGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCgkgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgoJCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSB1c2Ugc2lnYWN0aW9uIHdoZW4gYXZhaWxhYmxlLgoJCjIwMDAtMDQtMjggMTY6MjIgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IC1tLy1NIHRoZSB3cm9uZyB3YXkuCgkKMjAwMC0wNC0yOCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOgoJIC0gZG8gaGlzdG9yeSBzYXZpbmcgYmV0dGVyIChkaWZmZXJlbnQgdGFibGUpLgoJIC0gLW0vLU0gbWliIGxvYWRpbmcgb3B0aW9ucyAod2hpY2ggZG9uJ3QgYXBwZWFyIHRvIGJlIHdvcmtpbmcgcmlnaHQgeWV0KS4KCQoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KCQoyMDAwLTA0LTI3IDE0OjU4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCgkgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCgkKMjAwMC0wNC0yNyAxMDo1NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJwbSBpcyBub3cKCSAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCgkKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCgkKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CgkgIC0gbW9yZSBsaWJ0b29sIGZpeGVzICguc28gdmVyc2lvbmluZywgcHJvcGVybHkgaW5zdGFsbC4uLikKCQoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCgktICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAoJICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgoJICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KCSAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQoJCjIwMDAtMDQtMjYgMDg6MTEgIGhhcmRha2VyCgoJLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCgkKMjAwMC0wNC0yNiAwNzoyMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwoJICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgoJICBUaGlzIHNob3VsZCBmaXggYSBwcm9ibGVtIHdoZXJlIFNOTVAgUmVzZWFyY2gncyBFbWFudGUgYWdlbnQgaXMKCSAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQoJICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCgkgIG9uIGluIGdlbmVyYWwgYW5kIGlzIHRoZSBvbmx5IHBvc3NpYmxlIHRoaW5nIHRvIHVzZSBpbiBjYXNlcyB3aGVyZQoJICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCgkKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KCQoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KCQoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKCS0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KCQoyMDAwLTA0LTI0IDExOjI3ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAoJICBiZSB1c2VkIGFueW1vcmUgKHYxLCB2MmMpLgoJCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAoJICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKCSAgLSB0aW1lc3RhbXBzIGNhbiBiZSBwcmludGVkIGFzIGEgbnVtZXJpYyBudW1iZXIgb25seSAoLU90KS4KCSAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCgkgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CgkgICAgICAodmFsdWVzKS4gIGR1bXB4XyBhbmQgZHVtcHZfIChub3RlIHRoZSBfcykgbWFrZSBpdCBlYXQgc3BhY2UKCSAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCgkgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCgkgICAgLSB0b2RvOgoJICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KCSAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKCSAgICAgICAgdmlzdWFsbHkgaW4gdGhlIGR1bXBlZCBwYWNrZXQpLgoJICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KCQoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQoJCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFWFQuNC4yLnByZTAgKQoJCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgoJLSAoc25tcHdhbGsuYyk6IGZpeCBHRVQgY2FsbCBmb3IgYW4gc25tcHdhbGsuICh3YXMgdXNpbmcgYSBHRVRORVhUIFBEVSwgYWNrKS4KCQoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCgkKMjAwMC0wNC0yMSAwODoxOCAgaGFyZGFrZXIKCgktIChtaWIuYyk6IGZpeCBmcHJpbnRfZGVzY3JpcHRpb24gdG8gY2hlY2sgZm9yIG51bGwgc3VidHJlZXMuCgkKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgoJCjIwMDAtMDQtMTkgMTE6MDIgIG1hcnoKCgljaGFuZ2VkIG1vZGVfdCB0eXBlZGVmIHRvIGFncmVlIHdpdGggd2hhdCBBY3RpdmVTdGF0ZSBwZXJsIHVzZXMgKGFueW9uZSBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoaXM/KQoJCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCglhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQoJCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KCQoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKCW1vdmUgc3RhdGljIGRlY2wgdG8gLmM7bWlub3IgY2FzdGluZyBhYm91dCB0byBzdXBwb3J0IGFDQwoJCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgoJU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wNC0xOCAxMTowNyAgbXNsaWZjYWsKCglEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgoJCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CgkgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KCQoyMDAwLTA0LTE4IDAzOjE4ICBkYXZlcwoKCS0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKCSAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCgkKMjAwMC0wNC0xOCAwMjowMSAgZGF2ZXMKCgktIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKCQoyMDAwLTA0LTE3IDE1OjM2ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgoJCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IGZpeCAtWiB0byB1c2UgYSAnLCcuCgkKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBQYXRjaCBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgoJCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgoJCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCgkKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KCQoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCgkKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCgktIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCgkKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgoJCjIwMDAtMDQtMTQgMTU6MDYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgZGVidWdnaW5nIG91dHB1dCAob3BwcykuCgkKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CgkKMjAwMC0wNC0xMyAwNTo0OSAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KCQoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKCWhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgoJCjIwMDAtMDQtMTIgMTE6MjIgIG1zbGlmY2FrCgoJZml4ICVmKCVzKQoJCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgoJLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUlmLgoJCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgoJCjIwMDAtMDQtMTIgMDk6MTYgIGhhcmRha2VyCgoJLSAoc25tcHNldC5jKTogcHV0IHNwYWNlIGJhY2sgaW4gdXNhZ2UgbGluZS4KCQoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gQWRkIGEgbmV3IG9wdGlvbiAtSWYgdG8gc3BlY2lmeSBmaXhpbmcgb2YgUERVcy4KCSAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KCSAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KCQoyMDAwLTA0LTEyIDA3OjM4ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgoJICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgoJCjIwMDAtMDQtMTIgMDY6NTAgIG1zbGlmY2FrCgoJZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwoJCjIwMDAtMDQtMTIgMDU6MzIgIG5iYQoKCS0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCgkJb2YgTUFDUk8gaW52b2NhdGlvbnMgZm9yIHN0YW5kYXJkIHN5bWJvbHMKCQoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCgktIHBhcnNlLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiB3aXRoIGZvciAtVHAKCQoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCgktIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKCQlSRkMgMjc5MAoJCjIwMDAtMDQtMTEgMTU6MzMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtYWtlIGNvbmZpZ19hZGRfbWliKCkgYWN0dWFsbHkgbG9vayBmb3IKCSAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KCQoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IG1ha2UgbWFjYWRkciBlbmdpbmVpZCBzZXR1cCBub3QgbGludXgKCSAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgoJCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgoJLSAoc25tcF9sb2dnaW5nLmgpOiByZW1vdmUgb2xkIGNhbGxiYWNrIHR5cGVkZWYgbm8gbG9uZ2VyIG5lZWRlZC4KCQoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGVuYWJsZSBlbmdpbmVJRCB0byBiZSBzZXQgZnJvbSBNQUNBZGRyLgoJCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgoJLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogTmV3IG1vZHVsZSBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCgkKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCgktIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgoJCjIwMDAtMDQtMTEgMDM6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCgkKMjAwMC0wNC0xMSAwMjozNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXBvcnQgZmFpbHVyZXMgZnJvbSBBQ1RJT04gcGhhc2Ugb2YgU0VUIGNvcnJlY3RseS4KCQoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTEwIDA1OjA4ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBtdWx0aS1zdWJhZ2VudCByZXF1ZXN0cwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCgktIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgoJICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQoJICAgIHJlY2VpdmVyIHNpZGUuICBzbm1wdjMgaW5mb3JtcyBzdGF5IGFzIGlzLiAgVW5mb3J0dW5hdGVseSwgZm9yCgkgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCgkgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQoJICAgIHNvbWV3aGF0IG9mIGEgaGFjay4KCQoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwoJCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKCSAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQoJICAgIGludGVybmFsIGRpcmVjdGl2ZXMgdXNlZCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlLgoJCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CgkgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwoJICAgIGRlZmF1bHRfc3RvcmUuaCBkZXBlbmRlbmNpZXMgZ28gYXdheSBhZ2Fpbi4KCSAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCgkKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwoJCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgoJLSAoYWdlbnQvc25tcGQuYyk6IEZpeCB1c2FnZSBtZXNzYWdlIGFsaWdubWVudC4KCQoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKCS0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KCQoyMDAwLTA0LTA1IDA4OjQxICBoYXJkYWtlcgoKCS0gKEZBUTJIVE1MKTogaXQncyBiZWVuIHNpdHRpbmcgaW4gbXkgcGVyc29uYWwgc3JjIHRyZWUgZm9yID4gMiB5ZWFycy4KCQoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKCS0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKCSAgc25tcHVzbS5jLCBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCgkgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCgkgICAgdXNtVXNlci5jIHdpdGggYSBzaWRlIGVmZmVjdCBvZiBuZWVkaW5nIGNhbGxiYWNrLmggYWJvdmUgc25tcHVzbS5oLgoJCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgoJLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCgkKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogbWlzYyBtaW5vciBhZGRpdGlvbnMgdG8gLwoJCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKCQoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKCUluaXRpYWxpemUgc3RhdFAuCgkKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KCQoyMDAwLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKCS0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKCQoyMDAwLTA0LTAzIDA3OjUzICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBTRVRzIGZhaWwgaWYgb25lIHZhcmJpbmQgZG9lcy4KCQoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IHRvIHJlcG9ydCAnbm9TdWNoT2JqZWN0JyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKCQoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERvbid0IHJlcGVhdCB0aGUgZmlyc3QgZm91ciBieXRlcyBpbiBhIFBEVSBkdW1wCgkKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfbG9nZ2luZy5jKTogSGFuZGxlIGxvZ2dpbmcgZW1wdHkgc3RyaW5ncyAoZS5nLiBhIG51bGwgaW5kZW50KQoJCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQoJCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDMtMjcgMTA6MzIgIG1zbGlmY2FrCgoJcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCgkKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCgl0byBzeW5jIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgoJLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwoJCjIwMDAtMDMtMjQgMDQ6MjIgIG1zbGlmY2FrCgoJeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgoJCjIwMDAtMDMtMjMgMjM6MjkgIG5iYQoKCS0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKCQlzbm1waW5mb3JtLgoJCjIwMDAtMDMtMjMgMDk6NTggIG1zbGlmY2FrCgoJRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KCQoyMDAwLTAzLTIzIDAzOjAyICBuYmEKCglmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKCXByaW50ZiA/CgkKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCgltb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgoJCjIwMDAtMDMtMjEgMDk6MTQgIG1zbGlmY2FrCgoJbW9yZSBzbW9vdGggc2FpbGluZyB3aXRoIFdpbjMyIC5ETEwgLiBETExFWFBPUlQsIGFueW9uZSA/CgkKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCgl3aW4zMiBidWlsZCBjaGVjazogbm8gc2lnYWN0aW9uLCBTSUdDTEQgZGVmaW5lZC4KCQoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKCS0gKGRzX2FnZW50Lmggc25tcGQuYyBtaWJncm91cC9hZ2VudHgve21hc3RlcixzdWJhZ2VudH0uYyk6CgkgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKCSAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKCQoyMDAwLTAzLTIxIDA4OjM4ICBkYXZlcwoKCS0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwoJCjIwMDAtMDMtMjEgMDQ6MDUgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogTWlzc2luZyBuZXctbGluZSBvbiBkZWJ1ZyBvdXRwdXQKCQoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKCS0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKCQoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKCUNvbW1lbnQgLUMgLS0gZG8gbm90IHVzZSB0aGlzIGZsYWcuCgkKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQoJCjIwMDAtMDMtMTYgMDA6MTAgIG5iYQoKCS0gY29uZmlndXJlLCBocl9wcmludC5jOiBkZXRlY3Qgc3lzdGVtIHByaW50ZXJzIChTeXNWL2xwc3RhdCwgKkJTRC9jZ2V0bmV4dCwKCQlMaW51eC9wcmludGNhcCkKCQoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKCVNlY29uZCBwYXJ0IDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdpdGggdW5yZWdpc3Rlcl9pbmRleC4KCQoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKCUZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgoJCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KCQoyMDAwLTAzLTE1IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGluZmluaXRlIGxvb3AgcHJvYmxlbSB3aGVuIHdhbGtpbmcgc3ViYWdlbnQuCgkKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBBdm9pZCBjYWxsaW5nIHJlYWQgcm91dGluZSBmb3IgZWFjaCBTRVQgaGFuZGxpbmcgcGFzcy4KCQlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CgkKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCgkKMjAwMC0wMy0xNSAwNToyMiAgZGF2ZXMKCgktIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgoJCjIwMDAtMDMtMTUgMDE6NTEgIGRhdmVzCgoJLSAoc25tcGxpYi9zeXN0ZW0uaCk6IERvbid0IGRlY2xhcmUgZ2V0dGltZW9mZGF5KCkgaWYgdGhlIHN5c3RlbSBwcm92aWRlcyBpdC4KCQkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKCQoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCgkKMjAwMC0wMy0xNCAwNzo1MiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXR1cm4gYSByZXNwb25zZSwgZXZlbiBpZiB0aGUgcmVxdWVzdCBmYWlsZWQuCgkKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgoJLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKCQoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgoJCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZGxtb2QgYnVpbGQgTWFrZWZpbGUgZXhhbXBsZS4gIE5lZWRzIGluY29ycGVyYXRpb24gd2l0aCBtYWluIGNvbmZpZ3VyZS4KCQoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCgkKMjAwMC0wMy0xMCAxMDo1OSAgaGFyZGFrZXIKCgktIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgoJCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgoJLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCgkgIEZyYW5rIFN0cmF1c3M6CgkgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKCSAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCgkgICAgbyBmaXhlZCByZWdpc3RyYXRpb24gKHVjZGF2aXMudWNkRXhwZXJpbWVudGFsLjE0IGluc3RlYWQgb2YgdWNkYXZpcy4xNCkKCSAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwoJICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwoJICAgIG8gbWFkZSBkbG1vZEluZGV4IG5vdC1hY2Nlc3NpYmxlIChvbmx5IGltcGxlbWVudGF0aW9uLCBub3QgZGVmaW5pdGlvbikKCSAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKCSAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCgkgICAgbyBtYWRlIHRoZSB3b21iYXQgZXhhbXBsZSB1c2FibGUgYXMgc3RhdGljIGFuZCBkeW5hbWljIG1vZHVsZQoJICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQoJCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKCSAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCgkgIC0gYXJiaXRyYXJ5IGZpbGUgZGVzY3JpcHRvci9zb2NrZXQgcmVnaXN0cmF0aW9uLgoJICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgoJCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKCSAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKCSAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgoJCjIwMDAtMDMtMTAgMTA6MTYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJlLWFycmFuZ2VkIHNvbWUgc3R1ZmYuCgkKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCgltb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgoJCjIwMDAtMDMtMDcgMTE6MjEgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oKTogbWFrZSBNQVhfU1VCSURTIGxhcmdlciBhbmQgYSBtdWx0aXBsZSBvZiA4LgoJCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgoJSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgoJCjIwMDAtMDMtMDcgMDk6MDMgIG1zbGlmY2FrCgoJYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgoJCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgoJcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgoJCjIwMDAtMDMtMDcgMDg6MzUgIG1zbGlmY2FrCgoJTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCgkKMjAwMC0wMy0wNyAwNzowOCAgbXNsaWZjYWsKCgl0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCgkKMjAwMC0wMy0wNiAyMDowMSAgbXNsaWZjYWsKCgljbGVhbmVkIHVwIFNDTyBVbml4V2FyZSBidWlsZC4KCQoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKCXN0YXJ0IHN1cHBvcnQgZm9yIFNDTyBVbml4V2FyZSA1IGFzIHN2cjUuCgkKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBkb24ndCBjaGVjayByYW5nZXMgaWYgbm90IHJlcXVlc3RlZC4KCQoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgkKMjAwMC0wMy0wNiAxMDozNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgoJCjIwMDAtMDMtMDYgMTA6MjUgIGhhcmRha2VyCgoJLSAoY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogSWRlYSBmcm9tIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbToKCSAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCgkKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKCWZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCglzeW1ib2xpYyBtaWIgbmFtZXMoZS5nLiwgZm9vLjYuNykgd2hlbiBkb2luZyB0cmFuc2xhdGVPYmouCgkKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgoJLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCgkJaXMgYXZhaWxhYmxlCgkKMjAwMC0wMy0wNCAxMTozMCAgbmJhCgoJLSBhZ2VudC8odmFyaW91cyk6IGdsb2JhbGl6ZSB0aGUga3ZtX3QgKmtkIHZhcmlhYmxlCgkKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgoJLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKCQoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCgktIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQoJCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKCS0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECgkKMjAwMC0wMy0wNCAxMToxNCAgbmJhCgoJLSBocl9kaXNrLmM6IGZpeGVzIGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjEwICBuYmEKCgktIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQoJCjIwMDAtMDMtMDQgMTE6MDggIG5iYQoKCS0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjA1ICBuYmEKCgktIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCgkKMjAwMC0wMy0wNCAxMTowNCAgbmJhCgoJLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwoJCS1PUyBmb3JtYXQKCQoyMDAwLTAzLTAyIDExOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAoJCjIwMDAtMDMtMDIgMTE6NDggIG5iYQoKCS0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CgkKMjAwMC0wMy0wMiAwODozMCAgZGF2ZXMKCgktIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCgkKMjAwMC0wMy0wMSAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggZHluYW1pYyB0YWJsZSB0ZXN0aW5nIGZvciBjcmVhdGlvbiBuZWVkZWQuCgkKMjAwMC0wMy0wMSAxMzoyMiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCB1Y2Qtc25tcC5wbSk6IE9wcHMuICBXcm9uZyBuYW1lLiAgdWNkLXNubXAucG0gLT4gbWFuYWdlci5wbS4KCQoyMDAwLTAzLTAxIDEzOjIxICBoYXJkYWtlcgoKCS0gKHVjZC1zbm1wLnBtKTogdHVybmVkIHNxbHRvaHRtbCBpbnRvIGFuIGFwYWNoZSBtb2R1bGUuIDJ4IHNwZWVkIGltcHJvdmVtZW50LgoJCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KCQoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKCUludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgoJCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKCS0gc25tcGQuaCwgc211eC5jOiBkb24ndCBpbml0aWFsaXplIHNtdXggbWFzdGVyIGluIHN1YiBhZ2VudAoJCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKCS0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCgkKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgoJLSBtaWIuYzogc3ByaW50X2J5X3R5cGUgc2hvdWxkIGhhbmRsZSBBU05fQklUX1NUUgoJCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKCS0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKCQoyMDAwLTAyLTI4IDEwOjQ3ICBtc2xpZmNhawoKCWZpeCBidWcgIzE3NiAoQUlYIDQgLSB1c2Uga25saXN0IGluIGxpZXUgb2Ygbmxpc3QpCgkKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCglhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCgkKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBuZXcgc25tcC5jb25mIGtleXdvcmQKCSAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCgkKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCglkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIgKCd1JyBhbmQgJ2MnKSBpbiBzbm1wc2V0IChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgoJYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgoJKCd1JyBhbmQgJ2MnKSBpbiBzbm1wdHJhcCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKCQoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCgktIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGZpeCBzZXR0aW5nIG9mIG9jdGV0IHN0cmluZ3MuCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBzeXN0ZW0uYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgaW5kaXJlY3Rpb25zIGluIHN0cmNhc2VjbXAKCQoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCgktIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCgkKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgoJLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAoJCjIwMDAtMDItMjIgMDk6NTcgIG1zbGlmY2FrCgoJcHJ1bmUgdHdvIG1vcmUgc3ltYm9scyBub3QgdXNlZCBieSBhdXRvX25saXN0IGZvciBTb2xhcmlzLWJ1aWx0IE1JQiBtb2R1bGVzLgoJCjIwMDAtMDItMjEgMTY6MTcgIG1zbGlmY2FrCgoJQXBwbHkgUi4gU3RvcnkncyBwYXRjaCBmb3IgbWtkaXJoaWVyIGFuZCBzdHJuY2FzZWNtcCBvbiB3aW4zMgoJCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxNzEgKHRoYW5rcyB0byBMYXJyeSBQYXJtZWxlZSkuCgkKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCglyZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKCQoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKCUFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKCQoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKCXJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgoJCjIwMDAtMDItMTcgMDU6MTcgIG1zbGlmY2FrCgoJaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCgkKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCgktIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKCSAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAoJICAgIChUaGFua3MgdG8gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQpCgkKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCglpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCgkKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCglyZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCgkKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCglwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CgkKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHZhcnMKCQoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKCXRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KCQoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKCWluY2x1ZGUgdGltZS5oIG9uY2UKCQoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKCXJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAoJCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKCS0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwoJCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KCQoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCgktIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCgkKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgoJLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCgkJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgoJCjIwMDAtMDItMTUgMjM6MjQgIG5iYQoKCS0gZnJlZWJzZDMuaDogc29tZSBrZXJuZWwgc3ltYm9scyBub3QgdG8gYmUgdXNlZCBmb3IgRnJlZUJTRCAzCgkKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgoJLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCgkKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgoJLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKCQoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCgktIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgoJCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKCS0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwoJCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAoJCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKCS0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKCQoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KCQoyMDAwLTAyLTExIDE1OjQ4ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIvKik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgoJLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgoJLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCgkKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCgktIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwoJCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCgkKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgkKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCgktIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCQoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoJCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCQoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKCS0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CgkgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgkKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgoJICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgoJICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCQoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCQoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgoJZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCgkKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCgktIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCgkKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgoJCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKCS0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCQoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKCWZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwoJCjIwMDAtMDItMTAgMDg6MDAgIG1zbGlmY2FrCgoJdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoJCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgkKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCgktIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCQoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKCS0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CgkgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoJCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgkKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCglpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoJCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgoJLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CgkgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KCQoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKCS0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAoJCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgoJLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKCSAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoJCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgoJRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCQoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKCS0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKCQoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKCS0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKCSAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CgkgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgoJCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgoJCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCQoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKCS0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CgkgIC0gU29sYXJpcyBwYXRjaGVzLgoJCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOgoJICAtIGZpeCByc25tcC5tYWRlLgoJICAtIHVzZSAkKE1BS0UpLgoJCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCgkKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKCW9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgkKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCglVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwoJdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoJCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgoJS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCgkKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoJCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgkKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgoJCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgoJCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCglmaXggdmVyc2lvbiAgbnVtYmVyCgkKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKCXdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwoJCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCglicmFpbi1vCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMSAtPiBWNC4xLjEKCm1hcnogIDUgRmViIDAwIDA2OjU2OjQzCiAgICBmaXggdmVyc2lvbiAgbnVtYmVyCgpoYXJkYWtlciAgNSBGZWIgMDAgMDg6Mzc6MjcKICAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCmhhcmRha2VyICA1IEZlYiAwMCAxNzozOTo1NAogICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCm5iYSAgNiBGZWIgMDAgMDY6MTE6NTkKICAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgpoYXJkYWtlciAgNyBGZWIgMDAgMDc6MjA6MjQKICAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCgptc2xpZmNhayAgNyBGZWIgMDAgMTA6NDM6MjkKICAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoKbXNsaWZjYWsgIDcgRmViIDAwIDExOjE4OjI2CiAgICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoKbWFyeiAgNyBGZWIgMDAgMTE6NDk6MDEKICAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgpoYXJkYWtlciAgOSBGZWIgMDAgMDg6NDE6MTEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjM3OjAwCiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgIC0gdXNlICQoTUFLRSkuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDE6MTQKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gU29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjQ0CiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MzowNQogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTE6Mzg6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjoxNwogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjo1OAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzozMTowMQogICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzozMToyNAogICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoKbXNsaWZjYWsgIDkgRmViIDAwIDEzOjUxOjEyCiAgICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjUzOjM3CiAgICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KCmRhdmVzIDEwIEZlYiAwMCAwNDo0MToxMAogICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCgpkYXZlcyAxMCBGZWIgMDAgMDc6MTQ6NTEKICAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAoKaGFyZGFrZXIgMTAgRmViIDAwIDA3OjU0OjQ2CiAgICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODowMDoyNgogICAgdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoKbXNsaWZjYWsgMTAgRmViIDAwIDA4OjEzOjE0CiAgICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCm5iYSAxMCBGZWIgMDAgMDg6NDA6MDQKICAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCmhhcmRha2VyIDEwIEZlYiAwMCAxMDoyODoyMQogICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCmhhcmRha2VyIDEwIEZlYiAwMCAxMDozMjowOAogICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoKbXNsaWZjYWsgMTAgRmViIDAwIDEwOjMzOjQ3CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAxMCBGZWIgMDAgMTE6MTQ6NTgKICAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTEgRmViIDAwIDA2OjU4OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyMjoxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjI5OjM3CiAgICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjozMDowMgogICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0NDoyMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0OTowMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NTM6MTUKICAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEzOjI5OjI5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMC4xIC0+IFY0LjEKCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjEzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCgpoYXJkYWtlciAyNCBBdWcgOTkgMTc6MTQ6NTAKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjM5OjU0CiAgICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCgptc2xpZmNhayAyNCBBdWcgOTkgMTc6NDM6MDQKICAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzoxODozMQogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAoKbXNsaWZjYWsgMjYgQXVnIDk5IDEzOjQwOjEzCiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKCm1zbGlmY2FrIDI3IEF1ZyA5OSAwNzozNToxMAogICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgoKbXNsaWZjYWsgMjcgQXVnIDk5IDA4OjAzOjQ2CiAgICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgoKaGFyZGFrZXIgMjcgQXVnIDk5IDA5OjE3OjA4CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6MTk6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6Mjk6NDgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjMzOjQxCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjM4OjE4CiAgICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KCmhhcmRha2VyIDMwIEF1ZyA5OSAxMDozMDo1NgogICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCgpuYmEgMzAgQXVnIDk5IDEzOjAyOjE4CiAgICAtIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBkb2N1bWVudCBzbXV4cGVlciBkaXJlY3RpdmUKCm5iYSAzMCBBdWcgOTkgMTM6MDM6NDAKICAgIC0gYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzogcHJvcGVybHkgaGFuZGxlIE1JQjpvaWQgY29uc3RydWN0CgpuYmEgMzAgQXVnIDk5IDEzOjA1OjAyCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwYXJzZXIKCm5iYSAzMSBBdWcgOTkgMDA6MDg6NDUKICAgIC0gYWdlbnQvc25tcGQuYzogZG9uJ3QgdHJ5IHRvIHBhcnNlIGEgcGFja2V0IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgaW4KICAgIAlyZWN2ZnJvbQoKbXNsaWZjYWsgMzEgQXVnIDk5IDA4OjE3OjI0CiAgICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgoKbXNsaWZjYWsgMzEgQXVnIDk5IDA5OjI2OjE0CiAgICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KCmRhdmVzICAyIFNlcCA5OSAwNjozODoxNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6NTMKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKaGFyZGFrZXIgIDIgU2VwIDk5IDA3OjA3OjA0CiAgICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgIGRvZXNuJ3QgZmluZCBpdC4KCmhhcmRha2VyICAyIFNlcCA5OSAwODo1Mjo0OAogICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNToxNQogICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNTozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoyNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MzA6MzYKICAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE0OjI4OjQ2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE1OjAxOjM5CiAgICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KCm5iYSAgNiBTZXAgOTkgMjM6NTM6MDcKICAgIC0gKG1hbi9zbm1wX2FwaS4zIHNubXBsaWIvc25tcF9hcGkuYyBhZ2VudC9zbm1wZC5jIGFwcHMvc25tcHRyYXAuYyk6CiAgICAJZml4IG1lbW9yeSBsZWFrIHdoZW4gYWdlbnQgc2VuZHMgdHJhcHMgYnkgaW1wbGVtZW50aW5nIHRoZSBtaXNzaW5nCiAgICAJZnJlZSBvZiBUUkFQIHBkdSBpbiBzbm1wX3NlbmQuCgpuYmEgIDYgU2VwIDk5IDIzOjU1OjM4CiAgICAtIGlmLmM6IGNvcnJlY3QgY2FsbHMgb2Ygc25tcF9maXhfcGR1IHRvIHVzZSBHRVRORVhUCgptc2xpZmNhayAgNyBTZXAgOTkgMTQ6NDc6MTgKICAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMjoxNAogICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzowMgogICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIzOjUxCiAgICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjMyOjAwCiAgICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjo1OQogICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6NTc6MTMKICAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTI6NTcKICAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KCm1zbGlmY2FrICA3IFNlcCA5OSAyMDoxOTo1MgogICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgoKbXNsaWZjYWsgIDggU2VwIDk5IDA1OjE2OjM0CiAgICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKCm5iYSAgOCBTZXAgOTkgMDc6NDU6NTQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCgpuYmEgIDggU2VwIDk5IDA3OjQ2OjUxCiAgICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQoKbmJhICA4IFNlcCA5OSAwNzo0ODowMwogICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCgpuYmEgIDggU2VwIDk5IDA3OjUwOjM3CiAgICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgpuYmEgIDggU2VwIDk5IDA3OjUxOjI2CiAgICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KCm5iYSAgOCBTZXAgOTkgMDc6NTI6MjMKICAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowMDo0MAogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowNDo1NQogICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjAyOjM3CiAgICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKCm1zbGlmY2FrICA4IFNlcCA5OSAxNzo0OToxMwogICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NTI6NDcKICAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozMDoyOQogICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozNDozNwogICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCgpkYXZlcyAgOSBTZXAgOTkgMDE6MzI6MTUKICAgIC0gKG1pYnMvU05NUHYyLUNPTkYudHh0KTogT21pdCB1bm5lY2Vzc2FyeSBpbXBvcnQgY2xhdXNlCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MjE6NTAKICAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KCm1zbGlmY2FrICA5IFNlcCA5OSAwMjozMToyNgogICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgoKbXNsaWZjYWsgIDkgU2VwIDk5IDEzOjU5OjI2CiAgICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgoKbmJhIDEyIFNlcCA5OSAyMTo1MDoyMwogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTIgU2VwIDk5IDIxOjU3OjE4CiAgICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgoKbmJhIDEyIFNlcCA5OSAyMTo1ODoxNwogICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgoKbmJhIDEyIFNlcCA5OSAyMTo1OTozNAogICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KCm5iYSAxMiBTZXAgOTkgMjI6MDA6MzMKICAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCgpuYmEgMTMgU2VwIDk5IDA0OjM1OjE4CiAgICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKCm5iYSAxMyBTZXAgOTkgMTM6MzI6MDcKICAgIC0gc25tcGQuYzogZml4IGEgYnVmZmVyIG92ZXJmbG93CgpoYXJkYWtlciAxMyBTZXAgOTkgMTU6MDE6NTQKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KCm1zbGlmY2FrIDEzIFNlcCA5OSAyMDoyMDo1NAogICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwoKbXNsaWZjYWsgMTQgU2VwIDk5IDA5OjU0OjA1CiAgICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCgptYXJ6IDE0IFNlcCA5OSAxMzowMDoxMgogICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwoKbXNsaWZjYWsgMTQgU2VwIDk5IDEzOjIyOjM5CiAgICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAoKbXNsaWZjYWsgMTUgU2VwIDk5IDA2OjA4OjMyCiAgICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKCmhhcmRha2VyIDE1IFNlcCA5OSAwOTo0NTozNQogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMTUgU2VwIDk5IDExOjMwOjU4CiAgICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0Cgptc2xpZmNhayAxNiBTZXAgOTkgMTQ6MTY6MzgKICAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgoKaGFyZGFrZXIgMTcgU2VwIDk5IDA3OjE3OjIxCiAgICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gZml4IGNvbW1lbnRzLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjE5OjQyCiAgICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjI0OjQ4CiAgICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjQyOjE3CiAgICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCgpoYXJkYWtlciAxNyBTZXAgOTkgMTU6Mzc6NDEKICAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgoKZGF2ZXMgMjEgU2VwIDk5IDA5OjIxOjU5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKCmRhdmVzIDIxIFNlcCA5OSAwOToyNToyNQogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKCmRhdmVzIDIxIFNlcCA5OSAwOTozMjoyNwogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCgptc2xpZmNhayAyMSBTZXAgOTkgMTA6NDA6NDMKICAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKCmRhdmVzIDIyIFNlcCA5OSAwOToyNzozNwogICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMzOjUxCiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgoKZGF2ZXMgMjIgU2VwIDk5IDA5OjM1OjA5CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU0OjAyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU4OjEyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwoKZGF2ZXMgMjIgU2VwIDk5IDEwOjAwOjU2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMTo0NQogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKCm1zbGlmY2FrIDIyIFNlcCA5OSAxMjo1MTowMAogICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KCmhhcmRha2VyIDI3IFNlcCA5OSAxNjoyMjoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KCmhhcmRha2VyIDI4IFNlcCA5OSAxNjo1MjowNAogICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCgpkYXZlcyAyOSBTZXAgOTkgMTE6MTQ6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKCmRhdmVzIDI5IFNlcCA5OSAxMToxNzowMQogICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKCmRhdmVzIDI5IFNlcCA5OSAxMToyMzo0MAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKCmRhdmVzIDI5IFNlcCA5OSAxMTozNjo0MwogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwoKZGF2ZXMgMjkgU2VwIDk5IDExOjM4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKCmRhdmVzIDI5IFNlcCA5OSAxMTo0MzowMAogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ2OjAyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDg6NTUKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQoKZGF2ZXMgMjkgU2VwIDk5IDEyOjE5OjU2CiAgICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCgptc2xpZmNhayAyOSBTZXAgOTkgMTQ6MzE6NDgKICAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM1OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM2OjA3CiAgICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM4OjM0CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODo1OQogICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6MjEKICAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozOTo0MgogICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MDgKICAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjo0MDozMAogICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6MjgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNzowMTo1MAogICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCgptc2xpZmNhayAyOSBTZXAgOTkgMjM6NDI6NDkKICAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCgpkYXZlcyAzMCBTZXAgOTkgMDE6MDk6MjUKICAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQoKZGF2ZXMgIDEgT2N0IDk5IDA5OjQ4OjIwCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwoKZGF2ZXMgIDIgT2N0IDk5IDE0OjI4OjIwCiAgICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgoKZGF2ZXMgIDQgT2N0IDk5IDAzOjU4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAgNCBPY3QgOTkgMDk6NTM6NDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKCmRhdmVzICA0IE9jdCA5OSAwOTo1ODoyNgogICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTU6MzgKICAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTc6NTMKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKCmRhdmVzICA0IE9jdCA5OSAxMDoyMjoyNQogICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCgpuYmEgIDQgT2N0IDk5IDExOjQ4OjUxCiAgICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTA6NTAKICAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTI6MjUKICAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQoKbmJhICA0IE9jdCA5OSAxMzozODoxOQogICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwoKaGFyZGFrZXIgIDQgT2N0IDk5IDEzOjUxOjUxCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KCm5iYSAgNCBPY3QgOTkgMTM6NTI6MjAKICAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAoKaGFyZGFrZXIgIDQgT2N0IDk5IDE2OjMyOjE5CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgoKZGF2ZXMgIDUgT2N0IDk5IDA3OjIzOjQ1CiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKCm5iYSAgNSBPY3QgOTkgMjE6NDk6MjIKICAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCgpuYmEgIDUgT2N0IDk5IDIyOjE4OjQ2CiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAoKbmJhICA1IE9jdCA5OSAyMjoyMjo1NAogICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKCmhhcmRha2VyICA2IE9jdCA5OSAwODo1Nzo0MgogICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KCmhhcmRha2VyICA2IE9jdCA5OSAxNjozMTo1MwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgoKZGF2ZXMgIDcgT2N0IDk5IDA3OjI2OjIwCiAgICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CgpkYXZlcyAgNyBPY3QgOTkgMDg6NDI6MTUKICAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCgpkYXZlcyAgNyBPY3QgOTkgMDk6MDE6MjUKICAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0Cgptc2xpZmNhayAxMiBPY3QgOTkgMDU6NTg6MjgKICAgIG1pYi5jIDogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICAgbGNkX3RpbWUuYyA6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCgptc2xpZmNhayAxMiBPY3QgOTkgMDY6MDc6NDQKICAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KCm1zbGlmY2FrIDEzIE9jdCA5OSAwMzo1NDowMgogICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KCm5iYSAxMyBPY3QgOTkgMDc6MDk6MzYKICAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKCm1zbGlmY2FrIDE1IE9jdCA5OSAwNzowOToxNAogICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KCmhhcmRha2VyIDIwIE9jdCA5OSAxNzoyNjo1OQogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgoKaGFyZGFrZXIgMjAgT2N0IDk5IDE4OjA4OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CgpoYXJkYWtlciAyMSBPY3QgOTkgMTA6MDc6MDAKICAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjA6MTUKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjY6MjkKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDozNzo0OQogICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzk6MDkKICAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDo0MTozOAogICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDI6MjgKICAgIHVzZSBzbm1wX29wZW5fZXguCgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MDk6NTEKICAgIEZpeCBCVUcjNzgKCm1zbGlmY2FrIDIxIE9jdCA5OSAxMjozMToyOAogICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KCm5iYSAyMSBPY3QgOTkgMTI6NTI6MjYKICAgIC0gbWVtb3J5X3NvbGFyaXMuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgpuYmEgMjEgT2N0IDk5IDEyOjU0OjQxCiAgICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOToxNgogICAgSW4gZml4aW5nIGJ1ZyAjODMgb24gNC4wIGJyYW5jaCwgZGlzY292ZXJlZCB0aGF0IDMuNiBicmFuY2gKICAgIGRpZCBub3QgaGF2ZSAib2N0ZXQiIHRva2VuIHN1cHBvcnQuICBBZGRlZC4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOTo1MgogICAgRml4IEJVRyAjODMuCgptc2xpZmNhayAyMiBPY3QgOTkgMDc6Mzk6MDEKICAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQoKaGFyZGFrZXIgMjIgT2N0IDk5IDA5OjU5OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAxMDoxMjoyNgogICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgoKaGFyZGFrZXIgMjIgT2N0IDk5IDE1OjI4OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyOTozOAogICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNDoyMQogICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjU6MzUKICAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNzoyOAogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgoKbXNsaWZjYWsgMjUgT2N0IDk5IDA4OjA2OjMyCiAgICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDI1IE9jdCA5OSAxMzozOToyNwogICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CgpuYmEgMjUgT2N0IDk5IDEzOjQxOjAxCiAgICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCgpuYmEgMjUgT2N0IDk5IDEzOjUxOjIyCiAgICAtIGhyX3N5c3RlbS5jOiBwbGF5IGl0IHNhZmUgd2hlbiBubyB1dG1wIGZpbGUgZXhpc3RzCgpuYmEgMjUgT2N0IDk5IDEzOjUzOjI2CiAgICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzogc3VwcG9ydCBmb3IgdHJhcGhhbmRsZSBERUZBVUxUCgpuYmEgMjUgT2N0IDk5IDEzOjU2OjI2CiAgICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKCm5iYSAyNSBPY3QgOTkgMTM6NTg6MDMKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBsZXQgJzonIGluIE9JRCBkbyAidGhlIHJpZ2h0IHRoaW5nIgoKbmJhIDI1IE9jdCA5OSAxMzo1OTowNQogICAgLSBwYXNzLmM6IGRvIGFuIGh0b25sIHdoZW4gcGFzc2luZyBpcCBhZGRyZXNzCgpuYmEgMjUgT2N0IDk5IDE0OjA3OjExCiAgICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCgpuYmEgMjUgT2N0IDk5IDE0OjA4OjI1CiAgICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCgpuYmEgMjUgT2N0IDk5IDE0OjEzOjU3CiAgICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQoKaGFyZGFrZXIgMjUgT2N0IDk5IDE0OjM1OjUxCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgoKaGFyZGFrZXIgMjUgT2N0IDk5IDE2OjA1OjAzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KCm1zbGlmY2FrIDI2IE9jdCA5OSAxMDozNDo0MAogICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjMzOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNDoxMAogICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6NTUKICAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM1OjI3CiAgICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjoyMQogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjo1NQogICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNzo0OQogICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzg6MDYKICAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjAxCiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjU5CiAgICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MzA6MjUKICAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA0OjU1OjUyCiAgICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjM6MDUKICAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNToyNTowMgogICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNjo0OTowMwogICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDI4IE9jdCA5OSAxMzo0Nzo1NwogICAgLSAoc25tcHRvc3FsKTogZGVidWdnaW5nIGFuZCBlcnJvciBjaGVja2luZy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwODo1ODoxNwogICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgIC0gbWlzYyBmaXhlcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODoxMQogICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODo0MwogICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjUyOjE4CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAgLSBwcmludE51bWVyaWNFbnVtcwoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjA2OjAzCiAgICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxMzo0NAogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjAxCiAgICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjQzCiAgICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CgpoYXJkYWtlciAyOSBPY3QgOTkgMTY6NTg6MDcKICAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgoKbWFyeiAyOSBPY3QgOTkgMTk6NTQ6MTAKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAoKaGFyZGFrZXIgIDEgTm92IDk5IDEzOjE4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KCmhhcmRha2VyICAyIE5vdiA5OSAwOTo1NzozMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTozNzowNQogICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTo0NjowOAogICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6MTE6MDMKICAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KCm1zbGlmY2FrICAzIE5vdiA5OSAwNjo0OTozMAogICAgTmVhciBsaW5lIDY2MyA6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCgptc2xpZmNhayAgMyBOb3YgOTkgMTM6MTg6NTkKICAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjIwOjE2CiAgICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wIDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwMjo0MjoxNQogICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjE0OjI4CiAgICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjMzOjMyCiAgICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjA4OjMxCiAgICBFdmVyeSAjZGVmaW5lIGlzIGdpdmVuIGEgdmFsdWU7IHNldCB0byAxIGlmIG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQuCgptc2xpZmNhayAgNCBOb3YgOTkgMDU6MTM6MDUKICAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNjoxMTo0OAogICAgVXNlIHN5c2N0bChDVExfVk0uLikgdG8gZ2V0IHZpcnR1YWwgbWVtb3J5IHN0YXRzLgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjAzOjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjA0OjQyCiAgICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAxMDoxOTozNQogICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDoyODo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCgptc2xpZmNhayAgNCBOb3YgOTkgMTM6NDM6NDAKICAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgoKbXNsaWZjYWsgIDUgTm92IDk5IDA2OjIyOjUyCiAgICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgoKbmJhICA5IE5vdiA5OSAwMTo1MDowOQogICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCgpuYmEgIDkgTm92IDk5IDEyOjU5OjUyCiAgICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6MTcKICAgIC0gKHNubXBkLmMpOiBmaXggLUguCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6NDEKICAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjA5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOTo0MAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KCm5iYSAgOSBOb3YgOTkgMTU6MTY6MDMKICAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQoKbmJhICA5IE5vdiA5OSAyMjoyMDo1MgogICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQoKbmJhICA5IE5vdiA5OSAyMzozMDowMwogICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCgpuYmEgMTAgTm92IDk5IDA4OjMwOjEzCiAgICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCgpuYmEgMTAgTm92IDk5IDA4OjMyOjAwCiAgICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCgpkYXZlcyAxMCBOb3YgOTkgMDg6NTc6MDAKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKCmRhdmVzIDEwIE5vdiA5OSAwODo1ODozOAogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgoKZGF2ZXMgMTAgTm92IDk5IDA4OjU5OjQ1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKCm5iYSAxMCBOb3YgOTkgMTI6MjA6NDcKICAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawoKbmJhIDEwIE5vdiA5OSAxNToyOToxOAogICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKCm5iYSAxMCBOb3YgOTkgMjI6MTI6MDgKICAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwoKZGF2ZXMgMTEgTm92IDk5IDAzOjM3OjU5CiAgICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCgpuYmEgMTEgTm92IDk5IDIyOjE0OjI3CiAgICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKCm5iYSAxMSBOb3YgOTkgMjI6NTA6MDAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgoKZGF2ZXMgMTIgTm92IDk5IDA4OjQ2OjMzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwoKbWFyeiAxMiBOb3YgOTkgMTM6MDE6MDgKICAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKCm5iYSAxNCBOb3YgOTkgMDE6NDg6NTEKICAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCgpuYmEgMTQgTm92IDk5IDAxOjUxOjU3CiAgICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgICAJdGhlIG5vcm1hbCBvcHRpb25zLgoKbmJhIDE0IE5vdiA5OSAwMTo1MzoxNgogICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CgpuYmEgMTQgTm92IDk5IDAxOjU0OjE3CiAgICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCgpuYmEgMTQgTm92IDk5IDAxOjU5OjIwCiAgICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCgpuYmEgMTQgTm92IDk5IDAyOjAwOjAwCiAgICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwoKbmJhIDE0IE5vdiA5OSAwMjowMTozNwogICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQoKbmJhIDE0IE5vdiA5OSAwMjowNDo0NgogICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwoKbmJhIDE0IE5vdiA5OSAwMjo0MjozOAogICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCgpuYmEgMTQgTm92IDk5IDA2OjEyOjAzCiAgICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAoKbmJhIDE0IE5vdiA5OSAwNjoxNTowMQogICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MzI6MjUKICAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKCmRhdmVzIDE1IE5vdiA5OSAwNzo1NjowNgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKCm1zbGlmY2FrIDE1IE5vdiA5OSAwODoyOTowNgogICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgoKbmJhIDE1IE5vdiA5OSAxNDowMDoyMAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKCm5iYSAxNSBOb3YgOTkgMTQ6MDM6MzYKICAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQoKbmJhIDE1IE5vdiA5OSAxNDowNTo1NwogICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgoKbmJhIDE1IE5vdiA5OSAxNDowOToyOQogICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTg6NDYKICAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6MjIKICAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxOTo0NwogICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMDoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MDcKICAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMToyOAogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMTo1NwogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjI6MjQKICAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MzY6MjYKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM4OjI1CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6NDE6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgoKbXNsaWZjYWsgMTUgTm92IDk5IDE2OjQzOjI1CiAgICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTc6NDE6MTAKICAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCgptc2xpZmNhayAxNSBOb3YgOTkgMjE6NTc6MzYKICAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKCm1zbGlmY2FrIDE2IE5vdiA5OSAwMzozNjowOQogICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCgpuYmEgMTYgTm92IDk5IDA2OjIxOjI1CiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAwODo0ODozMQogICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgoKZGF2ZXMgMTYgTm92IDk5IDA5OjEzOjU5CiAgICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjQ6NTkKICAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjY6MDIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo0MTo1MAogICAgTVNWQyB0b3VjaHVwczoKICAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgoKbXNsaWZjYWsgMTYgTm92IDk5IDE0OjU2OjU5CiAgICBCdWlsZCB3aXRoIGdldG9wdC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNTo1OToxNQogICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM1OjAzCiAgICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM2OjU4CiAgICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgoKaGFyZGFrZXIgMTcgTm92IDk5IDExOjU1OjQxCiAgICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKCmhhcmRha2VyIDE3IE5vdiA5OSAxMjoyMToyNgogICAgLSAoc25tcHRvc3FsKToKICAgICAgLSBtb3ZlIHRvIE5ldDo6U01UUC4KICAgICAgLSBNYWtlIG5ldyBhdXRoZ3JvdXAgYW5kIGF1dGhob3N0IHRhYmxlcyB0byBjb250YWluIFNOTVA6OlNlc3Npb24gZGVmYXVsdHMuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDU6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA4OjE3CiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDk6MTQKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgoKbmJhIDE3IE5vdiA5OSAyMTo1MToxOQogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKCm1zbGlmY2FrIDE4IE5vdiA5OSAxNzo1ODo0NwogICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoxNDo1OAogICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoyMDo0NQogICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCgpkYXZlcyAxOSBOb3YgOTkgMTE6MDY6MjYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTkgTm92IDk5IDEzOjQ3OjAxCiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE0OjIwOjI1CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE1OjI0OjE1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCgpuYmEgMjIgTm92IDk5IDA1OjI3OjE1CiAgICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAoKbmJhIDIyIE5vdiA5OSAwNToyODowOQogICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6NDUKICAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKCm5iYSAyMiBOb3YgOTkgMDU6Mjk6MzcKICAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKCm5iYSAyMiBOb3YgOTkgMDU6MzI6MDUKICAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KCm5iYSAyMiBOb3YgOTkgMDY6NTk6NDYKICAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKCm5iYSAyMiBOb3YgOTkgMDc6MTY6NTkKICAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCgpkYXZlcyAyMiBOb3YgOTkgMDc6MzA6MDYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KCm1zbGlmY2FrIDIyIE5vdiA5OSAwODoyMDoyOQogICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjE6NTgKICAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA4OjI5OjMzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjAwOjQ1CiAgICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjA3OjM0CiAgICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjI0OjUxCiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgICBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxMjozMDowNQogICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6NDk6MjEKICAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCgpuYmEgMjIgTm92IDk5IDEyOjU0OjA4CiAgICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgIAljb25zdCBzdHJpbmcKCmhhcmRha2VyIDIyIE5vdiA5OSAxMzowNTowNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjQ4OjU0CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTY6NTA6MjUKICAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzowMjoxMQogICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE3OjUyOjM2CiAgICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KCm5iYSAyMyBOb3YgOTkgMDE6MjM6MTYKICAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KCm5iYSAyMyBOb3YgOTkgMDE6MjQ6MzcKICAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0IDotKSkKCm5iYSAyMyBOb3YgOTkgMDE6MjY6MjYKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgoKZGF2ZXMgMjMgTm92IDk5IDAxOjM3OjI5CiAgICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKCmRhdmVzIDIzIE5vdiA5OSAwMjoxMTo0MwogICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwoKbmJhIDIzIE5vdiA5OSAwMjoyMDoxMwogICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKCmRhdmVzIDIzIE5vdiA5OSAwNToyMTo1OAogICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KCmRhdmVzIDIzIE5vdiA5OSAwNTo0MDowOQogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKCmhhcmRha2VyIDIzIE5vdiA5OSAxNzo1MTo0NAogICAgLSAoc25tcHRvc3FsKTogZml4IGZyb20gYWRkcmVzcyBsaW5lLCBvdGhlciBtaXNjIGZpeGVzLgoKZGF2ZXMgMjQgTm92IDk5IDA5OjAzOjAwCiAgICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjA5OjA4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjE2OjAyCiAgICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KCmhhcmRha2VyIDI0IE5vdiA5OSAxMDo0MzowOAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZCA6LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjA1CiAgICBGaXggQlVHIzU3IHVzaW5nIG1vZGlmaWVkIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgptc2xpZmNhayAyNCBOb3YgOTkgMTE6MDc6NDkKICAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgpuYmEgMjUgTm92IDk5IDE0OjMyOjQ3CiAgICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwoKbmJhIDI1IE5vdiA5OSAxNDozMzoxNQogICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6NTI6NTcKICAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQoKbmJhIDI1IE5vdiA5OSAxNDo1NjoxMgogICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAgCWRpcmVjdGl2ZQogICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQoKbmJhIDI1IE5vdiA5OSAxNDo1Nzo1NwogICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCgpuYmEgMjYgTm92IDk5IDExOjE4OjIzCiAgICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KCm1hcnogMjcgTm92IDk5IDA2OjMxOjExCiAgICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCgpoYXJkYWtlciAyNyBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgoKbXNsaWZjYWsgMjkgTm92IDk5IDA1OjUwOjI3CiAgICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMwOjUxCiAgICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzM6NDUKICAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozNjo0MwogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTE6NTg6MzcKICAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTI6NDM6MzQKICAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjowOAogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjo1MAogICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMzo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowNDowOQogICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgoKbmJhIDMwIE5vdiA5OSAwMzowMTozNAogICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKCmRhdmVzIDMwIE5vdiA5OSAwNzowNzowMQogICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgoKZGF2ZXMgMzAgTm92IDk5IDA3OjA4OjQzCiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTA6NDAKICAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxMzoxMToxNAogICAgSW5jbHVkZSBjdHlwZS5oCgpoYXJkYWtlciAzMCBOb3YgOTkgMTQ6MzA6MzIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICAgZXZlcnl3aGVyZS4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxNDo0NzozNgogICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCgptc2xpZmNhayAzMCBOb3YgOTkgMTY6NTA6NDEKICAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDA2OjQwOjA3CiAgICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCgptc2xpZmNhayAgMSBEZWMgOTkgMTA6Mzg6MTgKICAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE1OjU1OjU2CiAgICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCgptc2xpZmNhayAgMSBEZWMgOTkgMTY6MzI6MTQKICAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KCm5iYSAgMiBEZWMgOTkgMDQ6NDE6NTUKICAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAoKbmJhICAyIERlYyA5OSAwNDo0Mjo1NwogICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCgpuYmEgIDIgRGVjIDk5IDA1OjA2OjU1CiAgICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCgptc2xpZmNhayAgMiBEZWMgOTkgMDk6MjE6NDUKICAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KCmhhcmRha2VyICAyIERlYyA5OSAxNjo1OTo1NQogICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCgpuYmEgIDMgRGVjIDk5IDE1OjAzOjQ4CiAgICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KCm5iYSAgMyBEZWMgOTkgMTU6MDQ6MTYKICAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKCm5iYSAgMyBEZWMgOTkgMTU6MDU6MTMKICAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MTo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUyOjE2CiAgICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1Mjo1MQogICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCgpuYmEgIDUgRGVjIDk5IDIxOjQ5OjUwCiAgICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgICAJaXBhZGRyZXNzLgoKbXNsaWZjYWsgIDYgRGVjIDk5IDA5OjE5OjA4CiAgICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTM6NDc6NDEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjUxOjM0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KCm5iYSAgNiBEZWMgOTkgMTQ6MzI6MjIKICAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjQ4OjA4CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjU2OjIxCiAgICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1ODoyOAogICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KCm1zbGlmY2FrICA2IERlYyA5OSAxNTowOTo1MwogICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCgpuYmEgIDYgRGVjIDk5IDE1OjEzOjIxCiAgICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKCm1zbGlmY2FrICA2IERlYyA5OSAxNjozMToyNgogICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KCm1zbGlmY2FrICA3IERlYyA5OSAwODowMzowNgogICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KCmRhdmVzICA3IERlYyA5OSAwODoyOTo1NQogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKCmhhcmRha2VyICA3IERlYyA5OSAwOToxNDozMAogICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KCmhhcmRha2VyICA3IERlYyA5OSAwOToxNzo0MQogICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MzI6MDIKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjQ1OjU5CiAgICAtIChzbm1wd2Fsay5jKToKICAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjU0OjExCiAgICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KCm1zbGlmY2FrICA3IERlYyA5OSAxNToyMzo0NAogICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCgpoYXJkYWtlciAgOCBEZWMgOTkgMDk6MTk6MDgKICAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KCmhhcmRha2VyICA4IERlYyA5OSAxNDowODoyMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE0OjQxOjUzCiAgICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjAxOjIwCiAgICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCgptc2xpZmNhayAgOCBEZWMgOTkgMTU6MDQ6NTQKICAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjM6MDcKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjY6NTEKICAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI4OjU0CiAgICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI5OjUyCiAgICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KCmhhcmRha2VyICA4IERlYyA5OSAxNTo0NzowMgogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDk6MzIKICAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE3OjEzOjE3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCgpkYXZlcyAgOSBEZWMgOTkgMDc6MzQ6MDMKICAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KCm5iYSAgOSBEZWMgOTkgMDc6MzQ6MDgKICAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCgpuYmEgIDkgRGVjIDk5IDA3OjQ5OjM0CiAgICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCgptc2xpZmNhayAgOSBEZWMgOTkgMDg6MTQ6NTkKICAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDEwOjA4OjI2CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE1OjI2OjIzCiAgICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjE2OjQwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjUzOjE0CiAgICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCgpoYXJkYWtlciAgOSBEZWMgOTkgMTc6MDk6MjMKICAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKCm5iYSAxMCBEZWMgOTkgMDM6MDY6MTgKICAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KCm5iYSAxMCBEZWMgOTkgMDM6MDc6MDYKICAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MDk6MzMKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgoKbmJhIDEwIERlYyA5OSAwMzoxMDozMAogICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKCm5iYSAxMCBEZWMgOTkgMDM6MjA6MTAKICAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQoKbXNsaWZjYWsgMTAgRGVjIDk5IDA3OjI4OjMzCiAgICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KCm1zbGlmY2FrIDEwIERlYyA5OSAxMDoyMzozNgogICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgoKbWFyeiAxMCBEZWMgOTkgMTA6NDQ6MjkKICAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCgptc2xpZmNhayAxMCBEZWMgOTkgMTM6MDM6NTgKICAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE3OjQxCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE4OjM4CiAgICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwoKZGF2ZXMgMTMgRGVjIDk5IDA0OjQzOjE0CiAgICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDA5OjQ5OjI4CiAgICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KCmhhcmRha2VyIDEzIERlYyA5OSAwOTo1NzozNwogICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTI6MDQ6MTUKICAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEzOjU0OjI3CiAgICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgoKaGFyZGFrZXIgMTMgRGVjIDk5IDE0OjIwOjEwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKCm1zbGlmY2FrIDEzIERlYyA5OSAxNDo1NDozMQogICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTU6MTI6MDEKICAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxNjowMzowMAogICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjA4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgICBtaWIuYywgbWliLmgpOgogICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCgpoYXJkYWtlciAxNCBEZWMgOTkgMDg6NDE6NDEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHVwZGF0ZXMuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTQ6NTQ6MDkKICAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KCmhhcmRha2VyIDE0IERlYyA5OSAxNToxOTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE2OjA1OjM3CiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA0OjIxOjI3CiAgICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgptc2xpZmNhayAxNSBEZWMgOTkgMDU6NTE6MDAKICAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgoKaGFyZGFrZXIgMTUgRGVjIDk5IDA5OjE3OjAzCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxOToxNAogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NDI6NDQKICAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KCm1zbGlmY2FrIDE1IERlYyA5OSAwOTo1NjoyNAogICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDExOjA4OjE5CiAgICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCgpuYmEgMTYgRGVjIDk5IDIzOjA1OjQ3CiAgICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCgpuYmEgMTYgRGVjIDk5IDIzOjA2OjU4CiAgICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwoKbmJhIDE2IERlYyA5OSAyMzowODowMgogICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgoKbmJhIDE2IERlYyA5OSAyMzowODo1NAogICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCgpuYmEgMTYgRGVjIDk5IDIzOjA5OjQyCiAgICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKCm5iYSAxNiBEZWMgOTkgMjM6MTA6MzEKICAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KCm5iYSAxNyBEZWMgOTkgMDI6MDg6MTcKICAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgoKbmJhIDE3IERlYyA5OSAwMjowOToxOAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KCm5iYSAxNyBEZWMgOTkgMDI6MTQ6MTgKICAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KCm5iYSAxNyBEZWMgOTkgMDI6MTg6MzAKICAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwoKbmJhIDE3IERlYyA5OSAwMzoyMjozOQogICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKCmhhcmRha2VyIDE3IERlYyA5OSAwNzowMzowOQogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjA1OjA4CiAgICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoxMzowMwogICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjI2OjA1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyODozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzo0MDo0MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTA6NDIKICAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTE6MDIKICAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjM0CiAgICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTY6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzowNQogICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzoyOAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODoyNAogICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE4OjQyCiAgICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE0OjIzOjI1CiAgICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCgptc2xpZmNhayAxNyBEZWMgOTkgMTU6MjE6MzkKICAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjQxOjE0CiAgICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo0NjowOAogICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU1OjQ4CiAgICAtIChORVdTKTogbWVudGlvbiAtSS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NjoyNwogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU3OjEwCiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCgpkYXZlcyAyMCBEZWMgOTkgMDM6MDE6NDkKICAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KCmRhdmVzIDIwIERlYyA5OSAwNDoxNTo1NQogICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMDY6NDM6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQ4OjI0CiAgICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjM6MjUKICAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjU6MTUKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyNjowOQogICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MzA6MDYKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjM2CiAgICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE1OjM4OjM0CiAgICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MTk6MTgKICAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzoyMDoxNQogICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6NTUKICAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMxOjQ1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjoyMwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjozNwogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjM0OjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKCm5iYSAyMSBEZWMgOTkgMDI6Mzc6MTkKICAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDIyIERlYyA5OSAwMjo0MTo0MgogICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMiA6LSkKCm5iYSAyMiBEZWMgOTkgMDI6NDM6MTUKICAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKCm5iYSAyMiBEZWMgOTkgMDU6NDY6MjEKICAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCgpuYmEgMjIgRGVjIDk5IDA1OjQ3OjExCiAgICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCgpuYmEgMjIgRGVjIDk5IDA1OjU4OjE4CiAgICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEyOjI2CiAgICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICAgbWFzdGVyIHBvcnQuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTU6MTM6MDUKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTY6MzA6MDEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAyMyBEZWMgOTkgMDg6MjE6MzcKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCgpoYXJkYWtlciAyOCBEZWMgOTkgMTU6NDI6MDgKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgoKaGFyZGFrZXIgMzAgRGVjIDk5IDA3OjUxOjM2CiAgICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDMwIERlYyA5OSAxMjowMDo1OAogICAgRml4IGNvbXBpbGUgZXJyb3JzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMxOjEyCiAgICBGaXggYnVnICMgMTIyCgptc2xpZmNhayAzMSBEZWMgOTkgMDk6MzI6NTgKICAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjExOjEyCiAgICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzM6MTYKICAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+Cgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzY6NDYKICAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMjo0Mzo1MAogICAgRml4IGJ1ZyAjNDggOiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEzOjI3OjQ0CiAgICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CgpuYmEgIDMgSmFuIDAwIDE1OjIzOjIxCiAgICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKCm5iYSAgMyBKYW4gMDAgMTU6MjY6MDcKICAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKCm5iYSAgMyBKYW4gMDAgMTU6MjY6NTEKICAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKCm5iYSAgMyBKYW4gMDAgMTU6Mjc6MjkKICAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQoKbmJhICAzIEphbiAwMCAxNToyODoyNAogICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKCm5iYSAgMyBKYW4gMDAgMTU6MzA6MjYKICAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKCm5iYSAgMyBKYW4gMDAgMTU6MzI6NTkKICAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KCm5iYSAgMyBKYW4gMDAgMTU6MzQ6MjIKICAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAoKbmJhICAzIEphbiAwMCAxNTozOTo0MAogICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCgpoYXJkYWtlciAgNCBKYW4gMDAgMDg6NTg6MjQKICAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KCmhhcmRha2VyICA0IEphbiAwMCAxMDozMzo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgIDQgSmFuIDAwIDE2OjI3OjQ1CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgoKbmJhICA0IEphbiAwMCAyMjoxMjoxMAogICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKCm5iYSAgNCBKYW4gMDAgMjM6NTA6MjcKICAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCgpuYmEgIDQgSmFuIDAwIDIzOjUxOjExCiAgICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCgpkYXZlcyAgNiBKYW4gMDAgMDE6NTg6NTYKICAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKCmhhcmRha2VyICA2IEphbiAwMCAwODo1NzozMQogICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KCm1hcnogIDYgSmFuIDAwIDEyOjU2OjUwCiAgICB1cGRhdGUgc3ludGF4IChleGFjdCkKCm1hcnogIDYgSmFuIDAwIDEzOjA3OjAzCiAgICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCgptYXJ6ICA2IEphbiAwMCAxMzoxNDoxMAogICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKCmhhcmRha2VyICA2IEphbiAwMCAxNTowODoyOAogICAgLSAoQ09QWUlORyk6IHkyayBidWcuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6NDgKICAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDk6MjAKICAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDA5OjI5OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTA6Mzg6NDgKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDExOjIyOjQwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDE2OjIxOjUwCiAgICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KCm5iYSAgNyBKYW4gMDAgMjM6NDM6MTAKICAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCgpuYmEgIDggSmFuIDAwIDAwOjU2OjMwCiAgICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKCm1zbGlmY2FrICA4IEphbiAwMCAxMTo0NDo1OAogICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCgptc2xpZmNhayAgOCBKYW4gMDAgMTI6MDc6NDQKICAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQoKZGF2ZXMgMTAgSmFuIDAwIDAxOjM3OjMyCiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCgpkYXZlcyAxMCBKYW4gMDAgMDI6MzE6MzkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCgpkYXZlcyAxMCBKYW4gMDAgMDM6MDY6NDIKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKCmRhdmVzIDEwIEphbiAwMCAwNjoxMjo0MAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjE0OjAzCiAgICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjIxOjMwCiAgICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KCm1hcnogMTAgSmFuIDAwIDE0OjIxOjE0CiAgICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKCm1hcnogMTAgSmFuIDAwIDE0OjM0OjUwCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDEwIEphbiAwMCAxNDo0MDowNAogICAgYWRkIG1pYmxvYWQKCmhhcmRha2VyIDEwIEphbiAwMCAxNTozNjoxOAogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6NDAKICAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6Mzg6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMDo1MQogICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjE2CiAgICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzE6MzgKICAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMyOjA4CiAgICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDExIEphbiAwMCAwMTozMzo0NQogICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6NTM6MDgKICAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NDQ6NTAKICAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDExIEphbiAwMCAwNzo1OToyMwogICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCgptc2xpZmNhayAxMSBKYW4gMDAgMDg6MTA6MTAKICAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KCm1zbGlmY2FrIDExIEphbiAwMCAwOToxMzozOAogICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCgptYXJ6IDExIEphbiAwMCAxMDozNzoyMQogICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KCm1zbGlmY2FrIDExIEphbiAwMCAxNTowNTowOQogICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCgpoYXJkYWtlciAxMiBKYW4gMDAgMTE6MTY6MjcKICAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KCm1zbGlmY2FrIDEyIEphbiAwMCAyMTowOTo0NwogICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KCmRhdmVzIDEzIEphbiAwMCAwMjo0Njo0NwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgoKbXNsaWZjYWsgMTMgSmFuIDAwIDA1OjM2OjIxCiAgICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMxOjQ0CiAgICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMzOjQwCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KCm1zbGlmY2FrIDE0IEphbiAwMCAwOTozMzozOQogICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTE6MzQ6MjUKICAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKCmhhcmRha2VyIDE0IEphbiAwMCAxNjowOTowOQogICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KCmhhcmRha2VyIDE0IEphbiAwMCAxNjoxMDoyOQogICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KCmRhdmVzIDE3IEphbiAwMCAwNjoxMzozOQogICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KCmRhdmVzIDE3IEphbiAwMCAwOTowMjozMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgoKbWFyeiAxNyBKYW4gMDAgMTI6NDc6NTgKICAgIGFkZGVkIHYyIHRyYXAKCm1hcnogMTggSmFuIDAwIDA3OjAwOjI2CiAgICBtb2RpZmllZCBmb3IgdjItdHJhcC4KCm1hcnogMTggSmFuIDAwIDA3OjU0OjEyCiAgICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKCm1zbGlmY2FrIDE4IEphbiAwMCAwODoxNDo0MgogICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KCm1zbGlmY2FrIDE4IEphbiAwMCAxNDoyMzo0NAogICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjIyOjA2CiAgICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI1OjUzCiAgICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mjk6MDEKICAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMTozNzowMgogICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgoKZGF2ZXMgMjAgSmFuIDAwIDA0OjI1OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6MDQKICAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0Njo0MQogICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0OTozNQogICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgoKbWFyeiAyMSBKYW4gMDAgMDc6Mjc6MTMKICAgIGFkZGVkIHYzIGluZm9ybQoKbWFyeiAyMSBKYW4gMDAgMDg6MDA6MjcKICAgIGluZm9ybS4KCm1hcnogMjEgSmFuIDAwIDA4OjEzOjI1CiAgICBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDEwOjQ3OjI0CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyMSBKYW4gMDAgMTE6MTk6MDkKICAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCgpuYmEgMjMgSmFuIDAwIDA4OjUxOjM5CiAgICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCgpuYmEgMjMgSmFuIDAwIDEyOjQyOjExCiAgICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCgpuYmEgMjMgSmFuIDAwIDEyOjQzOjU0CiAgICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwoKbWFyeiAyMyBKYW4gMDAgMTY6NDE6MDYKICAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KCmRhdmVzIDI0IEphbiAwMCAwNzoyMTozNAogICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KCm1hcnogMjQgSmFuIDAwIDA4OjU5OjMyCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NDQ6NDUKICAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAwOTo1NTozMgogICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0IDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDowNToxMgogICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDoxNDo1NgogICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KCm1hcnogMjQgSmFuIDAwIDEwOjM2OjQzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDI1IEphbiAwMCAwNjo0OTo0MwogICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAoKbWFyeiAyNSBKYW4gMDAgMTE6NDc6MTIKICAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKCm1hcnogMjUgSmFuIDAwIDEyOjA1OjU5CiAgICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKCm5iYSAyNSBKYW4gMDAgMTM6NTI6NDIKICAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU1OjMzCiAgICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU2OjAyCiAgICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKbmJhIDI1IEphbiAwMCAxNDoxMjo1OAogICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NTA6NTYKICAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KCm1zbGlmY2FrIDI1IEphbiAwMCAxOTozMDo1MQogICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KCm1zbGlmY2FrIDI1IEphbiAwMCAyMTo0NjoxNAogICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgoKbXNsaWZjYWsgMjYgSmFuIDAwIDA3OjE0OjUwCiAgICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoyNjoyMgogICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTA6MjQ6MjEKICAgIC0gKGdldFZhbHVlcy5wbSkgZ2V0VmFsdWVzLnBtIHdhcyBub3RlZCBtaXNzaW5nCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6Mjk6NTQKICAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzA6NDIKICAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMxOjAwCiAgICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzI6MjUKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozNDoyMAogICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6MDY6MzEKICAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6Mjg6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjo1Mzo0MQogICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTQ6NDMKICAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxNTowNwogICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxODoxNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MzI6NDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE5OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCgpoYXJkYWtlciAyNyBKYW4gMDAgMDg6MzM6NDMKICAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgoKbWFyeiAyNyBKYW4gMDAgMTE6MTQ6MDkKICAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCgptc2xpZmNhayAyNyBKYW4gMDAgMTQ6NTE6MzkKICAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KCm1zbGlmY2FrIDI3IEphbiAwMCAxNjoxMzo1OAogICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgoKbXNsaWZjYWsgMjggSmFuIDAwIDA3OjE4OjA5CiAgICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjMwOjIwCiAgICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjM4OjIyCiAgICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjUyOjI1CiAgICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgICBmb3IgYnVnICMxNDkuCgpuYmEgMzAgSmFuIDAwIDAzOjAxOjUyCiAgICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQoKbmJhIDMwIEphbiAwMCAwMzowNDoyMgogICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCgpuYmEgMzAgSmFuIDAwIDAzOjA5OjM4CiAgICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzoxMToyOAogICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKCm1hcnogMzAgSmFuIDAwIDA4OjE5OjM0CiAgICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAoKbWFyeiAzMCBKYW4gMDAgMTA6NDI6MzYKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgIAogICAgTm90ZTogS05PV04gQlVHUwogICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKCm1hcnogMzAgSmFuIDAwIDEwOjQ0OjM3CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgICAKICAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CgptYXJ6IDMwIEphbiAwMCAxMDo1ODowMgogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCgpkYXZlcyAzMSBKYW4gMDAgMDE6MDU6MTYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjQ1OjE1CiAgICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKCmRhdmVzIDMxIEphbiAwMCAwMjo0MDowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MDA6MTYKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAzOjE1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KCmRhdmVzIDMxIEphbiAwMCAwMzoxNDo1MAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQoKZGF2ZXMgMzEgSmFuIDAwIDAzOjQxOjA4CiAgICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCgpkYXZlcyAzMSBKYW4gMDAgMDc6NDk6NTAKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUxOjU0CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUzOjUyCiAgICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU1OjA2CiAgICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1NjozOAogICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTc6NTYKICAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCgptYXJ6IDMxIEphbiAwMCAxMDo0MToxNgogICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQoKZGF2ZXMgIDEgRmViIDAwIDAxOjQ5OjU1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KCmRhdmVzICAxIEZlYiAwMCAwMzozNzoyNQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCgpkYXZlcyAgMSBGZWIgMDAgMDQ6MTk6MTYKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KCmRhdmVzICAxIEZlYiAwMCAwNToyNzowMwogICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjMyOjAzCiAgICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKCmhhcmRha2VyICAxIEZlYiAwMCAwODozNDowOQogICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MjQKICAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDM6MDMKICAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NTo0MQogICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQ2OjA3CiAgICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgoKbXNsaWZjYWsgIDEgRmViIDAwIDExOjI2OjM2CiAgICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KCmRhdmVzICAyIEZlYiAwMCAwMToxMjozNwogICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KCm1zbGlmY2FrICAyIEZlYiAwMCAwNDo0NDoyMwogICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCgpuYmEgIDIgRmViIDAwIDA2OjQ0OjMxCiAgICAtIHNvbGFyaXMyLjguaDogU29sYXJpcyA4IHNlZW1zIGNsb3NlIHRvIFNvbGFyaXMgNwoKbmJhICAyIEZlYiAwMCAwNjo0NToyNQogICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAoKaGFyZGFrZXIgIDIgRmViIDAwIDA3OjE3OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCgpkYXZlcyAgMiBGZWIgMDAgMDg6MDI6NDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NDI6MTcKICAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NTI6NDMKICAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgoKaGFyZGFrZXIgIDIgRmViIDAwIDEwOjUyOjMzCiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICAgcmVzcG9uc2VzLgoKbWFyeiAgMiBGZWIgMDAgMTQ6MTg6MDkKICAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwoKbXNsaWZjYWsgIDIgRmViIDAwIDE0OjE4OjIyCiAgICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCgptc2xpZmNhayAgMiBGZWIgMDAgMTY6MjQ6MTUKICAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjM2OjIxCiAgICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCgpkYXZlcyAgMyBGZWIgMDAgMDE6MzU6MTIKICAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCgptc2xpZmNhayAgMyBGZWIgMDAgMDQ6MTI6NTcKICAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2UgOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCgptc2xpZmNhayAgMyBGZWIgMDAgMDY6NDM6MTAKICAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCgptYXJ6ICAzIEZlYiAwMCAwOTo0NDozNwogICAgdXBkYXRlIG15IGVtYWlsCgptc2xpZmNhayAgMyBGZWIgMDAgMDk6NTY6NDgKICAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KCm1hcnogIDMgRmViIDAwIDEwOjQ4OjM3CiAgICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DIDopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU3OjIwCiAgICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCgptc2xpZmNhayAgMyBGZWIgMDAgMTI6NTg6MjcKICAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgoKbXNsaWZjYWsgIDMgRmViIDAwIDEzOjI4OjMxCiAgICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6Mjk6MTkKICAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ0OjMzCiAgICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ2OjEwCiAgICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NTE6NDAKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCgpuYmEgIDMgRmViIDAwIDIzOjU3OjQ5CiAgICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KCm5iYSAgMyBGZWIgMDAgMjM6NTk6NTcKICAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAgCXdhcm5pbmcgZnJvbSBnY2MuCgpuYmEgIDQgRmViIDAwIDAwOjE2OjAxCiAgICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudCA6IHRvCiAgICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KCm5iYSAgNCBGZWIgMDAgMDA6MTc6NDgKICAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgIAlTQ1NJIHRvIEZyZWVCU0QgMwoKbmJhICA0IEZlYiAwMCAwMToyMDo1NQogICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKCm5iYSAgNCBGZWIgMDAgMDQ6MDA6MjcKICAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwoKbWFyeiAgNCBGZWIgMDAgMDY6NDQ6MjQKICAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCgptYXJ6ICA0IEZlYiAwMCAwODo1NTo0MgogICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwoKaGFyZGFrZXIgIDQgRmViIDAwIDEyOjAxOjMyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMjo0NzoyNgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjEyOjE4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6MTU6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1MDoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KCm1hcnogIDQgRmViIDAwIDEzOjUyOjA4CiAgICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1NjoxOQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KCmhhcmRha2VyICA0IEZlYiAwMCAxNDowMTozMAogICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCgptYXJ6ICA0IEZlYiAwMCAxNToyMTo0MQogICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCgptYXJ6ICA0IEZlYiAwMCAxNTo0NDo0NAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4wIC0+IFY0LjAuMQoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjQ0OjI3CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4yIC0+IFY0LjAKCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxMTo1NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2UgdGhlIFBFUlNJU1RFTlRGSUxFIGRlZmluZSB0byBQRVJTSVNURU5URElSLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjE3OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wZC5oLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIxOjA1CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIHBlcnNpc3RlbnQgY2FjaGUgY2FwYWJpbGl0eSBpbnRvIHRoZSBsaWJyYXJ5IGZyb20gdGhlCiAgICAgICAgYWdlbnQuIChzbm1wdHJhcGQsIGFuZCBvdGhlcnMgd2lsbCBuZWVkIHRoaXMgYXMgd2VsbCkuCiAgICAgIC0gaW1wbGVtZW50IHNvbWUgbmV3IGZ1bmN0aW9uczogaW5pdF9zbm1wdjMoKSwgc25tcHYzX3NodXRkb3duKCksCiAgICAgICAgc25tcHYzX2dldF9lbmdpbmVfYm9vdHMoKSwgZXRjLgogICAgICAtIGFnZW50Qm9vdHMgLT4gZW5naW5lQm9vdHMuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjM6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gcGFzcyBhcHAgbmFtZSB0byBzbm1wX3BhcnNlX2FyZ3MsIHNvIGl0IGNhbiBwYXNzIGl0IHRvCiAgICAgICAgaW5pdF9zbm1wKCksIHdoaWNoIG5vdyBuZWVkcyBpdCBmb3IgcGVyc2lzdGVudCBjYWNoZSByZWFkaW5nLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjI1OjEzCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gQmVnaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFNOTVAtRlJBTUVXT1JLLU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0MzoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgRU5URVJQUklTRV9OVU1CRVIgdG8gMjAyMS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0Mzo1MAogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IHNubXBFbmdpbmVJRCBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0NDowNgogICAgLSAoc25tcEVuZ2luZS5jKTogcmVwb3J0IHNubXBFbmdpbmVJRCBwcm9wZXJseS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0OToxNQogICAgLSAoc25tcHYzbWlicy5oKTogaGlnaC1sZXZlbCBtb2R1bGUgY3JlYXRlZCB0byBpbXBvcnQgdjMgcmVsZWF0ZWQgbWlicy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMTowOTo0MQogICAgLSAodXRpbF9mdW5jcy5bY2hdLCBzbm1wRW5naW5lLmMsIHNubXB2My5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gbW92ZSBzbm1wRW5naW5lVGltZSBjYWxjdWxhdGlvbiB0byBzbm1wbGliL3NubXB2My5jLgogICAgICAtIG1vdmUgY2FsY3VsYXRlX3RpbWVfZGlmZigpIHRvIHN5c3RlbS5jIGZyb20gdXRpbF9mdW5jcy5jLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjI5OjU1CiAgICAtIChzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgpOgogICAgIC0gaW1wbGVtZW50IFNOTVAtTVBELU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjozMDoxMAogICAgLSAoc25tcHYzbWlicy5oKTogYWRkIHNubXBNUERTdGF0cyBtb2R1bGUuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6NDA6MjQKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMpOiByZWdpc3RlciB0aGUgbW9kdWxlcyBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjExCiAgICAtIChzbm1wTVBEU3RhdHMuYyk6IGRvdWJsZSBibGFuayAtPiBzaW5nbGUuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDQ6NTgKICAgIC0gKHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgpOiBpbXBsZW1lbnQgdGhlIHVzbVN0YXRzIHBvcnRpb24gb2YgdGhlCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDU6NDMKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCB1c21TdGF0cyB0byByZXF1aXJlIGxpc3QuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTQ6MDgKICAgIC0gKHNubXBfYXBpLmMpOiBjaGFuZ2Ugc3ByaW50Zl9vaWQgYnVmIGxlbmd0aCBpbiBERUJVR1BPSUQgdG8gNDA5Ni4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1NTowNwogICAgLSAoc25tcGQuYyk6IGluaXRfc25tcHYzIG5lZWRzIHRvIGdvIGFib3ZlIGluaXRfYWdlbnQgZm9yIGVuZ2luZUlEIGNyZWF0aW9uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU5OjIwCiAgICAtIChzbm1wdjNtaWJzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBNYWtlZmlsZS5pbiwgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gYmFzaWMgdXNtVXNlciBzdHJ1Y3R1cmUgY3JlYXRlZCBmb3IgdGhlIGxpYnJheSB3aXRoIHN1cHBvcnQKICAgICAgICBmdW5jdGlvbnM6CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2dldF91c2VyKCplbmdpbmVJRCwgIGVuZ2luZUlETGVuLCAgKm5hbWUsICp1c2VyTGlzdCk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2FkZF91c2VyKCp1c2VyLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9mcmVlX3VzZXIoKnVzZXIpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9jbG9uZV91c2VyKCpmcm9tKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpOwogICAgICAtIGZpcnN0IHBhc3MgYXQgYmFzaWMgVVNNIG1vZHVsZSBzdXBwb3J0IGFkZGVkIHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0Mjo0NgogICAgLSAoc25tcC10Yy5oKTogY3JlYXRlIGEgbmV3IC5oIGZpbGUgdG8gc3RvcmUgY29tbW9uIHRleHR1YWwgY29udmVudGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEyOjQ2OjM4CiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBzdG9yYWdlVHlwZS91c2VyU3RhdHVzIGluIHRoZSB1c21Vc2VyIHN0cnVjdHVyZS4KICAgICAgLSBmaXggdGhlIGF1dGgvcHJpdiBwcm90b2NvbCBwb2ludGVyIGluaXRpYWxpemF0aW9ucyBmb3IgdGhlICJpbml0aWFsIiB1c2VyLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ2OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc25tcHVzbS5oIGFuZCBzbm1wdjMuaC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0OTowNAogICAgLSAobWliMmMpOgogICAgICAtIGZwcmludGYgLT4gREVCVUdQLgogICAgICAtIF9fUCAtPiBBTlNJLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjUyOjA4CiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gZ2V0TmV4dCBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSB1c21QdWJsaWMgdHJ1ZWx5IHdyaXRhYmxlLgogICAgICAtIGltcGxlbWVudCB1c21fcGFyc2Vfb2lkKCkgdG8gcGFyc2UgYW4gb2lkIGludG8gZW5naW5lSUQvbmFtZS4KICAgICAgLSBpbXBsZW1lbnQgdGhlIHVzbVVzZXJTcGluTG9jay4KICAgICAgLSBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMjo0OQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0MDowNAogICAgLSAoU05NUHYyLVRDLnR4dCk6IHJlanVzdGlmeSBhIHRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ1OjEzCiAgICAtICh1c21Vc2VyLmMpOgogICAgICAtIE1ha2UgdXNtVXNlclN0YXR1cyBhY3R1YWxseSB3cml0YWJsZSBhbmQgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgcm93cy4KICAgICAgLSBCZWdpbiAoYnJva2VuKSBjbG9uZUZyb20gc2V0dGluZy4KICAgICAgLSBGaXhlczoKICAgICAgICAtIHByb3Blcmx5IG1hbGxvYyBzcGFjZS4KICAgICAgICAtIHByb3Blcmx5IHVzZSBkb3VibGUgY2hhciBuYW1lIGFuZCBlbmdpbmVJRCBwb2ludGVycy4KICAgICAgICAtIGRvIHByb3BlciBvaWQgY29tcGFyaXNvbnMgZm9yIGdldE5leHRzLgogICAgICAgIC0gY2hlY2sgdG8gc2VlIHRoYXQgdXB0ciBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdCB0byByZXRyaWV2ZSBkYXRhLgogICAgICAgIC0gY2xvbmVGcm9tIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBaZXJvRG90WmVybyBPSUQuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDY6MzUKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gZml4IHVzbV9hZGRfdXNlcigpIGZyb20gYWx3YXlzIGFkZGluZyB0aGUgdXNlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICAgICAtIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0aC9wcml2IHByb3RvY29scyBvbiBuZXcgdXNlcnMuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDc6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9kdXBsaWNhdGVfb2JqaWQoKSB0byBtYWxsb2MgYSBuZXcgb2lkLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEyOjE1OjExCiAgICAtIChJU1NVRVMpOiB1cGRhdGUKCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoyNDowNAogICAgLSAoSVNTVUVTKTogdG9vayBvbmUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTc6NTg6NDkKICAgIC0gKElTU1VFUyk6IGNsb25pbmcvbWFsbG9jIGlzc3VlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IGNyZWF0ZWQgdXNtX2Nsb25lRnJvbV91c2VyKCkgdG8gY2xvbmUgc2VjIGluZm8uCgpoYXJkYWtlciAyMyBTZXAgOTggMTg6MDA6MjEKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtQ2xvbmVGcm9tIGFjdHVhbGx5IHdvcmsgKGlzIHNldGFibGUpLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE1OjU3CiAgICAtIChJU1NVRVMpOiBzdG9yYWdlIHR5cGUgaXNzdWVzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE2OjI0CiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbVVzZXJBdXRoUHJvdG9jb2wgYW5kIHVzbVVzZXJQcml2UHJvdG9jb2wgd3JpdGFibGUuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6MDUKICAgIC0gKElTU1VFUyk6IFJvd1N0YXR1cyBxdWVzdGlvbiBhZGRlZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MDo0NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGUgdXNtX3JlbW92ZV91c2VyKCkgdG8gcmVtb3ZlIGEgdXNlcgogICAgICBmcm9tIGEgbGlzdC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MTo0NgogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyU3RhdHVzIGRlc3Ryb3kncyBhY3R1YWxseSByZW1vdmUgYSB1c2VyLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjUzOjUzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU1OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIG5ldyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3Igc2F2aW5nIHVzZXJzIHRvIHRoZSBwZXJzaXN0ZW50IGNhY2hlLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU3OjAwCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIHVzbVVzZXJTdGF0dXMgaXMgc2V0YWJsZSAodG8gZWl0aGVyIHZvbGF0aWxlIG9yIG5vblZvbGF0aWxlKS4KICAgICAgLSB1c2VycyBjcmVhdGVkIGJ5IHNldCdzIGFyZSBzYXZlZCAoaWYgc2V0IHRvIG5vblZvbGF0aWxlKSBvbiBhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI5IFNlcCA5OCAyMDoxMToyMAogICAgLSAoSVNTVUVTKTogZXJyb3IgbWFwcGluZyAoY29leCB3b3JrKS4KCm1hcnogIDEgT2N0IDk4IDEyOjU4OjQyCiAgICAtIChzbm1wLmgsIHNubXB1c20uW2NoXSwgc25tcF9hcGkuW2NoXSk6IGFkZGVkIFVTTSBhcGkgYW5kIHNubXB2M19idWlsZCwgc29tZSB0d2Vha3MgdG8gcGFyc2UgaW4gcHJlcCBmb3Igc25tcHYzX3BhcnNlCgptYXJ6ICAxIE9jdCA5OCAxNDowNTo0NQogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVzIHRvIHNubXB2M19wYXJzZQoKbWFyeiAgNCBPY3QgOTggMTc6MjA6MzAKICAgICAtIChzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMpOiBhZGRlZCBzbm1wdjMgcGFyc2luZyByb3V0aW5lcwoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA1OjAzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA2OjU3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnJlYWtkb3duIG9mIHNubXB2M19idWlsZCgpIGludG8gc3ViLWZ1bmN0aW9ucy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMTo1OToyNgogICAgLSAoc25tcHVzbS5jKTogbWFrZSBnZW5lcmF0ZVJlcXVlc3RNc2cgZG8gc29tZXRoaW5nIGdlbmVyaWMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDA6MjIKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHJldHVybiBhIHVfY2hhciAqIGluc3RlYWQgb2YgYSBjaGFyICogZm9yIGVuZ2luZUlEcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjowMTowNAogICAgLSAoc25tcF9hcGkuYyk6IG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjUwOjEwCiAgICAtIChzbm1wX2FwaS5jKTogbGFzdCBvZiBrbm93biBidWdzIGluIHNubXB2M19idWlsZCBmaXhlZCAoYSBwb2ludGVyCiAgICAgIHdhcyBiZWluZyB1c2VkIHR3aWNlIGluIG92ZXJsYXBwaW5nIG5lZWRlZCB0aW1lIHBlcmlvZHMpLgoKbWFyeiAgNyBPY3QgOTggMTM6MDI6NDAKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHYzIHN1cHBvcnQKCm1hcnogIDcgT2N0IDk4IDEzOjA2OjQxCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wdXNtLltjaF0sIHNubXB2My5jKTogYWRkZWQgcGR1IGZpZWxkIHRvIGhvbGQgc2VjIHN0YXRlIHJlZiwgZml4ZWQgdXNtIHByb3RvdHlwZXMsIGFkZGVkIGNoZWNrIGZvciBudWxsIGhlbnQgcmV0dXJuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MDUKICAgIC0gKHNubXB1c20uYyk6IGZsdXNoIG91dCBhIGdlbmVyaWMgcHJvY2Vzc0luY29taW5nTXNnKCkuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MzYKICAgIC0gKHNubXBfaW1wbC5oKTogYWRkIHNlY3VyaXR5TmFtZSB0byB0aGUgYWdlbnQncyBwYWNrZXRfaW5mbyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6Mzg6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtYW55IG1hbnkgYnVnIGZpeGVzIHRvIHYzIHBhcnNlL2J1aWxkIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM5OjE3CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlY29nbml6ZSB0aGUgc2VjdXJpdHlOYW1lIHdoZW4gVVNNIG1vZGVsIGlzIGluIHVzZS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzoxNzoxMAogICAgLSAoc25tcF9hZ2VudC5jKTogaW5pdGlhbCBwYXNzIGF0IHYzLiAgV2lsbCBmYWlsIG9uIHNlbmRpbmcgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6NDU6MjIKICAgIC0gKHNubXBfYXBpLmMpOiBwYXNzIGluIHRoZSBzZWNfcGFybXMgbGVuZ3RoIHRvIHByb2Nlc3NJbmNvbWluZ01zZwoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ2OjA0CiAgICAtIChzbm1wX2FnZW50LmMpOiBidWcgZml4OiB1c2luZyBhbiBhcnJheSBhcyBhIHBvaW50ZXIgKHVzZWQgdG8gYmUgb25lKS4KCmhhcmRha2VyICA3IE9jdCA5OCAyMjo0MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBkZWZhdWx0IHNubXB2MyBwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzbm1wLmNvbmYgZmlsZS4KCmhhcmRha2VyICA4IE9jdCA5OCAxMDoxMzoyMwogICAgLSAoSVNTVUVTKTogZXZlcnlvbmUgbG92ZXMgaXNzdWVzIQoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjAzOjU3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpkcmVlZGVyICA5IE9jdCA5OCAxMzo1OToxMgogICAgLSAoSVNTVUVTKTogTmVlZCBhIHBhc3MgZm9yIHRyYWRpdGlvbmFsIFVOKlggc3lzdGVtIHByb2dyYW1taW5nIGhvbGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjIzOjI3CiAgICAtIChzbm1wdXNtLmMpOiBnZW5lcmF0ZVJlcXVlc3RNc2coKSBkb2Vzbid0IEFTTiBlbmNvZGUgdGhlIHNlY19wYXJhbXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjQ6MDIKICAgIC0gKHNubXBfYXBpLmMpOiByZXN0cnVjdHVyZSB0aGUgcGFja2V0IGJ1aWxkaW5nIHRvIHVzZSBsZXNzIG1lbWNweSdzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjI2CiAgICAtIChzbm1wX2FnZW50LmMpOiB1c2Ugc25tcF9idWlsZF9wYWNrZXQoKSB0byBjb25zdHJ1Y3QgYWxsIHYzIGRhdGEuCgpkcmVlZGVyIDEyIE9jdCA5OCAwNzoxODo1NgogICAgLSAoSVNTVUVTKTogcHJvb2YgbWVtb3J5IGludm9jYXRpb24vZGlzcG9zYWw7IHB1dCB0aW1lIHN0YW1wcyBpbiBsb2cgZmlsZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6MTk6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDI6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBidWcgZml4ZXMgd2l0aCBjb3VudGVycyAocmV0dXJucyB1X2ludCwgRUcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQ0OjU1CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIG1ha2UgdjMgY29kZSByZXR1cm4gZXJyb3JzIHByb3Blcmx5LgogICAgICAtIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NToxMQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oKToKICAgICAgLSB1c2UgdGhlIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KCm1hcnogMTIgT2N0IDk4IDA3OjU2OjMwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzIC0gVGhlcmUgY2FuIGJlIG9ubHkgT25lCgptYXJ6IDEyIE9jdCA5OCAwODoxMTo0NgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdKTogbWVyZ2VkIGhleCB0byBiaW4gZnVuY3MsIGZpeGVkIE1QL1VTTSBhcGksIGltcGxlbWVudGVkIG5vQXV0aE5vUHJpdiBVU00sIGltcGxlbWVudGVkIGVuZ2luZSBwcm9iZSBhbGdvcml0aG0KCmhhcmRha2VyIDEyIE9jdCA5OCAwOToyMzo0OQogICAgLSAoSVNTVUVTKTogbm90ZSBvbiBEYXZpZCdzIGlzc3VlLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDEyOjI2OjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxvb2sgZm9yIC9kZXYvcmFuZG9tIGFuZCBkZWZpbmUgSEFWRV9ERVZfUkFORE9NLgogICAgICAtIGxvb2sgZm9yIGxpYmttdCBhbmQgbGliY3J5cHRvIGFuZCBkZWZpbmUgSEFWRV9MSUJYWFguCgptYXJ6IDEyIE9jdCA5OCAxNTo0NjozNgogICAgLSAoc25tcHVzbS5jKTogZml4ZWQgaGVhZGVyIHNpemUgaXNzdWVzIChkaWZmZXJlbmNlIGJldHdlZW4gYXNuX2J1aWxkX2hlYWRlciBhbmQgYXNuX2J1aWxkX3NlcXVlbmNlKQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU2OjQyCiAgICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBtYWtlIGNhbGN1bGF0ZV90aW1lX2RpZmYgdGFrZSBhIHBvaW50ZXIuCgpoYXJkYWtlciAxMiBPY3QgOTggMjE6NTk6NTMKICAgIC0gKHNubXB2My5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MDQ6MDYKICAgIC0gKHNubXBfY2xpZW50LmMpOiBidWcgZml4ZXM6CiAgICAgIC0gc25tcF9zeW5jaF9pbnB1dCgpIG5lZWRzIHRvIGNsb25lIGEgcmVwb3J0IHBkdSB0b28uCiAgICAgIC0gc25tcF9jbG9uZV9wZHUoKSBuZWVkcyB0byBjb3B5IGNvbnRleHRFbmdpbmVJRCwgY29udGV4dE5hbWUsIGFuZAogICAgICAgIHNlY3VyaXR5TmFtZQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjEyOjUwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYygpIHJldHVybiB0aGUgY2hhbmdlZCB2YWx1ZS4KICAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uOiBzbm1wX2ZyZWVfdmFyYmluZCgpIHRvIGZyZWUgYSBsaXN0LgogICAgICAtIFxuJ3MgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgZW5naW5lSUQgZGlzY292ZXJ5LgogICAgICAtIE1lcmdlIHJlc3BvbnNlL3JlcG9ydCBoYW5kbGluZyB0byBtYWtlIHJlcG9ydCdzIGNhbGwgdGhlaXIKICAgICAgICBjYWxsYmFjayBhcyB3ZWxsIChlbmdpbmVJRCBkaXNjb3Zlcnkgd2FzIG5ldmVyIHJldHVybmluZykuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MTk6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGluY29ycmVjdCBjb21tZW50LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIyOjM2CiAgICAtIChJU1NVRVMpOiB3aWVyZCBtZW1vcnkgcXVlc3Rpb24uCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjM6MTYKICAgIC0gKHN5c3RlbS5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGhhbmRsZSBlbmdpbmVJRCBkaXNjb3ZlcnkgcmVxdWVzdHMuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTg6MjYKICAgIC0gKHVzbVVzZXIuYyk6IG5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHVzZXJMaXN0LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjU1CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBmdW5jdGlvbiB1c21fY2hlY2tfc2VjTGV2ZWwoaW50LCBzdHJ1Y3QgKnVzbVVzZXIpOwoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU5OjM2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgdW5rbm93blNlY3VyaXR5TmFtZSBhbmQgdW5zdXBwb3J0ZWRTZWN1cml0eUxldmVsLgoKaGFyZGFrZXIgMTMgT2N0IDk4IDEzOjI3OjE0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBvcHRpb25zOiAtLWRpc2FibGUtcHJpdmFjeSwgLS1lbmFibGUtdjJwLW1kNS4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzozMToyMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjb21tZW50IGZvcm1hdHRpbmcuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfYWRkX3ZhciBzZXQgdGhlIHNpemUgb2YgdGhlIG9pZCBidWZmZXIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbW92ZWQgdGhlIGRlZmF1bHQgdXNlckxpc3QgaW50byB0aGUgbGlicmFyeS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMToyOQogICAgLSAodXNtVXNlci5jKTogdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMjo1OAogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSB1c2UgdGhlIG5ldyBsaWJyYXJ5IGRlZmF1bHQgdXNlciBsaXN0LgogICAgICAtIGRvbid0IGZyZWUgYSBub25leGlzdGVudCBwZHUgKGl0IG9ubHkgZXhpc3RzIGZvciB2MyByZXF1ZXN0cykuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6NDc6NTYKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2Ugc3VyZSBwZHUtPnNlY3VyaXR5TmFtZSBpcyBudWxsIHRlcm1pbmF0ZWQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTc6NTI6MjMKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbmV3IGFyZ3VtZW50cyB0byBjb25maWd1cmUgdG8gc2V0IENGTEFHUyBhbmQgTElCUzoKICAgICAgICAtIC0td2l0aC1LTVQ9cGF0aAogICAgICAgIC0gLS13aXRoLVNTTGVheT1wYXRoCiAgICAgIC0gZml4IHRvIGFnZW50L21pYmdyb3VwL01ha2VmaWxlIHRvIGtlZXAgdGhlIGFib3ZlIGZyb20gZ2V0dGluZyB0aGUKICAgICAgICB3cm9uZyBhc24xLmggZnJvbSB0aGUgU1NMZWF5IHBhY2thZ2UuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDE6MDcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGttdC5oCiAgICAgIC0gcmUtb3JkZXIgQ1BQRkxBR1MgdG8gcHV0IC1JIGZsYWdzIGxhc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDU6NTEKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gbW92ZSB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDc6NDgKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBpbmNsdWRlIHNubXB1c20uaAoKZHJlZWRlciAxNSBPY3QgOTggMTI6MDI6NDAKICAgIC0gQmFzZSBmb3IgU0NBUEkgKyBzb21lIGZvcm1hdHRpbmcgb24gdGhlIHBhdGggdG8gc25tcHYzIHN0YXJ0dXAgYW5kIHNodXRkb3duLgogICAgLSBTaHVmZmxpbmcgaW4gaGVhZGVyIGZpbGVzIHRvIGRlZmVhdCB3YXJuaW5ncyBvZiAjZGVmaW5lIHJlZHVuZGFuY2llczoKICAgIAlub3RhYmx5LCBzL2ZyZWVic2QqLmggYW5kIHNubXBsaWIvc3lzdGVtLmgKICAgIC0gRGVidWcgJiB0aW5pIHRvb2xiYWcgaW4gc25tcGxpYi97ZGVidWcsdG9vbHN9LioKICAgIC0gQ2hhbmdlZCBjb25maWd1cmUgb3B0aW9uIC0tZW5hYmxlLXYycC1tZDUgdG8gLS1lbmFibGUtaW50ZXJuYWwtbWQ1LgogICAgLSBDb25zb2xpZGF0ZWQgbGlicmFyeSBzeXN0ZW0gYW5kIGxvY2FsIGhlYWRlciBpbmNsdWRlIHNlcXVlbmNlcyBpbnRvCiAgICAJc25tcGxpYi9hbGxfKi5oIGZpbGVzLiAgUG9zc2libHkgYmV0dGVyIHNvbHV0aW9ucyBmb3IgdGhpcy4uLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI0OjUyCiAgICAtICh1c21Vc2VyLmMpOiByZW1vdmVkIHVzbV9wYXJzZV9jb25maWdfdXNtVXNlciB0aGF0IERhdmlkIHB1dCBiYWNrIGJ5CiAgICAgIGFjY2lkZW50IHdoZW4gZG9pbmcgZm9ybWF0aW5nLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjE3CiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oKTogYWRkZWQgbGVuZ3RoIHRvIGVuZ2luZUlELgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjU4CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogbWFrZSBjb3B5X3dvcmQgcmV0dXJuIGEgcG9pbnRlci4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNjoyMQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCk6IG1vdmUgI2luY2x1ZGVzIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6Mjc6MDMKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbmV3IGNvbmZpZyBvcHRpb25zIHRvIGNoYW5nZSBrZXlzLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjU4CiAgICAtIChzbm1wdjMuYyk6IGRvbid0IGNhbGwgaW5pdF9rbXQoKSB1bmxlc3MgSEFWRV9MSUJLTVQgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0MjowMAogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IG1vdmUgI2luY2x1ZGUgZnJvbSAuaCB0byAuYy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0Nzo1NgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIHVzZSBkb19rZXljaGFuZ2UoKSB0byBpbXBsZW1lbnQgdGhlIGtleSBjaGFuZ2Ugd3JpdGUgbWV0aG9kcy4KICAgICAgLSBhIGJpdCBvZiAtV2FsbCBjbGVhbnVwLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6Mjg6MTIKICAgIC0gVXBkYXRlZCBTQ0FQSSBjcnlwdGluZyBmdW5jdGlvbnMgdG8gaWRlbnRpZnkgdHJhbnNmb3JtcyBPSURzIG5vdCAjZGVmaW5lJ3MuCiAgICAtIE1vdmVkICJnbG9iYWwiIGRlZmluaXRpb25zIG9mIE9JRCB0cmFuc2Zvcm1zIHRvIHNubXB1c20uaCwgYW5kIG91dCBvZgogICAgCXVzbVVzZXIuYyBhbmQgc25tcHVzbS5jLgogICAgLSBzY19nZW5lcmF0ZV9rZXllZF9oYXNoKCkgc3RhbmRzIGFzIGEgZ29vZCBleGFtcGxlIG9mIHdoYXQgb3RoZXIgZnVuY3Rpb25zCiAgICAJd2lsbCBsb29rIGxpa2UuCgpkcmVlZGVyIDE2IE9jdCA5OCAxMTo1MDowOQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCkgT3V0cHV0IGJ1ZmZlciBhcmd1bWVudHMgZm9yIChlbnxkZSljcnlwdGluZyBhcmUKICAgIAlzaW5nbGUtcG9pbnRlcnMuCgpsZXdpcyAxNiBPY3QgOTggMTM6MTU6MTYKICAgIC0gLSAoc25tcHVzbS5oKToKICAgICAgLSBBZGRlZCBVU01fRVJSIHN5bWJvbHMgdXNlZCBieSB1c21fZ2VuZXJhdGVfb3V0X21zZwoKbGV3aXMgMTYgT2N0IDk4IDEzOjIwOjA3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZXdyb3RlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnLCByZW5hbWluZyBvbGQgaW1wbGVtZW50YXRpb24gdG8KICAgICAgICB1c21fZ2VuZXJhdGVfb3V0X21zZ19OVUxMCiAgICAgIC0gVGhpcyBjb2RlIGNvbXBpbGVkIG9uIEZyZWVCU0QsIG5vdCB0ZXN0ZWQgZm9yIGxpbmtpbmcgb3IgcnVubmluZwogICAgICAtIEFkZGVkIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgaW5kaWNpZXMgKGFzbl9wcmVkaWN0X2ludF9sZW5ndGgsCiAgICAgICAgYXNuX3ByZWRpY3RfbGVuZ3RoLCB1c21fY2FsY19vZmZzZXRzKSBhbmQgdG8gbWFrZSB0aGUgQ0JDLURFUwogICAgICAgIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXNtX3NldF9zYWx0KS4KCmRyZWVkZXIgMTggT2N0IDk4IDIxOjE0OjA5CiAgICAtIFNDQVBJIGNvZGUgY29tcGxldGUsIGJ1dCBub3QgY29tcGxldGVseSB0ZXN0ZWQuCiAgICAJQWRkZWQgdGVzdGluZy8gZGlyZWN0b3J5LgogICAgCVZlcmlmaWVkIHRoYXQgRWQncyByZWNlbnQgY2hhbmdlcyBjb21waWxlIGNsZWFubHkuCiAgICAJVHJpZWQgdG8gcGF0Y2ggdXAgImNyaXRpY2FsIiAtV2FsbCB3YXJuaW5ncy4KCmhhcmRha2VyIDE5IE9jdCA5OCAwNzoxMDoyNwogICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlIC1XYWxsIHJlcXVpcmVtZW50LgoKZHJlZWRlciAxOSBPY3QgOTggMTU6MTI6NTcKICAgIC0gQ29yZSBTQ0FQSSByb3V0aW5lcyBhcHBlYXIgc291bmQuICB0ZXN0aW5nLyBkaXJlY3RvcnkgaXMgbm8gbG9uZ2VyCiAgICAJY29tbWVudGVkIG91dC4gIFNOTVB2MyBzdHlsZSBrZXkgbWFuaXB1bGF0aW9ucyB1bnRlc3RlZCB5ZXQuCiAgICAJQ3JlYXRlZCAoPykgYSBzbGV3IG9mIG5ldyB3YXJuaW5ncyBmcm9tIGZpbGVzIGVhcmx5IGluIGNvbXBpbGUgc2VxdWVuY2UuCgpkcmVlZGVyIDIwIE9jdCA5OCAxMTozODo0MgogICAgLSBUZXN0cyBmb3IgZ2VuZXJhdGVfS3UgYW5kIGdlbmVyYXRlX2t1bC4gICh0ZXN0aW5nL2t0ZXN0IC1oIGZvciBoZWxwLikKICAgIAlDbGVhbmVkIHVwIG5ldyBzZXQgb2YgImNyaXRpY2FsIiB3YXJuaW5ncyAtLSBtb3N0bHkgYWRkaW5nICNpbmNsdWRlJ3MuCiAgICAJRml4ZWQgS01UL2FwcHMvcmFuZHRlc3QuYyBzbyBpdCBjb21waWxlcyB1bmRlciBMaW51eC4KCm1hcnogMjEgT2N0IDk4IDA4OjE4OjAzCiAgICAgLShzbm1wX2FwaS5bY2hdKTogYWRkIGZpZWxkcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbGV3aXMgMjEgT2N0IDk4IDEyOjA3OjE2CiAgICAtIC0gKHNubXAuaCkKICAgICAgLSBBZGRlZCBTTk1QX0VSUl8gZXJyb3Igc3ltYm9saWMgY29uc3RhbnRzIGZvciB0aGUgYXV0aC9wcml2IChVU00pIG1vZHVsZQogICAgICAgIHJlcG9ydGVkIGVycm9ycy4KICAgICAgLSBVc2VkIHZhbHVlcyAxOS0yNywgdXBkYXRlZCBNQVhfU05NUF9FUlIgdG8gMjcuCgpsZXdpcyAyMSBPY3QgOTggMTI6MDg6MjQKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgZXJyb3JzIGZvdW5kIHByb2Nlc3NpbmcgaW5jb21pbmcgbWVzc2FnZXMuCiAgICAgIC0gRXF1YXRlZCB0aGUgc3ltYm9scyB3aXRoIHRob3NlIGFkZGVkIHRvIHNubXAuaAoKaGFyZGFrZXIgMjEgT2N0IDk4IDEyOjEwOjAzCiAgICAtIChzbm1wX2FwaS5oKTogYWRkZWQgQVNOL1NOTVAgY291bnRlcnMgdG8gdGhlIGNvdW50ZXIgbGlzdC4KCm1hcnogMjEgT2N0IDk4IDEyOjUwOjI0CiAgICAgLShzbm1wX2FwaS5bY2hdKTogY29ycmVjdGx5IGFkZCAjZGVmaW5lIHNpemVzIGZvciBhdXRoS2V5IGFuZCBwcml2S2V5CgptYXJ6IDIxIE9jdCA5OCAxMzozODo1NwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZGVkIGF1dGgvcHJpdiBwcm90b2NvbCB0eXBlIGZpZWxkcyB0byBzZXNzaW9uCgptYXJ6IDIxIE9jdCA5OCAxMzo0OToxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIGNhc3QgZm9yIGludGVybmFsIHBkdSAoaW50ZXJuYWwgcGR1IHNob3VsZCBiZSBlbGltaWFudGVkIHNvbWVkYXkpCgpoYXJkYWtlciAyMSBPY3QgOTggMTM6NTM6MzgKICAgIC0gKHNubXBfYXBpLmgpOiBTVEFUX01BWF9TVEFUUyAtPiBNQVhfU1RBVFMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6NTQ6MDgKICAgIC0gKHNubXB2My5jKTogcmVtb3ZlIHNubXBfcGVycm9yKCkgZGVmaW5lZCBhcyBwZXJyb3IoKS4gIEl0J3MgYSByZWFsIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU4OjA4CiAgICAtIChhc24xLmMpOiBhc25fYnVpbGRfc3RyaW5nOiBhbGxvdyBhIG51bGwgc3RyaW5nIHRvIGJ1aWxkIGEgMDAgcGFkZGVkIHN0cmluZy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxODowMDowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZW5naW5lSUQgZGlzY292ZXJ5IGRlYnVnZ2luZyBtZXNzYWdlcy4KICAgICAgLSB6ZXJvIGxlbmd0aCBjb250ZXh0TmFtZXMgb2suCiAgICAgIC0gc2V0IG1heCBsZW5ndGggYmVmb3JlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDQ6MzUKICAgIC0gKHNubXBfYXBpLmMpOiBtb3ZlIHRoZSBlbmdpbmVJRCBkaXNjb3ZlcnkgdG8gc25tcF9zZXNzX29wZW4oKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxOTowNToxMgogICAgLSAoc25tcF9hcGkuaCk6IHN5bmNoIHNubXBfcGR1IGFuZCBpbnRlcm5hbF9zbm1wX3BkdS4KCmRyZWVkZXIgMjEgT2N0IDk4IDE5OjU1OjE1CiAgICAtIFNob29rIHRoZSBidWdzIG91dCBvZiBrZXkgbWFuaXB1bGF0aW9uIHJvdXRpbmVzIChnZW5lcmF0ZV9rdWwsIGdlbmVyYXRlX0t1KS4KICAgIAlDb21wbGV0ZWQgYW5kIHRlc3RlZCBLZXlDaGFuZ2UgVEMgY29kZSAoe2VuY29kZSxkZWNvZGV9X2tleWNoYW5nZSkuCiAgICAJQ3JlYXRlZCBpbml0aWFsIGVsZW1lbnRzIG9mIGFuIGF1dG9tYXRlZCB0ZXN0IGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJQ3JlYXRlZCBkYXRhIGZpbGVzIGFuZCB0ZXN0IHNjcmlwdHMgdG8gZGVtb25zdHJhdGUgY29tcGxpYW5jZS4KICAgIAlNaXNjZWxsYW5lb3VzIGFkZGl0aW9ucyB0byBzbm1wbGliL3Rvb2xzLj8sIHNvbWUgdGVtcG9yYXJ5L3RyYW5zaXRpb25hbC4KCm1hcnogMjEgT2N0IDk4IDE5OjU4OjExCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhdXRoL3ByaXYgcHJvdG8gZmxhZ3MsIGFkZCBhdXRoIHByaXYga2V5IGZsYWdzCgptYXJ6IDIxIE9jdCA5OCAyMDoxOTowOAogICAgLSAoc25tcF9hcGkuW2NoXSk6IHVwZGF0ZWQgYXV0aC9wcml2IHByb3QgYW5kIGtleSBmaWxlZHMgaW4gc2Vzc2lvbiwgYWRkZWQgc3Vwb3J0IGluIHNubXBfc2Vzc19vcGVuIGFuZCBjbG9zZSAoeWFua2VkIGZpZWxkcyBmcm9tIFBEVSAtIGRpZCBJIGRvIHRoYXQ/KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDIxOjIxOjQxCiAgICAtIChsY2RfdGltZS5jKTogbWlub3Igd2FybmluZyBmaXhlcy4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMjowNwogICAgLSAodG9vbHMuYywgdG9vbHMuaCk6IG5ldyB0b29sOiBtZW1kdXAoKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMjowODowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZ2VuZXJhdGUgYSB1c20gdXNlciBmcm9tIHNlc3Npb24gZGF0YSBpZiBuZWVkZWQuCiAgICAgIC0gY2hlY2sgdGhlIHJlc3VsdCBmcm9tIHRoZSB1c20gYW5kIGZhaWwgaWYgaXQgZG9lcy4KCm1hcnogMjIgT2N0IDk4IDA4OjAyOjExCiAgICAgLShzbm1wX2FwaS5jKTogYWRkZWQgREVCVUdQIGNvZGUgdG8gdHJhY2UgbWVzc2FnZSB2ZXJzaW9uIGFuZCBzZWNMZXZlbCBmb3IgZGVtbwoKbGV3aXMgMjIgT2N0IDk4IDEzOjM3OjM0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3QgYSB3b3JraW5nL3Rlc3RlZCB2ZXJzaW9uLCBidXQgaXQgY29tcGlsZXMuCiAgICAgIC0gRml4ZWQgb25lIGJ1ZyAtICImIiB0byAiPT0iIGluIGFuIGlmKCkKICAgICAgLSBEaWQgbm90IGFsdGVyIGNvZGUgdG8gZGVueSBudWxsIGVuZ2luZSBpZCB1c2VycwogICAgICAtIEFkZGVkIG11Y2ggY29kZSBpbiBwcm9jZXNzIGluY29taW5nIG1lc3NhZ2UKICAgICAgLSBOZXcgdXNlIG9mIGVycm9ycyBhbmQgREVCVUdQCiAgICAgIC0gU3RpbGwgd2FpdGluZyBvbiB1cGRhdGVzIHRvIGxjZF90aW1lLmggdG8gaW1wbGVtZW50CiAgICAgICAgc3RlcCAjMyBvZiBSRkMgMjI3NCwgczMuMi4KCmRyZWVkZXIgMjMgT2N0IDk4IDA5OjQ1OjQ3CiAgICAtIExDRCBUaW1lIEFQSSBwcm90b3R5cGVzIGFyZSBjb21wbGV0ZS4gIDkwJSBzdGFibGUuCiAgICAJRHJhZnQgb2YgYXV0b21hdGVkIHRlc3RpbmcgaGFybmVzcyBpbiB0ZXN0aW5nLy4KICAgIAkJVXNlIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCB0byBydW4gYWxsIGN1cnJlbnQgdGVzdHMuCgpsZXdpcyAyMyBPY3QgOTggMTE6Mzg6MjUKICAgIC0gLSAobGNkX3RpbWUuaCkKICAgICAgLSBhZGRlZCBkZWZpbml0aW9ucyBmb3IgVFJVRSBhbmQgRkFMU0UgKGlmIG5vdCBwcmV2aW91c2x5IGRlZmluZWQpCiAgICAgIC0gZml4ZWQgYSBjb21waWxhdGlvbiBidWcgaW4gdGhlIGVuc3VyZSBlbnRyeSBtYWNybwoKbGV3aXMgMjMgT2N0IDk4IDExOjQ3OjM3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBBZGRlZCB0aGUgc3RlcCAzIGNvZGUgdG8gcHJvY2VzcyBvdXRnb2luZyBtZXNzYWdlcyBmdW5jdGlvbgogICAgICAtIFN0aWxsIHVuLXJ1bgoKZHJlZWRlciAyMyBPY3QgOTggMTU6Mzk6MDIKICAgIC0gQ29tcGxldGUgY29kZSBmb3IgTENEIHRpbWUgQVBJLiAgQXdhaXRpbmcgc2VyaW91cyB0ZXN0cy4KICAgIAlDaGFuZ2VkIHNubXB2M19nZXRfZW5naW5le1RpbWUsQm9vdHN9IHRvIHNubXB2M19sb2NhbF9zbm1wRW5naW5lKgoKZHJlZWRlciAyNCBPY3QgOTggMjM6MDc6NTQKICAgIC0gU2hvb2sgYnVncyBvdXQgb2YgTENEIHRvIG1hbmFnZSBlbmdpbmUgSURzL3RpbWUgKCJ0ZXN0aW5nL2V0ZXN0IC1hIikuCiAgICAJQWRkZWQgYSBmdW5jdGlvbiBkdW1wX3NubXBFbmdpbmVJRCAoInRlc3RpbmcvbWlzY3Rlc3QgLTEiKS4KICAgIAkJTWFkZSBzcHJpbnRfaGV4c3RyaW5nIG5vdC1zdGF0aWMuLi4gKHRlbXBvcmFyeSBjaGFuZ2UgSSB0aGluaykuCiAgICAJQWRkZWQgY29tbWVudHMvcXVlc3Rpb25zIGFib3V0IGJ1aWxkaW5nIHNubXBFbmdpbmVJRC4gIChzbm1wdjMuYykKICAgIAlBZGRlZCBUUlVFL0ZBTFNFIGRlZmluZXMgdG8gc25tcHVzbS5jLiAgKFRoZXNlIHNob3VsZCBiZSBzdGFuZGFyZGl6ZWQuKQogICAgCUFkZGVkIFNOTVBfTUFYQlVGX1NNQUxMLiAgKHRvb2xzLmgpCiAgICAJQ2xlYW5lZCB1cCAoY2xhcmlmaWVkPykgdGVzdCBoYXJuZXNzIGRlc2NyaXB0aW9uLgoKbWFyeiAyNSBPY3QgOTggMTQ6NDg6MDYKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogbW92ZSBrZXkgZ2VuZXJhdGlvbiAoZ2VuZXJhdGVfS3UpIGFmdGVyIGluaXRfc25tcAoKaGFyZGFrZXIgMjUgT2N0IDk4IDIwOjU5OjMzCiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWJ1Z2dpbmcgcGFyc2UvYnVpbGQgc3RhdGVtZW50cyBhbmQgZXJybm8gZml4ZXMuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDA6MTUKICAgIC0gKHN5c3RlbS5oKTogY3JlYXRlZCBERUJVR1BMIHRvIGRvIERFQlVHUCB3aXRoIGZpbGUvbGluZSBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjAwCiAgICAtICh0b29scy5jKTogY2hlY2sgbWVtZHVwKCkgZm9yIE5VTEwgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjU4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogYnVnIGZpeGVzOiBtaXNjIE5VTEwgY2hlY2tzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAyOjQwCiAgICAtIChzbm1wX2NsaWVudC5jKTogZGVmYXVsdCB0byBzZXR0aW5nIHNlY05hbWVMZW4gYW5kIGNvbnRleHROYW1lTGVuIHRvIC0xLgoKZHJlZWRlciAyNSBPY3QgOTggMjI6Mjg6MTgKICAgIC0gTW9zdGx5IHNodWZmbGluZyBwcmUtZXhpc3RpbmcgdGhpbmdzIGFib3V0IC0tCiAgICAgICAgICAgIFVzZWQgVVNFX0lOVEVSTkFMX01ENSBwdXQga210X2hhc2ggcGFyYWxsZWwgd2l0aCB2MnAgTUQ1IGhhc2guCiAgICAgICAgICAgIHNjX2VuY3J5cHQvc2NfZGVjcnlwdCBub3cgYWxzbyByZXR1cm46IFNOTVBFUlJfU0NfTk9UX0NPTkZJR1VSRUQuCiAgICAgICAgICAgIFRlc3RlZCBhbmQgImZpeGVkIiBidWlsZCB3aXRoIG9uJm9mZiBzZXR0aW5ncyBvZjoKICAgICAgICAgICAgICAgICAgICBVU0VfVjJQQVJUWV9QUk9UT0NPTCwgU0NBUElfQVVUSFBSSVYsIFVTRV9JTlRFUk5BTF9NRDUuCiAgICAgICAgICAgIEdyZWF0ZXN0IGRhbWFnZSBkb25lIGluIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLgogICAgICAgICAgICBSZXBhaXJlZCB1c2Ugb2Yga2V5IG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgaW4gc25tcHVzbS5jLgogICAgICAgICAgICAgICAgICAgIChDb3VsZCB1c2UgcGVlciByZXZpZXcgYXMgbXkgZXhwZWN0YXRpb25zIG9mIHVzZSBtYXkgZGlmZmVyLikKICAgICAgICAgICAgQWRkZWQgKGFuZCByZW1vdmVkIDEpIHNvbWUgWFhYJ3MgaW4gcGFydHkgY29kZS4uLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM0OjAzCiAgICAtIChzbm1wdXNtLmMpOiBlbmFibGUgTlVMTCBlbmdpbmVJRHMgaW4gdXNlciBzdG9yYWdlLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM3OjAzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBjcmVhdGluZyB1c2VycyBmcm9tIGEgc2Vzc2lvbjogIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbigpLgogICAgICAtIG1ha2UgcHJvYmluZyB1c2UgdGhlIGFib3ZlIHR3aWNlIChvbmNlIGZvciBOVUxMIGVuZ2luZUlEIGFuZCBvbmNlCiAgICAgICAgZm9yIHByb2JlZCBlbmdpbmVJRCkuCiAgICAgIC0gYnVnIGZpeDogIHNubXAgdmVyc2lvbiBwcmludGVkIGluIGRlYnVnZ2luZyB3YXMgb2ZmIGJ5IC0xLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIwOjQxOjE5CiAgICAtIChzbm1wX2FnZW50LmMpOiBzZXQgY29udGV4dCBuYW1lIG9uIGVuZ2luZUlEIHJlcG9ydC4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MjowNgogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgImluaXRpYWwiIHVzZXIgZm9yIGVuZ2luZUlEOm51bGwuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTI6MTcKICAgIC0gKGtleXRvb2xzLmMpOiBjaGVjayBmb3IgTlVMTCBwb2ludGVyLCBub3QgKnBvaW50ZXIuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTU6MDEKICAgIC0gKHNubXB1c20uYyk6IG1hbGxvYyBrdWwgc3BhY2UgaW4gdXNtX3NldF9wYXNzd29yZCgpLgoKZHJlZWRlciAyOCBPY3QgOTggMDk6Mzk6NTcKICAgIC0gZ2V0X2VuZ2luZXRpbWUoKSBub3cgcmV0dXJucyA8MCwwPiB0dXBsZSBmb3IgTlVMTC8iIi9sZW49MCBlbmdpbmVJRHMuCiAgICAJc2Nfe2NoZWNrLGdlbmVyYXRlfV9rZXllZF9oYXNoKCkgcHJvY2VzcyBoYXNoZXMgPD0gaGFzaCBvdXRwdXQgbGVuLgogICAgCQkoU3RhYmxlLCBidXQgZXhwZWN0IGFuIGV4cGFuZGVkIHRlc3QgaW4gc2NhcGl0ZXN0LmMgc29vbi4pCiAgICAJTWlzYzogUHV0IE1ENV9IQVNIU0laRV9CWVRFUyBpbiBwYXJ0eS5oOyBTTk1QX1pFUk8gaW4gdG9vbHMuaAoKbGV3aXMgMjggT2N0IDk4IDEzOjE2OjU0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBEZWJ1Z2dlZCBydW5uaW5nIG9mIHVzbV9nZW5lcmF0ZS4uLiBmdW5jdGlvbiBzbyB0aGF0IGl0IHJ1bnMgd2l0aCBubwogICAgICAgIGF1dGhlbnRpY2F0aW9uIC8gbm8gcHJpdmFjeSBvcHRpb25zLiAgKERvbid0IGhhdmUgYSB3YXkgeWV0IHRvIHRlc3QKICAgICAgICB3aXRoIHRoZSBmYW5jeSBzZWN1cml0eS4pCiAgICAgIC0gQWRkZWQgYSBsaW5lIGZvciBkZWJ1Z2dpbmcgd2hpY2ggc2V0cyBhbGwgYnl0ZXMgb2YgdGhlIHNlY3VyaXR5IGhlYWRlcgogICAgICAgIGFuZCB0aGUgUERVJ3MgcmVzdGluZyBwbGFjZSB0byBGRiAtIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seS4gIFRoaXMKICAgICAgICBsZXRzIG1lIHNlZSB3aGF0IGJ5dGVzIHJlbWFpbiB0byBiZSBwdW5jaGVkIGluLiAgVGhpcyBsaW5lIGlzIGZsdXNoIGxlZnQKICAgICAgICBpbiB0aGUgZmlsZSwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHRvIGJlIGN1dCBvdXQgaWYgd2UgcmVhY2ggcmVsZWFzZS4KICAgICAgLSBBZGRlZCAiZW1lcmdlbmN5X3ByaW50LCIgYW4gdW5jYWxsZWQgcm91dGluZSBJIGxpa2UgdG8gaGF2ZSB3aGVuIHJ1bm5pbmcKICAgICAgICBpbiBnZGIuICBJdCBkdW1wcyBhIGZpZWxkIG9mIHggYnl0ZXMgaW4gaGV4LCAyNSB2YWx1ZXMgdG8gYSBsaW5lLgoKZHJlZWRlciAyOCBPY3QgOTggMTQ6MTk6NTIKICAgIC0gQm91bmRlZCBLTVQgY29kZSB3aXRoICNkZWZpbmUncyBmb3IgSEFWRV9MSUJLTVQKICAgIAktIFdpbGwgbm90IGNvbXBpbGUgd2l0aG91dCBlaXRoZXIgSEFWRV9MSUJLTVQgLW9yLSBVU0VfSU5URVJOQUxfTUQ1LgogICAgCS0gQWRkZWQgbmV3IGVycm9yIGNvZGU6IFNOTVBFUlJfS1RfTk9UX0FWQUlMQUJMRS4KICAgIAktIEFkZGVkIGEgdGVzdCBmb3IgcHJldmlvdXMgY2hhbmdlcyB0byBzY18qX2tleWVkX2hhc2goKSBmdW5jdGlvbnMuCiAgICAJCShBdWdtZW50ZWQgdGVzdF9kb2tleWVkaGFzaCgpIGluIGtleW1hbmFnZW1lbnQuYy4pCgpsZXdpcyAyOSBPY3QgOTggMDk6NTY6MDgKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE1hZGUgZml4ZXMgdG8gcHJvY2VzcyBpbmNvbWluZwogICAgICAtIEJlZ2FuIHRvIGFkZCBjb2RlIGZvciB0aGUgc2VjdXJpdHkgc3RhdGUgcmVmZXJlbmNlCgpsZXdpcyAyOSBPY3QgOTggMTA6Mjc6MzcKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHByb3RvdHlwZSBmb3Igc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQKCmxld2lzIDI5IE9jdCA5OCAxMDoyOToxNgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgc29tZSBvZiBXZXMnIHJlcG9ydGVkIHByb2JsZW1zLgogICAgICAtIEFkZGVkIGNvZGUgdG8gc3RvcmUgc2VjU3RhdGVSZWYKICAgICAgLSBTdGlsbCBuZWVkIHRvIHVzZSBpdCBpbiBnZW5lcmF0ZV9vdXRnb2luZwoKbGV3aXMgMjkgT2N0IDk4IDE0OjMwOjE4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3cgbWFrZXMgdXNlIG9mIHRoZSBzdG9yZWQgc2VjU3RhdGVSZWYgaW4gZ2VuZXJhdGUgb3V0Z29pbmcKICAgICAgLSBJIGhvcGUgLSBJIHN0aWxsIGhhdmVuJ3QgYmVlbiBhYmxlIHRvIGdldCBtZXNzYWdlIGJhY2sgYW5kIGZvcnRoLAogICAgICAgIGl0J3MgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBydW4gdGhlIHNubXBkIHN0dWZmIEkgZ3Vlc3MuCgptYXJ6IDI5IE9jdCA5OCAxNTowNjo0OQogICAgYWRkICNpZGVmIGdhdXJkcyBmb3Iga210LmggYW5kIGttdF9hbGdzLmggZGVwZW5kZW50IG9uIGV4aXN0ZW5jZSBvZiBoZWFkZXJzIHJhdGhlciB0aGFuIGxpYmttdAoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ1OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBhIHN0YXRlIHJlZmVyZW5jZSBmcmVlIHJvdXRpbmUKICAgICAgLSBDaGFuZ2VkIG5hbWUgb2YgdGhlIHJvdXRpbmUgdG8gc2V0IHRoZSByZXBvcnQtb24tZXJyb3IgZmxhZyBzbyB0aGF0IGl0CiAgICAgICAgYmVnaW5zIHdpdGggInVzbV8iLgoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ2OjUyCiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNb2RpZmllZCB0aGUgZnJlZSBzdGF0ZSByZWYgcm91dGluZSB0byB0YWtlIGEgdm9pZCAqIGluc3RlYWQgb2YgYQogICAgICAgIHN0cnVjdCB3aGF0ZXZlciAqLCB0aGlzIHBsdXMgYWRkaW5nIGl0IHRvIHRoZSAuaCBmaWxlIG1ha2VzIGlzIHVzZWFibGUKICAgICAgICBieSB0aGUgTWVzc2FnZSBQcm9jZXNzb3IuCgpsZXdpcyAzMCBPY3QgOTggMDc6MzQ6MjYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIFJlbW92ZWQgYSBwb3RlbnRpYWwgbWVtb3J5IGhvbGUgKHJldHVybmluZyBvbiBlcnJvciBmcm9tIHRoZSBwcm9jZXNzCiAgICAgICAgaW5jb21pbmcgcm91dGluZSB3aXRob3V0IGZyZWVpbmcgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZSkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6Mzg6NTMKICAgIC0gKHNubXB2My5jKTogc25tcF9wZXJyb3IoKSAtPiBwZXJyb3IoKSBbIm1hbGxvYyJdLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjQzOjUyCiAgICAtIChzbm1wZC5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgogICAgICAtIHVzZSB1c21fc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQoKS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0NTowOQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIE1ha2UgLUQgYSB0b2dnbGUuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NDQ6NDMKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2UgdGhlIGFnZW50IHdhdGNoIHRoZSBlcnJvciBzdGF0dXMgZnJvbSBwYWNrZXQKICAgICAgcGFyc2luZyBpbnN0ZWFkIG9mIGRvaW5nIGNoZWNrcyBpdHNlbGYuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NTI6MDMKICAgIC0gKHNubXB1c20uYyk6IHVzbV9nZXRfdXNlcigpOiBhbGxvdyBhIG51bGwgbGVuZ3RoIChidXQgbm9uIG51bGwKICAgICAgcG9pbnRlcikgZW5naW5lSUQuCgptYXJ6ICAxIE5vdiA5OCAxNTo1NToxMQogICAgIC0oYXNuMS5jLCBsY2RfdGltZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHNubXB2My5jKTogcmVtb3ZlIGludGVybmFsIHBkdS92YXJsaXN0LCBwZHVfZnJlZSB1cGRhdGUsIGhhbmRsZSBpbml0aWFsIHVzZXIgYXMgZGlzY3Vzc2VkLCByZW1vdmUgaW5pdGlhbCB1c2VyIGhhY2ssIHJlbW92ZSBlbmdpbmVJRCBwcm9iZS9SZXBvcnQgaGFjaywgaGFuZGxlIHNlY3VyaXR5U3RhdGVSZWYgYXMgZGlzY3Vzc2VkLCBoYW5kbGUgemVyby1sZW5ndGggY29udGV4dCwgbm9ybWFsaXplIF9lbmdpbmV0aW1lIGFyZyBvcmRlciwgaW5jbHVkZSB3ZXMncyBwYXRjaGVzIGZvciBudWxsIGVuZ2luZWlkIGFuZCBzZWNOYW1lTGVuKysKCmhhcmRha2VyICAxIE5vdiA5OCAxOTozMjo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgICAgIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSB1c2UgInNubXBhcHAiIGFzIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM2OjU5CiAgICAtIChzbm1wX2FwaS5jKTogZ2VuZXJhdGUgdXNlci0+S3VsIGZyb20gc2Vzc2lvbi0+S3UuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6Mzg6MjkKICAgIC0gKHNubXBfYWdlbnQuYyk6IGdlbmVyYXRlIGFsbCBzb3J0cyBvZiBuZXcgU05NUCByZXBvcnRzIHdoZW4gbmVlZGVkLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM5OjI5CiAgICAtIChzbm1wZC5jKTogdXNlIHNubXBfcGVycm9yKCkgaWYgc25tcF9hZ2VudF9wYXJzZSgpIHJldHVybnMgMC4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMDoyNQogICAgLSAodmFjbS5jKTogYWxsb3cgYSBzZWN1cml0eSBsZXZlbCA+PSwgbm90ID09LgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjAxOjA3CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSB1c21fY3JlYXRlX2luaXRpYWwoKSBhbmQgc2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowNjowNAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG5ldyBmdW5jdGlvbjogaW5pdF91c21fcG9zdF9jb25maWcodm9pZCk7CiAgICAgIC0gbWFrZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0KCkgaGFuZGxlIGEgYm9ndXMgaW5pdGlhbCB1c2VyIGZsYWcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDk6MzUKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBpbml0X3VzbV9wb3N0X2NvbmZpZygpOwogICAgICAtIHVzZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0IHRvIGFzayBub3QgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IGluaXRpYWwgdXNlci4KICAgICAgLSBmaXggc25tcF92YXJfYWRkX3ZhcmlhYmxlKCkgdG8gYWxsb3cgY291bnRlcnMuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTA6MTUKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdHlwbyBvbiBkZXMga2V5IGluaXRpYWxpemF0aW9uLCBmb3Jnb3QgdGhlICdYJy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOToxMzozNgogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggcmVwb3J0IE9JRHMgdG8gYmUgY29ycmVjdC4KICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IHdoZW4gc2VuZGluZyBhIHJlcG9ydC4KICAgICAgLSBhZGRlZCB1bnN1cHBvcnRlZCBzZWN1cml0eSBsZXZlbCByZXBvcnQuCiAgICAgIC0gc2VuZCBhIGNvdW50ZXIgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLgoKaGFyZGFrZXIgIDIgTm92IDk4IDE2OjAxOjI0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGdlbmVyYXRlIEt1IGZvciBwcml2IHByb3RvY29sIHVzaW5nIGF1dGggcHJvdG9jb2wgaGFzaC4KCmhhcmRha2VyICAzIE5vdiA5OCAwOTozNzowMwogICAgLSAobGNkX3RpbWUuYyk6IGZpcnN0IGJ5dGU9PTAgZW5naW5lIElEJ3MgYXJlIHZhbGlkLgoKbGV3aXMgIDQgTm92IDk4IDExOjM1OjI5CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBCZXR0ZXIgaGFuZGxpbmcgb2YgbnVsbCBhbmQgdW5rbm93biBlbmdpbmUgSURzLgoKZHJlZWRlciAgNCBOb3YgOTggMTE6NDU6MDgKICAgIC0gKGxjZF90aW1lLmMpIFNwZWNpYWwgY2FzZXMgZm9yIE5VTEwgb3IgMCBsZW5ndGggZW5naW5lSURzLgoKaGFyZGFrZXIgIDQgTm92IDk4IDIxOjUzOjMyCiAgICAtIChzbm1wX2FnZW50LmMpOiBjaGVjayBlbmdpbmVJRCB0byBtYWtlIHN1cmUgaXRzIHVzLgoKbGV3aXMgIDUgTm92IDk4IDA5OjUyOjM1CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBjYWxsIHRvIHByZWRpY3QgaW50ZWdlciBsZW5ndGggcm91dGluZSB0byBnaXZlIGl0IHRoZSAqd2hvbGUqCiAgICAgICAgbnVtYmVyLCBub3QganVzdCBvbmUgKGZpcnN0L2xhc3QgZGVwZW5kcyBvbiBlbmRpYW4pIG9mIHRoZSBudW1iZXIuCiAgICAgICAgRG9oISBzY2FsZSByYXRpbmcgOS4KICAgICAgLSBBbHRlcmVkIHRoYXQgcm91dGluZSB0byBiZSBtb3JlIGxpa2UgdGhlIGFzbl9idWlsZF9pbnQgLi4uIGkuZS4sIG5vCiAgICAgICAgbG9uZ2VyIGFzc3VtZXMgdGhlIGxlbmd0aCBvZiB0aGUgbGVuZ3RoIGlzIDEuICBEb2ghIHJhdGluZyBhIDEuCgpsZXdpcyAgNSBOb3YgOTggMTE6MDM6MjQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgREVCVUdQIGNhbGxzIHRvIHNob3cgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBwZXJoYXBzIHRoZXNlIHdpbGwKICAgICAgICBiZWNvbWUgREVCVUdQTCBpbiB0aGUgZnV0dXJlLgoKZHJlZWRlciAgNSBOb3YgOTggMTU6Mzc6MjkKICAgIC0gTW9zdGx5IGZ1bmN0aW9uIGhlYWRlciBjb21tZW50cyBpbiByZWFkX2NvbmZpZy5jLCB1dGlsX2Z1bmNzLmMsIHNubXB2My5jLgogICAgICAJKFBsZWFzZSBmZWVsIGZyZWUgdG8gY2hlY2sgZm9yIGFjY3VyYWN5Li4uKQogICAgICBDaGVjayBmb3IgTlVMTCBpbiByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICBBZGRlZCBsZW5ndGggYXJndW1lbnQgdG8gc25tcHYzX2dldF9lbmdpbmVJRCgpLgogICAgICBDaGVjayBmb3IgbGVuZ3RoKFApPFVTTV9MRU5HVEhfUF9NSU4gaW4gZ2VuZXJhdGVfS3UoKS4KICAgICAgTm90ZTogImV0ZXN0IC1hIiBoYXMgYSBuZXcgZmFpbHVyZTsgdG8gYmUgZml4ZWQgd2hlbiBUaW1lIExDRCByZS1zdGFiaWxpemVzLgoKbWFyeiAgNiBOb3YgOTggMTY6MTM6MzcKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgUmVwb3J0cyB0byB0cmlnZ2VyIHJlc2VuZCwgZXhjZXB0IGZvciB1bmtub3duRW5naW5lSUQsIHBhc3Mgc2VjU3RhdGVSZWYgdG8gcmVjZWl2ZSBzZWN1cml0eVN0YXRlIGZyb20gVVNNICpXQVJOSU5HKiBnZXR0aW5nIGF1dGhvcml6YXRpb24gZmFpbHVyZSBpbiBVU00qIHBsZWFzZSBoZWxwIC0gdGhpcyB3YXMgbm90IGhhcHBlbmluZyBiZWZvcmUgc28gZG91YnRsZXNzIGl0IGlzIG15IGZhdWx0PwoKbWFyeiAgNyBOb3YgOTggMTI6MzM6NDkKICAgICAtKHNubXBfYXBpLmMsIGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBvdGhlciBVU00gZXJyb3JzLCBpbXBsZW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgb3B0aW1pemF0aW9uCgptYXJ6ICA3IE5vdiA5OCAxMjozNzoyMQogICAgIC0oc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogY2xlYW4gdXAgcHJvYmxlbXMgY2F1c2VkIHdoZW4gd2UgYmVnYW4gdXNpbmcgc2VjU3RhdGVSZWYsIHNldF9lbmdpbmV0aW1lIGluIExDRCBwb3N0IGNvbmZpZyByZWFkLCBMQ0RfVElNRV9TWU5DX09QVCB0aW1lIGxlcm5pbmcgb3B0aW1pemF0aW9uLCBpbmNsdWRlIGZpbGUgZm9yIGxjZF90aW1lIGFkZGVkLCBtb3ZlZCBtYWtlX3JlcG9ydCB0byBzbm1wbGliIC0gcmVwb3J0IGdlbmVyYXRpb24gaXMgc3RpbGwgaW4gYWdlbnQKCmhhcmRha2VyICA5IE5vdiA5OCAxMzoyOToxOQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlX2t1bCBzaG91bGQgdXNlIGF1dGhwcm90b2NvbC4KCm1hcnogMTEgTm92IDk4IDA3OjUxOjQzCiAgICAgLShsY2RfdGltZS5jLCBzbm1wdXNtLmMpOiBmaXhlcyB0byBoYW5kbGUgbnVsbCBlbmdpbmUgSUQgLSB0b2xlcmF0ZWQgd2hlbiBzZW5kaW5nLCB1bmtub3duIHdoZW4gcmVjZWl2aW5nCgptYXJ6IDExIE5vdiA5OCAwODowMzoyNAogICAgIC0oc25tcF9hZ2VudC5jKTogcmVtb3ZlIHdvcmthcm91bmQgdG8gZGV0ZWN0IHVua25vd25FbmdpbmVJRCBlcnJvciAtIG5vdyBkb2VuIGluIFVTTSBhcyBzcGVjJ2QKCmhhcmRha2VyIDExIE5vdiA5OCAxMjozNzo0NwogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIGluaXRpYWwgc2V0X2VuZ2luZXRpbWUoKSBmcm9tIGFnZW50IHRvIHNubXB2My5jLgogICAgICAtIG5ldyBzbm1wLmNvbmYgY29uZmlndXJlIGZpbGUgdG9rZW5zOiBkZWZBdXRoVHlwZSwgZGVmUHJpdlR5cGUsCiAgICAgICAgZGVmUGFzc3BocmFzZSwgZGVmQXV0aFBhc3NwaHJhc2UsIGRlZlByaXZQYXNzcGhyYXNlLgogICAgICAtIG1pbmltdW0gYm9vdHMgdXNlZCBpcyAxLCBub3QgMC4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzowOToyNgogICAgLSAoc25tcGQuYyk6IGFkZGVkIG5lZWRlZCBpbml0XygpIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTEgTm92IDk4IDEzOjExOjAyCiAgICAtIChzbm1wdjMuYyk6IGRvbid0IHByaW50IG9pZHMgdG8gJXMncy4KCmhhcmRha2VyIDEzIE5vdiA5OCAwNzo1OTowNAogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgY29ycmVjdCBpbml0aWFsIHVzZXIgYWZ0ZXIgZW5naW5lSUQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODowMzo0NQogICAgLSAodXNtVXNlci5jKTogZG9uJ3QgaW5pdGlhbGl6ZSB1c2VyIGhlcmUuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDQ6NDIKICAgIC0gKHNubXB2My5jKTogbWFrZSBlbmdpbmVJRCBjb25maWd1cmF0aW9uIGxpbmVzIGdldCBwYXJzZWQgZWFybHkuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MTQ6MDQKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gbW9yZSBhcHByb3ByaWF0ZSBlbmdpbmVJRCBjaGVja2luZyBmb3IgdXNlcnMgKHdhcyBhIGJ1ZykuCiAgICAgIC0gdXNtX2FkZF91c2VyKCk6IGRvbid0IGR1cGxpY2F0ZSB1c2VycyB3aXRoIHRoZSBzYW1lIG5hbWUvZW5naW5lSUQuCgpoYXJkYWtlciAxNSBOb3YgOTggMTA6MTk6NTUKICAgIC0gKHNubXBkLmMpOiBtb3ZlIHBvc3RfY29uZmlnIGluaXQgcm91dGluZXMgdG8gYmV5b25kIHBlcnNpc3RlbnQgcmVhZGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMjo1NTozOAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBtYWtlIHRhcmdldDogdGVzdAogICAgICAtIG1ha2UgYWxsIGRvZXNuJ3QgY29tcGlsZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDA6NDEKICAgIC0gKHVzbVVzZXIuYywgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIHVzbV9yZW1vdmVfdXNlcigpOgogICAgICAgIC0gcHJvcGVybHkgdXBkYXRlcyB0aGUgbGlzdCBwb2ludGVyLgogICAgICAgICAgLSByZXF1aXJlcyBhICoqIHBvaW50ZXIgdG8gdGhlIGxpc3QgdG8gZG8gdGhpcy4KICAgICAgICAtIGNoZWNrIGFnYWluc3QgYSBOVUxMIGxpc3QgcG9pbnRlci4KICAgICAgLSB1c21fY2xvbmVGcm9tX3VzZXIoKToKICAgICAgICAtIHRoZSBrZXlzIHdlcmUgbm90IGJlaW5nIHByb3Blcmx5IGR1cGxpY2F0ZWQuCiAgICAgIC0gdXNtX2Nsb25lX3VzZXIoKTogZGVsZXRlZC4KICAgICAgLSB1c21fY3JlYXRlX3VzZXIoKTogY3JlYXRlZCwgYW5kIHVzZWQgaW4gcGxhY2Ugb2YgdXNtX2Nsb25lX3VzZXIoTlVMTCkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDE6MjcKICAgIC0gKGV0aW1ldGVzdC5jKTogZml4IGNhbGxzIHRvIHNldC9nZXRfZW5naW5ldGltZSgpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE0OjA3CiAgICAtIChJU1NVRVMpOiBmaW5pc2hlZCBhIGNvdXBsZSBvZiB0aGluZ3MuCgpoYXJkYWtlciAxNSBOb3YgOTggMTQ6MTk6MjEKICAgIC0gKElTU1VFUywgc25tcF9hZ2VudC5jKTogZml4IHBkdSBmcmVlaW5nIHByb2JsZW0sIHRoYW5rcyB0byBKb2UncwogICAgICBtZXJnZSBvZiB0aGUgcGR1IHN0cnVjdHVyZXMuCgpoYXJkYWtlciAxNSBOb3YgOTggMTU6NTA6MzMKICAgIC0gKElTU1VFUyk6IG1pc2MgZGF0ZSBjaGFuZ2VzIGFuZCBtYXJrIHRoYXQgSSdtIHdvcmtpbmcgb24gc29tZXRoaW5nLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUzOjI0CiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBjcmVhdGUvY2FsbCBzbm1wX3NodXRkb3duKCkuCiAgICAgIC0gcmVtb3ZlIHRoZSAicGVyc2lzdGVudC4iIHBhcnQgb2YgdGhlIHBlcnNpc3RlbnQgLmNvbmYgbmFtZS4KICAgICAgLSByZW5hbWUgaW5zdGVhZCBvZiB1bmxpbmsgb2xkIHBlcnNpc3RlbnQgLmNvbmYgZmlsZS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNzozNzowMAogICAgLSAoSVNTVUVTLCBzbm1wdjMuYyk6IHdoZW4gZW5naW5lSUQgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBydW4sCiAgICAgIHJlc2V0IGVuZ2luZUJvb3RzIHRvIDEuICAocmVxdWlyZXMgc3RvcmluZyB0aGUgbGFzdCBlbmdpbmVJRCB1c2VkKS4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMDoxMDoxOQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX21pYi5jLCBzbm1wX21pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oKToKICAgICAgLSB1c2UgbmV3IGxpYnJhcnkgYmFzZWQgc3RhdGlzdGljcyBjb3VudGVyIGV2ZXJ5d2hlcmUuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTc6MDEKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBpbnRlcmZhY2VzLmMsIHN5c3RlbS5jLCByZWdpc3RyeS5jKToKICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMgaW4gYSBmZXcgbW9yZSBwbGFjZXMuCiAgICAgIC0gc3RhbmRhcmRpemUgdGhlIE1BVENIX0ZBSUxFRCBhbmQgTUFUQ0hfU1VDQ0VFREVEIGRlZmluaXRpb25zLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI0OjU2CiAgICAtIChzbm1wdXNtLmMpOiB1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpIGFjY2VwdHMgbmFtZSAmIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNTo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gbG9nIFBJRCB0byBmaWxlIHVzaW5nIC1QLgogICAgICAtIGNyZWF0ZSB0ZW1wbGF0ZSB1c2VyczogIHRlbXBsYXRlTUQ1ICYgdGVtcGxhdGVTSEEuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjY6MzAKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IG5ldyBmbGFnOiAtcSA9IHF1aWV0LgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI3OjEyCiAgICAtIChkZW1vKTogc2NyaXB0IHRvIHJ1biBsaXN0IG9mIGNvbW1hbmRzIHJlcXVpcmVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyODo1OAogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0ZXN0aW5nIHRhcmdldHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMTQ6MzY6NTMKICAgIC0gKGRlbW8pOiBxdW90ZSB0aGUgcGFzcyBwaHJhc2UuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MTY6NDQKICAgIC0gKGRlbW8pOgogICAgICAtIHBhc3MvZmFpbCB0eXBlIG91dHB1dC4KICAgICAgLSBob3N0cyBvdGhlciB0aGFuIGxvY2FsaG9zdC4KICAgICAgLSBjYXBhYmlsaXR5IHRvIGxvb2sgZm9yIHN0dWZmIGluIG91dHB1dCBvZiBjb21tYW5kcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAyMjoyNjoyOAogICAgLSAoZGVtbyk6IHR1cm4gZW5jcnlwdGlvbiBvbiBmb3IgdGVzdHMgdGhhdCBuZWVkIGl0LgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjE0OjA1CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBwcmludCBNRDUvU0hBIGJlZm9yZSB0aGUga2V5Y2hhbmdlIHN0cmluZy4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNjowMQogICAgLSAoZGVtbyk6IGZpeCB0aGUga2V5IGNoYW5nZSBzdHJpbmcgZXh0cmFjdGlvbiB0byBsb29rIGZvciB0aGUgTUQ1IHZlcnNpb24uCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6Mzg6NDQKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IGJlcXVpZXQgc2hvdWxkIGJlIDAgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwODowNjozNAogICAgLSAoZGVtbyk6IGJ1ZyBmaXhlcy4KCmRyZWVkZXIgMjQgTm92IDk4IDE2OjQzOjUwCiAgICBGaXhlZCBidWcgaW4gVVNNIHByZXZlbnRpbmcgZXhjaGFuZ2Ugb2YgY3J5cHRlZCBwYWNrZXRzLiAgQ29kZSBhZGRlZAogICAgCXRvIHByb3Blcmx5IGVzdGltYXRlIHNpemUgb2YgY3J5cHRlZCB0ZXh0IGdpdmVuIHVuLXBhZGRlZCBwbGFpbnRleHQuCiAgICAJRm91bmQvZml4ZWQgS01UIHByb3RvdHlwZSBjb25mbGljdCB0aGF0IGNhdXNlZCB0aGUgZ2l2ZW4gSVYgdG8gYmUKICAgIAlpZ25vcmVkIGF0IGNyeXB0L2RlY3J5cHQgdGltZS4KICAgIHNldHVwX2VuZ2luZUlEKCkgaGFzIGEgbmV3IGFyZ3VtZW50IHRvIGFsbG93IElEIHN0cmluZ3MgdG8gYmUgcmV0dXJuZWQKICAgIAl0byBjYWxsZXIuCiAgICBOZXcgZmlsZSBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggdG8gcHV0IHN0YXRpYyBkZWNsYXJhdGlvbnMgaW4gYSBzaW5nbGUKICAgIAlwbGFjZS4uLgogICAgRmFpbHVyZSBvZiBzdGF0IGluY3JlbWVudHMgaW4gVVNNIG5vIGxvbmdlciBjYXVzZSBmYWlsdXJlIGluIHRoZSBjYWxsaW5nCiAgICAJZnVuY3Rpb24uCiAgICBBZGRlZCB1dGlsaXR5IGFwcHMvZW5jb2RlX2tleWNoYW5nZS4gICgtaCBmb3IgdXNhZ2UuKQogICAgRElGRlRJTUUgbWFjcm8gdG8gcmVwbGFjZSBvZnQgcmVwZWF0ZWQgY29kZS4KICAgIFNob3J0ZW5lZCBzb21lIFZBQ00gZGVidWdnaW5nIG91dHB1dCB0byBhIHNpbmdsZSBsaW5lIGZyb20gbWFueS4KICAgIE1vcmUgY29tbWVudHMuICBNb3JlIHRyb3VibGUgc3BvdHMgbWFya2VkIFhYWC4KICAgIENvbnZlcnRlZCBvZnQgdXNlZCBtYWdpYyBudW1iZXJzIHRvIHN5bWJvbGljIGNvbnN0YW50cyAoc29tZSBwcmUtZXhpc3RpbmcpLgogICAgQ2xlYW5lZCB1cCBzb21lIHNpbXBseSBmaXhlZCBidWlsZCB3YXJuaW5ncy4KICAgIFVwZGF0ZWQgbm9uZXhwb3J0L2NyeXB0by9SRUFETUUuICBTdGlsbCBuZWVkcyB3b3JrLgoKbWFyeiAyNSBOb3YgOTggMDc6NDQ6MjgKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkZWQgLVQgPGJvb3RzPiA8dGltZT4gdG8gc2V0IGFuIGluaXRpYWwgKGF1dGhlbnRpY2F0ZWQpIHRpbWUgdmFsdWUgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmdpbmVJRHMgYm9vdHMvdGltZSkKCm1hcnogMjUgTm92IDk4IDA3OjQ4OjQ5CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wLmgsIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgaW5jb21pbmcgUmVwb3J0cyAtIHByb3BhZ2F0ZSBTVEFUX0VSUk9SIHRvIGFwcHMgd2l0aCBhcHByb3AuIGVycm9yIG1lc3NhZ2UsIGhhbmRsZSByZWNvdmVyYWJsZSBlcnJvciBub3RJblRpbWVXaW5kb3cgYW5kIGVuZ2luZUlkIGRpc2NvdmVyeSwgc2VuZCByZXBvcnRzIHdpdGggc2VjTGV2ZWw9PW5vQXV0aE5vUHJpdiBleGNlcHQgbm90SW5UaW1lV2luZG93CgptYXJ6IDI1IE5vdiA5OCAwNzo1MTo1MAogICAgIC0odG9vbHMuYyk6IG9vcHMgYmFjayBvdXQgbGl0dGxlIGNvbXBpbGUgd29ya2Fyb3VuZCBJIGRpZCBub3QgbWVhbiB0byBjb21taXQKCm1hcnogMjUgTm92IDk4IDA3OjU0OjAxCiAgICAgLShzbm1wZC5jLCBzbm1wX2FnZW50LmMpOiBpbml0aWFsaXplIHBpZF9kaWxlLCBvbmx5IGFsbG9jYXRlIGVuZ2luZUlEIG1lbSBmb3IgUmVwb3J0cyB3aGVuIHNlbmRpbmcgUmVwb3J0LCBmaXggdmVyc2lvbiBpbmZvIGluIGRlYnVnIG1lc3NhZ2UKCmhhcmRha2VyIDI1IE5vdiA5OCAwNzo1NjozMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wTVBEU3RhdHMuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIEFkZGVkIGEgY291cGxlIG9mIERFVUJHUCBzdGF0ZW1lbnRzIGFuZCBhIGNvdXBsZSBvZiBjb21tZW50IGNsYWlyaWZpY2F0aW9ucy4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjozOTowMQogICAgLSAoc25tcHVzbS5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo0MDozNQogICAgLSAoc25tcHYzLmMpOiBjaGFuZ2VzIGluIGNvbW1lbnRzIGZvciBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjU0OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiB2ZXJzaW9uIGNoZWNrcyBhZ2FpbnN0IHYyYy92MnAgLT4gIXYxLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEzOjA0OjAyCiAgICAtIChzbm1wZC5jKTogY29tbWVudCBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDE3OjEyOjAyCiAgICAtIChkZW1vKToKICAgICAgLSBlbmNvZGVfa2V5Y2hhbmdlIHVzYWdlLgogICAgICAtIG1vdmUgY2xvc2VyIHRvIDQyLCBidXQgbGVhdmUgcm9vbSBmb3IgYSBmZXcgbW9yZSB0aGluZ3MuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTg6NDMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciB0Y2dldGF0dHIuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTk6NTYKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGNyZWF0ZSBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZSgpLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjAwOjQ3CiAgICAtICh0b29scy5jKTogZHVtcF9lbmdpbmVJRCBzaG91bGQgKm5ldmVyIGV2ZXIqIG1vZGlmeSB0aGUgcGFzc2VkIGxlbmd0aCBwYXJhbS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMjo0OQogICAgLSAoZGVtbyk6CiAgICAgIC0gLXM6IDEgc2VjIHNsZWVwIGluc3RlYWQgb2Yga2V5cHJlc3MuCiAgICAgIC0gZG8gdGltZSB0ZXN0cy4KICAgICAgLSB1c2UgZW5jb2RlX2tleWNoYW5nZS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowNDoxMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIFNoaGhoaC4uLi4uICBib290cyBhbmQgdGltZSBhcmUgd3JpdGFibGUuLi4gIERvbid0IHRlbGwgYW55b25lLi4uIFNoaGguLi4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzoxNTowNQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKToKICAgICAgLSB1c2UgdV9jaGFyJ3Mgd2hlcmUgYXBwcm9wcmlhdGUuCiAgICAgIC0gc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzozMjo1MQogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBrZXljaGFuZ2UgbmVlZHMgYSB0ZW1wIGJ1ZmZlci4KICAgICAgLSBhIGZldyBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMDo0NQogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgYWNjZXB0cyBhIGtleSB3aGljaCBpcyB0b28gbG9uZyAoU0hBIGZvciBERVMpLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjIzOjAzCiAgICAtIChzbm1wX2FwaS5jKTogc25tcHYzX3NlbmRfcmVwb3J0KCkgcmVtb3ZlcyB0aGUgc2VjU3RhdGVSZWZlcmVuY2UKICAgICAgZnJvbSB0aGUgcGR1IGlzIHRoZXJlIGlzIG9uZS4gIEl0IHNob3VsZG4ndCBiZSB1c2VkIGZvciByZXBvcnRzLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjMxOjEyCiAgICAtIChkZW1vKTogZmluYWwgZml4ZXMgZm9yIGFsbCBjdXJyZW50IHRlc3RzIHRvIHdvcmsuCgpoYXJkYWtlciAyNyBOb3YgOTggMTU6MTU6MjUKICAgIC0gKGRlbW8pOgogICAgICAtIC1UOiBwYXVzZSBhZnRlciB0ZXN0IGNvbXBsZXRpb25zLgogICAgICAtICoqKiogNDIvNDIgdGVzdHMgcGFzc2VkCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MTUKICAgIC0gKHNubXBwYXNzLmMpOiBiZWdpbm5pbmdzIG9mIGEgc25tcCBwYXNzd29yZCBjaGFuZ2VyOgogICAgICAtIHN0b2xlIG1vc3QgY29kZSBmcm9tIHNubXBzZXQuYyBhbmQgZW5jb2RlX2tleWNoYW5nZS5jLgogICAgICAtIG5lZWQgdG8gZml4OiBtdXN0IHNwZWNpZnkgbW9zdCBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgKGllLAogICAgICAgIC5jb25mIGZpbGUgdG9rZW5zIGRvbid0IHdvcmsgaGVyZSkuCiAgICAgIC0gdmVyeSB1bmNsZWFuIGFuZCBhIHF1aWNrIGhhY2suCiAgICAgIC0gZGlmZmVycyBmcm9tIGVuY29kZV9rZXljaGFuZ2UsIGluIHRoYXQgaXQgYWN0dWFsbHkgcHJlZm9ybXMgdGhlIHNldC4KCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1NToyMwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcHBhc3MuYwoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU2OjQ3CiAgICAtICguY3ZzaWdub3JlKTogc25tcHBhc3MgYW5kIGVuY29kZV9rZXljaGFuZ2UKCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTowMgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIG1lcmdlIHdyaXRlXyBrZXlDaGFuZ2UgYW5kIG93bktleUNoYW5nZSBmdW5jdGlvbnMgaW50byBvbmUuICBTaW5jZQogICAgICAgIHRoZSB1c2VyIG5hbWUgaXMgbm90IHBhc3NlZCBpbiwgdGhlIGNhbGxpbmcgbW9kdWxlIHdpbGwgaGF2ZSB0bwogICAgICAgIGNoZWNrIGZvciBpdCB1bnRpbCB3ZSdyZSB3aWxsaW5nIHRvIGNoYW5nZSB0aGUgQVBJIG9yIHRoZSBWQUNNIGlzCiAgICAgICAgZml4ZWQgYW5kIHRoZSBvd25LZXlDaG5hZ2Ugb2JqZWN0cyBjYW4gYmUgb2Jzb2xldGVkLgoKaGFyZGFrZXIgMjggTm92IDk4IDExOjQxOjM2CiAgICAtIChzbm1wcGFzcy5jKTogLW86IHVzZSB0aGUgb3duS2V5Q2hhbmdlIG9iamVjdC4KCm1hcnogMjkgTm92IDk4IDE5OjMyOjIxCiAgICAgKGRlbW8pOiBmaXggdGltZSBzeW5jIHRlc3QgdG8gdGVzdCBmb3IgdGltZW91dCBhcyBleHBlY3RlZCB3aGVuIGFwcCBjbG9jayBpcyBzZXQgYWhlYWQKCm1hcnogMjkgTm92IDk4IDE5OjM0OjQxCiAgICAgLShzbm1wX2FwaS5jKTogbW92ZSBjb21tYW5kbGluZSBiYXNlZCBib290cy90aW1lIHNldHRpbmcgY29kZSBhZnRlciBlbmdpbmVJRCBkaXNjb3ZlcnkgaW4gY2FzZSBlbmdpbmVJRCB3YXMgbm90IHN1cHBsaWVkIG9uIGNvbW1hbmQgbGluZSBhcyB3ZWxsCgpoYXJkYWtlciAzMCBOb3YgOTggMjI6MDA6MjMKICAgIC0gKGRlbW8pOiBiZXR0ZXIgZG9jdW1lbnQgdGhlIHJlcXVpcmVkIC5jb25mIGZpbGUgcGllY2VzLgoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjEyOjEwCiAgICAtIChkZW1vKTogZW5hYmxlIC1DOiBhdXRvLWNvbmZpZ3VyZSB0aGUgYWdlbnQuCgp3YmFic29uICAxIERlYyA5OCAwNzo1Njo1NQogICAgRml4ZWQgYSBsaWJyYXJ5IHNlYXJjaCBvcmRlciBidWcgd2hpY2ggaGFkIC91c3IvbG9jYWwvc3NsL2xpYiBhbmQgL3Vzci9sb2NhbC9saWIKICAgIHNlYXJjaGVkIGJlZm9yZSAuLi9zbm1wbGliLiBUaGlzIGNhdXNlZCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgd2hlbiB0cnlpbmcgdG8KICAgIGxpbmsgc25tcGQgYW5kIHRoZSBhcHBsaWNhdGlvbnMuIFRvIGRvIHRoaXMgTE9DQUxfTElCUyB3YXMgY3JlYXRlZCBhbmQgLi4vc25tcGxpYgogICAgd2FzIHJlbW92ZWQgZnJvbSBMSUJTIGFuZCBwbGFjZWQgdGhlcmUuIFRoZW4gTE9DQUxfTElCUyB3YXMgYWRkZWQgYmVmb3JlCiAgICBMREZMQUdTIGluIHRoZSBsaW5rIGNvbW1hbmRzLiBhZ2VudC9NYWtlZmlsZS5pbiBhbmQgYXBwcy9NYWtlZmlsZS5pbiB3ZXJlIG1vZGlmaWVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NToyOAogICAgLSAodG9vbHMuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NDkKICAgIC0gKHVzbVVzZXIuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NTUKICAgIC0gKHNubXBwYXNzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKbWFyeiAgMiBEZWMgOTggMDg6MzI6MjkKICAgICAtKGRlbW8uYyk6IHRlc3QgIzM4IHdpbGwgc2hvdyB0aGUgNiBtZXNzYWdlIGV4Y2hhbmdlIHNpbmNlIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSBzaW11bGF0ZWQgYXV0aGVudGljIG9vdHMvdGltZSB3aGljaCBkZWZlYXRzIHRoZSBMQ0RfVElORV9TWU5DX09QVAoKaGFyZGFrZXIgIDIgRGVjIDk4IDE0OjI2OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiBhZnRlciBkZXRlY3Rpb24gb2Ygc25tcCB2ZXJzaW9uLCBlcnJvciBjb2RlcyB3ZXJlIHJldmVyc2VkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE4OjUzCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYWRkZWQgdjMgc3BlY2lmaWMgdG9rZW4gbm90ZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMTU6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wLmNvbmYuNS5kZWYpOiBjcmVhdGVkIGEgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE3OjAzOjI3CiAgICAtICguY3ZzaWdub3JlKTogc25tcC5jb25mLjUgaWdub3JlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzo0OAogICAgLSAoc25tcC5jb25mLjUuZGVmKTogbWliZGlycywgbWlicywgYW5kIG1pYmZpbGVzIGRvY3VtZW50ZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzg6MTIKICAgIC0gKGxjZF90aW1lLmMpOiBjb21tZW50IGNsYWlyaWZpY2F0aW9uLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjIyCiAgICAtIChtaWIuYyk6IHVubmVlZGVkIFhYWCByZW1vdmVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjQ3CiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSBza2lwIGFoZWFkIG9mIHNwYWNlIG9uIHJldHVybmVkIHBvaW50ZXIuCgpkcmVlZGVyICAzIERlYyA5OCAxODo0NDo0OQogICAgQ28tY2hlY2tpbiB3aXRoIG5ldyB2ZXJzaW9uIG9mIEtNVCAobG9jYXRlZCBpbiBub25leHBvcnQvS01ULXNubXApLgogICAga210X3JhbmRvbSgpIHNpZ25hdHVyZSBjaGFuZ2VkIGluIHNjX3JhbmRvbSgpLgogICAgU2Vjb25kIHZlcnNvbiB0ZXN0aW5nL2RlbW8gYXQgdGVzdGluZy9kZW1vMiogLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBmbGFnIGFuZCBkZWZpbmUgLS1lbmFibGUtdGVzdGluZy1jb2RlIC0+IFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIyOjU5CiAgICAtIChrZXl0b29scy5jKTogdXNlIFNOTVBfVEVTVElOR19DT0RFIGRlZiB0byBwcm90ZWN0IHNvbWUgc2VjdGlvbnMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjM6NDgKICAgIC0gKHNjYXBpLmMpOiB0ZXN0aW5nIERFQlVHUCBmb3IgcHJpbnRpbmcgb3V0IGtleXMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjY6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBwcm90ZWN0IHNlY3Rpb25zIHdpdGggU05NUF9URVNUSU5HX0NPREUuCiAgICAgIC0gYWxsb3cgKidzIGluIGZpZWxkcyBmb3IgZW5naW5lSURzIGZvciBrZXkgc2V0dGluZyAuY29uZiBlbnRyaWVzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjMyOjIwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gb25seSBtYWtlIHRpbWUvYm9vdHMgc2V0YWJsZSB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIGRlZmluZWQuCgpoYXJkYWtlciAgMyBEZWMgOTggMjM6MTc6MTcKICAgIC0gKGRlbW8pOiByZW1vdmVkLgoKbWFyeiAgNCBEZWMgOTggMDg6MDU6NTkKICAgICAtKHNubXBjbWQuMSk6IHVwZGF0ZSBtYW4gcGFnZSBmb3IgbmV3IFYzIHBhcnNlIGFyZ3MKCmhhcmRha2VyICA0IERlYyA5OCAxMTowMzoxNAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBwYXNzLmMsIHNubXB1c20uYyk6CiAgICAgIC0gZGVsZXRlIHNubXBwYXNzLgogICAgICAtIGNyZWF0ZSBmaXJzdCBwYXNzIHNubXB1c20uYy4KCmhhcmRha2VyICA0IERlYyA5OCAxMTowNDowOQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSAqIGZvciBlbmdpbmVJRCBmZWF0dXJlLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ1OjQzCiAgICAtIChVQ0QtREVNTy1NSUIudHh0KTogZGVtbyBtaWIgb2JqZWN0cy4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NjowOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24vcmVzZXJ2ZSB0aGUgZGVtbyBvYmplY3QgZ3JvdXAgaW4gYSBjb21tZW50LgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ5OjIxCiAgICAtICguY3ZzaWdub3JlKTogLmdkYiBzdHVmZgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjA0CiAgICAtICh1Y2REZW1vUHVibGljLmMsIHVjZERlbW9QdWJsaWMuaCk6CiAgICAgIC0gZXhhbXBsZXMvdWNkRGVtb1B1YmxpYyBtb2R1bGU6ICBzaW1wbGUgb2JqZWN0cyBmb3IgZG9pbmcgZGVtb3MsCiAgICAgICAgaW5jbHVkaW5nIHJlbW90ZSByZXNldHRpbmcgb2Yga2V5cyB0byBhIGtub3duIHBhc3N3b3JkcyBmb3IgYSBsaXN0CiAgICAgICAgb2YgdXNlcnMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MjgKICAgIC0gKHVjZERlbW9QdWJsaWMuY21kcyk6IGNvbW1hbmRzIHRvIHJ1biB0byBzZXQgdXAgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjM4CiAgICAtICh1Y2REZW1vUHVibGljLmNvbmYpOiBjb25maWd1cmF0aW9uIGZpbGUgbGluZXMgbmVlZGVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxODozODowNQogICAgLSAodmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQpOiA0LjAucHJlMSB0YWcKCmRyZWVkZXIgIDUgRGVjIDk4IDE2OjUyOjQ5CiAgICBFeHRlbmRlZCBkZW1vMiBpbnRvIGRlbW8ucmVtb3RlIHRvIGFsbG93IHRlc3RpbmcgYmV0d2VlbiA8aGVyZT4gYW5kCiAgICB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCm1hcnogMTMgRGVjIDk4IDE0OjU3OjAyCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogYWRkIHN1cHBvcnQgZm9yIG1zZ0lEIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHJlcWlkIGFuZCB3aGljaCBpbmNyZW1lbnRzIHdpdGggZWFjaCByZXRyeS4gTm90ZTogbGF0ZSBSZXNwb25zZXMgd2lsbCBiZSBkcm9wcGVkIGlmIHRoZXkgYXJyaXZlIGFmdGVyIHRpbWVvdXQgLSB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIHYxIGJlaGF2aW91ciB3aGVyZSBhIGxhdGUgUmVzcG9uc2UgdG8gdGhlIGluaXRpYWwgdHJ5IHdpbGwgYmUgYWNjZXB0ZWQgdXAgdG8gdGhlIHRpbWUgd2hlcmUgdGhlIGxhc3QgcmV0cnkgdGltZXMgb3V0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6MDIKICAgIC0gKG1pYjJjKTogbWlub3IgdXBkYXRlIChuZWVkcyBtb3JlKSBmb3IgbmV3ZXIgc25tcCBwZXJsIG1vZC4KCmhhcmRha2VyIDEzIERlYyA5OCAxODozOTo0NAogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIuYXV0by5pbml0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NDE6MTEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6IHJlbW92ZWQgdW5uZWVkZWQgbGludXggaWZkZWYuCgpoYXJkYWtlciAxNyBEZWMgOTggMTU6NTk6MTAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiB3cmFwIGNvbmZpZyBsaW5lIHByaW50J3MgaW4gU05NUF9URVNUSU5HX0NPREUgY2hlY2tzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIxOjU1OjA0CiAgICAtIChqdXN0IGFib3V0IGFsbCBmaWxlcyk6IG1lcmdlIG9mIFYzLWIxIGNoYW5nZXMgaW50byBWMy1iMiBicmFuY2guCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mjc6NTQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHVzbVVzZXIuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHJlYWRfY29uZmlnLmgsIHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHYzLmMsIHRvb2xzLmgpOgogICAgICAtIGZpbmFsIGNoYW5nZXM/IHRvIFYzLWIyIG1lcmdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI5OjUyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSB0aGF0IDI4IGVycm9ycyBmcm9tIHdoaXRlc3BhY2UgY2hhbmdlcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMjozNzowOAogICAgLSAoc25tcGQuYyk6IGNhbGwgaW5pdF9zbm1wdjMgYmVmb3JlIC1IIHVzYWdlIGluZm8uCgpoYXJkYWtlciAxMyBEZWMgOTggMTA6MzM6NDUKICAgIC0gKCopOiBtZXJnZTEgdG8gVjMtYjMuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NTY6MTgKICAgIC0gKCopOiBtZXJnZTIgdG8gVjMtYjMuCgpkcmVlZGVyIDE3IERlYyA5OCAwODowNTowNAogICAgQ3JlYXR1cmUgY29tZm9ydDogL2V0YyBzY3JpcHQgdG8gKHJlKXN0YXJ0IGFuZCBzdG9wIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgIGFuZCBrZWVwIChjb21wcmVzc2VkKSBjb3BpZXMgb2YgcHJldmlvdXMgbG9nZmlsZXMuICBJbnRlbmRlZCB0byBiZSB1bml2ZXJzYWwKICAgIHRvIExpbnV4LCBTb2xhcmlzLCBGcmVlQlNELCAuLi4gLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjM2OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IGlmIEtNVCBpc24ndCBhdmFpbGFibGUuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NDk6MzgKICAgIC0gKGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jLAogICAgICBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgdG9vbHMuYyk6CiAgICAgIC0gaW50ZXJuYWwgTUQ1IHN1cHBvcnQgZG9uZS4KICAgICAgICAtIHRlc3RlZCB3aXRoIGFuZCB3aXRob3V0IGttdCB0byBvcHBvc2l0ZSBhbmQgc2FtZSBzaWRlIGFwcHMvYWdlbnRzLgogICAgICAgIC0gdGVzdGVkIGFnYWluc3Qgb2xkZXIgNC4wLnByZTEgYWdlbnQgb24gYmFuZGl0IGFzIHdlbGwuCiAgICAgICAgLSBhbGwgYnV0IG9uZSB0ZXN0aW5nLyogdGVzdCBwYXNzZXMgKHdoaWNoIHdhcyBmYWlsaW5nIGJlZm9yZSBhbnl3YXkpLgogICAgICAgIC0gdGhlIG9sZGVyIGRlbW8gc2NyaXB0IHBhc3NlcyBhcyB3ZWxsLgogICAgICAtIE1vZGlmaWVkIG1hbnkgb3RoZXIgcm91dGluZXMuICBFdmVyeXRoaW5nIHNob3VsZCB1c2UgU0NBUEkgbm93IGFuZAogICAgICAgIEtNVCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGRpcmVjdGx5IG91dHNpZGUgdGhlIHNjYXBpLmMgYW5kCiAgICAgICAga2V5dG9vbHMuYyBmaWxlcy4KICAgICAgICAtIG5ldyBzY2FwaSByb3V0aW5lOiAgc2NfaGFzaCgpLgogICAgICAtIENvdWxkLCBhcyBhbHdheXMsIHVzZSBhIGJpdCBtb3JlIGNsZWFuIHVwLCBidXQgSSBuZWVkZWQgdG8gY2hlY2sKICAgICAgICBzb21ldGhpbmcgaW4gdGhhdCB3b3JrZWQgYmVmb3JlIEkgYnJlYWsgaXQgYWdhaW4gKGFoZW0pLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjUzOjEwCiAgICAtIChzbm1wZ2V0LmMsIHNubXB1c20uYyk6IHVubmVlZGVkIEtNVCBpbmNsdWRlcyByZW1vdmVkLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU0OjM4CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBzdXJyb3VuZCBhIGZldyBLTVQgc3BlY2lmaWMgaXRlbXMgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU2OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiByZW1vdmUgdW5uZWVkZWQgS01UIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQwOjEyCiAgICAtIChrZXl0b29scy5jKTogZGVjb2RlX2tleWNoYW5nZSgpIHdhc24ndCBzZXR0aW5nIHRoZSByZXR1cm5lZCBidWZmZXIgbGVuZ3RoLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQzOjUwCiAgICAtIChzbm1wX2FwaS5jKTogREVCVUdQIG9mIHByb2JlZCBlbmdpbmVJRCBwcmludGVkIDAwJ3MgYXMgMCdzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjA5OjM4CiAgICAtIChzbm1wX2FnZW50LmMsIHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgsIHVzbVVzZXIuaCwKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQpOgogICAgICAtIHVwZGF0ZWQgVVNNIG1pYiwgaW5jbHVkaW5nIHRoZSBtb3ZlIGZyb20gc25tcE1vZHVsZXMuMTIgdG8gLjE1LgogICAgICAtIG1ha2UgcmVwb3J0cyBnZW5lcmF0ZWQgaW5jbHVkZSB0aGUgLjAgc3VmZml4IGZvciB0aGUgaW5zdGFuY2Ugc3BlY2lmaWVyLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjEwOjI4CiAgICAtICh0b29scy5jKTogd3JhcCBkdW1wX2VuZ2luZUlEIGluICNpZmRlZiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxNzoyNQogICAgLSAobGNkX3RpbWUuYyk6IHdyYXAgZHVtcF9ldGltZWxpc3QoKSBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MjA6MzEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gZG9uJ3QgdXNlIGR1bXBfc25tcEVuZ2luZUlEKCkgdW5sZXNzIHRlc3RpbmcuCiAgICAgIC0gTm90ZTogdGhpcyB1dGlsaXR5IGlzIG5vdCByZWFsbHkgbmVlZGVkIGFueW1vcmUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjI6MTI6MzIKICAgIC0gKFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KTogdHlwbyAoY3V0IGFuZCBwYXN0ZSBtaXNzZWQgYSBsaW5lKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTowNzozMwogICAgLSAoc25tcHVzbS5jKTogbXNnU2VjdXJpdHlQYXJhbXMgc2hvdWxkIGNvbnRhaW4gdGhlICpzYWx0Kiwgbm90IHRoZSBJViwKICAgICAgYXMgZGVmaW5lZCBieSB0aGUgVVNNIGRvY3VtZW50LCBzZWN0aW9uIDguMS4xLjEgKGFuZCBjb21tb24gc2Vuc2UpLgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIxOjQ3OjQ0CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBTZW5kIG9ubHkgYXV0aE5vUHJpdiByZXBvcnRzIGZvciBub3RJblRpbWVXaW5kb3cgcmVwb3J0cy4KICAgICAgLSByZXBvcnQgbGVuZ3RoIGNoZWNrIGluY3JlYXNlZCBieSBvbmUgdG8gYWNjb21vZGF0ZSBmb3IgdGhlIC4wIHN1ZmZpeC4KCmhhcmRha2VyIDIzIERlYyA5OCAyMjowNjoyNQogICAgLSAoc25tcHVzbS5jKTogYWxsb3cgZ2VuZXJhdGVfb3V0X21zZygpIHRvIHVzZSB1bmtub3duIHNlY3VyaXR5IG5hbWVzCiAgICAgIGZvciBzZWNMZXZlbCA9IG5vQXV0aE5vUHJpdi4KICAgICAgLSB0aGlzIGlzIHJlcXVpcmVkIHNpbmNlIHVua25vd25Vc2VyIHJlcG9ydHMgbmVlZCB0byBnbyBvdXQgd2l0aCB0aGUKICAgICAgICBzYW1lIHVzZXIgbmFtZSBhcyB0aGUgYmFkIHJlcXVlc3QgdGhhdCBjYW1lIGluLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAxOjI0CiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6Mjg6MzEKICAgIC0gKGNvbmZpZyopOiBkZWZpbmUgdV9pbnR7OCwxNiwzMn1fdCBmb3IgS01UIGhlYWRlcnMuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTU6MzkKICAgIC0gKHNubXB1c20uYyk6IFVTTSBvaWQncyB3ZXJlIHdyb25nCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTg6MTkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTIgKQoKaGFyZGFrZXIgIDYgSmFuIDk5IDA3OjQ2OjAyCiAgICAtIChzbm1wdXNtLmMpOiB1c21fc2V0X3NhbHQoKSB3YXMgdXNpbmcgYSBob3N0IHNwZWNpZmljIGJ5dGUgb3JkZXJpbmcKICAgICAgZm9yIGdlbmVyYXRpbmcgdGhlIHNhbHQgZnJvbSB0aGUgZW5pZ2luZUJvb3RzIHZhbHVlIGFuZCBmcm9tIHRoZQogICAgICBhcmJpdHJhcnkgaW50ZWdlci4gIFRoaXMgdGVjaG5pY2FsbHkgc2hvdWxkbid0IG1hdHRlciwgYnV0IHNpbmNlCiAgICAgIHdlJ3JlIHNob290aW5nIHRvIGJlIGEgcmVmZXJlbmNlIHBsYXRmb3JtLi4uCgpoYXJkYWtlciAxOSBKYW4gOTkgMTk6MjA6MDcKICAgIC0gKElTU1VFUyk6IG5lZWQgcmFuZG9tIGludCBmb3IgSVYuCgp3YmFic29uIDI2IEphbiA5OSAwNTo1MjoxOQogICAgIENoYW5nZWQgTUlOKCkgbWFjcm8gdG8gU05NUF9NSU4oKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHkKICAgICBkZWZpbmUgdGhhdCBpbiB0b29scy5oLi4uIFRoaXMgd2FzIG5lZWRlZCB0byBhbGxvdyBzdWNjZXNzZnVsCiAgICAgbGlua2FnZSBpbiBTb2xhcmlzIDIuNgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjM3OjU2CiAgICAtIChTTk1QLVRBUkdFVC1NSUIudHh0KTogdGFyZ2V0IG1pYiB3YXMgaW1wcm9wZXJseSBsb2NhdGVkIGF0IC4xNSBub3QgLjEyLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjUxOjEyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFjY2VwdCBzZWN1cml0eSBsZXZlbCBhYmJyZXZpYXRpb25zLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIxOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGNyZWF0ZSAtLXdpdGgtcGVyc2lzdGVudC1kaXJlY3RvcnkgY29uZmlndXJlIHNjcmlwdCBmbGFnLgoKZHJlZWRlciAyOSBKYW4gOTkgMTU6MjA6NTEKICAgIFJlcGFpcmVkIHRlc3RzIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgY29kZWJhc2UuCgptYXJ6IDMxIEphbiA5OSAxMzo1NzoxMwogICAgIC0oc25tcF9hcGkuYyk6IHplcm8gbGVuZ2h0IHVzZXIgbmFtZSBmb3IgZW5pbmVJRCBkaXNjb3ZlcnkKCmRyZWVkZXIgIDIgRmViIDk5IDE0OjA0OjQ4CiAgICBSZXNvbHZlIE9JRCBjb2xsaXNpb25zOiAxKSBiZXR3ZWVuIGRlbW8gTUlCIGFuZCBVQ0QgZW50ZXJwcmlzZSBNSUI7IDIpCiAgICBpbnNpZGUgZGVtbyBNSUIuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDQ6MzgKICAgIC0gKHNubXB0cmFwZC5jKTogc3VwcG9ydCAtSC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxMzo0MQogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWxsb3cgZW52IHZhcmlhYmxlIFNOTVBfUEVSU0lTVEVOVF9GSUxFIHRvIG92ZXJyaWRlIHBlcnNpc3RlbnQKICAgICAgICBzdG9yYWdlIGxvY2FjdGlvbi4KICAgICAgLSBtZXJnZSBpbiBNaWtlJ3MgY2hhbmdlcyB0byBjb3B5X3dvcmQoKS4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxNDo0NgogICAgLSAodGFyZ2V0LmgpOiBtZXJnZSBtaWtlJ3MgdGFyZ2V0IG1pYmdyb3VwIGludG8gdGhlIDQuMCBsaW5lLgoKbWFyeiAgNiBGZWIgOTkgMTU6MDQ6MTMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9wYXJzZV9hcmdzLmMsc25tcHYzLltjaF0sc25tcHVzbS5jLHNubXBjbWQuMSk6IGFsbG93IGNvbnRleHRFbmdpbmVJRCBhbmQgc2VjdXJpdHlFbmdpbmVJRCB0byBiZSBkaWZmZXJlbnQsIGFkZGVkIC1FLy1lIHRvIHBhcnNlX2FyZ3MsIGZpeGVkIGVuZ2luZUlEIGRpc2NvdmVyeSB3aGljaCBicm9rZSBhZnRlciBuYW1lIHVzZWQgaW4gcHJvYmUgc3dpdGNoZWQgdG8gemVybyBsZW5ndGggc3RyaW5nCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDM6MTUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAtV2FsbCBmaXguCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDU6MTcKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGEgZmV3IC1XYWxsIGZpeGVzOgogICAgICAtIHByb3RveXBlIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKHZvaWQpLgogICAgICAtIHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZXMuCiAgICAgIC0gZG9uJ3QgY29tcGlsZSBpbiBzZXRfZW5naW5lQm9vdHNBbmRUaW1lIGludGVyZmFjZSBmdW5jdGlvbiBpZiBub3QgbmVlZGVkLgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgc25tcGQuYywgc25tcGQuaCwgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGltcGxlbWVudCBhZ2VudCB1c2luZyBsaWJyYXJpZXMgcGFyc2luZyBhbmQgaGFuZGxpbmcgcm91dGluZXMKICAgICAgICBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LgoKaGFyZGFrZXIgIDggRmViIDk5IDAwOjExOjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHV0aWxfZnVuY3MuYywgdWNkRGVtb1B1YmxpYy5jLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgc25tcEVuZ2luZS5jLCB1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLAogICAgICBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBtb2RpZmllZCB0byB3b3JrIHdpdGggbmV3IHdyaXRlIHZhcmlhYmxlIGFwaS4KICAgICAgLSBmaXhlZCBhIG1pc3NpbmcgZmVhdHVyZSBpbiBEYXZlJ3MgY29kZTogY3JlYXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjI6MTMKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkuCgp3YmFic29uICA4IEZlYiA5OSAxMzozNDozOQogICAgQ2hhbmdlZCB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIGZvciBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzYW5kIFRpbWUKICAgIGZyb20gaW50IGYoKTsgdG8gdm9pZCBmKCk7IHRvIG1hdGNoIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGkKICAgIHNubXB2My5jIC4KCndiYWJzb24gIDggRmViIDk5IDEzOjQwOjI3CiAgICBmaXhlZCBjYXN0aW5nIGVycm9yLi4uICoobG9uZykgY2hhbmdlZCB0byAqKGxvbmcgKikKCmRyZWVkZXIgMTcgRmViIDk5IDE2OjIzOjQzCiAgICBSYW5kb20gSVY7IGZpeGVkIHNhbHQgY29uc3RydWN0aW9uLgogICAgRml4ZWQgTlVMTCBkZXJlZmVyZW5jZSBzaG93LXN0b3BwZXIgaW50cm9kdWNlZCBieSBtZXJnZSBvZiBELiBTaGVsZCdzIGNoYW5nZXMuCiAgICBjb25maWd1cmUuaW4rTWFrZWZpbGUuaW4gYXV0b21hdGljYWxseSBjcmVhdGUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkuCiAgICBNaW5vciBjb21waWxlIHdhcm5pbmdzLCBvdXQtb2YtZGF0ZSBjb21tZW50cyBmaXhlZCwgY2xhcmlmaWVkIGRlYnVnIG91dG91dCwKICAgIAljbGFyaWZpZWQgcHJlLWNvbXBpbGUgY29kZSBpbiBzY2FwaS5jLgogICAgRGlzY292ZXJlZCB3aGVyZSBwZHUtPnNlY3VyaXR5RW5naW5lSUQgd2FzIGJlaW5nIG11bHRpcGx5IGZyZWUnZCwgYnV0IG5vdAogICAgCXRoZSAqZmlyc3QqIHRpbWUuLi4gKG9wZW4gcHJvYmxlbSkKCmhhcmRha2VyIDE3IEZlYiA5OSAyMDo1OToyOQogICAgLSAoc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjA3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIGZpeCBnZXRidWxrcy4KICAgICAgLSBmaXggc25tcHNldCdzIHRvIGFsbG93IGNyZWF0aW9uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjIyCiAgICAtIChkbG1vZF9taWIuYyk6IGRvbid0IGRlZmluZSBNQVRDSF9TVUNDRUVERUQgYXQgYWxsLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjM2CiAgICAtICh1dGlsX2Z1bmNzLmMpOiAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDo1OAogICAgLSAocm91dGVfd3JpdGUuYywgc25tcF9taWIuYywgc3lzdGVtLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAxOjM2CiAgICAtICh1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLCBwcm9jLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjA1OjI4CiAgICAtIChrZXl0b29scy5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHNubXB1c20uYywgdHJhbnNmb3JtX29pZHMuaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6Mjg6NTcKICAgIC0gKGtleXRvb2xzLmMpOiBvcHBzLiAgRGVsZXRlZCBhIHZhcmlhYmxlIEkgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MzA6MTEKICAgIC0gKHNubXBfYWdlbnQuYyk6IFlvdSBjYW4ndCBhc3NpZ24gYSBOVUxMIHRvIGEgdW5pb24sIG9ubHkgdG8gYSBzdWItdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTo0NToyMwogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSByZWZlcmVuY2VzIHRvIHN1YmRpcnMgc2luY2UgdGhlcmUgYXJlCiAgICAgIG5vbmUgYW5kIGl0IGJyZWFrcyBzaW1wbGllciB2ZXJzaW9ucyBvZiBzaCB3aGVuIG5vIGFyZ3VtZW50cyB0bwogICAgICBmb3JlYWNoIGV4aXN0LgoKbWFyeiAyNCBGZWIgOTkgMDk6MzE6MjkKICAgICAtKHNubXBsaWIvc25tcF9hcGkuW2NoXSxzbm1wbGliL3NubXAuaCxhZ2VudC9zbm1wZC5oLGFnZW50L3NubXBfYWdlbnQuaCk6IG1vdmVkIFJlcG9ydHMgaW50byBzbm1wbGliLCBjb25mb3JtIHRvIHNwZWMgb24gY3JpdGVycmlhIGZvciBzZW5kaW5nIFJlcG9ydHMsIGxheSBncm91bmQgd29yayBmb3IgbWF4TXNnU2l6ZSwgZGVmYXVsdCBjb250ZXh0RW5naW5lSUQgdG8gc2VjdXJpdHlFbmdpbmVJRCB3aGVuIG5vdCBleHBsaWNpdGx5IHNldCBpdHNlbGYKCm1hcnogMjUgRmViIDk5IDE0OjA0OjA1CiAgICAgLShzbm1wX2FwaS5jLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgaW4gc25tcF9jbG9uZV9wZHUgKG5vdCBjbG9uaW5nIHNlY3VyaXR5RW5pZ2luZUlEKSwgdW5jb21tZW50ZWQgX3NubXBfZnJlZQoKd2JhYnNvbiAgOSBNYXIgOTkgMDg6NTQ6MTIKICAgIEZpcnN0IGN1dCBhdCBzbm1wdHJhcGQgbW9kaWZpY2F0aW9uLiBSZWNlaXZlcyBhdXRoUHJpdiBhbmQgbG93ZXIgc2VjdXJpdHkKICAgIGxldmVsIHRyYXBzLgoKd2JhYnNvbiAgOSBNYXIgOTkgMDk6MDI6MDcKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IHRvIGdldCBzZWN1cml0eU5hbWUgZnJvbSBQRFUgcmF0aGVyIHRoYW4gc2Vzc2lvbgogICAgYXMgc2Vzc2lvbiB3YXMgbm90IHlldCBpbml0aWFsaXplZCBkdXJpbmcgZW5naW5lIElEIGRpc2NvdmVyeSBhbmQgdGhlIE5VTEwKICAgIHZhbHVlIGNhdXNlZCBhIHNlZ21lbnRhaW9uIGZhdWx0LgoKbWFyeiAxMCBNYXIgOTkgMDg6MDQ6NDcKICAgICAtKHNubXBfYXBpLmMpOiBmaXggZW5naW5lSWQgZGlzY292ZXJ5IHdoZW4gY29udGV4dCBlbmdpbmVJRCBpcyBzcGVjaWZpZWQgKG5lZWRlZCB0byBkaXNjb3ZlciBwcm94eSBlbmdpbmVJRCBpZiBhbGwgeW91IGtub3cgaXMgcHJveGllZCBhZ2VudCdzIGVuZ2luZUlEKQoKd2JhYnNvbiAxNyBNYXIgOTkgMTM6Mjc6NTkKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IGFib3V0IEJ1aWxkaW5nIHRoZSBTTk1QIG1lc3NhZ2Ugc28gdGhhdAogICAgZXZlbiBpZiBzZWN1cml0eU5hbWUgaXMgdW5pbml0aWFsaXplZCAoTlVMTCksIHByb2dyYW0gd2lsbCBjb250aW51ZQogICAgd2l0aG91dCBjb3JlIGR1bXBpbmcuIExhdGVyLCBzb21lb25lIHNob3VsZCBzZWUgYWJvdXQgZml4aW5nIHRoZSBsb2dpYwogICAgc28gdGhhdCBzZWN1cml0eU5hbWUgd2lsbCBub3QgYmUgYSBOVUxMIHBvaW50ZXIgaGVyZSwgb3IKICAgIHJlcGFpciB0aGUgZGVidWdnaW5nIHNjaGVtZSwgaWYgdGhhdCdzIHZhbGlkLgoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMwOjEyCiAgICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMyOjQ0CiAgICAtICh0ZXN0aW5nL01ha2VmaWxlLmluKTogcmVtb3ZlIHN1YmRpcnMuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MDM6MDQKICAgIC0gKHZhY21fdmFycy5oKTogcmVsb2NhdGUgVkFDTSBub2RlIHdoZXJlIGl0IHNob3VsZCBiZSAoMTMtPjE2KS4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxNjozOAogICAgLSAocmVhZF9jb25maWcuYyk6IHNraXAgc3BhY2UgYWZ0ZXIgY29weWluZyBhIHdvcmQgaW4gY29weV93b3JkKCkKCmhhcmRha2VyIDMwIE1hciA5OSAwOTo1MToyMQogICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkZWQgaGVscCBzdHJpbmdzIHRvIGNvbmYgcGFyc2Vycy4KCmhhcmRha2VyICA2IEFwciA5OSAxNToyNzoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgYWNjaWRlbnRpYWxseSBjb21pdHRlZCBjb25mbGljdC4KCmhhcmRha2VyIDE1IEFwciA5OSAwNzoyNTo0OAogICAgLSAoa2V5dG9vbHMuYyk6IEFsbG93IHNob3J0IHBhc3NwaHJhc2VzIHdoZW4gU05NUF9URVNUSU5HX0NPREUgaXMgc2V0LgoKbWFyeiAxOSBBcHIgOTkgMTQ6MTQ6MjMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9jbGllbnQuYyk6IGZpeGVkIGJ1ZyB3aGVyZSBtc2dJZCBhbmQgcmVxSWQgd2VyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gcmVzcG9uc2VzIGlmIG9yZ2luYWwgcmVxdWVzdCBoYXBwZW5lZCB0byBoYXZlIG1zZ0lkIG9yIHJlcUlkIGVxdWFsIHRvIGFyYml0cmFyeSBkZWZhdWx0KDApCgptYXJ6IDE5IE1heSA5OSAwNzoxNDo0NAogICAgCiAgICBhZGRpbmcgdjMgcGFja2V0IGdlbmVyYXRvciBwZXJsNSBzY3JpcHQgKHJlcXVpcmVzIENvbnZlcnQ6OkJFUikKICAgIC4KCm1hcnogMTkgTWF5IDk5IDA3OjE2OjQxCiAgICAKICAgIGV4YW1wbGUgZGF0YSBmaWxlIHRvIGdlbmVyYXRlIGEgVjMgcGFja2V0IHdpdGggcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODowMjoyNAogICAgUkVBRE1FIGZvciBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDA4OjQ0OjAzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDE5IE1heSA5OSAwODo0NToxNQogICAgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAxMDozMToxNAogICAgcmVtb3ZlIGxhc3Qgc3VibWl0CgptYXJ6IDIwIE1heSA5OSAxMjozNTowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyMyBNYXkgOTkgMDg6MDQ6MDMKICAgIGhhbmRsZSBzZXFfb2YgdG8gYWxsb3cgYXJiaXRyYXJ5IG51bWJlciBvZiB2YXJiaW5kcywgYnVnIGZpeGVzLCBzZW5kL3JlY2VpdmUsIHByZXR0eSBwcmludCBkZWJ1Z2dpbmcgcGFja2V0IGR1bXAKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxODo0MgogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MjA6MDQKICAgIC0gKHZtc3RhdC5jKTogaW5jbHVkZSBsaW1pdHMuaC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDozMgogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODo0NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjExCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MzM6MDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMpOgogICAgICBQYXRjaCBmcm9tIERlcmVrIEouIEJhbGxpbmc6CiAgICAgIC0gZnJlZWJzZDIgZml4ZXMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTI6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5UCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTQ6MjIKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvcXVldWUuaC4KCm1hcnogIDEgSnVuIDk5IDA3OjI1OjU1CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogYWRkZWQgYXV0aGVudGljYXRpb24gc3VwcG9ydCAobWQ1IGFuZCBzaGExKQoKZGF2ZXMgIDEgSnVuIDk5IDA4OjM3OjQ3CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRGV0ZXJtaW5lIHR5cGUgb2YgUlBNIHBhY2thZ2VzCgptYXJ6IDE2IEp1biA5OSAwOTozMDo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGVuY3J5cHRpb24vcHJpdmFjdCBzdXBwb3J0IChkZXMtY2JjKQoKbWFyeiAxNiBKdW4gOTkgMTI6NTA6MjkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uCgptYXJ6IDIzIEp1biA5OSAwODoxODo1OQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGxhdGVzdCBhdHRlbXB0IHRvIGZpeCBwcml2YWN5L2VuY3J5cHRpb24od29ya2luZyB3aXRoIENyeXB0OjpERVMvQ3J5cHQ6OkNCQytwYXRjaCkKCmhhcmRha2VyICA2IEFwciA5OSAxNToxMzo0MAogICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KCmhhcmRha2VyICA2IEFwciA5OSAxNTozODo0NQogICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KCm1zbGlmY2FrICA2IEFwciA5OSAyMToyNDoyMgogICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTM6NTkKICAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTQ6NDMKICAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAoKbXNsaWZjYWsgIDcgQXByIDk5IDA2OjE3OjI4CiAgICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQyOjEwCiAgICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgIG5ld2VyIG1vZGVsLgogICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQ4OjA3CiAgICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KCmhhcmRha2VyICA3IEFwciA5OSAxMToyODowMgogICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KCm1zbGlmY2FrICA3IEFwciA5OSAxMjowMDoyMAogICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KCm1zbGlmY2FrICA3IEFwciA5OSAxMjoxNzoyMwogICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKCm1zbGlmY2FrICA3IEFwciA5OSAxNTowMDozOQogICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE0OjMxCiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTU6MzkKICAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTY6NDUKICAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjI1OjA5CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MTk6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjIwOjAwCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozMjoyMwogICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzY6MzEKICAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTQ6NDgKICAgIC0gKGZyZWVic2QuaCwgZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZWJzZCB1dG1wIGNsZWFudXBzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU2OjUzCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTc6MjQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjAyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgLVAuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MjcKICAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMDo0OQogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMzoyOQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNToyOTo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6MzA6MzQKICAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgoKaGFyZGFrZXIgMTQgQXByIDk5IDE1OjUyOjM1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNjozMTo1NQogICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKCm1zbGlmY2FrIDE0IEFwciA5OSAxNjo1NjozNwogICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjMwOjI5CiAgICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjU0OjIyCiAgICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAoKbXNsaWZjYWsgMTYgQXByIDk5IDA4OjMzOjE2CiAgICAtIChtaWIuYykgIi1tIiBvciBNSUJTIDogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTA6MDYKICAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMTo0OAogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNToxNAogICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTY6MTYKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzowNgogICAgLSAoTkVXUyk6IHVwZGF0ZWQKCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzo0MQogICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjM0OjQ5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKCm1zbGlmY2FrIDE4IEFwciA5OSAwNjo1NDoyNgogICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dCA6IDkgLT4gMTAKCmhhcmRha2VyIDE5IEFwciA5OSAyMTowMToxNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjA5OjI3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxMjoxNwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDIwIEFwciA5OSAxMToyODoxNAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTU6MzE6MzUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MDQ6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgICAtIGNuYW1lIC0+IE5BTUUKCmhhcmRha2VyIDIwIEFwciA5OSAxNjoxMDo0NAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgoKaGFyZGFrZXIgMjAgQXByIDk5IDIxOjM4OjQyCiAgICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTQ6NDQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTY6MDMKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAxMDo1MTozMAogICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KCm1zbGlmY2FrIDI2IEFwciA5OSAwOToyMTowNgogICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgoKbmJhIDI2IEFwciA5OSAxMToyMToxMAogICAgCiAgICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQoKbmJhIDI2IEFwciA5OSAxMTo0ODo1NwogICAgCiAgICAKICAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwoKbmJhIDI2IEFwciA5OSAxMjowMzo0NwogICAgCiAgICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgICAJc3RyaW5ncwoKbmJhIDI2IEFwciA5OSAxMjowOTozNQogICAgCiAgICAKICAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCgpuYmEgMjYgQXByIDk5IDEyOjEzOjUwCiAgICAKICAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAgCWZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI2IEFwciA5OSAxMjozNzowOQogICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCgptc2xpZmNhayAyNyBBcHIgOTkgMDk6NTE6MzUKICAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6Mzk6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MDc6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MTM6MzEKICAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KCmhhcmRha2VyICAzIE1heSA5OSAxMjo1ODoxOQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCgpuYmEgIDMgTWF5IDk5IDE1OjQwOjExCiAgICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQoKbmJhICA0IE1heSA5OSAwMDo0Nzo0NAogICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCm5iYSAgNCBNYXkgOTkgMDA6NTE6MTYKICAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwoKaGFyZGFrZXIgIDQgTWF5IDk5IDExOjA4OjU1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgoKbXNsaWZjYWsgIDYgTWF5IDk5IDA5OjIwOjMwCiAgICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCgpuYmEgMTAgTWF5IDk5IDE0OjQ3OjIyCiAgICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCgpuYmEgMTAgTWF5IDk5IDE0OjQ5OjQ5CiAgICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAgCWluc2lkZSBWMSBzZXNzaW9uLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAyOjQ4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAzOjI1CiAgICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MTE6NDAKICAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo1MzoyMwogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyMjoxNgogICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTI6MTkKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA5OjE4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCm1zbGlmY2FrIDE0IE1heSA5OSAwNjo1NDo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCgptc2xpZmNhayAxNCBNYXkgOTkgMDk6NDc6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDEzOjU5OjM3CiAgICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDo1MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgpkYXZlcyAxNyBNYXkgOTkgMDQ6MzQ6NTUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDQ6Mzg6MDAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA3OjE4OjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQoKZGF2ZXMgMTggTWF5IDk5IDA2OjI2OjE2CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCgptc2xpZmNhayAxOCBNYXkgOTkgMDk6MDE6NDYKICAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCgpkYXZlcyAxOCBNYXkgOTkgMDk6MjM6NTAKICAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKCmRhdmVzIDE5IE1heSA5OSAwMjozMzowNwogICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCgpkYXZlcyAxOSBNYXkgOTkgMDU6MTE6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMjo1NQogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NTA6MTIKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmRhdmVzIDIwIE1heSA5OSAwMzo0NjoyNAogICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKCm1zbGlmY2FrIDIxIE1heSA5OSAwNToyNDoyMwogICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgoKZGF2ZXMgMjEgTWF5IDk5IDA1OjU0OjIyCiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCgpoYXJkYWtlciAyMSBNYXkgOTkgMTE6MTA6NDQKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCgptc2xpZmNhayAyMSBNYXkgOTkgMTU6Mjk6NDYKICAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgoKbXNsaWZjYWsgMjQgTWF5IDk5IDA1OjM2OjEzCiAgICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTk6MDMKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjU1CiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjA0CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MzIKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NjowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6NDA6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbXNsaWZjYWsgMjcgTWF5IDk5IDA1OjE2OjI1CiAgICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjAzCiAgICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MTUKICAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjA2CiAgICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MzIKICAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCgpkYXZlcyAyOCBNYXkgOTkgMDc6MDI6MDEKICAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCgpkYXZlcyAyOCBNYXkgOTkgMDg6MTQ6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKCmRhdmVzIDI4IE1heSA5OSAwODo1NzoxOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAoKZGF2ZXMgMjggTWF5IDk5IDA5OjEyOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCgptc2xpZmNhayAyOCBNYXkgOTkgMDk6MjQ6NTYKICAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKCmhhcmRha2VyIDI4IE1heSA5OSAxNjoxNzoxMwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KCmhhcmRha2VyIDI4IE1heSA5OSAxNjo0NDo0MgogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgIGxpYnJhcnkuCgpkYXZlcyAgMSBKdW4gOTkgMDI6MTc6MjcKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwoKZGF2ZXMgIDEgSnVuIDk5IDAyOjMyOjEzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCgpkYXZlcyAgMSBKdW4gOTkgMDc6MzA6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwoKaGFyZGFrZXIgIDEgSnVuIDk5IDE3OjIxOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjUxOjEzCiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDQ6MDYKICAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDQ6MjEKICAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKbXNsaWZjYWsgIDggSnVuIDk5IDA3OjQzOjEwCiAgICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KCmRhdmVzICA4IEp1biA5OSAwODo0Mzo1OQogICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oCiAgICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKCm1zbGlmY2FrICA4IEp1biA5OSAwOTozMjo0OAogICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKCmRhdmVzICA5IEp1biA5OSAwNjozMjowMgogICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKCmhhcmRha2VyICA5IEp1biA5OSAxODozMTo0MgogICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCgpkYXZlcyAxNSBKdW4gOTkgMDM6NTk6MjMKICAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKCmRhdmVzIDE1IEp1biA5OSAwODoyODowMAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6CiAgICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwoKaGFyZGFrZXIgMTUgSnVuIDk5IDE2OjI1OjU3CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGFsbG93ZWQgemVyb2xlbmd0aCBwZHUtPnNlY3VyaXR5TmFtZSBwcm9ibGVtIGZvcgogICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgoKZGF2ZXMgMTYgSnVuIDk5IDA1OjExOjQ4CiAgICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCgpkYXZlcyAxNiBKdW4gOTkgMDU6NDk6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKCmRhdmVzIDE2IEp1biA5OSAwNjo1NjoxNAogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjI0OjU4CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMpOgogICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAgLSBwcmVtaWIgYXV0by1yZWdpc3RyYXRpb24gb2YgZGVmYXVsdF9zdG9yZSBuZWVkcyBjbGVhbmluZyB1cC4uLiAgc2lnaC4uLgoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjUxOjExCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gMiBuZXcgc25tcC5jb25mIHRva2VuczogZG9EZWJ1Z2dpbmcsIGRlYnVnVG9rZW5zLgoKaGFyZGFrZXIgMTcgSnVuIDk5IDA3OjM5OjAxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCAtLWhlbHAuCgptc2xpZmNhayAxNyBKdW4gOTkgMTM6MTg6MzUKICAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCgptc2xpZmNhayAxOCBKdW4gOTkgMDU6MDE6NTQKICAgIGFwcGxpZWQgZml4ZXMgZnJvbSBNLiBMYXVra2FuZW4KCmRhdmVzIDE4IEp1biA5OSAwNjo1ODo1MwogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKCmRhdmVzIDE4IEp1biA5OSAwNzo1Njo0NgogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIFNOTVAgcHJvdG9jb2wgJiBQRFUgaGFuZGxpbmcgZmxhZ3MKCmRhdmVzIDE4IEp1biA5OSAwODowMDozNAogICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKCmRhdmVzIDE4IEp1biA5OSAwODowNDoyMgogICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ0OjExCiAgICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ3OjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKCmRhdmVzIDE4IEp1biA5OSAwODo0OTo1MgogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gYWNjb21vZGF0ZSBzZXJ2ZXJzIHRoYXQgcmVxdWlyZSBhbiBhY2Nlc3NpYmxlIGNsaWVudC1lbmQgdW5peCBzdHJlYW0gc29ja2V0CiAgICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCgpkYXZlcyAxOCBKdW4gOTkgMDg6NTU6MzIKICAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAgLSBiYXNpYyBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcKCmRhdmVzIDE4IEp1biA5OSAwOTowMDoxNgogICAgLSAoc25tcF92YXJzLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBtZWFucyBvZiBieXBhc3NpbmcgVkFDTSBjaGVja3MKCmRhdmVzIDE4IEp1biA5OSAwOToxNDo1OAogICAgLSAoc25tcGQuYyBzbm1wZC5oIHNubXBfdmFycy5jIHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgKICAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgoKbXNsaWZjYWsgMTggSnVuIDk5IDEwOjAyOjAzCiAgICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0Cgptc2xpZmNhayAyMiBKdW4gOTkgMDU6MjE6MDMKICAgICBpbnZva2Ugc25tcF9zZXNzX2luaXQgYmVmb3JlIGFueSBNSUIgcHJvY2Vzc2luZyAoZml4ZXMgbWFzdGVyIGFnZW50KS4KCm5iYSAyMiBKdW4gOTkgMDU6MjU6MTMKICAgIFRPRE86CW5lZWQgZm9yIENvdW50ZXI2NCBzdXBwb3J0IGluIHNubXBkZWx0YQoKZGF2ZXMgMjggSnVuIDk5IDAzOjA4OjQyCiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCgpkYXZlcyAyOCBKdW4gOTkgMDQ6MDc6MzYKICAgIC0ge01ha2VmaWxlLmluIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcF92YXJzLmMgYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKCmRhdmVzIDI4IEp1biA5OSAwOTo1MjowOAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgICAtIE5vbi1yZWN1cnNpdmUgTUlCIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uCgpoYXJkYWtlciAyOCBKdW4gOTkgMTQ6NTk6NDEKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KCmhhcmRha2VyIDI4IEp1biA5OSAxNTowMToxNAogICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKCmRhdmVzIDMwIEp1biA5OSAwMTozNzoxMQogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCgpkYXZlcyAzMCBKdW4gOTkgMDE6NDU6MjYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ4OjM0CiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQoKZGF2ZXMgMzAgSnVuIDk5IDAyOjMyOjAzCiAgICAtIChzbm1wX2FwaS5jKTogQ29ycmVjdCB0aGUgc2V0dXAgb2Ygc3RyZWFtLWJhc2VkIGFjY2VwdGVkIGludGVybmFsIHNlc3Npb25zCgpkYXZlcyAzMCBKdW4gOTkgMDM6MjA6NDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKCmRhdmVzIDMwIEp1biA5OSAwNTowNTo0NAogICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDY6NTIKICAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKCmRhdmVzIDMwIEp1biA5OSAwNTo0ODo0MAogICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAoKaGFyZGFrZXIgMzAgSnVuIDk5IDE5OjM3OjM2CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGNvbnZlcnQgbW9yZSBzdHVmZiB0byB0aGUgZGVmYXVsdF9zdG9yZSBzcGFjZS4KCmRhdmVzICAyIEp1bCA5OSAwMjozOTo0MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeCB0aGF0IGxhc3QgJ3NlbmR0bycgY2FzZSAqY29ycmVjdGx5KiB0aGlzIHRpbWUKCmRhdmVzICAyIEp1bCA5OSAwNToxMzo0MgogICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAgLSBpbXBsZW1lbnQgYW4gaW50ZXJmYWNlIGZvciBkZWxlZ2F0aW5nIHJlcXVlc3RzIHRvIHN1YmFnZW50cwoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE1OjU2CiAgICAtICh2YXJfc3RydWN0LmggYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE2OjQxCiAgICAtIChzbm1wX2FwaS5oKTogc3VwcG9ydCBsaXN0cyBvZiBzZXNzaW9ucyAoYW5kIHN1YnNlc3Npb25zKQoKaGFyZGFrZXIgIDIgSnVsIDk5IDA4OjI3OjMwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiByZWdpc3RlciBkZWJ1Z2dpbmcgdG9rZW5zIHdpdGggLUQKCmRhdmVzICA2IEp1bCA5OSAwMjoyMDo1NwogICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCgpkYXZlcyAgNyBKdWwgOTkgMDY6NTQ6NTMKICAgIC0gKGFzbjEuYyBhc24xLmggc25tcC5jIHNubXAuaCBzbm1wX2FwaS5jIHNubXBfYXBpLmgKICAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQoKZGF2ZXMgIDggSnVsIDk5IDAyOjE2OjE1CiAgICAtIChzbm1wX2FwaS5jKTogUmV0YWluIGNvbW11bml0eSBzdHJpbmcgaW4gcmVzcG9uc2VzCgpkYXZlcyAgOCBKdWwgOTkgMDY6MjU6MDcKICAgIC0gKG1pYklJL3N5c3RlbV9taWIuYyBtaWJJSS9zbm1wX21pYi5jKToKICAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KCmhhcmRha2VyICA4IEp1bCA5OSAxNDoyOTozNQogICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjMwOjQ3CiAgICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozNjo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgdmlld19wYXJzZS5jLCB2YWNtX3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICAgbGlic25tcC5oLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKCmhhcmRha2VyICA4IEp1bCA5OSAxNDo0OTowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAgOCBKdWwgOTkgMTU6MTY6MzUKICAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KCmhhcmRha2VyICA4IEp1bCA5OSAxNjowMjo1OAogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgIC0gQWRkIG9wdGlvbnMgZm9yIHN3aXRjaGluZyB0byBhIGdpdmVuIHVpZCBhbmQgZ2lkLgoKZGF2ZXMgIDkgSnVsIDk5IDAxOjQ5OjQ5CiAgICAtIChzbm1wZC5jKTogQ2xlYW4gdXAgZ2lkL3VpZCBjaGFuZ2UgbG9nZ2luZwoKZGF2ZXMgIDkgSnVsIDk5IDA4OjI3OjM5CiAgICAtICgqL01ha2VmaWxlLmluIHNubXBsaWIvc25tcF9hcGkuYwogICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0KICAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgIC0gTW92ZSBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQoKbXNsaWZjYWsgIDkgSnVsIDk5IDEyOjEyOjUwCiAgICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0Cgptc2xpZmNhayAgOSBKdWwgOTkgMTQ6MjA6MjMKICAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCgptc2xpZmNhayAxMSBKdWwgOTkgMTg6MzY6MjQKICAgIFJlZHVjZSB1c2Ugb2Ygc25tcF9lcnJubyAtIGZpeCBtZW1vcnkgbGVhaywgdW51c2VkIHZhcnMsIGFuZCB1bnNldCB2YXIuCgpkYXZlcyAxMiBKdWwgOTkgMDc6MTQ6MzYKICAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAoKZGF2ZXMgMTIgSnVsIDk5IDA4OjMyOjI3CiAgICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCgptc2xpZmNhayAxNCBKdWwgOTkgMTM6MTQ6MzAKICAgIC0oc25tcF9hcGkuYykgLSBzbm1wX2FkZF92YXIgcmV0dXJucyBTTk1QRVJSOyBNQVkgc2V0IHNubXBfZXJybm8KCm1zbGlmY2FrIDE0IEp1bCA5OSAxMzo0Njo1MwogICAgLShzbm1wbGliL21pYi5jKSAtIGNvbmRpdGlvbmFsbHkgYWxsb3cgZm9yIG5vdCBzZXR0aW5nIHNubXBfZXJybm8KCmhhcmRha2VyIDE1IEp1bCA5OSAwODo0NjowMAogICAgLSAoYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgICAtIGJlZ2lubmluZyBvZiBhIC1EZHVtcCB2ZXJzaW9uIG9mIHBhY2tldCBkdW1waW5nLgogICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgIC0gSSBuZWVkIGNvbW1lbnRzLi4uICBUZWxsIG1lIHdoYXQgeW91IHRoaW5rLi4uCgpoYXJkYWtlciAyMCBKdWwgOTkgMTQ6MDI6MjYKICAgIC0gKGF1dG9fbmxpc3QuYywgaGlzdG9yeS5jLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgsIHV0aWxfZnVuY3MuYywgaXBmd2NoYWlucy5jLAogICAgICBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLAogICAgICB2YWNtX3ZhcnMuYywgdmFyX3JvdXRlLmMsIGRsbW9kLmMsIHNtdXguYywgZGlzay5jLCBleHRlbnNpYmxlLmMsCiAgICAgIGxvYWRhdmUuYywgbWVtb3J5X3NvbGFyaXMyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywKICAgICAgdmVyc2lvbmluZm8uYywgYWxhcm0uYywgZXZlbnQuYywgTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYywKICAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBQYXRjaCBmcm9tIFJhZ25hcgogICAgICBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgogICAgICAtIGRvIGZpbGUsIHN0ZGVyciwgYW5kIHN5c2xvZyBzdXBwb3J0LgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE3OjA2OjUzCiAgICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICAgaXBmd2NoYWlucy5jLCBpbnRlcmZhY2VzLmMsIGRsbW9kLmMsIHNtdXguYywgdmVyc2lvbmluZm8uYywKICAgICAgYWxhcm0uYyk6CiAgICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxODoxMTo1MAogICAgLW1pbm9yIGNoYW5nZXMgdG8gYnVpbGQgV2luMzIgcGxhdGZvcm1zIHVzaW5nIEN5Z1dpbi1lZ2NzIGFuZCBNU1ZDIGNvbXBpbGVycy4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxOTozMzoyNgogICAgLSBubyBwcmludGYgaW4gYXNjaWlfdG9fYmluYXJ5CgpoYXJkYWtlciAyMSBKdWwgOTkgMTY6MDY6NTIKICAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEwOjM2OjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGxvZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6NDQ6MTcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywga2VybmVsX3N1bm9zNS5jLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywKICAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wdHJhcGQuYywgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgICAgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0LCBUQ1AtTUlCLnR4dCwKICAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtZXJnZSBmcm9tIFYzLWxpbmUgcG9zdCAzLjYuMiB0byBjdXJyZW50LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgogICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6MjMKICAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE4OjQ0CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBjaGFuZ2UgbWFsbG9jIHNpemUoKS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxOToyMAogICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDowMgogICAgLSAoc25tcC5jKTogeGR1bXAgZml4ZXMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MjA6MzMKICAgIC0gKGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBzbm1wX2xvZyBjb252ZXJzaW9ucy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoxOTozOQogICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAgLSByZXZlcnQgdG8gbm9uLWRwYXJzZSB2ZXJzaW9ucyBvZiBhc24gZGVjb2RpbmcuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTQ6MjY6NTcKICAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNToyMjowMgogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5jKToKICAgICAgLSBtYWtlIGFuZCB1c2Ugc25tcF9zZXNzX3BlcnJvcihzdHIsIHNlc3MpIGZvciBlcnJvciBwcmludGluZy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxMTozMAogICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxODoxMwogICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzo0NTo1OQogICAgLShzbm1wX2NsaWVudC5jKSAtIHVzZSBTRVRfU05NUF9FUlJPUiBmb3IgcmVzdG9yZWQgc25tcF9lcnJubyBzZXRzLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA4OjExOjA1CiAgICAtKG1kNS5jKSAtIHdyYXAgdW51c2VkIE1ENXByaW50IHdpdGggU05NUF9URVNUSU5HX0NPREUgaWZkZWYKCmhhcmRha2VyIDI2IEp1bCA5OSAwNzozNzowOQogICAgLSAoU05NUHYyLUNPTkYudHh0KTogcmVtb3ZlZCBib2d1cyBJTVBPUlRTIGNsYXVzZQoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjA0OjA5CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDI2IEp1bCA5OSAwOToxNDoyNAogICAgLSAoTkVXUyk6IHVwZGF0ZWQgYSBiaXQKCmhhcmRha2VyIDI2IEp1bCA5OSAxMTo1MToyMgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNCApCgpoYXJkYWtlciAyNiBKdWwgOTkgMTQ6MzI6MTcKICAgIC0gKG1pYi5jKTogQklUX3N0cmluZzogLT4gQklUUzoKCm1zbGlmY2FrIDI2IEp1bCA5OSAxNToxMjo0NQogICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNTo1OToxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6MDMKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSB2YXJpYWJsZSBuYW1pbmcgY2hhbmdlLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA2OjQ3CiAgICAtIChocHV4LmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gZGVmaW5lIGhwdXgKCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNzozMQogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywgc2NhcGkuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBzaXplX3QgY2hhbmdlcy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAwNDoyNDowOAogICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwoKZGF2ZXMgMjcgSnVsIDk5IDA2OjM4OjA5CiAgICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC8qLmMpOiB0d2VhayByZWdpc3RyeSBsYWJlbHMKCm1zbGlmY2FrIDI3IEp1bCA5OSAwNzo1MjozNwogICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyxhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyxhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgIHNubXBsaWIvYXNuMS5jLHNubXBsaWIvc2NhcGkuYyxzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAoKbXNsaWZjYWsgMjcgSnVsIDk5IDA5OjMzOjQzCiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyxhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgICBhcHBzL3NubXBidWxrd2Fsay5jLGFwcHMvc25tcGRlbHRhLmMsYXBwcy9zbm1wZ2V0LmMsCiAgICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgICBhcHBzL3NubXB0YWJsZS5jLGFwcHMvc25tcHRlc3QuYyxhcHBzL3NubXB0cmFwLmMsCiAgICBhcHBzL3NubXB0cmFwZC5jLGFwcHMvc25tcHVzbS5jLGFwcHMvc25tcHdhbGsuYywKICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLHNubXBsaWIvcGFyc2UuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICBzbm1wbGliL3NubXB2My5jKSBmaXggc25tcF9zZXNzX3BlcnJvciB1c2U7IHVzZSBsb2dfcGVycm9yIGZvciBwZXJyb3IKCm1zbGlmY2FrIDI3IEp1bCA5OSAxMjowMDozNwogICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjI0OjAzCiAgICAtKGFwcHM6ZW5jb2RlX2tleWNoYW5nZS5jLHNubXBkZWx0YS5jLHNubXB0YWJsZS5jLCBzbm1wdXNtLmM7CiAgICBzbm1wbGliOnJlYWRfY29uZmlnLmMsc25tcHYzLmM7IHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKSAtCiAgICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQoKbXNsaWZjYWsgMjcgSnVsIDk5IDE2OjA2OjM1CiAgICAtKGludGVyZmFjZXMuYykgLSBmaXggZXJyb3Igc2V0dGluZyBpZl9pYnl0ZXMgZm9yIExpbnV4IDIuMAoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjE0OjI4CiAgICAtIChhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgIC0gY2xlYW5lZCB1cCBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjIwOjQ2CiAgICAtIChhc24xLmMpOiBmaXggaGVhZGVyIGR1bXAuCgptc2xpZmNhayAyNyBKdWwgOTkgMTc6MTU6MDEKICAgIGluY2x1ZGluZyBtaWIuaCByZXF1aXJlcyBzdGRpby5oIHRvIGRlZmluZSBGSUxFICouCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDI6MzEKICAgIC0oc25tcF9wYXJzZV9hcmdzKSBpbiBzbm1wX3BhcnNlX29pZCwgdHJ5IGdldF9ub2RlIGlmIHJlYWRfb2JqaWQgZmFpbHMuCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDY6MDgKICAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgICBpbiByZWFkX29iamlkIGFuZCBwYXJzZV9zdWJ0cmVlLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDIzOjM0OjU5CiAgICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6NTg6NTEKICAgIC0oa2V5dG9vbHMuYyxtZDUuYyxtZDUuaCxzY2FwaS5jLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jKSBjYXRjaCBNRDUgZXJyb3JzCgptc2xpZmNhayAyOCBKdWwgOTkgMDI6NDI6MzIKICAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICAgc25tcF9sb2dnaW5nIC0gdXNlIHZzcHJpbnRmIGZvciBIUC9VWC05CgpoYXJkYWtlciAyOCBKdWwgOTkgMDY6NDU6MTkKICAgIC0gKGJ1Zy1yZXBvcnQpOiBjaGFuZ2UgbWFpbCBhZGRyIHRvIHVjZC1zbm1wLWJ1Z3MKCmRhdmVzIDI5IEp1bCA5OSAwMzoyOTo0MAogICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwoKbXNsaWZjYWsgMjkgSnVsIDk5IDA4OjM0OjU5CiAgICBtZW1vcnlfc29sYXJpczIgOiBoYW5kbGUgbWFsbG9jIGVycm9ycwogICAga2VybmVsX3N1bm9zNSA6IHNoYXJlIGtzdGF0IGZpbGRlcyBbU0hBUkVfS1NUQVRfRkRdCgptc2xpZmNhayAyOSBKdWwgOTkgMTM6Mjg6MzYKICAgIC0oYXBwcy9NYWtlZmlsZS5pbikgLSBjb21tZW50IHVubmVlZGVkIFRSQVBTUEVDSUFMIGxpbmUKCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzo1OTowMgogICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KCm1zbGlmY2FrIDI5IEp1bCA5OSAxNTowNDo0OQogICAgYXV0b19ubGlzdCwga2VybmVsIDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IHJlbW92ZSB0cmFwX3NwZWNpYWwgc3R1ZmYuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDY6NTYKICAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjUxOjMxCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjU3OjIzCiAgICBSZW1vdmVkIGhpbnQgb2YgdjJwYXJ0eSBmcm9tIGNvbW1lbnQuCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6MDA6MjgKICAgIC0oYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyxhZ2VudC9oaXN0b3J5LmMsYWdlbnQvc25tcF92YXJzLmMsCiAgICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgIHNubXBsaWIvc25tcF9hcGkuYyxzbm1wbGliL3NubXBfbG9nZ2luZy5jLHNubXBsaWIvc25tcHYzLmMsCiAgICBzbm1wbGliL3N5c3RlbS5jKSAtIHBzb3MgZGlmZnMgb2ZmZXJlZCBieSBBbnRob255IFN5bW9ucwoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM3OjIwCiAgICByZW5hbWUgbG9jYWwgdmFyICdsYXN0JyB0byAnbGFzdF9pcGNoJyAtIGF2b2lkIHNoYWRvdyBnbG9iYWwgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM5OjM4CiAgICBkZWNsIGxvZ19wZXJyb3IKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDo0Mjo0OAogICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNTo0MjozNAogICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICAgaHJfc3dydW4uYyAtIGZpeCBnbG9iYWwgc2hhZG93IGRlY2wKICAgIHNubXBfbG9nZ2luZy5jIC0gY2hhbmdlIGZpbHRlciBmb3Igb3BlbmxvZyBwZXIgQS4gU3ltb25zIHBhdGNoCgpkYXZlcyAzMCBKdWwgOTkgMDY6MDE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCk6CiAgICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CgpkYXZlcyAzMCBKdWwgOTkgMDY6MjM6MDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgICAtIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2Ygb2Jzb2xldGUgdjJwYXJ0eSBNYW5hZ2VyLXRvLU1hbmFnZXIgc3VwcG9ydAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjMwOjMwCiAgICBzeXN0ZW0gLSB1c2Ugc2l6ZW9mCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6NTkKICAgIHdpbjMyL2NvbmZpZy5oIC0gZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo0NjoyMgogICAgdXNlIHRyYWRpdGlvbmFsIEsmUiBjb21tZW50aW5nOyBub3QgYWxsICJDIiBjb21waWxlcnMgYWNjZXB0ICIvLyIgY29tbWVudHMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6NTg6MDgKICAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBzbm1wX3ZhcnNfbTJtLmgKCmRhdmVzIDMwIEp1bCA5OSAwNzowMTo0NgogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQoKZGF2ZXMgMzAgSnVsIDk5IDA3OjMxOjU2CiAgICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MDE6MTgKICAgIGFkZCB2c25wcmludGYgY2hlY2sgYW5kIEhBVkVfVlNOUFJJTlRGIGNvbnN0YW50Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MzI6MjgKICAgIG5vIHN0cnVjdCBzb2NrYWRkcl9kbCBpbiBBSVggMy4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDowNQogICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIC92YXIvdWNkLXNubXAgZXhpc3QuICBXZSBzaG91bGQgZG8gYSBwZXJtaXNzaW9uCiAgICAgIHNldCBhcyB3ZWxsLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE4OjU1CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxOToyMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNSApCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mjk6MzUKICAgIGFzbjEsIHBhcnNlKSBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuIChNSlMtdXNlIHhjYWxsb2MgaW4gcGFyc2UpCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mzc6NDYKICAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCgptc2xpZmNhayAgMiBBdWcgOTkgMjI6Mjk6MzcKICAgIHNubXBfZGVidWcgLSBERUJVR01TRyBtYWNyb3MgY2FsbCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcgYmVmb3JlIGludm9raW5nIGRlYnVnbXNnKiBmdW5jdGlvbnMuCgptc2xpZmNhayAgMyBBdWcgOTkgMDQ6NDY6NDEKICAgIHNubXBfYXBpLmMgLSByZW1vdmUgIkJZIiBmcm9tIEhBVkVfR0VUSE9TVEJZTkFNRSAoU29sYXJpcyAyLjUuMSB3cm9uZyEpCgptc2xpZmNhayAgMyBBdWcgOTkgMDY6NTk6NTAKICAgIGFzbjEuYyAtIGZpeCBvdXQtb2YtYm91bmQgYXJyYXkgd3JpdGUgYW5kIG1lbW9yeSBsZWFrIGluIHBhcnNpbmcgc3RyaW5ncy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzowMDoxNgogICAgc25tcF9kZWJ1Zy5jIC0gcmVtb3ZlIHRyYWNlIG1lc3NhZ2VzIGZyb20gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAzOjE0CiAgICBzbm1wX2RlYnVnLmggLSBtb3ZlIERFQlVHVFJBQ0UgZnJvbSBkZWJ1Z21zZ19oZXh0bGkgdG8gREVCVUdEVU1QU0VUVVAKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzo1ODo0OQogICAgdmFjbV92YXJzLmMgLSBjb3B5IGNvbW11bml0eSBzdHJpbmcsIG51bGwgdGVybWluYXRlLCB0aGVuIGRlYnVnIHByaW50Cgptc2xpZmNhayAgMyBBdWcgOTkgMTI6NTM6MzIKICAgIHNubXBfZGVidWcuaCAtIGZpeCAid2FybmluZzogQU5TSSBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIuCgptc2xpZmNhayAgMyBBdWcgOTkgMTQ6MDY6MzMKICAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDAzOjQ4OjAyCiAgICAtKHNtdXguYykgLSBwYXRjaCBzdXBwbGllZCBieSBOaWNrIEFtYXRvIHRvIGZpeCBBU05fSVBBRERSRVNTIHBhcnNlLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDA1OjAzOjExCiAgICB1bmRvIHBhdGNoIGFyb3VuZCBTb2xhcmlzJyBjb25maWd1cmUgZmFpbHVyZSB0byByZWdpc3RlciBIQVZFX0dFVEhPU1RCWU5BTUUuCgptc2xpZmNhayAgNCBBdWcgOTkgMDk6MTc6MTgKICAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAxMjozMzo1NgogICAgc25tcF9hcGkuYyAtIGR1bW15IGZ1bmN0aW9ucyBzbm1wX3N5bmNoX3tzZXR1cCxyZXNldH0gYW5kIHNubXBfZ2V0X2Vycm5vLgoKbXNsaWZjYWsgIDUgQXVnIDk5IDAzOjI1OjU1CiAgICBjb25maWcuc3ViIC0gcGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuIHRvIHN1cHBvcnQgSFBVWCAxMQoKbXNsaWZjYWsgIDUgQXVnIDk5IDExOjExOjUzCiAgICBzbm1wX2FwaS4zIC0gZGVzY3JpYmUgc25tcF9lcnJvcigpLCByZXBsYWNlcyBzbm1wX2Vycm5vIGFuZCBzbm1wX2dldF9lcnJubygpCgpkYXZlcyAgNiBBdWcgOTkgMDU6NTk6NDYKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gY29uZmlndXJlLXRpbWUgZmxhZyB0byBjb250cm9sIHByb3Zpc2lvbiBvZiAiZHVtbXkiIHZhbHVlcwoKZGF2ZXMgIDYgQXVnIDk5IDA2OjAyOjE1CiAgICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQoKbmJhICA5IEF1ZyA5OSAwMDoyNDozNwogICAgcGFyc2UuYzoJcGFyc2UgYWdlbnQgY2FwYWJpbGl0aWVzCgpkYXZlcyAgOSBBdWcgOTkgMDE6MDI6MTUKICAgIC0gKEZBUSk6IE5pbmUgbmV3IHF1ZXN0aW9ucywgcGx1cyBhc3NvcnRlZCB0d2Vha3MgZm9yIHRoZSBuZXcgcmVsZWFzZS4KCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo0ODo0NwogICAgbWliLiosIHBhcnNlLiogLSBtb3ZlIHByaW50X29pZF9yZXBvcnQgYW5kIG1pbmlvbnMgd2hvbGx5IGludG8gbWliLmMKCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo1MDozNgogICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUyOjQ3CiAgICBzbm1wZC5jIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZQoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjU0OjAxCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA5OjQ1OjE1CiAgICAtKHNubXAuYykgZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiB4ZHVtcCwgb2YgYWxsIHBsYWNlcyAoNzcgcy9iIDc4OyB1c2luZyA4MCkKCm5iYSAgOSBBdWcgOTkgMTA6NDM6MjgKICAgIChtYW55KToJbnVrZSB2YXJpb3VzIHByb3RvdHlwZSB3YXJuaW5ncwoKbXNsaWZjYWsgIDkgQXVnIDk5IDExOjQwOjI1CiAgICAtKG1kNS5jKSBmaXggcmVhZCBwYXN0IGVuZCBwcm9ibGVtCiAgICAtKHNubXBfYXBpLmMpIGZpeCBsb3NpbmcgY29tbXVuaXR5IHN0cmluZyBwcm9ibGVtCgpoYXJkYWtlciAgOSBBdWcgOTkgMTM6MTI6MzUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSAvZGV2L3JhbmRvbSB0ZXN0LgoKbXNsaWZjYWsgIDkgQXVnIDk5IDE1OjA3OjI0CiAgICBzbm1wdXNtLmMgLSBhbHdheXMgY2xlYXIgZmllbGRfbGVuIGlmIHJlZiBpcyB2YWxpZCBwdHI7CiAgICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgoKbmJhIDEwIEF1ZyA5OSAwNDo0NToxNwogICAgY29uZmlndXJlLmluIGNvbmZpZy5oLmluIGNvbmZpZ3VyZSBzL25ldGJzZCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKICAgIAlzdXBwb3J0IGZvciBOZXRCU0Qvc3BhcmMgYW5kIE5ldEJTRCAxLjQKCm5iYSAxMCBBdWcgOTkgMDQ6NDY6MzUKICAgIHNubXBsaWIvbWliLmM6CWZpeCBoYW5kbGluZyBvZiBudW1lcmljIG9pZHMgYW5kIHJlcG9ydGluZyBlcnJvcnMKCm5iYSAxMCBBdWcgOTkgMDQ6NDc6MjIKICAgIGFnZW50L2tlcm5lbC5jOglhYm9ydCBvbiBrdm1fb3BlbiBmYWlsdXJlcwoKbmJhIDEwIEF1ZyA5OSAwNDo0ODo0MQogICAgc25tcG5ldHN0YXQvaWYuYzoJZml4ZXMgZm9yIHNubXBuZXRzdGF0IC1pIG9uIHZpcnR1YWwgaW50ZXJmYWNlcwoKbmJhIDEwIEF1ZyA5OSAwNDo1MDo1MgogICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCm1zbGlmY2FrIDEwIEF1ZyA5OSAwOToxOToxMAogICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQoKbXNsaWZjYWsgMTAgQXVnIDk5IDEwOjA0OjQwCiAgICBGaXggZm9yIGJ1aWxkIChubyBwYWdlc2l6ZSB2YXIgZGVmaW5lZCBmb3IgbGludXgpLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDExOjA1OjM4CiAgICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNDoyNjozMwogICAgLSAoc25tcF92YXJzLmMpOiBwcm90ZWN0IGFnYWluc3QgZXZpbCBtaWIgbW9kdWxlcyBmcm9tIG1vZGlmeWluZwogICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAgLSAoaWZkZWYnZWQgZm9yIHNwZWVkIHByb2ZpbGluZyBsYXRlcikuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTU6NTQ6MzMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICAgZ2V0IGFyb3VuZCBsb2NhbCBjb25maWd1cmF0aW9uIGRhdGEgc3RvcmUgdGltZSBzeW5jaHJvbml6YXRpb24gY29uZmxpY3RzLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE3OjIzOjU5CiAgICAtIChzbm1wZC5jKTogcHJpbnQgLUggdXNhZ2UgdG8gc3RkZXJyLgoKaGFyZGFrZXIgMTEgQXVnIDk5IDEzOjA0OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gTWFrZSBwZXJzaXN0ZW50IGNhY2hlIGNvbmZvcm0gdG8gYSBtb3JlIHNlY3VyZSB1bWFzay4KCm5iYSAxMSBBdWcgOTkgMjE6NTI6MjYKICAgIGhyX3N0b3JhZ2UuYzoJcmVtb3ZlIHRvIGZvcmdvdHRlbiBkZWJ1ZyBsaW5lcy4KCm5iYSAxMSBBdWcgOTkgMjE6NTM6MzEKICAgIHNubXBuZXRzdGF0L2lmLmM6CWhhbmRsZSBub24tY29udGlndW91cyBpZlRhYmxlLiBBbHNvIG1ha2UgdGhlCiAgICAJY291bnRlcnMgdW5zaWduZWQuCgpoYXJkYWtlciAxMiBBdWcgOTkgMTY6MTY6MDEKICAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0MToyMgogICAgLSAoRkFRLCBzbm1wY21kLjEsIHNubXB0cmFwLjEpOiBtaW5vciBkb2MgdXBkYXRlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0NjozNAogICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmRhdmVzIDEzIEF1ZyA5OSAwMjo0NzowMAogICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuW2NoXSBtaXNjL2lwZndhY2MuW2NoXQogICAgICAgdGFyZ2V0L3NubXBUYXJnZXR7QWRkcixQYXJhbXN9RW50cnkuW2NoXQogICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgICAtIFJlZ2lzdGVyIG1vZHVsZXMgZHluYW1pY2FsbHkgYXQgcnVuLXRpbWUKCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiAibWFrZSB0ZXN0IiBpbiB0b3AgbGV2ZWwgTWFrZWZpbGUuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTI6MTgKICAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjE2OjUxCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA5OjMzOjQwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IHVzZSBOT19EVU1NWV9WQUxVRVMgYnkgZGVmYXVsdC4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMToxNDozOQogICAgKGhvc3QvaHJfZGV2aWNlLmMsaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYyxob3N0L2hyX3N0b3JhZ2UuYywKICAgIGhvc3QvaHJfc3dpbnN0LmMsaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLG1pYklJL2F0LmMsCiAgICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICAgbWliSUkvdWRwLmMsbWliSUkvdmFyX3JvdXRlLmMpIC0gI2lmIE5PX0RVTU1ZX1ZBTFVFUyAoaGVscCBvdXQgY29uZmlndXJlKQoKaGFyZGFrZXIgMTMgQXVnIDk5IDExOjU1OjMxCiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IGRvIGNhY2hpbmcgZm9yIE5PX0RVTU1ZX1ZBTFVFUy4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMjoxODoxNwogICAgdmFyX3JvdXRlLmMgLSAjaWZkZWYgTk9fRFVNTVkgLS0+ICNpZiBOT19EVU1NWSAobGlrZSB0aGUgb3RoZXIgdXNlcykuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTI6NDk6MzUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgIHNob3VsZCBkby4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNToyMjo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTU6MzU6NTQKICAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNTo0MgogICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTY6MDY6NTEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQoKbmJhIDE2IEF1ZyA5OSAxNDo1ODo0MAogICAgc25tcG5ldHN0YXQvaWYuYzogYWxsb3cgLWkgYW5kIC1vIG91dHB1dHMgZXZlbiB3aXRoIGluY29tcGxldGUgcmVzcG9uc2VzCiAgICAJZnJvbSBzbm1wZCAoc3VjaCBhcyBMaW51eCB0aGF0IGRvZXMgbm90IHJldHVybiBpZkluTlVDYXN0UGt0cwogICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKCm5iYSAxNiBBdWcgOTkgMTQ6NTk6MjkKICAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgIAlmb3IgYmFkIGhvc3QgbmFtZXMuCgpuYmEgMTggQXVnIDk5IDAyOjQwOjQ4CiAgICBhZ2VudC9zbm1wZC5jOgltb3ZlIHRoZSB0ZXJtaW5hdGlvbiBwcm9jZXNzaW5nIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCiAgICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KCm5iYSAxOCBBdWcgOTkgMDI6NTE6NTcKICAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgICAJb3V0c2lkZSB0aGUgc2lnbmFsIGhhbmRsZXIuCgpuYmEgMTggQXVnIDk5IDA5OjI2OjM1CiAgICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgICAJaW50ZXJmYWNlcy4KCm5iYSAxOCBBdWcgOTkgMDk6MzE6MDYKICAgIC0gKG1hbnkpOgljaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucyB0byBiZSBzbm1wXyoKICAgIAlkZWZhdWx0IGRvX3N0ZGVycl9sb2dnaW5nIHRvIDEuCgpuYmEgMTkgQXVnIDk5IDAyOjMzOjU2CiAgICAtIGludGVyZmFjZXMuYzogcmVtb3ZlIHNvbWUgbGVmdCBvdmVyIGRlYnVnIG91dHB1dAoKbmJhIDE5IEF1ZyA5OSAwMjozNToxMAogICAgLSBzbm1wX2xvZ2dpbmcuYywgYWdlbnQvdmFyaW91czogcmVpbnN0YXRlIC1hIGFuZCAtViBsb2dnaW5nIChhbG1vc3QpLgogICAgCXRpbWVzdGFtcCBmaWxlIGFuZCBzdGRlcnIgbG9nZ2luZy4KCm5iYSAxOSBBdWcgOTkgMTA6Mzg6MDIKICAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgIAkodGhpcyBraWxsZWQgdGhlIGxpYndyYXAgY2hlY2sgaW4gc25tcGQpCgpuYmEgMTkgQXVnIDk5IDEwOjM4OjQ4CiAgICAtIHNtdXguYzogcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBcbiBmcm9tIHNubXBfbG9nX3BlcnJvciBjYWxscy4KCm5iYSAxOSBBdWcgOTkgMTA6NDA6MjIKICAgIC0gc25tcGQuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgIAlMb2cgd2hlbiBzbm1wZCByZWNvbmZpZ3VyZXMgZm9sbG93aW5nIGEgU0lHSFVQCgpuYmEgMTkgQXVnIDk5IDE0OjA5OjI1CiAgICAtIHNubXBfYXBpLj8sIHNubXBkLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOiByZWluc3RhdGUgYWdlbnRfYWRkciBpbgogICAgCXRoZSBwZHUgc3RydWN0dXJlICh1c2VkIGZvciB2MSB0cmFwcykuCgpoYXJkYWtlciAxOSBBdWcgOTkgMTY6MDk6NTQKICAgIC0gKHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jKTogUGF0Y2ggZnJvbSBkbGVuZ2VsQGhvbWUuY29tOgogICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KCm5iYSAyMCBBdWcgOTkgMDM6NDM6MzcKICAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NDM6NTYKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtYWtlIGxvZ2dpbmcgb2YgdGltZXN0YW1wcyBvcHRpb25hbCBieSBhIHNubXAuY29uZiBkaXJlY3RpdmUuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NTY6NTcKICAgIC0gKHNubXAuY29uZi41LmRlZiwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2xvZ2dpbmcuYyk6CiAgICAgIC0gdHVybiBvZmYgdGltZSBzdGFtcCBsb2dnaW5nIGJ5IGRlZmF1bHQuICBJdCBtdXN0IGJlIGV4cGxpY2l0bHkKICAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAgKHRoZSByZWFzb24gaXMgdGhhdCBhIGxvdCBvZiBsb2dnaW5nIGlzIGluY3JlbWVudGFsIGluIG5hdHVyZSBhbmQKICAgICAgICBpcyBub3QgbGluZSBidWZmZXJlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgbG9nZ2luZyByb3V0aW5lcy4KICAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgIHByaW50IHRpbWVzdGFtcHMgYnkgd2F0Y2hpbmcgb3V0IGZvciBcbidzLiAgQnV0LCBub3QgdGhpcyByb3VuZC4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxNjozOToyMQogICAgLSAoc25tcF9hcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oLCBhc24xLmMpOiA2NGJpdCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjA4OjE3CiAgICAtIChORVdTKTogbGFzdCBtaW51dGUgY2hhbmdlcwoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjEwOjI2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU3ICkKCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzozMzowMAogICAgLSAoaXBmY2hhaW5zKTogcmVtb3ZlZCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5ld2VyIG9uZSBpbiBmdHAncyBjb250cmliIGRpci4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NDo1NwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAgLSBjbGVhbnVwIG9mIC0taGVscCBzdHVmZi4KICAgICAgLSBmaXggb2YgcGVyaXN0ZW50IGRpcmVjdG9yeSBjcmVhdGlvbi4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NjoyNwogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6NTc6MjcKICAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwNjoxNDozOQogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgY29uZmlnX2xvYWRfbWliCgpoYXJkYWtlciAyMyBBdWcgOTkgMDc6MDI6NDMKICAgIC0gKE5FV1MpOiBhbnNpIG1lbnRpb25lZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwOTowMDo1OQogICAgV2luMzIgYnVpbGQgZml4ZXMKCm5iYSAyMyBBdWcgOTkgMTM6NTQ6MzIKICAgIC0gYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcF92YXJzLmM6IG1vdmUgc29tZSAtdiBsb2dnaW5nIHRvIGEgbW9yZSByYXRpb25hbAogICAgCXBsYWNlLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDE0OjAyOjUxCiAgICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCgptc2xpZmNhayAyMyBBdWcgOTkgMTU6MzI6MjEKICAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYuMSAtPiBWMy42LjIKCmhhcmRha2VyIDE2IE1hciA5OSAwODoxNToxOAogICAgLSAoZGxtb2QuYyk6IHJlbW92ZWQgYSBib2d1cyBuZXctbGluZS4KCmhhcmRha2VyIDE2IE1hciA5OSAxMDozNDowMwogICAgLSAoaHJfc3dydW4uYyk6IGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBmcmVlYnNkLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjIzOjMwCiAgICAtKHNubXBfYXBpLmMpIGNvbnNpc3RlbnQgZXJyb3IgcmV0dXJuLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjMzOjUyCiAgICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKCm1zbGlmY2FrIDE3IE1hciA5OSAxMzo1Mzo0OAogICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCgptc2xpZmNhayAxOCBNYXIgOTkgMDg6Mzc6NDUKICAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQoKaGFyZGFrZXIgMTkgTWFyIDk5IDA5OjIzOjM4CiAgICAtIChzbm1wZ2V0LmMsIHNubXB3YWxrLmMpOiBmaXhlZCBpbml0aWFsaXphdGlvbiBhbmQgdXNhZ2Ugb2YgImZhaWx1cmVzIi4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDowOTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjEwOjExCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICAgbmV4dCBzcGFjZS4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoxMTowMwogICAgLSAobWliZGVmcy5oLCBzdHJ1Y3QuaCwgZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmgsIHByb2MuYywgcHJvYy5oLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MjM6MjEKICAgIC0gKHZlcnNpb250YWcpOiByZWdleHAgZml4LgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjExOjMyCiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICAgc25tcE1vZHVsZXMuMTIsIHdoZXJlIHRoZXkgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjE3OjI0CiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSB3aGVuIHVzaW5nIGNvcHlfd29yZCgpIGRvbid0IHNraXAgc3BhY2VzLCBzaW5jZSBpdCBkb2VzIHRoYXQuCgptc2xpZmNhayAgMSBBcHIgOTkgMTM6MTA6NDcKICAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KCm1zbGlmY2FrICA1IEFwciA5OSAxMTowNjoyNwogICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MTA6MTQKICAgIC0gYnVpbGQgc25tcG5ldHN0YXQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE0OjIyOjQzCiAgICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKCm1zbGlmY2FrICA1IEFwciA5OSAxNTo1OToyMAogICAgLSBCdWlsZCB1c2luZyBDeWdXaW4zMiAoaW5jbHVkZXMgTmllbHMgQi4ncyBzbm1wX3ZhcnMuYyBwYXRjaCkuCgpoYXJkYWtlciAgNiBBcHIgOTkgMDk6MjM6MTYKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCgptc2xpZmNhayAgNiBBcHIgOTkgMTA6NTk6MDUKICAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgoKbXNsaWZjYWsgIDYgQXByIDk5IDExOjMzOjU0CiAgICAtIGFub3RoZXIgcm91bmQgb2YgQU5TSS1meWluZyB0aGUgYWdlbnQgY29tcGxldGVkLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjEzOjQwCiAgICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjM4OjQ1CiAgICAtIChtaWJpbmNsLmgsIHVjZERlbW9QdWJsaWMuYywgdmFjbV92YXJzLmgsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLAogICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIxOjI0OjIyCiAgICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxMzo1OQogICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxNDo0MwogICAgLSAoc25tcF92YXJzLmMpIG1vcmUgdjJwYXJ0eSByZXdvcmsgbmVlZGVkCgptc2xpZmNhayAgNyBBcHIgOTkgMDY6MTc6MjgKICAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDI6MTAKICAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgIGxjZF90aW1lLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICAgbmV3ZXIgbW9kZWwuCiAgICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDg6MDcKICAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgoKaGFyZGFrZXIgIDcgQXByIDk5IDExOjI4OjAyCiAgICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY29udmVyc2lvbgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjAwOjIwCiAgICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCBzbm1wbGliL3ZhY20uaAogICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjE3OjIzCiAgICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAoKbXNsaWZjYWsgIDcgQXByIDk5IDE1OjAwOjM5CiAgICAtKHVzbVVzZXIuYyxzeXN0ZW0uYykgcGx1ZyBtZW0gbGVhazsgKHNubXBfYXBpLmMpIGVuZm9yY2UgYXJyYXkgbGltaXQuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTQ6MzEKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3lzL3RpbWUuaC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNTozOQogICAgLSAoaHJfdXRpbHMuaCk6IHJlbW92ZSB2YXJpYWJsZSBuYW1lcyBmcm9tIHByb3RvdHlwZXMgKHdhcyBjYXVzaW5nIHByb2JsZW1zKS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNjo0NQogICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MjU6MDkKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToxOToyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MjA6MDAKICAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjMyOjIzCiAgICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozNjozMQogICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBtb2R1bGUgbG9jYXRpb25zIGZvciBicm9rZW4gbWlicy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NDo0OAogICAgLSAoZnJlZWJzZC5oLCBmcmVlYnNkMi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlYnNkIHV0bXAgY2xlYW51cHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTY6NTMKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NzoyNAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBjaGVja2luZyBvZiAuY29uZiBmaWxlIHBhcnNpbmcgbGluZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MDIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCAtUC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODoyNwogICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAwOjQ5CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgICAtIEFkZCBGUkFNRS1SRUxBWS1EVEUtTUlCIGFzIHJlcGxhY2VtZW50IGZvciBSRkMtMTMxNQoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAzOjI5CiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjI5OjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpIGluaXRfc25tcCB0YWtlcyBhcmd1bWVudDsgIiIgdXNlZC4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNTozMDozNAogICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCgpoYXJkYWtlciAxNCBBcHIgOTkgMTU6NTI6MzUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjMxOjU1CiAgICAtIChzbm1wX2FnZW50LGMsIHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LltjaF0pIGZpeCB2YXJpYWJsZV9saXN0IHdpdGggYnVpbHQtaW4gc3RvcmFnZQoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjU2OjM3CiAgICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6MzA6MjkKICAgIC0gKElQRldBQ0MtTUlCLnR4dCkgY2hhbmdlIG1vZHVsZSBuYW1lIGZyb20gSVBGV0FETS1NSUIgdG8gSVBGV0FDQy1NSUIuCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6NTQ6MjIKICAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCkgaXBmd0NoYWluVGFibGUge2lwZncgMX0gZml4Cgptc2xpZmNhayAxNiBBcHIgOTkgMDg6MzM6MTYKICAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlMgOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMDowNgogICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjExOjQ4CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE1OjE0CiAgICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNjoxNgogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjA2CiAgICAtIChORVdTKTogdXBkYXRlZAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjQxCiAgICAtIChzbm1wdHJhcGQuOCk6IG1hbiBwYXRjaCBmcm9tIE5pZWxzCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MzQ6NDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQoKbXNsaWZjYWsgMTggQXByIDk5IDA2OjU0OjI2CiAgICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0IDogOSAtPiAxMAoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjAxOjE1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICAgZmlsZSBub3cgY29udGFpbnMgdGhlIGNvZGUgaXRzZWxmLgogICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDk6MjcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjEyOjE3CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGVkIGEgbW9yZSBjb252ZW5pZW50IHJlYWRfY29uZmlnX3JlYWRfZGF0YSgpIGZ1bmN0aW9uIHRvCiAgICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgICAtIHVzZSBwcmV2aW91c2x5IG1hbGxvY2VkIHNwYWNlIGluIHNvbWUgcm91dGluZXMsIG9yIG1hbGxvYyBpdCBmb3IKICAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxNDoyOAogICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDExOjI4OjE0CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDIwIEFwciA5OSAxNTozMTozNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIGNvbXBsZXRlbHkgcmUtaGFja2VkOgogICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgICBnZW5lcmljYWxseSwgYW5kIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHR5cGVzIG9mIGNvZGUgdGVtcGxhdGVzCiAgICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgICBhbnkgdHlwZSBvZiBjb2RlIChub3QganVzdCBDKSBmb3Igc29tZXRoaW5nIGVsc2UgYmFzZWQgb24gbWliCiAgICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgIGFnYWluIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCB3aXRob3V0IGJlaW5nLCB3ZWxsLCBtZS4gIFRoZQogICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgICByZWFkIHRoaXM/IChJZiBzbywgc2VlIG1lIGZpcnN0KS4KCmhhcmRha2VyIDIwIEFwciA5OSAxNjowNDoxNwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgICAtIHZhcmlhYmxlVHlwZXMgLT4gdmFyaWFibGVzCiAgICAgIC0gY25hbWUgLT4gTkFNRQoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjEwOjQ0CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCgpoYXJkYWtlciAyMCBBcHIgOTkgMjE6Mzg6NDIKICAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NDo0NAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NjowMwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgICBkaXJlY3RpdmVzIHdoZXJlIG5lZWRlZCBiZWNhdXNlIG9mIGl0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDEwOjUxOjMwCiAgICAtIChzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBrZXl0b29scy5jKTogQW5vdGhlciB2MyBicmFuY2ggdXBkYXRlLgoKbXNsaWZjYWsgMjYgQXByIDk5IDA5OjIxOjA2CiAgICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCgpuYmEgMjYgQXByIDk5IDExOjIxOjEwCiAgICAKICAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCgpuYmEgMjYgQXByIDk5IDExOjQ4OjU3CiAgICAKICAgIAogICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgICBpbnNwaXJlZCBieSBhIHJlZmVyZW5jZSB0byBzbm14IGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCgpuYmEgMjYgQXByIDk5IDEyOjAzOjQ3CiAgICAKICAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgIAlzdHJpbmdzCgpuYmEgMjYgQXByIDk5IDEyOjA5OjM1CiAgICAKICAgIAogICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICAgYXBwcy9zbm1wdHJhcGQuYzogZml4IGEgYnVzIGVycm9yIHdoZW4gdXNpbmcgLVMgYW5kIHJlY2VpdmluZyBhbgogICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KCm5iYSAyNiBBcHIgOTkgMTI6MTM6NTAKICAgIAogICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgICAJZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjYgQXByIDk5IDEyOjM3OjA5CiAgICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKCm1zbGlmY2FrIDI3IEFwciA5OSAwOTo1MTozNQogICAgLSAoaW50ZXJmYWNlcy5jKSBhZGQgaWZfdHlwZV9mcm9tX25hbWUgdG8gY29udmVydCBpbnRlcmZhY2UgbmFtZSB0byB0eXBlLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjMyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IGNhbGxiYWNrIEFQSS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozOTo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KCmhhcmRha2VyICAzIE1heSA5OSAwNzowNzoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBzY2FwaS5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KCmhhcmRha2VyICAzIE1heSA5OSAwNzoxMzozMQogICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDEyOjU4OjE5CiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgYWxsX2dlbmVyYWxfbG9jYWwuaCwgYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgIC0gbnVrZWQgYWxsX2dlbmVyYWxfbG9jYWwuaCBhbmQgYWxsX3N5c3RlbS5oLgogICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KCm5iYSAgMyBNYXkgOTkgMTU6NDA6MTEKICAgICgqLltjaF0pOglwYXRjaGVzIHRvIHR5cGVzIHRvIHdpcGUgd2FybmluZ3MgZnJvbSBjb21waWxlcnMKICAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCgpuYmEgIDQgTWF5IDk5IDAwOjQ3OjQ0CiAgICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgoKbmJhICA0IE1heSA5OSAwMDo1MToxNgogICAgKG1hbnkpOglyZW1vdmUgY29uc3Qgc3BlYyBmcm9tIEZpbmRWYXJNZXRob2QuIFRoYXQgd2FzIHdyb25nCgpoYXJkYWtlciAgNCBNYXkgOTkgMTE6MDg6NTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCgptc2xpZmNhayAgNiBNYXkgOTkgMDk6MjA6MzAKICAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KCm5iYSAxMCBNYXkgOTkgMTQ6NDc6MjIKICAgIEZpeGluZyBzb21lIG1vcmUgcHJvdG90eXBlcy4gUG9pbnRlZCBvdXQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm5iYSAxMCBNYXkgOTkgMTQ6NDk6NDkKICAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgICAJaW5zaWRlIFYxIHNlc3Npb24uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDI6NDgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDM6MjUKICAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDoxMTo0MAogICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjUzOjIzCiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjIyOjE2CiAgICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzo1MjoxOQogICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDk6MTgKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKbXNsaWZjYWsgMTQgTWF5IDk5IDA2OjU0OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYwogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgc25tcGxpYi9zbm1wX2F1dGguYykgbW9yZSBzaXplX3QgZml4ZXMKCm1zbGlmY2FrIDE0IE1heSA5OSAwOTo0NzoxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgICBzbm1wbGliL3BhcnNlLmMpIG1vcmUgQU5TSS1DIHRvdWNodXBzCgptc2xpZmNhayAxNCBNYXkgOTkgMTM6NTk6MzcKICAgIC0oYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIHNubXBsaWIvc25tcHVzbS5jKSBmaXhlcyB0byBidWlsZCBIUCAmIEFJWAoKZGF2ZXMgMTcgTWF5IDk5IDAzOjIwOjUzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKCmRhdmVzIDE3IE1heSA5OSAwNDozNDo1NQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNDozODowMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3MgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDc6MTg6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAob2Jzb2xldGluZyAnYWdlbnRfYWRkcicpCgpkYXZlcyAxOCBNYXkgOTkgMDY6MjY6MTYKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKCm1zbGlmY2FrIDE4IE1heSA5OSAwOTowMTo0NgogICAgLSAoeHgvTWFrZWZpbGUuaW4pIHJlbW92ZSByZWZlcmVuY2VzIHRvIGFzIHlldCBtaXNzaW5nIGRpc21hbiBmaWxlcy4KCmRhdmVzIDE4IE1heSA5OSAwOToyMzo1MAogICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXBidWxrd2Fsay5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB1c20uYyBhcHBzL3NubXB3YWxrLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyk6CiAgICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQoKZGF2ZXMgMTkgTWF5IDk5IDAyOjMzOjA3CiAgICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKCmRhdmVzIDE5IE1heSA5OSAwNToxMTozNwogICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAyOjU1CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo1MDoxMgogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKZGF2ZXMgMjAgTWF5IDk5IDAzOjQ2OjI0CiAgICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwoKbXNsaWZjYWsgMjEgTWF5IDk5IDA1OjI0OjIzCiAgICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCgpkYXZlcyAyMSBNYXkgOTkgMDU6NTQ6MjIKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgIChhbHNvIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93bikKCmhhcmRha2VyIDIxIE1heSA5OSAxMToxMDo0NAogICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAgLSBtaXNjIGV2YWwgZml4ZXMuCiAgICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KCm1zbGlmY2FrIDIxIE1heSA5OSAxNToyOTo0NgogICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCgptc2xpZmNhayAyNCBNYXkgOTkgMDU6MzY6MTMKICAgIC1jb25maWd1cmUgLSBzYXZlIG9uZSB3aGljaCBsb29rcyBmb3IgbmV0ZGIvc29ja2V0IGhlYWRlcnMKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxOTowMwogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6NTUKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6MDQKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDozMgogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU2OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzo0MDoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgptc2xpZmNhayAyNyBNYXkgOTkgMDU6MTY6MjUKICAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MDMKICAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogaW1wbGVtZW50IHRoZSBkZWZhdWx0IHRyYXAgaGFuZGxlci4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDoxNQogICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MDYKICAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzozMgogICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KCmRhdmVzIDI4IE1heSA5OSAwNzowMjowMQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggcHJvYmxlbSB3aXRoIG51bGwgbWFjcm8KCmRhdmVzIDI4IE1heSA5OSAwODoxNDowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQoKZGF2ZXMgMjggTWF5IDk5IDA4OjU3OjE5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CgpkYXZlcyAyOCBNYXkgOTkgMDk6MTI6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFNlcGFyYXRlIG91dCBjb3B5aW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIG5ldyBvbmUKCm1zbGlmY2FrIDI4IE1heSA5OSAwOToyNDo1NgogICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjE3OjEzCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjQ0OjQyCiAgICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICAgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMvZXRjIGNyZWF0ZWQgZm9yIHZhbHVlcyB3aGljaCBjb25maWd1cmUgdGhlCiAgICAgICAgbGlicmFyeS4KCmRhdmVzICAxIEp1biA5OSAwMjoxNzoyNwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCgpkYXZlcyAgMSBKdW4gOTkgMDI6MzI6MTMKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdlbmVyYWxpc2UgaGFuZGxpbmcgb2YgYWRkcmVzc2VzICh3LnIudCBzZW50by9yZWN2ZnJvbSkKCmRhdmVzICAxIEp1biA5OSAwNzozMDo0MgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCgpoYXJkYWtlciAgMSBKdW4gOTkgMTc6MjE6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gaW1wbGVtZW50ZWQgYSBnZW5lcmljIGFsYXJtIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm0gZnVuY3Rpb25zIHRvCiAgICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6NTE6MTMKICAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKCm1zbGlmY2FrICA3IEp1biA5OSAwNzo0NDowNgogICAgLShpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgaXAuYykgY2xvbmUgZml4ZXMgZnJvbSAzLjYgbGluZSAoRnJlZUJTRDMuMSkKCm1zbGlmY2FrICA3IEp1biA5OSAxMzowNDoyMQogICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCgptc2xpZmNhayAxMSBNYXkgOTkgMTQ6Mzk6NTgKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCBhcHBzL3NubXB0cmFuc2xhdGUuYwogICAgICAgYXBwcy9zbm1wdHJhcGQuYyBsb2NhbC9taWIyYyBsb2NhbC90a21pYiBtYW4vc25tcF9jb25maWcuNS5kZWYKICAgICAgIG1hbi9zbm1wZC4xLmRlZiBtYW4vc25tcHRyYXAuMSBtYW4vc25tcHRyYXBkLjgKICAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQKICAgICAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0IG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQgcy9mcmVlYnNkLmggcy9mcmVlYnNkMi5oCiAgICAgICBzbm1wbGliL21pYi5jIHNubXBsaWIvcGFyc2UuYyBzbm1wbGliL3BhcnNlLmgKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3ZhY20uYykgLSBjaGFuZ2VzIGMvbyBOaWVscyBCYWdnZXNlbgoKbXNsaWZjYWsgMTEgTWF5IDk5IDE4OjU4OjM3CiAgICAtKGN5Z3dpbi5oKSAtIHVzZSB0byBidWlsZCBvbiBDeWdXaW4gcGxhdGZvcm0uCgptc2xpZmNhayAxMSBNYXkgOTkgMTk6NTQ6MDQKICAgIC0oYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF92YXJzLmggYWdlbnQvdmlld19wYXJzZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMpCiAgICAgIFBvcnQgc29tZSBvZiB0aGUgZml4ZXMgZnJvbSB0aGUgY3VycmVudCBkZXZlbG9wbWVudCBicmFuY2gKCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo0NTowNQogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyODowNwogICAgLShtaWIuYyBwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6Mzg6MDMKICAgIAogICAgKG1pYi5jKTogRml4ZWQgbWlub3IgdHlwbwoKZGF2ZXMgMTMgTWF5IDk5IDAzOjU1OjA2CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowNzoxMwogICAgLSAodm1zdGF0LmMpOiBpbmNsdWRlIGxpbWl0cy5oLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjM5CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCmhhcmRha2VyIDEzIE1heSA5OSAxNTo0Mjo0OAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMiApCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6MTAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAxOjQ4CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo0OToyNQogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKaGFyZGFrZXIgMjUgTWF5IDk5IDIwOjIwOjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTEgKQoKbmJhIDI2IE1heSA5OSAwNzo1Nzo0MgogICAgCiAgICAgIFRhZzogVjMtbGluZQogICAgCiAgICBpZi5jOiBkeW5hbWljIHdpZHRoIGZvciAtaSBhbmQgLW8gb3B0aW9uCgptc2xpZmNhayAyNiBNYXkgOTkgMDg6MDA6MDcKICAgIC0gZml4LXVwcyB0byBidWlsZCBXaW4zMiBNU1Zpc3VhbEMrKwoKbmJhIDI2IE1heSA5OSAwODoyNDozNQogICAgCiAgICAKICAgIFNvbWUgZml4ZXMgZm9yIFNvbGFyaXMgMi43IChwcm9jIGFjY2VzcyBzdGlsbCBkb2VzIG5vdCB3b3JrIHdoZW4gY29tcGlsZWQKICAgIHdpdGggZ2NjICgzMi1iaXQgY29tcGlsZXIpCgpuYmEgMjYgTWF5IDk5IDA4OjI5OjI2CiAgICAKICAgIEZpeGVzIGZvciBGcmVlQlNEIDIuMSBmcm9tIERlcmVrIEouIEJhbGxpbmcgPGRiYWxsaW5nQHlhaG9vLWluYy5jb20+CgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA3OjQyCiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc3dpbnN0YWxsIGJlICJ1bmtub3duIiBzaW5jZSB3ZSBjYW4ndCB0cnVseSBrbm93LgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA4OjA5CiAgICAtIChpcGZ3YWNjLmgpOiBtb3ZlIHRvIGNvcnJlY3QgbG9jYXRpb24uCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1ha2UgY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6MzE6MjUKICAgIC0gKHByb2MuYyk6IHVsdHJpeCBmaXhlcy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozODo1NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgpuYmEgMjcgTWF5IDk5IDAyOjU2OjI1CiAgICAKICAgIAogICAgaG9zdC9ocl9zd3J1bi5jLCB1Y2Qtc25tcC9wcm9jLmM6IEZpeGVzIGZvciBTb2xhcmlzIDIuNwoKbmJhIDI3IE1heSA5OSAwMjo1OToxNgogICAgCiAgICBzbm1wZC5jOglQcm9wZXJseSBoYW5kbGUgdGhlIGNhc2Ugb2Ygbm8gY29tbXVuaXR5IHNwZWNpZmllZAogICAgCWZvciBhZ2VudCB0cmFwcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTU6MDkKICAgIAogICAgc29sYXJpczIuPy5oOglkZWZpbmUgX1NMQVNIX1BST0NfTUVUSE9EXyBhcyAxCgpuYmEgMjcgTWF5IDk5IDIzOjU1OjQ5CiAgICAKICAgIHJlYWRfY29uZmlnLmM6CWNvbXBsYWluIGFib3V0IGV4aXN0aW5nIGJ1dCB1bnJlYWRhYmxlIGNvbmZpZyBmaWxlcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTk6MzcKICAgIAogICAgaW5ldC5jOgkwIElTIGEgdmFsaWQgc2hvcnQgKGFuZCBwb3J0IGFkZHJlc3MgZm9yIHJlbW90ZSBlbmRzIG9mIHBvcnRzCiAgICAJaW4gTElTVEVOIHN0YXRlKQoKbmJhIDI4IE1heSA5OSAwMzoyNToyOQogICAgCiAgICBjaGFuZ2UgdGhlIHRyYXBzaW5rL3RyYXAyc2luayBkaXJlY3RpdmVzIHRvIHN1cHBvcnQgYSBjb21tdW5pdHkgcGFyYW1ldGVyLgoKbmJhIDI5IE1heSA5OSAwMjo0OTo0NwogICAgCiAgICAtIHNtdXguYzogZml4IGEgbWlzc2luZyBudG9ocyBpbiBhIGRlYnVnIG1lc3NhZ2UKCm5iYSAgMSBKdW4gOTkgMDA6Mjc6MzYKICAgIAogICAgLSBwcm9jLmM6IFlBUEJPIChZZXQgYW5vdGhlciBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cpCgpuYmEgIDEgSnVuIDk5IDAwOjI5OjM1CiAgICAKICAgIC0gc25tcF9hZ2VudC5jOiBjaGFuZ2Ugbm9DcmVhdGlvbiByZXR1cm4gdG8gbm9BY2Nlc3MuIFRoZXJlIGFyZSBwcm9iYWJseQogICAgCXNpdHVhdGlvbnMgd2hlcmUgdGhlIGZvcm1lciBpcyBjb3JyZWN0LCBidXQgdGhpcyBpcyBsZXNzIGNvbmZ1c2luZwoKbmJhICAxIEp1biA5OSAwMDozMzo1MgogICAgCiAgICAtIGtlcm5lbF9zdW5vczUuPywgaHJfc3dydW4uYywgYXQuYywgaW50ZXJmYWNlcy5jOiBmaXggYXQuYXRUYWJsZSBhbmQKICAgIAlpcC5pcE5ldFRvTWVkaWFUYWJsZSBmb3IgU29sYXJpcy4gQWxzbyBhIHR3ZWFrIGZvciBnZXRLc3RhdEludC4KCmhhcmRha2VyICAyIEp1biA5OSAwNzoyNzo0NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMi5wcmUyICkKCm1zbGlmY2FrICAyIEp1biA5OSAxMzo0NjozNAogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLGZyZWVic2QzLmgpIGZpeCBidWlsZCBvbiBGcmVlQlNEIDMuMQoKbmJhICAzIEp1biA5OSAxNDozMToxOAogICAgCiAgICAtIGtlcm5lbC5jOglhZGQgc29tZSBzYW5pdHkgY2hlY2tzIHdoZW4gcnVubmluZyB3aXRob3V0IHJvb3QgYWNjZXNzLgoKbmJhICAzIEp1biA5OSAxNDozNDo1MAogICAgCiAgICAtIGhyX3N3cnVuLmM6CWFkZCBhIGJsYW5rIGJldHdlZW4gcHJvY2VzcyBwYXJhbWV0ZXJzCgpuYmEgIDMgSnVuIDk5IDE0OjM4OjE4CiAgICAKICAgIC0gbmV0YnNkLmgsIHRjcC5jLCB1ZHAuYzoJZml4IHNvY2tldCB0YWJsZXMgZm9yIE5ldEJTRCAxLjMvMS40CgpuYmEgIDMgSnVuIDk5IDE1OjEyOjAxCiAgICAKICAgIC0gc25tcHRyYXAuYzogZml4IGEgYmFkIGZyZWUgd2hlbiBjYWxsaW5nIHNubXBpbmZvcm0uCgpuYmEgIDMgSnVuIDk5IDE1OjIxOjA5CiAgICAtIHRjcC5jOiBsb3N0IGEgJzsnIGZvciB0aGUgRnJlZUJTRCBjYXNlIC4uLi4KCmRhdmVzICA0IEp1biA5OSAwNDo1MTowNAogICAgLSAoYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyk6IEZpeCBSUE0gaGFuZGxpbmcKCmRhdmVzICA0IEp1biA5OSAwNTowNjo0NAogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IEFkZGl0aW9uYWwgbGlicmFyeSBmb3IgUlBNIGhhbmRsaW5nCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6MzA6MTIKICAgIC0odGNwLmMsIHVkcC5jKSBhcHBseSBLZW4gS2V5J3MgZml4IGZvciBGcmVlQlNEMy4xCgpuYmEgIDQgSnVuIDk5IDExOjUyOjM4CiAgICAtIGlwLmM6IEZpeCBmb3IgRnJlZUJTRCAzIGZyb20gS2VuIEtleQoKbmJhICA0IEp1biA5OSAxMTo1MzozMgogICAgLSBrZXJuZWxfc3Vub3M1LmMsIGFzbjEuYzogRml4ZXMgZm9yIDY0LWJpdCBTb2xhcmlzIDcKCm5iYSAgNSBKdW4gOTkgMDU6NDc6MjAKICAgIC0gaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jOiBjbGVhbnVwIG9mIGNvbmRpdGlvbmFscyBmb3IgRnJlZUJTRAoKbmJhICA1IEp1biA5OSAwNjowMjo1MgogICAgLSBjb25maWd1cmUuaW46IHByb3BlciBjb25maWd1cmUgY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaAoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ1OjEwCiAgICAtKGlwLmMsIHZhcl9yb3V0ZS5jKSBmaXggc2l6ZW9mLCBDUFAgI2VuZGlmCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTI6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDoKICAgICAgLSBkb24ndCBwdXQgQ0ZMQUdTIGluIHRoZSBsaW5rIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTQ6MjEKICAgIC0gKFJFQURNRS53aW4zMik6IGFkZGVkIHRvIHRoZSAzLjYuMiBsaW5lLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjI1OjI3CiAgICAtIChGQVEsIFJFQURNRSk6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6Mjc6MTUKICAgIC0gKE5FV1MpOiAzLjYuMiB1cGRhdGUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzA6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgZm9yIDMuNi4yLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjMyOjU0CiAgICAtIChJTlNUQUxMKTogdXBkYXRlIGZvciAzLjYuMi4KCm1zbGlmY2FrICA3IEp1biA5OSAxMzowMjoxMAogICAgLShpZi5jKSAtIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCmhhcmRha2VyICA3IEp1biA5OSAxNTo0NjoyNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGliZGIxIGJlZm9yZSBsaWJkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjUwOjAxCiAgICAtIChGQVEpOiBtZXJnZQoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjAzOjI1CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciAtbGRiMSB0aGVuIC1sZGIgZm9yIHJwbSB1c2FnZS4KCmhhcmRha2VyICA3IEp1biA5OSAxNjo0Mzo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHJwbUdldFBhdGggdG8gaGVscAogICAgICBkZXRlcm1pbmUgd2hpY2ggdmVyc2lvbiBvZiBSUE0gd2UncmUgdXNpbmcgKDMgb3IgMikuCgpwamwgIDcgSnVuIDk5IDE3OjMwOjMzCiAgICBBZGRlZCBSUE0gdjMgc3VwcG9ydAoKbXNsaWZjYWsgIDggSnVuIDk5IDAzOjQwOjM2CiAgICAtKG1pYklJLyosc25tcGxpYi8qKSBNYXJra3UgTC4ncyBmaXhlcyB0byBjb21waWxlIG9uIEhQLVVYIHdpdGggYUNDCgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NTQ6NTAKICAgIHNwZWxsIGNoZWNrIENPTU1VTklUWQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNiAtPiBWMy42LjEKCQptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MDI6MDEKICAgIChwYXJzZS5jKSAtIGZpeCBzdWJpZCBpbml0OyByZW1vdmUgdXNlbGVzcyAnLVBsJyBvcHRpb24uCgptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MTQ6NDEKICAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDE6NDkKICAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDc6MTMKICAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKCm1zbGlmY2FrICA4IE1hciA5OSAwOTo1ODoxNwogICAgLSAoc25tcGxpYi9wYXJzZS5jKSBDb21wbGV0ZSBEYXZlIFNoaWVsZHMnIHBhdGNoIGZvciBjb250aW51ZSBhZnRlciBlcnJvci4KCm1zbGlmY2FrICA4IE1hciA5OSAxNDoyODoyMAogICAgLSAoc25tcG5ldHN0YXQ6aWYuYywgcm91dGUuYykgbGltaXQgaW50ZXJmYWNlIG5hbWUgc2l6ZXMgdG8gZml0IGZpeGVkIGxlbmd0aCBidWZmZXJzLgoKaGFyZGFrZXIgMTAgTWFyIDk5IDE1OjA3OjMxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTU6NDg6MjIKICAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODo1MgogICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDozMQogICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MTA6NDcKICAgIC0gKG1pYjJjKTogZml4ZWQgYSBjb3VwbGUgb2YgYnVncyBhbmQgYW5zaSdpZmllZCB0aGluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MjI6NDMKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMzo0NAogICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgICAtIGZpeGVkIHByb3RvdHlwZXMgZm9yIERFQlVHUCgpIGFuZCBERUJVR1BPSUQoKS4KCm1zbGlmY2FrIDEyIE1hciA5OSAwNzowODo0MAogICAgLSAoZGxtb2RfbWliLmMpIDogVXNlIE1BVENIX0ZBSUwvU1VDQ0VFREVEIGluIHV0aWxfZnVuY3MuaAoKaGFyZGFrZXIgMTIgTWFyIDk5IDA5OjE1OjE0CiAgICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgICByZWdpc3RyeS5jKTogZml4ZWQgTUFUQ0hfRkFJTEVEL1NVQ0NFRURFRCBkZWZpbmVzIC0+IHV0aWxfZnVuY3MuaC4KCm1zbGlmY2FrIDEyIE1hciA5OSAxMTozMToxNgogICAgLSAoZGxtb2RfbWliLmMpIDogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECgpoYXJkYWtlciAxMiBNYXIgOTkgMTI6MjA6MTIKICAgIC0gKG1pYjJjKTogZml4IGFzbl9wYXJzZSBmdW5jdGlvbnMgdG8gcGFzcyBhIHBvaW50ZXIgdG8gdGhlIHNpemUgdmFyaWFibGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6MDgKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6NDQKICAgIC0gKHNtdXguYyk6IHByb3RlY3Qgc3RyY3B5KCkgYWdhaW5zdCBhIG51bGwgcGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZQogICAgICBjb25maWcgbGluZS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNDoxMgogICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAgLSAoaHJfc3dydW4uYykgLSBzb2xhcmlzMiA6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNTozOAogICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE0OjM2OjM5CiAgICAtICh1dGlsX2Z1bmNzLmgpOiBNQVRDSF9GQUlMRUQgLT4gLTEsIHNpbmNlIHNvbWUgdXNlIGl0LgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjU0OjUxCiAgICAtIHJlc3RvcmUgY29uZmlnX3JlcXVpcmUgbG9naWM7IGZpeCBzcHJpbnRmIGNhbGxzIHRvIGNvbXBpbGUgdW5kZXIgU3VuT1MgNC4xLnguCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjM6MTgKICAgIC0gKElOU1RBTEwpOiBkb24ndCBwcmludCBtb2R1bGUgbGlzdCBoZXJlLi4uICB0ZWxsIHRoZW0gdG8gbG9vayBhdAogICAgICBjb25maWd1cmUgLS1oZWxwLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE1OjI0OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLAogICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCgptc2xpZmNhayAxNSBNYXIgOTkgMDU6NTQ6MDcKICAgIC0gKE1ha2VmaWxlLmluIGxpYnNubXAuaCBtaWIuYyBzbm1wLmggc25tcF9hcGkuYykgdXBkYXRlIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMDg6NDk6MTAKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jKToKICAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KCm1zbGlmY2FrIDE1IE1hciA5OSAwOTo0MjozNAogICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUIDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE0OjMwOjQ1CiAgICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzE6MjMKICAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjIxOjAyCiAgICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MzE6NTEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjQ2OjEyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTo1NTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU4OjA3CiAgICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMyAtPiBWMy42CgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTQ6NDMKICAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzE6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfcGR1X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjU2OjQ2CiAgICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIGhleF90b19iaW5hcnksIGFzY2lpX3RvX2JpbmFyeSwgYW5kIHNubXBfYWRkX3ZhciB0byBzbm1wbGliLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjQwOjQwCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSBjcmVhdGVkIChwb29ybHkpIHNlbmRfdHJhcF9wZHUoKSBmb3Igc2VuZGluZyB2MiB0cmFwcyBmcm9tIG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyIDI4IEp1biA5OCAwOTozMDozNAogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KCmhhcmRha2VyICAxIEp1bCA5OCAxMToyODoxNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTY6MTIKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgIC0gbW92ZWQgREVCVUdQIGRlZmluaXRpb24gaW50byBzbm1wX2FwaS5oIHdoZXJlIGl0IGJlbG9uZ3MuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTc6NTMKICAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgIC0gZml4IGV4dGVuc2libGl0eSBjaGVja2luZyBvZiBvaWRzLgogICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjM0OjI2CiAgICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBjcmVhdGUgYSBwYXNzLXBlcnNpc3QgbW9kdWxlIHRvIGhhbmRsZSBjb250aW51b3VzbHkgcnVubmluZyBwYXNzIHRocm91Z2hzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU2OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1NzowNgogICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDowNDoyMgogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgICAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgICBQb2xvdm5pa292OgogICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6MjA6NDIKICAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MjUKICAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjM0CiAgICAtIChwYXNzLmMpOiBpbmNsdWRlIHN5cy93YWl0LmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDo0MQogICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NToyMgogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjQyCiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTozNgogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTU6MzE6NTAKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTo1MToyOAogICAgdmVyc2lvbiB0YWcgKCAzLjYucHJlMSApCgpoYXJkYWtlciAxMCBKdWwgOTggMDk6NDI6MTYKICAgIC0gKHNubXBkLmMpOiB3cm9uZyBwZHUgcG9pbnRlciBmb3Igc25tcHYyYyB0cmFwcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0NjoyOAogICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6NTUKICAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MTE6MTAKICAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgIC0gZml4ZWQgdGhlIFVDRC1TTk1QIG1pYiB0byBkZWFsIHdpdGggbW9zdCBzbWljIGVycm9ycy4KCmhhcmRha2VyIDIwIEp1bCA5OCAxNzoxNDoyMQogICAgLSAoc25tcGNoZWNrLmRlZik6IHdvcmsgYXJvdW5kIGZvciBuZXcgbXVsdGktZGVwdGggbWliIHRhYmxlcy4uCgpoYXJkYWtlciAyMiBKdWwgOTggMTU6MzU6MDcKICAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE2OjIzOjQ1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMjoyNwogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQzOjMwCiAgICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ0OjM4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBlcnNpc3RlbnQgY29uZmlnIGZpbGUgcXVlc3Rpb24uCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NzoxNQogICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBwcmUvcG9zdCBtaWIgbG9hZGluZyBjb25maWcgZmlsZXMuCiAgICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjQ4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6MjUKICAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NTA6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBzbm1wZC5oKToKICAgICAgLSBzdXBwb3J0IG1pYi1tb2R1bGUgc2h1dGRvd24gZnVuY3Rpb25zLgogICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjEyOjMyCiAgICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KCmhhcmRha2VyICA5IFNlcCA5OCAxNjo1NTowNAogICAgLSAoc25tcGQuYyk6IGZpeCB0cmFwIHN0dWZmIGJyb2tlbiBieSB0aGUgY29kZSBtZXJnZS4KCmhhcmRha2VyIDExIFNlcCA5OCAwOToyNjo0MgogICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo0NjowMQogICAgLSAoc25tcF9hcGkuYyk6IHByb3RvdHlwZSBtb3ZlIGluaXRfc25tcCgpIGFib3ZlIGluaXRfc25tcF9zZXNzaW9uLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjUzOjIzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1vdmUgdW4tY29uZmlndXJlZCBkZWZpbmVzIGFib3ZlIEBUT1BALgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU0OjI0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo1Njo1MQogICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDg6NDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCgpoYXJkYWtlciAxMyBTZXAgOTggMTg6MjQ6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxMjowOQogICAgLSAoc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCgpoYXJkYWtlciAxMyBTZXAgOTggMjA6MTg6MTAKICAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDozMDozOAogICAgLSAoc25tcF9hcGkuYyk6IHByZXZlbnQgZG91YmxlIGluaXRfc25tcCgpcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNToyNgogICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNjo1MgogICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowOTozNgogICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6MzU6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5zdGFsbCBzbm1wX3Nlc3NfYXBpLjMuCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6NDM6MzIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgaHB1eC5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLAogICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjAyOjM0CiAgICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtZW1vcnkgcmVsYXRlZCBmaXhlcy4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzowNQogICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDc6NDUKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggaW5pdF9zbm1wIGNhbGxzIGZyb20gc2Vzc2lvbiByb3V0aW5lcy4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMzoyMDoxMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGFkZGVkIHRoZSBGaWxlVGFibGUgc3VibWl0dGVkIGJ5IEpvbmFzIE9sc3Nvbi4KCmhhcmRha2VyIDE4IFNlcCA5OCAxNDowMTo1MQogICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjA0OjQzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ2hhbmdlIGZpbGUgcmV0dXJuIGNvZGUgZnJvbSBUcnV0aFZhbHVlIHRvCiAgICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgoKaGFyZGFrZXIgMjEgU2VwIDk4IDExOjExOjM5CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEzOjA3OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAgLSAtLWVuYWJsZS1lb2wtdGVybWluYXRlZC1jb21tZW50cy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowNTo0MAogICAgLSAoc25tcF9hcGkuYyk6IGRvbid0IHJlbHkgb24gdGhlIGdldHNlcnZieW5hbWUgcG9pbnRlciB0byBzdGF5IGFyb3VuZC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoxNToyMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgIG5vdCBjb3B5IHplcm8gbGVuZ3RoIHN0cmluZ3MuICBJIGhhZCBtZXJnZWQgdGhpcyBpbiB3aXRoIGNoYW5nZXMKICAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAgLSBBbm90aGVyIHByb2JsZW0gaW4gc25tcF9jbG9uZV9wZHUoKSB3YXMgdGhlIHRlc3QgZm9yIHplcm8gbGVuZ3RoCiAgICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI0OjE2CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoyNToxMAogICAgLSAoc25tcHRhYmxlLmMpOiBwcm9jZXNzIGFyZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIGdldF9vcHQoKS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzozMzowNgogICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc3R1cGlkIE9TIHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1NTo1MAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1Njo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4gIEl0J3MgZ29pbmcgdG8gY2hhbmdlIHRvbwogICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTg6MDM6MjcKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKCmhhcmRha2VyIDI1IFNlcCA5OCAxODowNDoxMQogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODoxNDoyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHV0aWxfZnVuY3MuYyk6IHVzZSBVU0xFRVAgaWYgYXZhaWxhYmxlIGZvcgogICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgoKaGFyZGFrZXIgMzAgU2VwIDk4IDE0OjU3OjExCiAgICAtIChDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyICA1IE9jdCA5OCAxNjo1MzoyMwogICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCgpoYXJkYWtlciAgNSBPY3QgOTggMTc6MDM6MzQKICAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODowMwogICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MTg6MTYKICAgIC0gKGhwdXguaCk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODo1NQogICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM0OjU4CiAgICAtIChyZW1vdmUtZmlsZXMpOiB1cGRhdGUuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzU6MDYKICAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjQ5CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozODo1NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMyApCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MzAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG1ha2UgaHRtbC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MDoyMwogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MTo1NgogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1NDozOAogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzowMDo0MAogICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjA5OjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MDg6MTgKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIENoZWNrIGZvciBmdWxseSBxdWFsaWZpZWQgb2lkIHN0YXRlbWVudHMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MTI6MDIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDIzOjIwOjI1CiAgICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6MTc6MDIKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjM4CiAgICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo0MjoyMAogICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo1MDoyNgogICAgLSAoZnJlZWJzZDMuaCk6IGRlZmluZSBmcmVlYnNkMiBhbmQgTU9VTlRfTkZTLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUxOjU4CiAgICAtIChmcmVlYnNkMy5oKTogb3BwczogIGRlZmluZSBNT1VOVF9ORlMgYXMgIm5mcyIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDA6MDUKICAgIC0gKHNubXBkLmMpOiAtQTogYXBwZW5kIHRvIGxvZyBmaWxlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQxOjUyCiAgICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDI6MTAKICAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDk6MDMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NTI6NTEKICAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KCmhhcmRha2VyIDE2IE9jdCA5OCAwODozODozOQogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDEwOjU0OjQ5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTE6MDg6NTYKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzowMToxMgogICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDA3OjU3OjE3CiAgICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTQ6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zZXJ0IEAgc2lnbi4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDo0NwogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU2OjA5CiAgICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1OTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgICBsb2FkYXZlLmgsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuaCwgcGFzcy5oLCBwYXNzX3BlcnNpc3QuaCwKICAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgICByZWFkX2NvbmZpZy5oKToKICAgICAgLSBuZXcgb3B0aW9uIC1IIG9uIGNvbW1hbmQgbGluZSB0byBwcmludCBvdXQgLmNvbmYgZmlsZSBkaXJlY3RpdmVzCiAgICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgIHNwZWNpZnlpbmcgb2YgYSBoZWxwIGxpbmUuCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6MjM6NDYKICAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgoKaGFyZGFrZXIgIDYgTm92IDk4IDE3OjQ0OjQzCiAgICAtIChzbm1wZC5jKTogdjIgdHJhcCBzZW5kIGRlYnVnZ2luZy4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMjoxMDowOAogICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCgpoYXJkYWtlciAyMyBOb3YgOTggMTU6NDI6NTIKICAgIC0gKGludGVyZmFjZXMuYywgaXJpeC5oKTogZml4IGxvY2F0aW9uIG9mIF9LRVJORUwgZGVmaW5lIGZvciBpcml4LgoKaGFyZGFrZXIgMjMgTm92IDk4IDE2OjM1OjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDI6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA3OjQ4OjUzCiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogbmV3IGZ1bmN0aW9uczogc25tcF9taWJfdG9nZ2xlX29wdGlvbnMoKSBhbmQgdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDk6NDMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MDY6MzMKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmcgbm90ZXMgZm9yIDMuNi4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNzoyNAogICAgLSAoZGlzay5jKTogZml4IGRpc2sgc2l6ZSBlcnJvciBmbGFnIHJlcG9ydGluZyBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjEyOjEzCiAgICAtIChwYXJzZS5jKTogc3BhY2luZyBpbiBtaWIgb3B0aW9uIHVzYWdlIGZpeGVzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE0OjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE4OjA3CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDE6NTUKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IHdhdGNoIG91dCBmb3IgTlVMTCBmaWxlIHBvaW50ZXJzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQyOjIwCiAgICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0ODozOAogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIEplZmYgSm9obnNvbjoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTc6NTIKICAgIC0gKFJFQURNRSk6IGFkZGVkIEplZmYgSm9obnNvbiB0byB0aGUgY29udHJpYnV0b3JzIGxpc3QuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTk6MTYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQoKaGFyZGFrZXIgMTYgRGVjIDk4IDA3OjMxOjI2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcG9pbnRlciBjaGVja3MgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgoKaGFyZGFrZXIgMTggRGVjIDk4IDExOjM2OjM5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwby4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMDoyNAogICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gZml4ZXMgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTE6MDMKICAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEyOjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTY6NTMKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBtaWIgb2JqZWN0IHRvIGRpc3BsYXkgY29uZmlndXJlIG9wdGlvbnMuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MTk6MTIKICAgIC0gKGZpbGUuaCwgVUNELVNOTVAtTUlCLnR4dCk6IG1vdmUgdGhlIGZpbGUgbWliIHRvIC4xNSBzbyBpdCBkb2Vzbid0CiAgICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE4OjIwOjI1CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFdpbjMyIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBvcGVuZGlyKCksIGV0Yy4KCmhhcmRha2VyIDIyIERlYyA5OCAwODo1MDoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwoKaGFyZGFrZXIgMjIgRGVjIDk4IDE0OjU2OjQ0CiAgICAtIChtaWIuYywgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KCmhhcmRha2VyIDI2IERlYyA5OCAxMDozNToyMwogICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBkbG1vZCBjb21waWxhdGlvbiBpbiBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpIGNhbGwuCgpoYXJkYWtlciAyOSBEZWMgOTggMTY6NTU6NTQKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIG5ld2xpbmVzIGZyb20gc3ByaW50X3ZhbHVlKCkgd2hlcmUgYXBwbGljYWJsZS4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzowMjozMwogICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgIHNwZWVkLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ2OjExCiAgICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo0ODo1NwogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICAgaW4gb25lIGxvY2F0aW9uLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ5OjUxCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG9pZExlbidzIHdlcmUgd3JvbmcgZm9yIG0ybSBvaWRzLgoKaGFyZGFrZXIgIDIgSmFuIDk5IDA4OjQ4OjI5CiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbmV3IGNvbXBsZXRlIGxpc3Qgb2YgaWZUeXBlcy4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0MTo1MgogICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCgpoYXJkYWtlciAgNSBKYW4gOTkgMTA6NDg6NTEKICAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAgLSBtYWtlIG1haW4oKSByZXR1cm4gYW4gaW50IGluc3RlYWQgb2Ygdm9pZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDoyODoyMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgIC0gSW1wbGVtZW50IHRoZSBuZXcgdG9rZW4gYmFzZWQgZGVidWdnaW5nIG1lc3NhZ2Ugc3VwcG9ydC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDoxMgogICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo0OToyOQogICAgLSAoRkFRLCBSRUFETUUpOiBVUkwgY2hhbmdlcy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoxNQogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoyOAogICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoxMAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTI6MjIKICAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIxOjUwOjEzCiAgICAtIChhZ2VudC8qLmMpOgogICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgIC0gaW1wbGVtZW50IG5lZWRlZCAtRCBmbGFnIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBKYW4gOTkgMDk6MDI6MzYKICAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KCmhhcmRha2VyIDE1IEphbiA5OSAxMToxMDowOQogICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEyOjIyCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE1OjI0OjAyCiAgICAtIChhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6MjAKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6NTAKICAgIC0gKHZhY20uYyk6IERFQlVHTVNHIHR5cG8uCgpoYXJkYWtlciAxNSBKYW4gOTkgMTY6MTc6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHNtdXggcGF0Y2hlcy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzowNDoxMgogICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMjowMwogICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYXNuaSdpZnkgYWxsIGZ1bmN0aW9ucy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMzoxMAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNiApCgpoYXJkYWtlciAxOCBKYW4gOTkgMTA6NDc6MzYKICAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KCmhhcmRha2VyIDE5IEphbiA5OSAxOTo1OTo1MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KCmhhcmRha2VyIDE5IEphbiA5OSAyMDowMTo1OQogICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgIC0gc25tcGxpYi9wYXJzZS5jIC0gbWlub3IgdG91Y2h1cCBvZiBpbmNsdWRlczsgc3lzdGVtLmggZHVwIHJlbW92ZWQKICAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgICAtIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIC0gc25tcF9wYXJzZV9hcmdzIG5lZWRzIGEgbmV3IGZ1bmN0aW9uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjA6MDgKICAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTozNQogICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTo1NwogICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjQ6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsCiAgICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjExOjU5CiAgICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjEzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zdHJlYW0uaCAoU0NPKS4KICAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjQyCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NTgKICAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNjozNAogICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAgLSBwcm90ZWN0IGdldF9hZGRyZXNzIGNhbGxzIGFnYWluc3QgTlVMTCBwb2ludGVyIHJldHVybnMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6MTcKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAgLSBsaW51eCAyLjEga2VybmVsIG5lZWRzIGFzbS9wYWdlLmggKGFsbCBpbmNsdWRlcyBuZWVkIHRvIGJlIHJlLXdyaXR0ZW4pLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE3OjQxCiAgICAtIChsaW51eC5oKTogZGVmaW5lIExJTlVYX0lOVEVSRkFDRV9TQ0FOX0xJTkUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjA6MDQKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB1Y2Qtc25tcC1pbmNsdWRlcy5oLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjA4CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjM4CiAgICAtIChGQVEsIFJFQURNRSk6IGFkZGVkIHZlcnNpb24gc3RhbXAuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MzA6NTgKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMToxMwogICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo0ODo1MwogICAgLSAoc211eC5jKTogdHlwbwoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ5OjMwCiAgICAtIChocl9zd2luc3QpOiAjaWZkZWYgUlBNIHByb3RlY3QgYSBmcmVlIHJvdXRpbmUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTA6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjAyCiAgICAtIChzbm1wZC5jKTogZXhwb3J0IHNkbGlzdCBhbmQgc2RsZW4gdmFyaWFibGVzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjM2CiAgICAtIChzbXV4LmMpOiBkZWJ1Z2dpbmcgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNjo0MToyMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBhbGxvdyB6ZXJvIGxlbmd0aCAobGVnYWwpIGNvbW11bml0eSBzdHJpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE3OjAyOjM3CiAgICAtIChjb25maWcuaC5pbik6IHJhbiBhdXRvaGVhZGVyCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MTE6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQoKaGFyZGFrZXIgMjEgSmFuIDk5IDA4OjM5OjM0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDA6MjYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgICBKLiBTbGlmY2FrOgogICAgICAtIE5PX05VTExfQ09NVU5JVFkgLT4gTk9fWkVST0xFTkdUSF9DT01NVU5JVFkuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDI6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KCmhhcmRha2VyIDIyIEphbiA5OSAwNzoyMzoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjA4CiAgICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaW5ldC5jLCBtYWluLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gbW9yZSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjI2CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDoyODo0MQogICAgLSAobGludXguaCk6IDIuMiBkZWZpbmUgdXBkYXRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjMzOjI0CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjM0OjExCiAgICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxMTo0OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSB0ZXN0IGlmIF9fRlVOQ1RJT05fXyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbXBpbGVyLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE1OjUzCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxNjoxNgogICAgLSAobGludXguaCk6IGNvbW1lbnQgdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxNjoyNTozNwogICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KCmhhcmRha2VyIDI2IEphbiA5OSAwOTo0NTo0MgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjMzOjI1CiAgICAyMDM2IC0+IDIwMzgKCmhhcmRha2VyICAyIEZlYiA5OSAxMzozNDozNgogICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAwOjEzCiAgICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMTowMQogICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6MDQKICAgIC0gKGhyX3Byb2MuYyk6IHVzZSBbMF0gaW5kZXggb2YgbG9hZCBhdmVyYWdlIHRhYmxlLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAyOjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtZW50aW9uIHRoYXQgdGhlIG1lbW9yeSBzZWN0aW9uIGlzbid0IHN1cHBvcnRlZCBvbiBhbGwKICAgICAgICBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDggRmViIDk5IDEyOjIxOjI1CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvaG4gUG9sc3RyYToKICAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KCmhhcmRha2VyICA4IEZlYiA5OSAxNTowODo1NwogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gVGsucG0gbWVudGlvbi4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxMzowMQogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNDo0MgogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZyB0aW1lIC0+IG1fdGltZS4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNzo1MAogICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IElmSW5kZXguCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTg6MDgKICAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE5OjIyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToyMDo0NwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KCmhhcmRha2VyICA4IEZlYiA5OSAyMzoyMjozMwogICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIzOjQxCiAgICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5jbHVkZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjEwOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6NTIKICAgIC0gKG1pYjJjKTogdHlwby4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDozNTo0NgogICAgLSAobWliLmMpOiBpbmNyZWFzZSBidWZmZXIgc2l6ZSBmb3Igb2lkIHByaW50aW5nLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjEwOjM5CiAgICAtICgqKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAgLSBtYWtlIHRoZSBsaWJyYXJpZXMgcHJpbnRfIGZ1bmN0aW9ucyB1c2UgdGhlIGZwcmludF8gZnVuY3Rpb24KICAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjIyOjAzCiAgICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjM6MTYKICAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIE1vcmUgYnVmIHNpemUgc3RhbmRhcmRpemF0aW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjM0OjAwCiAgICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgIHdyb25nIGxlbmd0aCBhbmQgY291bGQgc3VjY2VlZCBhdCB0aW1lcyB3aGVuIGl0IHNob3VsZG4ndCBoYXZlLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ2OjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MDcKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ4OjI5CiAgICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgoKaGFyZGFrZXIgMTYgRmViIDk5IDE3OjA1OjQ1CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMDowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgICAtIGZpeCBpZl9uYW1lIHZhcmlhYmxlIGJ5IG1ha2luZyBpdCBzdGF0aWMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTM6MzgKICAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHByb3RvdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNhZ2UgZml4LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE1OjU5CiAgICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wbmV0c3RhdCB3aW4zMiBjb21wYXRpYmxlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE2OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZSBhZ2FpbiBmb3IgYmV0dGVyIHN0aWxsIG91dHB1dC4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTg6MDYKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjAzCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxOTo1MgogICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZG9uJ3QgdXNlIGEgdmFyaWFibGUgY2FsbGVkICd0aW1lJy4gIFRzayB0c2suCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MjE6MjUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMzo0NAogICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjI4OjU0CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luMzIgdXBkYXRlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNjoxMzo0NwogICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjExOjUyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjQ0OjIxCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gRG9uJ3QgcHJpbnQgImNhbid0IGZpbmQgbW9kdWxlIFhYWCIgbWVzc2FnZXMgd2l0aG91dCB3YXJuaW5ncyB0dXJuZWQgb24uCgpoYXJkYWtlciAyNCBGZWIgOTkgMTQ6NDM6MjEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNzoxMDoxMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgoKaGFyZGFrZXIgMjUgRmViIDk5IDEwOjAzOjQxCiAgICAtIChSRUFETUUsIHVjZF9zbm1wLmgsIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCk6IFBhdGNoCiAgICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTowMjo1NQogICAgLSAobG9hZGF2ZS5jLCBsb2FkYXZlLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTo0MjozMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIENvbnRpbnVlIGFmdGVyIHJlc2VydmVkIHdvcmQgZXJyb3IgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgogICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjA2OjQ5CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDoyMQogICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgMy42IHJlbGVhc2UuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MTA6NDcKICAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjMzOjA5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKCmhhcmRha2VyICAxIE1hciA5OSAxMDo0ODowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyNzoxMgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHJlbmFtaW5nIG9mIHZhcmlhYmxlcyBhd2F5IGZyb20gc3lzdGVtIGZ1bmN0aW9uIG5hbWVzIChpbmRleCAtPiBsaW5kZXgpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjMwCiAgICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGVycm5vIHZhcmlhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjQ1CiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI4OjE3CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBjYXNlIGVudHJpZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTo0NQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjMwOjE5CiAgICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBhZGRlZCBNSU5fT0lEX0xFTiBmb3IgaW5zdHJ1Y3Rpb25hbCB1c2UgbW9zdGx5IChpdHMgdW51c2VkKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzowMzoxNQogICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVjYXN0aW5nIGZvciBjZXJ0YWluIGZ1bmN0aW9ucyB0byAoY2hhciAqKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzo1OToxNAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSBjb21wYXJlX3RyZWUoKSBnbG9iYWwuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MDQ6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MjA6MTEKICAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTA6NTcKICAgIC0gKGFsYXJtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAgLSByZW1vdmVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIHRoYXQgd2Fzbid0IG5lZWRlZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxNzozNgogICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgICB2YXJpYWJsZXMuNSk6IE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzcGVsbCBjaGVjay4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxOTo1NgogICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIEVDRSBkZXB0LgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjIyOjQwCiAgICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTc6NDM6NDkKICAgIC0gKHNtdXguYyk6CiAgICAgIC0gYWxsb3cgbnVsbCBsZW5ndGggcGFzc3dvcmRzLgogICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMDg6NDc6MjkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gRG9uJ3QgZGVmaW5lIE1BWF9OQU1FX0xFTiBpZiBkZWZpbmVkIHNvbWV3aGVyZSBlbHNlLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEwOjQyOjM0CiAgICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgIC0gZml4dXBzIGZvciBwcm90b3R5cGUgWyh2b2lkKSByZXBsYWNpbmcgKCldLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEzOjIzOjU3CiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjE3OjUzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBuZXcgZmxhZzogIC0tZGlzYWJsZS1kZWJ1Z2dpbmcgdG8gY29tcGxldGVseSB0dXJuIG9mZiBpdHMgc3VwcG9ydC4KICAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgIGEgbGlzdCBvZiBhdmFpbGFibGUgbW9kdWxlcyBmb3IgY29tcGlsYXRpb24gaW50byB0aGUgYWdlbnQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTg6NTkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjIxOjM0CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgIC0gLVdhbGwgdHlwZSBmaXhlcy4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyNTozMwogICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyODowNQogICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCgpoYXJkYWtlciAgMyBNYXIgOTkgMTE6NDA6MTEKICAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTc6NTE6MjYKICAgIC0gKENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsIFRPRE8sIGJ1Zy1yZXBvcnQsIHNubXBkLmMsCiAgICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMDo1MQogICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MDcKICAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MjMKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTEwICkKCm1zbGlmY2FrICA0IE1hciA5OSAwNDowODowMQogICAgCiAgICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKCmhhcmRha2VyICA0IE1hciA5OSAwODozNjozOQogICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KCmhhcmRha2VyICA0IE1hciA5OSAwODozNjo0NgogICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KCmhhcmRha2VyICA0IE1hciA5OSAwOTowNzowNwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KCm1zbGlmY2FrICA0IE1hciA5OSAwOToyMDowOAogICAgCiAgICAKICAgIChhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMpIDogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAgCiAgICAoYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYykgOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKCm1zbGlmY2FrICA0IE1hciA5OSAwOToyNDoyNgogICAgCiAgICAKICAgIChNYWtlZmlsZS5pbikgLSBmaW5kIG1pYmRlZnMuaCB3aGVuIG5vdCBidWlsZGluZyBpbiB0aGUgc291cmNlIHRyZWUKCmhhcmRha2VyICA0IE1hciA5OSAwOTozMzozMQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gZml4IGxvYWQgYXZlcmFnZSBvbiBzb2xhcmlzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjM4OjI4CiAgICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgICAtIHJlbW92ZWQgZWNlIHNwZWNpZmljIGNvbmZpZyBmaWxlcyBmcm9tIHRoZSByZXBvc2l0b3J5LgogICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6NDY6MzcKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCgpoYXJkYWtlciAgNCBNYXIgOTkgMTM6MTg6NDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KCm1zbGlmY2FrICA0IE1hciA5OSAxNToxMzowMAogICAgCiAgICAKICAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5Cgptc2xpZmNhayAgNCBNYXIgOTkgMTU6MjU6NTMKICAgIAogICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjI5OjI0CiAgICAKICAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwoKaGFyZGFrZXIgIDQgTWFyIDk5IDE1OjQ1OjAyCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICAgdm1zdGF0X2ZyZWVic2QyLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjE0OjE2CiAgICAtIChSRUFETUUuc211eCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSB1cGRhdGUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MjY6MjYKICAgIC0gKGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gZml4ZXMgZm9yIGR1cGxpY2F0ZSBkZWZpbmVzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjMyOjE2CiAgICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjUwOjE2CiAgICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgIG1lbW9yeS5jLCBhbGFybS5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDA6NTAKICAgIAogICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE3OjA3OjEwCiAgICAKICAgIChzb2xhcmlzLmgpIC0gdW5kbyBfU0xBU0hfUFJPQ19NRVRIT0RfIDogYW5vdGhlciB0aW1lCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6NTA6MjkKICAgIAogICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgIEZpeCBwcm90b3R5cGVzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE4OjExOjM3CiAgICAKICAgIChzbm1wX2FwaS5jKSAtIGV4cG9zZSBzbm1wX2ZyZWU7IHNubXBfcGR1X2FkZF92YXJpYWJsZSByZXR1cm5zIHB0ciB0byB2YXIgZm9yCiAgICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCgptc2xpZmNhayAgNSBNYXIgOTkgMDk6NDA6MTEKICAgIAogICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5IDogdHZfdXNlYyB3YXMgbWlsbGlzZWNzICwgcmV0dXJuIG5vdyA9IDAKCmhhcmRha2VyICA1IE1hciA5OSAxMDoxMToyOQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAgLSBleHBsaWNpdCBjb21wYXJpc29uIHdpdGggTUFUQ0hfRkFJTEVECiAgICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgIC0gVXNlIGRlZmluZWQgY29uc3RhbnRzIGZvciB2YXJpYWJsZSBpbml0aWFsaXNhdGlvbiBpbiB0aGUKICAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAgCQkgc2VlIHdoeSAicHJvZmVzc2lvbmFsIiBwcm9ncmFtbWVycyBzaG91bGQgYmUgZXhlbXB0IV0KICAgIAogICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKCmhhcmRha2VyICA1IE1hciA5OSAxMDoyMToyNQogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjQyOjQwCiAgICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCgptc2xpZmNhayAgNSBNYXIgOTkgMTE6MDI6MzQKICAgIAogICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KCmhhcmRha2VyICA1IE1hciA5OSAxNToxMzowMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6MzE6NTIKICAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KCmhhcmRha2VyICA1IE1hciA5OSAxNTozODozMgogICAgLSAodGttaWIpOiB1cGRhdGUuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6NTc6MzYKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgICBkaXNrLmgsIGVycm9ybWliLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLCBtZW1vcnlfc29sYXJpczIuaCwgcGFzcy5oLAogICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE2OjAyOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MTA6MzAKICAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjA4OjIxCiAgICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTE6NDgKICAgIC0gKG1pYklJL3N5c3RlbS5oKTogcmVtb3ZlZAoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjE5OjE0CiAgICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy41LjIgLT4gVjMuNS4zCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDc6MTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IGlmIGEgbWliIG1vZHVsZSByZXR1cm5zIGFuIGVycm9yID4gU05NUF9HRU5fRVJSLAogICAgICB0cmFuc2xhdGUgdGhlIGVycm9yIHRvIFNOTVBfR0VOX0VSUiBmb3IgdjEgcmVxdWVzdHMuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTM6MTkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyNSBTZXAgOTggMTY6NTM6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDI6MzkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcGVybCBlcSAtPiB0ZXN0ID0gKG9wcHMpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgZm9yIGEgbnVsbCBuYW1lLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjQyOjEwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHVzZSBhIG1lbXNldCB0byB6ZXJvIG91dCBuZXcgcG9pbnRlcnMgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoKaGFyZGFrZXIgMjggU2VwIDk4IDEzOjA5OjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBkb24ndCB1c2UgYSAmIG9uIG9zZjMgZm9yIGFycGNvbS5hY19lbmFkZHIuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6NDUKICAgIC0gKHNubXBfYXBpLmMpOiB0eXBlY2FzdCB0aGUgZGVmYXVsdCBjb21tdW5pdHkgc3RyaW5nIHRvICh1X2NoYXIgKikuCgpoYXJkYWtlciAyOCBTZXAgOTggMTU6NDI6MjEKICAgIC0gKG1lbW9yeS5jKTogL2V0Yy9zd2FwaW5mbyAtPiAvdXNyL3NiaW4vc3dhcGluZm8gZm9yIGhwdXgxMC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMSAtPiBWMy41LjIKCmhhcmRha2VyICA4IFNlcCA5OCAwOToyNjoxMwogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozMzoyNQogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozNTo1NQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMSApCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDU6MjQKICAgIC0gKE1ha2VmaWxlLmluKTogUHV0IGFuIEAgc2lnbiBpbiBmcm9udCBvZiB0aGUgbGFzdCBlY2hvIGxpbmUuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDY6MzUKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBVU0VEIC0+IEFWQUlMIHNpbmNlIHRoYXRzIHJlYWxseSB3aGF0CiAgICAgICAgd2UncmUgcmVwb3J0aW5nLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDA5OjUwOjIyCiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfZnJlZWJzZDIuaCk6CiAgICAgIC0gY29ycmVjdCB3b3JrIEkgc3R1cGlkbHkgbWFkZSB3aGVuIHRpcmVkLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDExOjAwOjQ0CiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjUuMi4KCm1hcnogIDkgU2VwIDk4ICAxODozMTowMAogICAgLSAoc25tcHRyYXAuYywgc25tcHRlc3QuYyk6IGFkZCBTT0NLXyBtYWNyb3MgZm9yIHdpbjMyIHN1cHBvcnQKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkKQ2hhbmdlczogVjMuNSAtPiBWMy41LjEKCmhhcmRha2VyIDIyIEp1biA5OCAwOToxNjozMgogICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMDoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYW4tPmh0bWwgbWFrZSBzcGVjaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU4OjAzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGZpeCAibnVtYmVyIG9mIHJldHJpZXMiIGJ1Zy4KICAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0Mzo1NgogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIGZpeGVzLgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjIyOjMyCiAgICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCgpoYXJkYWtlciAxNyBKdWwgOTggMTY6NTk6NTEKICAgIC0gKCopOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDA5OjI1OjMzCiAgICAtIChkaXNrLmMpOiBpbmNyZW1lbnQgaW5kZXggYnkgMSBzbyBpdCBkb2Vzbid0IHN0YXJ0IGF0IDAuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MDI6MTQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB2YXJpb3VzIGRvY3VtZW5hdGlvbiB1cGRhdGVzIGFuZCBub3Rlcy4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoyNQogICAgLSAoc25tcHRyYW5zbGF0ZS4xKTogbnJvZmYgZXJyb3IuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MjU6NDQKICAgIC0gKHNubXB0cmFwZC44KTogYnJvdWdodCB1cCB0byBkYXRlLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjEwOjA3CiAgICAtIChzbm1wLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjI0OjIyCiAgICAtIChhY2wuaCwgYXNuMS5oLCBtZDUuaCwgbWliLmgsIHBhcnNlLmgsIHNubXAuaCwgc25tcF9hcGkuaCwKICAgICAgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsIHZhY20uaCwgdmlldy5oKToKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9ucy4KCmhhcmRha2VyIDI5IEp1bCA5OCAxMzo0NDoyMgogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGluc3RhbGwgc2hvdWxkIGRvIGEgcmVhbCBtYWtlIGFsbCBmaXJzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1NzoxOAogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiBmaXhlcyBmb3IgdjJwYXJ0IG1vZHVsZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTU6NTc6NDIKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogZml4aXQgcHJvYmxlbXMgd2l0aCBhcnJheSBpbmRleCB3cm9uZy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo1MgogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZSBhZGRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjowNToyOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxpYndyYXAgY29tbWFuZCBsaW5lIGZpeGVzLgogICAgICAtIC0td2l0aC1sZGZsYWdzIGNvbW1hbmQgbGluZSBvcHRpb24gY3JlYXRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1NTozMgogICAgLSAobWliX2FwaS4zLCBzbm1wZC4xLmRlZiwgdmFyaWFibGVzLjUpOiB1cGRhdGVzIHRvIHJlbW92ZSBtaWIudHh0IHJlZmVyZW5jZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTg6MTEKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBsaWJyYXJpZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIGlmIGdldGhvc3RieW5hbWUgaXNuJ3QgaW4gb25lLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU5OjUwCiAgICAtIChzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCB0aGUgRVJST1JfTVNHKCkgbWFjcm8gdG8gdXNlIHNubXBfc2V0X2RldGFpbC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODoyMTo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYyk6IHVzYWdlIGZpeGVzIGFuZCAtbS8tTSB0byBzbm1wdHJhbnNsYXRlLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQyOjQ5CiAgICAtIChhdXRvX25saXN0LmMpOiBmaXggZm9yIHN0dXBpZCBhaXgga2VybmVscy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgLSAodWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgIC0gbWFrZSB0aGUgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlIHdvcmsgdW5kZXIgZnJlZWJzZDIuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDoyOQogICAgLSAoUkVBRE1FKTogQWRkZWQgdHdvIG5ldyBuYW1lcyB0byB0aGUgdGhhbmt5b3UgbGlzdC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDozNwogICAgLSAoc2Vkc2NyaXB0LmluKTogY29ycmVjdCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjUyCiAgICAtIChNYWtlZmlsZS5pbik6IENQUCBuZWVkcyB0byBjaGVjayBhZ2VudC9taWJncm91cCBmb3IgaGVhZGVycy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo1MjozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGFkb3B0IHVua25vd24gY2hpbGRyZW4gaW50byB0aGUgY29ycmVjdCBwbGFjZSBpZiBJTVBPUlRTIGFyZSBzY3Jld2VkIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA5OjMyOjQ1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEphbWVzIEguIFlvdW5nOgogICAgICAtIHVzYWdlIG91dHB1dCBjbGVhbiB1cC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxMzoxMwogICAgLSAoQ09QWUlORyk6IGNvcHlyaWdodCBjaGFuZ2UuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6MDYKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1hbGxvYyAtPiB4bWFsbG9jLgogICAgICAtIHBhcnNlciBjaGFuZ2VzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjE0OjU5CiAgICAtIChhdC5jKTogZml4ZXMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAzOjAyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6MjUKICAgIC0gKHNubXBfdmFycy5jKTogaW5fYV92aWV3KCk6IGNyZWF0ZSBuZXcgZnVuY3Rpb24sIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6NTAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9pbXBsLmgpOiBmaXggcmVhZC93cml0ZSBjaGVja3MuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzowNAogICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzoxNQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUxICkKCmhhcmRha2VyICAyIFNlcCA5OCAxMDo1NTo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wZC5oLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywgc3lzdGVtLmgsCiAgICAgIHRjcC5jLCBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCBtaWJfYXBpLjMsIHNubXBfYXBpLjMsCiAgICAgIHNubXBkLjEuZGVmLCBmcmVlYnNkLmgsIGZyZWVic2QyLmgsIG5ldGJzZC5oLCBhc24xLmgsIG1pYi5jLAogICAgICBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGVzLCBhcyB1c3VhbCAod2hlbiBpcyBldmVyeWJvZHkgc3RhcnRpbmcgdG8gdXNlIC1XYWxsCiAgICAgICAgLVdzdHJpY3QtcHJvdG90eXBlcyAuLi4uKQogICAgICAtIHNubXBkIHNlbmQgYW4gZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwIHdoZW4gaXQgdGVybWluYXRlcwogICAgICAtIHBvc3NpYmlsaXR5IGZvciBzZW5kaW5nIHYyYyB0cmFwcyAob3IgaW5mb3JtcyksIHZpYSB0cmFwMnNpbmsgZGlyZWN0aXZlCiAgICAgIC0gZml4ZXMgdG8gc25tcGxpYiBhbmQgc25tcHRyYXBkIGZvciBidWdzIHVuY292ZXJlZCB3aGVuIHNubXBkIHNlbmRzCiAgICAgICAgYW4gSU5GT1JNIGluc3RlYWQgb2YgYSBUUkFQCiAgICAgIC0gLW0gYW5kIC1NIG9wdGlvbiBmb3Igc25tcHRyYXBkCiAgICAgIC0gLUQgb3B0aW9uIGZvciBzbm1wdHJhbnNsYXRlCiAgICAgIC0gZml4ZXMgdG8gY29uZmlndXJlIHRvIGNvcnJlY3RseSBjYWxsIEFMTCBtb2R1bGUgaW5pdCBmdW5jdGlvbnMKICAgICAgLSBtYWpvciByZXdvcmsgb2YgdGNwLmMsIGZvciBuZXRic2QuIEkgaG9wZSB0aGlzIGlzIE9LIG5vdywgSSBoYXZlbnQgaGFkCiAgICAgICAgdGltZSB0byB0ZXN0IGl0IG9uIGFsbCBwbGF0Zm9ybXMgeWV0IC0gYnV0IHRpbGwgZnJpZGF5IDotKQogICAgICAtIHNubXBuZXRzdGF0IHByaW50cyB1ZHAgc29ja2V0IHRhYmxlCiAgICAgIC0gc29tZSBDTVVfQ09NUEFUSUJMRSBzdHVmZgogICAgICAtIG1hbiBwYWdlIGZpeGVzLCB3aXRoIGFuIGluY2x1ZGUgbGlzdCB0aGF0IHdvcmtzIQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU4OjEwCiAgICAtICh0Y3AuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAtICBDb21iaW5lIHRoZSB0d28gKGFsbW9zdCkgaWRlbnRpY2FsIG5vbi1zb2xhcmlzIGNhc2VzCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgTGludXggZW50cmllcyAoSW5FcnJzL091dFJzdHMpCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgU29sYXJpcyBlbnRyeSAoT3V0UnN0cykKCmhhcmRha2VyICAyIFNlcCA5OCAxMTowMzozMwogICAgLSAodGNwLmMpOiByZXZlcnNlIERhdmUncyBjaGFuZ2VzIHNpbmNlIHRoZXkgY29uZmxpY3Qgd2l0aCBOaWVscycuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MDMKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogdXNlIGNvcnJlY3QgbmFtZSBpbmRleCBmb3IgbG9va3VwcyBvbiB3cml0ZXMuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MzMKICAgIC0gKHNubXBfYWdlbnQuYyk6IGNoZWNrIHRvIG1ha2Ugc3VyZSBvcGVyYXRpb24gaXMgbm90IGEgU0VUIHdoZW4KICAgICAgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgc3VjaCBhcyBub1N1Y2hOYW1lLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE0OjA0OjQyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IGluY2x1ZGUgbW9kdWxlcyBub3QgcmVxdWVzdGVkIGV2ZW4KICAgICAgaWYgcmVxdWlyZWQgYnkgYW5vdGhlciBtb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MTA6NTMKICAgIHZlcnNpb24gdGFnICggMy41LjEucHJlMiApCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpuYmEgIDMgU2VwIDk4IDE0OjI5OjAzCiAgICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KCmhhcmRha2VyICA0IFNlcCA5OCAxMDowOTo0NwogICAgLSAoaW50ZXJmYWNlcy5jKTogZml4IGZvciBzZ2kncy4KCmhhcmRha2VyICA0IFNlcCA5OCAxNDoxNDoxOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHRvIGFsbG93IG5vbi1zb3VyY2UgZGlyZWN0b3J5IGJ1aWxkcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDoxMDowNQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpZmRlZiByZS1vcmRlcmluZyBmaXhlcyBmb3IgYWxwaGEvbGludXguCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDc6MDAKICAgIC0gKHByb2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNvbGFyaXMgMi42IGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ4OjA5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXRjaCBzdWJpZGVudGlmaWVyIGNvcnJlY3RseS4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTowOAogICAgLSAoYXNuMS5oKTogcmVtb3ZlIF9fUCgpIGRlZmluaXRpb24uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDk6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFsbG9jIGNvcnJlY3Rpb25zIGZvciBFTlYgdmFycy4uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTE6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5pdF9taWJfaW50ZXJuYWwoKSBjYWxscy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MzoxMQogICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybiBvbiB3aW4zMiBzeXN0ZW0gcm91dGluZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTU6NTEKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBOVUxMIHJldHVybiBieSBtYWxsb2MgcHJvdGVjdGVkLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjE3OjM2CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgZGVzY3JpcHRpb24gb2YgdGhlIHZpZXcgbWFzay4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgLSAobWVtb3J5X2ZyZWVic2QyLmgsIHZtc3RhdF9mcmVlYnNkMi5oKTogY3JlYXRlZCBmcm9tIG1lbW9yeS5oIGFuZCB2bXN0YXQuaAoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NDc6MzcKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmggZm9yIHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjU0OjE2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgbWFsbG9jIGNhbGxzIG1vcmUgY2FyZWZ1bGx5LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjE1OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgY29uZmlnLmggYXMgJChpbmNsdWRlZGlyKS91Y2Qtc25tcC1jb25maWcuaC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMzoyMToxOAogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oKToKICAgICAgLSBNRU1VU0VEUkVBTCAtPiBNRU1BVkFJTFJFQUwgKHR5cGVkZWYgcmVuYW1pbmcgdG8gbWF0Y2ggZnVuY3Rpb25hbGl0eSkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MDY6MjEKICAgIC0gKHRjcC5jKTogYmFjayBvdXQgTmllbHMnIGNoYW5nZXMgc2luY2UgdGhleSBicm9rZSBvdGhlciBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE0OjE5OjI0CiAgICAtIChNYWtlZmlsZS5pbihzKSk6IG1ha2UgZGVwZW5kcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxNjozOTo1OQogICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jKTogNjRiaXQgbG9uZyByZXR1cm4gY2xlYW4gdXBzLgoKbWFyeiAgNyBTZXAgOTggMTk6MDE6MDEKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluCgptYXJ6ICA3IFNlcCA5OCAxOTowMjowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4sZml4IHdpbjMyIGNvbXBpbGUgZXJyb3Igdy8gbm9uIGludGVncmFsc3dpdGNoIGNhc2UKCm1hcnogIDcgU2VwIDk4IDE5OjAzOjMzCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbiwgcmVzb2x2ZSBjb25mbGljdCB3LyBzdGQgbGliIGxvZyBmdW5jdGlvbgoKbWFyeiAgNyBTZXAgOTggMTk6MzA6MTEKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wZGVsdGEuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0ZXN0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICByZW5hbWUgYW5kIHN0YXRpYyBsaW5rIGRlYnVnIHRhcmdldHMsIGRsbCB0byBiaW4gZGlyLCBhZGRlZCBzbm1wdGVzdCwgc25tcHRyYXAsIHNubXBkZWx0YSBwcm9qZWN0cwoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNCAtPiBWMy41CgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MjEKICAgIC0gKEZBUSk6IHVwZGF0ZSB0byBjaGFuZ2UgYSBmZXcgdGhpbmdzLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjM4CiAgICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjU3CiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoxNDozMgogICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoyNDo1NAogICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4IGNvbW11bml0eSBuYW1lIGxlbmd0aCBwcm9ibGVtcyBhbmQgaW5jcmVhc2Ugc2l6ZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMToyNjo0NwogICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI3OjU5CiAgICAtIChjb25maWd1cmUpOiBtYWtlIG9mIGNvbmZpZ3VyZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMTozNDo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMDo1MwogICAgLSAoVE9ETyk6IHdpblNOTVAgbWVudGlvbi4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMToxMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IG1pYiBpbmZvcm1hdGlvbiBvbiB0aGUgY21kIGxpbmUuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgICAtIGNoYW5nZWQgYWxsIGhlYWRlciBmaWxlIGFuZCAjaWZkZWYgVVNJTkdfKiBsaW5lcyB0byByZWZsZWN0IHRoaXMuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6NTEKICAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTU6NDUKICAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gaW1wbGVtZW50IHNwZWNpYWwgZGF0YSB0eXBlcyB2aWEgb3BhcXVlczogZmxvYXQsIGRvdWJsZSwgaW50NjQsIHVpbnQ2NHMuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTY6MDcKICAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1Njo1NQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtYWtlIGl0IHBvc3NpYmxlIG5vdCB0byB1c2Ugb3BhcXVlIHNwZWNpYWwgdHlwZXMgd2l0aCBuZXcgY21kIGxpbmUgZmxhZy4KCmhhcmRha2VyICAyIEp1biA5OCAxNDoyMzoxNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfbmV0d29yay5jLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgICB2YXJfcm91dGUuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgICBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAgLSBBZGQgLXMvLVMgdG8gY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHByaW50aW5nIG9mIHNob3J0ZXIgb2lkcy4KICAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTE6MTAKICAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgICBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODoxNQogICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gbW92ZWQgaXBmd2FjYyB0byB1Y2RhdmlzLjEzIGFuZCByZW1vdmVkIF5NcyBhbmQgc29tZSBibGFuayBsaW5lcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODo0NAogICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjU5CiAgICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KCmhhcmRha2VyICAzIEp1biA5OCAxMTowNjo0NwogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgICAtIGltcGxlbWVudCBhIGR5bmFtaWMgbG9hZGluZyBtb2R1bGUgZm9yIGxvYWRpbmcgc2hhcmVkIG9iamVjdCBtaWIgbW9kdWxlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMToxMDo0OAogICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAgLSBtb3ZlZCB3b21iYXQgYW5kIGV4YW1wbGUgdG8gZXhhbXBsZXMvIGRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMToyNzoyNwogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW5jbHVkZSBtaWJJSS9zbm1wX21pYi5oLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI5OjA0CiAgICAtIChtaWIuYyk6IG1pc3NlZCBhIG5lZWRlZCBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBpZmRlZi4KCmhhcmRha2VyICAzIEp1biA5OCAxMjoxNzowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjM5OjEyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAgLSAtLXdpdGgtY2ZsYWdzPUNGTEFHUwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjQzOjQ3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXB0cmFwZC5jKToKICAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjUyOjI4CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgICAtIG1vdmUgY29uZmlndXJhYmxlIGRlZmluZXMgdG8gY29uZmlndXJlIHJhdGhlciB0aGFuIGluIGZyZWVic2QyLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTU6NDAKICAgIC0gKGkzODYuaCwgaTU4Ni5oLCBpNjg2LmgpOiByZW1vdmVkIHRoZXNlICh1bnVzZWQpIGhlYWRlcnMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MDI6MzQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IG5ldyAtLXdpdGgtY2MgYW5kIC0td2l0aC1jZmxhZ3MgYXJndW1lbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIxOjEwCiAgICAtIChocl9kaXNrLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgc25tcHNldC5jLCBhc24xLmgsCiAgICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyMzoxNAogICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI0OjU4CiAgICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI2OjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKCmhhcmRha2VyICA1IEp1biA5OCAxMDo1MjoxMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3QgZm9yIHNldGVudi4KCmhhcmRha2VyICA1IEp1biA5OCAxMDo1Mjo0MAogICAgLSAobWFrZXRhcmdldCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjU0OjMxCiAgICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgIC0gc2V0ZW52IGltcGxlbWVudGF0aW9uLgogICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KCmhhcmRha2VyICA4IEp1biA5OCAxMDo1MDoxMgogICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEyOjM0OjA5CiAgICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICAgb2JqZWN0IGZpbGVzIGluIHRoZSBhcHByb3ByaWF0ZSBzdWJkaXJlY3Rvcmllcy4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OTowOAogICAgLSAoUkVBRE1FKTogQWRkZWQgRXVnZW5lJ3MgbmFtZS4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OToyNQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MTI6MzcKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxNjoyNgogICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MjI6NTAKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgIC0gYmV0dGVyIGNvbW1lbnRzIGluIHNvbWUgcGxhY2VzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjU1OjUzCiAgICAtIChzbm1wX2FwaS5jKTogdW5kaWQgcmVkbyBvZiBjb21tZW50IG9mIGdldHRpbWVvZmRheSgpLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA3OjExOjQ0CiAgICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA4OjUzOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtICBzdGFydHMgdG8gc2VwYXJhdGUgb3V0IHRoZSBoaXN0b3JpYyBTTk1QdjIgc3R1ZmYuCiAgICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KCmhhcmRha2VyIDEwIEp1biA5OCAxNDoxNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCgpoYXJkYWtlciAxMCBKdW4gOTggMTU6MzA6NTkKICAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMToxMgogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTo0Nzo1OQogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KCmhhcmRha2VyIDEyIEp1biA5OCAwODo1MjoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCgpoYXJkYWtlciAxMiBKdW4gOTggMTA6MTI6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjo0MAogICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoxMgogICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoyNwogICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzozOQogICAgLSAod2luMzIvY29uZmlnLmgpOiBkb24ndCBoYXZlIHNldGVudi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzo1NwogICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQzOjQxCiAgICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzo0ODoyMQogICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxNToxNzo0NwogICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICAgaXQgc3RhYmlsaXplcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODoyMwogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1pc2MgdHlwZSBmaXhlcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODo1OAogICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDowMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjbGVhbnVwIGFuZCBjZW50cmFsaXphdGlvbiBvZiBjb21tb24gb3B0aW9ucy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDo1NAogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiY29weSAtPiBtZW1jcHkuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MTE6MjIKICAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjIxOjUzCiAgICAtIChSRUFETUUsIEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LCBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oKToKICAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KCmhhcmRha2VyIDE3IEp1biA5OCAxNToyNzoxMwogICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0MTowMAogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0NjozMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIEJTREkgdXNlcnMgYWdhaW5zdCAvdXNyL3VjYi9jYy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1ODowNQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NTk6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjAzOjQ4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpeCByZWdpc3Rlcl9taWIoKSB0byBpbml0IHBvaW50ZXJzIHRvIG51bGwuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTA6NTUKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgIHdlIHJlYWxseSBzaG91bGRuJ3QgKGJhZCBhcnRpZmFjdCBvZiBuZXcgdHJlZSBzdHJ1Y3R1cmUpLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjUzOjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6IG1lbXNldCB0byAwIHRoZSBlbnRpcmUgc3VidHJlZSBzdHJ1Y3QuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MDE6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTI6NTUKICAgIC0gKE5FV1MpOiBMYXN0IHVwZGF0ZSBmb3IgMy41LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMyAtPiBWMy40CgpoYXJkYWtlciAgMSBEZWMgOTcgMTI6NDQ6MjQKICAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMDg6NDY6NTAKICAgIC0gKHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDExOjU4OjUyCiAgICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDE0OjMwOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gaW5zdGVhZCBvZiBlcnJvciBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm8ncy4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODowMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTE6MDg6MTkKICAgIC0gKGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oKToKICAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMToxNDoxOAogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jLCBjb21tb25faGVhZGVyLmgpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzoyNgogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzo1OQogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAgLSBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMToyMDowNAogICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozMzo1OQogICAgLSAoaHJfZmlsZXN5cy5jKTogU29sYXJpcyBzcGVjaWZpYyBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozNToyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MTo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MjgKICAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MzkKICAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0Mjo1NAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQ2OjA4CiAgICAtIChocHV4LmMpOiAjaWZkZWYnZWQgb3V0IHVudXNlZCB3cml0ZUhQIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjMyOjIxCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgICAtIGZvcmsgaWYgc3lzbG9nIGVuYWJsZWQuCiAgICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KCmhhcmRha2VyIDIzIERlYyA5NyAxMjo0ODozMQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgIC0gZml4IHBhdGNoIHdoaWNoIG11bmdlZCBhYmlsaXR5IHRvIGdlbmVyYXRlIGJvdGggLVAgYW5kIC1zIHNpbXVsdGFuZW91c2x5LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQwOjM2CiAgICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDI6NDcKICAgIC0gKCopOiBUdXJuIGFsbCBkZWJ1Z2dpbmcgcm91dGluZXMgaW50byBsaWJyYXJ5IGNhbGxzIHRoYXQgY2FuIGJlCiAgICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgIC0gdm9pZCBzbm1wX3NldF9kb19kZWJ1Z2dpbmcoaW50KS4KICAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDQ6MzgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NzowOAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gYnJlYWsgdXAgY29tbW9uX2hlYWRlci5oLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjI3OjU0CiAgICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgICAtIGNsZWFuIHVwIHJlcXVpcmVkIGhlYWRlcnMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU2OjE4CiAgICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNTo1OTowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0IGlmIGRlYnVnZ2luZwogICAgICBpcyBvbiBvciBvZmYuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTY6MzA6NDcKICAgIHZlcnNpb24gdGFnICggMy40LnByZTEgKQoKaGFyZGFrZXIgMjkgRGVjIDk3IDA5OjM3OjA2CiAgICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE0OjAwOjAzCiAgICAtICh0a21pYik6CiAgICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgICAtIG1pc2MuLi4KCmhhcmRha2VyIDMwIERlYyA5NyAxNzowMTo1NwogICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjc6MzgKICAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODowMAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjg6MjIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODo0MgogICAgLSAoVE9ETyk6IHNubXB2MwoKaGFyZGFrZXIgIDUgSmFuIDk4IDE2OjI5OjM5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDE3OjMzOjA3CiAgICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxNDo1NAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTg6NTAKICAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jIHVwZGF0ZSB0byByZWZsZWN0IG1vdmVkIGhlYWRlcnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogbGluayBkaXJlY3RseSB0byBsaWIuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MjE6NTYKICAgIC0gKGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDA6MzYKICAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIERvY3VtZW50YXRpb24gdXBkYXRlIHRvIGZpeCBwYXRocyBmcm9tIHJlY2VudCBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQxOjM4CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGZpeGVzLgogICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQ0OjUxCiAgICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgIEJhZ2dlc2VuOgogICAgICAtIGhlYWRlciBjaGFuZ2VzIGFuZCBib29sZWFuIGNoZWNrIGNvcnJlY3Rpb25zLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjUxOjI3CiAgICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTY6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KCmhhcmRha2VyIDE2IEphbiA5OCAwOTo0NDo1NgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gU2hlc2hhZHJpIFlhZ2F0aToKICAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MDg6MzkKICAgIC0gKENPUFlJTkcpOiB1cGRhdGUuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MDEKICAgIC0gKCovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICAgY29uZmlndXJlLmluKToKICAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAgLSBhbGwgTWFrZWZpbGVzIG5vdyBpbmNsdWRlIGEgTWFrZWZpbGUudG9wIGZvciBlYXNpZXIgZnV0dXJlIGdsb2JhbCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjEyOjIyCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MzQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgoKaGFyZGFrZXIgMjEgSmFuIDk4IDE3OjMzOjI0CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCgpoYXJkYWtlciAyMSBKYW4gOTggMjI6MDU6NDQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY3JlYXRlIG0vIGFuZCBzLyBkaXJlY3RvcmllcyBhbmQgdXNlIHRoZW0gZm9yIHN1cHBsZW1lbnRhbCBjb25maWcKICAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgoKaGFyZGFrZXIgMjMgSmFuIDk4IDA4OjMwOjM1CiAgICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9uJ3QgY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGluIGxpbnV4J3MgRklMRV9UT19CVUYgbWFjcm8uCgpoYXJkYWtlciAyMyBKYW4gOTggMTE6MTk6MTIKICAgIC0gKGdlbmVyaWMuaCwgaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IG0vKi5oIGZpbGUgYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOTozMwogICAgLSAoYnNkLmgsIGdlbmVyaWMuaCwgbGludXguaCwgc3lzdi5oKTogcy8qIGJlZ2lubmluZ3MuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTI6MDIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgICAtIGNyZWF0ZSBuZXcgZnVuY3Rpb25zOgogICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgIC0gdW5yZWdpc3Rlcl9taWIoKS4KICAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjE0OjIwCiAgICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTU6MDUKICAgIC0gKGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjM0OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgIGV4dGVuc2libGUuYywgcGFzcy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKYW4gOTggMDg6NTc6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDA5OjAxOjA2CiAgICAtIChVQ0QtU05NUC1NSUIudHh0LCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MjQ6MTkKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCB2YXJfc3RydWN0LmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG5ldyBzdWJ0cmVlIHN0cnVjdHVyZSBzeXN0ZW0uCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDA6MjYKICAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MTo1MwogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgICAtIG1lcmdlIERhdmUncyBjb2RlIHdpdGggbWluZS4gIFN0aWxsIGEgZmV3IGJ1Z3MgdG8gd29yayB0aHJvdWdoLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQyOjE3CiAgICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MzoyOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0OTo1OQogICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBmb3IgYWRkcmVzcyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NTU6MjAKICAgIHZlcnNpb24gdGFnICggMy40LnByZTIgKQoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjQ5OjU2CiAgICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICAgY291bGQgST8KCmhhcmRha2VyIDMwIEphbiA5OCAxMzo1MDoyOAogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlndXJlKTogZGVmaW5lIGlmbmV0IGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNDozMTo1OAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMyOjEzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNToyNTowMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMpOiBmaXggZGVmYXVsdCBwb3J0IGZvciBzbm1wdHJhcC4KCmhhcmRha2VyICAyIEZlYiA5OCAwODo1Nzo0MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBmb3Igc2hhcmVkIGxpYnJhcnkgZXh0ZW5zaW9uIHcvbyBzaGFyZWQgbGlicmFyaWVzLgoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjI5OjQwCiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKCmhhcmRha2VyICA2IEZlYiA5OCAxMzo0NDo0NAogICAgLSAoaHJfZGlzay5jKTogY2xvc2UoKSBnb3QgY2F1Z2h0IGluc2lkZSBhbiBlbHNlIGl0IHNob3VsZG4ndCBoYXZlIGR1ZQogICAgICB0byBhbiBpZmRlZiBlcnJvci4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMDo1MwogICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTc6MTE6MjUKICAgIC0gKGdlbmVyaWMuaCwgaHB1eC5oLCBpcml4LmgsIGxpbnV4LmgsIHNvbGFyaXMuaCk6CiAgICAgIC0gdXBkYXRlIGZvciBhdXRvX25saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6MDIKICAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSB1c2UgYXV0b19ubGlzdC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzoxNwogICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6NTYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2VkIC0td2l0aC1zaGFyZWQtbGlicmFyaWVzIHRvIC0tZW5hYmxlLXNoYXJlZCB0byBtYXRjaCBvdGhlciBwa2dzLgogICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDQ6MzEKICAgIC0gKGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwgZnJlZWJzZDMuaCwgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgpOgogICAgICAtIGRlZmluZSBzeW1ib2xzIGZvciBhdXRvX25saXN0IHRvIHVzZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNjo1MwogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGZpeCBwcm90b3R5cGVzIG9uIG15IGJyb2tlbiB0YWJsZSB3YWxraW5nIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE3OjUyCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo0NQogICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTg6NTkKICAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMToyMDowMAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToxOTozMwogICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICAgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MDkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBwcyBhdXggc2hvdWxkIGRlZmluZSBhdXggbm90IC1hdXguCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MzMKICAgIC0gKGhvc3RfcmVzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODo0NAogICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBzb2xhcmlzIGZpeGVzLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI5OjA2CiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVuZGVmIElQX0ZPUldBUkRJTkdfU1lNQk9MIGJlZm9yZSBkZWZpbmluZyBpdC4KCmhhcmRha2VyIDExIEZlYiA5OCAxNjo0NDoxMwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgoKaGFyZGFrZXIgMTMgRmViIDk4IDA5OjA3OjMxCiAgICAtIChGQVEpOiB0eXBvOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCgpoYXJkYWtlciAxNyBGZWIgOTggMDk6NTA6NDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MzoxMgogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgICAtIHVzZSBhcHByb3ByaWF0ZSBtYWxsb2NzLCBhbmQgTlVMTCBpbml0aWFsaXphdGlvbiBvZiBwb2ludGVycy4KICAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgIC0gZW5hYmxlIHByaW50aW5nIG9mIHRoZSBubGlzdCB0cmVlIGlmIFRFU1RJTkcgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1NDowMQogICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAgLSBubGlzdCBzeW1ib2wgbmFtZSBlcnJvcnMuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MDY6MDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHZtc3RhdC5jLCB2bXN0YXQuaCwgdWNkX3NubXAuaCwKICAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODoxNTo1NgogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE2OjIxCiAgICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggYSBkZWJ1Z2dpbmcgc3RhdGVtZW50IChtaXNzaW5nIGEgdmFyaWFibGUpLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE4OjA1CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCBpcml4LmgpOgogICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBwb3J0IHRvIGlyaXguCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDU6MjAKICAgIC0gKHNlZHNjcmlwdC5pbik6IGRlZmluZSBMSUJESVIgYW5kIERBVEFESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDY6NDgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTM6MzE6MDcKICAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gdHVybiB0aGVzZSBtaWJzIGludG8gcmVhbCB0YWJsZXMuICBSZXF1aXJlZCBjaGFuZ2luZyB0aGUgbWliIHRob3VnaC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozNDo1NQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzo0NDoxMwogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgICB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MjU6NTMKICAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jLAogICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywKICAgICAgdm1zdGF0LmMpOgogICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgIC0gYnplcm8gLT4gbWVtc2V0LgoKaGFyZGFrZXIgMTggRmViIDk4IDE0OjMyOjA1CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBwcm90b3R5cGluZyBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjg6NTEKICAgIC0gKG9wZW5ic2QuaCk6IGNyZWF0ZWQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjk6NTgKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgIC0gYWRkZWQgb3BlbmJzZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMDo0NwogICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgIGdlbmVyaWMuaCwgaHB1eC5oLCBuZXRic2QuaCk6CiAgICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICAgbG90IHRvIGdvIHN0aWxsLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjE0CiAgICAtIChjb25maWcuaC5pbik6IG9wZW5ic2QgZGVmaW5lcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMzo0MwogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjUxOjE4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKCmhhcmRha2VyIDIwIEZlYiA5OCAwOToxOTowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KCmhhcmRha2VyIDIwIEZlYiA5OCAxMToxNToxNAogICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KCmhhcmRha2VyIDI1IEZlYiA5OCAwNzoyNzowOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgoKaGFyZGFrZXIgIDQgTWFyIDk4IDE1OjQ5OjMyCiAgICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXIgOTggMTQ6MDE6NTIKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGRpc2suYywKICAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsCiAgICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgICBtaWIuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEltcGxlbWVudCB0aGUgU05NUHYzIFZpZXcgQmFzZWQgQWNjZXNzIENvbnRyb2wgTW9kZWwgKFJGQyAyMjc1KS4KICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzowMQogICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAgLSByZW1vdmUgR0xPQkFMLVNFQ1VSSVRZIGNoZWNrcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzoxOQogICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDc6NDAKICAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDg6MzMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KCmhhcmRha2VyICA5IE1hciA5OCAxNzo0MDowNAogICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gaW1wbGVtZW50IHN5c09SVGFibGUuCiAgICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KCmhhcmRha2VyIDExIE1hciA5OCAwODowNjoxNwogICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgIC0gQ2hhbmdlICphbGwqIGRlZmluZSB1c2FnZSB0byBuZXcgU05NUF8gYW5kIEFTTl8gcHJlZml4ZXMuCiAgICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCgpoYXJkYWtlciAxMSBNYXIgOTggMDk6NDA6NDIKICAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAgLSBmaW5pc2ggY29udmVydGluZyBhIGZldyBvZiB0aGUgZmlsZXMgdGhhdCBOaWVscyBtaXNzZWQuCgpoYXJkYWtlciAxMSBNYXIgOTggMTA6MzA6NTAKICAgIC0gKHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6MTQ6MDkKICAgIC0gKCopOiBQYXRjaCBmcm9tIENyYWlnIEJldmlucyBmb3IgT3BlbkJTRAoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjI3OjAxCiAgICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgICBDcmFpZyBCZXZpbnM6CiAgICAgIC0gcG9ydCB0byBPcGVuQlNELgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjQ1OjQ2CiAgICAtICgqKTogcGF0Y2ggZnJvbSBHYXJyZXR0IFdvbGxtYW4gZm9yIEZyZWVCU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NTY6MzcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICAgV29sbG1hbjoKICAgICAgLSBmcmVlYnNkIDMgc3lzY3RsIGltcGxlbWVudGF0aW9ucy4KCmhhcmRha2VyIDExIE1hciA5OCAxNDo0MToxMQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICAgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgsIGhyX25ldHdvcmsuYywgaHJfbmV0d29yay5oLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmgsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBtYXNzaXZlIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgZml4ZXMuCiAgICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo0MjozNQogICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NDU6MjIKICAgIC0gKGhwdXguaCk6IHN3aXRjaCBpbmNvcnJlY3QgYXJwdGFiIHN5bWJvbHMuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTY6MTMKICAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjU3OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KCmhhcmRha2VyIDExIE1hciA5OCAxNzowNTo0MQogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KCmhhcmRha2VyIDE4IE1hciA5OCAwOToxNzo0MgogICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoxMDozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoyNjoyMgogICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSB3YWl0IGZvciBwaWQgYWZ0ZXIgZ2V0X2V4ZWNfb3V0cHV0KCkgd2l0aCBuZXcgd2FpdF9vbl9leGVjKCkgZnVuY3Rpb24uCgpoYXJkYWtlciAxOCBNYXIgOTggMTM6NTY6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICAgY29uZmlnLmgpOgogICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAgLSBtYWtlIHRoZSBhZ2VudCByZWFkIC5jb25mIGZpbGVzIGZyb20gU05NUFNIQVJFUEFUSDpTTk1QTElCUEFUSC4KCmhhcmRha2VyIDE4IE1hciA5OCAxNDowOTozMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCgpoYXJkYWtlciAyMiBNYXIgOTggMTg6MTM6NDEKICAgIC0gKHBhc3MuYywgcHJvYy5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDA5OjE1OjQ1CiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjEzCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgIC0gZml4IHRoZSByZWdpc3RyeSBtaWIgdG8gdXNlIHRoZSBuZXcgbW9kdWxlIHN0cnVjdHVyZS4KICAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNpbXBseSBkb24ndCBkZWZpbmUgQ0FOX1VTRV9OTElTVCBvbiBsaW51eC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NDowNgogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NjozNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo1OToyMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMjo0ODozMAogICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgIC0gaW50ZWdyYXRlZCBEYXZpZCdzIGNvZGUgdG8gcHJpbnQgY291bnRlcjY0cyBhcyBpbnRlZ2VycyByYXRoZXIgdGhhbiBoZXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTM6MDc6MDAKICAgIC0gKHYycGFydHkuYywgbWliSUkuYywgdmFjbV92YXJzLmMpOiBkZWNsYWlyIHJlZ2lzdHJhdGlvbiB2YXJpYWJsZXMgc3RhdGljbHkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTY6NDk6NTYKICAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCgpoYXJkYWtlciAyNiBNYXIgOTggMDc6MjI6MzAKICAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgICAtIHN3aXRjaCBhdXRvX25saXN0cyBjYWxsaW5nIG9yZGVyIG9mIF8gdnMgbm9uIF8gbG9va3Vwcy4KICAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDA5OjIwOjA0CiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgICAtIC1DICdjb21tYW5kJyBvbiB0aGUgY29tbWFuZCBsaW5lIHJ1bnMgdGhlIGNvbW1hbmQgYW5kIGZlZWRzIGl0CiAgICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgICBpbmZvcm1hdGlvbiBzZW50IHRvIHRoZSBzY3JpcHRzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjIxCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgIHByZXZlbnQgZXhpdGluZy4gIFVzZWQgZm9yIGRpc2tzLCBzaW5jZSBzb21lIG1pZ2h0IGJ5IHByb2Nlc3Mgb3IKICAgICAgICBuZnMgbW91bnRlZC4KCmhhcmRha2VyIDI3IE1hciA5OCAxMToyMDo1NAogICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIyOjM1CiAgICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjEwOjA1CiAgICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICAgQXJ0aHVyIEh5dW46CiAgICAgIC0gdGNwd3JhcHBlcnMgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKToKICAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDI6MTMKICAgIC0gKElOU1RBTEwpOiBkb2N1bWVudCBsaWJ3cmFwLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjQzOjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDEgQXByIDk4IDA5OjUyOjMyCiAgICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjI3OjA3CiAgICAtIChhdXRvX25saXN0LmMpOgogICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjMxOjI5CiAgICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjQ3OjU1CiAgICAtIChGQVEsIFJFQURNRSk6IG1vcmUgMy40IHVwZGF0ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NTM6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1NDoxMQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IG1vdmVkIHRoZSB2aWV3IGV4YW1wbGUgc2VjdGlvbiBhYm92ZSB0aGUgYWNjZXNzIHNlY3Rpb24uCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6MTA6MDcKICAgIC0gKFRPRE8pOiByZW1vdmVkIGEgZmV3IHRoaW5ncyEKCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MDo0NAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAgLSAoaW4gbW9zdCBjYXNlcyA6LT8pCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6NDM6MTQKICAgIHZlcnNpb24gdGFnICggMy40LnByZTYgKQoKaGFyZGFrZXIgIDEgQXByIDk4IDE2OjM1OjU5CiAgICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KCmhhcmRha2VyIDIwIEFwciA5OCAxMDozMTowOAogICAgLSAoc25tcGQuYyk6IGNoYW5nZSBvaWQgZnJvbSB0ZXh0dWFsIHRvIG51bWVyaWMgdG8gYWxsb3cgbm93IG1pYnMgdG8KICAgICAgYmUgbG9hZGVkLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU0OjI5CiAgICAtIChob3N0X3Jlcy5oLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICAgdG8gZm9sbG93KQogICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgIC0gU3BlZWQgdXAgZGlzayBzZWFyY2hpbmcgKGJ5IGNhY2hpbmcgaW52YWxpZCByZXN1bHRzIC0gYSAqbWFqb3IqIHdpbiEpCiAgICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1Njo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHN5cy9ka2lvLmgKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1OToxMgogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDozNgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDA6NTYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIG1vdmVzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAyOjEyCiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAzOjAzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIG90aGVyIGNsZWFudXBzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjAwCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAgLSBpbmNsdWRlIHN5cy93YWl0LmguCiAgICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjM0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdHlwZWNhc3QgYSBwb2ludGVyLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjAzCiAgICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSAjaWZkZWYgY2hlY2tzIG9uIHN5bWJvbHMgYW5kIGhlYWRlciBtb3ZlbWVudC4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNjoyMQogICAgLSAoc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB1bmRlZmluZSBhIGJ1bmNoIG9mIG5saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDc6MTAKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KCmhhcmRha2VyIDIyIEFwciA5OCAwNzo0OToyMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgd29yZGluZywgY2xlYW5lZCB1cCBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OCAwODozNToyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMDowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMjoyOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAgLSByZW51bWJlcmVkIGFnYWluLgogICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgIC0gcmVtb3ZlZCBsb2NrZCBzZWN0aW9uLgogICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTA6MjI6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0aGUgdGV4dHVhbCBkZXNjcmlwdGlvbnMgd2VyZSB1cGRhdGVkIHNvbWUuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MDM6MjYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3JlIGNsZWFuaW5nIGFuZCByZW5hbWluZy4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMjoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjA4CiAgICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjI0CiAgICAtIChocl9wYXJ0aXRpb24uYyk6IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBqdXN0IG9wZW5lZC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMzo1OAogICAgLSAoZGlzay5jKTogY2FsY3VsYXRlIHZmcyBibG9jayBzaXplIGlmIHBvc3NpYmxlIGFuZCBzaXplID4gMjU1IGJ5dGVzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMxOjMwCiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNjozMjowNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgpOiBuX3ZhbHVlIGlzIGEgbG9uZzoKICAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjQwOjQ1CiAgICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEwOjU5OjE5CiAgICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjA4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgICBzdGF0aWMgbGlicmFyeSBjYXNlcy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMTowMDo0NAogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gUHV0IHRoZSB3b3JkICJUaW1lb3V0OiAiIGluIGZyb250IG9mIHRoZSAiTm8gUmVzcG9uc2UiIGVycm9ycy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMzozMToxMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCgpoYXJkYWtlciAyNyBBcHIgOTggMTY6MjQ6MzQKICAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0NjoyOAogICAgLSAodGttaWIpOiBOZXcgbWliIG1lbnUgY29tbWFuZDogbG9hZCBhIG1pYiBtb2R1bGUgYnkgSUQgbmFtZS4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0ODowMgogICAgLSAodGttaWIpOiBidWcgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMDg6NTY6NDQKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggLUggaGVhZGVyIHByaW50aW5nLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjI2OjU4CiAgICAtICh0Y3AuYyk6IGRvbid0IHVzZSBUQ1BTVEFUX1NZTUJPTCB1bmxlc3MgZGVmaW5lZC4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDozNDoxMgogICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gbmxpc3QgY2xlYW51cHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6NDM6MDQKICAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOiBtb3JlIGNsZWFuIHVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMTo0MwogICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6MzI6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwdXQgdm1zdGF0IGJhY2sgaW4gYW5kIHJlbmFtZWQgdG8gc3lzdGVtU3RhdHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6NDE6NTgKICAgIC0gKHRrbWliKToKICAgICAgLSBkaXNwbGF5IHVubG9hZGVkIG1vZHVsZSBlcnJvci4KICAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCgpoYXJkYWtlciAgNiBNYXkgOTggMTE6MjI6NTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KCmhhcmRha2VyICA2IE1heSA5OCAxNDowNjo1NwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gYWRkZWQgaW50ZXJuYWwgdGFibGUgc2VjdGlvbi4KICAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMTQ6NTg6MjMKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIHV0aWxfZnVuY3MuaCwgdmVyc2lvbmluZm8uYywgdm1zdGF0LmMpOgogICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljKCkgaW4gYWxsIHVjZCBzcGVjaWZpYyBzY2FsYXIgbWlicywgYW5kIGV4YW1wbGUuW2NoXS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowNjo1OQogICAgLSAoTkVXUyk6IG1pbm9yIHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA3OjI4CiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgIC0gbmV3IGZ1bmN0aW9uOiBjYWxjdWxhdGVfdGltZV9kaWZmKHQxLCB0MikuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDg6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODozNwogICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KCmhhcmRha2VyICA2IE1heSA5OCAyMjoyODo0NwogICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA1OjU1CiAgICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDc6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzo0NgogICAgLSAocmVhZF9jb25maWcuYyk6IGRlYnVnIGluZm8gZm9yIGNvbmZpZyBmaWxlcyByZWFkLgoKaGFyZGFrZXIgIDggTWF5IDk4IDEwOjU3OjQ5CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KCmhhcmRha2VyICA4IE1heSA5OCAxMTowMToyNAogICAgLSAoaHJfc3dpbnN0LmMsIGhyX2Rpc2suYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgIDggTWF5IDk4IDE0OjUzOjM2CiAgICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KCmhhcmRha2VyIDExIE1heSA5OCAwODowODozNwogICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjUzCiAgICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA5OjU4CiAgICAtIChtaWIyYyk6CiAgICAgIC0gY291bnRlcjY0cy4KICAgICAgLSBjb25zb2xvZGF0aW9uIG9mIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KICAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6MzAKICAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjEwOjQ2CiAgICAtIChpbnQ2NC5jKTogYWRkIGluY3JCeVUzMigpLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjI5OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgc25tcGQuaCwgdmFyX3N0cnVjdC5oKTogUGF0Y2gKICAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHRoZSB0cmFwc2luayBkaXJlY3RpdmVzIGluIHNubXBkCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MDEKICAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbWUgcHJvdG90eXBlcyBmb3IgdGhlIGhyXyouYyBmaWxlcyAobmVlZHMgRGF2ZSdzIHJlY2VudCBwYXRjaCkKICAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjE4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjM3CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMTozMwogICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQgd2Ugc2hpcCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzI6MjcKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIENvcnJlY3Rpb25zIG9mIGRpc2sgZW50cnkgY2FwaXRpbGF6YXRpb24gcHJvYmxlbXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzQ6MzgKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAgLSBmaXggdGhlIHBhcnNlciB0byByZXBvcnQgdW5saW5rZWQgT0lEcy4gVGhpcyBkaWQgcmV2ZWFsIGFuIGVycm9yIGluIGEKICAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICAgQWN0dWFsbHkgdGhlIHBhcnNlciB3b3JrZWQgb2ssIGV4Y2VwdCBmb3IgdGhlIG1pc3NpbmcgZXJyb3IgbWVzc2FnZXMuCiAgICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgICBhbmQgcHJvcGVyIGhhbmRsaW5nIG9mIC0tIHBhcnRpYWwgbGluZSBjb21tZW50cyAtLSkuIFdhdGNoIG91dCEgdGhpcyBsYXN0CiAgICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6MTYKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBpbmNsdWRlIGEgZ2V0ZHRhYmxlc2l6ZSgpIGZ1bmN0aW9uIGZvciBocHV4OS4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMDo0MgogICAgLSAoTkVXUyk6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMToxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtdW5nZSBycG0gbGliIGNoZWNrIHRvIGxpbmsgd2l0aCAtbGRiIGFzIHdlbGwuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6MTE6MzIKICAgIC0gKGRpc2suYyk6IE5VTEwgLT4gMC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMTo0NToyMQogICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjUxCiAgICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNDo0OAogICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgICBwcm9jLmMsIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmMpOgogICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCgpoYXJkYWtlciAxMiBNYXkgOTggMTU6MTU6MDEKICAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjIyCiAgICAtIChpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IG1ha2UgaW50NjQuYyB1c2UgY291bnRlcjY0J3Mgc3RydWN0dXJlLgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjQyCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIyOjA5CiAgICAtIChpcC5jKTogaW5jbHVkZSBuZXQvcm91dGUuaCBhbmQgc3lzbG9nLmggZm9yIGJzZGkuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MTcKICAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjI1OjM5CiAgICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KCmhhcmRha2VyIDE0IE1heSA5OCAwNzoxNzozNAogICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMTo1NQogICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMjowOAogICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyNTo1NwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxMzoxNgogICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxNzozNgogICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgICBocl9zeXN0ZW0uaCwgaHJfdXRpbHMuYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gb2lkIHNlYXJjaGVyIGFsd2F5cyBpZ25vcmVzIGNhc2UuCiAgICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE5OjA1CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KCmhhcmRha2VyIDE1IE1heSA5OCAxMToxNzo0NAogICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE5OjEwCiAgICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5wbGcsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLnBsZywKICAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KCmhhcmRha2VyIDE4IE1heSA5OCAxMToxODoyMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDEzOjEzOjE4CiAgICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCgpoYXJkYWtlciAxOCBNYXkgOTggMTU6Mzk6MzgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQoKaGFyZGFrZXIgMTggTWF5IDk4IDE4OjE0OjE5CiAgICAtIChpbnQ2NC5jKToKICAgICAgLSBpbmNsdWRlIGhlYWRlciBjaGFuZ2VzIGZvciB3aW4zMi4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MToxNAogICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCgpoYXJkYWtlciAxOSBNYXkgOTggMTA6NDE6NDkKICAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzM6MDIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNDozMQogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzY6MTQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNzozMwogICAgLSAoc25tcF9pbXBsLmgpOiB2ZXJzaW9uIHNob3VsZCBiZSBhIGxvbmcuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6MjU6NDEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA4OjI3OjA2CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMiAtPiBWMy4zCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDQ6NTM6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDU6NDY6MTgKICAgIC0gKENoYW5nZUxvZyk6IHdob29wcy4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MDoyOAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gQ2hhcmx0b24gdG8gZml4IGxlYWRpbmcgc3BhY2VzIGluIHNlZHNjcmlwdC4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MTo1OAogICAgLSAoY29uZmlndXJlKik6IGJzZGkzIG5lZWRzIHRvIGRlZmluZSBic2RpMiwgbm90IGl0c2VsZiAoZHVoKS4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MjozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogbmVlZCAyIGxlYWRpbmcgJy0ncyBvbiAtLXdpdGgtbWliLW1vZHVsZXMgZmxhZy4KCndoYXJkYWtlIDI2IEp1biA5NyAyMzozOTozMgogICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDU6NTM6NTcKICAgIC0gKGFnZW50L3NubXBfe2FnZW50LHZhcnN9LmMsIGFsYXJtLmMsIGV2ZW50LmMsIGFwcHMvKiwKICAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAgLSBNZXJnZWQgYXJnIHBhcnNpbmcgb2YgYXBwcy8qIGNsaWVudHMgaW50byBvbmUgZmlsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1NDozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6MzM6MDgKICAgIC0gKHNubXB0ZXN0LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCBnZXQgLT4gZmdldCAnXG4nIHByb2JsZW0uCiAgICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjM4OjQzCiAgICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjQ5OjQ1CiAgICAtIChjb25maWcqLCBtZW1vcnkuYyk6IFBhdGNoIGZyb20gdmxhZEBtaXNlcnkucm9zcHJpbnQucnU6CiAgICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NTg6NDkKICAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gSGFuZGxlIG1pYiBtb2R1bGUgcmVwbGFjZW1lbnRzIHRocm91Z2ggbmV3IGZ1bmN0aW9uIGFuZCByZXBsYWNlbWVudCB0YWJsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNzoxOTo1MQogICAgLSAobWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMpOiBTdWdnZXN0aW9ucyBmcm9tIExhdWtrYW5lbiBNYXJra3UgTlJDL0hraToKICAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgoKd2hhcmRha2UgIDEgSnVsIDk3IDAxOjEwOjAwCiAgICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDU6NDE6NTgKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCwgaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjowMjo1NwogICAgLSAoYXBwcy8qLmMpOiBCZXR0ZXIgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIHVzYWdlKCkgc3RhbmRhcml6YXRpb24uCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDY6NDE6NDQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDc6MjA6MjUKICAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA4OjM3OjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKCndoYXJkYWtlICAzIEp1bCA5NyAyMzozMzoyMwogICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBtaWIuW2NoXSwgcGFyc2UuW2NoXSk6CiAgICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCgp3aGFyZGFrZSAgMyBKdWwgOTcgMjM6MzQ6MTQKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQoKd2hhcmRha2UgMjQgSnVsIDk3IDIzOjUwOjQ4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBFZGR5IEouIEd1cm5leTogIHVuY29tbWVudCBnZXR0aW1lb2ZkYXkoKSBjYWxsLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAwOjI5OjI0CiAgICAtIChUT0RPKTogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGJ5IGFwcHMuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDE6MTE6NTQKICAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgICAtIGltcGxlbWVudCBzdHJkdXAgaWYgbm90IGZvdW5kIGluIHN5c3RlbS4KICAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgIC0gdXAgbWF4aW11bSBkaXNrcyB0byA1MC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMTozMzozOAogICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gSW1wbGVtZW50IHJlYWwgcHJvY2VzcyB0YWJsZSB3YWxrcyBvbiBVbHRyaXguCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDI6MzQ6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgICAtIGZpeCBzd2FwIG9uIEhQVVggMTAuMjAKCndoYXJkYWtlIDEzIEF1ZyA5NyAwNDo0Nzo0OQogICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgoKd2hhcmRha2UgMTMgQXVnIDk3IDA4OjExOjQyCiAgICAtICh2ZXJzaW9uLmgsIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICAgcmVtb3ZhbCBtb3JlIHBvc3NpYmxlLiAgWW91IGNhbiBub3cgY29tcGlsZSB3aXRoIGFsbW9zdCBubyBtb2R1bGVzCiAgICAgICAgaW5zdGFsbGVkLgoKd2hhcmRha2UgMTQgQXVnIDk3IDAwOjQ2OjM4CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIG1haW4uYyk6CiAgICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDc6Mzg6MTcKICAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgIC0gcG9ydCB0byBBSVggNC4xLjUuCiAgICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTU6NDIKICAgIC0gKGNvbmZpZ3VyZSopOgogICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAgLSBiYWNrcXVvdGUgYSAuIGluIGEgc2VkIHJlZ2V4cCB0byB3YXRjaCBvdXQgZm9yIG1vZHVsZSBuYW1lcwogICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNjoxMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjM3CiAgICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjIxOjI2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgoKd2hhcmRha2UgMTUgQXVnIDk3IDAyOjMwOjU5CiAgICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgIC0gQ2hlY2sgZm9yIFNJT0NHSUZBRERSIGluIHN5cy9pb2N0bC5oIGFuZCB1c2UgaXQgaW4gZ2V0X215YWRkcigpIGlmCiAgICAgICAgZGVmaW5lZC4KCndoYXJkYWtlIDE1IEF1ZyA5NyAwNjo0NjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMyApCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjE6MjMKICAgIC0gKG1lbW9yeS5jKTogdHlwbyBpbiBpZmRlZi4KCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMTo0MQogICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE1OjIzCiAgICAtIChtaWJfYXBpLjMpOiBkb2MgYWRkaXRpb246ICBhZGRfbWliZGlyKCkgcmV0dXJuIHZhbHVlLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE2OjM2CiAgICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE5OjE2CiAgICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MjE6NTcKICAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNTozMzowMwogICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAgLSAoeWV0IG1vcmUgd2FybmluZyByZW1vdmFscyBhbmQgbWVtb3J5IGZ1bmN0aW9uIHN0YW5kYXJkaXphdGlvbnMgZnJvbSBOaWVscykuCiAgICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjUwOjA4CiAgICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjU4OjM2CiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gcmVtb3ZlIHRoZSBwcmludGYncyBmcm9tIHRoZSBsaWJyYXJ5IGFuZCBzZXQgYSBzbm1wICdlcnJubycgZXF1aXZhbGVudC4KCmhhcmRha2VyIDE1IE9jdCA5NyAxMjoxMjowMgogICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KCmhhcmRha2VyIDE1IE9jdCA5NyAxODo0MDozOAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAgLSAobWVtb3J5LmMpOiBmaXhlZCBhIG51bGwgcG9pbnRlciBwcm9ibGVtIHVuZGVyIGxpbnV4LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjQ1OjU4CiAgICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxMTo1MTozNAogICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgIC0gQ3JlYXRlZCBhIG5ldyBtaWJtb2R1bGUuaCBjb25maWd1cmF0aW9uIG1hY3JvIGNhbGxlZAogICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgIC0gQWxsIHJlbGF0ZWQgcGFyc2luZyBoYXMgYmVlbiBzdHJpcGVkIGZyb20gcmVhZF9jb25maWcuYyBhbmQgbW92ZQogICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAgLSBiYXNpYyAtV2FsbCBjbGVhbnVwcyBpbiBociogYXMgd2VsbCAobm90IG5lYXJseSBkb25lIHlldCkuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDU6MTQKICAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjA2OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgIC0gZG9uJ3QgcmVwb3J0IGFsbCBsaW5lcyBhcyBhbiBlcnJvciAob3BwcykuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6Mzg6MzMKICAgIC0gKG1pYi5jKTogRnJvbSBEYXZlOiAgcGF0Y2ggREVGQVVMVF9NSUJTIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjQ0OjM3CiAgICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNzowMTo0OAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE1OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUsIHdvbWJhdC5bY2hdKToKICAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE2OjU4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTg6MDE6NDYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgIGFkZCBhbmQgcmVtb3ZlIGFzIG5lZWRlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxOTo0Mjo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQzOjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDoxNTo1NAogICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDo0NTo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDA6NTcKICAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDExOjAxOjI3CiAgICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDI6NDYKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTQgKQoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjI1OjAzCiAgICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMTo1NAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMjowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzY6MzMKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkaWQgYSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCgpoYXJkYWtlciAyMiBPY3QgOTcgMTE6NDA6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gVHlwbydzIGZpeGVkIGJ5IE5pZWxzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDA5OjU2OjI2CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgIC0gbW92ZWQgYXJjaCBkZXBlbmRhbnQgbW9kdWxlcyAobWVtb3J5LCBocHV4LCBrZXJuZWxfc3Vub3M1KSBsb2FkcwogICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIHR5cGVjYXN0IGtsb29rdXAgY2FsbHMgZm9yIGZyZWVic2QyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjAzOjE1CiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcF92YXJzLmMpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSB2MmggLT4gdjJwLCB2MiAtPiB2MmMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDQ6MzMKICAgIC0gKGFwcHMvKi5jKToKICAgICAgLSBjaGFuZ2VzIGZvciBXSU4zMiBzdXBwb3J0LgogICAgICAtIHN1cHBvcnQgZm9yIGNvbW1hbmQgbGluZSBmbGFncyB3aXRob3V0IHNwYWNlcy4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE2OjQyCiAgICAtIChzbm1wbGliLyouW2NoXSk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gdjJoIC0+IHYycC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5vcHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyNQogICAgZmlsZSBsaWJzbm1wLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICBmaWxlIGxpYnNubXBfZGxsLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzQKICAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDEKICAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NAogICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ3CiAgICBmaWxlIHNubXB0cmFuc2xhdGUucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6MTEKICAgIC0gKGNvbmZpZyopIHdpbjMyIGhlYWRlciBjaGVja3MuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6NTAKICAgIC0gKGFnZW50L2tlcm5lbC5jLCBzbm1wX2FnZW50LmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCiAgICAgIC0gZnVudGlvbiByZW5hbWVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjE4OjE2CiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjE6NTMKICAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIHB1dCB0YWJzIGJhY2sgaW4gaGVscCBzdHJpbmcuCiAgICAgIC0gcHV0IHZlcnNpb24gc3RyaW5nIHJlcXVlc3QgYmFjayBpbi4KICAgICAgLSBtYWtlIGVycm9yIHN0cmluZ3MgYmV0dGVyIGFuZCBwdXQgYmFjayBpbiBwZXJpb2RzLgogICAgICAtIGRvbid0IGJvbWIgb24gdW5rbm93biBwYXJhbWV0ZXJzIGZvciBmdXR1cmUgdXNlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjIyOjIxCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHB1dCBzdHJkdXAgZGVjbGFpcmF0aW9uIGJhY2sgaW4uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjM6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hdXRoLmMpOgogICAgICAtIHJlbW92ZSAjaWZkZWYgT0xEIHJlcXVpcmVtZW50LgogICAgICAtIGNoYW5nZSBiYWNrIGludC0+bG9uZyBhcmd1bWVudCBjaGFuZ2UgZm9yIHNubXBfY29tc3RyX2J1aWxkLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjM3OjQ2CiAgICAtIChzbm1wbGliL3NubXAuaCk6CiAgICAgIC0gc25tcCB2ZXJzaW9uICNkZWZpbmUgY2xhaXJpZmljYXRpb24gb24gZnV0dXJlIGltcGxlbWVudGF0aW9ucy4KICAgICAgLSBtb3JlIGNsZWFybHkgc3RhdGUgcHVycG9zZSBvZiBmdXR1cmUgU05NUFYzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE2OjI2OjU3CiAgICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MzQ6NDUKICAgIC0gKHNubXBfYXBpLltjaF0pOiBmaXggcGVycm9yIGxvc3NlcyBmcm9tIG1lcmdlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjA0OjUxCiAgICAtIChocl8qLmMpOiBFUlJPUiAtPiBFUlJPUl9NU0cuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDU6MTIKICAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQyOjU1CiAgICAtIChzbm1wX3ZhcnMuYyk6IHR3byBtb2R1bGVzIGZvciBleHRlbnNpYmxlIGNvdW50LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjIyCiAgICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0Mzo1MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ0OjI3CiAgICAtIChzbm1wX2F1dGguYyk6IG1lcmdlIGJ1Z3MuICBNaXNzaW5nIGJyYWNrZXRzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ3OjAwCiAgICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDI6NTYKICAgIHdpbjMyIGZpbGVzCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDU6MzYKICAgIC0gKHdpbjMyKTogIGFkZCBmaWxlcyBvbiBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODozNgogICAgLSAoc25tcHdhbGsuYyk6IHJlbW92ZSBnb3Ryb290IHZhci4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODo1NwogICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoyNjo0MQogICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODozMTozNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNiApCgpoYXJkYWtlciAyOCBPY3QgOTcgMDk6NTY6MTEKICAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6MzA6NTUKICAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NDI6MjMKICAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NTQ6MjQKICAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTU6NTA6MDUKICAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MDk6NTcKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE3OjEwOjU4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBQYXRjaCBmcm9tIE5vYnVvX09rYWJlQHlva29nYXdhLmNvLmpwOgogICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTI6MDAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjQxOjU0CiAgICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDI6MDcKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjU3OjQ4CiAgICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgICAtICh3YXMgb3JpZ2luYWxseSBhIG1heGltdW0sIGJ1dCBJIGNoYW5nZWQgaXQgdG8gbWluaW11bSBpbnN0ZWFkKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjoxMQogICAgLSAoZGlzay5jKTogZml4IHBvaW50ZXIgcHJvYmxlbXMgZnJvbSBvbGQgcmVhZF9jb25maWcgZm9ybSB0byBuZXcuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6MDY6MzQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDoyNTozMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgICAtIChtb2RpZmllZCB0byBwb2ludCBhZ2VudCB0byBzYmluZGlyIGluc3RlYWQgb2YgZXRjZGlyKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDo0ODoxOAogICAgLSAoY29uZmlnKiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjU0OjA3CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG9wcHMsIGZvcmdvdCB0byBwdXQgaW4gQGV4ZWNfcGF0aEAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTE6MjA6NTQKICAgIC0gKGFjY29uZmlnLmgsIGFzbjEuYywgbWliLltjaF0sIHBhcnNlLmgsYXBwcy8qLGVycm9ybWliLmMsbG9hZGF2ZS5jLAogICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgIC0gU3VuT1M0IGNjIGRvZXNuJ3QgbGlrZSB1bnNpZ25lZCBsaXRlcmFscyBvciBzdHJ0b3VsLAogICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAgLSBjaGFuZ2VkIHRoZSBhcHBzIHRvIHByaW50IGFsbCBlcnJvciBtZXNzYWdlcyB0byBzdGRlcnIsCiAgICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6MjM6MjYKICAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NDM6NDQKICAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo1Nzo0OAogICAgLSAoY29uZmlnKik6IGNoZWNrIGFuZCBpbmNsdWRlIHN5cy9jZGVmcy5oIGluIGNvbmZpZy5oLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU4OjAxCiAgICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxNDowMDozOAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAgLSBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUgLT4gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQyOjU3CiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NDo1OAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgZm9yIGhwdXgxMCByZS1kZWZpbmluZyBwcm9ibGVtcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NToyMwogICAgLSAoaHJfZGlzay5jKTogbmV3IHZlcnNpb24gZm9yIGhwdXgxMCBzdXBwb3J0IGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYyk6IFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBidWcgZml4ZXMgYW5kIGhwdXgxMCBzdXBwb3J0LgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ2OjQ2CiAgICAtICh2YXJfcm91dGUuYyk6IGZyb20gRGF2ZSBTaGllbGQ6IGRvbid0IHByb3RvdHlwZSBtYWxsb2MuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDg6MDcKICAgIC0gKCopOiBtZXJnZSBmcm9tIERhdmUncyBwcmU2IHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NTI6MDAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIGRpc2suYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMpOgogICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1Njo1OAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6MDA6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAgLSBNYWtlZmlsZS5pbiBwYXRjaGVzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDE0OjQwOjA3CiAgICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTU6Mjk6NTAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI0OjIyCiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI1OjM1CiAgICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6Mjg6MDMKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozNzoxNAogICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozODozNgogICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjE5OjI0CiAgICAtIChhY2NvbmZpZy5oKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGRlZmluZSBfQ1JUSU1QIGZvciB1bml4IGR1ZSB0byBXMzIgYmFkIE9TIGRlc2lnbnMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6NTkKICAgIC0gKHNubXBnZXRuZXh0LmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjA6NTQKICAgIC0gKHBhcnNlLltjaF0sIHNubXBfY2xpZW50LmMpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCiAgICAgIC0gZGVmaW5lIGZpbmRfbm9kZSBleHRlcm5hbGx5LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjIyOjA5CiAgICAtICh3aW4zMi8qKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIHNwZWNpZmljIGNoYW5nZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6Mjg6NTkKICAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjE2OjUzCiAgICAtIChjb25maWd1cmUuaW4pOiB3YXRjaCBvdXQgZm9yIC91c3IvdWNiL2NjIG9uIHNvbGFyaXMgYW5kIGRvbid0IHVzZSBpdC4KCmhhcmRha2VyICA3IE5vdiA5NyAxNjozNzowMQogICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM4OjQ5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMCApCgpoYXJkYWtlciAxMiBOb3YgOTcgMDc6NDI6MjQKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogVzMyIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA4OjI2OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICAgaXMgbmljZSBmb3IgcGVvcGxlIHJlYWRpbmcgdGhlIGNvZGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTc6MDgKICAgIC0gKEZBUSk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzoyOAogICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE4OjAyCiAgICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCBmb3IgbGludXgvaHB1eDEwIHByb2JsZW1zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI1OjMwCiAgICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjQ2CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbGFyaXMgcGF0Y2hlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyODoxMQogICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjk6NDIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMwOjU3CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdmFyaW91cyAocmVtb3ZlIHVubmVlZGVkIHZhcnMsIGV0YykuCiAgICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMyOjIyCiAgICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMzOjIwCiAgICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgYWRkaXRpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjM4OjM2CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZXIgaW1wcm92ZW1lbnRzLgogICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDo0NDo0NwogICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6MTA6MjcKICAgIC0gKHN5c3RlbS5oKTogRG9uJ3QgaW5jbHVkZSBjb25maWcuaCEKCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxNjo0NAogICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToyMTo0MQogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6NDI6MDIKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNjowNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTEgKQoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjI3OjExCiAgICAtICh3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogZnVuY3Rpb24gY2hhbmdlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNTowMAogICAgLSAoKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNToyNwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDo0MzozMwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBmaXggcXNvcnQgcGFyYW1zIGZvciBTVERDLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQ3OjQ3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IFNUREMgdHlwb3MuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzE6NDEKICAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzI6MjYKICAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgoKaGFyZGFrZXIgMTQgTm92IDk3IDEyOjIxOjEwCiAgICAtICh3b21iYXQuYyk6IHF1aWNrIGRvYyBjaGFuZ2UuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MzU6MTkKICAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoJCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4zIC0+IFYzLjIKCndoYXJkYWtlIDExIEZlYiA5NyAxMjo0ODowNgogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjUwOjQ2CiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IFJlbW92ZWQgbm9uLWxpbnV4IHNwZWNpZmljIHN0dWZmLgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjU0OjM2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMToyMQogICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMjoxOQogICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjE5OjM3CiAgICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMDoxMQogICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjExOjI0CiAgICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMzozNAogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjE0OjA1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTEgKQoKd2hhcmRha2UgMTEgRmViIDk3IDE2OjQyOjAyCiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZGVzY2VuZCB3aGVuIG1ha2UgY2xlYW5pbmcuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDQ6MDgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTc6MDA6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0MTowOAogICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgIFRoZSByZXN1bHRzIG9mIGhpcyB3b3JrIGFyZSBpbiB0aGUgbmV3IGFnZW50L21pYmdyb3VwIGRpcmVjdG9yeS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0NzoxMwogICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo1MzoyNAogICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjA0CiAgICAtIChhbGFybS5jKTogdHlwZWRlZiBmb3IgZ2V0U3RhdFB0cigpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjM2CiAgICAtIChldmVudC5jKTogV2FzIHBhc3NpbmcgYW4gaW50IHRvIGJjb3B5IGluc3RlYWQgb2YgJmludC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMToyNQogICAgLSAoaWNtcC5jKTogZG9uJ3QgdXNlIHJldCB2YXJpYWJsZSwgc2luY2UgaXQncyBub3QgZGVmaW5lZC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMjozMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTY6MTE6MDkKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCgp3aGFyZGFrZSAgNCBNYXIgOTcgMTU6NDY6MzAKICAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICAgYnkgdGhlIC0td2l0aC1taWItbW9kdWxlcz0ibGlzdCBvZiBtb2R1bGVzIiBjb21tYW5kIGxpbmUgdG8gY29uZmlndXJlLgoKd2hhcmRha2UgIDUgTWFyIDk3IDA5OjQ5OjU5CiAgICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAgLSBuZXcgZmlsZXMgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZToKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaDogQSBsaXN0IG9mIGluaXRfd29tYmF0KCkgdHlwZSBmdW5jdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtaWIuaCBmaWxlcyBjYWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KCndoYXJkYWtlICA1IE1hciA5NyAxMDowMzo1OAogICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KCndoYXJkYWtlICA1IE1hciA5NyAxMToxNzo0NAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIwCiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODoyMwogICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0NQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6NDgKICAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNToxOAogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mzc6MzUKICAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTU6MDY6NDEKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjEzOjM4CiAgICAtIChhY2xfdmFycy5jKTogaW5jb3JyZWN0bHkgZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGZvciB3cml0ZV9hY2woKS4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoxNTo1NAogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjA2OjM0CiAgICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDc6MDcKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtb3JlIG5vbi1taWJncm91cCBzcGVjaWZpYyBjYWxscyBhbmQgaGVhZGVycy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTo1OToyOAogICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjA3OjUzCiAgICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjM0OjUzCiAgICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6NDM6MDgKICAgIC0gKGV4dGVuc2libGUvKik6IGN2cyByZW1vdmluZyBmaWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0OTowMAogICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDExOjQzOjA1CiAgICAtIChjb25maWcqKTogZ2VuZXJhdGUgYSBtaWJfbW9kdWxlX2NvbmZpZy5oIHdpdGggZGVmaW5lcyBvZiB3aGF0cyBiZWluZyB1c2VkLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjM5OjI0CiAgICAtIChtYWtlZGVwZW5kLmluKTogbmV3IG1ha2UgZGVwZW5kIHNjcmlwdAoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQwOjQwCiAgICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ2OjE1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0Nzo0NQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0ODo1OQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IHJlbW92ZSBleHRwcm90by5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6MTUKICAgIC0gKG1pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKTogZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUwOjUyCiAgICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUxOjMwCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE0OjAxOjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAxOjA1CiAgICAtIChtaWJncm91cC8qKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAyOjE4CiAgICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTY6MDk6NTgKICAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KCndoYXJkYWtlICA3IE1hciA5NyAxNjoxMTo1MAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KCndoYXJkYWtlIDEwIE1hciA5NyAxNjo1NTo0NgogICAgLSAoY29uZmlndXJlLmluKTogTmV3IGNvbmZpZ3VyZSBvcHRpb246ICAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPSJsaXN0Ii4KCndoYXJkYWtlIDEwIE1hciA5NyAxNzoyODoyOQogICAgLSAoY29uZmlndXJlLmluKTogc3BhY2UgcHJvdGVjdCBtb2R1bGVzIHdoZW4gY2hlY2tpbmcgZm9yIHdpdGggZ3JlcC4KCndoYXJkYWtlIDExIE1hciA5NyAwOTowNDowMwogICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgoKd2hhcmRha2UgMTEgTWFyIDk3IDE3OjM5OjIzCiAgICAtIChtaWJncm91cC8qKToKICAgICAgLSByZW1vdmUgdHJhaWxpbmcgO3Mgb24gYnVuY2hlcyBvZiBmdW5jdGlvbnMuCiAgICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBEb24ndCBjaGVjayBfS0VSTkVMIGlmIGlmbmV0LmlmX210dSBhbHJlYWR5IHdvcmtzLgoKd2hhcmRha2UgMTIgTWFyIDk3IDA5OjI4OjA0CiAgICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDc6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgICB2YXJfcm91dGUuW2NoXSwgaXAuW2NoXSwgc25tcC5bY2hdIC0+IHNubXBfbWliLltjaF0pOgogICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgICAtIE1vdmVkIHdyaXRlX3JvdXRlLmMgLT4gbWliZ3JvdXAvd3JpdGVfcm91dGUuYwoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjQ4OjM3CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjU1OjIwCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBkb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTc6MTU6MjAKICAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgoKd2hhcmRha2UgMTMgTWFyIDk3IDA5OjM3OjM3CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgoKd2hhcmRha2UgMTMgTWFyIDk3IDEwOjE0OjU5CiAgICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6MzU6MDUKICAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE0OjQ0OjU1CiAgICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM1OjI2CiAgICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTozNjoxNAogICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ1OjE0CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTo0NjoxNgogICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjowNzo1MgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTA6NTgKICAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjE3OjU5CiAgICAtIChhcHBzLyovTWFrZWZpbGUuaW4pOiBkZXBlbmQgcHJvYmxlbXMgZml4LgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjE3OjMyCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjQ3OjMyCiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAgLSBNb3JlIChzeW1ib2xpYykgZGVidWcgb3V0cHV0IGZyb20gc25tcGQsIHdoZW4gdXNpbmcgLVYuIC1kIGltcGxpZXMgLVYKICAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgIC0gc25tcG5ldHN0YXQgLXIgc2hvd3Mgbm9uLXN0YW5kYXJkIG5ldG1hc2tzCiAgICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICAgaW50ZXJmYWNlCiAgICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAgLSBhZGRzIGEgbWFrZXRhcmdldCBzY3JpcHQgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBwYXJhbGxlbCBzeW1saW5rZWQKICAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKCndoYXJkYWtlIDE0IE1hciA5NyAwOTozOToxNQogICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ2OjMxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo0Nzo0NwogICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NTA6MDMKICAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEwOjQ4OjM1CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDk6MDMKICAgIC0gKHVjZC1zbm1wLnR4dCk6IHJlbW92ZSB0aGUgbGFzdCBvZiB0aGUgc2VkIHNjcmlwdCBkZWZzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjAxOjE5CiAgICAtIChzbm1wZC4xLmRlZik6IFVwZGF0ZWQgdG8gaW5jbHVkZSAtYy8tQyBhbmQgU05NUENPTkZQQVRIIGVudiB2YXIuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDc6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4IHNlZHNjcmlwdCB0byBpbmNsdWRlIHMjIGFzIHdlbGwgYXMgcy8gY29tbWFuZHMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTc6MDYKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBydW4gb24gc25tcG5ldHN0YXQgZGlyIGFsc28uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTg6MTcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjA6MzkKICAgIC0gKHNubXBfdmFyc19ldmVudC5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjIyOjI5CiAgICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjUxOjU5CiAgICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTM6MjIKICAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU0OjIyCiAgICAtIChhY2NvbmZpZy5oLCB1Y2Qtc25tcC50eHQpOiByZWNvZ25pemUgbmV3IGhvc3RzIGZvciBzeXNPYmplY3RJZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1NTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKCndoYXJkYWtlIDE0IE1hciA5NyAxNjoxNjo1MgogICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTI6MzQKICAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTggTWFyIDk3IDE2OjUzOjI2CiAgICAtIChGQVEpOiBzbm1wLmNvbmYgLT4gc25tcGQuY29uZgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjQ5OjU0CiAgICAtIChtZW1vcnkuYyk6IHByb3RvdHlwZSB3cml0ZSBmdW5jdGlvbiBiZXR0ZXIuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTA6NDkKICAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgIHNjcmlwdCBpbiBDIGNvZGUuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjUxOjMzCiAgICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgoKd2hhcmRha2UgMjQgTWFyIDk3IDEzOjU2OjUwCiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMjUgTWFyIDk3IDA5OjM5OjAxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgc3lzbG9jYXRpb24gYW5kIHN5c2NvbnRhY3QgZXhhbXBsZXMuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMTM6MzA6MDUKICAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCgp3aGFyZGFrZSAyNiBNYXIgOTcgMTc6MDU6MTEKICAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgoKd2hhcmRha2UgMjIgQXByIDk3IDA4OjQyOjAxCiAgICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MDI6NTYKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjIwOjMwCiAgICAtIChSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYyk6CiAgICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6NDc6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IHJlbW92ZSBkdXBsaWNhdGUgKHdhcm5pbmcpIFRDUCBkZWZpbmVzIG9uIG9zZjQgc3lzdGVtcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo1MTo0NAogICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAgLSBjb25mb3JtIHRvIG5ldyBtb2R1bGUgc3RhbmRhcmRzIG9mIGNvZGluZy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNjo0MToxMAogICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgICAtIHN0YW5kYXJkaXplIGhlYWRlcnMgZm9yIGF1dG9jb25mLgogICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNzo0NTowOQogICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMjIgQXByIDk3IDIwOjQ5OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQoKd2hhcmRha2UgIDkgTWF5IDk3IDIyOjM4OjE1CiAgICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAgKHVzZXMgZW52IHZhcmlhYmxlcyBNSUJESVJTLCBNSUJTLCBhbmQgTUlCRklMRSkKICAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAgLSBUb2tlbnMgaW1wbGVtZW50ZWQgaW50ZXJuYWxseSBubyBsb25nZXIgcmVxdWlyZSBpbXBvcnRpbmcgdGhlCiAgICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6MzAKICAgIC0gKHNtdXguYywgY29uZmlnKik6CiAgICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6NDYKICAgIC0gKFRPRE8pOiBVcGRhdGUuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjM6NTI6NDAKICAgIC0gKHNtdXguW2NoXSk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6MDM6MzIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDoyODoyNQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgbmVnYXRpdmUgbnVtYmVycyBpbiBtaWJzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjQ2OjQ0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDo1MDoyMAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMgKGV2ZW4gYmV0dGVyKS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo0MToyMwogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZG9uJ3Qgc3VibWl0IGJsYW5rIGJ1Zy1yZXBvcnRzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQ1OjE0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo1MjoxMQogICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEwIE1heSA5NyAxNzoyMzoyMQogICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgIC0gbXVsdGlwbGUgdHJhcCBzaW5rcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0Mzo1OQogICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDQ6MTkKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogcmVtb3ZlZCBDQ0hBQ0sgPz8/LgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ4OjEzCiAgICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0OToyMwogICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NTI6NDgKICAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjI4CiAgICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjkKICAgIC0gKHVjZC50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMQogICAgLSAoRXRoZXJMaWtlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMzCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNQogICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM2CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNwogICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozOQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MAogICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQyCiAgICAtIChTTk1QdjItVE0udHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDMKICAgIC0gKFRDUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDUKICAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDYKICAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDgKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ5CiAgICAtIChSRkMxMjcxLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MQogICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NTIKICAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUyOjEyCiAgICAtICh1Y2QudHh0KTogd2hvb3BzLiAgUmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMTo1NzoxMAogICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAyOjI2CiAgICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMjowMzowNAogICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTQ6NDg6NTkKICAgIC0gKHVjZC1zbm1wLnR4dCk6IENoYW5nZWQgSUQgdG8gVUNELVNOTVAKCndoYXJkYWtlIDEzIE1heSA5NyAxNTowNToyOAogICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjUzCiAgICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MzY6MDgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjo1MQogICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gVUNELVNOTVAtTUlCLnR4dAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM4OjQ3CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTY6MjI6MTMKICAgIC0gKGNvbmZpZyosbWliLmMpOiBOZXcgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtZGVmYXVsdC1taWJzPSJsaXN0Omxpc3QiLgoKd2hhcmRha2UgMTQgTWF5IDk3IDExOjQxOjA5CiAgICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6MTM6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxODowMgogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6NDU6MjQKICAgIC0gKHNubXBkLmMpOiAgVHlwZWNhc3QgbWFsbG9jLgoKd2hhcmRha2UgMTQgTWF5IDk3IDE1OjAwOjIyCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTYgKQoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKCndoYXJkYWtlIDE1IE1heSA5NyAxMToyMzoyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjg6MTUKICAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjk6MzMKICAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjMwOjAxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGltcG9ydCBpbmRlbnRpZmllcnMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzE6MDEKICAgIC0gKFNOTVB2Mi1TTUkudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGNjaXR0IC0+IDAuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzI6NTYKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTQ6Mzc6MzkKICAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgIC0gc3VwcmVzcyAibmFtZSBjbGFzaCIgd2FybmluZ3MgZm9yIGFub255bW91cyBub2Rlcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNToyMjo1MQogICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MDE6MTgKICAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAgLSBDaGFuZ2VkIGVudiB2YXJpYWJsZSBNSUJGSUxFIC0+IE1JQkZJTEVTIChzaW5jZSBpdCBpcyBhIGxpc3Qgbm93KS4KICAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgIGxvbmdlciBsb2FkZWQpIGFuZCBtdXN0IGJlIHR1cm5lZCBvbiB0aHJvdWdoIGNvbmZpZ3VyZSBvciB0aGUgZW52IHZhci4KICAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MjI6MTkKICAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyNjoxMgogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjQzOjM3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCgp3aGFyZGFrZSAxNiBNYXkgOTcgMTE6MjU6MzAKICAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KCndoYXJkYWtlIDIwIE1heSA5NyAwODowMzozNQogICAgLSAodWRwLmMpOiBPbmx5IGRvIE1hcnRpbiBKYWNvYnNzZW4ncyBmaXhlcyBmb3IgZnJlZWJzZDIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTg6NDkKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjEyCiAgICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjI4CiAgICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjAgTWF5IDk3IDEwOjA4OjI1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQoKd2hhcmRha2UgMjAgTWF5IDk3IDExOjI0OjI3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjE4CiAgICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjU1CiAgICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxMDoxMzozOAogICAgLSAoTkVXUyk6IFVwZGF0ZSBmb3IgMy4yLgoKd2hhcmRha2UgMjEgTWF5IDk3IDE1OjM4OjMyCiAgICAtIChORVdTKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6NDA6MzEKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKd2hhcmRha2UgMjIgTWF5IDk3IDEzOjEzOjU5CiAgICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiByZXN0b3JlZC4gIEdvdCB0cnVuY2F0ZWQuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzU6MTQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzY6MTcKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MDIKICAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MzkKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzg6MTMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzo0MDowOQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggU05NUCBwZXJsIGFnYWluLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjMyCiAgICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KCndoYXJkYWtlIDIzIE1heSA5NyAxNjoyMzo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKCndoYXJkYWtlIDIzIE1heSA5NyAxNjozNDozMwogICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MDoyMAogICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1NjoxOQogICAgLSAoc25tcGNoZWNrLmRlZik6IG5ldyB2YXJpYWJsZXMgdG8gc2V0IHdhbGsvZ2V0L3NldCBjb21tYW5kIGxpbmUgdXNhZ2UuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTE6Mzg6NDEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAgLSBBbGxvdyBTWU5UQVggRGlzcGxheVN0cmluZyAoU0laRSgxLi4yNTUpKSBpbnNpZGUgT0JKRUNULVRZUEUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4yLjEgLT4gVjMuMS4zCgp3aGFyZGFrZSAxMCBKYW4gOTcgMDg6NDM6NDIKICAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjowMAogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjozNgogICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgoKd2hhcmRha2UgMTQgSmFuIDk3IDE2OjQ1OjMzCiAgICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgoKd2hhcmRha2UgMTcgSmFuIDk3IDA5OjI4OjU2CiAgICBwYXRjaCBuaWVscy4wCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTE6NDAKICAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgIC0gTmV3IGFyZyAtYyBGSUxFOiAgCSAgIFJlYWQgRklMRSBhcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhcyB3ZWxsLgogICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbiA6IHNlcGVyYXRlZCBwYXRoLgoKd2hhcmRha2UgMTcgSmFuIDk3IDExOjU4OjQ2CiAgICAtIChzbm1wZC5jKToKICAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTQ6NTU6MjgKICAgIERhdmUgU2hpZWxkIHBhdGNoZXMKCndoYXJkYWtlIDIwIEphbiA5NyAxMToxNzo1MwogICAgTmllbCdzIHBhdGNoZXMgaW50ZWdyYXRlZAoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjA5OjI1CiAgICAtIFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgICBpcC5pcEFkZHJUYWJsZS5pcEFkZHJFbnRyeS5pcEFkRW50UmVhc21NYXhTaXplLAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlSW5mbywgaXAuaXBOZXRUb01lZGlhVGFibGUsCiAgICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgICAtIGlwTmV0VG9NZWRpYS4KICAgIAogICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAtIHVkcE5vUG9ydCwgdGNwSW5FcnJzIGZpeGVzIGZvciBTb2xhcmlzLgogICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAgLSBzaW1wbGUgY29sZCBzdGFydCB0cmFwcyB2aWEgZXhlYygnc25tcHRyYXAnKS4KICAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjIyOjUzCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzc6MDgKICAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjM4OjU5CiAgICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTA6MzcKICAgIC0gKHNubXBfdmFycy5jKTogYnNkaSAjaWZkZWYgZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTU6NDUKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTg6NTEKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBzdHJpbmcgbGVuZ3RocyBvbiB2ZXJzaW9uIGRlc2MgYW5kIHN5c25hbWUuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6Mzg6MjAKICAgIHBhdHJpY2UuMSBwYXRjaAoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjQzOjI1CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgICAtIGZpeCByZXF1ZXN0IGRlbGV0aW9ucyBpbiBzbm1wX3JlYWQoKS4KICAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjU5OjAyCiAgICAtIChleHRlbnNpYmxlLmMpOiBQYXRjaCBmcm9tIHN4anpoYW5nQHNzcy5zc2kxLmNvbToKICAgICAgICAtIGZpeCBkaXNrIHJlcG9ydGluZyBvbiBzdW5vcyA0LjEuMyB3aXRoIE9EUyAxLjAuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6NTYKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6MDQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT46CiAgICAgIC0gI2lmIERPREVCVUcgLT4gI2lmZGVmIERPREVCVUcuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6NTIKICAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozNDozMgogICAgLSAoc25tcF9jbGllbnQuaCk6IHJlbW92ZSBzZWNvbmQgKHdyb25nKSBmdW5jdGlvbiBwcm90b3R5cGUuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDk6MTc6NDIKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT4KICAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KCndoYXJkYWtlIDI5IEphbiA5NyAxMDo0Nzo0MAogICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6MDAKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAgLSByZS1hcnJhbmdlZCBhIGJpdC4KICAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oKToKICAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowOTowNQogICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjEwOjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTE6MDQKICAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMToyOQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IHVwZGF0ZQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjU4OjQ2CiAgICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgIC0gSW1wbGVtZW50IHJlYWwgdHJhcHMuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDM6MTUKICAgIC0gKHZlcnNpb250YWcpOiBNb2RpZnkgLi4vLi4vYnVnLXJlcG9ydCBhcyB3ZWxsLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEzOjA4OjExCiAgICAtIChidWctcmVwb3J0KToKICAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDA5OjU4OjEwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6MDE6NTkKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgIC0gRml4IGNvbXBsaWF0aW9uIGVycm9ycyBvbiBic2RpMi4KICAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NDk6MDcKICAgIC0gKHZlcnNpb250YWcpOiB1aCwgY29tbWl0IGl0IGFnYWluLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjUwOjA0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjU5OjQzCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDExOjAzOjExCiAgICB2ZXJzaW9uIHRhZyB1cGRhdGUKCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMjoxMgogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6MDM6MTAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ2OjAyCiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ3OjA0CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAgLSBNYXJrIHN0dWZmIGZvciBsYXRlciBjaGFuZ2VzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ4OjA2CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTE6NTA6MjMKICAgIC0gKGNvbmZpZyopOgogICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgICAtIENoZWNrIGlmIF9LRVJORUwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgaXJpeCBhbmQgaWZuZXQgdXNhZ2UuCiAgICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo0NDo1MQogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IHR5cG86ICBuZWVkcyBhIHNwYWNlIGJldHdlZW4gJ3N0YXRpYycgYW5kICdzdHJ1Y3QnLgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ3OjU4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGFkZCBzb21lIGlyaXggYXBwcm9wcmlhdGUgaW5jbHVkZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NTE6MDQKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MTU6MTEKICAgIC0gKFJFQURNRSk6CiAgICAgIC0gYWRkZWQgRkFRIHBvaW50ZXIuCiAgICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgICAtIGJ1Zy1yZXBvcnQgc2NyaXB0IG1lbnRpb25lZC4KICAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjMzOjExCiAgICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjUzOjA0CiAgICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTU6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MDIKICAgIC0gKEZBUSk6IERhdmUncyBsYXRlc3QgcmV2aXNpb24uCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MzcKICAgIC0gKFRPRE8pOiBBZGRlZCBzdWdnZXN0aW9ucyBmcm9tIHVjZC1zbm1wLWNvZGVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNjo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNzoyNgogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTo0MTozOQogICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MDEKICAgIC0gKEZBUSk6IERhdmUgdXBkYXRlZCBhcmNoaXRlY3R1cmUgbGlzdHMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MzIKICAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MDc6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjExOjE1CiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAgLSB0cmFwIGdlbmVyYXRpb24gY2xlYW51cHMuCiAgICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjEzOjA5CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjIwOjEwCiAgICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjM6NDEKICAgIC0gKHRjbCwgdGssIHNubXB0Y2wpOiBOdWtlZC4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyNTowMwogICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI5OjU0CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6NDE6NTAKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6MDMKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6NTMKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFJlbW92ZSBtYWxsb2MgcHJvdG90eXBlLCBub3cgaW4gc3RkbGliLmguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIgLT4gVjMuMS4yLjEKCndoYXJkYWtlICA1IERlYyA5NiAwOToxMzo1NgogICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjE0OjU5CiAgICAtIChtZDUuYyk6IHJlbW92ZSBhbnNpIHNwZWNpZmljIEMgZmVhdHVyZXMgKHVuc2lnbmVkIGNvbnN0YW50cykuCiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4xIC0+IFYzLjEuMgoKd2hhcmRha2UgMTcgT2N0IDk2IDA3OjAyOjU4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQoKd2hhcmRha2UgMzAgT2N0IDk2IDEzOjQ3OjIxCiAgICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDk6MDkKICAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAgLSBDaGFuZ2UgZXh0ZW5zaWJsZSBtaWIgbG9jYXRpb24gdG8gdWNkYXZpcyBlbnRlcnByaXNlIG1pYjogMjAyMS4KICAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCgp3aGFyZGFrZSAzMSBPY3QgOTYgMTc6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBudW1kaXNrcyB3YXMgYmVpbmcgaW5jcmVtZW50ZWQgYmVmb3JlIGxhc3QgdXNhZ2UuCgp3aGFyZGFrZSAgMSBOb3YgOTYgMDg6NTQ6MTEKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAgLSBhc25fYnVpbGRfdW5zaWduZWRfaW50LCBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQ6CiAgICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgoKd2hhcmRha2UgIDQgTm92IDk2IDA5OjMwOjQ2CiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogIE1vcmUgaW5jbHVkZSBjaGVja3MgZm9yIGxpbnV4LgoKd2hhcmRha2UgIDQgTm92IDk2IDEwOjA4OjQ5CiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIG5saXN0IGluIC1sbWxkIChpcml4KS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToxNjo0NQogICAgLSBOZXRCU0QgMy4xLjAuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MjQ6MjMKICAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjM1OjUyCiAgICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOTo1NzoxNgogICAgLSAodmVyc2lvbnRhZyk6IE9ubHkgdGFnIHJlbGVhc2UgdmVyc2lvbnMgKEV4dCopLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjAwCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNjozOQogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNzoxNwogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxOTozMwogICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDM6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDY6NDYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4ZWQgJ3RvdWNoaXQnLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE0OjUwCiAgICAtIChleHRlbnNpYmxlLmMpOiBVc2Ugc3RhdGZzIGlmIHN0YXR2ZnMgaXMgdW5hdmFpbGFibGUuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTY6MjIKICAgIC0gKHNubXBfdmFycy5jKToKICAgICAgLSAjaWZkZWYgdHlwby4KICAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNzozNgogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAgLSBDaGVjayBmb3Igc3lzL3Zmcy5oLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjI0OjI0CiAgICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQzOjMzCiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBNYWtlIHVuYW1lIGNhbGxzIHdvcmsgY29ycmVjdGx5LgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQ0OjExCiAgICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwODoxODoyOQogICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOTowNjoxMAogICAgLSAoc25tcF92YXJzLmMpOiBNZXJnZSBmcm9tIEZyZWVCU0QyLTMtMS0xLgogICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOToxNDoyMgogICAgLSAoY29uZmlnKik6IEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAxMTozNToyOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS8qLmMsIG5ldzogZXh0cHJvdG8uaCk6ICBSZW1vdmVkIGFsbCAtV2FsbCB3YXJuaW5ncyEKCndoYXJkYWtlIDIyIE5vdiA5NiAxNDozODowNQogICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMTU6MTA6MzYKICAgIC0gKGV4dGVuc2libGUuYywgcmVhZF9jb25maWcuYyk6IHJlbW92ZWQgbW9yZSAtV2FsbCB3YXJuaW5ncy4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjoyNTowNwogICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgIC0gVGhlIGFnZW50IGRvZXNuJ3QgZXhpdCBpZiBpdCBjYW4ndCBvcGVuIC9kZXYva21lbS4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjo0NToyNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKCndoYXJkYWtlIDI1IE5vdiA5NiAwODo0NDowMwogICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgoKd2hhcmRha2UgMjUgTm92IDk2IDA5OjE1OjU3CiAgICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMjowNgogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIENoYW5nZSBjb21tZW50cyB0byByZWZsZWN0IHdoYXQgaXRzIGFjdHVhbGx5IGxvb2tpbmcgYXQuCiAgICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDM6NDcKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gUmVtb3ZlIHJldHVybigwKSBvbiB2b2lkIGluaXRfZXh0ZW5zaWJsZSgpLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjA2OjA0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMToyMAogICAgLSAoSU5TVEFMTCk6IFR5cG86ICAzLjEuMyAtPiAzLjAuMy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMTozNAogICAgLSAoUkVBRE1FKTogVXBkYXRlLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjM0OjEyCiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo0NTo0NgogICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo1Njo0NAogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBUcnVuY2F0ZSBzeXN0ZW0gbmFtZXMgYmV5b25kIFstX10uKi4KCndoYXJkYWtlICAyIERlYyA5NiAwODo1NTo0OQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgICAKICAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICAgaW50ZXJmYWNlIGluZGV4LgogICAgCiAgICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICAgcGFja2V0cy4gIFNvbWUgc3lzdGVtcyAoaS5lLiBIUC1VWCkgaGF2ZSBleHRlbmRlZCB0aGUgdWRwc3RhdAogICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgICAKICAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA0OjAyCiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gV3JvdGUgQUNfQ0hFQ0tfU1RSVUNUX0ZPUiBhbmQgdXNlIGl0LgogICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA1OjE3CiAgICAtIChtZDUuYyk6IFB1dCAnVSduc2lnbmVkIG1hcmtlciBhdCBlbmQgb2YgY29uc3RhbnRzIHRvIHJlbW92ZSBnY2Mgd2FybnMuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MDQ6MzMKICAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBGaXggYXJwIHRhYmxlIGZvciBocHV4LgogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MTQ6NDMKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHBhc3N0ZXN0KTogTW92ZSBwYXNzdGVzdCB0byB1Y2RhdmlzIHN1YnRyZWUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTQ6NTE6MjQKICAgIC0gKGVjZS1taWIuZGVmKTogVXNlZCAtPiBBdmFpbCBpbiBtZW1vcnkgc2VxdWVuY2UuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6MTY6MDkKICAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgIC0gUGFyc2VyIGZpeGVzIGZvciBtdWx0aXBsZSBub2Rlcy4KICAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgoKd2hhcmRha2UgIDQgRGVjIDk2IDA5OjQ5OjM4CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4wLjEgLT4gVjMuMS4xCgp3aGFyZGFrZSAxMSBTZXAgOTYgMDg6NDk6MTQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBGaXhlZCBjb21tdW5pdHkgbnVtYmVyIGNoZWNrcy4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNjo1NDo1OQogICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU5OjI2CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjAyOjQ3CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjE2OjU4CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgoKd2hhcmRha2UgMjUgU2VwIDk2IDE0OjE0OjUzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6MzA6NDYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBGcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgIGRpZmZlcmVudGlhdGVkIGZyb20gT2N0ZXRTdHJpbmdzIHdoZW4gdGhleSBhcmUgbG9va2VkIHVwIGluIHRoZQogICAgICAgIE1pYiBUcmVlLgoKd2hhcmRha2UgIDEgT2N0IDk2IDE1OjU0OjIyCiAgICAtIChleHRlbnNpYmxlLmMpOiBpbnQgLT4gZG91YmxlIHRvIHN1cHBvcnQgbGFyZ2VyIGRpc2sgc2l6ZXMuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTY6Mjg6NTIKICAgIC0gKGNvbmZpZyosIHJlYWRfY29uZmlnLmMpOgogICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowNTo0NwogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MDg6NTkKICAgIC0gKHBhc3MuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIHBhc3N0aHJ1IGV4aXN0YW5jZSBiZWZvcmUgcmV0dXJuaW5nIEVSUl9OT0VSUk9SLCBlbHNlCiAgICAgICAgcmV0dXJuIEVSUl9OT1NVQ0hOQU1FLgogICAgICAtIENvcnJlY3RseSBjaGVjayBmb3IgYW5kIHBhc3MgIm5vdC13cml0YWJsZSIgYW5kICJ3cm9uZy10eXBlIiBwYXNzIHJldHVybnMuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MTA6MzgKICAgIC0gKHNubXBfaW1wbC5oKTogIFR1cm4gb24gb2xkIENNVSBkZWJ1Z2dpbmcgc3RhdG1lbnRzIHdpdGggLS1lbmFibGUtZGVidWdnaW5nLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQzOjQwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogQWRkZWQgc25tcGdldC9zZXQgdG8gcGFzcyBleGFtcGxlLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ0OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ2OjA5CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgIC0gQWRkZWQgbm90ZSBhYm91dCBTTk1Qc2V0IGNvbW11bml0eSBzdHJpbmdzLgogICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgoKd2hhcmRha2UgIDQgT2N0IDk2IDEwOjAxOjIwCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAgLSAoc25tcGQuMS5kZWYpOgogICAgICAtIEFkZGVkIGEgRklMRVMgc2VjdGlvbi4KICAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQxOjQwCiAgICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQ5OjU5CiAgICAtIChwYXJzZS5jKTogIFByb3BlciBhdXRvY29uZiBkaXJlbnQgaGVhZGVycy4KCndoYXJkYWtlICA3IE9jdCA5NiAwODowMTo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KCndoYXJkYWtlICA3IE9jdCA5NiAwODo1MzowNgogICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KCndoYXJkYWtlICA3IE9jdCA5NiAwOToxMTo0MwogICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjEyOjIzCiAgICAtIChyZWFkX2NvbmZpZy5jKTogVXNlIGdldG1udGVudCBjb3JyZWN0bHkuICBQYWluLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjIyOjQ3CiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gYWRkZWQgLS1yZWNoZWNrIHRvIGNvbmZpZy5zdGF0dXMgY2FsbCB0byByZWdlbmVyYXRlIHNlbGYuCiAgICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjM6MzIKICAgIC0gKGV4dGVuc2libGUuYyk6IENob21wIG5ld2xpbmUgb24gdW5hbWUgb3V0cHV0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjI0OjEyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogQWRkZWQgJ3N5c2NvbnRhY3QnIGFuZCAnc3lzbG9jYXRpb24nIHBhcnNpbmcuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDA6MTAKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDE6MjUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgZXh0cmEgYXJncyBmcm9tIHN0cmNweSAod2FzIHN0cm5jcHkpLgoKd2hhcmRha2UgIDcgT2N0IDk2IDExOjAyOjQ2CiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEyOjIzOjA1CiAgICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MjcKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBBZGRlZCBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbi4KCndoYXJkYWtlICA5IE9jdCA5NiAwODowNDoxNAogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KCndoYXJkYWtlICA5IE9jdCA5NiAwODozMDoyOQogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gcHJpbnQgYSBuZXcgbGluZSBpbiBwcmludF9lcnJvcigpIGlmIGRlYnVnZ2luZyBpcyB0dXJuZWQgb24uCiAgICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozNjowMwogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gc3RybmNtcCAtPiBzdHJuY2FzZWNtcC4KICAgICAgLSBOVUxMIC0+IDAuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTQ6Mzg6MDUKICAgIC0gKGV4dGVuc2libGUuYyk6CiAgICAgIC0gc29ydCBwYXNzIHRocnVzIGJ5IG1pYm9pZCB0byBwcmV2ZW50IHBhc3Npbmcgb2ZmIHRvIHdyb25nIG9uZS4KICAgICAgLSB0eXBvczogIGV4c3RlbiAtPiBleHRlbi4KICAgICAgLSBpbml0X2V4dGVuc2libGUoKSBjYWxscyB1cGRhdGVfY29uZmlnKCkgdG8gcmVkdWNlIGR1cGxpY2F0aW9ucy4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToxODo0MgogICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAgLSBGcmVlIHBkdSBjb21tdW5pdHkgdG8gcXVlbGNoIHB1cmlmeS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToyMjoyMwogICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xIC0+IFYzLjEuMC4xCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6MzY6MDgKICAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjA1CiAgICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNzozNgogICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxNjo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU4OjAzCiAgICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwoKd2hhcmRha2UgMjcgQXVnIDk2IDA4OjQ2OjQzCiAgICAtIChleHRlbnNpYmxlLmMpOiAgRnJlZUJTRCBjaGFuZ2VzIGFuZCB1c2UgZ2V0bG9hZGF2ZyBpZiBhdmFpbGFibGUuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDc6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwOTowMToxMAogICAgLSAoc25tcHRyYXAuYyk6CiAgICAgIC0gRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjM4OjMzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjAwOjE1CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjA0OjU2CiAgICAtIChhdXRvY29uZiopOgogICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgICAtIE5ldyBrZXJuZWwgbG9jYXRpb246ICAva2VybmVsIChpY2spLgogICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo0MjoyMAogICAgLSAoZXh0ZW5zaWJsZS8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gY2xlYW5lZCB1cCBnY2Mgd2FybmluZ3MuCiAgICAgIC0gZml4ZWQgYSBzcGVsbGluZyBlcnJvci4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo1OTo1NQogICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgIC0gR3JlYXRseSBpbXByb3ZlZCBzbm1wdHJhcC4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowMzoxMgogICAgLSAobWFuL3NubXB0cmFwLjEpOiAgYWRkZWQgYnkgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNjoyMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjUwCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNzo1NgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA4OjI4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTo1ODoxMAogICAgLSAoc25tcHN0YXR1cy5jKTogUGF0Y2ggZnJvbSBUcmV2b3IgQm91cmdldCA8dGJvdXJnZXRAcXVhbGNvbW0uY29tPgogICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MDM6NDQKICAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MjI6MjUKICAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6Mjk6MTAKICAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjM6MDUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmVkIC1YcyBmbGFnIGZvciBnY2Mgb24gc29sYXJpcy4KICAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzo0MgogICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjQ6MzEKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiAgQWRkZWQga2VybmVsX3N1bm9zNS5vIHRvIHNubXB0cmFwIGZvciBnZXRLc3RhdC4KCQp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MzQ6MDkKICAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDo0OAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKCndoYXJkYWtlIDMwIEF1ZyA5NiAxMDoxNToxOAogICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDExOjQ5OjM4CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMC43LjIgLT4gVjMuMQoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM0OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM1OjI3CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKQogICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6Mzc6MTcKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSBTb2xhcmlzIGZpeCBmb3IgaW50ZXJmYWNlcy4KICAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6NDA6MTgKICAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI0OjAwCiAgICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzoyNzo0MAogICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzozMzoxMgogICAgLSAoYWNjb25maWcuaCxhZ2VudC97TWFrZWZpbGUsc25tcF92YXJzLmN9LGFnZW50L2V4dGVuc2libGUvbWFueSk6CiAgICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KCmhhcmRha2VyICA5IE1heSA5NiAxNjoxNDoyOAogICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICAgc25tcGxpYi97bWliLHNubXBfY2xpZW50fS5jKToKICAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgoKaGFyZGFrZXIgMTAgTWF5IDk2IDEwOjI3OjE0CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBIHBhdGNoIHRvIGZpeCBhIHZpcnR1YWwgaW50ZXJmYWNlIHByb2JsZW0uCiAgICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgoKaGFyZGFrZXIgMTAgTWF5IDk2IDE4OjE2OjU3CiAgICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTY6NDUKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogZXhlYyBOYW1lcyB3ZXJlIGdldHRpbmcgaW5jbHVkZWQgaW4gdGhlIGNvbW1hbmQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTc6NDMKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgcmUtc3RhcnRpbmcgYWdlbnQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTg6NDQKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTk6MzAKICAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDg6NTk6NTEKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcGFzcy5jKSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjAyOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIFBhdGNoIGZyb20gIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDU6NDkKICAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA2OjQ5CiAgICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA3OjM1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6Mjk6MjEKICAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6NTA6MTUKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MToxMgogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKTogYW5zaSBzZW1hbnRpYyBmaXggZm9yICc8Jy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MTozNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuQTEgKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAwOjU3CiAgICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KCmhhcmRha2VyIDE1IE1heSA5NiAxMjowMzo1NAogICAgLSAoUkVBRE1FKSBBZGRlZCBhIG5vdGUgKHBvaW50ZXIgdG8gZG9jcykgb24gdGhlIGFnZW50J3MgZXh0ZW5zaWJsaXR5LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjIzOjQwCiAgICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpIHJlbW92ZWQgJiBpbiBmcm9udCBvZiBhcnJheSBwYXNzZWQgYXMgYXJnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjM1OjE2CiAgICAtIChzZWRzY3JpcHQuaW4pIEZpeGVkIGEgaG9ycmlibGUgdHlwby4gIFAgLT4gUFJFRklYCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTA6MjgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgoKaGFyZGFrZXIgMjIgTWF5IDk2IDA4OjUxOjAxCiAgICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1MDoyNAogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYywKICAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgICAtIGZpbmFsbHkgbmFpbGVkIHRoYXQgbWlzc2luZyBpbml0aWFsaXphdGlvbiB0aGF0IGdhdmUgcHJvYmxlbXMKICAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICAgYXR0YWNoZWQgcGF0Y2guCgpoYXJkYWtlciAyMiBNYXkgOTYgMTI6NTU6MzMKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSByZXdvcmtlZCB0aGUgd2F5IHNubXBuZXRzdGF0IC1pIHdvcmtzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjQzOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbid0IGRlZmluZSByYW5kb20gaWYgaXQgYWxyZWFkeSBleGlzdHMuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MTUKICAgIC0gKGV4dGVuc2libGUuYyk6ICBBZGRlZCBhIGRpc2sgd2FybmluZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MzkKICAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo1Njo0MgogICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE2OjI4OjA4CiAgICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAoKaGFyZGFrZXIgMjMgTWF5IDk2IDE3OjA5OjI0CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBmaXhlZCBkaXNrIGNoZWNrcyBvbiBTb2xhcmlzIGFuZCBhbHBoYSdzCiAgICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6NDg6MDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEyOjIzOjUyCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6Mzk6NTEKICAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDg6MjgKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTowMgogICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDk6NTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBpZmRlZiBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTA6MzQKICAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjEzOjIxCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogIG5vdGUgb24gY3JlYXRpbmcgY29tbWVudHMgYWRkZWQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6Mzg6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAjaWZkZWYgdHlwbwoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU0OjI1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICBkZWZpbmUgbWVtbW92ZSBpZiBub3QgZGVmaW5lZCBhbmQgbWVtY3B5IGlzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU1OjE0CiAgICAtIChpZi5jLCByb3V0ZS5jKTogY2FzdCByZXR1cm5zIGZyb20gaW5kZXggdG8gY2hhciAqLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE0OjAyOjUzCiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6NTM6MjAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBwcmludGYgLT4gRE9ERUJVRyBjaGVjawoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI4OjQxCiAgICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKCmhhcmRha2VyIDI0IE1heSA5NiAxNToyOToxMwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjI5CiAgICAtIChzbm1wX3ZhcnMuaCk6IHJlb3JnYW5pemVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43LjEgLT4gVjMuMC43LjIKCk5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+IDEgTWF5IDk2IDEyOjM3OjM1CiAgICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgICJTb21lIGFyZSBteSBvd24sIG90aGVycyBhcmUgZnJvbSBZdXJpIFJhYm92ZXIgd2hvIG9yaWdpbmFsbHkKICAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgIGJ1dCBpdCBhbHNvIGZpeGVzIGEgc2VyaW91cyBwcm9ibGVtIGluIHRoZSBhZ2VudCwgd2hlcmUgd2Fsa2luZwogICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICAgaW50ZXJmYWNlcy4iCgpoYXJkYWtlciAgMSBNYXkgOTYgMTM6NTQ6MTgKICAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NToxNgogICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNToyMwogICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MDkKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM3OjI1CiAgICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjU2OjIxCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43IC0+IFYzLjAuNy4xCgpoYXJkYWtlciAyNSBBcHIgOTYgMTI6MTg6NDMKICAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC42IC0+IFYzLjAuNwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjExOjM5CiAgICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjEyOjIyCiAgICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKCmhhcmRha2VyICA1IEFwciA5NiAxNjoxNToxMQogICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTk6MzUKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjA4CiAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNDo1MTo0MgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCgpoYXJkYWtlciAxMiBBcHIgOTYgMTY6NDk6MjMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAogICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAgKGFscGhhLCBocHV4MTAuMDErLCBuZXRic2QpIHNpbmNlIGhwdXgxMCBkb2Vzbid0IGhhdmUgNC4zIGNvbXBhdCBzdHJ1Y3RzLgogICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgICAtIChjb25maWd1cmUuaW4pCiAgICAgIC0gQ2xlYW5lZCB1cCBrZXJuZWwgY2hlY2tpbmcKICAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxMjo1Mzo0MAogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgIC0gKGNvbmZpZ3VyZSkgRml4ZXMgZm9yIHR5cGUgY2hlY2tpbmcgb2YgNC40IHJ0ZW50cnkgc3RydWN0dXJlcyBvbiBhbHBoYXMuCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MTE6MzkKICAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgICAtIChjb25maWd1cmUpIGJ1ZyBmaXhlczogIHdhc24ndCBxdW90aW5nIGtlcm5lbCBhbmQgZG1lbSBsb2NhdGlvbi4KICAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MzY6NDgKICAgIC0gKGFnZW50L3NubXBkLmMpIEZpeGVkIDIgZ2V0dGltZW9mZGF5IGNhbGxzIC0tIGFkZGVkIGEgTlVMTCB0aW1lem9uZSBwdHIuCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDc6MTgKICAgIC0gKGNvbmZpZ3VyZSkgSSBmb3Jnb3QgRE1FTV9MT0MgbmVlZHMgdG8gYmUgI3VuZGVmJ2VkIGlmIG5vdCBmb3VuZAoKaGFyZGFrZXIgMTYgQXByIDk2IDA5OjQ4OjA2CiAgICAtIChhZ2VudC97cm91dGVfd3JpdGUuYyxzbm1wX3Zhcl9yb3V0ZS5jfSkgT1NGMy4yIHNwZWNpZmljIGNoYW5nZXMuICBhcmcuCgpoYXJkYWtlciAxNiBBcHIgOTYgMTg6MDg6MjkKICAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjowNgogICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6MzY6NTAKICAgIC0gKGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKSBJbmNsdWRlIHVmcy9mZnMvZnMuaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6Mzc6MTMKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKCmhhcmRha2VyIDI0IEFwciA5NiAwODozODoxOAogICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo0NDo0NQogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSByZW1vdmVkIGFycCB0YWJsZXMgZm9yIG5ldGJzZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDowNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDozOQogICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowMDoyMQogICAgLSAoUkVBRE1FKSB1cGRhdGVkCgpoYXJkYWtlciAyNCBBcHIgOTYgMDk6MDc6NDAKICAgIC0gKElOU1RBTEwpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAxMTo0Njo1MgogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQ2hlY2tlZCBmb3Igc3lzL21idWYgZm9yIGRldGVybWluaW5nIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjU1OjEwCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKCmhhcmRha2VyIDI0IEFwciA5NiAxMzoyNTo0OAogICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDE0OjM3OjQ3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNSAtPiBWMy4wLjYKCmhhcmRha2VyIDI0IEphbiA5NiAxNjozMToyMAogICAgLSBSZXR1cm5pbmcgRVhURU5TSUJMRURPVE1JQi5BR0VOVElEIGFzIHRoZSBuZXcgb2JqZWN0aWQKCkRhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+IDI0IEphbiA5NiAxNjozMzowOAogICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgIC0gZml4ZXMgLXAgUE9SVCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSB0aGUgcmVxdWVzdGVkIHBvcnQuCiAgICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCgpoYXJkYWtlciAyNCBKYW4gOTYgMTY6MzY6NTEKICAgIC0gKE1ha2VmaWxlLCBjb25maWcuaCwgZWNlLW1pYi4qLCBzZWRzY3JpcHQuaW4pCiAgICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgICAtIGFkZGVkIGEgbmV3IE9iamVjdElEIGFkZGl0aW9uIHRvIGVjZS1taWIudHh0CiAgICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKCmhhcmRha2VyIDI2IEphbiA5NiAwODoyNTowOAogICAgLSBUaGUgU29sYXJpcyAyLjUga2VybmVsIGhhcyBtb3ZlZCB0byAva2VybmVsL2dlbnVuaXgKICAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCgpoYXJkYWtlciAgOSBGZWIgOTYgMTc6MDU6MDAKICAgIC0gQmV0dGVyIE9wZW5WaWV3IHN1cHBvcnQKICAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgICAtIGN1cnJlbnRseSBjb250YWlucyBuZWNlc3NhcnkgZmlsZXMgdG8gc3VwcG9ydCBhIFVDRCBiaXRtYXAgZmlsZQogICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCgpoYXJkYWtlciAxMiBGZWIgOTYgMTQ6Mjg6MjcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgIHNubXBzZXQgdGltZSB0byByZXR1cm4gYSB2YWx1ZSB0byB0aGUgc25tcHNldCByZXF1ZXN0LgoKaGFyZGFrZXIgMTYgRmViIDk2IDE2OjMyOjQxCiAgICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjEyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmKQogICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDIxIEZlYiA5NiAxNjoxNTozNgogICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgICAtIEFkZGVkIGFwcHMvc25tcHRyYXAKICAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMDk6MDk6MTUKICAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTA6MDY6MjQKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykgc21hbGwgYnVncyBmaXhlZAogICAgICAtIGRpc2sgZW50cmllcyB3aXRoIG5vIHNpemUgc3BlY2lmaWVkIGNhdXNlZCBzZWctZmF1bHRzLgogICAgICAtIGJldHRlciB0eXBlIGNoZWNraW5nIG9uIE1JQiBmb3IgJ2V4ZWMgTUlCJyBlbnRyaWVzLgogICAgICAtIG1vcmUgZXJyb3IgbWVzc2FnZXMgYWRkZWQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6Mzg6MTYKICAgIC0gKGVjZS1taWIuZGVmKQogICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgoKaGFyZGFrZXIgIDYgTWFyIDk2IDE2OjU4OjExCiAgICAtIChzbm1wbGliL21pYi5jKSBwcmludGVkIHZhbHVlcyBmb3IgdGltZXRpY2tzIGFyZSBubyBsb25nZXIgbmVnYXRpdmUuCgpoYXJkYWtlciAgOCBNYXIgOTYgMTA6MzE6MzQKICAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuYykgQ2hlY2sgaWYgdmFyaWFibGUgY29udGVudCBpcyBOVUxMIGJlZm9yZSB1c2luZy4KCmhhcmRha2VyICA4IE1hciA5NiAxNjo1NjowOAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leGVjLmMpCiAgICAgICAtIHJlbG9jYXRhYmxlIGV4ZWMncyBmYWlsZWQgdG8gY2xvc2UgdGhlIGNhY2hlIGZpbGUuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTM6Mzc6MjUKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjI2CiAgICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KCmhhcmRha2VyIDExIE1hciA5NiAxNToxNzo1NwogICAgLSAoUkVBRE1FKTogY2xlYW5lZCB1cCwgcmUtYXJyYW5nZWQsIHNob3J0ZW5lZCAoc2VjdGlvbnMgbW92ZWQgdG8gbWFuLyogZG9jcykuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6NDA6MTcKCiAgICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KCkdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IDExIE1hciA5NiAxNTo1NzoyMAoKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGZpeGVkIGEgdGltZW91dCBidWcgY2F1c2VkIGJ5IGFyY2hpdGVjdHVyZXMKICAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKCXRoZSBwYXRjaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC40CgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzE6MTYKICAgIC0gKGNvbmZpZ3VyZSopCiAgICAgIC0gdXBkYXRlZCB0byBhdXRvY29uZiB2Mi43CiAgICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwoKaGFyZGFrZXIgMTkgSmFuIDk2IDE3OjMyOjU3CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYykKICAgICAgLSBEZWNsYWlyZWQgbW9yZSBzdGF0aWMgdmFyaWFibGVzIChsb25nX3JldCkgdG8gZml4IHN1bjRzIGV4aXQgY29kZXMgKGFnYWluKS4KCmhhcmRha2VyIDIyIEphbiA5NiAxNjoyNzozMAogICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIEFkZGVkIG5ldyBkZWZpbmVzIHRvIHR1cm4gb24vb2ZmIHNlY3Rpb25zIG9mIHRoZSBleHRlbnNpYmxlIG1pYi4KICAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MTg6NTgKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKSBBZGRlZCBhIGNobW9kIHRvIG1ha2UgdGhlIHNubXBjaGVjayBzY3JpcHQgZXhlY3V0YWJsZQoKaGFyZGFrZXIgMjIgSmFuIDk2IDE3OjIzOjE3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgIC0gYWRkZWQgYWdlbnQgY29udHJvbHM6ICByZXN0YXJ0LCB1cGRhdGVjb25maWcsIGNsZWFyY2FjaGUuCiAgICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgICAtIEFkZGVkIGtleWJvYXJkIGFjY2VsZXJhdG9ycyB0byB0aGUgYXNzb2NpYXRlZCBtZW51IGl0ZW1zLgogICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMwoKaGFyZGFrZXIgMjMgT2N0IDk1IDE2OjM3OjQzCiAgICAtIChleHRlbnNpYmxlLmMpIHN0b3BwZWQgcmVwb3J0aW5nIGFueXRoaW5nIGZvciB0aGUgZGlzayBtaWIgaWYgbm8KICAgICAgZGlza3Mgd2VyZSBkZWZpbmVkIGluIHRoZSBzbm1wZC5jb25mIGZpbGUuICBUaGlzIHdhcyBjYXVzaW5nIGFuCiAgICAgIGVycm9yIGluIHRoZSBhZ2VudCdzIGVycm9yIG1pYiB3aGVuIG5vIGRpc2tzIHdlcmUgZGVmaW5lZCBhbmQKICAgICAgc29tZW9uZSB3YWxrcyB0aGUgZGlzayBtaWIuCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDQ6NDcKICAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA1OjEyCiAgICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNzo0NQogICAgLSAoY29uZmlndXJlLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgICB3b24ndCBiZSBidWdnZWQgdHdpY2UgYnkgdGhlIGluaXRpYWwgcXVlc3Rpb24uCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDg6NDkKICAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDk6MzcKICAgIC0gKGFsbCBhdXRvY29uZiBidWlsdCBmaWxlcykgVXBkYXRlZCBldmVyeXRoaW5nIHRvIGF1dG9jb25mIDIuNQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjEwOjQ5CiAgICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uc2UgZXJyb3JzLgogICAgLSAodHJhcG5vdGlmKSBCZXR0ZXIgc3RyaW5nIGNoZWNraW5nIChxdW90ZXMgYWxsIHZhcmlhYmxlcyBub3cpCgpoYXJkYWtlciAgMSBEZWMgOTUgMTY6MjA6MTMKICAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgWW91IGNhbiBwaWNrIHdoYXQgdHlwZXMgb2YgcHJvYmxlbXMgdG8gY2hlY2sgZm9yCiAgICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAgLSBpbnN0ZWFkIHJlbGllcyBvbiAnTm8gUmVzcG9uc2UnIHR5cGUgcmVwbGllcyBmcm9tIHNubXB3YWxrL2dldCB0bwogICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgICAtIGNvbnZlcnRlZCBmcm9tIFRrLWI0IHRvIFRrLWI4CiAgICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1MICAgICAgc2hvdyB0aGUgbG9nIHdpbmRvdyBhdCBzdGFydHVwCiAgICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKCmhhcmRha2VyICA1IERlYyA5NSAxNDo1NzoxNAogICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE1OjAxOjEwCiAgICAtIChzbm1wY2hlY2spCiAgICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgIGNvbnN0cnVjdHMuCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDU6MjAKICAgIC0gKGFnZW50L2V4dGVuc2libGUpCiAgICAgIC0gQnVnIGZpeDogIGFscGhhcyBhbmQgc3Vub3NlcyB3ZXJlIHJlcG9ydGluZyBpbmNvcnJlY3QgZXh0ZW5zaWJsZQogICAgICAgIGV4aXQgY29kZXMuICAoeWV0IGFub3RoZXIgNjQvMzIgYml0IGJ1ZyBmb3VuZCkuCiAgICAgIC0gQnVnIGZpeDogYWdlbnQtdXBkYXRlLHJlc3RhcnQsIGFuZCBjYWNoZSBtaWIgZmx1c2ggZW50cmllcyB3ZXJlCiAgICAgICAgcmV0dXJuaW5nIHZhbHVlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzIHRvIHZhbHVlcy4KCmhhcmRha2VyIDEzIERlYyA5NSAxNToyNzoxOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpIGJ1ZyBmaXhlcyBmb3IgZXhlYyBpdGVtczoKICAgICAgLSBhIHNlY29uZCBzbm1wd2FsayBvZiB0aGUgZXhlYyBpdGVtIHdvdWxkIHJldHVybiB0aGUgb2xkIGNhY2hlCiAgICAgICAgZmlsZS4gIEZpeGVkIGJ5IHJlc2V0aW5nIHRoZSBsYXN0IGNhY2hldGltZSB0byAwIHRvIGFsd2F5cyByZXNjYW4KICAgICAgICBhZnRlciBmb3JrL3BpcGUvbWVtb3J5L2V0YyBlcnJvcnMuCiAgICAgIC0gTWFkZSBsYXN0cmVzdWx0IGEgc3RhdGljIHZhci4gIFdhcyByZXR1cm5pbmcgd3JvbmcgZXhpdCBjb2RlcwogICAgICAgIHVuZGVyLCBzdHJhbmdlbHkgZW5vdWdoLCBvbmx5IHN1bm9zLTQgbWFjaGluZXMuCgpoYXJkYWtlciAyMCBEZWMgOTUgMDk6NTM6MTAKICAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgICBIYXl3YXJkIDxnYWhAZGlyYWMuYmVsbGNvcmUuY29tPi4KCmhhcmRha2VyIDIwIERlYyA5NSAxNTo1NjoxNgogICAgLSBGb3VuZCBhbmQgZml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgcm91dGluZyB0YWJsZSBtaWIuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MDE6MzUKICAgIC0gQWRkZWQgc2Vkc2NyaXB0IHRvIHRoZSAuY3ZzaWdub3JlIGZpbGUuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MjQ6MzcKICAgIC0gQWRkZWQgYSBzZWRzY3JpcHQgd2hpY2ggaXMgYnVpbHQgZnJvbSBjb25maWcuaCBhbmQgYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgKICAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KCmhhcmRha2VyIDI4IERlYyA5NSAxMjowNjo0OQogICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMi4xCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDM6NDkKICAgIC0gcG9ydGVkIHRvIEdOVSdzIGF1dG9jb25maWcyLjQKICAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAgLSBhbG1vc3QgYWxsIG9mIHRoZSBjb2RlIGlzIG5vdyBkeW5hbWljYWxseSBjaGVja2VkIGZvciBwcm9ibGVtcwogICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAgLSBjcmVhdGVkIGEgJ21ha2UgZGVwZW5kJyBjYWxsIChmaW5hbGx5KS4KICAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgICAtIHByb3RlY3RpbmcgYmV0dGVyIGFnYWluc3QgaW5jbHVkZSBoZWFkZXIgZmlsZXMgdHdpY2UuCiAgICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgoKaGFyZGFrZXIgMjkgU2VwIDk1IDEzOjQ2OjQzCiAgICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6MjQ6MDAKICAgIChhY2NvbmZpZy5oKSBNaW5vciBidWc6ICByZWN1cnNpdmUgY29tbWVudHMgbm90IGNvcnJlY3QgZm9yIGNvbXBpbGVycyAoQUlYKQoKaGFyZGFrZXIgIDMgT2N0IDk1IDA5OjQzOjU0CiAgICAodmVyc2lvbmluZm8uYykgQWRkZWQgMy0wLTMtQTEgdGFnCgpoYXJkYWtlciAgNCBPY3QgOTUgMTY6NTM6MzkKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA1IE9jdCA5NSAxNToyMzowNQogICAgLSBNb3JlIFNvbGFyaXMgcG9ydGluZy4KICAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgICAtIHN5c1VwVGltZSBzdGlsbCBmYWlscy4KICAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KCmhhcmRha2VyICA1IE9jdCA5NSAxNTo0ODoyMwogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDYgT2N0IDk1IDExOjM3OjAwCiAgICAtIChSRUFETUUpIE1vdmVkIElOU1RBTExBVElPTiBpbnN0cnVjdGlvbnMgdG8gSU5TVEFMTAogICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjI4OjQ4CiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6MDQKICAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgIC1oIGZvciBoZWxwCiAgICAgIC12IGZvciB2ZXJzaW9uIGluZm9ybWF0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6NDMKICAgIC0gKHBhcnNlLmMsIHNubXAuYykgYWRkZWQgY29uZmlnLmggdG8gdGhlIGxpc3Qgb2YgaW5jbHVkZXMuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDA6MzgKICAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjQxOjE4CiAgICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwoKaGFyZGFrZXIgMTEgT2N0IDk1IDE3OjMzOjI2CiAgICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgICBjb25maWcuaC4gIFNvbWUgdGhpbmdzIG5lZWQgdG8gdXNlICQocHJlZml4KSBpbnN0ZWFkIGhvd2V2ZXIuCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgICByZW1vdmUgaW5zdGFsbCByZXF1aXJlbWVudC4KICAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KCmhhcmRha2VyIDEzIE9jdCA5NSAxNTo0NToyOAogICAgLSAoc25tcGQuYykgQWRkZWQgLXAgcG9ydCB0byAtLWhlbHAgb3V0cHV0CiAgICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTM6MDE6MzkKICAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAgLSAoZXh0ZW5zaWJsZS5jKSBjb25maWcgZmlsZSByZS1sb2NhdGlvbjogbm93IHVzZXMgdGhlIFNOTVBMSUJQQVRICiAgICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE1OjAyOjAxCiAgICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAgLSAoUkVBRE1FKSBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCmhhcmRha2VyIDE2IE9jdCA5NSAxNjoyMTo0MwogICAgLSAoc25tcGQuYykgd2FzIHN0aWxsIGxvb2tpbmcgaW4gL2V0YyBmb3IgdHdvIC5jb25mIGZpbGVzLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjQzOjEyCiAgICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCgpoYXJkYWtlciAxNyBPY3QgOTUgMTY6NTg6MzIKICAgIHZlcnNpb24gdGFnICggMy4wLjMgKSBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAxNyBPY3QgOTUgMTc6MDA6MjIKICAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yCgpoYXJkYWtlciAyMSBTZXAgOTUgMDk6Mjc6MTgKICAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMQoKaGFyZGFrZXIgMjYgSnVsIDk1IDE2OjMxOjQxCiAgICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgICBJZiBkZWZpbmVkLCBhbmQgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgdGhlIGtlcm5lbCBjb250ZW50cywKICAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICAgY29udGludWUuCiAgICAKICAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAgLSBzaG91bGQgYmUgKG1vc3RseSkgNjQgYml0IGNsZWFuIG5vdy4KICAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCgpoYXJkYWtlciAyOCBKdWwgOTUgMTQ6MjM6NDEKICAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgoKaGFyZGFrZXIgMzEgSnVsIDk1IDE2OjI3OjQ3CiAgICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgIC0gRGV0ZWN0cyBwcmVzZW5jZSBvZiBhIERJU1BMQVkgdmFyaWFibGUuCiAgICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAgLSByYWlzZXMgYW5kIGRlaWNvbmlmaWVzIHdoZW4gbmV3IHByb2JsZW1zIGFyZSBmb3VuZAogICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAgLSBuZXcgcHJlZmVyZW5jZTogIHBpbmcgaG9zdD8KICAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICAgY3RybC1xID0gcXVpdDsgY3RybC1oID0gaGlkZTsgY3RybC1zID0gc2VlbiBhbGwKCmhhcmRha2VyICAxIFNlcCA5NSAxMTo1Nzo1MgogICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MDk6MjUKICAgIE1pbm9yIG1vZHMgdG8gUkVBRE1FIGZpbGUuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MTM6NDkKICAgIE1pbm9yIGJ1ZzoKICAgICAgKHNoX2NvdW50X3Byb2NzKSBjaGVjayBpZiByZXR1cm5lZCBmaWxlIGRlc2NyaXB0b3IgPiAwIGJlZm9yZSBjb250aW51aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAKCmhhcmRha2VyIDE2IEp1biA5NSAxMDoxMzo1MwogICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjE1OjQyCiAgICBIb3VzZSBjbGVhbmluZwogICAgICAtIENvbXBpbGVzIGNsZWFubHkgb24gaHB1eC9nY2MKICAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MTM6NTMKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBUb29rIG91dCBnY2MvYW5zaSByZXF1aXJlbWVudCBmb3IgdGhlIGFnZW50LgogICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgIAogICAgTmV3IEJ1Zy9IYXZlbid0IHNvbHZlZDoKICAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MjA6NDgKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTE6MjcKICAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE1OjMxCiAgICBCdWcgRml4OgogICAgICBTdG9wcGVkIHJldHVybmluZyBhIHBvaW50ZXIgdG8gYSBub24tc3RhdGljIGNoYXIgYXJyYXkuLi4gICgtPiBzdGF0aWMgY2hhcikKICAgICAgUGFzc2luZyB3cm9uZyBwb2ludGVyIHRvIHNldGVycm9yc3RhdHVzKCkgaW4gc2V0UGVycm9yc3RhdHVzKCkKICAgIAogICAgRmVhdHVyZToKICAgICAgQWRkZWQgYSBzZXRhYmxlIG1pYiBlbnRyeSB0byB0aGUgdmVyc2lvbiBtaWIgdG8gcmUtcmVhZCB0aGUgY29uZmlnIGZpbGUocykuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTg6MzcKICAgIGVjZS1taWIuZGVmOgogICAgQnVnIEZpeDoKICAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxOToxNwogICAgQ2hhbmdlZCBkZWZhdWx0IENDIHRvIGNjIGFnYWluLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjIwOjIzCiAgICBzbm1wbGliOgogICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMToyNzowMAogICAgVHdvIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczoKICAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjI5OjMyCiAgICAtIE1vcmUgcGVycm9yKClzIGNvbnZlcnRlZCB0byBzZXQgdGhlIHNubXAgZXJyb3Igc3RhdHVzIGZsYWcgb24gdGhlIGFnZW50LgogICAgLSBlcnJvciBzdGF0dXMgZmxhZyBpcyBub3cgcHJpb3JpdGl6ZWQuICBwZXJyb3JzIGdldCB0aGUgaGlnaGVzdCBzbwogICAgICBvdGhlciBlcnJvcnMgd29uJ3Qgb3ZlcnJpZGUgdGhlbSBpZiB0aGV5IGhhcHBlbiBhdCBhIGxhdGVyIHRpbWUuCiAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgcmVzdGFydCBtaWIgdG8gdGhlIHZlcnNpb24gbWliIG9mIHRoZQogICAgICBhZ2VudC4gIFNldHRpbmcgdGhpcyB3cml0YWJsZSBtaWIgdG8gb25lIHdpbGwgY2F1c2UgaXQgdG8gZXhlYwogICAgICBpdHNlbGYgYWdhaW4gKGZvciByZW1vdGUgcmVzdGFydC91cGRhdGVzKS4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMjozMDoxOQogICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxMjo0MAogICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgIHRoZSBhZ2VudC4KICAgIAogICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgICBuZXZlciByZXR1cm5zIGEgcmVzcG9uY2UgdG8gdGhlIHByb2dyYW0gZ2VuZXJhdGluZyB0aGUgcmVxdWVzdC4KICAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCgpoYXJkYWtlciAxNCBKdWwgOTUgMTU6MTU6MzEKICAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgICBsb3N0IGN1cnNlcyBzdXBwb3J0LCBhbmQgbmVlZCB0byByZS1hZGQgaXQgc3RpbGwsIHNvIGl0IGlzIHN0aWxsCiAgICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgICh3aGljaCBhcmVuJ3QgY29uZmlndXJlZCBieSAnbWFrZScpLCBzbyBpdCBuZWVkcyBzb21lIHdvcmsuCiAgICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgIHdpdGggbmVhdCBHVUktYnV0dG9ucyBhbmQgc3R1ZmYgKG9oIHdvdykuICBObyBkb2N1bWVudGF0aW9uIG9uIGl0IHRob3VnaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgMy0wQTE6CgpoYXJkYWtlciAgMiBKdW4gOTUgMTY6MjM6NDYKICAgIC0gdmVyc2lvbiB1cGRhdGUKCmhhcmRha2VyICA1IEp1biA5NSAxMjo0NDo0NgogICAgLSBhZ2VudC9leHRlbnNpYmxlL01ha2VmaWxlOgogICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgICAKICAgIC0gU3VuT1MgYWRkaXRpb25zOgogICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAgLS0gZGlzayBjaGVja2luZyBNSUIgZW5hYmxlZAoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjA3CiAgICAtIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICAgSGF2ZW4ndCB0ZXN0ZWQgaXQgdGhyb3VnaGx5LgogICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMTo1MQogICAgLSBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjM6MzUKICAgIC0gQ29ycmVjdCB1c2FnZSBmb3Igc25tcHdhbGsgaXMgbm93IHBvc3NpYmxlLiAgSUUsIHNubXB3YWxrIHRhcmdldAogICAgICAuMS4zLjYuMSB3aWxsIG5vdyBicm93c2UgdGhlIGVudGlyZSB0cmVlLgogICAgICAtLSBTdGlsbCBmYWlscyBvbiByZWxvY2F0YWJsZSBleHRlbnNpYmxlIG1pYnMgYW5kIHdpbGwgdW50aWwgSQogICAgICAgICB3cml0ZSBhIGR5bmFtaWMgdHJlZSBidWlsZGVyLgoKaGFyZGFrZXIgIDkgSnVuIDk1IDE0OjA4OjE1CiAgICAtIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAgKGllIHVsdHJpeCkgaGFuZGxlIHRoaXMuCgpoYXJkYWtlciAxMiBKdW4gOTUgMTA6MzU6MzgKICAgIC0gbG9jYWwvdHJhcG5vdGlmOgogICAgICAtLSB1c2VzIHNubXB2MiBub3cgKGNvcnJlY3RseSkKCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNzo0NgogICAgLSBSZXBvcnRzIGFsbCBlcnJvcnMgdGhyb3VnaCB0aGUgZXJyb3IgbWliIG5vdyBpbnN0ZWFkIG9mIHRocm91Z2ggcGVycm9yKCkuCiAgICAtIENsZWFuZWQgdXAgZXJyb3IgaGFuZGxpbmcuICBTaG91bGRuJ3QgaGFuZGxlIGVycm9ycyBuaWNlbHkgaWYgc3lzdGVtCiAgICAgIGVycm9ycyBvY2N1ciB3aGVuIHNjYW5uaW5nIGFuIGV4dGVuc2libGUgbWliLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDExOjI0OjIwCiAgICBhZ2VudDoKICAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgIHNvcnRlZCBpbiBhdCB0aGlzIHRpbWUuICBUaGlzIGJyaW5ncyB0aGUgYWdlbnQgdXAgdG8gY29ycmVjdAogICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAgKiBUaGlzIGhhcyBhbiBhZGRlZCBib251cyBvZiBjaGVja2luZyB0aGUgbWliIHRhYmxlCiAgICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgICBpbmNvcnJlY3RseS4gIE1ham9yIHdpbi4KCmhhcmRha2VyIDE0IEp1biA5NSAxMjo1Njo0OQogICAgLSBDbGVhbmVkIHVwL0FkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byBjb25maWcuaAogICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgIDIsIHdoaWNoIHdhcyBkb25lIHByZXZpb3VzbHkuCgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEzOjQzOjM4CiAgICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAgKHVjZC1zbm1wLWFubm91bmNlQHVjZC1zbm1wLnVjZGF2aXMuZWR1KQoKCiMgZ2VuZXJhdGVkIHVzaW5nOgojICBjdnMyY2wgLWIgLXIgLWYgQ2hhbmdlTG9nLmFkZCAtRiBWNC0yLXBhdGNoZXMgLS1uby13cmFwIC1TCiMgIHBlcmwgZGlzdC9jaGFuZ2Vsb2dmaXggPCBDaGFuZ2VMb2cuYWRkID4gQ2hhbmdlTG9nLnJlYWxseWFkZAo=